- •Исследованиеопераций
- •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Динамическоепрограммирование
6Задачакоммивояжераиметодветвейиграниц
Предположим,чтофирмадолжнапровестирекламнуюкампаниювовсехобластныхго-родахБеларуси,вкаждомгородеровнопоодномуразу.Известно,сколькостоитпереездмеждудвумялюбымигородами.Фирмажелаетснизитьсвоидорожныерасходы.Математическаямодельтакойситуацииназываетсязадачейкоммивояжера,котораясо-стоитвследующем.Заданполныйорграф.Орграфназываетсяполным,есликаждаяпаравершинiиjсоединенадугами(i,j)и(j,i).Известнастоимостьcijкаждойдуги(i,j).Тре-буетсяпостроитьгамильтоновцикл(т.е.цикл,проходящийчерезкаждуювершинуровнопоодномуразу)такой,чтосуммарнаястоимостьвсехегодугбыламинимальной.Отметим,чтоестьвзаимнооднозначноесоответствиемеждугамильтоновымициклами(т.е.маршрутамикоммивояжера)вполномграфесnвершинамииперестановкамиnэлементов.Перестановкаσ=(i1,...,in)соответствуетмаршрутукоммивояжера,прохо-дящемучерезвершиныi1,...,inивключающемудуги(i1,i2),(i2,i3),...,(in−1,in),(in,i1).Основнымметодомрешениязадачикоммивояжераявляетсяметодветвейиграниц(МВиГ).Этотметодявляетсяуниверсальнымиможетприменятьсядлярешенияпракти-ческивсехзадачоптимизации.
ОсновныепринципыМВиГдлярешениязадачиминимизациисостоятвследующем.
1)Ветвление.Исходнаязадачаразбивается(ветвится)надвеилиболееподзадачита-кимобразом,чторешениеисходнойзадачиявляетсярешениемхотябыоднойизподзадач.Каждаяизподзадач,всвоюочередь,ветвитсянаболеемелкиеподзадачи.Процессмо-жетповторятьсядотехпор,покаполучаемаяподзадачанестановитсятривиальнойиеерешениелегкоотыскивается.
Этотпроцессможнопредставитьввидетакназываемогодереваветвлений.Вершиныдереваветвленийсоответствуютподзадачамиразбитынауровни.Исходнаязадачаяв-ляетсявершинойнулевогоуровня.Подзадачи,полученныеизисходнойзадачи,являютсявершинамипервогоуровня.Подзадачи,полученныеизвершинпервогоуровня,являютсявершинамивторогоуровня,ит.д.Дугинаправленыизвершинуровняiввершиныуровняi+1.Вкаждуювершинувходитровнооднадуга.
2)Построениенижнихиверхнихоценокминимальногозначенияцелевойфункции.Дляисходнойзадачи,атакжедлялюбойееподзадачимогутбытьнайдены
числаLBиUBтакие,что
LB≤F∗≤UB,
гдеF∗–минимальноезначениецелевойфункциивзадачеилиподзадаче,LBиUB–егонижняяиверхняяоценкисоответственно.
Нижняяоценкаможетбытьполученаврезультатерешениярелаксированнойилиослаб-леннойзадачи,например,задачикоммивояжера,вкоторойстоимостивсехдуг,входящихвданнуювершину,уменьшенынавеличинуминимальнойизних,ианалогичноизменены(уменьшены)стоимостивсехдуг,выходящихизданнойвершины.
Верхняяоценкаможетбытьполученаврезультатеотысканиялюбогодопустимогореше-ниярассматриваемойзадачиивычислениясоответствующегозначенияцелевойфункции.Длязадачикоммивояжерадостаточнонайтисуммарнуюстоимостьдугкакого-нибудьдо-
пустимогомаршрута.Наилучшая,т.е.наименьшаяизвсехимеющихсявналичииверхнихоценок,называется(текущим)рекордом.
3)Отсеиваниевариантов.Еслидлянекоторойподзадачиеенижняяоценкапревосхо-дитлиборавнарекорду,такуюподзадачуможнодалееневетвить,таккакеерешениебудетзаведомохужелибонелучшерешения,соответствующегорекорду.
4)Оптимальноерешение.Процессвычисленийпрекращается,когданетниоднойпод-задачи,котораяможетпродолжатьветвиться.Вэтомслучаеоптимальноерешениесоот-ветствуеттекущемурекорду.
Вприведенномметодеостаетсянеопределеннымспособвыбораподзадачидляветвления.Наиболееупотребимымявляетсяспособ,прикоторомветвяттуподзадачу,которойсо-ответствуетнаименьшеезначениенижнейоценкилиботу,котораябыстрееприведетктривиальнойподзадаче.
Различаютметодыветвлениявглубинуивширину.
Приветвлениивглубинувсегдаветвятоднуизподзадачнаибольшегоуровня.Этобыстрееприводиткпостроениюполногодопустимогорешения.
Приветвлениивширинуветвятподзадачиодногоуровнядотехпор,покавсеонинебудутрассмотрены.Такоеветвлениепозволяетполучатьбольшенижнихиверхнихоценокиможетпривестикбольшемуколичествуотсеянныхвариантов.Однакотребуетсябольшепамятидляхраненияпромежуточныхрезультатов.
Пример.Пустьматрица(таблица)стоимостейпереездамеждугородамивыглядитсле-
дующимобразом:
-
город(i,j)
Минск(1)
Брест(2)
Витебск(3)
Гомель(4)
Гродно(5)
Могилев(6)
1
∞
350
250
350
320
200
2
400
∞
650
500
100
700
3
300
600
∞
320
400
150
4
370
580
280
∞
710
180
5
400
100
550
800
∞
670
6
220
650
170
210
590
∞
Будемрешатьзадачуметодомветвлениявглубь.Вначалепостроим”приведеннуюзадачу”,эквивалентнуюисходной.Используемпроцедуру”приведениетаблицы”,состоящуюввы-читаниинаименьшегочиславкаждомстолбце(строке),затемнаименьшегочиславкаж-дойстроке(столбце).Суммируяэтичисла(изкаждогогороданужновыехатьивкаждыйгороднужновъехать),получаем∆0=(220+100+170+210+100+150)+(30+50)=1030.Далееможноработатьсприведеннойматрицей.Дляполученияреальнойстоимостилю-богомаршрутанеобходимодобавитькполучаемойизприведеннойтаблицыстоимостивеличину∆0.
Приведеннаятаблица:
-
(i,j)
1
2
3
4
5
6
1
∞
200(250)
30(80)
90(140)
170(220)
0(50)
2
180
∞
480
290
0
550
3
80
500
∞
110
300
0
4
120(150)
450(480)
80(110)
∞
580(610)
0(30)
5
180
0
380
590
∞
520
6
0
550
0
0
490
∞
Дляэлементовприведеннойтаблицыоставимобозначенияcij.
Очевидно,чтонижняяоценкадляприведеннойзадачиравнаLB(0)=0.Дляотысканияверхнейоценкипостроимкакой-нибудьмаршруткоммивояжера.Например,разумнымбу-детвключитьвэтотмаршрутдугуминимальнойстоимости,скажем,(2,5).Далеевыбрать
дугуминимальнойстоимостивида(5,j),j/=2.Это(5,1).Далее,выбратьдугуминималь-
нойстоимостивида(1,j),j/=2,5.Поступаяаналогично,(1,6),(6,3),(3,4),и,безвариантов,
(4,2).ПолучаемверхнююоценкуUB(0)=740.ОнаявляетсярекордомR.
Далееразветвимисходнуюзадачу.Ветвлениебудемосуществлятьповхождениюилиневхождениюнекоторойдугивмаршрут.Будемвыбиратьдугунулевойстоимости,ко-тораядаетнаибольшеезначениенижнейоценкидляподзадачиприееневхождениивмаршрут.Дугинулевойстоимости:(1,6),(2,5),(3,6),(4,6),(5,2),(6,1),(6,3),(6,4).
ВподзадачеP(1,6)(P(1,6))дуга(1,6)невходит(входит)вмаршрут.
РассмотримподзадачуP(1,6).Полагаемстоимостьдуги(1,6)равной∞.Какая-тодугаиз
1должнавыйтиикакая-тодугадолжнавойтив6.Можнодобавитькнижнейоценкесум-
мунаименьшихчиселвуказанныхстрокеистолбце,обозначаемую∆16=30.Аналогичновычисляем∆2,5,∆3,6,∆4,6,∆5,2,∆6,1,∆6,3,∆6,4.Наибольшеезначениеравно∆5,2=380.Выбираемдугу(5,2)длядальнейшихветвлений.ВычисляемLB(5,2)=LB(0)+∆5,2=380.Нарисуемначальноедеревоветвлений,состоящееиз3вершин-начальной0ивершин,обозначенных(5,2)(соответствующаядуганевходитвмаршруткоммивояжера)и(5,2)(входит),см.рис.
ПрипишемвершинамсоответствующиезначенияLB.
РассмотримподзадачуP(5,2).Посколькудуга(5,2)входитвмаршрут,другиедугинемогутвыйтииз5ивойтив2.Вычеркиваемстроку5истолбец2.Крометого,дуга
(2,5)войтивмаршрутнеможет.Полагаемстоимостьэтойдугиравной∞.Вычисляем
∆5,2=350.Послеприведениятаблицаимеетвид:
-
(i,j)
1
3
4
5
6
1
∞
30
90
0
0
2
0
300
110
∞
370
3
80
∞
110
130
0
4
120
80
∞
410
0
6
0
0
0
320
∞
ВычисляемLB(5,2)=LB(0)+c5,2+∆5,2=350.
БудемветвитьподзадачуP(5,2),таккакразмерностьсоответствующейматрицымень-шеибыстрееможнополучитьтривиальнуюподзадачу.Вприведеннойтаблицедляэтойподзадачинаходимдугинулевойстоимости:(1,5),(1,6),(2,1),(3,6),(4,6),(6,1),(6,3),(6,4).
R0=UB=c(2,5,1,6,3,4)=740
R1=c(1,5,2,4,3,6)=540
✤LB=✜460
24
✤LB=✜540=R1
36
✒
✣✢
✒ ❅
✤LB=✜460
✣✢❅
✤LB=✜540
15
✒ ❅
❅❘ 36
✤LB=✜350
✣✢❅
✤LB=✜650 ✣✢
52
✒ ❅
❅❅❘ 24
✤LB=✜0
✣✢❅
✤LB=✜480 ✣✢
0 ❅❘
15❳❳
✤LB=?✜?
❅
✣✢❅
✤LB=✜380
❆
✣✢❆
❳❳③ ??
❅❘ 52❳❳LB✤=58✜0❆ ✣✢
❆
✣✢❆
❳❳③ 12
❆
❆
❆✤LB=?✜?
❆
❆ ✣✢❆❯ ??❆
❯
❆❆✤LB=✜630 ✣✢12
✣✢
Ответ:c∗=c(1,5,2,4,3,6)=540+∆0=540+1030=1570
Наибольшеезначение∆i,jпризаписивуказанныеклетки∞равно∆1,5=130.Выбира-емдугу(1,5)длядальнейшихветвлений.Вдеревоветвленийдобавляемвершины(1,5)и(1,5),следующиезавершиной(5,2).
ВподзадачеP(1,5)дуга(1,5)невходитвмаршрут.Полагаемстоимостьэтойдугиравной
∞.Вычисляем∆1,5=130иLB(1,5)=LB(5,2)+∆1,5=480.
РассмотримподзадачуP(1,5).Вычеркиваемстроку1истолбец5изматрицыдляпод-
задачиP(5,2).Дуга(1,5)образуетпутьсужевведеннойвмаршрутдугой:(1,5),(5,2).Поэтомуможноположитьc2,1=∞.Вычисляем∆2,1.
Процессостанавливаетсядляматриц2×2.Вэтомслучаеможнонайтирешениелибо
определить,чтоононесуществует.Получивновыйрекорд,можноотсечьнекоторыевет-
ви.
