|
|||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Нахождение потока заданной мощности минимальной стоимости. Алгоритм Басокера-ГоуэнаЗадана сеть каждой дуге которой поставлено в соответствие 3 числа: С(х,у) – пропускная способность дуги, f(x,y) -, d(x,y) - стоимость провода единицы потока по дуге x,y. Требуется пропустить в сети поток заданной величины V или максимальный поток минимальной стоимости. Алгоритм Басакера-Гоуэна Шаг 0. Решение начинаем с нулевого потока V=0. Шаг 1. Строим граф модифицированных стоимостей Gf по следующим правилам 1.Множество вершин графа Gf совпадает с множеством вершин графа G. 2.Если в графе G 0<f(x,y)<c(x,y), тогда в графе строится 2 дуги: прямая, с длиной равной стоимости(e(x,y)=d(x,y)); e(x,y)=-d(x,y). 3.Если в графе G f(x,y)=0, то в графе Gf строится одна дуга e(x,y)=d(x,y). 4.Если f(x,y)=c(x,y), то рисуем e(x,y)=-d(x,y). Шаг 2. Находим в графе Gf минимальный путь из S в T. Обозначим его P*. В исходном графе G определяем путь P, соответствующий Р*. На прямых дугах пути Р вычисляем €1=c(x,y)-f(x,y), €2=f(x,y), min €1. На прямых дугах +€, на обратных -. Шаг 3. Получаем V=V*. Если в V = заданному потоку, то алгоритм свою работу заканчивает. В графе G построим поток мощности V min стоимости. Замечание: Если задача на нахождение максимального потока мин стоимости, то алгоритм свою работу заканчивает когда в графе Gf нет ниодного пути Р* из S в T. Пример: построить поток V=3
4,0\5 2,0\1
3,0\1
2,0\1 3,0\6
P: s-b-a-t
1 mXXk2RQrDWTLcKoY58LG6ciE2QkmldYjsPw78JCfoCLP7QgelP2x6ojIlZ2NI9go6+B31ePu2LIc 8o8ODLqTBZeu3ud3zdbgAGavDp8lTfiP+wz//qWX3wAAAP//AwBQSwMEFAAGAAgAAAAhAGS8Z/Hg AAAACgEAAA8AAABkcnMvZG93bnJldi54bWxMj0FOwzAQRfdI3MEaJDaI2k1bmoY4VRXEAiEWtD2A E5skwh6HjJOG22NWsBz9p//f5PvZWTaZgTqPEpYLAcxg7XWHjYTz6fk+BUZBoVbWo5HwbQj2xfVV rjLtL/hupmNoWCxBypSENoQ+45zq1jhFC98bjNmHH5wK8Rwargd1ieXO8kSIB+5Uh3GhVb0pW1N/ Hkcn4ZUonax4Gcv0UH7Zp+rtjoSW8vZmPjwCC2YOfzD86kd1KKJT5UfUxKyE1VasIyphs9wCi8Ba JDtglYRktdsAL3L+/4XiBwAA//8DAFBLAQItABQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAAAAA AAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAGAAgAAAAhADj9If/WAAAAlAEA AAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5yZWxzUEsBAi0AFAAGAAgAAAAhAM9XdUgHAgAAGgQA AA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9Eb2MueG1sUEsBAi0AFAAGAAgAAAAhAGS8Z/HgAAAA CgEAAA8AAAAAAAAAAAAAAAAAYQQAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAABAAEAPMAAABuBQAA AAA= " strokecolor="#4f81bd [3204]" strokeweight="2pt"> 5 6
1 1
€1=(2,3,2)=2 €=min(€1, €2,V)=> €=2 V*=V*+€=2
5 -1 1 -1
-1 6
P*:s->a->b->t P:s->a<-b->t €1=(4,3)=3 €2=2 €=(3,2,1)=1
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |