Моделирование в условиях противодействия, игровые модели
Как уже неоднократно отмечалось, системный анализ невозможен без учета взаимодействий данной системы с внешней средой. Ранее упоминалась необходимость учитывать состояния природы — большей частью случайных, стохастических воздействий на систему.
Конечно, природа не мешает (но и не помогает) процессам системы осознанно,злонамеренно или, наоборот, поощряюще.Поэтому учет внешних природных воздействий можно рассматривать как "игру с природой", но в этой игре природа — не противник, не оппонент, у нее нет цели существования вообще, а тем более — цели противодействия нашей системе.
Совершенно иначе обстоит дело при учете взаимодействий данной системы с другими, аналогичными или близкими по целям своего функционирования. Как известно, такое взаимодействие называют конкуренцией и ситуации жизни больших систем-монополистов крайне редки, да и не вызывают особого интереса с позиций теории систем и системного анализа.
Особый раздел науки — теория игр позволяет хотя бы частично разрешать затруднения, возникающие при системном анализе в условиях противодействия. Интересно отметить, что одна из первых монографий по этим вопросам называлась "Теория игр и экономического поведения" (авторы — Нейман и Моргенштерн, 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 гривен.