Лекция 5: Параллельные методы расчета транспортной сети
Прямой перебор и аналог "симплекс-метода" при решении транспортной задачи без ограничения пропускной способности коммуникаций
Постановка задачи и планы решения
Пусть [15] в пунктах A1, A2, ... ,Am производят некоторый однородный продукт в объеме ai (i=1, 2, ... , m) единиц. В пунктах B1, B2, ... ,Bn этот продукт потребляется в объеме bj ( j=1, 2, ... , n ) единиц. Из каждого пункта производства {Ai} возможна транспортировка в любой пункт потребления Bj. Транспортные издержки} по перевозке из пункта Ai в пункт Bj единицы продукции равны cij (i=1, ... , m; j=1, ... , n).
Необходимо найти такой план перевозок, при котором запросы всех потребителей полностью удовлетворены, весь продукт из пунктов производства вывезен и суммарные транспортные издержки минимальны.
Пусть xij — количество продукта, перевозимого из пункта Ai в пункт Bj. Требуется найти значение переменных (перевозок) xij >= 0 (i = 1, 2, ... , m ; j = 1, 2, ... , n), удовлетворяющих
( 5.1) |
при ограничениях
( 5.2) |
при условии неотрицательности
xij >= 0 (5.3)
и баланса
( 5.4) |
Сформулируем задачу линейного программирования в канонической постановке, исключив из (5.2) одно уравнение. При этом мы считаем, что условие баланса (5.4) оказывает влияние на корректность постановки задачи и учтено при этой постановке. Исключенное уравнение будем использовать также для контроля получаемого решения.
Следуя плану параллельного решения задачи линейного программирования и учитывая, что оптимальное решение находится хотя бы в одной из вершин многогранника допустимых решений, образуемого ограничениями и условиями, сформируем это множество граней. В его состав войдут m+n-1 выделенных уравнений-ограничений и m x n равенств нулю переменных на основе неотрицательности решения. Выбирая из этой системы по m x n уравнений с обязательным участием всех выделенных уравнений-ограничений и решая их совместно, мы можем находить вершины многогранника решений.
Так мы можем реализовать метод прямого перебора. Количество вариантов составляет Cm x nm x n - (m + n - 1) . Это — количество различных способов приравнивания нулю m x n-(m+n-1) переменных из их общего числа m x n.
Мы можем реализовать и аналог симплекс-метода, найдя первоначально некоторую вершину, а затем перемещаясь по ребрам в одну из смежных вершин с большим значением целевой функции, пока это возможно.
Параллельный алгоритм решения
Исследование плана параллельного решения и формирование алгоритма будем сопровождать примером, для проверки правильности заимствованным в [15]. Для краткости условия (5.3) и (5.4) опущены.
Пример.
Z=7x11+8x12+5x13+3x14+2x21+4x22+5x23+ +9x24+6x31+3x32+1x33+2x34-> min (5.5)
при ограничениях
x11 + x12 + x13 + x14 = 11
x21 + x22 + x23 + x24 = 11
x31 + x32 + x33 + x34 = 8
x11 + x21 + x31 = 5 (5.6)
x12 + x22 + x32 = 9
x13 + x23 + x33 = 9
x14 + x24 + x34 = 7