Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_Исследование операций. Курс лекций.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
293.75 Кб
Скачать

9Динамическоепрограммирование

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

f(x)min,xX.

БудемформироватьмножестваX0,X1,...,Xnчастичныхрешений,гдемножествоXk+1

получаетсяизмножестваXkпутем”достраивания”каждогорешенияизXk.ОптимальноерешениеxвыбираетсяизмножестваXn.

СкаждымчастичнымрешениемxXkбудемсвязыватьнекоторыйнаборпараметров

B=(k,b1,...,bi),называемыхпеременнымисостояния.НаборBпеременныхсостояния

называетсясостоянием.

ПустьXk(B)обозначаетмножествочастичныхрешенийxXkвсостоянии(соответству-

ющихсостоянию)B.ПустьB(x)обозначаетсостояниечастичногорешенияx.

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

ИзопределенияфункцииF(B)следует,чтовкаждоммножествеXk(B)достаточновы-братьдоминирующеерешениедлядальнейшихпостроений.

ОбозначимчерезSмножествовсехвозможныхсостояний.Этомножествоназывается

пространствомсостояний.

ВметодеДПрекуррентновычисляютзначенияF(B)инаходятсостояние,соответствую-щееоптимальномурешению.Затемвосстанавливаютсамооптимальноерешение.

ДляпримененияметодаДПнеобходимокорректноопределить

1)пространствосостоянийS,

2)функциюдоминированияF(B),BS,

3)способпостроениячастичныхрешенийx1Xk+1изчастичныхрешенийxXk,

4)методвычислениясостоянияB(x1),используясостояниеB(x),еслиx1Xk+1”достроен”

изxXk,и

5)рекуррентнуюформулудлявычислениязначенийF(B).

ПримералгоритмаДП.Вкачествепримерарассмотримследующуюзадачу.Служа-щийдолженвыполнитьnработкзаданномусрокуd,начинаясмоментавремениноль.Длякаждойработыjзаданадлительностьвыполненияpjиштрафwj,выплачиваемыйсслучаезавершенияjпослеd.Всепараметрыявляютсянеотрицательнымицелымичис-лами.Требуетсянайтитакуюпоследовательностьвыполненияработ,чтобысуммарныйштрафбылнаименьшим.

Призаданнойпоследовательностиработ(i1,...,in)легкоопределитьмоментзавершения

j

выполнениякаждойработыij:Cij=

k=1pik.

ВведемврассмотрениепеременныеUj:Uj=1,еслиработаjявляетсязапаздывающей

(Cj>d)Uj=0,еслиjявляетсяранней(Cjd).Требуетсянайтитакуюпоследова-

j=1

тельностьработ,чтозначение n

wjUjминимально.

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

Тогдазадачаможетбытьсформулированаследующимобразом:

приусловиях

nj=1

n

wjUjmin

j=1

и

pj(1Uj)d,

ЭтазадачаNP-трудна.

Uj∈{0,1},j=1,...,n.

ПустьU=(U,...,U)–оптимальныйвектордляэтойзадачииWсоответствующее

1 n

значениецелевойфункции.

Сформулированнаязадача,всвоюочередь,можетбытьпроинтерпретированавтерминах

ДПследующимобразом.

Будемформироватьчастичныерешения,определяяпеременныеUj=0либоUj=1дляj=1,...,n.Будемговорить,чточастичноерешение(U1,...,Uk)находитсявсо-стоянии(k,a),еслиопределенызначенияпеременныхU1,...,Ukизначениеограничения

k

j=1pj(1Uj)=a.

Переменныесостояниямогутприниматьзначенияk=0,1,...,nиa=0,1,...,d.

Изначальногосостояния(0,0)можноперейтивсостояние(1,0),прикоторомU1=1,либовсостояние(1,p1),гдеU1=0,еслиp1d.

Рассмотримнекотороесостояние(k,a),k∈{2,...,n}.Вэтосостояниеможноперейтитолькоизсостояния(k1,a),еслиUk=1,либоизсостояния(k1,apk),еслиUk=0.

j=1

ОпределимфункционалдоминированияF(k,a)какзначениецелевойфункции k

wjUj,

вычисленноедлярешенийвсостоянии(k,a).ИзопределенияфункционалаF(k,a)следует,

что

W=min{F(n,a)|a=0,1,...,d}.

ЗначенияF(k,a)могутбытьвычисленырекуррентно.ДляинициализациирекуррентныхвычисленийположимF(0,0)=0иF(k,a)=длявсех(k,a)/=(0,0).

ИзопределенияфункцииF(k,a)следует,чтообщеерекуррентноесоотношениеможетбытьзаписанокак

F(k,a)=min{F(k1,a)+wk,F(k1,apk)}, (2)

k=1,...,n,a=0,1,...,d.

Приэтом,еслиF(k,a)=F(k1,a)+wk,товчастичномрешении,соответствующемсостоянию(k,a),переменнаяUk=1.ЕслижеF(k,a)=F(k1,apk),товэтомрешении

Uk=0.

Обратныйход.ОптимальноерешениеUможетбытьнайденоспомощьюследующей

процедуры,называемойобратныйход.Этапроцедураиспользуеттаблицуразмерности

n×(d+1),вкаждойячейке(k,a)которойхранитсяинформацияотом,напервойили

второйкомпонентедостигаетсяминимумв(2)дляуказанныхзначенийkиa.Накаж-

дойитерацииэтойпроцедурыпроверяется,напервойиливторойкомпонентедостигаетсяминимумв(2)дляопределенныхзначенийkиa.Напервойитерацииполагаемk=nиa=a,гдеaопределяетсяизW=F(n,a).Еслиминимумв(2)достигаетсянапер-

k

войкомпоненте,тополагаемU=1,k:=k1,оставляемaбезизмененийипереходим

k

кследующейитерациипроцедурыобратногохода.Еслиминимумдостигаетсянавторойкомпоненте,тополагаемU=0,a:=apk,k:=k1,ипереходимкследующейитерации.ПослевыполненияnитерацийбудетпостроеноптимальныйвекторU=(U,...,U).

1 n

Времяработыитребуемаяпамять.ЭффективностьалгоритмаДПопределяетсяеговременнойсложностьюиобъемомтребуемойпамяти.Анализалгоритмадлярассматри-ваемойзадачипоказывает,чтовычислениеF(k,a)требуетвыполненияоднойоперациисложенияиоднойоперациисравнениядлякаждойпары(k,a).Такимобразом,временнаясложностьэтогоалгоритмаравнаO(nd).

Чтокасаетсяобъемапамяти,тоследуетотметить,чтодлявычисленияоптимальногозна-ченияцелевойфункцииWнакаждомшагеkдостаточнохранитьтаблицуразмерности

2×(d+1)созначениямиF(k1,aF(k,a),a=0,1,...,d.ДляотысканияоптимальноговектораUдостаточноприменитьпроцедуруобратногохода,котораятребуетn(d+1)

дополнительныхединицпамяти.

Изприведенногоанализаможносделатьвывод,общийдлявсехалгоритмовДП:времен-наясложностьиобъемтребуемойпамятиалгоритмаДПнепосредственнозависятотмощностисоответствующегопространствасостояний.

k

Выборпространствасостояний.ПрямыеиобратныеалгритмыДП.Какпра-вило,существуетнескольковариантовдлявыборапространствасостояний.Например,длярассматриваемойзадачиможноввестисостояния(k,w)такие,чточастичноере-шениенаходитсявсостоянии(k,w),еслиопределенызначенияпеременныхU1,...,Ukи

i=1wiUi=wэтомслучаефункционалF(k,w)определяетсякакнаименьшеезначение

i=1

ограничения k

pi(1Ui)длярешенийвсостоянии(k,w).Рекуррентноесоотношение

можнозаписатьввиде

F(k,w)=min

(F(k1,w)+pk, еслиF(k1,w)+pkd,F(k1,wwk)

k=1

СоответствующийалгоритмДПтребуетO(n n

wk)единицвремениипамяти.

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

состояний(k,a)следующимобразом.ПолагаемF(n+1,0)=0,всеостальныеначальныезначенияF(k,a)равнымибесконечностиивычисляем

F(k,a)=min{F(k+1,apk),F(k+1,a)+wk}

дляk=n,n1,...,1иa=0,1,...,d.Оптимальноезначениецелевогофункционаларавно

W=min{F(1,a)|a=0,1,...,d}.

ЧисловойпримеррешениязадачиорюкзакеметодомДП.

F(x)=x1+2x2+x3+x4+2x5+x6+2x7max,

B(x)=2x1+x2+2x3+2x4+x5+x6+x75,xi{0,1}.

X0

(0)

F(x)

0

B(x)

0

X1

(0)

(1)

F(x)

0

1

B(x)

0

2

X2

(0,0)

(0,1)

(1,0)

(1,1)

F(x)

0

2

1

3

B(x)

0

1

2

3

X3

(0,0,0)

(0,0,1)

(0,1,0)

(0,1,1)

(1,0,0)

(1,0,1)

(1,1,0)

(1,1,1)

F(x)

0

1

2

3

1

2

3

4

B(x)

0

2

1

3

2

4

3

5

3предпоследниечастичныерешениярешенияможнодальшенерассматривать,таккак

естьдоминирующие.Далеедостраиваемтолькодоминирующие.

X4

(0,0,0,0)

(0,0,0,1)

(0,0,1,0)

(0,0,1,1)

(0,1,0,0)

(0,1,0,1)

(0,1,1,0)

(0,1,1,1)

(1,1,1,0)

(1,1,1,1)

F(x)

0

1

1

2

2

3

3

4

4

5

B(x)

0

2

2

4

1

3

3

5

5

7

X5

(0,0,0,0,0)

(0,0,0,0,1)

(0,0,0,1,0)

(0,0,0,1,1)

(0,1,0,0,0)

(0,1,0,0,1)

(0,1,1,1,0)

(0,1,1,1,1)

F(x)

0

2

1

3

2

4

4

6

B(x)

0

1

2

3

1

2

5

6

X6

(0,0,0,0,0,0)

(0,0,0,0,0,1)

(0,0,0,1,0,0)

(0,0,0,1,0,1)

(0,0,0,1,1,0)

(0,0,0,1,1,1)

(0,1,0,0,1,0)

(0,1,0,0,1,1)

F(x)

0

1

2

3

3

4

4

5

B(x)

0

1

1

2

3

4

2

3

X7

(0,0,0,0,0,0,0)

(0,0,0,0,0,0,1)

(0,0,0,0,0,1,0)

(0,0,0,0,0,1,1)

(0,0,0,1,0,0,0)

(0,0,0,1,0,0,1)

F(x)

0

2

1

3

2

4

B(x)

0

1

1

2

1

2

X7

(0,0,0,1,0,1,0)

(0,0,0,1,0,1,1)

(0,1,0,0,1,0,0)

(0,1,0,0,1,0,1)

(0,1,0,0,1,1,0)

(0,1,0,0,1,1,1)

F(x)

3

5

4

6

5

7

B(x)

2

3

2

3

3

4

Оптимальноерешениеx=(0,1,0,0,1,1,1)созначениемцелевойфункцииF(x)=7.

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