Моделирование в условиях противодействия, игровые модели

Как уже неоднократно отмечалось, системный анализ невозможен без учета взаимодействий данной системы с внешней средой. Ранее упоминалась необходимость учитывать состояния природы — большей частью случайных, стохастических воздействий на систему.

Конечно, природа не мешает (но и не помогает) процессам системы осознанно,злонамеренно или, наоборот, поощряюще.Поэтому учет внешних природных воздействий можно рассматривать как "игру с природой", но в этой игре природа — не противник, не оппонент, у нее нет цели существования вообще, а тем более — цели противодействия нашей системе.

Совершенно иначе обстоит дело при учете взаимодействий данной системы с другими, аналогичными или близкими по целям своего функционирования. Как известно, такое взаимодействие называют конкуренцией и ситуации жизни больших систем-монополистов крайне редки, да и не вызывают особого интереса с позиций теории систем и системного анализа.

Особый раздел науки — теория игр позволяет хотя бы частично разрешать затруднения, возникающие при системном анализе в условиях противодействия. Интересно отметить, что одна из первых монографий по этим вопросам называлась "Теория игр и экономического поведения" (авторы — Нейман и Моргенштерн, 1953 г., имеется перевод) и послужила своеобразным катализатором развития методов линейного программирования и теории статистических решений.

В качестве простого примера использования методов теории игр в экономике рассмотрим следующую задачу.

Пусть вы имеете всего три варианта стратегий в условиях конкуренции S1,S2 и S3 (например — выпускать в течение месяца один из 3 видов продукции). При этом ваш конкурент имеет всего два варианта стратегий C1 и C2 (выпускать один из 2 видов своей продукции, в каком то смысле заменяющей продукцию вашей фирмы). При этом менять вид продукции в течение месяца невозможно ни вам, ни вашему конкуренту.

Пусть и вам, и вашему конкуренту достоверно известны последствия каждого из собственных вариантов поведения, описываемые следующей таблицей.

Таблица 3.6

  C1 C2
S1 -2000 + 2000
S2 -1000 +3000
S3 +1000 +2000

 

Цифры в таблице означают следующее:

· вы несете убытки в 2000 гривен, а конкурент имеет ту же сумму прибыли, если вы приняли стратегию S1, а конкурент применил C1;

· вы имеете прибыль в 2000 гривен, а конкурент теряет ту же сумму, если вы приняли S1 против C2;

· вы несете убытки в сумме 1000 гривен, а конкурент получает такую прибыль, если ваш вариант S2 оказался против его варианта C1 , и так далее.

Предполагается, что обе стороны имеют профессиональную подготовку в области ТССА и действуют разумно, соблюдая правила — вариант поведения принимают один раз на весь месяц, не зная, конечно, что предпринял на этот же месяц конкурент.

По сути дела, в чисто житейском смысле — это обычная "азартная" игра, в которой существует конечный результат, цель игры — выигрыш.

Этой цели добивается каждый игрок, но не каждый может ее добиться. Варианты поведения игроков можно считать ходами, а множество ходов — рассматривать как партию.

Пусть партия состоит всего лишь из одного хода с каждой стороны. Попробуем найти этот наилучший ход сначала для вашего конкурента — порассуждаем за него.

Так как таблица известна как вам, так и конкуренту, то его рассуждения можно промоделировать.

Вашему конкуренту вариант C2 явно невыгоден — при любом вашем ходе вы будете в выигрыше, а конкурент в проигрыше. Следовательно, со стороны вашего противника будет, скорее всего, принят вариант C1, доставляющий ему минимум потерь.

Теперь можно порассуждать за себя. Вроде бы вариант S2 принесет нам максимальный выигрыш в 3000 гривен, но это при условии выбора C2 вашим конкурентом, а он, скорее всего, выберет C1.

Значит наилучшее, что мы можем предпринять — выбрать вариант S3, рассчитывая на наименьший из возможных выигрышей — в 1000 гривен.

Ознакомимся с рядом общепринятых терминов теории игр:

· поскольку в таблице игры наш возможный выигрыш всегда равен проигрышу конкурента и наоборот, то эту специфику отображают обычно в названии — игра с нулевойсуммой;

· варианты поведения игроков-конкурентов называют чистыми стратегиями игры, учитывая независимость их от поведения конкурента;

· наилучшие стратегии для каждого из игроков называют решением игры;

· результат игры, на который рассчитывают оба игрока (1000 гривен прибыли для вас или столько же в виде проигрыша для конкурента) называют ценой игры; она в игре с нулевой суммой однакова для обеих сторон;

· таблицу выигрышей (проигрышей) называют матрицей игры, в данном случае — прямоугольной.

Рассмотренный выше ход рассуждений по поиску наилучшего плана игры в условиях конкуренции — не единственный способ решения задач. Очень часто намного короче и, главное, более логически стройным оказывается другой принцип поиска оптимальных игровых стратегий — принцип минимакса.

Для иллюстрации этого метода рассмотрим предыдущий пример игры с несколько видоизмененной матрицей.

  C1 C2
S1 -2000 - 4000
S2 -1000 +3000
S3 +1000 +2000

Таблица 3.7

 

Повторим метод рассуждений, использованный для предыдущего примера.

· Мы никогда не выберем стратегию S1, поскольку она при любом ответе конкурента принесет нам значительные убытки.

· Из двух оставшихся разумнее выбрать S3, так как при любом ответе конкурента мы получим прибыль.

· Выбираем в качестве оптимальной стратегии S3.

Рассуждения нашего конкурента окажутся примерно такими же по смыслу. Понимая, что мы никогда не примем S1 и выберем, в конце концов, S3, он примет решение считать оптимальной для себя стратегию C1 — в этом случае он будет иметь наименьшие убытки.

Можно применить и иной метод рассуждений, дающий, в конце концов, тот же результат. При выборе наилучшего плана игры для нас можно рассуждать так:

· при стратегии S1 минимальный (min) "выигрыш" составит - 4000гривен;

· при стратегии S2 минимальный (min) "выигрыш" составит - 1000гривен;

· при стратегии S3 минимальный (min) выигрыш составит +1000гривен.

Выходит, что наибольший (max) из наименьших (min)выигрышей — это 1000 гривен и сам бог велел полагать стратегию S3 оптимальной, с надеждой на ответный ход конкурента его стратегией C1. Такую стратегию и называют стратегией MaxiMin.

Если теперь попробовать смоделировать поведение конкурента, то для него:

· при стратегии C1 максимальный (max) проигрыш составит 1000гривен;

· при стратегии C2 максимальный (max) проигрыш составит 2000гривен.

Значит, наш конкурент, если он будет рассуждать здраво, выберет стратегию C1, поскольку именно она обеспечивает наименьший (min)из наибольших (max)проигрышей. Такую стратегию и называют стратегией MiniMax.

Легко заметить, что это одно и то же — вы делаете ход S3 в расчете на ответ C1, а ваш конкурент — ход C1 в расчете на S3.

Поэтому такие стратегии называют минимаксными — мы надеемся на минимум максимальных убытков или, что одно и то же, на максимум минимальной прибыли.

В двух рассмотренных примерах оптимальные стратегии "противников" совпадали, принято говорить — они соответствовали седловой точке матрицы игры.

Метод минимакса отличается от стандартного пути логических рассуждений таким важным показателем как алгоритмичность. В самом деле, можно доказать, что если седловая точка существует, то она находится на пересечении некоторой строки S и некоторого столбца C. Если число в этой точке самое большое для данной строки и, одновременно, самое малое в данном столбце, то это и есть седловая точка.

Конечно, далеко не все игры обладают седловой точкой, но если она есть, то поиск ее при числе строк и столбцов в несколько десятков (а то и сотен) по стандартному логическому плану — дело практически безнадежное без использования компьютерных технологий.

Но, даже при использовании компьютера, писать программу для реализации всех возможных If ... Then придется на специальных языках программирования (например — язык Prolog). Эти языки великолепны для решения логических задач, но практически непригодны для обычных вычислений.Если же использовать метод минимакса, то весь алгоритм поиска седловой точки займет на языке Pascalили C++не более 5...10 строк программы.

Рассмотрим еще один простой пример игры, но уже без седловой точки.

  C1 C2
S1 -3000 +7000
S2 +6000 +1000

Таблица 3.8

Задача в этом случае для нас (и для нашего разумного конкурента) будет заключаться в смене стратегий, в надежде найти такую их комбинацию, при которой математическое ожидание выигрыша или средний выигрыш за некоторое число ходов будет максимальным.

Пусть мы приняли решение половину ходов в игре делать с использованием S1, а другую половину — с S2. Конечно, мы не можем знать, какую из своих двух стратегий будет применять конкурент, и поэтому придется рассматривать два крайних случая его поведения.

Если наш конкурент все время будет применять C1, то для нас выигрыш составит 0.5·(-3000)+0.5·(+6000) = 1500гривен.

Если же он все время будет применять C2, то на выигрыш составит 0.5·(+7000)+0.5·(+1000) = 4000гривен.

Ну, это уже повод для размышлений, для анализа. В конце концов, можно прикинуть, а что мы будем иметь в случае применения конкурентом также смешанной стратегии? Ответ уже готов — мы будем иметь выигрыш не менее 1500 гривен, поскольку выполненные выше расчеты охватили все варианты смешанных стратегий конкурента.

Поставим вопрос в более общем виде — а существует ли наилучшая смешанная стратегия (комбинация S1 и S2) для нас в условиях применения смешанных стратегий (комбинации C1 и C2) со стороны конкурента? Математическая теория игр позволяет ответить на этот вопрос утвердительно — оптимальная смешанная стратегия всегда существует, но она может гарантировать минимум математического ожидания выигрыша. Методы поиска таких стратегий хорошо разработаны и отражены в литературе.

Таким образом, мы снова оказались в роли ЛПР — системный подход не может дать рецепта для безусловного получения выигрыша.

Нам и только нам, решать — воспользоваться ли рекомендацией и применить оптимальную стратегию игры, но при этом считаться с риском возможного проигрыша (выигрыш окажется гарантированным лишь при очень большом числе ходов).

Завершим рассмотрение последнего примера демонстрацией поиска наилучшей смешанной стратегии.

Пусть мы применяем стратегию S1 с частотой e, а стратегию S2 с частотой (1 - e).

Тогда мы будем иметь выигрыш

W(C1) = e · (-3000) + (1-e) · (+6000) = 6000 - 9000·e

при применении конкурентом стратегии C1

или будем иметь выигрыш

W(C2) = e · (+7000) + (1-e) · (+1000) = 1000 + 6000·e

при применении конкурентом стратегии C2.

Теория игр позволяет найти наилучшую стратегию для нас из условия W(C1) = W(C2);{3 - 16}

что приводит к наилучшему значению e=1/3 и математическому ожиданию выигрыша величиной в (-3000)·(1/3)+(+6000)·(2/3)=3000 гривен.