Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1216 / 120 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист

Лекция 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), удовлетворяющих

\begin{equation}
Z(x_{ij} ) = \sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {c_{ij}
x_{ij} \quad  \to \;\min } }
\end{equation} ( 5.1)

при ограничениях

\begin{equation}
\begin{gathered}
 \sum\limits_{j = 1}^n {x_{ij}  = a_i } ,\quad i = 1,...,\;m, \hfill \\
\sum\limits_{i = 1}^m {x_{ij}  = b_j } ,\quad j = 1,...,\;n, \hfill \\
\end{gathered}
\end{equation} ( 5.2)

при условии неотрицательности

xij >= 0 (5.3)

и баланса

\begin{equation}
\sum\limits_{i = 1}^m {a_i  = \sum\limits_{j = 1}^n {b_j .} }
\end{equation} ( 5.4)
Как известно, условие баланса приводит к линейной зависимости уравнений в системе (5.2), ранг ее матрицы равен m+n-1.

Сформулируем задачу линейного программирования в канонической постановке, исключив из (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