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

книги / Математические методы принятия решений

..pdf
Скачиваний:
2
Добавлен:
13.11.2023
Размер:
22.94 Mб
Скачать

Шаг 1. Построить матрицу пропускных способностей размером и х п, элементы которой соответствуют пропускным спо­ собностям дуг между узлами г и j, г, j = 1,2,..., п, и матрицу марш­ рутов |гц;||, заменив в ней все элементы столбцов одинаковыми числами, равными номеру столбца.

Шаг 2. Произвести над матрицей пропускных способностей следующие операции.

1 ) Для любых г, j = 1,2,..., п исключить j -ю строку и г-й стол

бец матрицы и над каждым оставшимся элементом (диагональ­ ные элементы также исключаются) выполнить трехместную опера­ цию dik = m ax {dit; min(djj; djk)} для всех %,кф j, j = 1,2, ... , n.

Еще одна матрица, называемая матрицей маршрутов, необхо­ дима для определения внутренних узлов каждой цепи. Матрица маршрутов также имеет размер п х п , где fc-й элемент г-й строки

вней первоначально равен к.

2)Одновременно с заменами элементов в матрице пропускных способностей выполнить замены элементов в матрице маршрутов по следующему правилу:

j,

если

dik <mm{dij;djk},

остается неизменным,

если

dik ^ m in{dÿ; djk}.

Если узлы г и j не соединены дугой (или связь между ними недопустима), то значение соответствующего элемента dÿ матрицы пропускных способностей полагается равным —оо.

Для иллюстрации данного алгоритма рассмотрим следующую задачу.

Задача. Производятся перевозки автотранспортом крупногаба­ ритного груза. Требуется перевозить несколько видов оборудования с очень большим вертикальным габаритным размером. Это обору­ дование можно перевозить только по семи утвержденным маршру­ там. Задача заключается в выборе маршрутов с максимально допу­ стимыми подмостовыми зазорами.

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

грузов, которые можно транспортировать из каждого пункта по­ грузки в каждый пункт выгрузки.

 

 

 

 

 

Таблица 3.19

Транспортировка крупногабаритного

 

 

 

 

груза

 

 

 

 

Пункт

 

 

Пункт выгрузки

 

 

погрузки

1

2

3

4

5

6

7

 

1

0

11

30

2

11

0

12

2

3

30

0

19

4

4

12

19

0

11

9

 

 

 

 

 

 

5

2

4

11

0

6

9

0

 

 

 

 

 

7

20

1

1

0

Р е ш е н и е . Для каждой пары узлов определяют соединяющий их маршрут с максимальной пропускной способностью. Ниже при­

водятся результаты вычислений.

 

 

 

 

 

 

 

 

 

 

И т е р а ц и я

0.

Выпишем исходные матрицы пропускных спо­

собностей и маршрутов:

 

 

 

 

 

 

 

 

 

 

 

/

0

11

30

 

—оо

—оо

—оо

- о ° \

/1

2

3

4

5

6

Л

0

—оо

12

2

—оо

—оо

 

2

3

4

5

6

 

11

 

1

7

 

30

—оо

0

 

19

—оо

4

—оо

 

1

2

3

4

5

6

7

 

—оо

12

19

 

0

11

9

—оо

>

1

2

3

4

5

6

7

 

—оо

2

—оо

11

0

—оо

—оо

 

1

2

3

4

5

6

7

 

—оо

—оо

4

 

9

—оо

0

—оо

 

1

2

3

4

5

6

7

\

оо

—оо

—оо

20

1

1

0 )

\1

2

3

4

5

6

7 /

 

И т е р а ц и я

1.

Согласно шагу 2 алгоритма Т.Ху изменим мат­

рицы пропускных способностей и маршрутов:

 

 

 

 

 

 

/

0

11

30

 

—оо

—оо

—оо

—о о \

( х

2

3

4

5

6

Л

 

и

0

11

 

12

2

—оо

—оо

 

1

2

1

4

5

6

7

 

30

и

0

 

19

—оо

4

—оо

 

1

1

3

4

5

6

7

 

—оо

12

19

 

0

11

9

—оо

»

1

2

3

4

5

6

7

 

—оо

2

—оо

11

0

—оо

—оо

 

1

2

3

4

5

6

7

 

—оо

—оо

4

 

9

—оо

0

—00

 

1

2

3

4

5

6

7

V—оо

—оо

—оо

20

1

1

0

У

\1

2

3

4

5

6

7 /

Выполним аналогичные семь итераций. Приведем сразу резуль­ таты последней итерации.

И т е р а ц и я 7. В результате преобразований получим опти­ мальное решение:

0

12

30

19

11

9

—осЛ

/1

4

3

3

4

4

7

\

0

12

12

11

9

—оо

4

2

4

4

4

4

7

 

12

 

30

12

0

19

И

9

—оо

1

4

3

4

4

4

7

 

19

12

19

0

11

9

—оо , 1 И =

3

2

3

4

5

6

7

 

11

11

11

11

0

9

—оо

4

4

4

4

5

4

7

 

9

9

9

9

9

0

—оо

4

4

4

4

4

6

7

 

\19

12

19

20

11

9

0 /

^4

4

4

4

4

4

7

/

Для каждой пары узлов максимально допустимый вертикальный габаритный размер перевозимого груза можно определить непо­ средственно из последней матрицы пропускных способностей. Оп­ тимальный маршрут также может быть построен с помощью по­ следней матрицы маршрутов. Например, максимальная пропускная способность цепи из пункта 7 в пункт 4 определяется значением элемента d*4 = 19, которому соответствует элемент г *4 = 3 в матри­ це маршрутов. Теперь надо связать пункт 3 с пунктом 4 и пунктом 1. Поскольку г *4 = 4 и г *3 = 3, то соответствующий маршрут строят следующим образом:

а) г *4 = 3: двигаться из узла 1 в узел 4 через узел 3; б) Г34 = 4: двигаться из узла 3 непосредственно в узел 4;

в) г *3 = 3: двигаться из узла 7 непосредственно в узел 3. Отсюда получим путь из пункта 7 в пункт 4:

Действительно, d*4 = min{30; 19} = 19.

Отметим, что дуги, соединяющей узлы 7 и 4, не существует.

Г л а в а 4

ОСНОВЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ И ТЕОРИИ ИГР

§ 4.1. Условия применимости динамического программирования

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

Наконец, в ряде практических случаев целевую функцию во­ обще нельзя дифференцировать, например когда аргументы х = = (xi,X2, ■■■, х т) представляют собой не непрерывно изменяющи­ еся величины, а дискретные.

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

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

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

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

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

В задачах, решаемых методом динамического программиро­ вания, значение целевой функции (оптимизируемого критерия), достигнутое в течение всего процесса, получают простым сумми­ рованием частных значений fi{x) того же критерия, полученных

на отдельных шагах, т. е.

т

/(я ) = Л Мх). i—1

Если критерий оптимальности f(x) обладает этим свойством, то он называется аддитивным.

Во многих практических задачах критерий f(x) аддитивен; если в первоначальной постановке задачи критерий не аддитивен, то по­ становку задачи надо видоизменить так, чтобы он стал аддитивным. К примеру [4, 5], если рассматривают критерий f(x), представлен­ ный в виде произведения частных значений, достигаемых на от­ дельных этапах: f(x) = f\(x)f2( x ) ... f m(x) (такой критерий называ­ ют мультиплексным), то можно преобразовать его к аддитивному,

прологарифмировав:

771

lg /(* ) = 2 lg /<(*). i= l

Обозначим V = lg f(x), Vi = lg fi(x). Получим новую целевую

771

функцию (критерий) V = 2 V*, обладающую свойством аддитив-

г=1

ности и достигающую максимум (минимум) одновременно с функцией f(x).

Рассмотрим общую схему решения задач, имеющих аддитивный критерий.

Пусть процесс управления некоторой системой состоит из т шагов. На каждом г-м шаге управление х * переводит систему из со­ стояния S j-i, достигнутого в результате (г —1)-го шага, в новое со­ стояние Su которое зависит от состояния <%_1 и выбранного управ­ ления Xf.

Si = Si(Si—1, х{).

Здесь существенно то, что новое состояние Si зависит только от состояния S i- 1 и управления Xi и не зависит от того, каким образом система пришла в состояние 5^—1. В крайнем случае это условие достигается увеличением числа состояний системы. Поня­ тием «состояние системы» характеризуются только те параметры, от которых зависит будущий результат.

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

Принцип оптимальности. Оптимальная стратегия обладает тем свойством, что, каковы бы ни были первоначальные состояния системы S i- \ и решение ац, последующее решение должно опреде­ лять оптимальную стратегию относительно состояния, получен­ ного в результате начального решения.

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

Рассмотрим задачу о нахождении максимума функции дохо­ да f(x) на m -шаговом процессе.

Под влиянием управлений х\, Х2, . . . , х т система переходит из начального состояния So в конечное 5 КОнЗа т шагов получают целевую функцию (выигрыш)

771

/(я) = ][]/гОй-ь £i),

2=1

где fi(Si-\, х ^ — выигрыш на г-м шаге, зависящий от исходного со­ стояния системы iS'i_1 и выбранного управления Xi.

Принцип оптимальности позволяет заключить, что при любом начальном управлении х\

f ( x ) f l ( S o , ® l ) +

( / 2( 5 ь х 2) + ... + f m ( S m - Ь

X m ) ) =

 

=f i ( S o ,

rn

 

®i)+ 2 f i ( S i - i , Xi).

 

 

t=2

Поскольку данное соотношение справедливо для любых началь­

ных решений х \ ,

то, чтобы найти максимальный доход /шах(So),

необходимо найти максимум по х \ значения f ( x ) :

/max(So) —max /(х ) —m ax{/i(5o, X i ) + /max(Sm_i(So, X i ) ) } ,

X\

X\

 

где /max(Sm_i(5o, X i ) ) —оптимальный выигрыш на всех последую­ щих шагах.

Получили основное функциональное уравнение динамического программирования. Его можно вывести, используя формулу

 

 

шах

/(х ) = m ax i m ax / ( х ) |

 

 

 

Xl '■X2,...,Xm

>

Следовательно,

 

 

 

/max(So) =

m ax

{/l(So,X i) + / 2(Si,X2)-|-

+ / m ( S m_l,Xm)} =

 

x \ y . . . yX m

 

 

= max{

m ax

{ /,(5 0, x j) + f 2(S u x2) + ... +

, xm)}} =

Xj Х2,..-,Хтп

 

 

 

= m ax{/i(50,xi)} +

m ax {f2(S\, x2) + ... -I- fm(Sm- i , xm)} =

XJ

 

 

X 2 .........I m

 

 

 

 

= m ax{/!(5o, xi) +

/max(5m_ i(S 0,xi))} .

 

 

 

Xl

 

Согласно этому выражению алгоритм получения решения задач динамического программирования состоит в оптимизации после­ довательности функций дохода {/n(5n_i)} или последовательно­ сти стратегий {æn0Sn-i)}- Эти последовательности определяют одна другую. Причем имеется только одна последовательность оптимальных функций дохода, хотя может быть много последо­ вательностей оптимальных стратегий, которые приведут к тому же максимальному доходу.

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

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

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

Приведем далее примеры решения задач методом динамическо­ го программирования.

§ 4.2. Задача об оптимальной загрузке транспортного средства неделимыми предметами

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

Задача. Пусть в самолет требуется погрузить четыре вида пред­ метов, чтобы эффект от этих предметов (например, стоимость) был максимальным. Грузоподъемность самолета равна w; Pi — вес еди­ ницы г-го вида предметов; v\ — стоимость единицы г-го вида; Х{ — количество г-го вида предметов, взятых на борт самолета.

Р е ш е н и е . Найдем максимум целевой функции задачи:

4

f (x ) = ^ XiVi = x\V\ + X2V2 + X3V3 + X4V4 —*• max.

2=1

Ограничение записывается следующим образом:

4

^ XiPi = X\Pi+ Х2Р2 + Х3Р3 + Х4Р4 ^ W.

2=1

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

Для численного решения предположим, что w = 83, Р\ = 24, Р2 = 22, Рз = 16, Р4 = 10, vi = 96, V2 = 85, из = 50, V4 = 20 соответ­ ствующих единиц.

Очевидно, что это задача целочисленного программирования. Применим для ее решения многошаговую процедуру принятия

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

Первый этап будет содержать четыре шага.

Ш аг 1. Сначала найдем возможные оптимальные варианты загрузки самолета только предметами первого вида. Необходимо найти и запомнить значения х\ и соответствующую им максималь­ ную стоимость груза f\(w) при различных возможных значениях w. В этом случае максимальная стоимость груза определится следую­ щим образом:

f\(w) = max{a:ivi}

Xl

при условии х\Р\ ^ w, æi = 0 ,1 ,2 , ... Поскольку х\ < ги/Р\, то для нахождения максимума f\(w) необходимо взять х\ возможно боль­ шим, т. е. х\ = [w/P i] — наибольшее целое число, не превосходя­ щее w/P], и, таким образом, /,(«>) = [w/P\}v\.

Зададим некоторые значения w и найдем для них х\ и f\(w). Очевидно, если грузоподъемность самолета меньше 24 ед., то ни од­ ного предмета первого вида погрузить нельзя. При грузоподъемно­ сти от 24 до 47 ед. можно погрузить 1 ед. предмета первого вида и т. д. Результаты представим в виде таблиц. Значения w, f\(w) и х\ приведены в табл. 4.1. В таблицах принят более широкий предел значений для w — от 0 до 87 ед.

Таблица 4.1

 

Первый шаг оптимизации

 

W

/if »

Х \

W

/i(w)

Х \

0-23

0

0

48-71

192

2

24-47

96

1

72-87

288

3

Ш аг 2. Проведем оптимизацию целевой функции при усло­ вии, что самолет загружают предметами первого и второго видов. Необходимо найти стоимость груза в этом случае, максимальную эффективность загрузки обозначим через fiiw ). Если предметов второго вида взято х2, то вес предметов первого вида должен быть не больше, чем w Р2Х2. Максимальная стоимость предметов пер­ вого вида выразится формулой

f\(w Х2Р2) = max{xivi}> x { = W *lP l,

X\

а общая стоимость груза — формулой

fia = х2 у 2+ fi(w ~ х2 Pï)-

Тогда

f2(w) = ш ах{х2г>2 + fi(w - х2Р2)}, 0 ^ х2 ^

.

(4.1)

Максимум этого выражения определяют только по х2. Однако мы не знаем, какую часть веса w могут занимать предметы второго вида. Поэтому мы должны рассмотреть выражение (4.1) для всевоз­ можных значений го от 0 до 83 ед. При вычислении fi(w — х 2Р2) воспользуемся полученными результатами (см. табл. 4.1).

Например, пусть w = 46 ед. Величина х 2 может принимать зна­ чения 0,1,2; соответствующая стоимость предметов второго вида равна 0, 85, 170 еД., а для предметов первого вида составит 46, 24,

Соседние файлы в папке книги