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

Лекция 5: Параллельные методы расчета транспортной сети

Начнем движение по ребрам из данной вершины. Для этого будем исключать из (5.12) одно из уравнений, а оставшуюся систему будем решать совместно с не вошедшими в (5.12) уравнениями:

y3 = 0, y4 = 0, y5 = 0, y6 = 0, y9 = 0, y12 = 0. (5.13)

При этом надо учесть, что могут формироваться ранее исследованные комбинации нулей. (Комбинации нулей удобно метить индексным кодом, который следует запоминать для исключения повторного анализа.)

Положим в (5.13) y3 = 0 вместо y1 = 0. Последняя строка матрицы A станет нулевой.

Замена y1 = 0 уравнением y4 = 0 приводит к системе

\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_1\\y_3\\y_5\\y_6\\y_9\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
Решаем с помощью подстановок, находим Y1 = (2, 0, 9, 0, 2, 9, 0, 0, 3, 0, 0, 5). Т.к. Z(Y1) = 127 > 119, найденную вершину отвергаем.

Примечание. Нам вновь не пришлось воспользоваться схемой Гаусса. По-видимому, вид уравнений и вхождение каждой переменной не более чем в два уравнения позволяют довольствоваться простой подстановкой. Ниже мы исследуем это подробнее.

Переходим к другому ребру, заменяя в (5.12) уравнение y2 = 0 уравнениями из (5.13).

Замена y3 = 0 вместо y2 = 0 приводит к тому, что последняя строка матрицы A становится нулевой.

Замена y4 = 0 вместо y2 = 0 приводит к системе уравнений

\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
1 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_2\\y_3\\y_5\\y_6\\y_9\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
Находим с помощью подстановок Y1 = (0, 2, 9, 0, 4, 7, 0, 0, 1, 0, 0, 7). Т.к. Z(Y1) = 127 > 119, найденную вершину отвергаем и переходим к анализу следующего ребра.

Замена y3 = 0 вместо y7 = 0 приводит к тому, что в первом уравнении (9.25) не выполняется условие по ограничению y4 (y4 = 7).

Замена y4 = 0 вместо y7 = 0 приводит к тому, что в первом же уравнении (9.25) не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y7 = 0 приводит к системе

\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 & 1 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_6\\y_7\\y_9\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
Находим Y1 = (0, 0, 7, 4, 0, 9, 2, 0, 5, 0, 0, 3). Однако Z(Y1) = 129 > 119.

Переходим к анализу следующего ребра, поочередно заменяя уравнениями из (5.13) уравнение y8 = 0 из (5.11).

Замена y3 = 0 вместо y8 = 0 приводит к образованию последней нулевой строки матрицы A.

Замена y4 = 0 вместо y8 = 0 приводит к тому, что в первом уравнении не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y8 = 0 приводит к системе

\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
1 & 0 & 0 & 1 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_6\\y_8\\y_9\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
Находим Y1 = (0, 0, 9, 2, 0, 9, 0, 2, 5, 0, 0, 3). Т.к. Z(Y1) = 141 > 119, найденную вершину отвергаем.

Переходим к анализу следующего ребра, поочередно заменяя уравнениями из (5.13) уравнение y10 = 0 из (5.11).

Замена y3 = 0 вместо y10 = 0 приводит к тому, что в первом уравнении (5.11) не выполняется условие по ограничению y4 (y4 = 7).

Замена y4 = 0 вместо y10 = 0 приводит к тому, в первом же уравнении (5.11) не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y10 = 0 приводит к тому, что во втором уравнении (5.11) не выполняется условие по ограничению y6 (y6= 9).

Замена y6 = 0 вместо y10 = 0 приводит к тому, что во втором же уравнении (5.11) не выполняется условие по ограничению y5 (y5 = 5).

Замена y9 = 0 вместо y10 = 0 приводит к системе

\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 1 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{10}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
Находим Y1 = (0, 0, 9, 2, 5, 6, 0, 0, 0, 3, 0, 5). Т.к. Z(Y1) = 104 < 119, "перемещаемся" в найденную вершину с меньшим значением целевой функции.

Новая вершина характеризуется системой уравнений

y1 = 0, y2 = 0, y7 = 0, y8 = 0, y9 = 0, y11 = 0. (5.14)

Перепишем систему (5.11), выделив "отсутствующие" столбцы, вследствие (5.14):

\begin{equation}
\setcounter{MaxMatrixCols}{20}
\begin{pmatrix}
\colorbox[gray]{0.8}1 & \colorbox[gray]{0.8}1 & 1 & 1 & 0 & 0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 0 & \colorbox[gray]{0.8}0 & 0 \\
\colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 0 & 0 & 1 & 1 & \colorbox[gray]{0.8}1 & \colorbox[gray]{0.8}1 & \colorbox[gray]{0.8}0 & 0 & \colorbox[gray]{0.8}0 & 0 \\
\colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 0 & 0 & 0 & 0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}1 & 1 & \colorbox[gray]{0.8}1 & 1 \\
\colorbox[gray]{0.8}1 & \colorbox[gray]{0.8}0 & 0 & 0 & 1 & 0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}1 & 0 & \colorbox[gray]{0.8}0 & 0 \\
\colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}1 & 0 & 0 & 0 & 1 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 1 & \colorbox[gray]{0.8}0 & 0 \\
\colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 1 & 0 & 0 & 0 & \colorbox[gray]{0.8}1 & \colorbox[gray]{0.8}0 & \colorbox[gray]{0.8}0 & 0 & \colorbox[gray]{0.8}1 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_1\\y_2\\y_3\\y_4\\y_5\\y_6\\y_7\\y_8\\y_9\\y_{10}\\y_{11}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation} ( 5.15)
После исключения одного из уравнений (5.14) оставшаяся система (5.15), (5.14) будет решаться совместно с одним из уравнений

y3 = 0, y4 = 0, y5 = 0, y6 = 0, y10 = 0, y12 = 0 (5.16)

Замена y1 = 0 на y3 = 0 приводит к появлению (последней) нулевой строки матрицы A.

Замена y4 = 0 вместо y1 = 0 приводит к системе

\begin{equation*}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 1 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_1\\y_3\\y_5\\y_6\\y_{10}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation*}

Отсюда Y1 = (2, 0, 9, 0, 3, 8, 0, 0, 0, 1, 0, 7). Т.к. Z(Y1) = 114 > 104, исследуем следующее ребро, исключив в системе (5.14) уравнение y2 = 0 и заменяя его последовательно уравнениями из (5.16).

Замена y4 = 0 вместо y2 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
1 & 0 & 0 & 1 & 1 & 0 \\
0 & 2 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_2\\y_3\\y_5\\y_6\\y_{10}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation}
Находим Y1 = (0, 2, 9, 0, 5, 6, 0, 0, 0, 1, 0, 7). Т.к. Z(Y1) = 114 > 104, исследуем следующее ребро, исключив в системе (5.14) уравнение y7 = 0 и заменяя его последовательно уравнениями из (5.16).

Замена y3 = 0 вместо y7 = 0 приводит к тому, что в первом уравнении (9.29) не выполняется условие по ограничению y4 (y4 = 7).

Замена y4 = 0 вместо y7 = 0 приводит к тому, что в первом же уравнении (9.29) не выполняется условие по ограничению y3 (y3= 9).

Замена y5 = 0 вместо y7 = 0 приводит к формированию нулевой (четвертой) строки матрицы A.

Замена y6 = 0 вместо y7 = 0 приводит к формированию нулевой (пятой) строки матрицы A.

Замена y10 = 0 вместо y7 = 0 приводит к тому, что в третьем уравнении (5.15) не выполняется условие по ограничению y12 (y12 = 7).

Замена y12 = 0 вместо y7 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 & 1 \\
1 & 0 & 0 & 0 & 1 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{10}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation}
Находим Y1 = (0, 0, 4, 7, 5, 1, 5, 0, 0, 8, 0, 0). Т.к. Z(Y1) = 104 и это не меньше уже полученной оценки, исследуем следующее ребро, исключив в системе (5.14) уравнение y8 = 0 и заменяя его последовательно уравнениями из (5.16).

Замена y3 = 0 вместо y8 = 0 приводит к образованию нулевой (шестой) строки матрицы A.

Замена y4 = 0 вместо y8 = 0 приводит к тому, что в первом уравнении (5.15) не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y8 = 0 приводит к образованию нулевой (четвертой) строки матрицы A.

Замена y6 = 0 вместо y8 = 0 приводит к тому, что в пятом уравнении (5.15) не выполняется условие по ограничению y10 (y10= 8).

Замена y10 = 0 вместо y8 = 0 приводит к тому, что в третьем уравнении (5.15) не выполняется условие по ограничению y12 (y12 = 7).

Замена y12 = 0 вместо y8 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{8}\\y_{10}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation}
Ее решение Y1 = (0, 0, 9, 2, 5, 1, 0, 5, 0, 8, 0, 0) определяет значение Z(Y1) = 134 > 104. Продолжаем перебор по следующему ребру.

Замена y3 = 0 вместо y9 = 0 приводит к образованию нулевой (шестой) строки матрицы A.

Замена y4 = 0 вместо y9 = 0 приводит к тому, что в первом уравнении (5.15) не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y9 = 0 приводит к тому, что во втором уравнении (5.15) не выполняется условие по ограничению y6 (y6= 9).

Замена y6 = 0 вместо y9 = 0 приводит к тому, что во втором же уравнении (5.15) не выполняется условие по ограничению y5 (y5 = 5).

Замена y10 = 0 вместо y9 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
1 & 0 & 0 & 0 & 0 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{9}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation}

Ее решение Y1 = (0, 0, 9, 2, 2, 9, 0, 0, 3, 0, 0, 5) определяет значение Z(Y1) = 119 > 104.

Приступаем к анализу следующего ребра, исключая в (5.14) уравнение y11 = 0 и заменяя его последовательно уравнениями из (5.16).

Замена y3 = 0 вместо y11 = 0 приводит к тому, что в первом уравнении (5.15) не выполняется условие по ограничению y4 (y4 = 7).

Замена y4 = 0 вместо y11 = 0 приводит к тому, что в первом уравнении (5.15) не выполняется условие по ограничению y3 (y3 = 9).

Замена y5 = 0 вместо y11 = 0 приводит к тому, что во втором уравнении (5.15) не выполняется условие по ограничению y6 (y6 = 9).

Замена y6 = 0 вместо y11 = 0 приводит к тому, что во втором же уравнении (5.15) не выполняется условие по ограничению y5 (y5 = 5).

Замена y10 = 0 вместо y11 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
1 & 0 & 0 & 0 & 1 & 0 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{11}\\y_{12}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation} ( 5.17)

Система не имеет решения, т.к. ранг матрицы системы не равен рангу расширенной матрицы.

Примечание. В несложном примере это легко обнаружить: вторая строка матрицы равна сумме четвертой и пятой строк, что противоречит соотношению между соответствующими свободными членами, 9 + 5 \ne 11. По-видимому, это говорит в пользу применения схемы Гаусса. В противном случае мы должны контролировать последовательно получаемые решения на удовлетворение тем соотношениям, которые в его получении не участвовали. Так, из четвертого и пятого уравнений имеем y5 = 5, y6 = 9. Но в соответствии со вторым уравнением y5 + y6 = 11. В то же время, совершая подстановку во второе уравнение, мы получаем нулевую левую часть, т.е. нулевую строку матрицы A, что опять говорит в пользу подстановок!

Замена y12 = 0 вместо y11 = 0 приводит к системе

\begin{equation}
\begin{pmatrix}
1 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 & 1 & 0 \\
1 & 0 & 0 & 0 & 0 & 1 \\
\end{pmatrix}
\times
\begin{pmatrix}
y_3\\y_4\\y_5\\y_6\\y_{10}\\y_{11}
\end{pmatrix}
=
\begin{pmatrix}
11\\11\\8\\5\\9\\9
\end{pmatrix}
\end{equation}
Ее решение Y1 = (0, 0, 4, 7, 5, 6, 0, 0, 0, 3, 5, 0) определяет значение целевой функции Z(Y1) = 89 < 104.

Полагаем Y0 := Y1. Теперь мы должны перемещаться по ребрам из вновь найденной вершины в поисках вершины с еще меньшим значением целевой функции. Придется перебрать до 6 x 6 = 36 вариантов такого перемещения. Однако, достигнув ответа задачи в [15], положимся на его правильность и прекратим рассмотрение примера.