Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6655

.pdf
Скачиваний:
1
Добавлен:
13.02.2021
Размер:
987.09 Кб
Скачать

31

Здесь L X целевая функция, имеющая смысл суммарного эффекта (прибыли);

ограничения отражают следующие условия: а) каждая работа должна быть выполнена; б)

каждый рабочий может быть использован только на одной работе.

В обоих случаях при использовании различных алгоритмов решения задачи о

назначениях

основной

исходной

информацией

является

матрица

C cij , i 1, n; j 1, n .

 

 

 

 

Определение. Выбором квадратной матрицы C называется совокупность ее элементов

следующего вида: c1 j

, c2 j

,...,cnj

таких, что j1

j2 ... jn .

 

 

 

1

2

n

 

 

 

 

Задачу (1) можно сформулировать так: для квадратной матрицы стоимости C определить

выбор, сумма элементов которого является минимальной.

 

 

4.2 Венгерский метод решения задачи о назначениях.

 

 

Определение.

Нулевые

элементы z1, z2,

…, zk квадратной

матрицы

называют

независимыми, если в каждой строке и в каждом столбце содержится не более одного из этих элементов.

В матрице n n не более n независимых нулей.

Опишем алгоритм решения задачи (1) венгерским методом. Процесс решения состоит из подготовительного этапа и не более, чем n – 2 последовательных итераций.

1.1.5.1.1 Подготовительный этап.

А) Для задачи (1) строим матрицу С находим для каждого столбца минимальный

элемент и вычитаем его из всех элементов столбца: c

 

 

 

 

 

 

 

 

 

c

ij

min c

kj

,i 1, n, j 1, n .

ij

 

k 1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для задачи (2) строим матрицу С

находим для каждого столбца максимальный

элемент и вычитаем из него все элементы столбца: c

 

 

 

 

 

 

 

 

 

max c

kj

c

ij

,i 1, n, j 1, n .

 

ij

k 1,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Б) Вычисляем матрицу С0 находим в каждой строке минимальный элемент и вычитаем

его из всех элементов строки: c0

c

min c

 

 

 

 

,i 1, n, j 1, n

ij

ij

k 1,n

ik

 

 

 

 

 

 

 

 

 

 

 

С0 неотрицательная матрица, имеющая в каждой строке и в каждом столбце хотя бы один нуль.

В) Отмечаем произвольный нуль в первом столбце знаком «*». Затем просматриваем второй столбец и если в нем есть нуль, в строке у которого нет 0*, отмечаем его «*». И т.д.

до последнего столбца.

32

0* независимые нули.

1.1.5.1.2 Отдельная итерация.

Пусть k-тая итерация проведена и получена матрица эквивалентная матрица стоимости

Сk.

1. Проверяем если в Сk ровно n 0*, то задача решена и положение независимых нулей определяет оптимальный выбор. В соответствии с системой n независимых нулей эквивалентной матрицы стоимости C* Ck в матрице переменных модели расставляем n

единиц, остальные заменяем нулями. Решение завершено.

2. Столбцы матрицы Сk, содержащие 0*, выделяем знаком «+», их элементы называют выделенными. Остальные элементы матрицы – невыделенные.

3. Если среди невыделенных элементов матрицы Сk есть хотя бы один нуль,

переходим к шагу 4, в противном случае – к шагу 8.

4.Если строка, содержащая невыделенный нуль, содержит также 0*, то переходим к шагу 5, в противном случае – к шагу 6.

5.Найденный невыделенный нуль обозначаем через 0 , содержащую его строку отмечаем знаком «+» и все ее элементы называем выделенными. Снимаем знак выделения со столбца, в котором расположен 0* из выделенной строки, и переходим к шагу 3.

6.Найденный невыделенный нуль обозначаем через 0 и, начиная с него, строим так

называемую L - цепочку по следующему правилу: исходный 0 ; далее 0* , расположенный с ним в одном столбце (если такой найдется); затем 0 , расположенный в одной строке с предшествующим 0* ; далее 0* , расположенный в одном столбце с предшествующим 0

(если такой найдется) и т.д. Переходим к шагу 7.

7. В L - цепочке все 0* заменяем нулями без знаков, а все 0 - символами 0* . В

результате в матрице Сk получим новую систему независимых нулей, число элементов которой на единицу больше числа элементов в предыдущей системе независимых нулей.

Вне L - цепочки все 0 заменяем нулями без знаков и снимаем все выделения строк и столбцов матрицы Сk . Переходим к шагу 1.

8. Среди невыделенных элементов матрицы Сk находим минимальный элемент h ( h 0 в силу неотрицательности элементов эквивалентной матрицы стоимости Сk и

отсутствия невыделенных нулей). Значение h вычитаем из элементов невыделенных

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

33

один из невыделенных элементов является нулем, обозначаем Сk, восстанавливаем все имеющиеся знаки выделения и переходим к шагу 3.

4.3. Пример решения задачи о назначениях.

Рассмотрим задачу, определенную следующей матрицей стоимости:

57

10

36

25

64

 

 

 

 

 

5

12

54

75

50

 

 

 

 

 

19

6

2

69

0

 

 

 

 

 

57

20

2

5

4

 

 

 

 

 

37

10

60

19

76

 

 

 

 

 

 

 

.

 

 

Необходимо найти выбор, сумма элементов которого максимальна. Посчитать сумму выбора.

Решение. Выполним подготовительный этап метода.

А) Для каждого столбца определим максимальный элемент и вычтем из него все элементы данного столбца.

Б) Для каждой строки определим минимальный элемент и вычтем его из всех элементов данной строки.

В) В получившейся матрице определим 0* .

 

57

10

36

25

64

 

 

 

 

 

 

 

5

12

54

75

50

 

 

 

 

 

 

 

19

6

2

69

0

 

 

 

 

 

 

 

57

20

2

5

4

 

 

 

 

 

 

 

37

10

60

19

76

максимум

 

 

 

 

 

57

20

60

75

76

 

 

 

 

 

 

минимум

34

0

10

24

50

12

0

 

 

 

 

 

 

52

8

6

0

26

0

 

 

 

 

 

 

38

14

58

6

76

6

 

 

 

 

 

 

0

0

58

70

72

0

 

 

 

 

 

 

20

10

0

56

0

0

 

 

 

 

 

 

+

+

 

+

+

 

 

 

 

 

 

 

0*

 

10

 

24

50

12

 

 

 

 

 

 

 

52

 

8

 

6

0*

26

 

 

 

 

 

 

 

32

 

8

 

52

0

70

 

 

 

 

 

 

 

0

 

0*

 

58

70

72

 

 

 

 

 

 

 

20

 

10

 

0*

56

0'

 

 

 

 

 

 

 

1.Всего в матрице получилось четыре 0* . 4<5, значит, задача не решена. Выполняем действия по алгоритму.

2.Отмечаем столбцы, содержащие 0* , знаком «+».

3-5. Находим невыделенный 0 и отмечаем его как 0 . В строке с 0 (четвертая строка) есть 0* (третий столбец). Поэтому четвертую строку отмечаем знаком «+»,

знак выделения с третьего столбца снимаем.

+

+

(+)

+

35

0*

10

24

50

12

 

 

 

 

 

 

 

52

8

6

0*

26

 

 

 

 

 

 

 

32

8

52

0

70

 

 

 

 

 

 

 

0

0*

58

70

72

 

 

 

 

 

 

 

20

10

0*

56

0'

+

 

 

 

 

 

 

Среди элементов матрицы снова ищем невыделенный 0 , имея в виду, что элементы

третьего столбца (за исключением 0* ) являются теперь невыделенными. Оказывается,

что такого нуля нет, поэтому переходим к шагу 8.

8. Среди невыделенных элементов находим минимальный:

h min 24,6,52,58,12,26,70,72 6 . Добавляем h ко всем элементам выделенных

столбцов:

 

 

 

 

 

+

+

 

+

 

 

 

 

 

 

 

 

 

 

6

16

24

56

12

 

 

 

 

 

 

 

 

 

58

14

6

6

26

 

 

 

 

 

 

 

 

 

38

14

52

6

70

 

 

 

 

 

 

 

 

 

6

6

58

76

72

 

 

 

 

 

 

 

 

 

26

16

0

62

0

+

 

 

 

 

 

 

 

Вычитаем h из всех элементов невыделенных строк:

+

+

 

+

 

 

 

 

 

 

0

10

18

50

6

 

 

 

 

 

52

8

0

0

20

 

 

 

 

 

32

8

46

0

64

 

 

 

 

 

0

0

52

70

66

 

 

 

 

 

36

26

16

0

62

0

+

 

 

 

 

 

 

Восстанавливаем все знаки выделения:

+

+

 

+

 

 

 

 

 

 

 

 

0*

10

18

50

6

 

 

 

 

 

 

 

52

8

0

0*

20

 

 

 

 

 

 

 

32

8

46

0

64

 

 

 

 

 

 

 

0

0*

52

70

66

 

 

 

 

 

 

 

26

16

0*

62

0′

+

 

 

 

 

 

 

Переходим к шагу 3 – находим невыделенный 0 .

Это 0 , стоящий на пересечении второй строки и третьего столбца. Отмечаем его как 0

. В строке, содержащей этот 0 (третий столбец), есть 0* (четвертый столбец). Поэтому вторую строку помечаем знаком «+», знак выделения с четвертого столбца снимаем:

+

+

 

(+)

 

 

 

 

 

 

 

 

0*

10

18

50

6

 

 

 

 

 

 

 

52

8

0′

0*

20

+

 

 

 

 

 

 

32

8

46

0

64

 

 

 

 

 

 

 

0

0*

52

70

66

 

 

 

 

 

 

 

26

16

0*

62

0′

+

 

 

 

 

 

 

Переходим к шагу 3. Ищем нуль среди невыделенных элементов, имея в виду, что четвертый столбец теперь невыделен. Это нуль, стоящий на пересечении третьей строки и четвертого столбца. Помечаем его как 0 :

37

++

0*

10

18

50

6

 

 

 

 

 

 

 

52

8

0′

0*

20

+

 

 

 

 

 

 

32

8

46

0′

64

 

 

 

 

 

 

 

0

0*

52

70

66

 

 

 

 

 

 

 

26

16

0*

62

0′

+

 

 

 

 

 

 

В строке у этого 0 нет 0* . Поэтому переходим к шагу 6 – строим L -цепочку. От

последнего отмеченного 0 по четвертому столбцу к

0* . От 0* по второй строке к 0 . От

0 по третьему столбцу к 0* . От

0* по пятой строке к

0 . В столбце (пятом) у этого 0 нет

0* , поэтому построение цепочки закончено.

 

 

 

 

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0*

 

10

18

 

50

6

 

 

 

 

 

 

 

 

 

 

 

 

 

52

 

8

0′

 

0*

20

 

+

 

 

 

 

 

 

 

 

 

 

 

32

 

8

46

 

0′

64

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0*

52

 

70

66

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

16

0*

 

62

0′

 

+

 

 

 

 

 

 

 

 

 

 

Все 0* , вошедшие в цепочку, становятся просто нулями (без индексов). Все 0 ,

вошедшие в цепочку, меняем на 0* . Все 0* , не вошедшие в цепочку, остаются 0* . Все остальные знаки выделения снимаем:

0*

10

18

50

6

 

 

 

 

 

52

8

0*

0

20

 

 

 

 

 

32

8

46

0*

64

 

 

 

 

 

0

0*

52

70

66

 

 

 

 

 

26

16

0

62

0*

 

 

 

 

 

38

Итерация закончена.

Новую итерацию начинаем с подсчета 0* . Их оказывается пять. Так как 5=5, то задача решена. Положение 0* (независимых нулей) определяет максимальный выбор:

с11,c42,c23,c34,c55 . Оптимальная эффективность:

L c11 c42 c23 c34 c55 57 20 54 69 76 276 ТЕМА №5

ТЕМА №5

ЭЛЕМЕНТЫ ТЕОРИИ ИГР.

5.1 Понятие об игровых моделях.

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

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

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

выигрышем. Для каждой формализованной игры вводятся правила, т. е. система условий,

39

определяющая: 1) варианты действий игроков; 2) объем информации каждого игрока о поведении партнеров; 3) выигрыш, к которому приводит каждая совокупность действий.

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

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

Игра называется игрой с нулевой суммой, или антагонистической, если выигрыш одного игрока равен проигрышу другого, т. е. для полного задания игры достаточно указать величину одного из них. Если обозначить a выигрыш одного из игроков, b выигрыш другого, то для игры с нулевой суммой b = - a, поэтому достаточно рассмотреть,

например, a.

Выбор и осуществление одного из предусмотренных правилами действий называется

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

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

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

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

бесконечной в противном случае.

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

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

40

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

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

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

Целью теории игр является определение оптимальной стратегии для каждого игрока.

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

Кроме того, в экономике, как правило, возникают задачи, в которых интересы партнеров не обязательно антагонистические. Тем не менее имеет смысл использовать аппарат теории игр в качестве «совещательного» голоса при выборе решения.

5.2 Платежная матрица. Нижняя и верхняя цена игры.

Рассмотрим парную конечную игру с нулевой суммой. Пусть игрок A располагает m

личными стратегиями, которые обозначим A1, A2, …, Am. Пусть у игрока B имеется n

личных стратегий, обозначим их B1, B2, …, Bn. Говорят, что игра имеет размерность m n.

В результате выбора игроками любой пары стратегий Ai и Bj (i = 1, 2, …, m; j = 1, 2, …, n)

однозначно определяется исход игры, т.е. выигрыш aij игрока А (положительный или отрицательный) и проигрыш ( aij) игрока В. Предположим, что значения aij известны для любой пары стратегий (Ai, Bj). Матрица Р = aij, i = 1, 2, …, m; j = 1, 2, …, n , элементами которой являются выигрыши, соответствующие стратегиям Ai и Bj, называется

платежной матрицей или матрицей игры. Общий вид такой матрицы:

 

B1

B2

Bn

 

 

 

 

 

A1

a11

a12

a1n

 

 

 

 

 

A2

a21

a22

a2n

 

 

 

 

 

 

 

 

 

 

Am

am1

am2

amn

 

 

 

 

 

Составим платежную матрицу для следующей игры под названием «поиск». Игрок А может спрятаться в одном из двух убежищ: или ; игрок В ищет игрока А. Если В

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]