Методы оптимальных решений Галкина М.Ю. (Лекции)

advertisement
Галкина М.Ю.
Методы оптимальных решений
(Лекции)
2011 г.
Введение ....................................................................................................................... 3
1.
Линейное программирование........................................................................ 4
1.1. Различные формы записи задачи линейного программирования. ................ 4
1.2. Графический метод решения задачи линейного программирования ........... 6
1.3. Графический способ метод решения ЗЛП, заданной в симметричной
форме, в случае двух переменных ............................................................................. 8
1.4. Использование надстройки Поиск решения MS Excel ................................ 14
1.5. Решение ЗЛП средствами MS Excel............................................................... 18
1.6. Двойственные задачи....................................................................................... 21
Вопросы для самопроверки ....................................................................................... 30
2.
Специальные задачи линейного программирования ............................ 31
2.1. Задача о назначениях ....................................................................................... 31
2.2. Теория игр ......................................................................................................... 43
2.2.1. Основные понятия ..................................................................................... 43
2.2.2. Нижняя и верхняя цены игры. Принцип минимакса ............................. 45
2.2.3. Решение игр в смешанных стратегиях .................................................... 47
2.2.4. Решение матричных игр 2х2 в смешанных стратегиях ......................... 48
2.2.5. Сведение матричной игры к задаче линейного программирования .... 56
2.2.6. Игры с природой ........................................................................................ 64
Вопросы для самопроверки ....................................................................................... 70
3.
Многоцелевые задачи ................................................................................... 70
3.1. Множество Парето ........................................................................................... 71
3.2. Метод идеальной точки ................................................................................... 72
Вопросы для самопроверки ....................................................................................... 78
4.
Нелинейное программирование ................................................................. 78
4.1. Графическое решение задачи нелинейного программирования ................. 79
4.2. Метод множителей Лагранжа ......................................................................... 81
4.3. Решение задач выпуклого программирования ............................................. 82
Вопросы для самопроверки ....................................................................................... 89
Литература ................................................................................................................ 89
2
Введение
Несмотря на многообразие задач организационного управления, при их
решении можно выделить некоторую общую последовательность этапов, через
которые проходит любое исследование. Как правило, это:
1. Постановка задачи.
2. Построение содержательной модели рассматриваемого объекта
(процесса). На данном этапе происходит формализация цели управления
объектом, выделение возможных управляющих воздействий, влияющих на
достижение сформулированной цели, а также описание системы ограничений
на управляющие воздействия.
3. Построение математической модели, т. е. перевод сконструированной
модели в ту форму, в которой для ее изучения может быть использован
математический аппарат.
4. Решение задач, сформулированных на базе построенной математической
модели.
5. Проверка полученных результатов на их адекватность природе изучаемой
системы, включая исследование влияния так называемых внемодельных
факторов, и возможная корректировка первоначальной модели.
6. Реализация полученного решения на практике.
В курсе методы оптимальных решений центральное место отведено
вопросам, относящимся к четвертому пункту приведенной выше схемы. Это
делается не потому, что он является самым важным, сложным или интересным,
а потому, что остальные пункты существенно зависят от конкретной природы
изучаемой системы, в силу чего для действий, которые должны производиться
в их рамках, не могут быть сформулированы универсальные и содержательные
рекомендации.
Для решения экономической задачи
математическими методами
составляют математическую модель задачи, т.е. записывают ее с помощью
математических выражений: неравенств, уравнений и т.п. Для математического
описания экономической задачи можно руководствоваться следующей общей
схемой:
1) выбирают некоторое количество переменных x1 , x2 ,, xn , заданием
числовых значений которых однозначно определяется одно из возможных
состояний исследуемого экономического процесса;
2) выражают взаимосвязи исследуемого экономического процесса в виде
математических соотношений (уравнений, неравенств). Эти соотношения
образуют систему ограничений математической модели;
3) поиск наилучшего решения формулируют в терминах поиска
оптимального (максимального или минимального) значения функции
Z ( x1 , x2 ,, x n ) . Построенная функция называется целевой.
В зависимости от свойств целевой функции, математическое
программирование можно рассматривать как ряд самостоятельных дисциплин,
занимающихся изучением и разработкой методов решения определенных
3
классов задач. Если Z ( x1 , x2 ,, x n ) - линейная функция и линейны функции,
описывающие ограничения на переменные x1 , x2 ,, xn , то математическая
модель представляет задачу линейного программирования. Если хотя бы одна
из указанных функций нелинейная, то математическая модель является
объектом исследования нелинейного программирования. Наиболее изученным
разделом
математического
программирования
является
линейное
программирование. Для решения задач этого раздела разработан целый ряд
эффективных алгоритмов и методов.
Математическое моделирование является, с одной стороны, очень важным
и сложным, а с другой — практически не поддающимся научной формализации
процессом. Заметим, что неоднократно предпринимавшиеся попытки выделить
общие принципы создания математических моделей приводили либо к
декларированию рекомендаций самого общего характера, трудноприложимых
для решения конкретных проблем, либо, наоборот, к появлению рецептов,
применимых в действительности только к узкому кругу задач. Поэтому более
полезным представляется знакомство с техникой математического
моделирования на конкретных примерах.
Мощным инструментом решения задач, построенных на базе
математической модели, является наука, которая называется математическое
программирование. В данном случае
понятие программирование
употребляется в смысле планирование (в отличие от программирования для
ЭВМ).
В свою очередь, в зависимости от вида решаемых задач, в
математическом программировании выделяют такие области, как линейное,
нелинейное, дискретное, динамическое, стохастическое программирование.
Курс по методам оптимальных решений должен дать студентам
достаточное представление о математическом аппарате, используемом при
принятии решений в экономических задачах. Освоение этого материала
придает студенту уверенность, которой обычно недостает, если он с самого
начала направляет свои усилия на изучение философских аспектов и искусства
принятия решений.
1. Линейное программирование
1.1.
Различные формы записи задачи линейного программирования.
Рассмотрим задачу линейного программирования (ЗЛП) в общем виде:
 n a x  b (i  1,, m ),
ij j
i
1

j 1
n
 ai j x j  bi (i  m1  1,, m2 ),
 j 1
 n
ai j x j  bi (i  m2  1,, m),

j 1
 x 0
( j  1,, k , k  n).
 j
n
Z   c j x j  max(min)
j 1
4
Задача линейного программирования задана в канонической форме, если
требуется максимизировать целевую функцию, все ограничения системы –
уравнения и на все переменные наложено условие неотрицательности.
Задача линейного программирования задана в симметричной форме, если
требуется максимизировать целевую функцию, все ограничения системы –
неравенства «» (или минимизировать целевую функцию, все ограничения
системы – неравенства «») и на все переменные наложено условие
неотрицательности.
Набор чисел X  ( x1 , x2 ,, xn ) называется допустимым решением
(планом), если он удовлетворяет системе ограничений ЗЛП.
Множество всех допустимых решений называется областью допустимых
решений (ОДР).
Допустимое решение X *  ( x1* , x2* ,, xn* ) , для которого достигается
максимальное (минимальное) значение функции, называется оптимальным
планом ЗЛП.
Термины «план» и «оптимальный план» возникли из экономических
приложений.
Все три формы записи ЗЛП являются эквивалентными в том смысле, что
имеются алгоритмы перехода от одной формы к другой. Таким образом, если
имеется способ решения задачи в одной из форм, то всегда можно определить
оптимальный план задачи, заданной в любой другой форме. Задача в
симметричной форме решается графическим методом, а в канонической форме
– симплекс–методом.
Рассмотрим алгоритмы перехода от одной формы к другой.
 Симметричная  каноническая. Переход осуществляется путем
добавления в левую часть каждого неравенства дополнительной
неотрицательной переменной. Если неравенство было «≤», то балансовая
переменная добавляется в левую часть неравенства со знаком «+». Если
неравенство было «», то балансовая переменная добавляется в левую часть
неравенства со знаком «–». Вводимые новые переменные называются
балансовыми. Задачу минимизации функции Z заменяют на задачу
максимизации функции (–Z) и используют, что min Z = –max (–Z).
 Каноническая  симметричная. Для осуществления такого перехода
находится общее решение системы уравнений – ограничений, целевая
функция
выражается
через
свободные
переменные.
Далее,
воспользовавшись неотрицательностью базисных переменных, можно
исключить их из задачи. Симметричная форма задачи будет содержать
неравенства, связывающие только свободные переменные, и целевую
функцию, зависящую только от свободных переменных. Значения базисных
переменных находятся из общего решения исходной системы уравнений.
 Общая  каноническая. Каждая переменная, на которую не было
наложено условие неотрицательности, представляется в виде разности двух
новых неотрицательных переменных. Неравенства преобразуются в
5
уравнения путем введения в левую часть каждого неравенства балансовой
переменной таким же образом, как это было описано при переходе от
симметричной к канонической форме. Задачу минимизации функции Z
заменяют на задачу максимизации функции (–Z) таким же образом, как это
было описано при переходе от симметричной к канонической форме..
1.2.
Графический
метод
программирования
решения
задачи
линейного
Графический метод применяется для решения ЗЛП, заданной в
симметричной форме. Этот метод наиболее эффективно применяется для
решения задач с двумя переменными, т.к. требует графических построений. В
случае трех переменных необходимы построения в R3, в случае четырех
переменных необходимы построения в R4 и т.д.
Множество точек называется выпуклым, если для любых двух точек
множества оно содержит отрезок, их соединяющий.
Пример 1
Следующие множества точек на плоскости являются выпуклыми:
Следующие множества точек на плоскости не являются выпуклыми:
Теорема 1 Пересечение любого количества выпуклых множеств является
выпуклым множеством.
Теорема 2 Пусть имеются две произвольные точки P ( p1 , p2 ,  , pn ) и
Q(q1 , q2 , , qn ) в пространстве Rn. Тогда для любой точки X ( x1 , x2 , , xn )
отрезка [PQ] должно выполняться: xi  qi  (1   ) pi (i  1,2, , n), .где 0    1.
Гиперплоскостью в пространстве Rn называется множество точек,
удовлетворяющее уравнению a1 x1  a2 x2    an xn  b . Заметим, что в
двумерном случае гиперплоскостью является прямая.
Полупространством называется множество точек, удовлетворяющее
одному из неравенств a1 x1  a2 x2    an xn  b или a1 x1  a2 x2    an xn  b .
Гиперплоскость делит точки пространства на два полупространства. В
двумерном случае гиперплоскостью является полуплоскость.
Теорема 3 Полупространство является выпуклым множеством.
Следствие Пересечение любого количества полупространств является
выпуклым множеством.
6
Многогранником
называется
полупространств.
Многогранник
многоугольником.
пересечение
одного
или
более
в
двумерном
случае
называется
Пример 2
Следующие множества являются многоугольниками.
Неограниченное множество
Ограниченное множество
Единственная точка
Пустое множество
Точка выпуклого множества называется угловой, если она не лежит внутри
никакого отрезка, соединяющего две другие точки из множества.
Пример 3
Угловыми точками треугольника являются его вершины (их три).
Угловыми точками круга являются точки окружности, которая его
ограничивает (их бесконечное число).
Угловая точка многогранника называется его вершиной.
Рассмотрим ЗЛП, заданную в симметричной форме.
a11 x1  a12 x2    a1n xn  b1



a m1 x1  am 2 x2    amn xn  bm
 x1 , x2 ,  , xn  0
Z  c1 x1  c2 x2    cn xn  max
7
Теорема 4 Оптимальный план ЗЛП соответствует вершине многогранника
решений, определяемого ее системой ограничений.
1.3.
Графический способ метод решения ЗЛП, заданной
симметричной форме, в случае двух переменных
в
Пусть задача линейного программирования с двумя переменными задана в
симметричной форме.
a11 x1  a12 x2  b1
a x  a x  b
22 2
2
 21 1








a m1 x1  am 2 x2  bm

 x1 , x2  0
Z  c1 x1  c2 x2  max
Для решения этой задачи можно перебрать все вершины многоугольника,
определяемого системой ограничений, и выбрать из них ту, в которой значение
функции больше. Но можно не перебирать все вершины, а воспользоваться
понятиями линии уровня и градиента.
Линией уровня функции Z называется множество точек, удовлетворяющее
уравнению Z  c , где c – произвольная константа. В двумерном случае, это
уравнение определяет прямую. Линии уровня образуют семейство
параллельных прямых.
 Z Z 
 называется градиентом функции Z. Вектор
,
Вектор grad Z  

x

x
 1
2 
grad Z в каждой точке перпендикулярен линии уровня, проходящей через эту
точку, и указывает направление наибольшего возрастания функции Z,
grad Z  (c1 , c2 ) .
Таким образом, наибольшее значение Z достигается в вершине, через
которую проходит линия уровня, соответствующая наибольшему значению Z.
Для графического решения задачи ЗЛП используют следующий алгоритм:
1. Записывают уравнения граничных прямых ai1x1+ai2x2=bi (i = 1,…,m) и
строят их на плоскости X1OX2 по двум точкам.
2. Отмечают
полуплоскости,
соответствующие
ограничениям
неравенствам. Для этого берут «пробную» точку, через которую не проходит
граница полуплоскости (часто берут, если прямая не проходит через начало
координат, точку (0,0)), и ее координаты подставляют в соответствующее
ограничение - неравенство. Если полученное неравенство верное, то искомой
будет полуплоскость, содержащая «пробную» точку; в противном случае,
искомой будет полуплоскость, которой данная точка не принадлежит.
3. Заштриховывают многоугольник, определяемый системой ограничений.
Для этого определяют общую часть ранее отмеченных m полуплоскостей,
лежащую в первой четверти (следует из условий неотрицательности
переменных).
8
4. Строят вектор grad Z  (c1 , c2 ) и одну из прямых семейства Z  c (чаще
всего Z = 0). Если выбранный для построения многоугольника масштаб не
позволяет построить grad Z , то вместо него строят вектор N  k  grad Z (в
grad Z
случае, если длина grad Z слишком мала для построения) или N 
(в
k
случае, если длина grad Z слишком велика для построения), где k  1.
5. В случае необходимости параллельным переносом линию уровня следует
расположить таким образом, чтобы многоугольник находился впереди линии
уровня по направлению grad Z .
6. Определяют экстремальную точку, соответствующую вершине
многоугольника, путем параллельного перемещения прямой Z = с в
направлении вектора grad Z . Это будет наиболее удаленная вершина
многоугольника, в которой линия уровня пересекается с многоугольником.
7. Вычисляют координаты оптимальной точки и значение функции Z в этой
точке.
Замечание: Если у функции требуется найти минимальное значение, то
линию уровня Z = c перемещают в направлении вектора  grad Z (или
перемещают в направлении grad Z , но находят первую вершину пересечения
линии уровня с многоугольником).
В зависимости от особенностей области допустимых решений и взаимного
расположения области и вектора grad Z при решении задачи линейного
программирования возможны различные случаи. Рассмотрим их.
1. Если область допустимых решений – ограниченный многоугольник, то
может быть либо единственное решение, либо бесконечно много
решений – все точки отрезка, соединяющего две вершины
многоугольника (альтернативный оптимум). В случае альтернативного
оптимума оптимальный план представляется выражением координат
произвольной точки отрезка через координаты ее концов.
2. Если область допустимых решений – неограниченный многоугольник, то
в зависимости от направления grad Z задача может иметь или не иметь
решения. В этом случае так же может оказаться альтернативный
оптимум.
На рисунке а) функция достигает минимума в точке А, а максимума – в
любой точке отрезка ВС (альтернативный оптимум); на рисунке б) максимум
достигается в точке А, минимума функция не имеет; на рисунке в) функция не
имеет ни минимума, ни максимума.
9
Пример 1
Решить графически ЗЛП:
2 x1  5 x2  20
8 x  5 x  40
 1
2

5 x1  6 x2  30
 x1 , x2  0
Z  50 x1  40 x2  max
Решение
Каждое неравенство
полуплоскость. Запишем
полуплоскостей.
исходной системы ограничений
уравнения граничных прямых
определяет
для этих
(1) 2х1 + 5х2 = 20
(2) 8х1 + 5х2 = 40
(3) 5х1 + 6х2 = 30
х1
х1
0
5
х1
0
6
x2
8
0
x2
5
0
x2
0
10
4
0
Построим прямые.
10
Каждая прямая разбивает плоскость на две полуплоскости. Для выбора
полуплоскостей, определяемых каждым неравенством, подставим координаты
«пробной» точки (0;0) в каждое неравенство. Получаем:
2  0 + 5  0  20 верно. Следовательно, отмечаем полуплоскость, содержащую
«пробную» точку (0;0).
8  0 + 5  0  40 верно. Следовательно, отмечаем полуплоскость, содержащую
«пробную» точку (0;0).
5  0 + 6  0  30 верно. Следовательно, отмечаем полуплоскость, содержащую
«пробную» точку (0;0).
Выбранные полуплоскости отметим стрелочками. Найдем пересечение
отмеченных полуплоскостей с учетом условия: х1,х2  0. Заштрихуем
полученный пятиугольник.
Построим линию уровня Z = 0: 50х1 + 40х2 = 0
х1
0
4
x2
0
-5
Вектор grad Z  (50;40) определяет направление наибольшего возрастания
grad Z
функции Z. Построим из начала координат вектор N 
 (5;4) . Этот
10
вектор также показывает направление наибольшего возрастания функции.
Перемещая линию уровня параллельным переносом в направлении вектора
N , находим последнюю точку пересечения линии уровня и заштрихованного
пятиугольника – точку А. Эта точка является точкой максимума функции.
Точка А получается в результате пересечения прямых (2) и (3). Для
нахождения ее координат решим систему:
 8х1 + 5х2 = 40  5
 –
 5х1 + 6х2 = 30  8
_________________
-23x2 = -40
11
40 920  200
40
40  5  x1
720 90
23 
23
x2 
 x1 



23
8
8
8
23  8 23
90
40 4500  1600 6100
 90 40 
Z max  Z  ;   50   40  

23
23
23
23
 23 23 
 90 40  6100
Ответ: Z max  Z  ;  
.
23
 23 23 
40  5 
Пример 2
Пусть имеются два пункта, расстояние между которыми равно 1000 км.
Между ними необходимо осуществить связь, имеющую 12 телефонных, 31
телеграфных и 18 фототелеграфных каналов с помощью кабелей двух типов,
обладающих следующими характеристиками:
Каналы
Количество каналов для кабеля типа
I
II
Телефонные
1
3
Телеграфные
5
4
Фототелеграфные
2
3
Стоимость 1 км кабеля (в у.е.)
12
16
Определить необходимое количество кабелей каждого типа для
осуществления связи с наименьшими затратами. Решить задачу графически.
Решение
Введем переменные: x1 – количество кабеля типа I, x2 – количество кабеля
типа II. По определению эти переменные должны быть неотрицательны. При
связи, использующей x1 кабелей I типа и x2 кабелей II типа, могут
использоваться x1+3x2 телефонных каналов, 5x1+4x2 телеграфных каналов и
2x1+3x2 фототелеграфных каналов. Для осуществления связи необходимо
наличие не менее требуемого количества каналов. Получаем ограничения на
количества имеющихся каналов:
x1  3 x2  12
5 x1  4 x2  31
2 x1  3 x2  18
Затраты на осуществление связи, имеющей x1 кабелей I типа и x2 кабелей II
типа, составят: (12x1+16x2)1000=12000x1+16000x2 условных единиц. Получаем
математическую модель задачи:
12
 x1  3 x2  12
5 x  4 x  31
 1
2

2 x1  3 x2  18
 x1 , x2  0
Z ( x1 , x2 )  12000 x1  16000 x2  min
Решим задачу графически. Каждое неравенство исходной системы
ограничений определяет полуплоскость. Запишем уравнения граничных
прямых для этих полуплоскостей.
(1) х1 + 3х2 = 12
(2) 5х1 + 4х2 = 31
(3) 2х1 + 3х2 = 18
х1
х1
0
6,2
х1
0
9
x2
7,8
0
x2
6
0
x2
0
12
4
0
Построим прямые.
Каждая прямая разбивает плоскость на две полуплоскости. Для выбора
полуплоскостей, определяемых каждым неравенством, подставим координаты
«пробной» точки (0;0) в каждое неравенство. Получаем:
0 + 3  0  12 не верно. Следовательно, отмечаем полуплоскость, не
содержащую «пробную» точку (0;0).
5  0 + 4  0  31 не верно. Следовательно, отмечаем полуплоскость, не
содержащую «пробную» точку (0;0).
2  0 + 3  0  18 не верно. Следовательно, отмечаем полуплоскость, не
содержащую «пробную» точку (0;0).
Выбранные полуплоскости отметим стрелочками. Найдем пересечение
отмеченных полуплоскостей с учетом условия: х1,х2  0. Заштрихуем
полученный неограниченный четырехугольник ABCD.
Построим линию уровня Z = 0: 12000х1 + 16000х2 = 0
13
х1
x2
0
4
0
-3
Вектор grad Z  (12000;16000 ) определяет направление наибольшего
возрастания функции Z. Построим из начала координат вектор
grad Z
N
 (4;3) . Этот вектор также показывает направление наибольшего
4000
возрастания функции.
Перемещая линию уровня параллельным переносом в направлении вектора
N , находим первую точку пересечения линии уровня и заштрихованного
четырехугольника – точку B. Эта точка является точкой минимума функции.
Точка B получается в результате пересечения прямых (2) и (3). Для
нахождения ее координат решим систему:
 5х1 + 4х2 = 31  3
 –
 2х1 + 3х2 = 18  4
_________________
7x1 = 21
31  5  x1 31  5  3 16
x1  3  x2 

 4
4
4
4
Z min  Z 3;4  12000  3  16000  4  100000
Ответ: Для осуществления связи с наименьшими затратами необходимо 3
кабеля I типа и 4 кабеля II типа. При этом минимальные затраты составят
100 000 у.е.
1.4.
Использование надстройки Поиск решения MS Excel
Для решения оптимизационных задач используется надстройка Поиск
Решения. Все действия по настройке и использованию данной надстройки
приводятся для Excel 2007 и выше. Сначала необходимо убедиться, что эта
надстройка присутствует на вкладке Данные в группе Анализ. Если команда
Поиск решения или группа Анализ отсутствует, необходимо загрузить эту
надстройку. Для этого щелкните пиктограмму Microsoft Office
(в
верхнем левом углу окна), далее щелкните кнопку Параметры Excel. В
появившемся окне Параметры Excel выберите слева поле Надстройки. В
правой части окна должно быть установлено значения поля Управление равным
Надстройки Excel, нажмите кнопку Перейти, которая находится рядом с этим
полем. В окне Надстройки установите флажок рядом с пунктом Поиск решения
и нажмите кнопку ОК. Далее можно работать с установленной надстройкой
Поиск Решения.
До вызова Поиск Решения необходимо подготовить данные для решения
задачи (из математической модели):
1) Определить ячейки, в которые будет помещен результат решения
(изменяемые ячейки).
14
2) Ввести данные системы ограничений (коэффициенты при неизвестных и
правую часть).
3) Ввести зависимости от изменяемых ячеек для левых частей системы
ограничений.
4) Ввести зависимость от изменяемых ячеек для целевой функции.
Ниже перечислены основные поля и кнопки диалогового окна Поиск
решения и их назначение.
 Поле Установить целевую ячейку служит для указания ячейки,
содержащей
целевую
функцию,
значение
которой
необходимо
максимизировать, минимизировать или установить равным заданному числу.
(Эта ячейка должна содержать формулу).
 Переключатель Равной служит для выбора варианта оптимизации
значения целевой ячейки (максимизация, минимизация или подбор заданного
значения). Чтобы установить заданное значение, введите его в поле,
расположенное справа от слова «Значение».
 Поле Изменяя ячейки служит для указания ячеек, значения которых
изменяются в процессе поиска решения до тех пор, пока не будут выполнены
наложенные ограничения и условие оптимизации значения ячейки, указанной в
поле Установить целевую ячейку.
 Кнопка Предположить используется для автоматического поиска ячеек,
влияющих на формулу, ссылка на которую дана в поле Установить целевую
ячейку. Результат поиска отображается в поле Изменяя ячейки.
 Поле Ограничения служит для отображения списка ограничений в
поставленной задачи. Ограничения можно добавлять, удалять, изменять с
помощью соответствующих кнопок, расположенных возле поля Ограничения.
 Кнопка Добавить служит для добавления ограничений. При нажатии этой
кнопки открывается диалоговое окно Добавить ограничение, с помощью
которого вводятся ограничения.
15
 Кнопка Изменить служит для редактирования уже добавленных ранее
ограничений. При этом открывается диалоговое окно Изменить ограничение,
которое позволяет редактировать выбранное ограничение.
 Кнопка Удалить служит для удаления выбранного ограничения.
 Кнопка Выполнить решает поставленную задачу.
 Кнопка Закрыть служит для выхода без поиска решения поставленной
задачи. При этом сохраняются установки, сделанные в окнах диалога,
появлявшихся после нажатий на кнопки Параметры, Добавить, Изменить или
Удалить.
 Кнопка Параметры служит для установления различных настроек поиска
решения: время, числа итераций и т.д. При этом открывается диалоговое окно
Параметры поиска решения, в котором настроить параметры, можно
загрузить или сохранить оптимизируемую модель.
 Кнопка Восстановить служит для очистки полей окна диалога и
восстановления значений параметров поиска решения, используемых по
умолчанию.
Описание ограничений, присущих оптимизационной задаче, выполняется с
помощью двух однотипных диалоговых окон «Добавление ограничения» и
«Изменение ограничения», одно из которых представлено на рис. 11.
Ниже перечислены основные поля и органы управления названных
диалоговых окон.
 Поле «Ссылка на ячейку» служит для указания ячейки или диапазона, на
значения которых необходимо наложить ограничение.
 Раскрывающийся список предназначен для выбора условия (<=, >=, =)
определяющего ограничение.
 Поле «Ограничение» служит для задания числа, формулы, ссылки на
ячейку или диапазон, определяющие ограничение.
 Кнопка «Добавить» используется для того, чтобы, не возвращаясь в окно
диалога «Параметры поиска решения», наложить новое условие на поиск
решения задачи.
Управление алгоритмом поиска и определение его параметров (скорости
сходимости, точности и т.п.) выполняется с помощью диалогового окна
«Параметры поиска решения», представленного на рисунке:
16
В этом окне можно изменять условия и варианты поиска решения для
линейных и нелинейных задач, а также загружать и сохранять оптимизируемые
модели. Значения и состояния элементов управления, используемые по
умолчанию, подходят для решения большинства задач.
Ниже описаны значения полей, переключателей и флагов этого диалогового
окна:
 Поле «Максимальное время» служит для ограничения времени,
отпускаемого на поиск решения задачи. В поле можно ввести время (в
секундах), не превышающее 32767; значение 100, используемое по умолчанию,
подходит для решения большинства простых задач.
 Поле «Предельное число итераций» служит для управления временем
решения задачи путем ограничения числа промежуточных вычислений. В поле
можно ввести количество итераций, не превышающее 32767; значение 100,
используемое по умолчанию, подходит для решения большинства простых
задач.
 Поле «Относительная погрешность» служит для задания точности, с
которой определяется соответствие ячейки целевому значению или
приближение к указанным границам. Поле должно содержать число из
интервала от 0 до 1. Относительная погрешность по умолчанию 0,000001.
 Поле «Допустимое отклонение» служит для задания допуска на
отклонение от оптимального решения, если множество значений влияющей
ячейки ограничено множеством целых чисел. При указании большего допуска
поиск решения заканчивается быстрее.
 Поле «Сходимость». Когда относительное изменение значения в целевой
ячейке за последние пять итераций становится меньше числа, указанного в поле
«Сходимость», поиск прекращается. Сходимость применяется только к
нелинейным задачам, условием служит дробь из интервала от 0 до 1.
17
 Флаг «Линейная модель» служит для ускорения поиска решения
линейной задачи оптимизации или линейной аппроксимации нелинейной
задачи.
 Флаг «Показывать результаты итераций» служит для приостановки
поиска решения для просмотра результатов отдельных итераций.
 Флаг «Автоматическое масштабирование» служит для включения
автоматической нормализации входных и выходных значений, качественно
различающихся по величине, например, максимизация прибыли в процентах по
отношению к вложениям, исчисляемым в миллионах рублей.
 Флаг «Значения не отрицательны» позволяет установить нулевую
нижнюю границу для тех влияющих ячеек, для которых она не была указана в
поле "Ограничение" диалогового окна «Добавить ограничение».
 Переключатель «Оценки» служит для указания метода экстраполяции
(линейная или квадратичная), используемого для получения исходных оценок
значений переменных в каждом одномерном поиске.
 Значение переключателя «Линейная» служит для использования
линейной экстраполяции вдоль касательного вектора.
 Значение переключателя «Квадратичная» служит для использования
квадратичной экстраполяции, которая дает лучшие результаты при решении
нелинейных задач и не играет роли для линейных задач.
 Переключатель «Производные» служит для указания метода численного
дифференцирования и для линейных задач его значение не играет роли.
 Переключатель «Метод поиска» служит для выбора алгоритма
оптимизации (метод Ньютона или метод сопряженных градиентов) для
указания направления поиска. Для решения задач линейного программирования
его значения несущественны.
 Кнопка «Загрузить модель» служит для отображения на экране
диалогового окна «Загрузить модель», в котором можно задать ссылку на
область ячеек, содержащих загружаемую модель.
 Кнопка «Сохранить модель» служит для отображения на экране
диалогового окна «Сохранить модель», в котором можно задать ссылку на
область ячеек, предназначенную для хранения модели оптимизации. Данный
вариант предусмотрен для хранения на листе более одной модели оптимизации,
первая модель сохраняется автоматически.
1.5.
Решение ЗЛП средствами MS Excel.
Пример
Решим задачу из Примера 2 раздела 1.3 с использованием
Поиск решения MS Excel.
 x1  3 x2  12
5 x  4 x  31
 1
2

2 x1  3 x2  18
 x1 , x2  0
18
настройки
Z ( x1 , x2 )  12000 x1  16000 x2  min
Для решения нашей задачи создадим в Excel книгу с именем «Решение
задачи линейного программирования». Подготовим данные на листе.
Сначала определим ячейки, в которые будет помещен результат решения.
Пусть это будут ячейки В2, С2, сделаем у них заголовки. В этих ячейках нет
данных, их должен будет рассчитать Excel, они выделены цветом. Далее
заполним коэффициенты при неизвестных и правые части системы
ограничений (строки 5-7). Заведем строку 9 для целевой функции. Цветом
выделена ячейка, в которой будет находиться значение целевой функции для
найденного оптимального решения.
В ячейки D5, D6, D7 ведем формулы для зависимостей левых частей
системы ограничений, а в ячейку E9 – формулу для зависимости целевой
функции.
19
Далее необходимо воспользоваться надстройкой Поиск решения. На
вкладке Данные в группе Анализ выберите команду Поиск решения.
Появится диалоговое окно Поиск решения, которое необходимо заполнить
следующим образом (для добавления ограничений пользуемся кнопкой
Добавить):
Далее нажимаем кнопку Параметры и в появившемся окне Параметры
поиска решений устанавливаем флажок неотрицательные значения, линейная
модель и нажимаем OK.
В окне Поиск решения после нажатия кнопки Выполнить появляется окно
Результаты поиска решения, в котором выбираем сохранение найденных
значений и нажимаем кнопку ОК.
20
Результаты поиска решений (для ячеек В2 и С2 установлены числовые
форматы с 0 знаками после запятой):
Получили 𝑍𝑚𝑖𝑛 (3; 4) = 100000. Решение совпадает с найденным графическим
способом.
1.6.
Двойственные задачи
Рассмотрим задачу использования сырья. Для изготовления двух видов
продукции P1, P2 предприятие использует 4 вида сырья S1, S2, S3, S4. Запасы
сырья и расходы на изготовление каждого вида продукции приведены в
таблице. Составить план производства, при котором стоимость выпущенной
продукции будет максимальной.
Сырье
Запасы
S1
Расход на единицу продукции
P1
P2
20
3
2
S2
16
4
1
S3
30
0
3
S4
40
4
0
10
6
Стоимость
единицы
продукции (у.е.)
Для составления математической модели задачи введем две переменные: x1
– количество произведенной продукции P1 и x2 – количество произведенной
21
продукции P2. По определению эти переменные должны быть неотрицательны.
При производстве продукции предприятие израсходует 2x1+3x2 единиц сырья
S1, 2x1+x2 единиц сырья S2, 3x2 единиц сырья S3 и 4x2 единиц сырья S4.
Предприятие не может израсходовать сырья больше, чем у него имеется,
поэтому получаем следующие ограничения на использование имеющегося
сырья:
3x1  2 x2  20
4 x1  x2  16
3x2  30
4 x1  40
От продажи выпущенной продукции предприятие получит 10x1+6x2 у.е.
Получаем математическую модель задачи:
3 x1  2 x2  20
4 x  x  16
2
 1
3
x

30
 2
4 x1  40

 x1 , x2  0
Z ( x1 , x2 )  10 x1  6 x2  max
Предположим, что по некоторым обстоятельствам потребитель отказался
от заказа, и предприятие решило продать сырье, не выпуская продукцию. По
каким ценам будет продаваться сырье? Составим математическую модель
возникшей задачи.
Введем три переменные:
y1  стоимость единицы сырья S1,
y2  стоимость единицы сырья S2,
y3  стоимость единицы сырья S3,
y4  стоимость единицы сырья S4.
По определению эти переменные должны быть неотрицательны.
Предприятию имеет смысл не выпускать продукцию только в случае, если
выручка от продажи сырья не меньше, чем стоимость произведенной из этого
сырья продукции. На производство одной единицы продукции P1 расходуется
3 единицы сырья S1, 4 единицы сырья S2 и 4 единицы сырья S4. Если не
выпускать продукцию P1, а продать все сырье, из которого его можно
изготовить, то выручка от реализации этого сырья составит 3 y1  4 y2  4 y4 .
Аналогично, выручка от реализации сырья, из которого можно изготовить
продукцию P2, составит 2 y1  y2  3 y3 . Выручка от продажи сырья должна быть
не меньше стоимости единицы соответствующей продукции. Получаем
ограничения:
3 y1  4 y2  4 y4  10
2 y1  y2  3 y3  6
22
С другой стороны, покупатель сырья хочет купить это сырье как можно
дешевле. На покупку сырья будет затрачено 20 y1  16 y2  30 y3  40 y4 у.е.
Получаем математическую модель задачи:
3 y1  4 y 2  4 y 4  10

2 y1  y 2  3 y3  6
y , y , y , y  0
 1 2 3 4
W ( y1 , y 2 , y3 , y 4 )  20 y1  16 y 2  30 y3  40 y 4  min
Составленная задача называется двойственной к исходной. Как видно из
построенных моделей кроме экономической связи между ними существует и
математическая связь. Перечислим условия, связывающие построенные задачи.
1. Количество переменных двойственной задачи соответствует количеству
ограничений исходной задачи.
2. Цели задач противоположны: в исходной задаче функция максимизируется,
а в двойственной минимизируется.
3. Коэффициенты при неизвестных в целевой функции исходной задачи
являются правыми частями в ограничениях двойственной задачи и,
наоборот, правые части ограничений исходной задачи являются
коэффициентами при неизвестных в целевой функции двойственной задачи.
4. Знаки неравенств задач противоположны: все неравенства исходной задачи
имеют знак «», а двойственной «».
5. Матрица коэффициентов при неизвестных в системе ограничений
двойственной
задачи
является
транспонированной
матрицей
коэффициентов при неизвестных в системе ограничений исходной задачи .
x1 x2
y1 y 2 y3 y 4
 3 2


 3 4 0 4
4 1


 0 3
2
1
3
0




4 0
6. Переменные обеих задач не отрицательны.
Заметим, что если к двойственной задаче построить двойственную, то
получим исходную задачу. Поэтому говорят о паре симметричных взаимно
двойственных задач.
Рассмотрим правила построения двойственной задачи в общем случае.
Пусть имеется задачи линейного программирования в общем виде:
23
y1 a11 x1  a12 x2    a1n xn  b1
 ..............................................

yk ak 1 x1  ak 2 x2    akn xn  bk

yk 1 ak 1,1 x1  ak 1, 2 x2    ak 1, n xn  bk 1
 ...................................................

ym am1 x1  am 2 x2    amn xn  bm
 x  0 i  1,  , l ; l  n 
 i
Z  c1 x1  c2 x2    cn xn  max
Каждой задаче такой можно поставить в соответствие двойственную задачу:
x1 a11 y1  a21 y2    am1 ym  c1

 ..............................................
xi a1l y1  a2l y2    aml ym  cl

xl 1 a1,l 1 y1  a2 ,l 1 y2    am ,l 1 ym  cl 1
 ...................................................

xn a1n y1  a2 n y2    amn yn  cn
 y  0  j  1,  , k , k  m ,
 j
W  b1 y1  b2 y 2    bm y m  min .
Построение двойственной задачи происходит по следующим правилам:
1. Сначала производится согласование цели исходной задачи и неравенств
ее системы ограничений. Если целевая функция максимизируется, то все знаки
неравенств должны быть «», если целевая функция минимизируется, то все
знаки неравенств должны быть «». Если какое-нибудь неравенство не
соответствует цели задачи, то его следует домножить на -1 для смены знака на
противоположный.
2. Каждому i-му ограничению системы исходной задачи соответствует
переменная yi двойственной задачи и, наоборот, каждому j-му ограничению
системы двойственной задачи соответствует переменная xi исходной задачи.
Подпишем эти соответствия слева от систем.
3. Коэффициенты при неизвестных в целевой функции двойственной
задачи совпадают с правыми частями системы ограничений исходной задачи.
4. Цель двойственной задачи противоположна цели исходной задачи.
5. Матрица системы ограничений двойственной задачи получается
транспонированием из матрицы системы ограничений исходной задачи;
6. Коэффициенты правых частей двойственной задачи – это коэффициенты
при неизвестных в целевой функции исходной задачи.
7. Знаки ограничений двойственной задачи могут быть либо
неравенствами, соответствующими цели двойственной задачи, либо
равенствами. Неравенство ставится в случае, если на переменную исходной
задачи, соответствующую ограничению двойственной задачи, наложено
24
условие неотрицательности. Если такого условия нет, то соответствующее
ограничение двойственной задачи – уравнение.
8. На переменную yj двойственной задачи следует наложить условие
неотрицательности лишь в том случае, если i-е ограничение исходной задачи –
неравенство.
Пример 1
Построим двойственную задачу для задачи
 x1  x2  x3  6
2 x  x  3 x  9
 1
2
3

3 x1  x2  2 x3  11
 x1 , x3  0
Z  5 x1  4 x2  6 x3  max
Согласуем знаки неравенств с целью задачи. Целевая функция
максимизируется, поэтому все неравенства должны быть «». Второе
неравенство не согласовано с целью функции, умножим его обе части на -1.
 x1  x2  x3  6
 2 x  x  3 x  9

1
2
3

3 x1  x2  2 x3  11
 x1 , x3  0
В системе имеется 3 ограничения, поэтому в двойственной задаче будет 3
переменные, подпишем эти переменные слева от ограничений.
y1  x1  x2  x3  6
y2  2 x1  x2  3 x3  9

y3 3 x1  x2  2 x3  11
 x1 , x3  0
Матрица левой части системы ограничений исходной задачи:
x1 x2 x3
 1 1 1 


A    2 1  3
 3 1 2 


Матрица левой части системы ограничений двойственной задачи:
y1 y2 y3
T
 1 1 1 
1  2 3 




AT    2 1  3   1 1 1 
 3 1 2 
1  3 2 




Двойственная задача:
25
x1  y1  2 y2  3 y3  5
x2  y1  y2  y3  4

x3  y1  3 y2  2 y3  6
 y1 , y2  0
W  6 y1  9 y2  11 y3  min
Второе ограничение является уравнением, т.к. на переменную x2 не
наложено условие неотрицательности. На переменную y3 не наложено условие
неотрицательности, т.к. соответствующее y3 ограничение исходной задачи –
уравнение.
В силу того, что все три формы записи задачи линейного
программирования (общая, симметричная, каноническая) эквиваленты, далее
будем рассматривать пару симметричных двойственных задач.
a11 x1  a12 x2    a1n xn  b1
..............................................


am1 x1  am 2 x2    amn xn  bm
 xi  0 i  1,  , n 
Z  c1 x1  c2 x2    cn xn  max
Двойственная задача:
a11 y1  a21 y2    am1 ym  c1
..................................................


a1n y1  a2 n y2    amn yn  cn
 y j  0  j  1,, m 
W  b1 y1  b2 y2    bm ym  min .
Следующие теоремы дают зависимости между решениями пары двойственных
задач.
Теорема 1 (Основное неравенство теории двойственности) Пусть
X  ( x1 , , xn ) и Y  ( y1 , , ym ) - допустимые решения пары двойственных
задач в симметричной форме. Тогда, W (Y )  Z ( X ) .
Экономический смысл Теоремы 1 заключается в том, что при любом
допустимом плане производства общая стоимость всей произведенной
продукции не превосходит суммарной оценки ресурсов, соответствующей
любому допустимому решению двойственной задачи.
Теорема 2 (Достаточный признак оптимальности решения) Пусть
*
*
*
*
*
X  ( x1 ,  , xn ) и Y *  ( y1 , , ym ) - допустимые решения пары двойственных
задач и W (Y * )  Z ( X * ) . Тогда, X*, Y* – оптимальные решения этих задач.
Экономический смысл Теоремы 2 заключается в том, что планы
производства и оценки ресурсов оптимальны, если стоимость произведенной
продукции совпадает с суммарной оценкой ресурсов.
26
Теорема 3 (О минимаксе) Если одна из пары двойственных задач имеет
решение, то и другая имеет решение, причем Z max  Wmin . Если одна из пары
двойственных задач имеет неограниченную функцию, то система ограничений
второй задачи не совместна.
Экономический смысл Теоремы 3 заключается в том, что максимально
возможная стоимость произведенной продукции совпадает с минимально
возможной стоимостью сырья.
Теорема 4 (Равновесия) Пусть X *  ( x1* ,  , xn* ) и Y *  ( y1* , , ym* ) допустимые планы пары двойственных задач в симметричной форме. Эти
планы являются оптимальными тогда и только тогда, когда выполняются
следующие условия дополняющей нежесткости:
 y1*  b1  a11 x1*    a1n xn*  0

................................................
 y *  b  a x*    a x*  0
m1 1
mn n
 m m
 





 


 x1*  a11 y1*    am1 ym*  c1  0

................................................
 x*  a y *    a y *  c  0
1n 1
mn m
n
 n

Теорема 4 позволяет определить оптимальное решение одной из пары
двойственных задач по решению другой. Если ограничение одной задачи при
подстановке оптимального решения обращается в строгое неравенство, то
соответствующая двойственная переменная в оптимальном решении
двойственной задачи равна 0. Если в оптимальном плане одной задачи какаянибудь переменная положительна, то соответствующее ей ограничение
двойственной задачи является уравнением.
Дадим
экономическую
интерпретацию
условиям
дополняющей
нежесткости. Если в оптимальном решении какое-нибудь сырье имеет
отличную от 0 оценку, то оно будет израсходовано полностью (ресурс является
дефицитным). Если сырье расходуется не полностью (находится в избытке), то
его оценка равна 0. Таким образом, получаем, что двойственные оценки – это
мера дефицитности сырья. Оценка показывает, на сколько возрастет значение
целевой функции при увеличении запаса соответствующего сырья на 1 ед. Если
некоторый вид продукции входит в план производства, то затраты на его
производство совпадают со стоимостью произведенной продукции. Если
затраты на производство какого-нибудь вида продукции больше стоимости
продукции, то продукция не производится.
В случае если одна из пары двойственных задач содержит две переменных,
ее можно решить графически, а, затем, найти решение двойственной задачи,
используя Теоремы 3 и 4. При этом могут возникнуть 3 случая: обе задачи
имеют допустимые решения, допустимые решения имеет только одна задача,
обе задачи не имеют допустимых решений.
27
Пример 2
Составить двойственную задачу и найти ее решение по теореме равновесия
 x2  2 x3  2 x4  2 x5  4

 2 x1  2 x2  2 x3  2 x4  x5  2
 x  0, i  1,5
 i
Z  10 x1  9 x2  19 x3  13 x4  11x5  max , если известно решение исходной
задачи: Z max  Z (3;4;0;0;0)  6 .
Построим двойственную задачу. Согласуем знаки неравенств с целью
исходной задачи.
y1  x2  2 x3  2 x4  2 x5  4

y2 2 x1  2 x2  2 x3  2 x4  x5  2
 x  0, i  1,5
 i
Z  10 x1  9 x2  19 x3  13 x4  11x5  max
Двойственная задача:
x1 2 y  10
2
x2  y1  2 y2  9

x3  2 y1  2 y2  19

x4 2 y1  2 y2  13
x5  2 y1  y2  11
y , y  0
 1 2
W  4 y1  2 y 2  min
Найдем оптимальное решение двойственной задачи по теореме
равновесия. Запишем условия дополняющей нежесткости.
 y1 (4  ( x2  2 x3  2 x4  2 x5 ))  0
 y (2  (2 x  2 x  2 x  2 x  x ))  0
1
2
3
4
5
 2
 x1 (2 y2  10)  0

 x2 ( y1  2 y2  9)  0
 x (2 y  2 y  19)  0
1
2
 3
 x4 (2 y1  2 y2  13)  0
 x (2 y  y  11)  0
1
2
 5
Подставим в составленную систему оптимальное решение исходной
задачи: 𝑥1 = 3, 𝑥2 = 4, 𝑥3 = 0, 𝑥4 = 0, 𝑥5 = 0.
28
𝑦1 ∙ (4 − (4 − 2 ∙ 0 + 2 ∙ 0 − 2 ∙ 0)) = 0
𝑦2 ∙ (−2 − (2 ∙ 3 − 2 ∙ 4 + 2 ∙ 0 − 2 ∙ 0 − 0)) = 0
3 ∙ (−2𝑦2 − 10) = 0
4 ∙ (𝑦1 − 2𝑦2 + 9) = 0
0 ∙ (−2𝑦1 − 2𝑦2 + 19) = 0
0 ∙ (2𝑦1 − 2𝑦2 + 13) = 0
0 ∙ (−2𝑦1 − 𝑦2 + 11) = 0
{
Произведение равно нулю, если один из множителей равен 0. Получаем
𝑦1 ∙ 0 = 0
𝑦2 ∙ 0 = 0
−2𝑦2 − 10 = 0
𝑦1 − 2𝑦2 + 9 = 0
0=0
0=0
{
0=0
Тогда,
−2𝑦2 − 10 = 0
𝑦2 = 5
{
{
𝑦1 − 2𝑦2 + 9 = 0
𝑦1 = 2𝑦2 − 9 = 10 − 9 = 1
Оптимальное решение двойственной задачи 𝑊𝑚𝑖𝑛 = 𝑊(1; 5) По Теореме 3
Z max  Wmin  6 . Окончательно, 𝑊𝑚𝑖𝑛 = 𝑊(1; 5) = −6.
Пример 3
Составить двойственную задачу к задаче из примера раздела 1.5 и найти ее
решение по теореме равновесия
𝑥1 + 3𝑥2 ≥ 12
5𝑥 + 4𝑥2 ≥ 31
{ 1
2𝑥1 + 3𝑥2 ≥ 18
𝑥1 , 𝑥2 ≥ 0
𝑍(𝑥1 , 𝑥2 ) = 12000𝑥1 + 16000𝑥2 → 𝑚𝑖𝑛
В разделе 1.5 было найдено решение исходной задачи средствами MS Excel:
𝑍𝑚𝑖𝑛 (3; 4) = 100000
Составим двойственную задачу. Знаки неравенств уже согласованы с
целью задачи.
𝑦1 𝑥1 + 3𝑥2 ≥ 12
𝑦2 5𝑥1 + 4𝑥2 ≥ 31
𝑦3 {2𝑥1 + 3𝑥2 ≥ 18
𝑥1 , 𝑥2 ≥ 0
𝑍(𝑥1 , 𝑥2 ) = 12000𝑥1 + 16000𝑥2 → 𝑚𝑖𝑛
Двойственная задача:
𝑥1 𝑦1 + 5𝑦2 + 2𝑦3 ≥ 12000
𝑥2 {3𝑦1 + 4𝑦2 + 3𝑦3 ≥ 16000
𝑦1 , 𝑦2 , 𝑦3 ≥ 0
29
𝑊(𝑦1 , 𝑦2 , 𝑦3 ) = 12𝑦1 + 31𝑦2 + 18𝑦3 → 𝑚𝑎𝑥
Найдем оптимальное решение двойственной задачи по теореме
равновесия. Запишем условия дополняющей нежесткости.
𝑦1 (𝑥1 + 3𝑥2 − 12) = 0
𝑦2 (5𝑥1 + 4𝑥2 − 31)) = 0
𝑦3 (2𝑥1 + 3𝑥2 − 18) = 0
𝑥1 (12000 − (𝑦1 + 5𝑦2 + 2𝑦3 )) = 0
{𝑥2 (16000 − (3𝑦1 + 4𝑦2 + 3𝑦3 )) = 0
Подставим в составленную систему оптимальное решение исходной
задачи: 𝑥1 = 3, 𝑥2 = 4.
𝑦1 (3 + 3 ∙ 4 − 12) = 0
𝑦2 (5 ∙ 3 + 4 ∙ 4 − 31) = 0
𝑦3 (2 ∙ 3 + 3 ∙ 4 − 18) = 0
3 ∙ (12000 − (𝑦1 + 5𝑦2 + 2𝑦3 )) = 0
{4 ∙ (16000 − (3𝑦1 + 4𝑦2 + 3𝑦3 )) = 0
Произведение равно нулю, если один из множителей равен 0. Получаем
𝑦1 ∙ 3 = 0𝑦1 = 0
𝑦2 ∙ 0 = 0
𝑦3 ∙ 0 = 0
12000 − (𝑦1 + 5𝑦2 + 2𝑦3 ) = 0
{16000 − (3𝑦1 + 4𝑦2 + 3𝑦3 ) = 0
Тогда,
12000 − (0 + 5𝑦2 + 2𝑦3 ) = 0
5𝑦 + 2𝑦3 = 12000 × 3
{
{ 2
|
4𝑦2 + 3𝑦3 = 16000 × 2
16000 − (3 ∙ 0 + 4𝑦2 + 3𝑦3 ) = 0
15𝑦2 + 6𝑦3 = 36000
{
8𝑦2 + 6𝑦3 = 32000
Вычтем из первого уравнения второе:
4000
7𝑦2 = 4000 𝑦2 =
7
4000
3200 − 8𝑦2 3200 − 8 ∙ 7
192000 32000
𝑦3 =
=
=
=
6
6
42
21
4000 32000
Оптимальное решение двойственной задачи 𝑊𝑚𝑖𝑛 = 𝑊 (0;
;
) По
7
21
Теореме 3 Z max  Wmin  100000 .
Окончательно, 𝑊𝑚𝑖𝑛 = 𝑊 (0;
4000 32000
7
;
21
) = 100000
Вопросы для самопроверки
1. Может ли система ограничений общей ЗЛП включать строгие
неравенства?
2. Может ли целевая функция ЗЛП содержать нелинейные выражения из
переменных?
3. Может ли допустимое решение ЗЛП содержать отрицательную
компоненту?
30
4. Чем отличается оптимальное решение ЗЛП от допустимого?
5. Чем отличается канонический вид ЗЛП от общего?
6. Каждая ли симметрическая задача может быть приведена к
каноническому виду? Если да, то как это делается?
7. Может ли каноническая задача быть приведена к общему виду?
8. Какое максимальное число неравенств может содержать ЗЛП с двумя
переменными?
9. Как строится ОДР ЗЛП с двумя переменными?
10.Может ли ОДР быть невыпуклым многоугольником?
11.Может ли ОДР быть открытым множеством? Пустым?
12.Что такое градиент? Как его строить?
13.Что такое линия уровня? Как ее строить?
14.Может ли линия уровня целевой функции быть параллельной вектору
целевой функции?
15.Может ли ЗЛП с двумя переменными иметь два и только два
оптимальных решения?
16.В каком случае задача ЛП с двумя переменными не имеет решения?
17.Какой вывод можно делать из того, что ОДР не ограничена по
направлению, противоположному вектору целевой функции?
18.Сколько переменных может содержать ЗЛП, которую можно решить
графически?
19.Можно ли для ЗЛП, содержащей в системе ограничений неравенства
разных направлений, построить двойственную задачу?
20.Если в основной задаче отсутствуют условия неотрицательности
переменных, то какие последствия это влечет в двойственной задаче
задаче?
21.Чем отличаются матрицы систем ограничений в паре двойственных
задач?
22.Какова
связь
между
экстремальными
значениями
пары
двойственныхзадач?
23.Что можно сказать о решении двойственной задачи, если решение
основной задачи не существует по причине несовместимости ее системы
ограничений?
24.В чем смысл теоремы равновесия?
2. Специальные задачи линейного программирования
2.1.
Задача о назначениях
Пример 1
В каждом из пяти филиалов производственного объединения могут
изготовляться изделия пяти видов. Учитывая необходимость углубления
специализации, в каждом из филиалов решено выпускать только один вид
продукции, при этом каждый из видов изделий должен выпускаться одним из
филиалов. Себестоимость каждого изделия в каждом из филиалов различна и
задается матрицей C (𝑐𝑖𝑗 - себестоимость производства i-м филиалом j-го вида
31
продукции). Найти распределение выпуска продукции между филиалами,
чтобы общая себестоимость выпущенной продукции была минимальной.
5

10
С 7

6
4

11
11
8
4
2
6
9
6
3
0
11
11
8
7
5
4

5
2

8
8 
Составим математическую модель задачи.
1, если 𝑖 − й филиал производит изделие 𝑗 − го вида
𝑥𝑖𝑗 = {
0, иначе
i = 1,2,3,4,5, j = 1,2,3,4,5
Каждое филиал должен выпускать только один вид продукции:
 x11  x12  x13  x14  x15  1
x  x  x  x  x  1
22
23
24
25
 21
 x 31  x 32  x 33  x 34  x 35  1
x  x  x  x  x  1
42
43
44
45
 41
 x 51  x 52  x 53  x 54  x 55  1
Каждая вид продукции должен выпускаться:
 x11  x 21  x 31  x 41  x 51  1
x  x  x  x  x  1
22
32
42
52
 12
 x13  x 23  x 33  x 43  x 53  1
x14  x 24  x 34  x 44  x 54  1

x15  x 25  x 35  x 45  x 55  1
Условие неотрицательности переменных:
xij  0, i = 1,2,3,4,5, j = 1,2,3,4,5
Суммарная себестоимость выпущенной продукции:
Z = 5x11 + 11x12 + 6x13 + 11x14 + 4x15 + 10x21 + 11x22 + 9x23 + 11x24+ 5x25 + 7x31 +
+ 8x32 + 6x33 + 8x34 + 2x35 + 6x41 + 4x42 + 3x43 + 7x44+ 8x45+ 4x51 + 2x52 + 5x54 +
+ 8x55  min
Подобную задачу можно решать симплекс-методом, но можно
использовать специальный метод – венгерский метод. Алгоритм венгерского
метода:
1 этап
1. В каждой строке находим минимальный элемент и вычитаем его из всех
элементов соответствующей строки.
2. В каждом столбце находим минимальный элемент и вычитаем его из всех
элементов соответствующего столбца.
2 этап
32
1. Проводим минимальное количество вертикальных и горизонтальных линий,
пересекающих все нули.
2. Если таких количество таких линий равно количеству строк матрицы С, то 2ой этап завершен.
3. В противном случае выберем среди неперечеркнутых элементов
минимальный и построим новую матрицу по правилам:
а) из неперечеркнутых элементов вычитаем минимальный элемент;
б) к элементам, через которые проведены две линии, прибавляем минимальный
элемент;
в) все остальные элементы не меняем.
Далее переходим на п.3
3 этап
В построении решения участвует последняя матрица из этапа 2.
1. Находим строку или столбец матрицы, в которой имеется единственный 0.
Если такой строки или столбца нет, то берем любую строку или столбец,
содержащие нули. Пусть 𝑐𝑖𝑗 = 0.
2. Тогда в матрице X 𝑥𝑖𝑗 = 1 и все остальные элементы i-ой строки и j-го
столбца равны 0.
3. В матрице С вычеркиваем i-ю строку и j-ый столбец.
4. Если в матрице С остался один элемент, то соответствующий элемент
матрицы X равен 1 и этап 3 закончен. Иначе переходим на п.1.
Решим сформулированную выше задачу.
Этап 1
 5 11 6 11 4  I  4


10 11 9 11 5  II  5 В каждой строке находим минимальный
элемент и вычитаем его из всех элементов
С   7 8 6 8 2  III  2
соответствующей строки.


 6 4 3 7 8  IV  3
 4 2 0 5 8


 1 7 2 7 0

 В каждом столбце находим минимальный элемент и вычитаем
 5 6 4 6 0  его из всех элементов соответствующего столбца.
 5 6 4 6 0


3
1
0
4
5


 4 2 0 5 8


I  1 II  1 IV  4
Этап 2
33
0

4
4

2
3

6
5
5
0
1
2
4
4
0
0
3
2
2
0
1
0

0
0

5
8 
0

3
3

2
2

6
4
4
0
0
3
4
4
1
0
3
1
1
0
0
1

0
0

6
8 
0

3
3

3
3

5
3
3
0
0
2
3
3
1
0
2
0
0
0
0
1

0
0

7
9 
Проводим минимальное количество вертикальных и
горизонтальных линий, пересекающих все нули. Таких линий
4<5, поэтому продолжим преобразования. Выберем среди
неперечеркнутых элементов минимальный (это 1) и построим
новую матрицу по правилам 3-го пункта 2-го этапа алгоритма.
Проводим минимальное количество вертикальных и
горизонтальных линий, пересекающих все нули. Таких
линий 4<5, поэтому продолжим преобразования. Выберем
среди неперечеркнутых элементов минимальный (это 1) и
построим новую матрицу по правилам 3-го пункта 2-го
этапа алгоритма.
Проводим минимальное количество вертикальных и
горизонтальных линий, пересекающих все нули. Таких линий
5, поэтому преобразования матрицы закончены.
Этап 3
Порядок составления матрицы X:
1. Т.к. в 1-ой строке преобразованной матрицы имеется единственный элемент
равный 0 (c11=0), то x11=1, а все остальные элементы 1-ой строки и 1-го
столбца матрицы X равны 0. В матрице С исключаем из дальнейшего
рассмотрения 1-ю строку и 1-ый столбец.
1 0 0 0 0
0 5 2 2 1




0

3 3 3 0 0

X  0
С  3 3 3 0 0




0

3 0 1 0 7
0

3 0 0 0 9




2. Среди оставшихся невычеркнутыми элементов матрицы С 3-ий столбец
содержит единственный 0 (c53=0). Поэтому считаем, что x53=1, а все
остальные элементы 5-ой строки и 3-го столбца матрицы X равны 0. В
матрице С исключаем из дальнейшего рассмотрения 5-ю строку и 3-ий
столбец.
34
1 0 0 0 0
0 5 2 2 1




0
0

3 3 3 0 0

X  0
С  3 3 3 0 0
0




0
0

3 0 1 0 7
 0 0 1 0 0
3 0 0 0 9




3. Среди оставшихся невычеркнутыми элементов матрицы С второй столбец
содержит единственный 0 (c42=0). Поэтому считаем, что x42=1, а все
остальные элементы 4-ой строки и 2-го столбца матрицы X равны 0. В
матрице С исключаем из дальнейшего рассмотрения 4-ю строку и 2-ой
столбец.
1 0 0 0 0
0 5 2 2 1




0
0
0
3
3
3
0
0







X 0 0 0
С  3 3 3 0 0




0
1
0
0
0
3
0
1
0
7




 0 0 1 0 0
3 0 0 0 9




4. Среди оставшихся невычеркнутыми элементов матрицы С нет строк или
столбцов, содержащих единственный 0. Поэтому выбираем любой нулевой
элемент (например, c24=0) и считаем, что x24=1, а все остальные элементы 2ой строки и 4-го столбца матрицы X равны 0. В матрице С исключаем из
дальнейшего рассмотрения 2-ю строку и 4-ый столбец.
1 0 0 0 0
0 5 2 2 1




 0 0 0 1 0
3 3 3 0 0

X  0 0 0 0
С  3 3 3 0 0




 0 1 0 0 0
3 0 1 0 7
 0 0 1 0 0
3 0 0 0 9




5. Т.к. c35=0, то x35=1.
Итак, оптимальное решение задачи о назначениях:
 1 0 0 0 0  По исходной матрице С и полученной матрице X


 0 0 0 1 0  находим минимальную себестоимость (суммируем
X *   0 0 0 0 1  только те элементы матрицы C, которым соответствуют


 0 1 0 0 0  единичные элементы матрицы X).
 0 0 1 0 0


Zmin= 5 + 11 + 2 + 4 + 0 = 22.
zmax = 11 + 12 + 18 + 9 = 50
Решим задачу о назначениях
с использованием средств MS Excel.
Для решения нашей задачи создадим в Excel книгу с именем «Решение
задачи о назначениях». Подготовим данные на листе.
Сначала определим ячейки, в которые будут вводиться элементы матрицы С.
Пусть это будут ячейки B3:F7. Заполним их и оформим заголовки строк и
35
столбцов. Определим ячейки, куда будет помещен результат решения. Пусть
это будут ячейки B12:F17, сделаем у них заголовки. В этих ячейках нет данных,
их должен будет рассчитать Excel, они выделены цветом. Заведем строку 18 для
целевой функции. Цветом выделена ячейка, в которой будет находиться
значение целевой функции для найденного оптимального решения.
В ячейки G12:G16 введем нахождение сумм неизвестных по строкам, в
ячейки B17:F17 – нахождение сумм неизвестных по столбцам, в ячейку D18 –
формулу для нахождения целевой функции.
36
Далее необходимо воспользоваться надстройкой Поиск решения. На
вкладке Данные в группе Анализ выберите команду Поиск решения.
Появится диалоговое окно Поиск решения, которое необходимо заполнить
следующим образом (для добавления ограничений пользуемся кнопкой
Добавить):
37
Далее нажимаем кнопку Параметры и в появившемся окне Параметры
поиска решений устанавливаем флажок неотрицательные значения, линейная
модель и нажимаем OK.
В окне Поиск решения после нажатия кнопки Выполнить появляется окно
Результаты поиска решения, в котором выбираем сохранение найденных
значений и нажимаем кнопку ОК.
Результаты поиска решений :
38
1 0 0 0 0


 0 0 0 1 0
Получили X *   0 0 0 0 1  𝑍𝑚𝑖𝑛 (𝑋 ∗ ) = 22 . Решение совпадает с


0
1
0
0
0


 0 0 1 0 0


найденным венгерским методом.
Интерпретация решения:
Первый филиал должен выпускать 1-ый вид изделий, второй филиал
должен выпускать 4-ый вид изделий, третий филиал должен выпускать 5-ый
вид изделий, четвертый филиал должен выпускать 2-ой вид изделий, пятый
филиал должен выпускать 3-ий вид изделий. При таком распределении
себестоимость выпуска изделий будет минимальна и составит 22 у.е.
Алгоритм решения задачи о назначениях предполагает минимизацию ее
целевой функции. Если имеется задача о назначениях, целевую функцию
которой нужно максимизировать, то поступают таким же образом, как и при
переходе от одной формы записи к другой в задаче линейного
программирования: все элементы матрицы умножаются на (- 1) и далее решают
как в случае минимизации.
Если матрица С не является квадратной, в нее следует включить
дополнительные фиктивные строки и столбцы, необходимые для приведения ее
39
к квадратной форме. Значения стоимости, соответствующие фиктивным
клеткам, как правило, равны нулю. Назначения, размещаемые в клетках
фиктивных строк, фактически не существуют. Назначения, соответствующие
фиктивным столбцам, на деле представляют собой те единицы, которые не
подлежат распределению.
Пример 2
В цехе предприятия имеются 5 универсальных станков, которые могут
выполнять четыре вида работ. Производительность каждого станка при
выполнении каждой работы задается матрицей С. Найти наиболее
рациональное распределение работ между станками, максимизирующее
суммарную производительность станков, если каждый станок
можно
загружать только одной работой.
5 11 6 11
10 11 9 11
7
8 6 8
6
4 3 7
2 0 5)
(4
Составим математическую модель задачи:
Пусть
если 𝑖 − й станок выполняет 𝑗 − ю работу
𝑥𝑖𝑗 = {
0, иначе
i = 1,2,3,4,5, j = 1,2,3,4
Каждый станок должен выполнять не более одной работы
 x 11  x 12  x 13  x 14  1
x  x  x  x  1
22
23
24
 21
 x 31  x 32  x 33  x 34  1
x  x  x  x  1
42
43
44
 41
 x 51  x 52  x 53  x 54  1
Каждая работа должна выполняться только одним станком:
 x 11  x 21  x 31  x 41  x 51  1
x  x  x  x  x  1
 12
22
32
42
52

 x 13  x 23  x 33  x 43  x 53  1
x 14  x 24  x 34  x 44  x 54  1
Условие неотрицательности переменных:
xij  0, i = 1,2,3,4,5, j = 1,2,3,4
Суммарная производительность:
Z = 5x11 + 11x12 + 6x13 + 11x14 + 10x21 + 11x22 + 9x23 + 11x24+ 7x31 + 8x32 +6x33 +
+ 8x34 + 6x41 + 4x42 + 3x43 + 7x44+ 4x51 + 2x52 + 5x54  max
Т.к. матрица С не квадратная, то введем фиктивный 5-ый вид работ с
нулевыми производительностями для всех станков.
40
Перейдем к задаче минимизации. Для этого, вместо функции Z рассмотрим
функцию –Z и будем использовать, что max(Z) =-min(-Z). В матрице С
поменяем все знаки элементов на противоположные.
Этап 1
  5  11  6  11 0  I  11 Для того чтобы все элементы матрицы


стали неотрицательными, найдем в каждой
  10  11  9  11 0  II  11 строке максимальный по модулю элемент и
С    7  8  6  8 0  III  8 прибавим этот модуль ко всем элементам



6

4

3

7
0

 IV  7 соответствующей строки.
  4  2 0  5 0 V  5


6

1
1

1
1

0 5 0 11

0 2 0 11
0 2 0 8

3 4 0 7
3 5 0 5 
В каждом столбце находим минимальный элемент и
вычитаем его из всех элементов соответствующего
столбца.
I  1 III  2 V  5
Этап 2
5

0
0

0
0

6
 Проводим минимальное количество вертикальных и
6  горизонтальных линий, пересекающих все нули. Таких линий
3  5, поэтому преобразования матрицы закончены.

2
0 
Этап 3
Порядок составления матрицы X:
1. Т.к. в 5-ом столбце преобразованной матрицы имеется единственный
элемент равный 0 (c55=0), то x55=1, а все остальные элементы 5-го столбца и
5-ой строки матрицы X равны 0. В матрице С исключаем из дальнейшего
рассмотрения 5-ю строку и 5-ый столбец.
0

5 0 3 0 6




0

0 0 0 0 6
~
X
C   0 0 0 0 3
0




0
0
3
2
0
2




0 0 0 0 1
0 3 3 0 0




2. Среди оставшихся невычеркнутыми элементов матрицы С нет строки или
столбца, содержащих единственный 0. Поэтому, выберем любой 0 ,
например, c12=0. Поэтому считаем, что x12=1, а все остальные элементы 1-ой
строки и 2-го столбца матрицы X равны 0. В матрице С исключаем из
дальнейшего рассмотрения 1-ю строку и 2-ой столбец.
0
0
0
3
3
3
0
0
2
3
0
0
0
0
0
41
 0 1 0 0 0
5 0 3 0 6




0
0

0 0 0 0 6
~
X
C   0 0 0 0 3
0
0




0
0

 0 3 2 0 2
0 0 0 0 1
0 3 3 0 0




3. Среди оставшихся невычеркнутыми элементов матрицы С нет строки или
столбца, содержащих единственный 0. Поэтому, выберем любой 0,
например, c21=0. Поэтому считаем, что x21=1, а все остальные элементы 2-ой
строки и 1-го столбца матрицы X равны 0. В матрице С исключаем из
дальнейшего рассмотрения 2-ю строку и 1-ый столбец.
 0 1 0 0 0
5 0 3 0 6




1
0
0
0
0
0
0
0
0
6




~ 


X 0 0
C  0 0 0 0 3
0




0
0
0
0
3
2
0
2




0 0 0 0 1
0 3 3 0 0




4. Т.к. в 3-ем столбце преобразованной матрицы имеется единственный
элемент равный 0 (c33=0), то x33=1, а все остальные элементы 3-го столбца и
3-ей строки матрицы X равны 0. В матрице С исключаем из дальнейшего
рассмотрения 3-ю строку и 3-ий столбец.
 0 1 0 0 0
5 0 3 0 6




1 0 0 0 0
0 0 0 0 6
~
X   0 0 1 0 0
C   0 0 0 0 3




0
0 0 0
 0 3 2 0 2
0 0 0 0 1
0 3 3 0 0




5. Т.к. c44=0, то x44=1.
Итак, оптимальное решение задачи о назначениях:
0

1
~
X*   0

0
0

1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0

1
*
X  0

0
0

1
0
0
0
0
0
0
1
0
0
0

0
0

1
0 
0

0
0

0
1 
Т.к. последний столбец матрицы является
фиктивным, то, отбросив его, получим оптимальное
решение исходной задачи:
По исходной матрице С и полученной матрице X
находим
максимальную
производительность
(суммируем только те элементы матрицы C,
которым соответствуют единичные элементы
матрицы X).
42
Zmax= 11 + 10 + 6 + 7 = 34.
Интерпретация решения:
Первый станок должен выполнять 2-ю работу, второй – 1-ю работу, третий
станок – 3-ю работу, четвертый станок – 4-ю работу, пятый станок не будет
выполнять
никакой
работы.
При
таком
распределении
работ
производительность будет максимальна и составит 34 единицы.
2.2.
Теория игр
2.2.1. Основные понятия
При решении ряда практических задач в области экономики, политики и
военного дела приходится принимать решения в ситуациях, в которых
сталкиваются интересы двух или более сторон, которые преследуют
противоположные цели, причём результат любого действия каждой из сторон
зависит от того, какое действие предпримет противник. Такие ситуации
называются конфликтными.
Примеры конфликтных ситуаций:
 любая ситуация в ходе военных действий;
 планирование военных операций;
 конкурентная борьба в экономике;
 выборы в парламент;
 салонные игры (например, шашки, шахматы, карты) .
Теория игр – математическая теория конфликтных ситуаций, ее цель выработать рекомендации по рациональному образу действий участников
конфликтной ситуации. При этом не учитываются элементы риска, просчеты и
ошибки игроков.
 Для математического анализа конфликтной ситуации отбрасывают
второстепенные факты и строят формализованную модель конфликтной
ситуации – игру. Конфликтные стороны называются игроками. Игра ведется
по определенным правилам. Правила игры устанавливают возможные
действия игроков, объём сведений каждой стороны о поведении другой,
результат, к которому приводит каждая совокупность ходов. Правила
определяют так же конец игры, когда больше ходов делать не разрешается.
Каждый игрок делает ход – выбор одного из вариантов действий,
предусмотренных правилами игры. Ходы бывают личные и случайные.
Личный ход – сознательный выбор игроком допустимого действия.
Случайный ход – выбор допустимого действия с помощью механизма
случайного выбора (например, подбрасывания монеты) и его
осуществление. Будем считать, что в конце игры любой игрок получает
выигрыш. Можно провести классификацию игр:
 По числу игроков:
 одного лица (например, пасьянс);
 двух лиц – парная игра (например, шахматы);
43
 n лиц – множественная (они делятся на коалиационные, когда
несколько лиц могут заключить союз, и бескоалиационные).
 По количеству и характеру ходов:
 с полной информацией (например, шахматы);
 с неполной информацией (например, карты. Большинство игр - с
неполной информацией).
 По количеству ходов:
 конечные (у каждого игрока имеется конечное количество
ходов);
 бесконечные (например, дуэль).
 По выигрышу:
 с нулевой суммой (парная игра, в которой выигрыш одной
стороны равен проигрышу другой);
 с ненулевой суммой (например, экономические процессы
создают или уничтожают богатство).
Стратегией игрока называется совокупность правил, определяющая
выбор варианта действий при каждом ходе игрока в зависимости от ситуации,
сложившийся в игре. Игра m  n – конечная парная игра, в которой у одного
игрока имеется m стратегий, а у второго n стратегий.
Далее будем рассматривать парные игры m  n с нулевой суммой.
Пусть имеется игра двух игроков A и B. Пусть у игрока A имеется m
стратегий A1, A1,…, Am, а у игрока B имеется n стратегий B1, B1,…, Bn.
Пусть aij – выигрыш (положительный или отрицательный) игрока A при выборе
стратегии Ai игроком A и стратегии Bj игроком B. Если ходы случайные, то aij –
математическое ожидание выигрыша игрока A. Платёжной матрицей или,
матрицей игры называется матрица
B
B1
B2
a11
a21
…
am1
a12
a22
…
am2
…
Bn
A
A1
A2
…
Am
…
…
…
…
a1n
a2n
…
amn
Пример 1. (Игра "поиск").
Игрок A прячется в одном из двух убежищ, а игрок B его ищет. Правила
игры: если игрок B находит A, то A платит ему 1 рубль, в противном случае
игрок B платит A 1 рубль.
Стратегии игроков:
игрок A: A1 – спрятаться в убежище № 1,
A2 – спрятаться в убежище № 2;
игрок B: B1 – искать в убежище № 1,
44
B2 – искать в убежище № 2;
Платежная матрица:
B
B1 B2
A
A1
-1
1
A1
1
-1
Это игра с неполной информацией. Если игра проводится один раз, то
бессмысленно говорить о разумных стратегиях. Любой игрок с одинаковым
основанием может применять любую стратегию. Но если игра многократно
повторяется, то положение меняется. Если игрок будет придерживаться одной
стратегии или чередования стратегий в определённой последовательности, то
противник догадается об этом и начнёт выигрывать. Поэтому от верного
проигрыша игроков может спасти только случайное чередование стратегий.
Например, игрок перед своим ходом подбрасывает монету и, если выпала
"решка", то игрок выбирает первую стратегию, а если "орёл", то вторую.
Оптимальной стратегией называется стратегия, которая при
многократном повторении игры обеспечивает игроку максимально возможный
средний выигрыш.
2.2.2. Нижняя и верхняя цены игры. Принцип минимакса
Дополним матрицу игры столбцом с минимальными значениями в строках и
строкой с максимальными значениями в столбцах:
B
B1
B2
…
Bn
min в строке
A
A1
a11 a12 …
a1n 1
A2
a21 a22 …
a2n 2
…
…
…
…
…
Am
am1 am2 …
amn m
  max i
max в столбце
1
2
1  i m
n
  min  j
1 j  n
Величина   max i  max
1  i m
min aij называется нижней ценой игры
1 i  m 1 j  n
или максимином).
Стратегия игрока A, соответствующая максимину , называется
максиминной стратегией игрока A. Если игрок A придерживается своей
максиминной стратегии, то ему гарантирован выигрыш не меньше , то есть 
– это тот гарантированный минимальный выигрыш, который может обеспечить
себе игрок A, придерживаясь наиболее осторожной стратегии.
45
Величина   min  j  min
1 j  n
max aij называется верхней ценой игры
1 j  n 1 i m
или минимаксом. Стратегия игрока B, соответствующая минимаксу ,
называется минимаксной стратегией игрока B.
Теорема 1 Для игры двух лиц с нулевой суммой 𝛼 ≤ 𝛽.
Если игрок B придерживается своей минимаксной стратегии, то ему
гарантирован проигрыш не больше . Положение, при котором игроки
используют свои минимаксные стратегии неустойчиво и может быть нарушено
поступившими сведениями о выбранной стратегии другого игрока. Если оба
игрока разумны, то игрок A будет выбирать свою максиминную стратегию, а
игрок B – минимаксную.
Пример 2.
Найдем нижнюю и верхнюю цены игры из примера 1.
B
B1
B2
min в строке
A
A1
-1
1
-1
A2
1
-1
-1
 = -1
max в столбце
1
1
=1
Таким образом, если игрок A будет делать личные ходы, а его противник B
об этом узнает, то игрок A получит минимальный выигрыш -1, то есть он будет
в проигрыше, а игрок B получит минимальный проигрыш 1, то есть он будет
выигрывать. Аналогичное утверждение справедливо и для игрока B.
Игра называется игрой с седловой точкой, если нижняя и верхняя цена
игры совпадают. В этом случае, величина  =  =  называется чистой ценой
игры. Седловой точке соответствует пара минимаксных стратегий, которые
называются оптимальными, а их совокупность называется решением игры. В
игре с седловой точкой любому игроку выгодно придерживаться оптимальных
стратегий (любое отклонение от оптимальной стратегии ухудшает положение
игрока). Чистая цена игры в игре с седловой точкой является значением
выигрыша, которое в игре разумных противников игрок A не может увеличить,
а игрок B уменьшить. При разумном поведении игроков исход игры с седловой
точкой заранее предопределен. Играть в такие игры имеет смысл, если
противник не знает оптимальной стратегии.
Пример 3
Двое играют в следующую игру: одновременно выбрасывают 1, 2 или 3 пальца.
Выигрывает тот, у кого больше пальцев (выигрыш равен разности
выброшенных пальцев). Если оба выбросили одинаковое количество пальцев,
то никто не выиграл. Платежная матрица:
46
B
B1
B2
B3
min в строке
0
-1
-2
-2
A2
1
0
-1
1
A3
2
1
0
max в столбце
2
1
0
0
=0
A
A1
=0
Так как нижняя  и верхняя  цены игры совпадают, то игра имеет
седловую точку, поэтому игра решается в чистых стратегиях с чистой ценой
игры  = 0. Оптимальные стратегии сторон: оба игрока выбрасывают по 3
пальца. При этом никто не выигрывает.
2.2.3. Решение игр в смешанных стратегиях
Если игра не имеет седловой точки, то игрок A гарантирует себе выигрыш,
равный нижней цене игры, которая меньше верхней цены игры. Конечно,
игрок А хочет увеличить выигрыш, а В – уменьшить проигрыш. Если игроки
будет чередовать свои стратегии случайным образом, то в некоторых случаях А
получит бόльший выигрыш, чем нижняя цена игры.
Смешанной стратегией игрока A называется набор вероятностей
𝑝̅ = (𝑝1 , 𝑝2 , … , 𝑝𝑚 ), где p1 + p2 +… + pm = 1, с которыми он чередует свои
стратегии A1, A1,…, Am. Аналогично определяется смешанная стратегия
игрока B как набор 𝑞̅ = (𝑞1 , 𝑞2 , … , 𝑞𝑛 ), где q1 + q2 +… + qn = 1. В этом случае
𝑛
выигрыш
А
определяется
как
𝑀(𝑝̅ , 𝑞̅) = ∑𝑚
𝑖=1 ∑𝑗=1 𝑎𝑖𝑗 𝑝𝑖 𝑞𝑗
(математическое ожидание).
Теорема 2 (Фон-Неймана)
Для любой конечная игра m  n двух лиц существуют смешанные
стратегии 𝑝̅ ∗ = (𝑝1 ∗ , 𝑝2 ∗ , … , 𝑝𝑚 ∗ ) игрока А и 𝑞̅ ∗ = (𝑞1 ∗ , 𝑞2 ∗ , … , 𝑞𝑛 ∗ )и игрока В,
что для любых других стратегий 𝑝̅ = (𝑝1 , 𝑝2 , … , 𝑝𝑚 ) и 𝑞̅ = (𝑞1 , 𝑞2 , … , 𝑞𝑛 )
выполняется неравенство:
𝑀(𝑝̅ , 𝑞̅ ∗ ) ≤ 𝑀(𝑝̅ ∗ , 𝑞̅ ∗ ) ≤ 𝑀(𝑝̅ ∗ , 𝑞̅)
Экономический смысл теоремы: Если игрок А отступает от стратегии 𝑝̅ ∗ ,
то его выигрыш уменьшается. Если игрок В отступает от стратегии 𝑞̅ ∗ , то его
проигрыш увеличивается. Таким образом, смешанные стратегии (𝑝̅ ∗ , 𝑞̅ ∗ )
образуют седловую точку во множестве смешанных стратегий, игрокам не
выгодно отступать от стратегий, соответствующих этой точке. Если 𝑝̅ ∗ , 𝑞̅ ∗ - пара
смешанных стратегий, образующих седловую точку, то величина
𝑛
∗ ∗
𝜈 = ∑𝑚
𝑖=1 ∑𝑗=1 𝑎𝑖𝑗 𝑝𝑖 𝑞𝑗 называется ценой игры.
Теорема 3 (о цене игры)
Цена игры удовлетворяет неравенству 𝛼 ≤ 𝜈 ≤ 𝛽.
47
2.2.4. Решение матричных игр 2х2 в смешанных стратегиях
Игра 2х2 – наиболее простой случай конечных игр. Рассмотрим игру, не
имеющую седловой точки, с платежной матрицей
В1 В2
А1 a11 a12
А2 a21 a22
Пусть 𝑝̅ = (𝑝1 , 𝑝2 ) и 𝑞̅ = (𝑞1 , 𝑞2 ) – смешанные стратегии игроков. Найдем
оптимальные смешанные стратегии игроков. Если игрок В придерживается
стратегии В1, то средний выигрыш А составит 𝑎11 𝑝1 + 𝑎21 𝑝2 . Если игрок В
придерживается стратегии В2, то средний выигрыш А составит 𝑎12 𝑝1 + 𝑎22 𝑝2 .
По свойству оптимальных смешанных стратегий эти средние выигрыши
должны совпадать и быть равными цене игры. Получаем систему:
𝑎 𝑝 + 𝑎21 𝑝2 = 𝑎12 𝑝1 + 𝑎22 𝑝2 = 𝜈
{ 11 1
𝑝1 + 𝑝2 = 1
Решаем систему
𝑎11 𝑝1 + 𝑎21 (1 − 𝑝1 ) = 𝑎12 𝑝1 + 𝑎22 (1 − 𝑝1 )
𝑝1 (𝑎11 − 𝑎21 ) + 𝑎21 = 𝑝1 (𝑎12 − 𝑎22 ) + 𝑎22
𝑎22 − 𝑎21
𝑝1 ∗ =
𝑎11 − 𝑎21 − 𝑎12 + 𝑎22
𝑎22 − 𝑎21
𝑎11 − 𝑎12
𝑝2 ∗ = 1 − 𝑝1 ∗ = 1 −
=
𝑎11 − 𝑎21 − 𝑎12 + 𝑎22 𝑎11 − 𝑎21 − 𝑎12 + 𝑎22
Аналогично, составляем систему для игрока В:
𝑎 𝑞 + 𝑎12 𝑞2 = 𝑎21 𝑞1 + 𝑎22 𝑞2 = 𝜈
{ 11 1
𝑞1 + 𝑞2 = 1
Решая систему, находим:
𝑎22 − 𝑎12
𝑞1 ∗ =
𝑎11 − 𝑎21 − 𝑎12 + 𝑎22
𝑎11 − 𝑎21
𝑞2 ∗ =
𝑎11 − 𝑎21 − 𝑎12 + 𝑎22
Цена игры
𝑎11 𝑎22 − 𝑎12 𝑎21
𝜈=
𝑎11 − 𝑎21 − 𝑎12 + 𝑎22
Решение игры 2х2 можно найти так же геометрически. Для этого на оси
абсцисс отложим отрезок А1А2 длиной 1. Левый конец отрезка (p=0)
соответствует стратегии А1, правый – стратегии А2. Промежуточные точки
отрезка соответствуют смешанным стратегиям 𝑝̅ = (𝑝1 , 𝑝2 ) первого игрока.
Причем расстояние от промежуточной точки отрезка до правого края – это
вероятность p2 стратегии А2, а расстояние до левого края – вероятность p1
стратегии А1. Через концы отрезка А1А2 проведем прямые, перпендикулярные
оси абсцисс, на них будем откладывать выигрыши при стратегиях А1 и А2
соответственно. Если игрок В применяет стратегию В1, то выигрыши первого
игрока при стратегии А1 составляет a11, а при стратегии А2 составляет a21.
Отложим эти выигрыши на перпендикулярах и соединим полученные точки
прямой В1В1. Если игрок А применяет смешанную стратегию, то его выигрышу
48
соответствует некоторая точка на отрезке В1В1. Аналогично строим отрезок
В2В2, соответствующий применению вторым игроком стратегии В2. В
соответствии с принципом минимакса ломаная В1NВ2 – нижняя граница
выигрыша, получаемого игроком А. Точка N, в которой выигрыш максимален,
определяет цену игры и ее решение. Для нахождения оптимальной стратегии
игрока А достаточно составить уравнения прямых и найти точку пересечения.
Аналогично можно рассмотреть задачу минимизации верхней границы
выигрыша для игрока В.
Используя геометрическую интерпретацию можно найти решение игр,
заданных матрицей 2хn. Каждой из n стратегий игрока В будет соответствовать
прямая. Точка N, лежащая на нижней границе и дающая наибольшую величину
выигрыша, определяет цену игры и ее решение. При этом определяются
активные стратегии игрока В (соответствующие им прямые пересекаются в
точке N). Для активных стратегий вероятности не равны 0, остальные стратегии
игроком В не используются (их вероятности равны 0).
Аналогично можно решить игру с матрицей mxn. В этом случае строят
верхнюю границу выигрыша и на ней определяют минимум.
Пример 4
10 7 
Игра задана платежной матрицей A  
 .
8
11


1) Решить игру аналитически.
2) Провести моделирование результатов игры с помощью таблицы
равномерно распределенных случайных чисел, разыграв 30 партий; определить
относительные частоты использования чистых стратегий каждым игроком и
средний выигрыш, сравнив результаты с полученными теоретически в п.1.
Решение:
1. Найдем нижнюю и верхнюю цену игры.
49
B
A
A1
A2
max в столбце
B1
B2
10
8
7
11
10
11
min в строке
7
8
=8
 = 10
, следовательно, игра не имеет седловой точки, решение будет в
смешанных стратегиях.
Найдем аналитически оптимальную стратегию игрока А 𝑝̅ ∗ = (𝑝1 ∗ , 𝑝2 ∗ ) и
соответствующую цену игры .
Так как 𝑝̅ ∗ – оптимальная, то она должна гарантировать средний выигрыш
игроку А, равный цене игры, при любом поведении игрока В:
для стратегии В1: 10 p1  8 p2   ;
для стратегии В2: 7 p1  11 p2   .
С учетом того, что сумма вероятностей смешанной стратегии равна 1,
получаем систему уравнений:
10 p1  8 p2   ,

7 p1  11 p2   ,
 p  p  1.
2
 1
Вычтем из первого уравнения второе: 3 p1  3 p2  0 или p1  p 2 . Значит:
1

p

,
1

2

1

 p2  ,
 p1  p2 ,
2


 p1  p2  1,
1
1

7 p  11 p   ,   7   11   9.
2
2
2
 1

1
1
Итак: 𝑝̅ ∗ = ( , ),  = 9.
2 2
Аналогично получаем систему для нахождения смешанной стратегии
игрока В.
10q1  7q2   ,

8q1  11q2   ,
q  q  1.
2
 1
Вычтем из первого уравнения второе: 2q1  4q2  0 Откуда, q1  2q2 подставим
в первое уравнение (Вместо  подставим найденное значение для игрока А
 = 9):
20𝑞2 + 7𝑞2 = 9
27𝑞2 = 9
1
𝑞2 =
3
50
2
3
2 1
Итак: 𝑞̅ ∗ = ( , ).
𝑞1 =
3 3
1 1
2 1
Ответ: 𝑝̅ = ( , ), 𝑞̅ ∗ = ( , ) ,  = 9.
2 2
3 3
2. Проведем моделирование результатов решения с помощью таблицы
равномерно распределенных случайных чисел. Для 30 партий хватит 60 чисел,
на основе которых будут выбираться стратегии игроками. Используемые
случайные числа сгенерированы в MS Excel функцией =СЛЧИС(). В
приложении достаточно много чисел, но использовать для моделирования
можно любые 60, выбранные произвольно с любого места таблицы. Выберем
60 чисел:
∗
0,02988
0,61109
0,76606
0,73868
0,94483
0,41647
0,51314
0,71749
0,99401
0,41244
0,12558
0,49042
0,95854
0,56421
0,25710
0,88664
0,22625
0,46727
0,82235
0,24426
0,25974
0,61076
0,20704
0,07183
0,39190
0,83519
0,06211
0,18182
0,89122
0,37553
0,17641
0,65834
0,45154
0,99420
0,72491
0,46930
0,39299
0,45791
0,33631
0,09464
0,00937
0,25579
0,27367
0,11184
0,88888
0,39285
0,84336
0,08667
0,42694
0,56208
0,52264
0,80641
0,56261
0,80524
0,03791
0,34159
0,80859
0,58570
0,37053
0,68889
0,08086
0,07675
0,30037
0,42897
0,50773
0,77252
0,52694
0,75495
0,70413
0,59503
0,84858
0,84419
0,96485
0,45031
0,63034
0,65987
0,73306
0,68645
0,59805
0,92378
0,99427
0,18268
0,47252
0,05350
0,94091
0,48750
0,36874
0,90270
0,40425
0,03108
0,49452
0,29702
0,55084
0,67078
0,80165
0,79735
0,93390
0,87484
0,96181
0,33182
Будем выбирать стратегии игроков, используя геометрическое определение
вероятности. Так как все случайные числа из отрезка [0; 1], то чтобы стратегия
А1 появлялась примерно в половине случаев, будем ее выбирать если случайное
число меньше 0,5; в остальных случаях выбирается стратегия А2. Аналогично
для игрока В. Стратегию В1 будем выбирать, если соответствующее случайное
число меньше 2/30,67, в противном случае выбираем стратегию В2.
Заполним расчетную таблицу (Средний выигрыш игрока А считаем, как
отношение накопленного выигрыша к количеству сыгранных партий):
Номер
партии
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Случайное
число
игрока А
Стратегия
игрока А
А1: < 0,5
0,029
0,611
0,766
0,738
0,944
0,416
0,513
0,717
0,994
0,412
А1
А2
А2
А2
А2
А1
А1
А2
А2
А1
Случайное Стратегия
число
игрока В
игрока В В1: < 0,667
0,125
0,490
0,958
0,564
0,257
0,886
0,226
0,467
0,822
0,244
В1
В1
В2
В1
В1
В2
В1
В1
В2
В1
51
Выигрыш
А
Накопленный выигрыш А
Средний
выигрыш
А (цена
игры)
10
8
11
8
8
7
10
8
11
10
10
18
29
37
45
52
62
70
81
91
10,000
9,000
9,667
9,250
9,000
8,667
8,857
8,750
9,000
9,100
11.
0,259
А1
0,176
В1
10
101
9,182
12.
0,610
А2
0,658
В1
8
109
9,083
13.
0,207
А1
0,451
В1
10
119
9,154
14.
0,071
А1
0,994
В2
7
126
9,000
15.
0,391
А1
0,724
В2
7
133
8,867
16.
0,835
А2
0,469
В1
11
144
9,000
17.
0,062
А1
0,392
В1
10
154
9,059
18.
0,181
А1
0,457
В1
10
164
9,111
19.
0,891
А2
0,336
В1
8
172
9,053
20.
0,375
А1
0,094
В1
10
182
9,100
21.
0,009
А1
0,522
В1
10
192
9,143
22.
0,255
А1
0,806
В2
7
199
9,045
23.
0,273
А1
0,562
В1
10
209
9,087
24.
0,111
А1
0,805
В2
7
216
9,000
25.
0,888
А2
0,037
В1
8
224
8,960
26.
0,392
А1
0,341
В1
10
234
9,000
27.
0,843
А2
0,808
В2
11
245
9,074
28.
0,086
А1
0,585
В1
10
255
9,107
29.
0,426
А1
0,370
В1
10
265
9,138
30.
0,562
А2
0,688
В2
11
276
9,200
Таким образом, в результате моделирования в 30 партиях цена игры
(средний выигрыш) равен 9,2. Этот результат согласуется с теоретической
ценой игры 9.
Из 30 партий игрок А 18 раз применял стратегию А1, 12 раз – стратегию А2.
Игрок В 21 раз применял стратегию В1, 9 раз – стратегию В2. Частоты
использования игроками своих чистых стратегий соответственно равны:
p=(18/30;12/30)=(0,6;0,4),q=(21/30;9/30)=(0,7;0,3).
Сравнивая
с
∗
∗
теоретическими оптимальными стратегиями 𝑝̅ =(0,5; 0,5) и 𝑞̅ =(0,67; 0,33)
можно сделать вывод, что результаты моделирования достаточно близко
соответствуют теоретическим вероятностям даже для небольшого количества
партий.
Пример 5
2 3 11
Решить графически игру, заданную платежной матрицей 𝐴 = (
).
7 5 2
Решение
Матрица игры имеет размер 2х3, поэтому решение игры будем искать для
игрока А. Отложим отрезок единичной длины А1А2, каждой точке которого
поставим в соответствие некоторую смешанную стратегию первого игрока –
(p1, p2). В частности, точке А1 соответствует стратегия А1, точке А2 – стратегия
А2.
52
В точках А1 и А2 восстановим перпендикуляр и на полученных прямых
будем откладывать выигрыши игрока А при соответствующих стратегиях и
строить прямые, соответствующие стратегиям игрока В.
В соответствии с принципом минимакса ломаная В1NMВ3 – нижняя
граница выигрыша, получаемого игроком А. Точка N, в которой выигрыш
максимален, определяет цену игры и ее решение. Для нахождения оптимальной
стратегии игрока А достаточно составить уравнения прямых и найти точку
пересечения прямых В2В2 и В3В3.
Уравнение прямой, проходящей через 2 точки (x1,y1) и (x2,y2) имеет вид
𝑥−𝑥1
𝑦−𝑦1
=
. Прямая В2В2 проходит через точки (0,3) и (1,5), следовательно, ее
𝑥2 −𝑥1
𝑦2 −𝑦1
𝑥−0
уравнение
1−0
=
𝑦−3
5−3
или -2x+y=3. Прямая В3В3 проходит через точки (0,11) и
𝑥−0
𝑦−11
(1,2), следовательно, ее уравнение
=
или 9x+y=11. Для нахождения
1−0
2−11
точки пересечения прямых В2В2 и В3В3 решим систему:
−2𝑥 + 𝑦 = 3
{
9𝑥 + 𝑦 = 11
Вычтем из первого уравнения второе, получаем -11x=-8  x=8/11,
y=3+2x=49/11. Точка N(8/11,49/11), следовательно, p2=8/11, p1=1-8/11=3/11,
=49/11.
3 8
49
Таким образом, 𝑝̅ ∗ = ( , ), при цене игры 𝜈 = .
11 11
11
Из рисунка видно, что стратегия В1 не входит в оптимальную смешанную
стратегию, поэтому q3=0, и мы можем найти оптимальную смешанную
стратегию, удалив из платежной матрицы первый столбец. Получаем матрицу
3 11
(
), при этом столбцы ее соответствуют активным стратегиям В2, В3.
5 2
Так как 𝑞̅ ∗ – оптимальная, то она должна гарантировать средний выигрыш
игроку В, равный цене игры, при любом поведении игрока А:
53
для стратегии А1: 3𝑞2 + 11𝑞3 = 𝜈
для стратегии А2: 5𝑞2 + 2𝑞3 = 𝜈.
С учетом того, что сумма вероятностей смешанной стратегии равна 1, цена
49
игры 𝜈 = получаем систему уравнений:
11
49
3𝑞2 + 11𝑞3 =
11
49
5𝑞2 + 2𝑞3 =
11
{ 𝑞2 + 𝑞3 = 1
Вычтем из первого уравнения второе: −2𝑞2 + 9𝑞3 = 0
−2𝑞2 + 9𝑞3 = 0
{
𝑞2 + 𝑞3 = 1
Решая систему, находим
9
𝑞2 =
11
{
2
𝑞3 =
11
9 2
Оптимальная смешанная стратегия для игрока В 𝑞̅ ∗ = (0, , ).
11 11
3
8
Ответ: 𝑝̅ ∗ = ( , ), 𝑞̅ ∗ = (0,
11 11
9
2
, ), =
11 11
49
11
Пример 6
6 5
4 6
Решить графически игру, заданную платежной матрицей 𝐴 = (
).
2 7
1 8
Решение
Матрица игры имеет размер 4х2, поэтому решение игры будем искать для
игрока В. Аналогично примеру 5 отложим отрезок единичной длины В1В2,
каждой точке которого поставим в соответствие некоторую смешанную
стратегию второго игрока – (q1, q2). В частности, точке В1 соответствует
стратегия В1, точке В2 – стратегия В2.
В точках В1 и В2 восстановим перпендикуляр и на полученных прямых
будем откладывать выигрыши игрока А при соответствующих стратегиях и
строить прямые, соответствующие стратегиям игрока А.
54
В соответствии с принципом минимакса ломаная А1NА4 – верхняя граница
выигрыша, получаемого игроком А. Точка N, в которой выигрыш минимален,
определяет цену игры и ее решение. Для нахождения оптимальной стратегии
игрока В достаточно составить уравнения прямых и найти точку пересечения
прямых А1А1 и А4А4.
Уравнение прямой, проходящей через 2 точки (x1,y1) и (x2,y2) имеет вид
𝑥−𝑥1
𝑦−𝑦1
=
. Прямая А1А1 проходит через точки (0,6) и (1,5), следовательно, ее
𝑥2 −𝑥1
𝑦2 −𝑦1
𝑥−0
уравнение
1−0
=
𝑦−6
5−6
или x+y=6. Прямая А4А4 проходит через точки (0,1) и (1,8),
𝑥−0
𝑦−1
следовательно, ее уравнение
=
или -7x+y=1. Для нахождения точки
1−0
8−1
пересечения прямых А1А1 и А4А4 решим систему:
𝑥+𝑦 =6
{
−7𝑥 + 𝑦 = 1
Вычтем из первого уравнения второе, получаем 8x=5  x=5/8, y=6-x=43/8.
Точка N(5/8,43/8), следовательно, q2=5/8, q1=1-5/8=3/8, =43/8.
3 5
43
Таким образом, 𝑞̅ ∗ = ( , ), при цене игры 𝜈 = .
8 8
8
Из рисунка видно, что стратегии А2 и А3 не входят в оптимальную
смешанную стратегию, поэтому p2=0 и p3=0, и мы можем найти оптимальную
смешанную стратегию, удалив из платежной матрицы вторую и третью строку.
6 5
Получаем матрицу (
) , при этом строки ее соответствуют активным
1 8
стратегиям А1, А4.
Так как 𝑝̅ ∗ – оптимальная, то она должна гарантировать средний выигрыш
игроку А, равный цене игры, при любом поведении игрока В:
для стратегии В1: 6𝑝1 + 𝑝4 = 𝜈
для стратегии В2: 5𝑝1 + 8𝑝4 = 𝜈.
55
С учетом того, что сумма вероятностей смешанной стратегии равна 1, цена
43
игры 𝜈 = получаем систему уравнений:
8
43
6𝑝1 + 𝑝4 =
8
43
5𝑝1 + 8𝑝4 =
8
{ 𝑝1 + 𝑝4 = 1
Вычтем из первого уравнения второе: 𝑝1 − 7𝑝4 = 0
𝑝 − 7𝑝4 = 0
{ 1
𝑝1 + 𝑝4 = 1
Решая систему, находим
7
𝑝1 =
8
{
1
𝑝4 =
8
7
1
Оптимальная смешанная стратегия для игрока А 𝑝̅ ∗ = ( , 0,0, ).
8
8
7
1
3 5
43
Ответ: 𝑝̅ ∗ = ( , 0,0, ), 𝑞̅ ∗ = ( , ), 𝜈 =
8
8
8 8
8
Таким образом, имеем следующий алгоритм графического решения
простейших матричных игр 2хn ( или mx2):
1. Строим n (m) прямых, соответствующих стратегиям второго (первого)
игрока.
2. Строим нижнюю (верхнюю) границу выигрыша.
3. Выбираем на границе выигрыша точку с максимальной (минимальной)
ординатой.
4. Определяем по чертежу пару активных стратегий из числа построенных
для второго (первого) игрока.
5. Находим координаты точки максимума (минимума) и решение игры.
2.2.5. Сведение матричной игры к задаче линейного программирования
Если у каждого из игроков больше двух возможных стратегий, то можно
решение игры свести к решению задачи линейного программирования.
Найдем решение игры с платежной матрицей m  n :
𝑎11 𝑎12 … 𝑎1𝑛
𝑎21 𝑎22 … 𝑎2𝑛
( …
… … … )
𝑎𝑚1 𝑎𝑚2 … 𝑎𝑚𝑛
Пусть матрица игры не содержит седловой точки. Тогда решение игры будем
искать в смешанных стратегиях p= (p1, p2, …, pm) и q = (q1, q2, …, qm), где
p1 + p2 +… + pm = 1 и q1 + q2 +… + qn = 1
Стратегия 𝑝̅ ∗ является оптимальной, то есть при любой стратегии игрока B
средний выигрыш игрока A будет больше или равен цены игры , таким
образом, получаем систему ограничений
56
𝑎11 𝑝1 + 𝑎21 𝑝2 + ⋯ + 𝑎𝑚1 𝑝𝑚 ≥ 𝜈,
𝑎 𝑝 + 𝑎22 𝑝2 + ⋯ + 𝑎𝑚2 𝑝𝑚 ≥ 𝜈,
{ 12 1
…
𝑎1𝑛 𝑝1 + 𝑎2𝑛 𝑝2 + ⋯ + 𝑎𝑚𝑛 𝑝𝑚 ≥ 𝜈
Будем считать, что цена игры  больше нуля. Действительно, если   0, то
это означает, что некоторые элементы матрицы игры не положительные. Тогда
найдём число M>0, которое прибавим ко всем элементам матрицы игры и
получим новую матрицу с положительными элементами. Это сложение сделает
цену новой игры, равную +M, положительной, но не изменит решения игры.
Разделим обе части всех неравенств на положительное число  и обозначим
𝑝
𝑝
𝑝
𝑥1 = 1 , 𝑥2 = 2 , … , 𝑥𝑚 = 𝑚.
𝜈
𝜈
𝜈
тогда система ограничений примет вид
𝑎11 𝑥1 + 𝑎21 𝑥2 + ⋯ + 𝑎𝑚1 𝑥𝑚 ≥ 1,
𝑎12 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎𝑚2 𝑥𝑚 ≥ 1,
…
𝑎1𝑛 𝑥1 + 𝑎2𝑛 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑚 ≥ 1,
𝑥1 ≥ 0, 𝑥2 ≥ 0, … , 𝑥𝑚 ≥ 0
{
1
Далее, так как p1 + p2 +… + pm = 1, то 𝑥1 + 𝑥2 + ⋯ + 𝑥𝑚 = .
𝜈
Игрок A стремится максимизировать свой средний выигрыш , то есть
1
минимизировать отношение .

Таким образом, получаем задачу линейного программирования:
𝑎11 𝑥1 + 𝑎21 𝑥2 + ⋯ + 𝑎𝑚1 𝑥𝑚 ≥ 1,
𝑎12 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎𝑚2 𝑥𝑚 ≥ 1,
…
𝑎1𝑛 𝑥1 + 𝑎2𝑛 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑚 ≥ 1,
𝑥1 ≥ 0, 𝑥2 ≥ 0, … , 𝑥𝑚 ≥ 0
{
𝑍 = 𝑥1 + 𝑥2 + ⋯ + 𝑥𝑚 → 𝑚𝑖𝑛
∗
Заметим, что эта задача всегда имеет оптимальное решение (𝑥1∗ , 𝑥2∗ , … , 𝑥𝑚
).
Его можно найти симплекс-методом или с использованием средств Excel. Тогда
1
цена игры 𝜈 = ∗ ∗
∗ . Оптимальная смешанная стратегия первого игрока
𝑥1 +𝑥2 +⋯+𝑥𝑚
𝑝̅ = (𝑝1 , 𝑝2 , … , 𝑝𝑚 ), где 𝑝𝑖 = 𝑥𝑖∗ ∙ 𝜈.
Аналогичные рассуждения дают оптимальную стратегию ̅𝑞 ∗ игрока B. При
любой стратегии игрока А проигрыш игрока В не должен превышать цену
игры. Получаем систему ограничений:
𝑎11 𝑞1 + 𝑎12 𝑞2 + ⋯ + 𝑎1𝑛 𝑞𝑛 ≤ 𝜈,
𝑎 𝑞 + 𝑎22 𝑞2 + ⋯ + 𝑎2𝑛 𝑞𝑛 ≤ 𝜈,
{ 21 1
…
𝑎𝑚1 𝑞1 + 𝑎𝑚2 𝑞2 + ⋯ + 𝑎𝑚𝑛 𝑞𝑛 ≤ 𝜈
𝑞
𝑞
𝑞
Обозначим 𝑦1 = 1 , 𝑦2 = 2 , … , 𝑦𝑛 = 𝑛
𝜈
𝜈
𝜈
.
∗
57
Тогда для нахождения оптимальной смешанной стратегии игрока B
необходимо решить следующую задачу линейного программирования:
𝑎11 𝑦1 + 𝑎12 𝑦2 + ⋯ + 𝑎1𝑛 𝑦𝑛 ≤ 1,
𝑎21 𝑦1 + 𝑎22 𝑦2 + ⋯ + 𝑎2𝑛 𝑦𝑛 ≤ 1,
…
𝑎𝑚1 𝑦1 + 𝑎𝑚2 𝑦2 + ⋯ + 𝑎𝑚𝑛 𝑦𝑛 ≤ 1,
𝑦1 ≥ 0, 𝑦2 ≥ 0, … , 𝑦𝑛 ≥ 0
{
𝑊 = 𝑦1 + 𝑦 + ⋯ + 𝑦𝑛 → 𝑚𝑎𝑥
Это двойственная задача к ранее составленной. Задача всегда имеет
оптимальное решение (𝑦1∗ , 𝑦2∗ , … , 𝑦𝑛∗ ), которое можно найти симплекс-методом
или по теореме равновесия, зная решение ранее составленной задачи. Тогда
1
цена новой игры 𝜈 = ∗ ∗
∗ . Оптимальная смешанная стратегия второго
𝑦1 +𝑦2 +⋯+𝑦𝑛
игрока 𝑞̅ = (𝑞1 , 𝑞2 , … , 𝑞𝑛 ), где 𝑞𝑗 = 𝑦𝑗∗ ∙ 𝜈.
∗
Пример 7
−1 1 6
Найти решение игры, заданной платежной матрицей: ( 5 2 −3)
−2 4 5
Решение:
A
A1
Найдем верхнюю и нижнюю цены игры.
B
B1 B2 B3 min в строке
-1 1
6
-1
2 -3
-3
A2
5
A3
-2 4
max в столбце 5
4
5
6
-2
 = -1
=4
, следовательно, игра не имеет седловой точки, решение будет в
смешанных стратегиях.
Чтобы свести матричную игру для игрока А к задаче линейного
программирования преобразуем платежную матрицу так, чтобы все ее
элементы были больше нуля – прибавим ко всем элементам матрицы число 4.
Получаем преобразованную платежную матрицу:
3 5 10
(9 6 1 )
2 8 9
Средний выигрыш А должен быть не меньше цены игры  при любом
поведении игрока В. Так, если игрок В использует свою первую стратегию, то
средний выигрыш игрока А составит: 3𝑝1 + 9𝑝2 + 2𝑝3 , 3𝑝1 + 9𝑝2 + 2𝑝3 ≥ 𝜈 .
Аналогично, записав неравенства для стратегий В2 и В3, получаем систему
линейных ограничений:
58
3𝑝1 + 9𝑝2 + 2𝑝3 ≥ 𝜈
{5𝑝1 + 6𝑝2 + 8𝑝3 ≥ 𝜈
10𝑝1 + 𝑝2 + 9𝑝3 ≥ 𝜈
Из условия p1 + p2 + p3 = 1, разделив обе части уравнения на >0 (цена
игры больше нуля, т.к. все элементы преобразованной матрицы больше нуля),
𝑝
𝑝
𝑝
1
получаем целевую функцию 𝑍 = 1 + 2 + 3 = . Цель игрока А – получить
𝜈
𝜈
𝜈
𝜈
максимальный средний выигрыш, т.е. max, а значит
𝑝
1
𝜈
→ 𝑚𝑖𝑛 . Если
обозначить 𝑥𝑖 = 𝑖 (i=1, 2, 3), то целевая функция 𝑍 = 𝑥1 + 𝑥2 + 𝑥3 → 𝑚𝑖𝑛.
𝜈
Перейдем в системе ограничений к переменным xi, разделив каждое
неравенство на >0:
3𝑥1 + 9𝑥2 + 2𝑥3 ≥ 1
{5𝑥1 + 6𝑥2 + 8𝑥3 ≥ 1
10𝑥1 + 𝑥2 + 9𝑥3 ≥ 1
Таким образом, для нахождения оптимальной стратегии игрока А
необходимо решить задачу линейного программирования:
3𝑥1 + 9𝑥2 + 2𝑥3 ≥ 1
5𝑥 + 6𝑥2 + 8𝑥3 ≥ 1
{ 1
10𝑥1 + 𝑥2 + 9𝑥3 ≥ 1
𝑥1 ≥ 0, 𝑥2 ≥ 0, 𝑥3 ≥ 0
𝑍 = 𝑥1 + 𝑥2 + 𝑥3 → 𝑚𝑖𝑛
Решим задачу средствами табличного редактора MS Excel.использованием
настройки Поиск решения.
1. Для решения нашей задачи создадим в Excel книгу с именем «Решение
игры». Подготовим данные на листе.
Сначала определим ячейки, в которые будет помещен результат решения.
Пусть это будут ячейки В2, С2, D2, сделаем у них заголовки. В этих ячейках
нет данных, их должен будет рассчитать Excel, они выделены цветом. Далее
заполним коэффициенты при неизвестных и правые части системы
ограничений (строки 5-7). Заведем строку 10 для целевой функции. Цветом
выделена ячейка, в которой будет находиться значение целевой функции для
найденного оптимального решения.
Для ячеек B2:D2 и D10 установим числовой формат с 4 знаками после
запятой. Для этого выделим эти ячейки, в контекстном меню по правой кнопке
59
мыши выберем команду Формат ячеек… и в появившемся окне Формат ячеек
на вкладке Число установим нужный формат.
В ячейки F5, F6, F7 ведем формулы для зависимостей левых частей
системы ограничений, а в ячейку D10 – формулу для зависимости целевой
функции.
60
2. Далее необходимо воспользоваться надстройкой Поиск решения. На
вкладке Данные в группе Анализ выберите команду Поиск решения.
Появится диалоговое окно Поиск решения, которое необходимо заполнить
следующим образом (для добавления ограничений пользуемся кнопкой
Добавить):
Далее нажимаем кнопку Параметры и в появившемся окне Параметры
поиска решений устанавливаем флажок неотрицательные значения, линейная
модель и нажимаем OK.
61
В окне Поиск решения после нажатия кнопки Выполнить появляется окно
Результаты поиска решения, в котором выбираем сохранение найденных
значений и нажимаем кнопку ОК.
Результаты поиска решений:
1
Получили 𝑍𝑚𝑖𝑛 (0,0787; 0,0816; 0,0146) = 0,1749 . Так как 𝜈 = и 𝑝𝑖 =
𝑍
𝑥𝑖 𝜈, то находим, что 𝜈 = 5,7167; 𝑝1 = 0,45; 𝑝2 = 0,47; 𝑝3 = 0,08 – это решение
для игры, заданной преобразованной матрицей. Для исходной матрицы
компоненты смешанной стратегии не меняются, а цена игры меньше на число,
которое прибавляли ко всем элементам матрицы, т.е. на 4.
Окончательный результат: 𝑝̅ ∗ = (0,45; 0,47; 0,08), 𝜈 = 1,72.
62
Аналогично
можно
составить
и
решить
задачу
линейного
программирования для игрока В. Средний проигрыш игрока В должен быть не
больше цены игры  при любом поведении игрока А. Получаем систему
линейных ограничений:
3𝑞1 + 5𝑞2 + 10𝑞3 ≤ 𝜈
{ 9𝑞1 + 6𝑞2 + 𝑞3 ≤ 𝜈
2𝑞1 + 8𝑞2 + 9𝑞3 ≤ 𝜈
Из условия q1 + q2 + q3 = 1, разделив обе части уравнения на >0, получаем
𝑞
𝑞
𝑞
1
целевую функцию 𝑊 = 1 + 2 + 3 = . Цель игрока В – получить
𝜈
𝜈
𝜈
𝜈
минимальный средний проигрыщ, т.е. min, а значит
𝑞𝑗
1
𝜈
→ 𝑚𝑎𝑥 . Если
обозначить 𝑦𝑖 = , (j=1, 2, 3), то целевая функция 𝑊 = 𝑦1 + 𝑦2 + 𝑦3 → 𝑚𝑎𝑥.
𝜈
Перейдем в системе ограничений к переменным yj, разделив каждое
неравенство на >0:
3𝑦1 + 5𝑦2 + 10𝑦3 ≤ 1
{ 9𝑦1 + 6𝑦2 + 𝑦3 ≤ 1
2𝑦1 + 8𝑦2 + 9𝑦3 ≤ 1
Таким образом, для нахождения оптимальной стратегии игрока А
необходимо решить задачу линейного программирования:
3𝑦1 + 5𝑦2 + 10𝑦3 ≤ 1
9𝑦1 + 6𝑦2 + 𝑦3 ≤ 1
{
2𝑦1 + 8𝑦2 + 9𝑦3 ≤ 1
𝑦1 ≥ 0, 𝑦2 ≥ 0, 𝑦3 ≥ 0
𝑊 = 𝑦1 + 𝑦2 + 𝑦3 → 𝑚𝑎𝑥
Решим задачу средствами табличного редактора MS Excel.использованием
настройки Поиск решения.
1. Подготовим данные на листе.
В ячейки F5, F6, F7 ведем формулы для зависимостей левых частей
системы ограничений, а в ячейку D10 – формулу для зависимости целевой
функции.
2. Далее необходимо воспользоваться надстройкой Поиск решения.
63
В окне Параметры
неотрицательные значения.
поиска
решений
устанавливаем
флажок
Результаты поиска решений:
1
Получили 𝑊𝑚𝑎𝑥 (0,0758; 0,0437; 0,0554) = 0,1749. Так как 𝜈 = и 𝑞𝑗 =
𝑊
𝑦𝑗 𝜈 , то находим, что 𝜈 = 5,7167; 𝑞1 = 0,43; 𝑞2 = 0,25; 𝑞3 = 0,32 – это
решение для игры, заданной преобразованной матрицей.
Окончательный результат: 𝑞̅ ∗ = (0,43; 0,25; 0,32), 𝜈 = 1,72.
Ответ: 𝑝̅ ∗ = (0,45; 0,47; 0,08), 𝑞̅ ∗ = (0,43; 0,25; 0,32), 𝜈 = 1,72.
2.2.6. Игры с природой
В рассмотренных ранее задачах теории игр предполагалось, в них
принимают участие 2 участника, интересы которых противоположны. Поэтому
действия каждого игрока направлены на увеличение выигрыша или
уменьшение проигрыша. Однако во многих задачах теории игр отсутствует
информация об условиях, в которых осуществляется действие. Эти условия
зависят не от сознательного действия другого игрока, а от объективной
действительности, которую принято называть природой. Такие игры
называются играми с природой. Под термином «природа» понимается весь
комплекс внешних условий, в которых человеку приходится принимать
решение. Природа безразлична к выигрышу и не стремится обратить в свою
64
пользу промахи человека. В играх с природой игрок А - человек или группа
лиц, объединенных общностью цели, который называется статистиком.
Возможные стратегии природы определяются как ее состояния (например,
условия погоды, спрос на продукцию). Человеку могут быть известны
вероятности, с которыми природа реализует свои состояния.
Пусть статистик может использовать m стратегий А1, А2, …, Аm, а природа
может реализовывать n различных состояний Р1, Р2, …, Рn. Условия игры с
природой так же задаются платежной матрицей
𝑎11 𝑎12 … 𝑎1𝑛
𝑎21 𝑎22 … 𝑎2𝑛
𝐴=( …
… … … ) , в которой элемент аij равен выигрышу
𝑎𝑚1 𝑎𝑚2 … 𝑎𝑚𝑛
статистика, если он использует стратегию Аi, а природа находится в состоянии
Pj.
При выборе оптимальной стратегии статистика используют ряд критериев.
При этом опираются как на платежную матрицу, так и на матрицу рисков R.
Элементы матрицы rij представляют разность между максимальным
выигрышем, который получил бы статистик, если бы достоверно знал, что
природа будет находиться в состоянии Pj, и выигрышем аij, который он
получит, используя стратегию Аi, т.е.
𝑟𝑖𝑗 = 𝛽𝑗 − 𝑎𝑖𝑗 ≥ 0, где 𝛽𝑗 = max 𝑎𝑖𝑗 .
𝑖
Рассмотрим критерии:
1. Критерий недостаточного основания Лапласа.
Все состояния природы считаются равновероятными. В качестве
оптимальной принимается чистая стратегия, при которой максимизируется
1
средний выигрыш, т.е. для которой достигается максимум величины ∑𝑛𝑗=1 𝑎 .
n
𝑖𝑗
2. Максиминный критерий Вальда.
В качестве оптимальной выбирается стратегия, при которой наименьший
выигрыш статистика будет максимальным, т.е. равен нижней цене игры для
двух лиц с нулевой суммой. Для этого находится max min 𝑎𝑖𝑗 .
𝑖
𝑗
3. Критерий минимаксного риска Сэвиджа
В качестве оптимальной выбирается стратегия, при которой
минимизируется максимальная величина риска. Для этого находится
m𝑖𝑛 max 𝑟𝑖𝑗 .
𝑖
𝑗
Критерии Вальда и Сэвиджа основаны на пессимистической оценке
обстановки. Следующий критерий учитывает как пессимистический, так и
оптимистический подход к ситуации.
4. Критерий Гурвица.
Принимается решение о выборе стратегии, при которой достигается
max {𝜆min 𝑎𝑖𝑗 + (1 − 𝜆) max 𝑎𝑖𝑗 }, где 01. Значение  выбирают на основе
𝑖
𝑗
𝑗
65
субъективных соображений. Чем больше желание подстраховаться, тем ближе
к 1 значение .
Обычно анализ практических ситуаций проводится по нескольким
критериям одновременно, что позволяет выбрать наиболее обоснованное
решение.
Пример 8
Сельскохозяйственное предприятие планирует посадить некоторую
сельскохозяйственную культуру двух сортов. Посевная площадь 1 га. Сорта
отличаются друг от друга требованиями к влаге во время вегетационного
периода. Проанализировав погодные условия, выделены 4 состояния погоды
(S1, S2, S3, S4), отличающиеся режимом осадков. Средняя урожайность (ц/га)
каждого сорта на всем участке для каждого состояния погоды приведена в
таблице:
S1 S2 S3 S4
Сорт 1 23 29 31 37
Сорт 2 36 33 28 24
Возможные варианты посева:
А1) сорт 1 посадить на 100% площади;
А2) сорт 1 посадить на 75% площади, сорт 2 посадить на 25% площади;
А3) сорт 1 посадить на 50% площади, сорт 2 посадить на 50% площади;
А4) сорт 1 посадить на 25% площади, сорт 2 посадить на 75% площади;
А5) сорт 2 посадить на 100% площади;
Определить
оптимальную
стратегию
с
помощью
критериев
недостаточного основания Лапласа, максиминного критерия Вальда, критерия
минимаксного риска Сэвиджа, пессимизма-оптимизма Гурвица (коэффициент
пессимизма взять равным 0,4).
Решение
Составим платежную матрицу игры. Рассчитаем ее элементы:
𝑎11 = 23
𝑎12 = 29
𝑎13 = 31
𝑎14 = 37
𝑎21 = 23 ∙ 0,75 + 36 ∙ 0,25 = 26,25
𝑎22 = 29 ∙ 0,75 + 33 ∙ 0,25 = 30
𝑎23 = 31 ∙ 0,75 + 28 ∙ 0,25 = 30,25
𝑎24 = 37 ∙ 0,75 + 24 ∙ 0,25 = 33,75
𝑎31 = 23 ∙ 0,5 + 36 ∙ 0,5 = 29,5
𝑎32 = 29 ∙ 0,5 + 33 ∙ 0,5 = 31
𝑎33 = 31 ∙ 0,5 + 28 ∙ 0,5 = 29,5
𝑎34 = 37 ∙ 0,5 + 24 ∙ 0,5 = 30,5
𝑎41 = 23 ∙ 0,25 + 36 ∙ 0,75 = 32,75
66
𝑎42
𝑎43
𝑎44
𝑎51
𝑎52
𝑎53
𝑎54
= 29 ∙ 0,25 + 33 ∙ 0,75 = 32
= 31 ∙ 0,25 + 28 ∙ 0,75 = 28,75
= 37 ∙ 0,25 + 24 ∙ 0,75 = 27,25
= 36
= 33
= 28
= 24
23
29
31
37
26,25 30 30,25 33,75
Платежная матрица: A= 29,5 31 29,5
30,5
32,75 32 28,75 27,25
33
28
24 )
( 36
Результаты расчетов будем заносить в таблицу:
S1
S2
S3
S4
Лапласа Вальда Сэвиджа Гурвица
А1
23
29
31
37
30
23
13
31,4
А2
26,25
30
30,25
33,75
30,06
26,25
9,75
30,75
А3
29,5
31
29,5
30,5
30,13
29,5
6,5
30,4
A4
32,75
32
28,75
27,25
30,19
27,25
9,75
30,55
A5
36
33
28
24
30,25
24
13
31,2
Выбранная по критерию стратегия
А5
A3
A3
А1
1. Критерий недостаточного основания Лапласа
Находим среднее значение элементов каждой строки по формуле
1
𝑊𝑖 = ∑4𝑗=1 𝑎𝑖𝑗
4
1
𝑊1 = (23 + 29 + 31 + 37) = 30
4
1
𝑊2 = (26,25 + 30 + 30,25 + 33,75) ≈ 30,06
4
1
𝑊3 = (29,5 + 31 + 29,5 + 30,5) ≈ 30,13
4
1
𝑊4 = (32,75 + 32 + 28,75 + 27,25) ≈ 30,19
4
1
𝑊5 = (36 + 33 + 28 + 24) = 30,25
4
Найденные значения заносим в соответствующий столбец и выбираем
максимальное
𝑊 = max(30; 30,06; 30,13; 30,19; 30,25) = 30,25 , значит
оптимальной по данному критерию является стратегия А5.
2. Максиминный критерий Вальда
В каждой строке находим минимальный элемент: 𝑊𝑖 = min 𝑎𝑖𝑗 и
1≤𝑖≤4
выбираем максимальное 𝑊 = max(23; 26,25; 29,5; 27,25; 24) = 29,5 , значит
оптимальной по данному критерию является стратегия А3.
3. Критерий минимаксного риска Сэвиджа
67
Рассчитаем матрицу рисков. В каждом столбце находим максимальный
элемент j.
68
S1
S2
S3
S4
А1
23
29
31
37
А2
26,25
30
30,25
33,75
А3
29,5
31
29,5
30,5
A4
32,75
32
28,75
27,25
A5
36
33
28
24
36
33
31
37
j
Заполним матрицу рисков по столбцам. Для этого вычитаем из j все
остальные элементы столбца, результаты записываем на соответствующих
местах (в каждом столбце на месте максимального будет 0).
S1
S2
S3
S4
А1
13
4
0
0
А2
9,75
3
0,75
3,25
А3
6,5
2
1,5
6,5
A4
3,25
1
2,25
9,75
A5
0
0
3
13
В каждой строке матрицы рисков находим максимальный элемент: 𝑊𝑖 =
max 𝑟𝑖𝑗 и выбираем минимальное значение 𝑊 = 𝑚𝑖𝑛(13; 9,75; 6,5; 9,75; 13) =
1≤𝑗≤4
6,5, значит, оптимальной по данному критерию является стратегия А3.
4. Критерий пессимизма-оптимизма Гурвица
Для каждой строки рассчитываем значение критерия по формуле:
𝑊𝑖 = 𝜆min 𝑎𝑖𝑗 + (1 − 𝜆) max 𝑎𝑖𝑗 . По условию =0,4.
1≤𝑗≤4
А1
А2
А3
A4
A5
S1
23
26,25
29,5
32,75
36
1≤𝑗≤4
S2
29
30
31
32
33
S3
31
30,25
29,5
28,75
28
S4
37
33,75
30,5
27,25
24
min 𝑎𝑖𝑗 max 𝑎𝑖𝑗
23
37
26,25
33,75
29,5
31
27,25
32,75
24
36
𝑊1 = 0,4 ∙ 23 + 0,6 ∙ 37 = 31,4
𝑊2 = 0,4 ∙ 26,25 + 0,6 ∙ 33,75 = 30,75
𝑊3 = 0,4 ∙ 29,5 + 0,6 ∙ 31 = 30,4
𝑊4 = 0,4 ∙ 27,25 + 0,6 ∙ 32,75 = 30,55
𝑊5 = 0,4 ∙ 24 + 0,6 ∙ 36 = 31,2
Выбираем максимальное 𝑊 = 𝑚𝑎𝑥(31,4; 30,75; 30,4; 30,55; 31,2) = 31,4 ,
значит оптимальной по данному критерию является стратегия А1.
Ответ:
1) Стратегия А1 является оптимальной согласно критерию пессимизмаоптимизма Гурвица.
2) Стратегии А2, А4 не являются оптимальными ни по одному из
критериев.
69
3) Стратегия А3 является оптимальной согласно пессимистическим
критериям Вальда и Сэвиджа.
4) Стратегия А5 является оптимальной согласно критерию Лапласа.
Вопросы для самопроверки
1. Сформулируйте постановку задачи о назначениях с минимизацией,
максимизацией функции? В чем отличия в их решениях?
2. В чем заключается алгоритм венгерского метода решения задачи о
назначениях?
3. Что такое стратегия игрока? Какая игра называется парной с нулевой
суммой?
4. Что такое платежная матрица?
5. Как определить верхнюю и нижнюю цену игры? Каково соотношение
между ними?
6. Какая игра имеет седловую точку? Что означает решение игры в чистых
стратегиях?
7. Что такое оптимальная смешанная стратегия?
8. Сформулируйте основную теорему теории игр – теорему Фон-Неймана.
9. Как можно графически решить игру?
10.На чем основана связь матричной игры и ЗЛП?
11.В чем отличие игр с природой?
12.Перечислите основные критерии решения игр с природой.
3. Многоцелевые задачи
Задачи, решаемые с учетом множества показателей или критериев, носят
название многоцелевых. При решении таких задач найти такой план, при
котором система критериев была бы наилучшей. Если все критерии
равнозначны, то эффективным считается такой план, при котором отклонения
от оптимумов по каждому критерию равны.
С привычной точки зрения задача со многими критериями решения не
имеет - далеко не всегда есть возможность одновременного удовлетворения
всех
заданных
условий.
Поэтому,
когда
говорят
о
решении
многокритериальной задачи, имеют в виду какой-нибудь компромисс между
изначально противоречивыми требованиями. А так как практически любая
подобная ситуация допускает разные компромиссные разрешения, то и
подходы к их поиску многочисленны и весьма разнообразны. Перечислим
некоторые подходы.
Метод уступок - лицо, принимающее решения, подводится к выбору
решения путем постепенного ослабления первоначальных требований, как
правило, одновременно невыполнимых.
Метод идеальной точки - в области допустимых значений неизвестных
ищется такая их совокупность, которая способна обеспечить набор значений
критериев, в том или ином смысле ближайший к наилучшему, как правило,
недосягаемому (в так называемой точке утопии).
70
Метод свертывания - лицо, принимающее решения, сводит
многокритериальную задачу к задаче с одним критерием.
Метод ограничений - множество допустимых значений неизвестных
уменьшается путем осмысленного введения дополнительных ограничений на
заданные критерии.
Метод анализа иерархий - на основании суждений экспертов оценивается
вклад в общую оценку каждого критерия.
Далее будем рассматривать случаи, когда решение принимается по двум
критериям.
3.1.
Множество Парето
Рассмотрим на плоскости (U, V) произвольное множество .
Каждая точка плоскости обладает одним из следующих
трех свойств:
либо все точки, ближайшие к ней,
принадлежат множеству  (такая точка
называется
внутренней точкой множества ),
либо все точки,
ближайшие к ней, множеству  не принадлежат (такая точка
называется внешней точкой по отношению к множеству ), либо сколь угодно
близко от нее расположены как точки множества , так и точки, множеству 
не принадлежащие (такие точки называются граничными точками множества
). Множество всех граничных точек множества называется его границей.
Точки множества  можно разбить на три класса:
- к первому классу относятся точки, которые, оставаясь во множестве ,
можно сдвинуть так, чтобы одновременно увеличились обе координаты (в этот
класс попадают все внутренние точки множества  и часть его граничных
точек);
- второй класс образуют граничные точки, перемещением которых по
границе  можно увеличить только одну из координат при сохранении
значения второй (вертикальный отрезок АВ и горизонтальный отрезок CD на
границе множества );
- в третий класс попадут граничные точки, перемещение которых по
границе  уменьшает одну из координат при одновременном увеличении
другой (дуга BD границы ).
Множество точек третьего класса принято
называть границей
(множеством) Парето данного множества .
Приведем примеры границы Парето некоторых простейших множеств.
71
Говоря нестрого, граница Парето множества  - это точки, из которых нельзя
сдвинуться на "север", "восток" либо "северо-восток", оставаясь в том же
множестве .
Другими словами, в множество Парето не включаются такие решения,
которые могут быть улучшены одновременно по обоим критериям.
Укажем простое геометрическое правило, посредством которого можно
выделять из заданного плоского множества его границу Парето.
Рассмотрим пробный прямой угол, стороны которого
сонаправлены координатным осям U и V. Положение
этого пробного угла на плоскости однозначно
определяется его вершиной Q. Перемещая пробный угол
(параллельно самому себе), мы будем собирать только те
точки заданного множества , которые можно
совместить с точкой Q так, чтобы ни одна другая точка
множества  не попадала ни внутрь этого угла, ни на одну из его сторон.
Совокупность всех таких точек и будет искомой границей Парето для
множества .
3.2.
Метод идеальной точки
Рассмотрим постановку двухкритериальной задачи в общем виде:
Пусть на плоскости (х,y) задано множество ω и в каждой точке этого множества
определены две непрерывные функции: U = Φ(x,y) и V = Ψ(x,y).
На множестве ω найти точку (x0,y0), в которой Φ(x0,y0)=max и Ψ(x0,y0)=max.
Сразу же отметим, что в общем случае поставленная задача решения не
имеет. В самом деле, изобразим на плоскости (U,V) все точки, координаты
которых вычисляются по формулам U = Φ(x,y)
и V = Ψ(x,y). Обозначим полученное
множество через . Из рисунка видно, что
Umax (наибольшее значение U) и Vmax
(наибольшее значение V) достигаются в
72
разных точках, а точка P с координатами (Umax, Vmax) лежит вне множества .
Таким образом, в исходной постановке задача, вообще говоря, неразрешима удовлетворить обоим требованиями одновременно невозможно. И,
следовательно, нужно искать какое-то компромиссное решение.
Метод идеальной точки использует множество Парето, составленное из
допустимых точек задачи, которые не могут быть «сдвинуты» в пределах
допустимого множества с улучшением сразу по обоим критериям. На границе
Парето отыскиваются точки, ближайшие к точке утопии P (точка утопии дает
сочетание наилучших значений всех критериев, но обычно не удовлетворяет
заданным ограничениям).
Рассмотрим реализацию метода идеальной точки на конкретном примере.
Пример
Решить двухкритериальную задачу линейного программирования
методом идеальной точки.
4𝑦 − 𝑥 ≤ 20
4𝑥 + 𝑦 ≤ 22
{
𝑥−𝑦≤3
𝑥 ≥ 0, 𝑦 ≥ 0
𝑈 = 2𝑥 − 2𝑦 → 𝑚𝑎𝑥
𝑉 = −2𝑥 − 𝑦 → 𝑚𝑎𝑥
Решение
1. Построим область допустимых решений в плоскости xOy, определяемую
системой неравенств. Каждое линейное неравенство на плоскости задает
полуплоскость, все точки которой обращают неравенство в верное числовое
неравенство.
Рассмотрим первое неравенство 4y – x ≤ 20.
Границей полуплоскости является прямая 4y – x = 20. Построим эту прямую по
двум точкам. Составим таблицу:
1) x
0 4
y
5 6
73
Определим, какую полуплоскость задает первое неравенство: выше
построенной прямой или ниже ее. Для этого подставим в неравенство
координаты любой «пробной» точки, не лежащей на построенной прямой.
Возьмем в качестве «пробной точки» начало координат: (0; 0):
4𝑥 − 𝑦 ≤ 20
4 ∙ 0 − 0 ≤ 20
0 ≤ 20
Получили верное числовое неравенство, значит рассматриваемое линейное
неравенство определяет полуплоскость, которой принадлежит начало
координат, т.е. расположенную ниже построенной прямой.
Отметим
выбранную полуплоскость.
Аналогично определим полуплоскости, задаваемые вторым и третьим
неравенствами: 4x + y ≤ 22 и х – у ≤ 3.
2) x
5 4
3) x
5 1
y
2
6
y
2
-2
Оставшиеся ограничения: х ≥ 0, у ≥ 0 задают первую координатную четверть.
Область допустимых решений – многоугольник OABCD.
74
2. Построим в критериальной плоскости область, соответствующую области
допустимых решений OABCD. Для этого необходимо найти координаты
вершин.
В нашем случае, очевидно, что O(0; 0), A(0; 5), B(4; 6), C(5; 2), D(3; 0), т.к. часть
этих точек использовалась при построении прямых. В общем случае
координаты точки пересечения двух прямых определяют совместным
решением их уравнений, например, для точки С, которая является точкой
пересечения (2) и (3) прямых необходимо решить систему:
4𝑥 + 𝑦 = 22
{
𝑥−𝑦 =3
𝑥=5
Сложим уравнения, получим: 5𝑥 = 25. Откуда {
𝑦=2
Найдем координаты образов точек O, A, B, C, D в линейном
преобразовании, определяемом целевыми функциями:
O(0; 0): 𝑈 = 2𝑥 − 2𝑦 = 2 ∙ 0 − 2 ∙ 0 = 0
𝑉 = −2𝑥 − 𝑦 = −2 ∙ 0 − 0 = 0
Таким образом, O(0; 0) → O(0; 0).
A(0; 5): 𝑈 = 2𝑥 − 2𝑦 = 2 ∙ 0 − 2 ∙ 5 = −10
𝑉 = −2𝑥 − 𝑦 = −2 ∙ 0 − 5 = −5
Таким образом, A(0; 5) → A(–10; –5).
B(4; 6): 𝑈 = 2𝑥 − 2𝑦 = 2 ∙ 4 − 2 ∙ 6 = −4
𝑉 = −2𝑥 − 𝑦 = −2 ∙ 4 − 6 = −14
Таким образом, B(4; 6) → B(–4; –14).
C(5; 2): 𝑈 = 2𝑥 − 2𝑦 = 2 ∙ 5 − 2 ∙ 2 = 6
𝑉 = −2𝑥 − 𝑦 = −2 ∙ 5 − 2 = −12
Таким образом, C(5; 2) → C(6; –12).
75
D(3; 0): 𝑈 = 2𝑥 − 2𝑦 = 2 ∙ 3 − 2 ∙ 0 = 6
𝑉 = −2𝑥 − 𝑦 = −2 ∙ 3 − 0 = −6
Таким образом, D(3; 0) → D(6; –6).
По найденным координатам точек построим в критериальной плоскости
UOV образ многоугольника OABCD – многоугольник OABCD .
3. В критериальной плоскости найдем границу Парето – северо-восточную
границу области OABCD.
Точкой утопии, в которой достигается максимум одновременно по двум
критериям U и V, является точка P: через самую высокую (северную) точку
области OABCD провели горизонтальную прямую (через точку O) и через
самую правую (восточную) точку области OABCD провели вертикальную
прямую (через точки C и D); точка – точка пересечения горизонтальной и
вертикальной прямой.
76
4. На границе Парето найдем идеальную точку – точку, наиболее близко
расположенную к точке утопии. В нашем случае это основание
перпендикуляра, опущенного из точки утопии Р на отрезок OD – точка M
Найдем координаты точки M. Для этого найдем уравнение прямой OD.
Воспользуемся уравнением прямой, проходящей через две точки: (0; 0),
D(6; –6)
𝑥 − 𝑥1
𝑦 − 𝑦1
=
,
𝑥2 − 𝑥1 𝑦2 − 𝑦1
𝑥−0
𝑦−0
=
,
6 − 0 −6 − 0
𝑥
𝑦
=
,
6 −6
𝑂′ 𝐷′ : 𝑥 + 𝑦 = 0
Найдем уравнение перпендикуляра, опущенного из точки утопии P на
отрезок OD. Воспользуемся уравнением прямой с точкой и вектором нормали:
⃗⃗⃗⃗⃗⃗⃗⃗ = (6 − 0; −6 − 0) = (6; −6), 𝑃(6; 0)
𝑛⃗ = 𝑂′𝐷′
77
𝑛1 (𝑥 − 𝑥0 ) + 𝑛2 (𝑦 − 𝑦0 ) = 0,
6 ∙ (𝑥 − 6) − 6 ∙ (𝑦 − 0) = 0,
𝑃𝑀′ : 𝑥 − 𝑦 − 6 = 0.
𝑥+𝑦=0
Координаты точки М: {
𝑥−𝑦−6=0
𝑥 = 3,
Сложим уравнения: 2𝑥 = 6. Решение уравнения {
𝑦 = −3.
Таким образом, М(3; –3), а значит, компромиссное решение позволит
достигнуть значений целевых функций: U = 3, V = –3.
5. Найдем координаты точки в плоскости xOy, которой соответствует точка М
критериальной плоскости. Для этого решим систему уравнений:
2𝑥 − 2𝑦 = 3,
−3𝑦 = 0,
𝑦 = 0,
𝑈 = 3,
{
{
{
{
𝑉 = −3, −2𝑥 − 𝑦 = −3, 2𝑥 − 2𝑦 = 3, 𝑥 = 1,5.
Получили, что компромиссным решением метода идеальной точки
является M(1,5; 0), в которой критерии достигают значений U = 3, V = –3.
Эта точка принадлежит отрезку OD.
Ответ: M(1,5; 0), Umax (1,5; 0)= 3, V max(1,5; 0)= –3.
Вопросы для самопроверки
1.
2.
3.
4.
5.
Какая задача называется многоцелевой?
Каким своством обладают точки множества Парето?
Как найти множество Парето?
Что такое точка утопии?
В чем суть метода идеальной точки? Какая точка называется идеальной?
4. Нелинейное программирование
В общем случае задача нелинейного программирования (НП) состоит в
нахождении экстремума (минимума или максимума) функции
Z = f (x1,…, xn)  min (max),
на множестве, задаваемом ограничениями в виде равенств и (или) неравенств,
gi (x1,…, xn) = bi, i  1, k .
78
gi (x1,…, xn) ≤ bi, i  k  1, m .
Так же могут быть условия неотрицательности переменных.
Предполагается, что среди функций f и gi ( i  1, m ) есть хоть одна
нелинейная.
Любой n-мерный вектор x = (x1,…,xn), удовлетворяющий ограничениям
задачи, называется допустимым решением, а множество X всех таких векторов
— областью допустимых решений (ОДР).
Перечислим свойства задач НП, которые существенно усложняют процесс
их решения по сравнению с задачами линейного программирования:
1. Множество допустимых решений может иметь очень сложную
структуру (например, быть невыпуклым или несвязным).
2. Глобальный максимум (минимум) может достигаться как внутри
области, так и на ее границах (где он, вообще говоря, будет не совпадать ни с
одним из локальных экстремумов).
3. Целевая функция f может быть недифференцируемой, что затрудняет
применение классических методов математического анализа.
Этим объясняется отсутствие общих методов, подобных симплекс-методу
в линейном программировании, позволяющих решать любые задачи НП. Тем
не менее, отдельные специальные классы нелинейных задач хорошо изучены.
4.1.
Графическое
решение
программирования
задачи
нелинейного
Графический метод можно использовать для решения задачи НП, которая
содержит две переменных х1 и х2, например задачи следующего вида:
Z = f(x1, x2) → min (max);
gi(x1, x2) ≤ bi, i  1, m .
Чтобы найти ее оптимальное решение, нужно выполнить следующие
действия:
1.
Найти ОДР, определяемую ограничениями задачи. Если окажется, что эта
область пуста, то это означает, что задача не имеет решения.
2.
Построить семейство линий уровня целевой функции f(х1, х2) = C при
различных значениях числового параметра С.
3.
При решении задачи на минимум определить направление убывания, а
для задачи на максимум — направление возрастания линий уровня целевой
функции.
4.
Найти точку ОДР, через которую проходит линия уровня с наименьшим в
задаче на минимум (соответственно, наибольшим в задачи на максимум)
значением параметра С. Эта точка будет оптимальным решением. Если целевая
функция не ограничена снизу в задаче на минимум (сверху — в задаче на
максимум), то это означает, что задача не имеет оптимального решения.
5.
Найти координаты точки оптимума и определить в ней значение целевой
функции.
79
Отметим, что в отличие от задачи линейного программирования точка
оптимума в задаче НП не обязательно находится на границе ОДР. Ею также
может быть внутренняя точка этого множества.
Пример1
Найти максимальное и минимальное значение функции
𝑍 = (𝑥1 − 3)2 + (𝑥2 − 4)2
3𝑥1 + 𝑥2 ≥ 7
10𝑥1 − 𝑥2 ≤ 8
При условиях {
−18𝑥1 + 4𝑥2 ≤ 12
𝑥1 ≥ 0, 𝑥2 ≥ 0
Это задача НП, т.к. целевая функция нелинейна.
Областью допустимых решений является треугольник АВС.
Строим линии уровня (𝑥1 − 3)2 + (𝑥2 − 4)2 = С – концентрические окружности
с центром в точке Е(3;4). Видно, что минимум целевой функции достигается в
точке D –точке касания окружности и области, максимальное значение
функция принимает в точке С – угловой точке множества.
.
80
Найдем координаты точке D, для этого воспользуемся равенством
угловых коэффициентов прямой 10𝑥1 − 𝑥2 = 8 и касательной к окружности.
Для прямой выразим x2: 𝑥2 = 10𝑥1 − 8, следовательно, k1=10. Для касательной
к окружности угловой коэффициент – это производная x2 (находим
производную неявной функции). Продифференцируем по x1 обе части
уравнения окружности:
((𝑥1 − 3)2 + (𝑥2 − 4)2 ))′ = С′
2(𝑥1 − 3)+2(𝑥2 − 4)𝑥2 ′ = 0
𝑥1 − 3
𝑥2 ′ = −
= 𝑘2
𝑥2 − 4
Из
условия
𝑘1 = 𝑘2
получаем
уравнение
𝑥1 −3
−
= 10 или 𝑥1 + 10𝑥2 = 43 . Это одно из уравнений для нахождения
𝑥2 −4
координат точки D. Точка D лежит на прямой 10𝑥1 − 𝑥2 = 8 . Получаем
систему:
𝑥 + 10𝑥2 = 43
{ 1
10𝑥1 − 𝑥2 = 8
𝑥1 =
123
101
Решая систему, находим {
422
𝑥2 =
101
123 422
123
422
324
) = (101 − 3)2 + (101 − 4)2 = 101.
101 101
10𝑥1 − 𝑥2 = 8
Координаты С найдем из системы: {
. Решив которую,
−18𝑥1 + 4𝑥2 = 12
находим С(2;12).
𝑍𝑚𝑎𝑥 = 𝑍(2; 12) = (2 − 3)2 + (12 − 4)2 = 65
123 422
324
Ответ: 𝑍𝑚𝑖𝑛 = 𝑍 ( , ) =
, 𝑍𝑚𝑎𝑥 = 𝑍(2; 12) = 65
Следовательно, 𝑍𝑚𝑖𝑛 = 𝑍 (
101 101
4.2.
,
101
Метод множителей Лагранжа
Рассмотрим частный случай задачи НП, предполагая, что система
ограничений
содержит
только
уравнения,
отсутствуют
условия
неотрицательности и функции f (x1,…, xn) и gi (x1,…, xn) непрерывны вместе с
частными производными.
Z = f (x1,…, xn)  min (max);
gi (x1,…, xn) = bi, i  1, m .
Чтобы найти решение этой задачи вводят переменные 𝜆1 , 𝜆2 , … , 𝜆𝑚 ,
называемые множителями Лагранжа и составляют функцию Лагранжа:
L(x, λ) = L(x1,…, xn, λ 1,…, λ m) = f (x1,…, xn) +
m

λi (bi – gi (x1,…, xn)),
i 1
находят частные производные функции Лагранжа по всем переменным xj и λi и
приравнивают их нулю для нахождения стационарных точек функции
Лагранжа. Получается система n + m уравнений:
81
m
g
L * *
f *
(x ,  ) 
( x )   *i i ( x * )  0, j  1, n ;
x j
x j
x j
i 1
L * *
( x ,  )  bi  g i ( x* )  0, i  1, m.
i
Находятся решения этой системы. Среди этих решений после
дополнительного анализа (проверки достаточного признака экстремума)
отбираются такие, которые действительно являются точками локального
оптимума. После сравнения значений целевой функции в этих точках
находится точка, являющаяся глобальным оптимумом.
Подчеркнем, что основное практическое значение метода Лагранжа
заключается в том, что он позволяет перейти от условной оптимизации к
безусловной и, соответственно, расширить арсенал доступных средств решения
проблемы. Однако нетрудно заметить, что задача решения системы уравнений,
к которой сводится данный метод, в общем случае не проще исходной
проблемы поиска экстремума. Методы, подразумевающие такое решение,
называются непрямыми. Они могут быть применены для весьма узкого класса
задач, для которых удается получить линейную или сводящуюся к линейной
систему уравнений. При решении конкретных практических задач обычно
используются прямые методы, основанные на итерационных процессах
вычисления и сравнения значений оптимизируемых функций.
К таким
методам относят градиентные методы решения задач безусловной
оптимизации.
4.3.
Решение задач выпуклого программирования
Рассмотрим задачу НП:
Z = f (x1,…, xn)  min (max);
gi (x1,…, xn) ≤ bi, i  1, m .
xi ≥ 0, 𝑗 = ̅̅̅̅̅
1, 𝑛
Функция f называется выпуклой на выпуклом множестве Х, если для любой
пары точек x, y Х и любого числа α (0, 1) справедливо соотношение
f(α x + (1 – α) y) ≤ α f(x) + (1 – α) f(y).
Функция f называется вогнутой на выпуклом множестве Х, если для любой
пары точек x, y Х и любого числа α (0, 1) справедливо соотношение
f(α x + (1 – α) y) ≥ α f(x) + (1 – α) f(y).
Функция f называется строго выпуклой (строго вогнутой), если
неравенства в соотношениях являются строгим для всех x ≠ y, т.е. знак
неравенства "<" (соответственно, ">").
Очевидно, что если f — выпуклая функция, то g = -f — вогнутая функция.
Сумма выпуклых (вогнутых) функций — выпуклая (вогнутая) функция.
Линейная функция является как выпуклой, так и вогнутой функцией.
Простейший пример выпуклой функции: z = х2, а вогнутой: z = х .
82
Множество допустимых решений задачи НП удовлетворяет условию
регулярности, если существует, по крайней мере, одна точка Xi из ОДР такая,
что gi(Xi)<bi.
Задача НП является задачей выпуклого программирования, если она
удовлетворяет следующим условиям:
1)
целевая функция f – выпукла (вогнута);
2)
все функции gi в ограничениях выпуклые.
Легко проверить, что если g — выпуклая (вогнутая) функция, то для
любого числа b множество {х | g(x) ≤ (≥) b} — выпуклое. Поэтому ОДР в задаче
выпуклого программирования - выпуклое множество. Выпуклым будет и
множество оптимальных решений. Если же ЦФ — строго выпуклая (вогнутая)
функция, то множество точек ее минимума (максимума) состоит из
единственной точки.
Наиболее важное свойство таких задач: любая точка локального оптимума
задачи выпуклого программирования является точкой ее глобального
оптимума. Поэтому, в задаче выпуклого программирования можно говорить об
оптимальном решении, не уточняя, идет речь о глобальном или локальном
оптимуме.
Составим функцию Лагранжа для задачи выпуклого программирования:
L(x, λ) = L(x1,…, xn, λ 1,…, λ m) = f (x1,…, xn) +
m

λi (bi – gi (x1,…, xn)).
i 1
Точка (𝑋 0 , Λ0 ) = (x10 , x20 , … , xn0 , λ10 , λ02 , … λ0m ) называется седловой точкой
функции Лагранжа, если выполняется 𝐿(𝑋, Λ0 ) ≤ 𝐿(𝑋 0 , Λ0 ) ≤ 𝐿(𝑋 0 , Λ).
Теорема Куна-Таккера
Для задачи выпуклого программирования множество допустимых
решений, удовлетворяющее условиям регулярности, 𝑋 0 = (x10 , x20 , … , xn0 )
является оптимальным планом тогда и только тогда, если существует Λ0 =
(λ10 , λ02 , … λ0m )(λ0i ≥ 0, i = 1, … , m) , что (𝑋 0 , Λ0 ) - седловая точка функции
Лагранжа.
Если предположить, что функции f и gi непрерывно дифференцируемы, то
можно записать условия Куна-Таккера, определяющие необходимые и
достаточные условия того, чтобы точка (𝑋 0 , Λ0 ) была седловой точкой
функции
Лагранжа,
т.е.
являлась
решением
задачи
выпуклого
программирования. Эти условия имеют вид:
𝐿′𝑥𝑗 (𝑋 0 , Λ0 ) ≤ 0 (𝑗 = 1, … , 𝑛)
𝑥𝑗0 ∙ 𝐿′𝑥𝑗 (𝑋 0 , Λ0 ) = 0 (𝑗 = 1, … , 𝑛)
𝑥𝑗0 ≥ 0 (𝑗 = 1, … , 𝑛)
𝐿′𝜆𝑖 (𝑋 0 , Λ0 ) ≥ 0 (𝑖 = 1, … , 𝑚)
𝜆0𝑖 𝐿′𝜆𝑖 (𝑋 0 , Λ0 ) = 0 (𝑖 = 1, … , 𝑚)
{
𝜆0𝑖 ≥ 0(𝑖 = 1, … , 𝑚)
83
Предпоследнее условие означает, что если множитель Лагранжа
положителен, то соответствующее ему ограничение в точке оптимума
обязательно должно быть равенством. Если же ограничение не является
равенством в точке оптимума, то его множитель Лагранжа равен нулю. Это
условие аналогично условию дополняющей нежесткости в задачелинейного
программирования.
В отличие от классической задачи условной оптимизации на множители
Лагранжа накладывается условие неотрицательности.
Множители
Лагранжа
допускают
интерпретацию,
аналогичную
интерпретации оптимальных оценок ограничений в задаче линейного
программирования. Так множитель Лагранжа i-го ограничения характеризует
величину изменения оптимального значения целевой функции при увеличении
правой части этого ограничения на единицу и фиксированных значениях
остальных ограничений.
Однако в отличие от задачи линейного программирования величина *i не
равна в точности изменению оптимального значения целевой функции при
увеличении правой части i-го ограничения на единицу, а дает лишь
приближенную оценку этого изменения.
Пример 2
Решить задачу выпуклого программирования средствами MS Excel.
𝑥1 − 2𝑥2 ≤ −2
7𝑥 − 𝑥2 ≥ 13
{ 1
𝑥1 + 3𝑥2 ≤ 21
𝑥1 ≥ 0, 𝑥2 ≥ 0
𝑍 = (𝑥1 − 5)2 + (𝑥2 − 1)2 → 𝑚𝑖𝑛
Проверить выполнение условий Куна-Таккера для найденной оптимальной
точки.
Решим задачу с использованием настройки Поиск решения. Для решения
нашей задачи создадим в Excel книгу с именем «Решение задачи нелинейного
программирования». Подготовим данные на листе.
Сначала определим ячейки, в которые будет помещен результат решения.
Пусть это будут ячейки В2, С2, сделаем у них заголовки. В этих ячейках нет
данных, их должен будет рассчитать Excel, они выделены цветом. Далее
заполним коэффициенты при неизвестных и правые части системы
ограничений (строки 5-7). Заведем строку 9 для целевой функции. Цветом
выделена ячейка, в которой будет находиться значение целевой функции для
найденного оптимального решения.
84
В ячейки D5, D6, D7 ведем формулы для зависимостей левых частей
системы ограничений, а в ячейку E9 – формулу для зависимости целевой
функции.
Далее необходимо воспользоваться надстройкой Поиск решения. На
вкладке Данные в группе Анализ выберите команду Поиск решения.
Появится диалоговое окно Поиск решения, которое необходимо заполнить
следующим образом (для добавления ограничений пользуемся кнопкой
Добавить):
85
Далее нажимаем кнопку Параметры и в появившемся окне Параметры
поиска решений устанавливаем флажок неотрицательные значения и
нажимаем OK.
В окне Поиск решения после нажатия кнопки Выполнить появляется окно
Результаты поиска решения, в котором выбираем сохранение найденных
значений и нажимаем кнопку ОК.
86
Результаты поиска решений (для ячеек В2 и С2 установлены числовые
форматы с 0 знаками после запятой):
Получили 𝑍𝑚𝑖𝑛 (4; 3) = 5.
Покажем, что существует Λ0 ≥ 0 , при которой в точке минимума
выполняются условия Куна-Таккера .
Перепишем задачу в виде:
−2 − 𝑥1 + 2𝑥2 ≥ 0
−13 + 7𝑥1 − 𝑥2 ≥ 0
{
21 − 𝑥1 − 3𝑥2 ≥ 0
𝑥1 ≥ 0, 𝑥2 ≥ 0
𝑍1 = −𝑍 = −(𝑥1 − 5)2 − (𝑥2 − 1)2 → 𝑚𝑎𝑥
Составим функцию Лагранжа 𝐿(𝑋, Λ) = 𝑓(𝑋) + ∏𝑚
𝑖=1 𝜆𝑖 𝑔𝑖 (𝑋). Для данной
задачи она имеет вид:
𝐿(𝑋, Λ) = −(𝑥1 − 5)2 − (𝑥2 − 1)2 + 𝜆1 (−2 − 𝑥1 + 2𝑥2 ) + 𝜆2 (−13 + 7𝑥1 − 𝑥2 ) +
+𝜆3 (21 − 𝑥1 − 3𝑥2 )
Найдем частные производные:
𝜕𝐿
= −2(𝑥1 − 5) − 𝜆1 + 7𝜆2 − 𝜆3
𝜕𝑥1
𝜕𝐿
= −2(𝑥2 − 1) + 2𝜆1 − 𝜆2 − 3𝜆3
𝜕𝑥2
𝜕𝐿
= −2 − 𝑥1 + 2𝑥2
𝜕𝜆1
𝜕𝐿
= −13 + 7𝑥1 − 𝑥2
𝜕𝜆2
𝜕𝐿
= 21 − 𝑥1 − 3𝑥2
𝜕𝜆3
Запишем условия Куна-Таккера:
87
𝜕𝐿
=0
𝜕𝑥1
𝜕𝐿
𝑥2 ∙
=0
𝜕𝑥2
𝜕𝐿
𝜆1 ∙
=0
𝜕𝜆1
𝜕𝐿
𝜆2 ∙
=0
𝜕𝜆2
𝜕𝐿
𝜆3 ∙
=0
𝜕𝜆3
{
𝑥1 ∙
𝑥1 ∙ (−2(𝑥1 − 5) − 𝜆1 + 7𝜆2 − 𝜆3 ) = 0
𝑥2 ∙ (−2(𝑥2 − 1) + 2𝜆1 − 𝜆2 − 3𝜆3 ) = 0
𝜆1 ∙ (−2 − 𝑥1 + 2𝑥2 ) = 0
𝜆2 ∙ (−13 + 7𝑥1 − 𝑥2 = 0
{ 𝜆3 ∙ (21 − 𝑥1 − 3𝑥2 ) = 0
Подставим в систему координаты оптимальной точки (4;3), найденной
средствами Excel.
4 ∙ (−2(4 − 5) − 𝜆1 + 7𝜆2 − 𝜆3 ) = 0
3 ∙ (−2(4 − 1) + 2𝜆1 − 𝜆2 − 3𝜆3 ) = 0
𝜆1 ∙ (−2 − 4 + 2 ∙ 3) = 0
𝜆2 ∙ (−13 + 7 ∙ 4 − 3) = 0
{ 𝜆3 ∙ (21 − 4 − 3 ∙ 3) = 0
4 ∙ (2 − 𝜆1 + 7𝜆2 − 𝜆3 ) = 0
3 ∙ (−4 + 2𝜆1 − 𝜆2 − 3𝜆3 ) = 0
𝜆1 ∙ 0 = 0
𝜆2 ∙ 12 = 0
{ 𝜆3 ∙ 8 = 0
Произведение равно нулю, если один из множителей равен нулю. Из первого и
второго уравнений следует, что выражения в скобках равны нулю. Из
четвертого и пятого уравнений следует, что 2=3=0. Подставим их в остальные
уравнения.
2 − 𝜆1 = 0
−4 + 2𝜆1 = 0
{
𝜆2 = 0
𝜆3 = 0
Откуда, находим решение: 1=2, 2=0, 3=0.
является точкой экстремума.
88
Следовательно, точка (4;3)
Вопросы для самопроверки
В чем отличие НП от задачи ЗЛП?
В чем особенности нахождения решения задач НП?
Для каких задач НП разработаны методы решения?
В чем особенности графического решения задачи НП?
Какая функция называется функцией Лагранжа? Какой смысл
множителей Лагранжа?
6. Сформулируйте условия Куна-Таккера.
7. Какие особенности имеет решение задачи выпуклого программирования?
1.
2.
3.
4.
5.
Литература
1. Акулич И.Л. Математическое программирование в примерах и задачах. - М.:
Высшая школа, 1986
2. Интрилигатор М. Математические методы оптимизации и экономическая
теория. М.: Айрис-Пресс, 2002.
3. Исследование операций в экономике/ Под ред. Н.Ш. Кремера. - М.:,
ЮНИТИ, 2005
4. Конюховский П. В. Математические методы исследования операций в
экономике - СПб: Питер, 2000
5. Косоруков О.А,, Мищенко А.В. Исследование операций - М: Экзамен, 2003
6. Кузнецов А.В., Сакович В.А., Холод Н.И. Высшая математика.
Математическое программирование. - Минск: Вышэйшая школа, 1994
7. Кузнецов Ю.Н., Кузубов В.И., Волощенко А.Б.
Математическое
программирование. — М.: Высшая школа, 1986
8. Эддоус М., Стэжфилд Р. Методы принятия решений – М.: Аудит, ЮНИТИ,
1997
9. Шикин Е. В., Шикина Г. Е. Исследование операций :. - М. : ТК Велби,
Проспект, 2006
89
Download