II. Решение задачи в процедуре EXCEL «Поиск решения» Лабораторная работа 3_2. Определение кратчайшего пути между вершинами ориентированного графа с циклами. Сеть (граф) состоит из множества вершин (узлов) и множества дуг (ребер), соединяющих вершины. Длины дуг могут определять различные характеристики: расстояние, стоимость, время, пропускную способность и т.д. С помощью сетевых моделей можно поставить и решить большое число практически важных задач ИО. Такие задачи можно сформулировать решить как задачи линейного программирования. Но, учитывая их специфику, разработаны более эффективные методы решения. Пример. Определить наикратчайший путь между вершиной 1 и вершиной 7 на графе с циклами, представленном на рис.1.  Рис.1 Для решения задачи в процедуре EXCEL «Поиск решения», представим ее как транспортную задачу с промежуточными пунктами. Будем считать, что транспортные расходы при перевозке одной единицы груза равны (в условных единицах) расстояниям между вершинами. Одна единица груза отправляется из вершины 1 (исходный пункт) и должна прибыть в вершину 7 (пункт назначения). Вершины 2, 3, 4, 5, 6 рассматриваются как промежуточные пункты, которые являются одновременно и исходными пунктами и пунктами назначения. Требуется определить такую последовательность вершин, по которым должна перемещаться единица груза, отправленная из вершины 1, при которой стоимость транспортных расходов будет минимальна и груз попадет в вершину 7. Так как транспортные расходы при перемещении груза из одной вершины в другую равны расстоянию между вершинами, то последовательность вершин, при которой транспортные расходы будут минимальными, определяет наикратчайший путь из вершину 1 в вершину 7. Матрица транспортных расходов, соответствующая данному графу, представлена на рис.2. Исходные пункты | Пункты назначения | Количество груза | | | | | | | отправ. из пункта | | | | | | М | М | | | | М | | М | | М | | | М | | | | М | М | | | | | | | | М | | | М | | | | | | | | | М | | | | | | Колич. груза прибыв.в пункт | | | | | | | | Рис.2 Буквой М обозначается случай, когда между соответствующими вершинами нет пути. В качестве М берут число, значительно большее самого большего пути. В данной задаче наибольший путь между 5-й и 7-ой вершинами, поэтому можно взять, например, М=50. Для промежуточных пунктов 2, 3, 4, 5, 6 должны быть предусмотрены буферные емкости В. Буферная емкость должна быть не меньшей, чем количество груза, которое перемещается в сети, описываемой графом. В данной задаче В=1. После введения буферных емкостей в первый столбец и нижнюю строку таблицы и замены М=50, получим транспортную задачу, представляющую задачу о назначениях (Рис.3). Исходные | Пункты назначения | Количество груза | пункты | | | | | | | отправ. из пункта | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Колич. груза прибыв.в пункт | | | | | | | | Рис.3 Последовательные преобразования матрицы транспортных расходов показаны на рис.4а, 4б, 4в. | 2 | 3 | 4 | 5 | 6 | 7 | | 2 | 3 | 4 | 5 | 6 | 7 | 1 | | | | | | | | | | | | | | 2 | | | | | | | | | | | | | | 3 | | | | | | | | | | | | | | 4 | | | | | | | | | | | | | | 5 | | | | | | | | | | | | | | 6 | | | | | | | | | | | | | | Рис. 4а | | Рис. 4б | | 2 | 3 | 4 | 5 | 6 | 7 | | 2 | 3 | 4 | 5 | 6 | 7 | 1 | 0 | | | | | | | | | | | | | 2 | 0 | | | | | | | | | | | | | 3 | 50 | 0 | 5 | 9 | 50 | 46 | | | | | | | | 4 | 5 | 4 | 0 | 5 | 14 | 46 | | | | | | | | 5 | 50 | 4 | 3 | 0 | 4 | 21 | | | | | | | | 6 | 6 | 50 | 13 | 6 | 0 | 0 | | | | | | | | Рис. 4в | | Рис.5 | На рис.4б показаны результаты вычитания минимального элемента первой строки (он равен 2) из первой строки, на рис.4с приведены результаты вычитания минимального элемента из шестого столбца (он равен 4) и результат вычеркивания строк и столбцов с нулями. На рис.5 показаны результаты вычитания минимального элемента (он равен 1) из невычеркнутых элементов, и результат вычеркивания строк и столбцов второй раз. На рис.6 приведены окончательные результаты преобразования и результаты допустимого выбора из множества нулей. Рис.6 Перенеся эти результаты на исходную таблицу (рис.2), получим новую таблицу (рис.7). Исход. | Пункты назначения | Количество груза | пункты | | | | | | | отправ. из пункта | | | | | | М | М | | | | М | | М | | М | | | М | | | | М | М | | | | | | | | М | | | М | | | | | | | | | М | | | | | | Колич. груза прибыв.в пункт | | | | | | | | Рис.7 Наикратчайший путь из вершины 1 в вершину 7 определяется следующей траекторией: 1 ® 2 ® 6 ®7 Длина наикратчайшего пути равна: 2+2+4=8. II. Решение задачи в процедуре EXCEL «Поиск решения» 1) Ввод данных. Переносим данные задачи в EXCEL. Результаты заполнения таблицы EXCEL можно увидеть на рис.8:  Рис.8 В ячейках B4:G9 введены длины путей из исходных пунктов в пункты назначения. Ячейки B12:G17 являются изменяемыми ячейками для нашей процедуры. В ячейках B18:G18 находятся суммы значений соответствующих столбцов изменяемых ячеек. в ячейке B18 находится сумма ячеек B12:B17; в С18 находится сумма ячеек С12:С17; в D18 находится сумма ячеек D12:D17; в E18 находится сумма ячеек E12:E17; в F18 находится сумма ячеек F12:F17; в G18 находится сумма ячеек G12:G17. В ячейках H12:H17 находятся суммы значений соответствующих строк изменяемых ячеек. в ячейке H12 находится сумма ячеек B12 : G12; в H13 находится сумма ячеек B13:G13; в H14 находится сумма ячеек B14:G14; в H15 находится сумма ячеек B15:G15; в H16 находится сумма ячеек B16:G16; в H17 находится сумма ячеек B17:G17. Целевая функция заносится в ячейку I3 и вычисляется по формуле «СУММПРОИЗВ (B4:G9 ; B12:G17)». 2) Заполнение окна процедуры «Поиск решения». целевая функция : I3; значение целевой функции : min; изменяемые ячейки: B12:G17; ограничения задачи : B18:G18 = 1 и H12:H17 = 1; B12 : G17 0 (ячейки должны иметь положительные значения). В окне «Параметры» установить «Линейная модель», что соответствует решению задачи симплекс-методом. Результаты заполнения окна показаны на рис.9:  Рис.9 3) Выполнив процедуру «Поиск решения» в первоначальной таблице (рис. 8) получим следующие результаты (рис.10):  Рис. 10 Путь минимальной длины:1 ® 2 ® 6 ®7, длина = 8. Эти результаты совпадают с решением данной задачи преобразованием матрицы транспортных расходов, приведенным выше. |