Алгоритм решения ЗЛП симплексным методом 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Алгоритм решения ЗЛП симплексным методом



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

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

Второй шаг. На втором шаге необходимо определиться, какую переменную исключить из базиса, а какую включить, для того, что бы произвести перерасчет симплекс-таблицы. Для этого просматриваем столбец со свободными членами и находим в нем отрицательный элемент. Строка с отрицательным элементом будет называться ведущей. В ней находим максимальный по модулю отрицательный элемент, соответствующий ему столбец - ведомый. Если же среди свободных членов есть отрицательные значения, а в соответствующей строке нет, то такая таблица не будет иметь решений. Переменная в ведущей строке, находящаяся в столбце свободных членов исключается из базиса, а переменная, соответствующая ведущему столбцу включается в базис. В Таб.2.1 приведен пример симплекс-таблицы.

Таблица 2.1 –Пример симплекс-таблицы

базисные переменные Свободные члены в ограничениях Небазисные переменные
x1 x2 ... xl ... xn  
xn+1 b1 a11 a12 ... a1l ... a1n
xn+2 b2 a21 a22 ... a2l ... a2n
... ... ... ... ... ...
... ... ... ... ... ... ...
xn+r b2 ar1 ar2 ... arl ... arn
... ... ... ... ... ... ...
xn+m bm am1 am2 ... aml ... amn
F(x)max F0 -c1 -c2 ... -c1 ... -cn
                   

 

Третий шаг. На третьем шаге пересчитываем всю симплекс-таблицу по специальным формулам.

Четвертый шаг. Если после перерасчета в столбце свободных членов остались отрицательные элементы, то переходим к первому шагу, если таких нет, то к пятому.

Пятый шаг. Если Вы дошли до пятого шага, значит нашли решение, которое допустимо. Однако, это не значит, что оно оптимально. Оптимальным оно будет только в том случае, если положительны все элементы в F-строке. Если же это не так, то необходимо улучшить решение, для чего находим для следующего перерасчета ведущие строку и столбец по следующему алгоритму. Первоначально, находим минимальное отрицательное число в строке F, исключая значение функции. Столбец с этим числом и будем ведущим. Для того, что бы найти ведущую строку, находим отношение соответствующего свободного члена и элемента из ведущего столбца, при условии, что они положительны. Минимальное отношение позволит определить ведущую строку. Вновь пересчитываем таблицу по формулам, т.е. переходим к шагу 3.

Шестой шаг. Если невозможно найти ведущую строку, так как нет положительных элементов в ведущем столбце, то функция в области допустимых решений задачи не ограничена сверху и Fmax->∞. Если в строке F и в столбце свободных членов все элементы положительные, то найдено оптимальное решение.

КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗЛП

 

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

Методы линейного программирования оказались весьма эффективными для решения задач из различных областей человеческой деятельности. Исключительно важное значение приобретает использование таких методов и средств при решении задач оптимального проектирования, в которых необходимо учитывать огромное количество ограничивающих факторов, что связано с большим объемом вычислений. Разработанный программный комплекс позволяет решать следующие задачи:

 

• порождение начального базисного допустимого решения;

• поиск оптимального плана и экстремума нецелочисленной задачи линейного программирования;

• поиск оптимального плана и экстремума полностью целочисленной задачи линейного программирования;

• поиск оптимального плана и экстремума частично целочисленной задачи линейного программирования;

При проектировании был использован принцип модульного программирования, что упрощает отладку программы и позволяет расширять ее функциональные возможности. Алгоритмическая часть программы имеет модульно-иерархическую структуру, в которой каждый модуль является самостоятельной частью программы и взаимодействует с другими модулями в порядке, установленном разработчиками. Методы решения задач линейной оптимизации, реализованные в программно-алгоритмическом комплексе, основаны на построении симплекс-таблиц, поэтому в структуре программы все алгоритмические модули связаны с модулем, организующим решение задачи линейного программирования симплекс-методом. Входными данными для этого модуля является целевая функция с указанием типа экстремума (максимум или минимум) и ограничения, накладываемые на управляемые переменные. Ограничения задаются в виде уравнений или неравенств. Далее управление передается второму модулю, где формируется начальное допустимое базисное решение. Второй, третий и четвертый модули на каждой итерации реализуемого метода вызывают модуль построения симплекс-таблиц, которому они передают текущий результат. Связь между модулями организована через внешние структуры данных. Так, например, для задания линейного критерия оптимальности, вектора управляемых переменных, вектора ограничений и матрицы ограничений используются одномерные и двумерные статические массивы, а симплекс-таблица в памяти ЭВМ представлена как двумерный динамический массив, способный изменять свою размерность, удаляя или добавляя строки и столбцы к симплекс-таблице.

Рассмотрим особенность функционирования программного комплекса. Для организации диалога с пользователем применяется стандартный графический интерфейс Windows, построенный на основе библиотеки визуальных компонентов VCL (VisualComponentLibrary), поставляемой вместе с пакетом Delphi. При разработке программы использовалась MDI-технология (MultipleDocumentInterface – многодокументный пользовательский интерфейс), что позволяет пользователю работать сразу с несколькими задачами линейного программирования. В программе реализована активная форма диалога, позволяющая выбирать режимы: расчет, просмотр и редактирование информации, получение справки и т.д.

Главное меню содержит следующие пункты: файл, правка, вид, вычисления, окно, справка. Все пункты главного меню вызывают подменю. В начале работы программы некоторые пункты запрещены и становятся разрешенными только по мере выбора других пунктов меню (например, меню «Правка», «Вычисления» и т. д.).

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


ПРИМЕР РЕШЕНИЯ

Идея симплекс-метода относительно проста. Пусть в задаче линейного программирования имеется п переменных и т независимых линейных ограничений, заданных в форме уравнений. Мы знаем, что оптимальное решение (если оно существует) достигается в одной из опорных точек (вершин ОДР), где по крайней мере k = n - m из переменных равны нулю. Выберем какие-то к переменных в качестве свободных и выразим через них остальные т базисных переменных. Пусть, например, в качестве свободных выбраны первые k = n - m переменныхx1, x2,…,xk,а, остальные m выражены через них(формула 2.1):

xk+1k+1.1x1k+1.2x2+ +αk+1.kxkk+1;

xk+2= αk+2.1x1k+2.2x2+ +αk+2.kxkk+2;(2.1)

……………………………………

xn= αn1x1n2x2+ +αnkxkn.

Предположим, что все свободные переменныеx1, x2,…,xk равны нулю.

При этом мы получим:

xk+1k+1;

xk+2k+2;

…….. (2.2)

Xnn

 

Это решение может быть допустимым или недопустимым. Оно допустимо, если все свободные членыβk+1, βk+2,…,βn(2.2)неотрицательны. Предположим, что это условие выполнено. Тогда мы получили опорное решение. Но является ли оно оптимальным? Чтобы проверить это, выразим целевую функцию Z через свободные переменныеx1, x2,…,xk.

Z=γ01x12x2+…+γkxk (2.3)

Очевидно, что приx1=x2=…=xk=0, Z=γ0. Проверим, может ли быть улучшено решение, т. е. получено уменьшение функции Z c увеличением каких-нибудь из переменныхx1, x2,…, xk(2.2) (уменьшать их мы не можем, так как все они равны нулю, а отрицательные значения переменных недопустимы). Если все коэффициентыγ12,…,γkв (2.3) положительны, то увеличение каких-либо из переменныхx1,x2,…,xk(2.2) не может уменьшить Z; следовательно, найденное опорное решение является оптимальным. Если же среди коэффициентовγ12,…,γk есть отрицательные, то, увеличивая некоторые из переменныхx1,x2,…,xk(те, коэффициенты при которых отрицательны), мы можем улучшить решение.

Пусть, например, коэффициентγ1в (2.3) отрицателен. Значит, есть смысл увеличитьx1, т. е. перейти от данного опорного решения к другому, где переменнаяx1не равна нулю, а вместо нее равна нулю какая-то другая. Однако увеличиватьx1следует с осторожностью, так чтобы не стали отрицательными другие переменныеxk+1, xk+2,…,xn выраженные через свободные переменные, в частности черезx1формулами (2.2).

Например, если коэффициент приx1в соответствующем xj уравнении (2.2) отрицателен, то увеличениеx1может сделать xj отрицательным. Наоборот, если среди уравнений (2.2) нет уравнения с отрицательным коэффициентом приx1то величинуx1можно увеличивать беспредельно, а, значит, линейная функция Z не ограничена снизу и оптимального решения ОЗ не существует.

Допустим, что это не так и что среди уравнений (2.2) есть такие, в которых коэффициент приx1отрицателен. Для переменных, стоящих в левых частях этих уравнений, увеличениеx1опасно — оно может сделать их отрицательными.

Возьмем одну из таких переменных xl и посмотрим, до какой степени можно увеличитьx1, пока переменная xl не станет отрицательной. Выпишем l-e уравнение из системы (2.2):

xll1x1l2x2+…+αlkxkl (2.4)

Здесь свободный членβl≥0, а коэффициентαl1отрицателен.

Легко понять, что если мы оставимx2=x3=…=xk=0, тоxkможно увеличивать только до значения, равного–βll1,а при дальнейшем увеличенииx1переменнаяx1станет отрицательной.

Выберем ту из переменныхxk+1,xk+2,…,xn, которая раньше всех обратится в нуль при увеличении x1, т. е. ту, для которой величина–βll1наименьшая. Пусть это будетxr. Тогда имеет смысл разрешить систему уравнений (2.2) относительно других базисных переменных, исключаяиз числа свободных переменныхx1и переводя вместо нее в группу свободных переменныхxr. Действительно, мы хотим перейти от опорного решения, задаваемого равенствамиx1=x2=…=xn=0 к опорному решению, в котором ужеx1≠0, аx2=…=xk=xr=0. Первое опорное решение мы получили, положив равными нулю все прежние свободные переменныеx1,x2,…,xkвторое мы получим, если обратим в нуль все новые свободные переменныеx2,x3,…,xk,xr.

Базисными переменными при этом будутxl,xk+1,xk+2,…,xr-1, xr-1,…,xr.

Предположим, что уравнения типа (2.2) для нового набора базисных и свободных переменных составлены. Тогда можно выразить через новые свободные переменные и линейную функцию Z.Если все коэффициенты при переменных в этой формуле положительны, то мы нашли оптимальное решение: оно получится, если все свободные переменные положить равными нулю. Если среди коэффициентов при переменных есть отрицательные, то процедура улучшения решения продолжается: система вновь разрешается относительно других базисных переменных, и так далее, пока не будет найдено оптимальное решение, обращающее функцию Z в минимум.

Пример 2. Пусть имеется задача линейного программирования с ограничениями-неравенствами:

-5x1-x2+2x3≤2;

-x1+x3+x4≤5; (2.5)

-3x1+5x4≤7.

Требуется минимизировать линейную функцию:

Z=5x1-2x3

Приводя неравенства к стандартному виду (≥0) и вводя добавочные переменныеy1,y2,y3переходим к условиям-равенствам:

y1=5x1+x2-2x3+2

y2=x1-x3-x4+5 (2.5)

y3=3x1-5x4+7

Число переменных (n = 7) на 4 превышает число уравнений (т = 3). Значит, четыре переменные могут быть выбраны в качестве свободных.

 

Пусть в качестве свободных переменных выступаютx1,x2,x3,x4. Положим их равными нулю и получим опорное решение:

x1=x2=x3=x4=0;

y1=2, y2=5, y3=7.

При этих значениях переменных Z= 0.

Это решение не оптимально, поскольку в линейной функции Z коэффициент приx3отрицателен. Значит, увеличиваяx3можно уменьшить Z.

Попробуем увеличиватьx3.Из выражений (2.5) видно, что вy1и y2переменнаяx3входит с отрицательным коэффициентом, значит, при увеличенииx3соответствующие переменные могут стать отрицательными.

Определим, какая из этих переменных (y1илиy2)раньше обратится в нуль при увеличенииx3Очевидно, что этоy1она станет равной нулю приx3=1, а величинаy2— только приx3= 5.

Выбирается переменная у, и вводится в число свободных вместоx3Чтобы разрешить систему (2.5) относительноx3, y2, y3поступим следующим образом. Разрешим первое уравнение (2.5) относительно новой базисной переменной x3:

x3=5/2*x1+1/2*x2-1/2*y1+1

Это выражение подставляется вместоx3во второе уравнение:

x3=5/2*x1+1/2*x2-1/2y1+1;

y2=-3/2*x1-1/2*x2+1/2*y1-x4+4; (2.6)

y3=3x1-5x4+7.

Что касается третьего уравнения, то оно, как не содержащееx3не изменится. Система (2.2) приведена к виду со свободными переменнымиx1, x2, y1, x4и базиснымиx3, y2, y3.

Положим теперь свободные переменные равными нулю. Функция приобретает значение Z=-2, что меньше (лучше), чем прежнее значение Z= 0.

Это решение все еще не оптимально, так как коэффициент приx2в выражении (2.7) отрицателен, и переменнаяx2может быть увеличена. Это увеличение, как это видно из системы (2.6), может сделать отрицательнойy2(в первое уравнениеx2входит с положительным коэффициентом, а в третьем — отсутствует).

Поменяем местами переменныеx2 и y2— первую исключим

из числа свободных, а вторую — включим. Для этого разрешим второе уравнение (2.6) относительноx2и подставимx2в первое уравнение. Получим следующий вид системы (2.5):

x3=x1-y2-x4+5

y2=-3x1-2y2+y1-2x4+8 (2.7)

y3=3x1-5x4+7

Выразим Z через новые свободные переменные:

Z=3x1+2y2-y1+2x4-8+y1-2=3x1+2y2+2x4-10 (2.8)

Полагаяx1=y1=y2=x4=0, получим Z = -10.

Это решение является оптимальным, так как коэффициенты при всех свободных переменных в выражении (2.8) неотрицательны. Итак, оптимальное решение ОЗ найдено (2.9):

x1*=0, x2*=8, x3*=5, x4*=0, y1*=0, y2*=0, y3*=7. (2.9)

При таких значениях переменных линейная функция Z принимает минимальное значение (2.10):

Zmin=-10 (2.10)

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

 

Двойственная задача

Использование идей двойственности в сочетании с общей идеей симплекс-метода позволило разработать еще один метод решения задач ЛП - двойственный симплекс-метод. Впервые этот метод был предложен Лемке в 1954г. Решение задачи ЛП двойственным симплекс-методом сводится к отысканию оптимального плана прямой задачи последовательным переходом от одного базиса к другому.


 

Задача ЛП в канонической форме имеет вид:

Максимизировать:

L(x) = сумма от j=1 до n (сj xj)

При условиях:

сумма от j=1 до n (аjXj)=bv, (v=1,2,....m)

или:

сумма от j=1 до n (АjXj)=b, xj>=0, j=1,2,...n

 

Составим двойственную задачу по условиям прямой задачи и определим области допустимых решений ДП:

maxZ=x1-3x3-3x4-MR1-MR2

y1: x1+2x3-2x4+x5=4

y2: 3x1-4x3+4x4+R1=11

y3: x1+x3-x4-x6+R2=0

minW=4y1+12y2

x1: y1+3y2+y3≥1

x3: 2y1-4y2+y3≥-3


 

-2y1+4y2-y3≤3(1)

X4: -2y1+4y2-y3≥3 (2)

X5: y1≥0

X6: -y3≥0 => y3≤0

R1: y2≥-M

R2:y3≥-M

Итак, получено: y1≥0,y2≤≥0,y3≤0.

Приведём запись двойственной задачи к канонической форме. На основании полученных ОДР двойственных переменных введём необходимые подстановки:

y2=y4-y5; y3=-ỹ3; 3,y4,y5≥0

Для удобства решения свернём ограничения (1) и (2) в одно со знаком равенства, а также введем в ограничения и целевую функцию избыточные, остаточные и искусственные переменные.

minW=4y1+12y4-12y5+MR1+MR2

y1+3y4-3y5-ỹ3-y6+R1=1 (3)

-2y1+4y4-4y5+ỹ3+R2=3 (4)


 

Решим ДЗ симплекс методом:

Из (3) выразим:

R1=1-y1-3y4+3y5+ỹ3+y6


Из (4) выразим:

R2=3+2y1-4y4+4y5-ỹ3

W+y1(-4-M)+y4(-12+7M)+y5(12-7M)-My6=4M


ЗАКЛЮЧЕНИЕ

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

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

Задачи линейного программирования решаются несколькими методами:

1. графический метод;

2. симплекс-метод;

3. двойственный симплекс-метод.

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

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


СПИСОК ЛИТЕРАТУРЫ

 

1. И.К. Волков, Е.А. Загоруйко. «Исследование операций», Издательство МГТУ им Н.Э. Баумана, Москва 2002.

2. А.В. Аттетков и др., «Методы оптимизации», Издательство МГТУ им Н.Э. Баумана, Москва 2003.

3. О.А. Косоруков, А.В. Мищенко «Исследование операций», Издательство «Экзамен», Москва 2003.

4. О.И. Ларичев, «Теория и методы принятия решений», Физматкнига, Москва 2006.

5. Вапник В.Н., Червоненкис А.Я., «Теория распознавания образов», издательство «Высшая школа», Москва 1974.

6. Хэмди А. Таха, «Введение в исследование операций», издательский дом «Вильямс», Москва 2001.

7. И.Л. Акулич «Математическое программирование в примерах и задачах», издательство «Высшая школа», Москва 1986.


 

ПРИЛОЖЕНИЕ 1

 

Найти минимум функции методом множителей Лагранжа:

F(x,y)=x2+y2+ax+by+c→ min

dx+ey+r=0

a  
b -4
c  
d -4
e -4
r -4

 

1. Записывается функция Лагранжа:

min(x2+y2+2x-4y+5)

-4x-4y-4=0

f(x,y)= x2+y2+2x-4y+5

g1(x,y)=0

g1(x,y)= -4x-4y-4

Λ=(x,y, λ)= x2+y2+2x-4y+5+λ(-4x-4y-4)

 

2. Приравнять к нулю градиент функции Лагранжа и найти стационарные точки:

 


 

 

ПРИЛОЖЕНИЕ 2

Задание 1.

 

Рассмотрим игру двух лиц, интересы которых противоположны. Такие игры называют антагонистическими играми двух лиц. В этом случае выигрыш одного игрока равен проигрышу второго, и можно описать только одного из игроков.

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

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

Чистой стратегией игрока I является выбор одной из n строк матрицы выигрышей А, а чистой стратегией игрока II является выбор одного из столбцов этой же матрицы.

1. Проверяем, имеет ли платежная матрица седловую точку.

Если да, то выписываем решение игры в чистых стратегиях.
Считаем, что игрок I выбирает свою стратегию так, чтобы получить максимальный свой выигрыш, а игрок II выбирает свою стратегию так, чтобы минимизировать выигрыш игрока I.

 

Игроки B1 B2 B3 B4 B5 a = min(Ai)
A1         -4 -4
A2     -3 -1   -3
A3            
A4 -3 -3   -4   -4
A5            
b = max(Bi)            

Находим гарантированный выигрыш, определяемый нижней ценой игры a = max(ai) = 4, которая указывает на максимальную чистую стратегию A3.

Верхняя цена игры b = min(bj) = 4.

Седловая точка (3, 2) указывает решение на пару альтернатив (A3,B2). Цена игры равна 4.


 

Задание 2.

Игроки B1 B2 B3 B4 a = min(Ai)
A1          
A2          
b = max(Bi)         ­

 

Находим гарантированный выигрыш, определяемый нижней ценой игры a = max(ai) = 2, которая указывает на максимальную чистую стратегию A2.

Верхняя цена игры b = min(bj) = 4.

Что свидетельствует об отсутствии седловой точки, так как a ≠ b, тогда цена игры находится в пределах 2 <= y <= 4. Находим решение игры в смешанных стратегиях. Объясняется это тем, что игроки не могут объявить противнику свои чистые стратегии: им следует скрывать свои действия. Игру можно решить, если позволить игрокам выбирать свои стратегии случайным образом (смешивать чистые стратегии).

С позиции проигрышей игрока В стратегия B3 доминирует над стратегией B2 (все элементы столбца 3 больше элементов столбца 2), следовательно исключаем 3-й столбец матрицы. Вероятность q3 = 0.

 

     
     

 

 

Решим задачу геометрическим методом, который включает в себя следующие этапы:

1. В декартовой системе координат по оси абсцисс откладывается отрезок, длина которого равна 1. Левый конец отрезка (точка х = 0) соответствует стратегии A1, правый - стратегии A2 (x = 1). Промежуточные точки х соответствуют вероятностям некоторых смешанных стратегий S1 = (p1,p2).

2. На левой оси ординат откладываются выигрыши стратегии A1. На линии, параллельной оси ординат, из точки 1 откладываются выигрыши стратегии A2.
Решение игры (2 x n) проводим с позиции игрока A, придерживающегося максиминной стратегии. Доминирующихся и дублирующих стратегий ни у одного из игроков нет.

Максиминной оптимальной стратегии игрока A соответствует точка N, лежащая на пересечении прямых B2B2 и B3B3, для которых можно записать следующую систему уравнений:

y = 3 + (4 - 3)p2

y = 10 + (2 - 10)p2

Откуда:

p1 = 2/9

p2 = 7/9

Цена игры, y = 37/9;


 

 

Теперь можно найти минимаксную стратегию игрока B, записав соответствующую систему уравнений, исключив стратегию B1, которая дает явно больший проигрыш игроку B, и, следовательно, q1 = 0.

 

3q2+10q3 = y

4q2+2q3 = y

q2+q3 = 1

 

или

 

3q2+10q3 = 37/9

4q2+2q3 = 37/9

q2+q3 = 1

 

Решая эту систему методом обратной матрицы, находим:

 

q2 = 8/9

q3 = 1/9

 

Поскольку из исходной матрицы были удалены и столбцы, то найденные векторы вероятности можно записать в виде: P(2/9,7/9); Q(0,8/9,0,1/9);


 

Задание 3

Решение:

В каждом столбце матрицы A найдем максимальный элемент. Эти элементы подчеркнуты в матрице A. Их положение соответствует приемлемым ситуациям 1-го игрока, когда второй игрок выбрал стратегию j соответственно.
Затем в каждой строке матрицы B выберем наибольший элемент. Эти элементы подчеркнуты в матрице B. Их положение будет определять приемлемые ситуации 2-го игрока, когда первый игрок выбрал стратегию i соответственно.

Платежная матрица игрока А:

 

   
   

 

Платежная матрица игрока B:

 

-3  
   

 

Таким образом, найдены две равновесные ситуации (2;1), (1;2),. Эти ситуации оказались приемлемыми для обоих игроков.В равновесной ситуации (2,1) игрок 1 выигрывает 5 единиц, а игрок 2 - 8 единицы.

В равновесной ситуации (1,2) игрок 1 выигрывает 4 единиц, а игрок 2 - 4 единицы.

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

 

Итак, чтобы в биматричной игре: А=(a), В = (b) пара (p,q); определяемая равновесную ситуацию, необходимо и достаточно одновременное выполнение следующих неравенств:

(p–1)(Cq-α) >= 0, p(Cq-α) >= 0; 0 >= p >= 1

(q-1)(Dp-β) >= 0, q(Dp-β) >= 0; 0 >= q >= 1,

где

C = a11 - a12 - a21 + a22

α = a22- a12

D = b11-b12-b21+b22

β = b22-b21

 

Проводя необходимые вычисления:

C = 1 - 4 - 5 + 2 = -6

α = 2 - 4 = -2

D = -3 - 4 - 8 + 2 = -13

β = 2 - 8 = -6

 

и рассуждения

(p–1)(-6q+2) >= 0

p(-6q+2) >= 0

(q-1)(-13p+6) >= 0

q(-13p+6) >= 0

 

получаем, что:

 

1) p=1,q >= 1/3, p=0, q <= 1/3, 0 <= p <= 1, q=1/3

2) q=1,p >= 6/13, q=0, p <= 6/13, 0 <= q <= 1, p=6/13

 

Цена игры:

Ha(6/13;1/3) = 3, Hb(6/13;1/3) = 212/13

Ответ: P* = (6/13;7/13); Q* = (1/3;2/3).

 

Выигрыш игроков в равновесной ситуации: f(P*,Q*) = (3;212/13).


 

ПРИЛОЖЕНИЕ 3

 

1. Найти наикратчайший путь из узла (1) в узел (16).

2. Найти остов графа.


 

1. Пусть дан граф G{M,N}, где M – множество вершин, N – множество дуг, и таблица длин пути (Таблица 1).

Таблица 1:

(1, 2)  
(2, 3)  
(3, 4)  
(1, 5)  
(2, 6)  
(3, 7)  
(4, 8)  
(5, 6)  
(6, 7)  
(7, 8)  
(5, 9)  
(6,10)  
(7,11)  
(8,12)  
(9, 10)  
(10, 11)  
(11, 12)  
(9, 13)  
(10,14)  
(11,15)  
(12,16)  
(13,14)  
(14,15)  
(15,16)  

 


 

 

Для поиска кратчайшего пути используют алгоритм Дейкстры:

1. Выбирается начальный узел. Ему присваивается метка 0. Вершинам, связанным с начальной присваиваются метки, равные длине пути. Остальным присваивается метка ∞.

2. Среди всех временных вершин выбирается та, которая имеет наименьшее временное значений и переводится в постоянное.

3. Во всех вершинах j, связанных с i происходит пересчет метки:

Vi*=min(Vj*, Vi+Cij),

где Cij – расстояние между i и j, Vi, Vj – значения меток i и j;

4. Пункт 2 повторяется до тех пор, пока существуют временные метки.

5. Используя алгоритм «обратного хода», находятся наикратчайшие пути.

 

 


 

Решение.

 

                               
  39* ∞* ∞* 24* ∞* ∞* ∞* ∞* ∞* ∞* ∞* ∞* ∞* ∞* ∞*
  39* ∞* ∞* 24i ∞*j ∞* ∞* ∞*j ∞* ∞* ∞* ∞* ∞* ∞* ∞*

 

V6*=min(∞*, 24+34)= min(∞*, 58)=58;

V9*=min(∞*, 24+37)= min(∞*,61)=61;

  39* ∞* ∞*   58* ∞* ∞* 61* ∞* ∞* ∞* ∞* ∞* ∞* ∞*
  39i ∞*j ∞*   58*j ∞* ∞* 61* ∞* ∞* ∞* ∞* ∞* ∞* ∞*

 

V3*=min(∞*, 39+25)= min(∞*, 64)=64;

V6*=min(58*, 39+11)= min(58*,50)=50;

 

    64* ∞*   50* ∞* ∞* 61* ∞* ∞* ∞* ∞* ∞* ∞* ∞*
    64* ∞*   50i ∞*j ∞* 61* ∞*j ∞* ∞* ∞* ∞* ∞* ∞*

 

V7*=min(∞*, 50+48)= min(∞*, 98)=98;

V10*=min(∞*, 50+44)= min(∞*,94)=94;

 

    64* ∞*     98* ∞* 61* 94* ∞* ∞* ∞* ∞* ∞* ∞*
    64* ∞*     98* ∞* 61i 94*j ∞* ∞* ∞*j ∞* ∞* ∞*

 

V10*=min(94*, 61+32)= min(94*, 93)=93;

V13*=min(∞*, 61+27)= min(∞*, 88)=88;

 

    64* ∞*     98* ∞*   93* ∞* ∞* 88* ∞* ∞* ∞*
    64i ∞*j     98*j ∞*   93* ∞* ∞* 88* ∞* ∞* ∞*

V4*=min(∞*, 64+41)= min(∞*, 105)=105;

V7*=min(98*, 64+29)= min(98*, 93)=93;

 

      105*     93* ∞*   93* ∞* ∞* 88* ∞* ∞* ∞*
      105*     93* ∞*   93* ∞* ∞* 88i ∞*j ∞* ∞*

 

V14*=min(∞*, 88+12)= min(∞*, 100)=100;

 

      105*     93* ∞*   93* ∞* ∞*   100* ∞* ∞*
      105*     93i ∞*j   93* ∞*j ∞*   100* ∞* ∞*

 

V8*=min(∞*, 93+39)= min(∞*, 132)=132;

V11*=min(∞*, 93+50)= min(∞*, 143)=143;

 



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 248; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.124.8 (0.259 с.)