- •Исследованиеопераций
- •1 Литература 3
- •2 Основныепонятияисследованияопераций(исо).Классификациязадач 4
- •3 Основылинейногопрограммирования 8
- •4 Основытеорииграфов 23
- •1 Литература
- •2Основныепонятияисследованияопераций(исо).
- •2.1КлассификациязадачИсо
- •2.2Многокритериальныезадачи
- •3Основылинейногопрограммирования
- •3.1ГрафическийметодрешениязадачЛп
- •3.2 ВозможныевариантырешениязадачЛп
- •3.3 ЭквивалентныепостановкизадачЛп
- •3.4Симплекс-метод
- •3.5ТранспортнаязадачаЛп
- •3.6Задачаоназначениях
- •4Основытеорииграфов
- •4.1Основныепонятия
- •4.2 Алгоритмпостроенияэйлеровацикладлянеориентированно-гографа
- •4.3Заданиеграфов
- •4.4Топологическаясортировка
- •4.5Остовноедерево(остов)минимальноговеса
- •4.6Кратчайшиепути
- •Ij (j, еслиw0
- •Ij 0,еслиw0
- •5Сетевоепланированиеиуправлениепроектами
- •6Задачакоммивояжераиметодветвейиграниц
- •7Имитационноемоделированиенапримереметода
- •8Основытеориисложностивычислений
- •9Динамическоепрограммирование
9Динамическоепрограммирование
Динамическоепрограммирование(ДП)являетсяуниверсальнымметодомрешенияэкс-тремальныхзадач.РассмотримДПкакпроцесспостроениямножествчастичныхрешенийисходнойзадачиивыбораизэтихмножествдоминирующихрешенийтаких,чтохотябыодноизнихможетбыть”достроено”дооптимального.Притакомподходепроцессреше-ниянекоторойзадачиможетбытьорганизованследующимобразом.Дляопределенности,рассмотримзадачуминимизации
f(x)→min,x∈X.
БудемформироватьмножестваX0,X1,...,Xnчастичныхрешений,гдемножествоXk+1
получаетсяизмножестваXkпутем”достраивания”каждогорешенияизXk.Оптимальноерешениеx∗выбираетсяизмножестваXn.
Скаждымчастичнымрешениемx∈Xkбудемсвязыватьнекоторыйнаборпараметров
B=(k,b1,...,bi),называемыхпеременнымисостояния.НаборBпеременныхсостояния
называетсясостоянием.
ПустьXk(B)обозначаетмножествочастичныхрешенийx∈Xkвсостоянии(соответству-
ющихсостоянию)B.ПустьB(x)обозначаетсостояниечастичногорешенияx.
ВметодеДПскаждымсостояниемBсвязываетсяфункциядоминированияF(B)такая,чточастичноерешение,находящеесявсостоянииBимаксимизирующее(либоминими-зирующее)F(B),доминируетвсеостальныечастичныерешениявсостоянииB,т.е.эточастичноерешениеможетбытьдостроенодополногодопустимогорешенияснаимень-шимзначениемцелевойфункциисредивсехполныхдопустимыхрешений,достроенныхизлюбогочастичногорешениявсостоянииB.
ИзопределенияфункцииF(B)следует,чтовкаждоммножествеXk(B)достаточновы-братьдоминирующеерешениедлядальнейшихпостроений.
ОбозначимчерезSмножествовсехвозможныхсостояний.Этомножествоназывается
пространствомсостояний.
ВметодеДПрекуррентновычисляютзначенияF(B)инаходятсостояние,соответствую-щееоптимальномурешению.Затемвосстанавливаютсамооптимальноерешение.
ДляпримененияметодаДПнеобходимокорректноопределить
1)пространствосостоянийS,
2)функциюдоминированияF(B),B∈S,
3)способпостроениячастичныхрешенийx1∈Xk+1изчастичныхрешенийx∈Xk,
4)методвычислениясостоянияB(x1),используясостояниеB(x),еслиx1∈Xk+1”достроен”
изx∈Xk,и
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являетсяранней(Cj≤d).Требуетсянайтитакуюпоследова-
j=1
тельностьработ,чтозначение nwjUjминимально.
Заметим,чтоназначениецелевойфункциивлияетлишьинформацияотом,какиеработыявляютсязапаздывающими,акакиеранними.Поэтомусуществуетоптимальнаяпоследо-вательностьработ,вкоторойвсеранниеработыупорядоченыпроизвольноивсезапазды-вающиеработыупорядоченыпроизвольноирасположеныпослепоследнейраннейработы.
Тогдазадачаможетбытьсформулированаследующимобразом:
приусловиях
nj=1
n
wjUj→min
j=1
и
pj(1−Uj)≤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(1−Uj)=a.Переменныесостояниямогутприниматьзначенияk=0,1,...,nиa=0,1,...,d.
Изначальногосостояния(0,0)можноперейтивсостояние(1,0),прикоторомU1=1,либовсостояние(1,p1),гдеU1=0,еслиp1≤d.
Рассмотримнекотороесостояние(k,a),k∈{2,...,n}.Вэтосостояниеможноперейтитолькоизсостояния(k−1,a),еслиUk=1,либоизсостояния(k−1,a−pk),еслиUk=0.
j=1
ОпределимфункционалдоминированияF(k,a)какзначениецелевойфункции kwjUj,
вычисленноедлярешенийвсостоянии(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(k−1,a)+wk,F(k−1,a−pk)}, (2)
k=1,...,n,a=0,1,...,d.
Приэтом,еслиF(k,a)=F(k−1,a)+wk,товчастичномрешении,соответствующемсостоянию(k,a),переменнаяUk=1.ЕслижеF(k,a)=F(k−1,a−pk),товэтомрешении
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:=k−1,оставляемaбезизмененийипереходим
k
кследующейитерациипроцедурыобратногохода.Еслиминимумдостигаетсянавторойкомпоненте,тополагаемU∗=0,a:=a−pk,k:=k−1,ипереходимкследующейитерации.ПослевыполненияnитерацийбудетпостроеноптимальныйвекторU∗=(U∗,...,U∗).1 n
Времяработыитребуемаяпамять.ЭффективностьалгоритмаДПопределяетсяеговременнойсложностьюиобъемомтребуемойпамяти.Анализалгоритмадлярассматри-ваемойзадачипоказывает,чтовычислениеF(k,a)требуетвыполненияоднойоперациисложенияиоднойоперациисравнениядлякаждойпары(k,a).Такимобразом,временнаясложностьэтогоалгоритмаравнаO(nd).
Чтокасаетсяобъемапамяти,тоследуетотметить,чтодлявычисленияоптимальногозна-ченияцелевойфункцииW∗накаждомшагеkдостаточнохранитьтаблицуразмерности
2×(d+1)созначениямиF(k−1,a)иF(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
ограничения kpi(1−Ui)длярешенийвсостоянии(k,w).Рекуррентноесоотношение
можнозаписатьввиде
F(k,w)=min
(F(k−1,w)+pk, еслиF(k−1,w)+pk≤d,F(k−1,w−wk)
k=1
СоответствующийалгоритмДПтребуетO(n n
wk)единицвремениипамяти.
АлгоритмыДП,вкоторыхчастичныерешенияформируютсяотначалакконцу,какэтоделаетсявприведенныхвышеалгоритмах,называютсяпрямыми.Альтернативныйподходсостоитвпостроениичастичныхрешенийотконцакначалу.Такиеалгоритмыназыва-ютсяобратными.Например,рассматриваемаязадачаможетбытьрешенавпространстве
состояний(k,a)следующимобразом.ПолагаемF(n+1,0)=0,всеостальныеначальныезначенияF(k,a)равнымибесконечностиивычисляем
F(k,a)=min{F(k+1,a−pk),F(k+1,a)+wk}
дляk=n,n−1,...,1иa=0,1,...,d.Оптимальноезначениецелевогофункционаларавно
W∗=min{F(1,a)|a=0,1,...,d}.
ЧисловойпримеррешениязадачиорюкзакеметодомДП.
F(x)=x1+2x2+x3+x4+2x5+x6+2x7⇒max,
B(x)=2x1+x2+2x3+2x4+x5+x6+x7≤5,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.
