- •Исследованиеопераций
- •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Динамическоепрограммирование
4.6Кратчайшиепути
Рассмотриморграфсовзвешеннымидугамиипутьизвершиныiввершинуjвэтомграфе.Суммавесовдугэтогопутиназываетсяегодлиной.Путьминимальнойдлиныизiвjназываетсякратчайшимпутемизiвj.
Дейкстрапредложилследующийалгоритмпостроениякратчайшихпутейизданнойвер-шинывовсеостальныевершиныорграфавслучаенеотрицательныхвесовдуг.
РассмотриморграфG=(V,A)свыделеннойвершинойsивесамиwij,(i,j)∈A.Алго-
ритмприсваиваетвершинамвременныеипостоянныеметки.Постояннаяметкавершины
равнадлинекратчайшегопутиизsвэтувершину.Крометого,формируетсямассивPred,вкоторомPred(v)содержитномернепосредственногопредшественникавершиныvвкратчайшемпутиизsвv.Такимобразомs,...,Pred(Pred(v)),Pred(v),vявляетсякратчайшимпутемизsвv.
АлгоритмДейкстры(построениякратчайшихпутейизвершиныsвовсеостальныевершиныорграфавслучаенеотрицательныхвесовдуг)
Шаг1.(Начало).ПомечаемвершинуsпостояннойметкойLength(s)=0.Всеосталь-ныевершиныv/=sпомечаютсявременнымиметкамиLength(v)=∞.Полагаемномер
итерацииi=1иномертекущейвершины,помеченнойпостояннойметкой,u=s.
Шаг2.(Рекурсия).Полагаемi=i+1.Рассмотримвершинуu.Длявсехеенепосредствен-ныхпоследователейvсвременнойметкойвычисляемM=min{Length(v),Length(u)+wuv}.ЕслиMменьшевременнойметкиLength(v),товычисляемновуюметкуLength(v)=
MиполагаемPred(v)=u.
Далеесредивсехвершинсвременнымиметкамивыбираемвершинуkснаименьшеймет-койиделаемеепостоянной.Еслиi<n−1,тополагаемu=kиповторяемШаг2.Иначе
стоп:всекратчайшиепутиизsвостальныевершинымогутбытьвосстановленыпомас-сивуPred.
Алгоритмпостроениякратчайшихпутеймеждувсемипарамивершинипроверкиналичияциклаотрицательноговеса(дополнительныйматериал).ПриводимыйнижеалгоритмпредложенФлойдом.
РассмотриморграфG=(V,A).ПустьW0=||wij||–n×nматрицавесовдугэтогографа.Полагаемwij=
∞,еслидуга(i,j)отсутствует,иwii=0длявсехi∈V.АлгоритмФлойдастроитпоследовательность
ij
матрицW1,W2,...,Wnтакую,чтоэлементwnматрицыWnравендлинекратчайшегопутиизiвjв
графеG.МатрицаWkопределяетсяпоматрицеWk−1:
wk k−1
k−1
k−1
ij=min{wij,wik +wkj}. (1)
ij
ПустьPk–кратчайшийпутьизiвjсвнутреннимивершинамиизмножества{1,2,...,k}.Справедлива
ij
Теорема5Для0≤k≤n,величинаwkявляетсядлинойпутиPk.
ij
ВалгоритмеФлойдаодновременносдлинамикратчайшихпутейотыскиваютсясамипутиспомощью
ij
матрицZ0,Z1,...,Zn,гдеэлементzkматрицыZkуказываетнавершину,непосредственноследующую
ij
заiвPk.Тогдаясно,что
z0
ij=
Ij (j, еслиw0
Ij 0,еслиw0
/=∞,
=∞.
МатрицаZkполучаетсяизZk−1следующимобразом.ПустьM=min{wk−1,wk−1+wk−1}.Тогда
(zk−1
k−1
ij ik kj
zk ij,еслиM=wij,
ij=
zk−1
k−1
ik,еслиM<wij.
ЕслиM=wk−1,тодлинапутиPkравнадлинепутиPk−1.ИначеPkполучаетсяврезультатесклеивания
ij
путейPk−1иPk−1иzk
ij
=zk−1.
ij ij
ik kj
ij ik
Очевидно,чтократчайшийпутьизiвjопределяетсяпоследовательностьювершинi,i1,i2,...,ip,j,где
i1=zn,i2=zn
,i3=zn
,...,j=zn.
ij i1j
i2j
ipj
Отметим,чтов(1)еслиwk−1илиwk−1равно∞,тоwk
=wk−1.
ik kj
ij ij
АлгоритмФлойда(построениякратчайшихпутеймеждувсемипарамивершинипроверкиналичия
циклаотрицательноговеса)
(ВпроцессевычисленийматрицуWkзаписываемнаместоWk−1,аматрицуZk–наместоZk−1,k=
1,...,n.Такимобразом,используемодноитожеобозначениеWдлявсехWkиZдлявсехZk.)
Шаг1.(Начало).Полагаемk=0.СтроимматрицыW=W0иZ=Z0.
Шаг2.(Рекурсия).Полагаемk=k+1.Длявсехтакихвершинi/=k,чтоwik/=∞ивсехтакихвершин
j/=k,чтоwkj/=∞,вычисляемM=min{wij,wik+wkj}.ЕслиM<wij,тополагаемzij=zikиwij=M.
Еслипоявляетсяwii<0,тостоп:вершинаiпринадлежитнекоторомуциклуотрицательноговеса.
Есливсеwii≥0иk=n,тостоп:wij–длинывсехкратчайшихпутей,аzij–перваяпослеiвершинав
кратчайшемпутиизiвj.
Есливсеwii≥0иk<n,топовторяемШаг2.
