Тема 4. Сетевые модели. Целочисленное программирование. § 4.1. Понятие графа. Ориентированные графы. Дерево N x конечное множество вершин или узлов, N n количество элементов в множестве N, G N N x, y x N, y N множество ребер, N,G граф x, y G ребро, соответствующее вершинам x и y (смежные вершины), Пример 4.1.1. N 1,2,3,4 G 1,2 , 1,3 , 2,3 , 2,4 , 3,4 G 1,2 , 1,3 , 2,3 , 2,4 , 3,4 , 2,1, 3,1, 3,2 , 4,2 , 4,3 Последовательность ребер графа вида P x1, xk x1, x2 , x2 , x3 , xk 1, xk называется путем из x1 в xk , если никакое ребро не встречается более одного раза. Если x1 xk , то путь P x1, xk называется циклом. Граф называется связным, если для любых двух его вершин существует путь, их соединяющий. В противном случае граф называется несвязным. Деревом называется связный граф, не содержащий циклов (между двумя любыми узлами существует единственный путь). Пример 4.1.2. §4.2. Понятие сети Граф, множество ребер которого определяется некоторой вещественной неотрицательной функцией, u : N N R1 N, u будем называть сетью. 1 1 0 u ( x, y ) 2 5 3 4 2 5 0 7 3 4 7 0 2 5 1 7 4 3 § 4.3. Транспортная задача (ТЗ) Содержательная постановка: A1, A2, , Am пункты производства a1, a2 , , am производительность B1, B2, , Bn пункты потребления b1, b2 , , bn ci j 0 спрос удельные транспортные затраты Транспортная задача заключается в определении плана перевозок, при котором удовлетворен спрос каждого потребителя, вывезен весь объем продукции из каждого пункта производства и при этом суммарные транспортные затраты минимальны. Способы задания ТЗ • аналитический C cij , cij 0, • табличный a a1, a2, , am , ai 0, i 1, m b b1, b2, , bn , b j 0, j 1, n , • сетевой a1 a2 b1 c11 c21 b2 c12 c22 bn c1n c2 n am c m1 c m 2 cmn Пример 4.3.1. 7 8 5 3 C 2 4 5 9 6 3 1 2 7 a1 11 A1 пункты производства b 5, 9, 9, 7 7 B1 b1 5 B2 b2 9 B3 b3 9 B4 b4 7 88 a2 11 A2 a3 8 A3 a 11, 11, 8 2 пункты потребления Напишем математическую модель задачи: Переменные: xij объем перевозок из Ai в Bj x11 x12 X x21 x22 x 31 x32 x13 x23 x33 x14 план перевозок x24 x34 Целевая функция: 7 8 5 3 C 2 4 5 9 6 3 1 2 a 11, 11, 8 b 5, 9, 9, 7 min z 7 x11 8 x12 5 x13 3 x14 2 x21 4 x22 5 x23 9 x24 6 x31 3 x32 x33 2 x34 Ограничения: x11 x12 x13 x14 11, x11 x21 x31 5, x21 x22 x23 x24 11, x12 x22 x32 9, x31 x32 x33 x34 8, x13 x23 x33 9, xij 0, xij целые, x14 x24 x34 7, двойственная задача Математическая модель транспортной задачи m min z min(c11x11 c12 x12 xi 1 xi 2 x1 j x2 j n min z min cij xij cmn xmn ) i 1 j 1 n x xin ai , i 1, m, j 1 ij m xmj b j , j 1, n, x i 1 xij 0, xij целые. ij ai , i 1, m, b j , j 1, n, xij 0, xij целые. Теорема 4.3.1. (О разрешимости ТЗ) Для существования оптимального решения ТЗ, необходимо и достаточно, чтобы выполнялось условие m n баланса: ai b j . i 1 j 1 m n a b Закрытая ТЗ: i i 1 Открытая ТЗ: j 1 m 1) j условие баланса n a b i i 1 j 1 j перепроизводство Bn 1 фиктивный пункт потребления m n bn 1 ai b j спрос i 1 bj ai 11 11 8 ci , n1 ri j 1 5 4 9 5 7 7 8 5 3 r1 2 4 5 9 r2 6 3 1 2 r3 штраф m Открытая ТЗ: 2) n a b i 1 i j 1 j - дефицит фиктивный пункт производства Am 1 n m j 1 i 1 am 1 b j ai производительность bj ai 11 6 8 5 5 9 9 7 7 8 5 3 2 4 5 9 6 3 1 2 r1 r2 r3 r4 cm1, j r j § 4.4. Методы решения транспортной задачи 4.4.1. Методы нахождения допустимого решения ТЗ • Метод северо-западного угла • Метод минимального элемента • Метод Фогеля 4.4.2. Методы нахождения оптимального решения • Метод потенциалов (А. В. Кантарович 1949 г.) 4.4.1. Методы нахождения начального опорного плана ТЗ. Опорным планом X транспортной задачи будем называть допустимое базисное решение ТЗ. Метод северо-западного угла bj 9 5 7 9 ai 5 8 3 7 6 11 5 0 0 11 0 8 0 2 6 3 0 4 3 8 1 5 6 0 0 X 0 0 3 8 0 0 0 1 7 5 1 0 7 9 1 2 3 1 5 6 2 3 8 1 7 3 4 2 z X0 57 68 34 8 5 1 1 7 2 150 Метод минимального элемента bj ai 11 11 8 1 5 0 5 0 9 9 7 2 6 3 6 0 8 4 3 1 0 8 1 7 5 5 1 7 0 0 3 9 2 2 2 3 3 4 0 3 1 7 X 0 5 6 0 0 0 0 8 0 z X 0 3 8 1 5 3 7 2 5 6 4 8 1 92 Метод Фогеля bj ai 11 11 8 штрафы столбцов 5 0 7 8 3 6 5 6 4 1 4 2 0 9 9 0 0 3 8 штрафы строк 7 5 5 1 7 0 0 3 2 2 2 3 9 2 1 1 1 2 1 1 1 4 1 1 4 1 4 0 6 4 0 0 3 1 7 X 0 5 6 0 0 0 0 8 0 z X 0 92 Проверка плана ТЗ на опорность (метод вычеркиваний): • вычеркнуть все строки в матрице Х, содержащие не более одного положительного элемента; • в получившейся матрице вычеркнуть все столбцы, содержащие не более одного положительного элемента; • далее процесс вычеркивания строк и столбцов применяется к оставшейся подматрице. Процесс заканчивается одним из двух исходов: 1. Все строки (столбцы) вычеркнуты. Тогда Х опорный. 2. Получена подматрица, в каждой строке (столбце) которой не менее 2 положительных элементов. Х не опорный. Из оставшихся элементов можно построить цикл. Пример 4.3.2. a 15,35,15,30 b 15,20,25,15,20 5 0 0 0 10 10 20 5 0 0 X1 0 0 15 0 0 0 0 5 15 10 неопорный план 15 0 0 0 0 0 20 15 0 0 X2 0 0 10 5 0 0 0 0 10 20 опорный план Прямая задача min z 7 x11 8 xдвойственной 4 x22 5 x23 9 x24 6 x31 3 x32 x33 2 x3 12 5 x13 3 x14 2 x 21задачи Построение x11 x12 x13 x14 11, x21 x22 x23 x24 11, x31 x32 x33 x34 8, xij 0, xij целые, x11 x21 x31 5, x12 x22 x32 9, x13 x23 x33 9, x14 x24 x34 7, Замечание: кол-во переменных: mn=12 кол-во ограничений: m+n=7 Обозначения C (c11, c12, c13, c14, c21, c22, c23, c24, c31, c32, c33, c34 ) 7, 8, 5, 3, 2, 4, 5, 9, 6, 3, 1, 2 X ( x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 )T B a1, a2 , a3 , b1, b2 , b3 , b4 11, 11, 8, 5,9,9,7 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 A 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 T Y u1, u2 , u3 , v1, v 2 , v 3 , v 4 Т Прямая задача min z minCX AX B, X 0 Двойственная задача max w max YB YA C Теорема 4.4.3. Двойственная задача C (c11, c12, c13 , c14 , c21, c22, c23 , c24 , c31, c32, c33 , c34 ) max w max YB YA C X ( x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 )T B a1, a2 , a3 , b1, b2 , b3 , b4 T Y u1, u2 , u3 , v1, v 2 , v 3 , v 4 1 0 0 A 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 max w 5v1 9v 2 9v 3 7v 4 11u1 11v 2 8v 3 v1 u1 7 v 1 u2 2 v 1 u3 6 v 2 u1 8 v 2 u2 4 v 2 u3 3 v 3 u1 5 v 3 u2 5 v 3 u3 1 v 4 u1 3 v 4 u2 9 v 4 u3 2 Замечание: кол-во переменных: m+n=7 кол-во ограничений: mn=12 4.4.2. Алгоритм метода потенциалов Двойственная ТЗ Прямая ТЗ m x i 1 j 1 j 1 ij m x i 1 ij ai , i 1, m, b j , j 1, n, xij 0, xij целые. x11 X x n1 x1m xnm n m количество ограничений nm j 1 i 1 v j u i cij , i 1, m, j 1, n. ui стоимость ед. продукции в пункте производства Ai v j стоимость ед. продукции в n пункте потребления B j b v j суммарная стоимость продукции в пунктах потребления a u i суммарная стоимость продукции в пунктах производства j 1 m i 1 количество переменных m max w max( b j v j ai ui ), n min z min cij xij n n j i Теорема 4.4.1. (Теорема двойственности для транспортной задачи) Для того чтобы прямая и двойственная ТЗ имели оптимальные решения, необходимо и достаточно, чтобы было выполнено условие баланса, и значения прямой и двойственной задач были равны, т.е. m n n m j 1 i 1 x c b v a u ij ij j j i i . i 1 j 1 Экономическая интерпретация теоремы: суммарные транспортные затраты при оптимальном плане перевозок равны изменению суммарной стоимости продукции при полном удовлетворении спроса. Теорема 4.4.2. (Каноническая теорема равновесия) Для того чтобы пара допустимых решений прямой и двойственной ТЗ X * xij* и Y * u1* , , um* ,v1* , ,v n* была парой оптимальных решений, необходимо и достаточно, чтобы выполнялись следующие соотношения: 1. Если xij 0, то v j ui cij , 2. Если v j ui cij , то xij 0. Экономическая интерпретация теоремы: v j ui приращение ценности единицы продукции при перевозке из Ai в B j ; * * если v j ui cij , то перевозка нерентабельна и xij* 0 ; если xij* 0 (перевозка рентабельна), то v *j ui* cij . Теорема 4.4.3. Ранг матрицы ограничений ТЗ равен: rang A n m 1. Алгоритм метода потенциалов 0. Построение начального опорного плана ТЗ. X 0 xij0 ИТЕРАЦИЯ 1. Нахождение переменных двойственной задачи. • Для xij0 0 строим систему v 0j ui0 cij , 0 0 0 • Находим решение v j , ui потенциалы плана X . • Вычисляем матрицу невязок : C 0 cij (v 0j ui0 ). 2. Проверка оптимальности или нахождение переменной, вводимой в базис. • Если все cij0 0, то X 0 решение оптимально. • В противном случае min cij0 crs0 , вводим в базис xrs . cij0 0 3. Нахождение переменной, исключаемой из базиса. • Рассматриваем элемент x rs и все базисные перевозки X 0 , строим цикл из этих элементов (метод вычеркивания). • Помечаем элементы цикла знаками «+» и «–» через один, начиная с элемента x rs . • Выбираем минимальный объем перевозки из элементов, помеченных знаком «–»: min xij xkl 4. Нахождение нового опорного плана. • Получаем новый план X 1 : x0 ij 0 1 xij xij 0 xij . , , • Значение целевой функции на плане X 1 : z X 1 z X 0 . Пример 4.4.2. Найти оптимальное решение ТЗ из примера 4.4.1, используя метод потенциалов. 0. Начальное решение (метод минимального элемента) 0 3 1 7 7 8 5 3 X 0 5 6 0 0 , z( X 0 ) 92, C 2 4 5 9 . 6 3 1 2 0 0 8 0 Итерация 1 0 0 0 1. Строим систему уравнений: v j ui ci j , xi j 0. v 20 u10 8, v10 u20 2, v 30 u10 5, v 20 u20 4, v 40 u10 3, v 30 u30 1. Полагая u10 0 , получаем: u20 4 v10 6 v 30 5 u30 4 v 20 8 v 40 7 2. Строим матрицу невязок: 7 8 5 3 C 2 4 5 9 6 3 1 2 u20 4 v10 6 u30 4 v 20 8 0 В матрице c32 0 , план Переменную x32 вводим в базис, 3. Строим цикл: x32 , x12 , x13 , x33 0 0 0 1 C 0 0 0 4 3 4 1 0 3 0 min x 0 ij 0 x12 3 x12 - выводим из базиса C 0 cij (v 0j ui0 ) 0 3 1 7 v 30 5 X 0 5 6 0 0 , v 40 7 0 0 8 0 0 X неоптимальный. 0 0 c32 1. x0 ij xij1 xij0 0 xij . 3, 3, 0 0 4 7 X 1 5 6 0 0 0 3 5 0 Находим значение целевой функции: z( X 1 ) z( X 0 ) 00 4. Новое решение: Итерация 2 1. Строим систему потенциалов: v 31 u11 5, v 21 u21 4, v 41 u11 3, v 21 u31 3, v11 u21 2, v 31 u31 1. Получаем решение: u11 0, u21 3, u31 4, v11 5, v 21 7, v 31 5, v 41 3. 92 1 3 89. 2. Строим матрицу невязок: C1 cij (v 1j ui1 ) 7 8 5 3 C 2 4 5 9 6 3 1 2 v u 1, v u 3, v u 9, v u 5, v u 3. 1 c11 c11 v11 u11 2, 1 c12 c12 1 c23 c23 1 c24 c24 1 c31 c31 1 c34 c34 1 2 1 1 1 3 1 2 1 4 1 2 1 1 1 4 0 0 4 7 X 1 5 6 0 0 0 3 5 0 u11 0, u21 3, u31 4, 1 3 v11 5, v 21 7, v 31 5, v 41 3. 1 3 2 1 0 0 C 1 0 0 3 9 5 0 0 3 X1 оптимальный план § 4.5. Задача о назначениях I1, I2 , , Im J1, J 2 , , J n ci j 0 множество работников множество работ затраты при назначении работника на работу Задача о назначениях заключается в нахождении распределения работников по работам, минимизирующего общие затраты по выполнению комплекса работ, при условиях , что каждый работник выполняет только одну работу, и на каждой работе занят только один работник. Пример 4.5.1. 5 7 9 С 4 6 8 9 4 8 матрица затрат 5 I1 7 9 4 I2 6 9 I3 J1 J2 4 8 8 J3