назад Оглавление вперед


[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [ 88 ] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293]


88

Ограничениями задачи ЛП будут уравнения баланса входного и выходного потоков для каждого узла. Целевая функция максимизирует или величину общего потока, "выходящего" из начального узла, или величину общего потока, "входящего" в конечный узел.

Пример 6.4.3

В задаче вычисления максимального потока в сети, показанной на рис. 6.29 (пример 6.4.2), s=l и f=5. В следующей таблице приведена соответствующая задача ЛП с двумя различными целевыми функциями, одна из которых максимизирует поток, выходящий из узла 1 (функция zt), вторая максимизирует поток, входящий в узел 5 (функция гг).

Максимизировать Z\ 1 Максимизировать z2

Узел 2 1

УзелЗ

Узел 4

-1 1

-1 1

ii ii ii

Пропускная способность 20

Оптимальное решение этой задачи ЛП с использованием любой целевой функции составляют х12 = 20, хп = 30, х14=10, х25 = 20, х34=10, хзъ = 20, х45 = 20. Максимальный поток равен гх - г2 = 60.

УПРАЖНЕНИЯ 6.4.3

1. Решите задачу из упражнения 6.4.2.2 как задачу линейного программирования.

2. Решите задачу из упражнения 6.4.2.5 как задачу линейного программирования.

6.4.4. Решение задачи определения максимального потока в Excel

Шаблон Excel, предназначенный для решения общей транспортной задачи (см. раздел 5.3.3), можно немного модифицировать, чтобы найти максимальный поток. Максимальный размер сети - 10 узлов. На рис. 6.35 показан рабочий лист, на котором решается задача из примера 6.4.2 (файл ch6SolverMaxFlow.xls). Матрица пропускных способностей записана в диапазоне В6:К15.4 Незаполненные ячейки матрицы пропускных способностей показывают, что соответствующие дуги имеют бесконечную пропускную способность. Нулевое значение пропускных способностей вводится для несуществующих дуг.

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

4 На рис. 6.35 строки от 11 до 16 скрыты для экономии места.



ностей дуг (диапазон С20:С39). Все эти вычисления выполняются автоматически. Все, что необходимо сделать вам для решения задачи, - это указать диапазон изменяемых ячеек и задать ограничения в диалоговом окне средства Поиск решения. На рис. 6.35 видно, что изменяемые ячейки составляют диапазон В20:В39, а ограничения задаются как F20:F22=G20:G22 (баланс потоков для узлов 2, 3 и 4) и В20:В39<=С20:С39 (ограничения пропускных способностей дуг). Отметим, что целевая ячейка устанавливается автоматически и ее не надо изменять. Следует установить переключатель Равной максимальному значению, поскольку решается задача максимизации.

Задача нахождения максимального йотой»

Входные данные

Матрица пропускных способностей , стые ячейки=Сесконечность

Ш N5

10 0

0~~\ 30

Г10 j 20

° -4 20

0 "

"о : о~"

0 0

17 Оптимальное решение

i Общая стоимость : 60

От-в

N1 -N2 N1 -N3 N1-N4 N1 -N5 N2-N1 N2-N3 N2-N4 N2-N5 N3-N1 N3-N2 N3-N4 N3-N5 N"-N1

Поток

20 30 10 0 0 0 0 20 0 0 10 20 0

П: сп0с

20 30 10

40 0 30

10 20 0

Промежуточные ычиелонии

Имя Узел Поток Спрос От В Единичный поток

N1 К

N2 Я

N3 Т а

N4 1 4

N5 1 Sl -60

о о о

1 1 1 1

2 2 2 2 3

3 2 3 4

4 1 4 2

2 1

3! 1

3 4 5 1

Поиск решении

Установить целевую ячейку: Равной: <? детальному значению

г медиальному значению Имняя ячейки

Значению: (Г

Вьполнить ) Закрыть

ftB$20-$8$39 Ограничения:

$8$20,$В$39 <= $С$20:$С$Э9 tF$20:tFt22 = $GJ20:$G$22

Гзедполщкить

Добавить Изменить {

Параметры

Удалить

Восстановить Слравка

Рис. 6.35. Определение максимального потока в Excel

Решение N1-N2 = 20, Nl-N3 = 30, N1-N4 = 10, N2-N5 = 20, N3-N4=10, N3-N5 = 20 и N4-N5 = 20, показанное на рис. 6.35, дает максимальный поток, равный 60 единицам.



УПРАЖНЕНИЯ 6.4.4

1. Решите задачу из упражнения 6.4.2.2 с помощью средства Поиск решения.

2. Решите задачу из упражнения 6.4.2.5 с помощью средства Поиск решения.

Задача нахождения потока наименьшей стоимости в сети с ограниченной пропускной способностью обобщает задачу определения максимального потока по следующим направлениям.

1. Каждой дуге поставлена в соответствие (неотрицательная) стоимость прохождения единицы потока по данной дуге.

2. Дуги могут иметь положительную нижнюю границу пропускной способности.

3. Любой узел сети может выступать в качестве как источника, так и стока.

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

6.5.1. Сетевая модель

Рассмотрим сеть G = (N, А) с ограниченной пропускной способностью, где N - множество узлов, А - множество дуг. Обозначим

xtj - величина потока, протекающего от узла i к узлу у,

ц,. (?,.) - верхняя (нижняя) граница пропускной способности дуги (i, j),

ctj - стоимость прохождения единицы потока по дуге (t, j),

f. - величина "чистого" результирующего потока, протекающего через узел i.

На рис. 6.36 показано, как на схемах сетей будем отображать определенные параметры дуг. Метка [/,] указывает положительное (отрицательное) значение предложения (спроса), соответствующего узлу i.

6.5. ЗАДАЧА НАХОЖДЕНИЯ ПОТОКА НАИМЕНЬШЕЙ СТОИМОСТИ

if -IJ-

Рис. 6.36. Обозначение параметров дуг

[Старт] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [ 88 ] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221] [222] [223] [224] [225] [226] [227] [228] [229] [230] [231] [232] [233] [234] [235] [236] [237] [238] [239] [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281] [282] [283] [284] [285] [286] [287] [288] [289] [290] [291] [292] [293]