Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по методам оптимизации.doc
Скачиваний:
181
Добавлен:
02.05.2014
Размер:
1.18 Mб
Скачать

Лабораторная работа 15. Задача о назначении. Метод мака Постановка задачи такая же самая, как и в предыдущем разделе (14.1–14.4).

Алгоритм метода Мака.

1. Помечаем минимальный элемент строки отметкой *. Если минимальных элементов несколько, помечаем любой из них.

2. Действия п. 1 повторяем для всех строк матрицы расходов.

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

i) Столбец не имеет обозначенных элементов;

ii) Столбец имеет по крайней мере один обозначенный элемент.

4. В случае i) помечаем минимальный элемент строки отметкой *. Все другие отметки в этой строке снимаются. В случае ii) помечаем минимальный элемент строки отметкой ^, если элемент этой строки с отметкой * не является единственным обозначенным элементом в своем столбце.

5. Действия п.п. 3 и 4 повторяем последовательно для всех строк, которые имеют больше одного минимального элемента.

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

7. Помечаем (отметкой &) столбцы, которые имеют больше одного обозначенного элемента. Они образуют множество В, другие столбцы матрицы расходов образуют множество А.

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

9. Находим для строки минимальную разницу между элементами множества. Но и элементом с отметкой *.

10. Действия п.п. 8 и 9 повторяем последовательно для всех строк, которые имеют свойства, которые указаны в п. 8.

11. Выбираем наименьшую из минимальных разниц.

12. Добавляем это число к каждому элементу множества В.

13. Возвращаемся к п. 3.

Замечания те же самые, как в предыдущем разделе.

Программное обеспечение.

Обучающий модуль, с помощью которого задача об оптимальных назначениях Решается в диалоге с пользователем за выложенным алгоритмом, вызывается из раздела «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ» главного меню пакета ПЗМО.

Задание.

Решить методом Мака задачи об оптимальных назначениях, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1–№9), а также задачи, матрице расходов C которых заданы в предыдущем разделе.

Лабораторная работа 16.

Матричные игры. Связь с задачей линейного программирования. Метод брауна-робiнсон

Постановка матричной игры двух лиц с нулевой суммой.

Найти цену игры и оптимальные смешанные стратегии игроков для матричной игры двух лиц с нулевой суммой и заданной платежной матрицей C=||cij||, i=1...,m, j=1...,n (игрока I1игроку I2).

Основные определения и теоремы.

Смешанные стратегии игроков I1и I2 — это векторы x=(x1...,xm) и y=(y1...,yn)', компоненты которых удовлетворяют условия:

xi0, i=1...,m, x1 +...+ xm = 1

yj0, j=1...,n, y1 +...+ yn = 1.

Можно считать, что числа xi (i=1...,m) и yj (j=1...,n) есть не что другое, как вероятности выбора і-ї и j-ї стратегий, соответственно, игроками I1и I2 (і-го строки матрицы C первым игроком та j-го столбца этой же матрицы вторым игроком).

Функция F(x,y)=xCy' называется математической ожиданием платежа игрока I1игроку I2 (средним выигрышем игрока I2).

Точка (x*,y*) (x*X, y*Y) называется седловой точкой функции f(x,y), xX, вВ, если для произвольных xX, вВ имеет место неравенство

f(x*,y)  f(x*,y*)  f(x,y*).

Теорема. Пусть заданная действительная функция f(x,y), xX, вВ, для которой существуют

min max f(x,y) max min f(x,y).

xX вВ вВ xX

Для того, чтобы выполнялось соотношение

min max f(x,y)= max min f(x,y).

xX вВ вВ xX

необходимо и достаточно, чтобы функция f(x,y) имела седловую точку.

Теорема. Функция F(x,y) (средний выигрыш игрока I2) всегда имеет седловую точку.

Компоненты x*, y*точки (x*,y*) седла функции F(x,y) определяют оптимальные смешанные стратегии игроков I1 и I2, соответственно,а цена игрыv определяется соотношением:

v = min max F(x,y)= max min F(x,y)= F(x*,y*)

xX вВ вВ xX

X = { x = (x1...,xm) : xi0, i=1...,m, x1+...+ xm = 1}

В = { в = (y1...,yn)' : yj0, j=1...,n, y1 +...+ yn = 1}.

Теорема. Задача определения оптимальных смешанных стратегий x* и y* игроков I1и I2эквивалентная пару двойственных задач линейного программирования:

v  min

c1j x1 +...+ cmj xm v, j=1...,n

x1 +...+ xm = 1, xi0, i=1...,m;

v  max

ci1 y1 +...+ сіn ynv, i=1...,m

y1+...+ yn = 1, yj0, j=1...,n.

Метод Брауна-Робинсона.

Метод Брауна-Робинсона представляет собой итеративный метод решения матричной игры, с каждым шагом которого связывается некоторая фиктивная игра, что разыгрывается в чистых стратегиях.

Пусть на s-у шаге полученные векторы

M(s)= (m1(s),...,mm(s)), N(s)= (n1(s),...,nn(s))

компоненты которых mi(s)и nj(s)соответственно уровни количествам выбора і-ї и j-ї чистых стратегий первым и вторым игроками на предыдущих шагах. Указанные векторы определяют очевидно частоты выбора соответствующих чистых стратегий игроков. Рассматриваются также векторы относительных частот

x(s)= (x1(s),...,xm(s)) но в(s)= (y1(s),...,yn(s))'

где xi(s)= mi(s)s, i=1...,m, yj(s)= nj(s)s, j=1...,n.

На s-у шаге величина

ci1y1(s)+...+ сіnyn(s), i=1...,m

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

c1jx1(s)+...+ cmjxm(s), j=1...,n — средний выигрыш второго игрока при условии, что второй игрок выбирает j-й столбец.

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

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

Теорема Брауна-Робинсон.

При неограниченном росте s величины x(s) и в(s) следуют к оптимальным смешанным стратегиям x*и y*первого и второго игроков соответственно.

Программное обеспечение.

Обучающий модуль, с помощью которого матричная игра Решается в диалоге с пользователем за алгоритмом Брауна-Робинсона, вызывается из раздела «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ» главного меню пакета ПОМО.

Задание.

Решить методом Брауна-Робинсона матричные игры, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1–№9).

Путем сведения двойственных задач линейного программирования и методом Брауна-Робинсона найти оптимальные смешанные стратегии и цену игры матричных игр с такими платежными матрицами:

1)

-8

2

2)

2

-5

3)

-1

5

4)

5

-6

5)

-3

1

1

-8

,

-4

3

,

6

-4

,

-3

0

,

2

-1

,

6)

-3

3

3

7)

0

1

6

8)

1

0

-1

9)

1

0

-1

-5

5

-3

7

1

3

0

2

1

-1

2

3

3

-9

2

,

1

2

0

,

1

-1

3

,

-2

-3

3

.