Текст
                    СИ З V ХОВИ ЦК И И
Л И АВДЕЕВА
ЛИНЕЙНОЕ
и ВЫПУКЛОЕ
ПРОГРАММИРОВАНИЕ


С. и. ЗУХОВИЦКИЙ, Л. И. АВДЕЕВА ЛИНЕЙНОЕ И ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ СПРАВОЧНОЕ РУКОВОДСТВО ИЗДАТЕЛЬСТВО «НАУКА» МОСКВА 1964
517.1 3 95 УДК 512.25 ГЛАВНАЯ РЕДАКЦИЯ. ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ Семен Израилевич Зуховицкий, Лигия Игоревна Авдеева Линейное и выпуклое программирование М., 1964 г., 348 стр. с илл. Редактор И. А. Радчик. Техн, редактор К. Ф. Брудно. Корректор Т. С. Плетнева. Сдано в набор 10/Ш 1964 г. Подписано к печати 1/VII 1964 г. Бумага 84x108/32. Физ. печ. л. 10,875. Условн. печ. л. 17,84. Уч.-изд. л. 16,67. Тираж 15 500 экз. Т-09124. Цена книги 93 коп. Заказ 210. Издательство «Наука». Главная редакция физико-математической литературы. Москва, В-71, Ленинский проспект, 15. Ленинградская типография № 2 имени Евгении Соколовой «Главполиграфпрома» Государственного комитета Совета Министров СССР по печати. Измайловский проспект, 29.
ОГЛАВЛЕНИЕ Предисловие 8 Введение 9 Глава I. Жордановы исключения 10 § 1. Обыкновенные жордановы исключения 10 1. Определение (10). 2. Геометрический смысл (12). § 2. Применение жордановых исключений в линейной алгебре 13 1. Теорема Стейница (13). 2. Обращение матриц (14). 3. Вычисление ранга матрицы (16). 4. Система п линейных уравнений с п неизвестными (18). 5. Об¬ щая система линейных уравнений (22). § 3. Модифицированные жордановы исключения 25 1. Определение (25). 2. Пример (26). Глава II. Основная задача линейного программирова¬ ния и ее решение симплекс-методом 27 § 1. Основная задача линейного программирования .... 27 1. Формулировка основной задачи (27). 2. Геометри¬ ческая интерпретация (27). 3. О методе решения за¬ дачи линейного программирования (31). § 2. Симплекс-метод для отыскания опорного решения системы линейных неравенств 33 1. Переход к таблице (33). 2. Исключение координат (переменных) xlt ...,хп (33). 3. Все свободные члены неотрицательны (35). 4. Правило выбора разрешаю¬ щего элемента при отыскании опорного решения (некоторые свободные члены отрицательны) (35). 5. Примеры (37). 6. Обоснование правила выбора раз¬ решающего элемента (40). 7. Другое правило выбора разрешающего элемента (44). § 3. Сцмплекс-метод для отыскания оптимального реше¬ ния основной задачи линейного программирования . , 46 1*
4 ОГЛАВЛЕНИЕ 1. Все коэффициенты г-строки неотрицательны (46). 2. Правило выбора разрешающего элемента при оты¬ скании оптимального решения (некоторые коэффици¬ енты z-строки отрицательны) (47). 3. Примеры (48). 4. Обоснование правила выбора разрешающего эле¬ мента (53). 5. Монотонность и конечность алгорифма симплекс-метода (55). § 4. Разные способы задания ограничений 56 1. Задание ограничений системой линейных уравне-* ний (56). 2. Смешанная система ограничений (59). 3. Примеры (60). § 5. Задача минимизации линейной формы 64 1. Сведёние к задаче максимизации (64). 2. Примеры (65). § 6. Вырождение 68 1. Зацикливание (68). 2. e-метод для устранения за¬ цикливания (69). § 7. Двойственность в линейном программировании ... 72 1. Двойственные таблицы (72). 2. Двойственные задачи Линейного программирования (74). 3. Основная (пер¬ вая) теорема двойственности линейного программиро¬ вания (75). 4. Эквивалентность пары двойственных задач задаче решения системы линейных неравенств (78). 5. Вторая теорема двойственности (79). 6. Эко¬ номическая интерпретация основной и двойственной задач (81). 7. Двойственные задачи со смешанной си¬ стемой ограничений (84). 8. Двойственный симплекс- метод (92). § 8. Целочисленное программирование 102 1. Постановка задачи. Геометрическая интерпретация (102). 2. Описание алгорифма (103). 3. Другой метод построения дополнительных ограничений (108). § 9. Параметрическое программирование 111 1. Постановка задачи (111). 2. Алгорифм решения за¬ дачи (111). 3. Пример (115). 4. Двойственная задача параметрического программирования (120). 5. Геомет¬ рическая интерпретация (120). Глава III. Некоторые приложения линейного программи¬ рования 122 § 1. Задачи оптимального производственного планиро¬ вания ’ 122 1. Задача о максимальной рентабельности предприя¬ тия (122). 2. Общая задача производственного плани¬ рования (123). 3. Задача о наилучшем распределении программы между несколькими предприятиями (об оптимальном использовании оборудования) (125). 4. Пример (127). § 2. Задача об оптимальном раскрое материалов (о ми¬ нимизации отходов). . 129 1. Постановка задачи (129). 2. Пример (130).
ОГЛАВЛЕНИЕ 5 § 3. Сельскохозяйственные задачи 133 1. Задача о диете (о смесях) (133). 2. Задача о наи¬ лучшем использовании посевной площади (134). § 4. Задача о закреплении самолетов за воздушными линиями 136 1. Постановка задачи и сведение к задаче линейного программирования (136). 2. Пример (136). § 5. Задача о назначениях (проблема выбора) 139 1. Постановка задачи (139). 2. Пример (140). § 6. Военные задачи . 143 1. Проблема узких мест (143). 2. Задача о рациональ¬ ном соотношении между различными типами броне¬ бойных снарядов (145). § 7. Линейное программирование и матричные игры . . . 146 1. Некоторые сведения из теории матричных (прямо¬ угольных) игр (147). 2. Сведение матричной игры к задаче линейного программирования (151). 3. Све¬ дение задачи линейного программирования к матрич¬ ной игре (155). Глава IV. Транспортная задача 159 § 1. Транспортная задача как задача линейного програм¬ мирования 160 1. Общая постановка задачи (160). 2. Открытая мо¬ дель транспортной задачи (задача с нарушенным ба¬ лансом запасов и потребностей) (162). § 2. Метод потенциалов 164 1. Предварительные понятия (164). 2. Потенциаль¬ ность— признак оптимальности плана перевозок (166). 3. Алгорифм решения транспортной задачи методом потенциалов (168). 4. Упрощение вычислительной схемы метода потенциалов (182). 5. Построение перво¬ начального плана методом минимального элемента (187). 6. Построение первоначального плана методом ап¬ проксимации (189). 7. Обоснование метода потенциа¬ лов (199). § 3. Транспортная задача по критерию времени 204 1. Постановка задачи (204). 2. Метод решения общей экстремальной задачи (типа транспортной по крите¬ рию времени) (206). 3. Решение транспортной задачи по критерию времени (209). 4. Другая вычислительная схема алгорифма (для случая транспортной за¬ дачи) (212). § 4. Определение кратчайших расстояний по заданной сети 216 1. Постановка задачи. Связь с линейным программи¬ рованием (216). 2. Описание алгорифма (219). 3. Со¬ ставление кратчайших маршрутов (224).
6 ОГЛАВЛЕНИЕ § 5. Задача о кратчайшей связывающей сети 226 1. Постановка задачи и основные понятия (226). 2. По¬ строение связывающей сети (226). § 6. Максимальный поток в сети 229 1. Постановка зацачи (229). 2. Алгорифм (231). 3. Об¬ основание алгорифма (236). 4. Пример (238). Глава V. Линейное программирование и чебышевские приближения 241 § 1. Задача чебышевского приближения несовместной системы линейных уравнений 242 1. Постановка задачи. Геометрическая интерпретация. Условие единственности (242). 2. Присоединенная за¬ дача линейного программирования (244). 3. Схема ре¬ шения задачи симплекс-методом (245). 4. Применение двойственного симплекс-метода (248). § 2. Задача чебышевского приближения системы линейных функций (уравнений) при наличии ограничений .... 250 1. Задание ограничений системой линейных нера¬ венств (250). 2. Задание ограничений системой линей¬ ных уравнений (253). § 3. Чебышевская точка системы линейных неравенств . . 255 1. Постановка задачи. Геометрическая интерпрета¬ ция (255). 2. Сведение к задаче линейного программи¬ рования. Примеры (257). § 4. Чебышевское приближение отношениями линейных форм 261 1. Происхождение и формулировка задачи (261). 2. Сведение к задаче нелинейного программирования (263). 3. Схема алгорифма. Сходимость (263). 4. При¬ мер (265). § 5. Минимизация суммы модулей линейных функций . . . 270 1. Постановка задачи (270). 2. Примеры (272). Г л а в а VI. Выпуклое программирование 278 § 1. Общая задача выпуклого программирования 279 1. Формулировка задачи и характер минимума (279). 2. Примеры реализации общей задачи (280). 3. Кано¬ ническая форма общей задачи (283). § 2. Решение задачи выпуклого программирования .... 284 1. Основной вариант алгорифма (284). 2. Второй вари¬ ант алгорифма (300). § 3. Комплексное чебышевское приближение 302 1. Случай отсутствия ограничений (303). 2. Случай наличия ограничений (308). § 4. Точка, наименее удаленная от системы плоскостей . . 312 1. Точка, взвешенно наименее удаленная от заданной системы точек на плоскости (312). 2. Точка, наименее удаленная от заданной системы прямых (в простран¬ стве) (317).
ОГЛАВЛЕНИЙ 7 § 5. Квадратичное программирование 322 1. Постановка задачи (322). 2. Применение алгорифма выпуклого программирования (322). 3. Конечный алго¬ рифм для квадратичного программирования (329). § 6. Применение к линейному программированию .... 339 1. Предварительные замечания (339). 2. Алгорифм (339). 3. Пример (341). Цитированная литература 343 Алфавитный указатель 346
ПРЕДИСЛОВИЕ В основу первых глав этой книги положены лекции по линейному программированию, прочитанные С. И. Зуховицким группе инженеров и математиков в Киевском Доме научно- технической пропаганды. Эти лекции, записанные Л. И. Авдее¬ вой, проводившей практические занятия, были подвергнуты нами совместно значительной переработке и дополнены рядом фактов, а также большим количеством числовых примеров иллюстративного характера. Мы старались предельно осветить геометрическую картину рассматриваемых задач и методов, и такая единая геометри¬ ческая трактовка вопросов пронизывает всю книгу. Вычислительным аппаратом в этой книге служит аппарат жордановых исключений, большие удобства которого убеди¬ тельно продемонстрированы в статье Э. Штифеля [35]. Основным классическим методам и задачам линейного программирования посвящены первые четыре главы книги. Глава пятая (написанная С. И. Зуховицким) посвящена зада¬ чам чебышевского приближения и сведёнию их к задаче линейного программирования. Глава шестая (написанная С. И. Зуховицким совместно с Р. А. Поляком и М. Е. При¬ маком) посвящена вопросам выпуклого программирования, в частности, квадратичному программированию и чебышев¬ скому приближению в комплексной области. Ряд полезных замечаний, способствовавших улучшению книги, сделаны Л. А. Люстерником и И. А. Радчик. Указанным лицам выражаем свою благодарность. Авторы
ВВЕДЕНИЕ Линейное программирование изучает важную для практики задачу отыскания максимума (минимума) линейной функции при наличии ограничений в виде линейных неравенств или уравнений, задачу, для решения которой оказались малопри¬ годными классические методы решения экстремальных задач. Общая постановка задачи линейного программирования и чрезвычайно плодотворный метод ее решения («метод раз¬ решающих множителей») впервые даны в 1939 году Л. В. Кан¬ торовичем в работе [6] (см. также его работы [7], [8] и [9]). Широко распространенный симплекс-метод, преимуще¬ ственно применяемый в нашей книге для решения задачи линейного программирования, разработан в 1949 году Дж. Б. Данцигом в статье [17] (см. также [18] и совмест¬ ные с другими авторами работы [22], [23]). Краткие исторические сведения о линейном программиро¬ вании приведены в [14], а достаточно полная библиогра¬ фия— в [15] и [2]. Симплекс-метод с успехом применяется и для решения тесно связанной с линейным программированием классиче¬ ской задачи чебышевского приближения несовместной системы линейных уравнений, т. е. для отыскания такой системы значений неизвестных, при которой максимальная по модулю невязка (уклонение) имеет наименьшее значение. Выпуклое программирование изучает также важную для практики задачу минимизации нелинейной выпуклой функции при наличии ограничений, заданных в виде нелинейных нера¬ венств, определяющих некоторое выпуклое множество. Общие методы для решения задачи выпуклого программирования разработаны лишь недавно ([34], [5в], [36] и др.) и суще¬ ственно используют вычислительный аппарат линейного про¬ граммирования.
ГЛАВА I ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ § 1. Обыкновенные жордановы исключения 1. Определение. Пусть рассматривается система У/ = апх1 + о/2х2+ ... (<=1 ™) (1.1У из т линейных форм с п независимыми переменными х2, .... хп. Эта система может быть записана в виде сле¬ дующей таблицы: *1 ... ••• xn У1 = ан • • • a\'s ... axn Уг = ап ... ars ••• arn Ут = ат\ • • • ams • • • amn Следуя Э. Штифелю [35], будем называть шагом обык¬ новенного жорданова исключения, произведенным над таблицей (1.2), с разрешающим элементом аГЗФ§, с г-й разрешающей строкой и s-м разрешающим столбцом схематизированную операцию перемены ролями между зави¬ симой переменной уг и независимой xs, т. е. операцию реше¬ ния уравнения Уг = агЛ + Д!г2л;2+ ••• +«гЛ+ + агпх„ относительно xs, подстановки его во все остальные уравне¬ ния системы (1.1) и записи полученной системы в виде новой
§ 1] ОБЫКНОВЕННЫЕ ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ 11 таблицы, аналогичной (1.2). Легко проверить, что новая таблица имеет вид Xi Х2 .. . у Г . . . Хп У1 = *11 612 .. . als ... bln У2 = ^21 &22 • • . o,2s • •. bin *s = аг\ #Г2 • < ,.гп... ~arn Ут = Ьт1 Ь/П2 • ■ > . ^nis • • • Ьтп где Ъ^=а^аГ8—aisarj причем все элементы таблицы следует разделить на ars. Таким образом, один шаг жорданова исключения *) с раз¬ решающим элементом ars переводит таблицу (1.2) в новую таблицу (1.3) по схеме, состоящей из следующих пяти правил: 1) разрешающий элемент заменяется единицей; 2) остальные элементы разрешающего столбца ($-го) остаются без изменения; 3) остальные элементы разрешающей строки (r-й) меняют лишь свои знаки; 4) «обыкновенные» элементы btj (l^r, (т. е. эле¬ менты, не принадлежащие разрешающей строке или столбцу) вычисляются по формуле 5) все элементы новой таблицы делятся на разрешающий элемент ars (что в (1.3) изображено символически делением всей таблицы на ars). Пример. Для таблицы х2 *3 1 —2 3 —1 1 2 2 —1 - -1 *) Здесь и в дальнейшем слово «обыкновенное» опускается.
12 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ [ГЛ. I один шаг жорданова исключения с разрешающими 2-й стро¬ кой и 3-м столбцом (т. е. меняющий ролями переменные у2 и х3) приводит к таблице Xi х2 У2 У1 = 5 —7 3 х3 = 1 —1 1 Уз = 3 —1 —1 и окончательно — к таблице Xi х2 У2 5 7 3 2 2 2 1 1 1 2 2 2 3 1 1 2 2 2 2. Геометрический смысл. Каждый набор значений хР хп будем рассматривать как координаты точки х(хр .. хп) евклидова n-мерного пространства Rn, а урав¬ нения ^ = ^1 + ^2+ ••• + = ° — как уравнения плоскостей ((м—1)-мерных), проходящих через начало координат. Для каждой точки х' (х', х'^ величина у. (xz) = #zix' + ... -\-ainx'n означает взятое с оп¬ ределенным знаком взвешенное расстояние от точки хг до плоскости y-t = 0, где взвешенное расстояние — это расстоя¬ ние, помноженное на величину (вес) Величину yz(xz) будем называть уклонением точки х' от плоскости (или от уравнения) yz = 0.
§ 2] ПРИМЕНЕНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 13 В прямоугольной системе, заданной п ортогональными координатными плоскостями х1 = 0, хл = 0, каждая точка х(хр .. хл) задается своими п уклонениями от всех координатных плоскостей, т. е. числами xv . .., хп, равными взятым с определенными знаками расстояниям до соответ¬ ствующих координатных плоскостей (веса равны единице). Один шаг жорданова исключения с разрешающим элемен¬ том ars означает замену координатной плоскости —О новой плоскостью уг = 0, вообще говоря, уже не ортого¬ нальной остальным координатным плоскостям, так что в на¬ боре координат (уклонений) каждой точки пространства уклонение от старой координатной плоскости xs = 0 заме¬ няется уклонением от новой координатной плоскости уг = 0. Таким образом, жордановы исключения позволяют от случайно взятой декартовой системы координатных плоско¬ стей перейти к новой системе, в которой координатами точек являются их уклонения от более интересной для той или другой задачи системы плоскостей, причем в новой таблице уклонения точки от всех остальных плоскостей системы (1.1) выражены через ее уклонения от основных плоскостей, расположенных наверху таблицы. Этим объясняется та важная роль, которую играют жор¬ дановы исключения во всех задачах, связанных с уклонениями точек от плоскостей, к которым относятся задачи чебы¬ шевского приближения линейных систем уравнений или нера¬ венств и задачи линейного программирования. § 2. Применение жордановых исключений в линейной алгебре 1. Теорема Стейница. Если все линейные формы системы (1.1) линейно независимы {так что т^п), то, производя точно т соответствующих шагов жорда¬ новых исключений, можно превратить все т зависимых переменных yv . . ут в независимые (т. е. можно их все перебросить на верх таблицы). Действительно, невозможность переброски на верх таблицы части зависимых переменных означала бы, что в строках, соответствующих этим переменным, под оставшимися на верху таблицы независимыми переменными xL стоят нули, т. е. что
14 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ (ГЛ. 1 таблица, например, имеет вид У1 ••• Ук ^+1 ... *1 = сн ...Clk cl,k+l • • • <m *к = Ск1 • • • ^kk ck, k+l • ■■Ckn Ук+1 = ck+1, 1 ..• ck+ 1 ,k 0 ..0 Ут = cml • • • cmk 0 ,. 0 Но тогда все оставшиеся зависимые переменные ул+Р ..утп являются, очевидно, линейными комбинациями переброшен¬ ных на верх таблицы переменных ур yk, что противо¬ речит условию линейной независимости всех ур ут. 2. Обращение матриц. Пусть в системе (1.1) т = п и матрица А = ||aZy|| этой системы в таблице (1.2) не выро¬ ждена*), так что все линейные формы системы (1.1) линейно независимы. Произведем над таблицей (1.2) последовательно п шагов жордановых исключений для превращения всех зави¬ симых переменных ур ..., уп в независимые. Окончательная таблица после перестановки (если потребуется) некоторых строк и некоторых столбцов примет вид Ji У2 • ••Уп Xl = cn Cj2 . . .. cln x2 =-• C21 C22 • < • • C2n cn\ cn2. crm и матрица этой таблицы, обозначаемая является обрат¬ ной для матрицы А. Пример. Пусть дана невырожденная матрица / 1 —2 3\ Л = (-1 1 2|- \ 2 —1 -1/ *) То есть определитель hi • • • am ln\ * 1 • • ann отличен от нуля.
§ 21 ПРИМЕЧАНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 15 рассматриваем таблицу *1 х2 *3 У1 = и —2 3 У 2 = —1 1 2 Уз = 2 —1 —1 Сделав один шаг жорданова исключения с разрешающими первой строкой и первым столбцом, получим таблицу х2 *3 1 2 —3 —1 -11 5 2 3 —7 Теперь сделаем еще один шаг жорданова исключения с разрешающим элементом —1, взятым в рамку. Получим У1 У 2 *3 *1 = 1 2 —7 1 1 —5 Уз = 1 3 —8 и после деления на —1 У1 У2 *3 Xi = —1 —2 7 х2 = —1 —1 5 - Уз = —1 -3 I _8j Наконец, поменяв ролями х3 и у3, получим гаолицу У1 У2 Уз *1 = *2 = *3 = —15 7 —3 7 5 1 3 1
16 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ [ГЛ. I и окончательно У1 У2 Уз 1 5 1 8 8 8 3 7 5 8 8 8 1 3 1 8 8 8 На этом бьПисления заканчиваются, и обратной будет матрица 1 5 7 8 8 8 л-2 = 3 7 5 8 8 8 1 3 1 8 8 8 Обычно в окончательно полученной матрице приходится еще переставлять некоторые строки (столбцы), если некоторые разрешающие элементы не были диагональными. 3. Вычисление ранга матрицы. Жордановыми исключе¬ ниями удобно пользоваться для вычисления ранга прямо¬ угольной матрицы fa\\ а\2 • • • а\п \ ^4 __ [ а2{ а22 • • • а2п ] ф ат2 • • • атп/ Для этого достаточно составить таблицу • • хп У1 = ап • .. аХп ат\ • • • атп и путем последовательных шагов жордановых исключений перебросить наверх максимально возможное число зависимых переменных, пока не придем к таблице, к которой этот
§2J ПРИМЕНЕНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 17 процесс больше неприменим, т. е. к таблице, например, вида У1 •••Ук xk +1 ■ • xn *1 = *11 ... bik ^1, k + 1 • ■ • bin = bki • • • bkk bk, k + 1 • • • ^kn Уй+1 = bk+i, i • • • bk+i, k 0 .. 0 Ут ’ ' = •• • ^mk 0 .. 0 Ясно, что ранг матрицы А, как максимальное число ее линейно независимых строк, равен числу переброшенных на верх таблицы уу. Кроме того, таблица содержит коэф¬ фициенты линейной зависимости остальных у у от оказавшихся наверху. Пример. Определим ранг матрицы /2 -1 3 4\ А = 1 0 2 —3 . \5 —2 8 5/ Имеем *1 *2 *3 *4 У1 = 2 — 1 3 4 y2 = 1 1 0 2 —3 Уз = 5 —2 8 5 После двух шагов жордановых исключений, сначала с раз¬ решающими второй строкой и первым столбцом, а затем— первой строкой и вторым столбцом, получим У2 У1 хз x4 x2 = 2 —1 1 10 *i = 1 0 —2 3 Уз = 1 2 0 0 Оставшееся у3, очевидно, невозможно перебросить наверх. Максимальное число линейно независимых строк у нас две, так что ранг матрицы А равен двум. 2 С. И. Зуховицкий, Л. И. Авдееву
18 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ [ГЛ. I Из полученной таблицы видно, что у3 является линейной комбинацией у2 и yj с коэффициентами 1 и 2: Уз = УгН” 4. Система п линейных уравнений с п неизвестными. Для решения системы п линейных уравнений с п неизвест¬ ными а1\Х\Л~ а12Х2~Ь" ••• ainXn~ а1 (^=1> •••» я)» (1-4) где ранг матрицы ||aZy|| равен п, можно указать разные варианты применения жордановых исключений. 1) Первый способ. Запишем систему (1.4) в виде *1 х2 . ах = а12 • .. ахп ат ап2 • • • «пл Проделав последовательно п шагов жордановых исключений, после возможных перестановок строк и столбцов получим Л | $2 • • • 2) Второй способ. Перепишем систему (1.4) в виде *1 х2 . .. хп 1 0 = а11 л12 • < •. а1п — 01 0 = ап\ аП,2 • • •• апп — 0Д Произведя последовательно п шагов жордановых исклю¬ чений с разрешающими столбцами, отличными от столбца свободных членов, и вычеркивая после каждого шага столбец коэффициентов под переброшенным на верх таблицы нулем, т, е. разрешающий столбец, получим
§ 2] ПРИМЕНЕНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 19 окончательное решение в виде 1 *1 = £4 Пример. Рассмотрим систему 2Х|—}—2^2— |— *^4— 4 = 0, 4x1-|-3x2— Хз~|“ 2х4— 6 = 0, 8xj + 5х2 — Зх3 + 4х4 — 12 = 0, Эх* —|— 3^2 — 2х3—{— 2х4 — 6 = 0. Запишем ее в виде *1 х2 *3 х4 1 0 = 2 2 —1 1 1 1 — 4 0 = 4 3 —1 2 — 6 0 = 8 5 —3 4 —12 0 = 3 3 —2 2 — 6 Сделав один шаг элементом а14=1 получим таблицу жорданова исключения с разрешающим и вычеркнув разрешающий (4-й) столбец, xt х2 *3 1 х4 = —2 —2 1 4 0 = 0 —1 м 2 0 = 0 —3 1 4 0 = —1 —1 0 2 Следующий шаг сделаем с разрешающими второй строкой и третьим столбцом. После вычеркивания разрешающего 2*
20 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ (ГЛ. I столбца получим Xj х2 1 х4 = Х3 = о = о = —1 1 —1 —1 Третий шаг произведем с разрешающими 4-й строкой и 2-м столбцом, что даст *1 1 х4 = —1 0 х3 = —1 0 0 = и —2 х2 = —1 2 После четвертого шага найдем окончательно 1 х4 = —1 А'з = —1 Х1 = 1 Л*2 = 1 3) Метод Гаусса. Метод Гаусса отличается от пре¬ дыдущего лишь тем, что после каждого шага жорданова исключения вычеркивают не только разрешающий столбец, но и разрешающую строку, выписывая отдельно выражение для соответствующего На последнем шаге найдем значе¬ ние одной из неизвестных, а значения остальных вычисляются последовательной подстановкой уже полученных неизвестных в выписанные выражения для xi (с конца к началу).
§ 21 ПРИМЕНЕНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 21 Пример. Решим методом Гаусса пример *1 х2 *3 х4 1 0 = 2 2 —1 1 — 4 0 = 4 3 —1 2 — 6 0 = 8 5 —3 4 —12 0 = 3 3 —2 2 — 6 решенный выше, в п. 2). Сделав один шаг жорданова исключения с разрешающими первой строкой и четвертым столбцом и вычеркнув затем эту строку и столбец, получим таблицу *1 *2 *3 1 0 = 0 —1 1 2 0 = 0 —3 1 4 0 = —1 —1 0 2 и отдельно выражение для х4: х4 = — 2xj — 2х2~4~ —}— 4. Следующий шаг сделаем с разрешающими первой строкой и третьим столбцом. После их вычеркивания получим *1 Х2 1 0 = 0 —2 2 0 = —1 -1| 2 и выражение для х3: х3 = х2 — 2. К последней таблице применим шаг жорданова исклю¬ чения с разрешающими второй строкой и вторым столбцом. Получим окончательную таблицу 1 0=2 —2 и выражение для х2: х2 — — х1~^~ 2.
22 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ [ГЛ. I Из последней таблицы находим Xj = 1. Подставляя значение в выражение для х2, получим х2 = 1 и далее х3 — — 1 и х4 = — 1. 5. Общая система линейных уравнений. Рассмотрим те¬ перь общую линейную систему «Л*1 + й<2*2 + ••• —й/ = ° (Z==1 т)< (1-5) и пусть ранг матрицы коэффициентов ||aZy|| равен г. Запи¬ шем систему (1.5) в виде *1 х2 .. ,. хп 1 У1 = аи <212 . • • а\п Ут~ ат\ ат2 • • • атп ~‘!т Как уже отмечалось в п. 3, над таблицей (1.6) можно произвести лишь г последовательных шагов жордановых исключений. Получится, например, таблица вида У1 ... Уг *г+1 • • • хп 1 х{ = <41 .. . С1г Г+1 • .. Сщ <ч хг = СГ1 ... сгг сг»г+1 • •• Сгп сг У г-] 1 = СГ4-1, 1 ' • • • сг+1, г 0 .. 0 СГ+1 Ут = cml ... стг 0 .. 0 ст Система (1.5), очевидно, совместна тогда и только тогда, когда для некоторой системы значений хр ...» хп все уР ..., ут равны нулю, что произойдет тогда и только тогда, когда £г+1 = сг+2= ... =ст==0. В этом случае, вычеркивая первые г столбцов (так как yj = ... = уг = 0) и считая хг+Р ..., хп параметрами, принимающими произ¬ вольные значения, мы для любой системы значений пара¬ метров хг+1 = #г+р .... хп = Ьп получим из (1.7) соответ¬ ствующую систему значений остальных неизвестных хР ..., х/. г+А+1+ ••• +fi/Ai + £p Хг = Crt Г + 1^Г+1 4“ ••• 4~ rtfin 4“ СГ
§ 2] ПРИМЕНЕНИЕ В ЛИНЕЙНОЙ АЛГЕБРЕ 23 Элементы civ ci2, cir (i = г -]- 1, r4~2, ..., nt) таблицы (1.7) являются коэффициентами той линейной ком¬ бинации первых г уравнений, которая равна /-му уравнению. Замечание. В том случае, когда нас не интересуют коэффициенты линейной зависимости между уравнениями си¬ стемы, следует, как в 2) п. 4, вычеркивать после каждого шага жорданова исключения разрешающий столбец, что зна¬ чительно сократит вычисления. Продемонстрируем все сказанное примерами. Пример 1. Рассмотрим систему У! — 2xj 4» х2 + 4х3 — 4 = 0, у2 = Xj — Зх2— х34~5 = 0, у3 = 3xj — 2х2 4~ 2х3 4“ 1 === 0, у4 = 5хх — х2 -|- 6х3 — 3 = 0. Запишем эту систему в виде таблицы и подвергнем ее трем шагам жордановых исключений, заключая каждый раз раз¬ решающий элемент в рамку. Получим *1 *2 *3 1 У2 х2 *3 1 У1 = 2 1 4 —4 У1= 2 7 6 —14 У 2 = 1 —3 —1 5 > Xi = 1 3 1 —5 Уз = 3 —2 2 1 Уз = 3 7 5 —14 У 4 = 5 —1 6 —3 у4= 5 14 11 —28 0 0 0 У2 У\ 1 У2 У1 Уз 1 2 1 6 8 5 6 х2 - 7 7 7 2 х2- 7 7 7 2 1 3 11 1 10 8 11 1 — у 7 7 —> X, = ✓V J 7 ‘ 7 7 7 Уз ~ 1 1 1 -11 0 Х3 = 1 1 —1 0 У4 = 1 2 —1 0 У 4 = 0 1 1 0
24 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ [ГЛ. I Система имеет единственное решение хт=1, х2 = 2, х3 = 0. Из последней строки следует У4~.У1 + Уз’ так что четвертое уравнение является линейной комбинацией первого и третьего с коэффициентами 1 и 1. Пример 2. Рассмотрим систему yj = 2xj — х2 + 4х3 — 2 = 0, у2 === Xi~j—2x2— Зх3-|-4 = 0, у3 = 4х^ ^*^2 — %х3 —|— 6 = 0. Имеем *1 х2 *3 1 У2 х2 Хз 1 У1 = 2 —1 4 —2 У, = 2 | —5 10 —10 У2 = 1 2 —3 4 > Xi= 1 —2 3 —4 Уз -= 4 3 —2 6 Уз- 4 -5 10 —10 У2 У1 *з 1 х2 = Уз = 2 5 1 5 2 —2 1 2 —1 0 "5 2 1 0 0 Считая х3 параметром, принимающим произвольные значения, получим бесчисленное множество решений системы: х2 = 2х3— 2, причем у3 = у1Ч-2у2. Пример 3. Рассмотрим систему У1 = Xj —|— 2х2 —Зх3 —х^ — 1 = 0, у2 = Xj— х2 —}— 2х3 — х^ —J— 3=0, у3 = ЗХ| —Зх2 —j— 8х3 —j— х^ —|— 3 = 0
§ МОДИФИЦИРОВАННЫЕ ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ 25 с таблицей *1 х2 *3 *4 1 У1 = 1 2 3 1 — 1 У2 = 1 —1 2 — 1 3 Уз =• 3 3 8 1 3 Сделав два последовательных шага жордановых исклю чений и вычеркнув разрешающие столбцы, получим . Х2 х3 *4 1 х2 х4 1 *1 = —2 —3 —1 1 *1 = 7 5 —11 У2 = —3 —1 —2 4 —> х3 = —3 —2 4 Уз = —3 —1 —2 6 Уз = 0 0 2 Система несовместна, так как у3 = 2^=0. § 3. Модифицированные жордановы исключения 1. Определение. В некоторых приложениях вычисли¬ тельного аппарата жордановых исключений, например в сим- плекс-методе (см. гл. II), важно, чтобы элементы разрешаю¬ щей строки сохраняли знаки, а элементы разрешающего столбца изменяли их на противоположные. В этих случаях вместо обыкновенных пользуются так называемыми модифи¬ цированными жордановыми исключениями, по которым си¬ стему (1.1) записывают в виде У» = —«л(—^1) —«»2(—^2)— ••• (I-1') {I — 1 т) и составляют таблицу — Х2 . Xs . . У1 = «11 «12 • ■ «is •• ain Уг = «Г1 «Г2 - • . &г$ . < >• arn Ут = «ml «/7/2 .. • ams • 1 • • amn где для удобства обозначений положено а/л> == — aib G=1 mik=l..... п).
26 ЖОРДАНОВЫ ИСКЛЮЧЕНИЯ (ГЛ. I Один шаг модифицированного жорданова исключения с раз¬ решающим элементом аГ5 означает переход к новой таблице — *1 — х2 ... ~~~ У г • У1 = ^11 ^12 .. —«15 .« • • ^\п xs = «л «Г2 .< 1 .. •• агп Ут — Ьтл Ът2 • • • anis • • • Ьтп которая получается из предыдущей по правилам 1) — 5) обык¬ новенного жорданова исключения, с тем лишь изменением, что правила 2) и 3) меняются ролями, а именно: 2) остальные (кроме разрешающего) элементы разрешаю¬ щей строки остаются без изменения; 3) остальные элементы разрешающего столбца меняют лишь свои знаки. 2. Пример. Систему У1 = 2хт— х2-]-Зх3, у2 = — х1-+-4х2 — 2х3, у3 — 5х1-\-2х2 — 4х3 запишем в виде таблицы У2 = Уз — и произведем один шаг модифицированного жорданова ис¬ ключения с разрешающими второй строкой и третьим столб¬ цом. Получим — — х2 — у2 — х{ — х2 — х3 — 2 1 — 3 1 —4 | 2 — 5 — 2 4 1 е 3 У1 = 2 “5 2 1 о 1 х3 = 2 ~2 2 Уз = — 7 6 —2
ГЛАВА II ОСНОВНАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ И ЕЕ РЕШЕНИЕ СИМПЛЕКС-МЕТОДОМ § 1. Основная задача линейного программирования 1. Формулировка основной задачи. Основная задача линейного программирования формулируется так: Дана линейная форма {целевая функция) z — РЛН- р2х2+ ... +р„х„ (2.1) и задана система т> п линейных неравенств (огра¬ ничений) аЛх14” ai2x2~h ••• ainXn al G=l» •••» W)» которую перепишем в виде У^~ апх1 — ai2x2 — ... — alnxn -|- at 0 (2.2) (/ = 1 т). Найти максимум (минимум) формы (2.1) при выполне¬ нии условий (2.2). Другими словами, среди решений системы (2.2) (образую¬ щих многогранник 2) надо отыскать такое, для которого форма (2.1) принимает наибольшее (наименьшее) значение. Как будет показано в следующей главе, эта задача служит математической моделью многих важных практических задач. 2. Геометрическая интерпретация. Основную задачу линейного программирования можно легко интерпретировать, геометрически. Каждое неравенство ^== —а.1Х1— ...
28 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II системы (2.2) определяет в евклидовом n-мерном простран¬ стве полупространство, состоящее из точек x(xv .... хп), расположенных «по одну сторону» от плоскости уг = —апХ1— ... —aMx„4-af = 0 и на самой этой плоскости. Точки же, принадлежащие всем полупространствам (2.2) (т. е. множество всех решений си¬ стемы (2.2)) как пересечение выпуклых множеств, образуют некоторый выпуклый многогранник 2. Значение функций Z(X) = P1X1+ ... Н-РЛ в точке x'(x'v ...» х'^ можно рассматривать как уклонение точки х' (*', ...» х'п) от плоскости Р1Х1 + ••• РпХп = ®> (*) понимая (как в п. 2 § 1 гл. I) под уклонением данной точки от этой плоскости число, которое получим, подставив в левую часть уравнения (*) вместо xv . .., хп координаты х' х' этой точки. Так, например, уклонение точки х(1, —2, 5) от плоскости 2xj — х2 —J— Зх^ = О равно числу 2-1 — 1 • (—2) -|- 3 • 5 = 19. Уклонение точки х от плоскости (*) пропорционально расстоянию от точки х до этой плоскости. Таким образом, геометрический смысл задачи линейного программирования заключается в отыскании в многогран¬ нике 2 точки, которая наиболее (наименее) уклонена от пло¬ скости (*). В случае двумерного пространства имеем картину, изо¬ браженную на рис. 1—4. Здесь многогранником 2 является многоугольник, пло¬ скостями yz =— anxi— ai2x2~\~ ai = ® — прямые, полупро¬ странствами У/0 — полуплоскости (на рисунках они отме¬ чены штриховкой). Ясно, что решением задачи линейного программирования будет какая-то вершина многогранника 2. На рис. 1 решение задачи максимизации формы (2.1) дает вер¬ шина а задачи минимизации этой формы — вер¬ шина причем эти решения единственны.
§ 1] ОСНОВНАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 29
30 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. I] Рис. 3. Рис. 4.
§ 1] ОСНОВНАЯ ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 31 На рисунках 2 — 4 приведены: случай существования бесчисленного множества решений (рис. 2), случай неогра¬ ниченности функции z на 2 (рис. 3) и, наконец, случай отсутствия решения (рис. 4). Другую геометрическую интерпретацию задачи линейного программирования получим, если будем рассматривать эту задачу в (л-|-1)-мерном пространстве переменных xv ..., хп, z. в котором линейная форма ^ = Pi*i + ••• -\-Рпхп (2-1) является уравнением плоскости (проходящей через начало координат). Система же неравенств — azlXi— ... — aMx„ + az>0 (Z=l т) (2.2) определяет в этом пространстве некоторую выпуклую призму, гранями (n-мерными) которой служат плоскости — апХ1— ... —амхл + ^ = 0 (/= 1 т), параллельные оси Oz. В «горизонтальной» плоскости z = 0, т. е. в n-мерном пространстве переменных xv ..., хп, эти плоскости ограничивают многогранник 2, на который проек¬ тируется часть плоскбсти (2.1) — «срез», вырезаемый приз¬ мой (2.2), так что 2 можно рассматривать как область определения линейной функции (2.1). Надо найти ту из вершин 2, в которую проектируется вершина «среза» с наи¬ большей (наименьшей) координатой (в трехмерном простран¬ стве— аппликатой) z. На рис. 5 изображение дано для случая п = 2. «Срез» заштрихован. Наибольшее на 2 значение линейная функция (2.1) достигает в вершине Д', в которую проектируется вер¬ шина А «среза» с наибольшей аппликатой. 8. О методе решения задачи линейного программиро¬ вания. Нетрудно понять, что обычный метод классического математического анализа для решения задач на условный экстремум неприменим к рассматриваемой задаче. Дело в том, что линейная форма (2.1), определенная в области 2, задан¬ ной неравенствами (2.2) (см. рис. 5), достигает своего наи¬ большего и наименьшего значений на границе (в вершинах) этой области (т. е. в точках, в которых частные производ¬ ные, вообще говоря, отличны от нуля); методы же диффе¬ ренциального исчисления дают возможность отыскать экстре-
32 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СЙМПЛЁКС-МЕТОД (ГЛ. И мальные точки, лежащие внутри области определения функ¬ ции, и рассчитаны на случай небольшого числа переменных и на ограничения, заданные в виде уравнений, а не нера¬ венств. Перебор значений функции (2.1) во всех вершинах многогранника 2 (2.2) практически неосуществим ввиду огромного, обычно, числа этих вершин. Рис. 5. Основным методом решения общей задачи линейного про¬ граммирования, позволяющим преодолеть эти затруднения, является так называемый симплекс-метод Данцига [17], под¬ робное описание которого дано в §§ 2, 3. Симплекс-метод состоит из алгорифма отыскания какого- нибудь опорного среди решений системы линейных не¬ равенств (2.2), т. е. решения — вершины многогранника 2 (или из установления факта несовместности системы), и из алгорифма последовательного перехода от полученного уже опорного решения системы (2.2) к новому опорному реше¬ нию, для которого форма (2.1) имеет большее (меньшее) значение (до получения максимизирующего (минимизирующего), т. е. оптимального решения). Основу вычислительной схемы симплекс-метода составляют модифицированные жордановы исключения.
ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 33 § 21 § 2, Симплекс-метод для отыскания опорного решения системы линейных неравенств Для большей четкости будем этот метод излагать по пунктам. 1. Переход к таблице. Форму (2.1) и условия (2.2) записываем в виде следующей таблицы: — Xj • — х2 .. • ~хп 1 У1 = а\\ #12 • .. а1п Ут = атл ат2 • • ат ат z = — Р1 — Р2 • ->—Рп 0 2. Исключение координат (переменных) хр .... хп. Пусть ранг матрицы ||aZ/-|| коэффициентов системы (2.2) равен п. Тогда (см. п. 1 § 2 гл. I) с помощью п последо¬ вательных шагов модифицированных жордановых исключений можно будет перенести все Xj из верхней строки таблицы (2.3) в ее левый столбец и на их место поставить соответствую¬ щие yz. При этом никаких ограничений на выбор разре¬ шающих элементов не налагается, лишь бы они были от¬ личны от нуля. Для удобства записи можно считать, что на верх таблицы переброшены ур . . ., у/2, так что получена, например, таблица — У1 ~~ У 2 • —Уп 1 Xi *1! Ь\2 ■ ■ tl хп = Ьп\ ьп2 ■ ■ Ьцп Упл Ьц 1 1,1 1, 2 • .Ьп+\,п Ь пл 1 Уг Ьг\ Ь Г2 Ьгп ьг Ут 1>ПЧ Ьщ2 • • Ьтп Ьт Z = д2 •• Яп Q 3 С. И. Зуховицкий, Л. И. Авдеева
34 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. И Выражения для замененных xv хп понадобятся лишь после получения решения, чтобы выразить его в старых координатах. Поэтому выписываем их отдельно: *1 = — ^11У1 — • •• — bXnyn + bv хп — — —Ьп2у2— ■■■ —Ьппуп~\~Ьп, и продолжаем в дальнейшем работать лишь с оставшейся частью таблицы — У1 • —Уп 1 1 • • • Ьц 1 f 5 . . bn+\, n bn + \ Ьг\ brs .. brn br Ь/п\ • • • • ^tns ' • ^mn brn Qs • qn Q Так как по условию (2.2) ут 0, ..., то мы пришли к следующей обычной формулировке задачи линей¬ ного программирования: Дана линейная функция х^ — д^ — ЯчУч— —ЯпУп + Q (2.1') и система неравенств (ограничений) У1 = — Mi — Ь[2У2 — ... — biny„ + > о (/ —..., /п), У1>0, 3’2>0 У„>0. (2.2') Из всех решений системы (2.2х) найти такое, которое максимизирует линейную функцию (2.1х). Замечание. Часто в систему (2.2) включаются нера¬ венства х} 0, . . ., хп 0. В этом случае, очевидно, не надо исключать координаты хр ..., хп и можно после п. 1 приступить сразу к пп. 3, 4. Если (2.2) содержит, на¬ пример, х^О, ..., x/(,J>0, где k < п, то следует исклю¬ чить лишь координаты xk+v ..., хп. Для отыскания опорного решения после получения та¬ блицы (2.4х) следует различать случаи отсутствия или наличия в этой таблице отрицательных свободных членов.
§ 2j ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 35 3. Все свободные члены неотрицательны. Пусть b +1 О’ • • • ’ Ьт О- В этом случае таблица (2.4х) дает возможность получить сразу одно из опорных решений системы (2.2х), а следовательно и системы (2.2). Это будет решение (вершина многогранника 2), определяемое равен¬ ствами У1 = 0, у2 = 0, .... у„ = 0. так как тогда и, следовательно, все yz неотрицательны и удовлетворяется система (2.2). 4. Правило выбора разрешающего элемента при отыскании опорного решения (некоторые свободные члены отрицательны). Пусть в таблице (2.4х) есть хотя бы один отрицательный свободный член, например, пусть Ьг < 0, где г^п+1. Теперь значения = ••• = ° не дают никакого решения системы (2.2х) (следовательно, и (2.2)), так как при этих значениях имеем уг — Ьг < 0 *). Симплекс-метод для отыскания опорного решения озна¬ чает специальное правило для перехода от данной вершины у1==у2= ... = ул = 0 к такой соседней, которую отделяет от многогранника 2 меньшее число плоскостей, т. е. для которой в соответствующей таблице содержится меньшее число отрицательных свободных членов. Для осуществления перехода от вершины yj = ... = уп = О к указанной соседней производим шаг модифицированного жорданова исключения, выбирая разрешающий элемент сог¬ ласно следующему правилу. Правило выбора разрешающего элемента**). 1) Выбираем строку с отрицательным свободным членом (пусть, например, Ьг < 0). Если среди коэффициентов этой строки нет отрицательных, то система (2.2) несо¬ вместна. *) Они определяют лишь точку пересечения п плоскостей У1 = 0, ..., у„ = 0, т. е. вершину, лежащую, однако, вне много¬ гранника Q. **) Обоснование см. ниже, в п. 6. 3*
36 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II 2) Если же среди коэффициентов рассматриваемой строки есть отрицательные, то берем какой-нибудь из них (пусть brs < 0) и столбец, содержащий этот коэффициент, берем в качестве разрешающего. 3) Выбор разрешающей строки производится так: вы¬ числяем все неотрицательные отношения ^-^>0 свободных *0 членов к соответствующим отличным от нуля коэффициентам разрешающего столбца, находим среди них наименьшее и элемент &/о5, для которого оно достигается, берем в ка¬ честве разрешающего. bt bi В случае вырождения, когда min — 0, мы I IS I qS берем biQS в качестве разрешающего лишь при Ь^ > 0 *). Если в результате применения предыдущего правила раз¬ решающим оказался коэффициент brs, то после шага моди¬ фицированного жорданова исключения новый свободный член Ьг рассматриваемой r-й строки станет уже положй- тельным: Если же разрешающим оказался коэффициент bts, где 1=/= г, то новый свободный член Ьг нашей r-й строки останется еще отрицательным, так что наша цель освобожде¬ ния от отрицательного свободного члена пока не достигнута. В этом случае продолжаем работать с этой (r-й) строкой, применяя к ней предыдущее правило и производя шаги модифицированных жордановых исключений до тех пор, пока либо не установим несовместность системы (2.2) (все коэффициенты этой строки станут неотрицательными), либо не избавимся от отрицательности ее свободного члена (раз¬ решающий элемент окажется из этой строки)**). *) Если в рассматриваемом случае (Ьг < 0, — 0), кро¬ ме brs < 0, имеем brj < 0, причем Ь^ <0, то лучше в качестве разрешающего брать не s-й столбец, а у-й. Тогда /0-я строка не будет разрешающей, а ею окажется строка с отличным от нуля свободным членом (если Ь-^— единственный нуль). **) О возможности при этом так называемого зациклива¬ ния см. ниже, в § 6.
ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 37 § 2] Так поступаем последовательно со всеми строками, в которых свободные члены отрицательны. После конечного числа шагов либо установим несовместность системы (2.2), либо придем к таблице, не содержащей отрицательных сво¬ бодных членов, т. е. получим опорное решение нашей системы, приравняв нулю все у, оказавшиеся на верху таблицы. Замечание. Если в некоторой строке, содержащей, например, yk, свободный член bk равен нулю, а все коэф¬ фициенты этой строки неотрицательны, то при отыскании опорного решения можно вычеркнуть все столбцы, содер¬ жащие положительные из этих коэффициентов, а также саму строку. Действительно, в рассматриваемом случае &-е урав¬ нение удовлетворяется лишь при равенстве нулю неизвестных над положительными коэффициентами, следовательно, и yk равно нулю. 5. Примеры. Пример 1. Найти какое-нибудь опорное решение системы = — х1-|-2х2 — Зх3— 1^0, у 2—- — Зх | —|- 2 0, Уз = — 5-V| —4х2 — *^з — 10 0, у4 = — 3%!— х2 +4^0, х1^0, х2^>0, х3^0. В этом случае (см. замечание в конце п. 2) не надо исключать координаты. Составим таблицу — *1 — х2 — *3 1 У1 = 1 —2 3 —1 у2 = 3 0 4 2 Уз = 5 —4 1 —10 у4 = 3 1 0 4 Первая и третья строки таблицы содержат отрицательные свободные члены. В первой строке есть один отрицательный коэффициент —2. Сравниваем все неотрицательные отношения
38 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. И свободных членов к соответствующим коэффициентам вто рого столбца: —1 —10 4_ —2 ’ —4 ’ 1 * Меньшее из них — первое, поэтому коэффициент —2 будет разрешающим. После шага модифицированного жорданова исключения получим таблицу ~-И — — *з 1 1 1 3 1 А'2 — 2 2 2 2 У 2 — 3 0 4 2 Уз-= 3 1 “2 —5 —8 7 1 3 7 У4 = 2 2 2 2 в которой остался еще один отрицательный свободный член —8. Превратим его в положительный, сделав шаг модифицированного жорданова исключения с разрешающим элементом —2, взятым в рамку, так как из двух положи¬ тельных отношений —8 7 1 —2 И 2’2 первое меньше. Из полученной таблицы — *1 — Уз — Хз 1 5 1 1 5 4 4 4 2 3 0 4 2 3 1 5 4 2 2 2 17 1 1 3 4 4 4 2
ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 39 § 2] которой нет отрицательных свободных членов, найдем опорное решение нашей системы. Полагаем Х1 — А’з= хз= О- Тогда 5 х2=у. Мы получили, таким образом, следующее опорное реше¬ ние: 5 Xj — О, X2 = -^, х3=0. Пример 2. Найти опорное решение системы У| = — Xj — 2х2— Зх3 + 6 О, у2~~ 2xj —|— х2 — Зх3 —12 0, Уз — Xj + Зх2 + 4х3 4-12^0, У4= *1+ х2-\- х3 7^>0, Xji>0, х2^0, х3>0. Составляем таблицу — х2 — х3 1 У1 == 1 1 2 3 6 у2 = 2 —1 3 12 Уз = —1 —3 —4 12 у4 = —1 —1 —1 —7 и приступаем к отысканию опорного решения системы, не производя исключения координат. Четвертая строка содержит отрицательный свободный член —7. Просматриваем, например, первый столбец коэф¬ фициентов над отрицательным коэффициентом —1 этой строки и составляем неотрицательные отношения свободных членов к коэффициентам этого столбца: А ~7 1 ’ — 1 ’ Первое отношение наименьшее, так что разрешающим эле¬ ментом будет 1 из первой строки.
40 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II В результате шага модифицированного жорданова исклю¬ чения с этим разрешающим элементом получаем таблицу — У1 — ^2 —*3 1 *1 = 1 2 3 6 у2 = 2 3 9 24 Уз = 1 —1 —1 18 у4 = 1 1 2 —1 в которой еще остается отрицательный свободный член —1, но строка, в которой он находится, не содержит отрица¬ тельных коэффициентов, следовательно, система несовместна. 6. Обоснование правила выбора разрешающего эле¬ мента. Наличие отрицательного свободного члена, например Ьг < 0, означает геометрически, что точка (вершина) У1 = У2 = ... =у„ = 0 лежит вне многогранника 2 и отделена от него плоскостью уг — 0 (если он непустой) либо что система (2.2Z) несов¬ местна и, следовательно., 2 — пустое множество. Если все свободные члены в (2.4Z) отличны от нуля, то через вершину yj = ... = уп = 0 проходят точно п пло¬ скостей у1==0, ..., уп = 0 и, следовательно, точно п ребер, каждое из которых образуется в пересечении п — 1 из этих плоскостей. Если же некоторые из свободных членов равны нулю, то через рассматриваемую вершину, кроме плоскостей У] = 0, уп = 0, проходят еще и те плоскости yz = 0 (/ > п), у которых свободные члены равны нулю. В этом случае, называемом вырождением (подробно об этом см. ниже, в § 6), через нашу вершину проходит больше чем п ребер. Параметрическое уравнение любого «верхнего» ребра, т. е. ребра, полученного в пересечении п—1 из плоскостей У! — 0, . . у/2 = 0, оказавшихся на верх)г таблицы, получим, приравняв переменному параметру /^0 один из этих у, а остальные приравняв нулю. Например, = у2 = ... = у„ = 0 — уравнение ребра, образованного плоскостями у2 = 0, ... .... ул —0.
ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 41 § 2] Каждый шаг алгорифма симплекс-метода означает дви¬ жение из полученной вершины = ... = уп = 0 по одному из выходящих из нее ребер в направлении к отде¬ ляющей плоскости уг = 0 до тех пор, пока мы впервые не встретимся с некоторой плоскостью yL = 0 (i > п), т. е. не попадем в соседнюю вершину. Такое направление движе¬ ния объясняется тем, что мы ищем опорное решение, т. е. какую-нибудь вершину многогранника 2, и есте¬ ственно стремление от шага к шагу уменьшать число пло¬ скостей — 0, отделяющих уже полученную вершину от многогранника 2. При движении по ребру У1= ■ • • =ys_i = 0, ys = t>0, ys+1= . . . =Уп = 0 (2.5) имеем Уг — — и, чтобы движение происходило в нужном направлении к от¬ деляющей плоскости уг = 0, необходимо и достаточно, что¬ бы значение | уг | уменьшалось при выходе из вершины у1== ... = у/1==0, в которой |уг| = рг|, т. е. чтобы вы¬ полнялось неравенство I-V + M < IM при достаточно малом t > 0. Так как Ьт < 0, то предыдущее неравенство означает, что —(—brst-\-b^<.—Ьг или что —brst-\-br> Ьг и, в силу положительности /, brs < 0. Таким образом, дви¬ гаться следует по ребру (2.5) тогда и только тогда, когда s-й столбец (под отличной от нуля координатой ys = t) со¬ держит отрицательный коэффициент нашей r-й строки. Если в г-й строке нет отрицательных коэффициентов, то движение к отделяющей плоскости уг = 0 невозможно ни по одному из ребер, и это является признаком несовмест¬ ности (неразрешимости) системы линейных неравенств (2.2), т. е. многогранник 2 пустой. В этом случае имеем Уг = ~Ьг}у1 — Ьг2у2 — ... —brnyn + brCbr<Q и неотрицательность ур . . ., уп несовместима с требованием неотрицательности уг.
42 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. И Пусть теперь brs < 0. Тогда движение по ребру (2.5) допустимо до возможной встречи впервые с плоскостью у. = 0 (/> м), не отделяющей нашу вершину от 2 (т. е. > 0). Если же встреча с такой плоскостью невозможна (рис. 6), то можно продвигаться по ребру до последней встречи с плоскостью yz — 0, отделяющей нашу вершину А от 2 (хотя бы одна такая плоскость существует, так как, напри¬ мер, уг = 0 является такой плоскостью). Наиболее простой вариант алгорифма симплекс-метода мы получим, если всегда будем двигаться из данной вершины по ребру (2.5) лишь до первой встречи с новой плоскостью (отделяющей или неотделяющей). Перейдем к описанию вычислительной процедуры этого движения. Так как при встрече с плоскостью у^ = 0 будет 0 — — + то bis + 0 и А bis *о>О, так что bL и bis должны иметь одинаковые знаки, и мы, очевидно, впервые встретим плоскость у. = 0, для которой отношение — tQ имеет наименьшее положительное зна- iqS чение. Такое отношение обязательно найдется, так как
ОТЫСКАНИЕ ОПОРНОГО РЕШЕНИЯ 43 § 2] jLn- > 0. Поэтому для получения новой вершины делаем шаг модифицированного жорданова исключения с разрешаю¬ щим элементом b^s. Тогда новая плоскость yZo = O, которую впервые пересекло ребро (2.5), окажется на верху таблицы вместо плоскости у5 = 0. Все координаты новой вершины равны нулю в новой координатной системе у, у5_р у,0. yi+P уп (в ста¬ рой же системе ур у _р у4„ у+р уп все ее коор- bt \ динаты были равны нулю, за исключением ys = tQ = _-®_ . biQs' bi Если наименьшее положительное отношение т—- полу- чится при biQS < 0, bia < 0 (что желательно), то в результате шага модифицированного жорданова исключения мы перейдем к вершине, которую отделяет от 2 меньшее, чем предыду¬ щую, число плоскостей. Другими словами, число отрица¬ тельных свободных членов в таблице уменьшится, а также уменьшится |£г|. В случае же, когда наименьшее положительное отноше- bi ние ~ достигается при b-hs > 0 и > 0, то, хотя число <0$ отрицательных свободных членов в таблице останется без изменения, мы все же уменьшим |Ьг |, т. е. приблизимся к отделяющей плоскости уг = 0. Пусть теперь имеет место вырождение, т. е. пусть среди свободных членов есть хотя бы один, равный нулю, например bt = 0 (Z > п), так что плоскость yt = 0 проходит через вершину У] = ... =уп = 0. В этом случае при дви¬ жении по ребру (2.5) следует остерегаться выхода в полу¬ пространство yL < 0, т. е. случая, когда при t > 0 будет У[ — bist ~\~bL — — < о* Это возможно лишь при bls > 0, и тогда движение по ребру (2.5) недопустимо. Если же ^,.<0 при Z?z = 0, то для t > 0 получим У1 = —М + = — bist > 0, и движение по ребру (2.5) допустимо, но брать коэффи¬ циент bls разрешающим нет смысла, так как вследствие
44 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. П того, что bt = 0, а значит и / = 0, движения по ребру не произойдет и мы останемся в той же вершине. Взяв же другой разрешающий элемент Ь> , такой, что / = -^->0, и is мы сможем продвинуться по ребру до соседней вершины. Пусть bls > 0. Тогда, если среди остальных (кроме brs) коэффициентов r-й строки совсем нет отрицательных или есть отрицательные, но соответствующие коэффициенты Z-й строки (принадлежащие тем же столбцам) положительны, то ни по одному из верхних ребер движение невозможно. В этом случае следует испытать остальные (не верхние) ребра, которые получим, заменив при помощи одного шага модифицированного жорданова исключения плоскость у5 = 0 плоскостью yt — 0, хотя при этом шаге не совершается никакого движения (/ = 0!), т. е. мы остаемся в той же вершине. Таким образом, после конечного числа испытаний мы либо обнаружим ребро, по которому движение возможно, и выйдем из нашей вершины, либо обнаружим противоречи¬ вость системы ограничений. 7. Другое правило выбора разрешающего элемента. Про¬ цесс продвижения к многограннику Q от вершины, отделенной от него несколькими плоскостями, можно часто ускорить, если поль¬ зоваться следующим, несколько видоизмененным правилом выбора разрешающего элемента: 1) Выбираем строку с отрицательным свободным членом (пусть, например, Ьг < 0). Если среди коэффициентов этой строки нет отрицательных, то система (2.2) несовместна. 2) Если же среди коэффициентов рассматриваемой строки есть отрицательные, то берем какой-нибудь из них (пусть brs < 0) и столбец, содержащий этот коэффициент, берем в качестве раз¬ решающего. 3) Вычисляем все неотрицательные отношения b[lbis свободных членов к соответствующим положительным коэффициентам разрешающего столбца (Ь-( > 0), находим среди них на и мень- ш е е и элемент для которого оно достигается, берем в качестве разрешающего. 0 4) Если таких отношений не оказалось, то находим н а и б о л ь- ш е е из положительных отношений Ь^Ь-^ отрицательных свободных членов к соответствующим отрицательным коэффициентам разрешающего столбца и коэффициент bt s < 0, для которого это наибольшее отношение достигается, берехМ в качестве разрешающего. Приведенное правило легко обосновать по аналогии с тем, как это было сделано для первого. Ограничимся лишь геометриче¬ ской иллюстрацией (рис. 7). При движении из вершины А вдоль ребра АВ по направлению к многограннику Й можно не остана¬
§ 2] отыскание опорного решения 45 вливаться в вершине Рх встречи ребра с первой отделяю¬ щей плоскостью У1=0 (Ьх < 0) (как это рекомендуется первым правилом), а продвигаться дальше до точки В встречи с первой неотделяющей плоскостью у5 = 0 (Ь5 > 0) (как рекомендуется в п. 3) нового правила). Невозможность же встречи с неотделяющей плоскостью озна¬ чает, что среди положительных отношений b-Jbis нет таких, у ко¬ торых bi > 0 и b-ls > 0. Тогда по п. 4) можно двигаться до п о- с л ед ней отделяющей плоскости (у4 = 0 на рис. 8). Это
46 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. 11 будет плоскость, для которой отношение ф- (Ь[ < 0, bis < 0) имеет bis наибольшее значение. Замечание. Из рис. 7 видно, что при движении из вер¬ шины А к многограннику Q можно было остановиться не в точке В, а в точке Р3, если несколько усложнить пункты 3) и 4) второго правила выбора разрешающего элемента. § 3. Симплекс-метод для отыскания оптимального решения основной задачи линейного программирования Пусть рассматривается задача максимизации формы (2.1) Z=Plxl + P2xz + ••• + РпХп при ограничениях (2.2) У/ = - ailx1 — al2x2 — ... — ainxn + > 0 (Z = 1, 2 tri), и пусть после исключения координат и отыскания опорного ; решения получена таблица — У1 У 2 • • • — У 5 • • • У п 1 Ьп+\> 1 Ьц\ 1,2 • ■ • • 1, 5 * ' • • Ьп t 1, п ьп >-1 *Г1 ЬГ2 • • brs ■■ Ьгп Ьг Ьщ\ Ь/П2 • • bms ■ ■ 1>П1П Ьт Q2 • • Qs • • Qn Q так что ^л + 1>0, 6л+2>0, ..., ^>0. В зависимости от знаков коэффициентов ^-строки необ¬ ходимо различать следующие два возможных случая. 1. Все коэффициенты г-строки неотрицательны. Если #2^>0, ..., <7л:>0, то задача линейного програм¬ мирования решена, причем max z = Q и достигается в точке
ОТЫСКАНИЕ ОПТИМАЛЬНОГО РЕШЕНИЯ 47 § 3] Действительно, в этой точке имеем З’пЧ-1 &п + 1 0» • • • » Ут == Ьщ О* т. е. удовлетворяются ограничения (2.2), и так как в любой другой точке многогранника 2 все ур у2, уп неотри¬ цательны, то г=—д1У1— ••• ~qnyn+Q <Q- т. е. Q — максимальное значение z. 2. Правило выбора разрешающего элемента при оты¬ скании оптимального решения (некоторые коэффициенты z-строки отрицательны). Пусть среди коэффициентов 2-строки есть отрицательные, например, пусть qs < 0. В этом случае, очевидно, уже нельзя утверждать, что в точке у»! = ... — уп = 0 значение Q функции z является макси¬ мальным. Действительно, если, например, точка У) = ... . ..=У5_1 —0, у, > 0, у5+1= ... =ул = 0 удовлетворяет ограничениям (2.2) (т. е. yt =— ...» m), то в этой точке z ~ ~ qsys -j- Q > Q. Симплекс-метод для отыскания оптимального решения означает специальное правило перехода от полученной точки yj= ... —уп = 0 (вершины многогранника 2) к той со¬ седней вершине этого многогранника, в которой значение z больше (не меньше) Q; этот процесс продолжается, пока не будет найдена вершина, в которой значение z макси¬ мально, т. е. для которой все коэффициенты 2-строки будут неотрицательны (или пока не будет установлено, что функ¬ ция 2 не ограничена сверху). Чтобы осуществить переход от вершины yj = ... = ул = 0 к упомянутой соседней вершине, делаем один шаг модифи¬ цированного жорданова исключения со следующим правилом выбора разрешающего элемента. Правило выбора разрешающего элемента*). 1) В качестве разрешающего берем столбец, содержащий отрицательный элемент г-строки (в рассматриваемом случае 5-й столбец); 2) отбираем все положительные коэффициенты этого столбца (если такие имеются), делим на них соответствую¬ щие свободные члены, сравниваем полученные отношения *) Обоснование приводится ниже, в п. 4,
48 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II и в качестве разрешающего берем тот из коэффициентов, для которого отношение имеет наименьшее значение (если их окажется больше одного, то берем любой из них) *). После шага модифицированного жорданова исключения с разрешающим элементом, выбранным по только что сфор¬ мулированному правилу, знак у qs изменится на противопо¬ ложный, так что новый коэффициент q' окажется уже поло¬ жительным. Если все остальные новые коэффициенты 2-строки неотрицательны, то мы пришли к случаю п. 1 (неотрица¬ тельность новых свободных членов обеспечена правилом вы¬ бора разрешающего элемента), и задача решена.' Если же среди остальных коэффициентов новой 2-строки есть отрицательные, то поступаем с каждым из них так, как с qs, и после конечного числа шагов придем либо к случаю, когда в 2-строке не окажется отрицательных коэффициентов, т. е. к случаю п. 1 (задача решена), либо к случаю отсутствия положительных коэффициентов в неко¬ тором столбце, содержащем отрицательный коэффициент z-строки, что означает, как нетрудно убедиться, неограни¬ ченность сверху функции z **). Действительно, пусть, например, qs < 0, и среди коэф¬ фициентов s-ro столбца нет положительного. В этом случае можно, например, положить — . . . = = О, у5 = t > О, yj+1= ... =уп = 0. Тогда при I п -1- 1 получим Ус = — bist + bt О, т. е. при любом / 0 удовлетворяется система (2.2). Соот¬ ветствующее же значение функции можно сделать сколь угодно большим при достаточно боль¬ шом t. 3. Примеры. Предварительное замечание. При решении примеров рекомендуется после получения опорного *) Детальный разбор см. ниже, в § 6. В случае вырождения, bi bt когда min -т— = 2- = 0, если кроме q < 0 еще q. < 0, но Ь,- • < О, bis Ь1^ 5 1 о; то в качестве разрешающего столбца лучше брать не s-й, а у-й (/0-я строка не будет разрешающей). **) О возможности зацикливания см. ниже, § 6.
ОТЫСКАНИЕ ОПТИМАЛЬНОГО РЕШЕНИЯ 49 § 3] решения начинать заполнение таблицы со столбца свободных членов и с коэффициентов z-строки. Если среди коэффи¬ циентов 2-строки не окажется отрицательных, то уже нет смысла вычислять остальную часть таблицы. Пример 1 [35]. Максимизировать линейную форму Z ==z — 3% J —|— 6%2 при выполнении ограничений \'1 = xr4- 2x2-j- 1 ^>0, 3’2 = 2хг~Р х2 — 4^>0, Уз — X | — X 2 ~|— 1 0, 5’4 = — 4х2 13 0, У 5 = — 4xj —j— х2 ~I- 23 0. Переходим к таблице — A'i —Х2 1 У1 = —1 —2 1 ! Уг = —2 —1 —4 Уз = -1 1 1 У 4 = —1 4 13 У5 = 4 —1 23 Z = 3 —6 0 Исключив координату хР получаем таблицу — У1 — х2 1 *1 = —1 2 —1 Уг = —2 3 —6 Уз = — 1 3 0 У4 = — 1 6 12 У5 = 4 —9 27 Z — 3 —12 3 4 С. И. Зуховицкий, Л. И. Авдеева
50 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Выписываем отдельно выражение для исключенного Х1 = У1 — 2л'г — 1 • и отдельно — оставшуюся часть таблицы: — У1 — *2 1 —2 н —6 —1 3 0 —1 6 12 4 —9 27 3 —12 3 Уг = Уз = У 4 = У 5 ~ Z — Исключаем теперь координату х2: — У1 — У2 ' 1 2 1 2 х2 = 3 3 Уз = 1 —1 6 Уь = 3 —2 24 Уз = —2 3 9 z ~ —5 4 —21 Выписываем отдельно выражение для х2: 2 1 Q У1—-3У2 —2- и отдельно — оставшуюся часть таблицы:
51 отыскание оптимального решения § 31 В последней таблице все свободные члены неотрица¬ тельны, следовательно (см. § 2, п. 3), у1==у2 = 0 дает опорное решение нашей системы ограничений. Переходим к отысканию оптимального решения. В ^-строке содержится отрицательный коэффициент —5, так что имеем случай п. 2. В столбце коэффициентов над ним имеются два положительных: 1 и 3. Делим на них соответствующие свободные члены: у и 4^. Среди этих отношений меньшим является у. Поэтому элемент 1 берем в качестве разре¬ шающего. После шага модифицированного жорданова исклю¬ чения получим таблицу — Уз —у2 1 У1 = 1 —1 6 У А = —3 1 1 6 У5 = 2 1 21 Z — 5 —1 9 г-строка которой содержит отрицательный коэффициент — 1. Среди двух положительных элементов, расположенных над —1, в качестве разрешающего берем 1, взятую в рамку, так как у < у- • Получим таблицу — Уз — У а 1 12 6 15 2 1 15 в ^-строке которой больше нет отрицательных коэффи¬ циентов. Задача решена. Из последней таблицы находим: шах z =15, он достигается в точке у3 = у4 = 0, при этом 4*
52 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II У1= 12. У2=6- х2, получим у5= 15. Подставляя в выражения для хр x2=4, Xj = 3. Пример 2. Максимизировать форму z = %1 х2 + х3 при выполнении ограничений = 2х14-2х24- х3—2^0, у2 = — 3xj + Зх2 — 2хз 4" 6 О, у3 == — —j— Зх2—Н 2х3 —6 0, у= — 2%9 4“ 2х3 —|— 2 0, х2^0, х3^0. Переходим к таблице — *1 — х2 — х3 1 У1 = —2 —2 1-4 —2 у2 = 3 —3 2 6 Уз = 3 —3 __2 6 У 4 = 0 2 _2 2 z = —1 — 1 — 1 0 Переменные xv х2, х3 неотрицательны, поэтому мы их не исключаем (см. замечание в конце п. 2 § 2) и сразу пере¬ ходим к н. 4 § 2. Первая строка содержит отрицательный свободный член. Из отрицательных коэффициентов этой строки выбираем — 1 и сравниваем неотрицательные отношения свободных членов к коэффициентам третьего столбца меньшее из этих отношений первое, поэтому в качестве резрешающего берем коэффициент —1, взятый в рамку.
53 отыскание оптимального решения — х2 — У1 1 2 2 —1 2 —1 —7 пп 2 7 1 —2 10 4 6 —2 6 1 1 —1 2 § 3] Сделав шаг модифицированного жорданова исключения, получим таблицу — xi — хг — У] 1 х3 = 2 2—1 2 № = -1 -7 Щ 2 у3 = 7 1—2 10 ’ у4 = 4 6-2 6 z = 1 1 — 1 2 не содержащую уже отрицательных свободных членов, и можем перейти к отысканию оптимального решения. Над отрицательным коэффициентом z-строки —1 находится лишь один положительный коэффициент 2. Его и делаем разре¬ шающим. После шага модифицированного жорданова исклю¬ чения получим — х2 — У 2 1 ^3 = 3 2 3 2 1 2 3 У1 = —1 2 —7 2 1 2 1 Уз = 6 —6 1 7 У 4 = 3 —1 1 8 z — 1 5 1 3 2 2 2 Над отрицательным коэффициентом z-строки —нет поло¬ жительных, поэтому (см. конец п. 2) линейная форма может принимать сколь угодно большие значения. 4. Обоснование правила выбора разрешающего эле¬ мента. Пусть среди коэффициентов z-строки есть отри¬ цательные и, следовательно, нет уверенности в том, что вершина yj = ... = уп — 0 дает максимум функции z. Переход к соседней вершине означает движение из вершины ?i = ... = у п = 0 по некоторому ребру >’!= ... =л_1==0, ys = <>0, ... =уя = 0,
54 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II выбранному так, чтобы при этом увеличивалось значение z, т. е. чтобы было %=■ — qst -f- Q Q- Отсюда — qst >0 и qs < 0. Таким образом, для увеличения z следует двигаться по тому из ребер, в параметрическом уравнении которого отлич¬ ный от нуля параметр t расположен над отрицательным коэффициентом г-строки. Пусть qs < 0. Ясно, что двигаться по указанному ребру можно лишь до встречи с соседней вершиной многогран¬ ника 2 (чтобы не сойти с 2!), т. е. до встречи с некоторой плоскостью yz = 0, где Z > п, 0. В точке встречи с этой плоскостью, если bL > 0, получим 0 = — следо¬ вательно, bls ф 0, и так как -Д- = t > 0, то bis >0. П е р - "is вой, очевидно, мьгвстретим плоскость у/0 == 0(Zo > п, biQ > 0), для которой bjjbi^ имеет наименьшее (положительное) зна¬ чение. В случае вырождения, т. е. когда среди свободных чле¬ нов встречаются равные нулю, может случиться, что искомая «соседняя» вершина совпадает с исходной вершиной yj = . . . ... =yH — Q и в действительности движения не будет (Z = 0). Это произойдет, если Ь^ — 0, a b^s > 0, так как тогда у/0 = — bi^t —|—£/о = — bi„st неотрицательно лишь при t = 0, а при t > 0 уже будет у,0 < 0 и мы сошли бы с много¬ гранника 2. Если же Ь. = 0, а Ь. < 0, то у. — — b. t -\-b. — — b. t In LqS 1 In IqS останется положительным при t > 0, так что нет нужды Ь, брать t — 0 (оставаться в исходной вершине), если min -— i "is (Z > n, b[S > 0) положителен. Таким образом, в случае вырождения мы испытываем сначала все верхние ребра, соответствующие столбцам, рас¬ положенным над отрицательными коэффициентами ^-строки, т. е. в каждом таком столбце просматриваем коэффициенты против нулевых свободных членов. Если в некотором таком столбце против нулевых свободных членов нет положитель¬ ных коэффициентов, то этот столбец следует выбрать в качестве разрешающего, так как по соответствующему ребру можно двигаться. В противном случае ни по одному
§ 3] ОТЫСКАНИЕ ОПТИМАЛЬНОГО РЕШЕНИЯ 55 из верхних ребер нельзя двигаться и следует испытать боко¬ вые ребра, превратив их в верхние путем шага модифициро¬ ванного жорданова исключения с разрешающим элемен¬ том, выбранным по правилу п. 2 (при этом движения не происходит). После конечного числа шагов мы либо сойдем с рас¬ сматриваемой вершины, либо убедимся, что в этой вершине достигается искомый максимум, либо обнаружим неограни¬ ченность функции z. 5. Монотонность и конечность алгорифма симплекс- метода. Алгорифм симплекс-метода, как видно было из его геометрической интерпретации, относится к так называемым монотонным алгорифмам, т. е. к алгорифмам, каждый шаг которых монотонно приближает нас к искомому зна¬ чению. Чтобы убедиться в этом и аналитически, достаточно показать, что при переходе алгорифмом симплекс-метода от одного опорного решения к другому, т. е. при выборе раз¬ решающего элемента по правилу п. 2, значение функции z, определяемое последним элементом z-строки, не убывает. Действительно, после исключения координат (см. § 2, п. 2) и построения таблицы (2.4'), в которой все свободные члены неотрицательны, опорным является решение у1=... ... =ул = 0. Если в z-строке есть отрицательный коэф¬ фициент, например qs < 0, то для перехода к следующему опорному решению надо сделать один шаг модифицирован¬ ного жорданова исключения с разрешающим элементом из s-го столбца, например с brs > 0, выбранным по правилу п. 2. Такой коэффициент найдется, если задача имеет огра¬ ниченное решение (см. конец п. 2). Для нового значения Q, которое обозначим Qz (учитывая, что qs < 0, brs > 0, Ьг^0), получим Q' _ — ЯзЬг = Q _ ^b.r Q. brs "rs Таким образом, если Ьг > 0, то Qz > Q, т. е. имеет место строгая монотонность рассмотренного шага алгорифма. В случае же Ьг = 0 имеем Q' = Q, т. е. стро¬ гой монотонности не будет и имеет место вырождение. Подробному рассмотрению явления вырождения посвя¬ щен § 6. Конечность алгорифма симплекс-метода легко уста¬ навливается в случае отсутствия вырождения, так как
56 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II многогранник 2 имеет лишь конечное число вершин, а воз¬ вращение к раз использованной вершине невозможно из-за строгой монотонности алгорифма. В случае же вырождения алгорифм может оказаться не¬ конечным, так как в силу нестрогой в этом случае моно¬ тонности процесса (если не обеспечено запоминание уже проверенных ребер, выходящих из данной вершины) воз¬ можно возвращение к ранее встречавшейся таблице, что называют зацикливанием. В § 6 будет показано, какое дополнение следует внести в правило п. 2 выбора разре¬ шающего элемента, чтобы избежать зацикливания и, следо¬ вательно, обеспечить конечность алгорифма. Там же будет рассмотрен аналогичный вопрос о возможности зациклива¬ ния (в случае вырождения) при пользовании симплекс-мето¬ дом для отыскания опорного решения. § 4. Разные способы задания ограничений 1. Задание ограничений системой линейных уравнений. Часто задача линейного программирования встречается в такой формулировке: Среди решений системы + . +а1;1хл = а1. + ••• = I ( ’ *!>(),..., О J найти то, которое максимизирует (минимизирует) линейную форму Z = P1X1H- ... +р„хл. . (2.1) Геометрический смысл этой задачи вообще такой же, как и основной задачи § 1, с тем лишь отличием, что теперь пространство, в котором рассматривается задача, имеет раз¬ мерность, меньшую чем п. Действительно, пусть матрица ||azy|| имеет ранг г. Тогда систему уравнений (2.6) можно решить относительно г неизвестных, пусть, например, относительно хт\ Х1— ^1,Г + 1ХГ + 1+ ••• + хг — '°г, т + \хт + \ 4~ ••• + Ьгпхп + Ьг
57 РАЗНЫЕ СПОСОБЫ ЗАДАНИЯ ОГРАНИЧЕНИЙ § 4] Учитывая неравенства системы (2.6), получим х1 —\r+ixr + i+ ••• -\~binxn-\-bx О, хг—&г> г4-1Хг+1+ ••• + ^гЛ + ^г ‘ ' хг+1>0, . . Хл>0. Таким образом, задача свелась к рассмотренной в §§ 2 и 3 задаче максимизации линейной функции z = cr+1xr+1+ .. . +с„х„ + с (2.1') (полученной из формы (2.1) подстановкой в нее выражений для ..., хг) при ограничениях (2.7). На самом же деле для применения симплекс-метода нет необходимости в предварительном переходе от задачи (2.1) — (2.6) к задаче (2.Г) — (2.7), так как симплекс-метод может быть применен непосредственно к задаче (2.1) — (2.6). Изложим это по пунктам. 1) Переход к таблице. Без ограничения общности можно считать, что а{ 0 (/=1, ...» т). Тогда, если не¬ которые переменные, например хр .... xk, входят каждая с положительным коэффициентом лишь в одно из уравнений системы (2.6), то решаем соответствующие уравнения относи¬ тельно этих переменных (правые части останутся неотрица¬ тельными), подставляем в (2.1) и составляем таблицу — xk + i Xk + 2 xn 1 *1 = ai, k+i al, k + 2 a\n al xk = ak, k+1 ak , k + 2 akn ak 0 = aAi+ 1, k -\ 1 аЛ + 1, k -\ 2 akA 1,n ak+\ 0 = am> k +1 am, k-T-2 amn am z = lk + 1 lk + 2 In Л4 в которой все свободные члены ау- неотрицательны. Обычно эта таблица состоит лишь из 0-строк и ^-строки, т. е. система (2.6) не сразу решается относительно части неизвестных. 2) Отыскание опорного решения. Чтобы по¬ лучить опорное решение, надо постепенно избавляться от
58 линейн. программирование и симплекс-метод [гл. п всех 0-строк. Правило избавления от Z-й 0-строки форму¬ лируется так: просматриваем столбец полученной таблицы, содержащий положительный коэффициент aZ;- из Z-й 0-строки; отмечаем все положительные коэффициенты этого столбца (включая делим на отмеченные коэффициенты соответ¬ ствующие свободные члены и тот из коэффициентов, для которого это отношение имеет наименьшее значение, берем в качестве разрешающего. Если этим коэффициентом окажется aZ;- (благоприятный случай), то после шага моди¬ фицированного жорданова исключения нуль, стоявший слева Z-й 0-строки, будет переброшен наверх на место Xjt и мы, следовательно, избавимся от 0-строки. Если же разрешающим оказался элемент a/;- (Z =£ Z), то продолжаем шаги модифицированных жордановых исключе¬ ний, работая все время с Z-й 0-строкой (т. е. выбирая каждый раз разрешающий элемент из коэффициентов столбца, со¬ держащего положительный элемент az?- из Z-й 0-строки). Так поступаем до тех пор, пока либо избавимся от Z-й 0-строки (разрешающим будет элемент из Z-й 0-строки, и нуль будет переброшен наверх), либо установим несовместность си¬ стемы (2.6) (все коэффициенты Z-й 0-строки станут неположи¬ тельными при положительном свободном члене). После того как нуль переброшен наверх, столбец коэф¬ фициентов под ним вычеркиваем. Нам осталось еще показать, что в получаемой после каждого шага модифицированного жорданова исключения новой таблице все свободные члены неотрицательны. Действи¬ тельно, если разрешающим оказался элемент aZy-, то знак свободного члена az разрешающей 0-строки не меняется, так что а' положителен, а любой другой свободный член а' новой таблицы вычисляется по формуле причем / а/ - 1 • (aza«7 — а0> 0, а,>0, az > 0. Тогда, если «/у < 0, то а; > 0, если а/;. = 0, то а;>0. если а,у > 0, то а/ - ( «и
§ 4] РАЗНЫЕ СПОСОБЫ ЗАДАНИЯ ОГРАНИЧЕНИЙ 59 так как а/у- > 0 и (ввиду правила, по которому а/;- выбран разрешающим элементом). Совершенно аналогично проверяется наше утверждение и в случае, когда разрешаю¬ щим оказался элемент агу, не принадлежащий 0-строке. Изложенный способ освобождения от 0-строк применяем до тех пор, пока не исключим все 0-строки или не уста¬ новим несовместность системы (2.6). Замечание. Если при отыскании опорного решения в некоторой, пусть в r-й, 0-строке свободный член равен нулю, а все отличные от нуля коэффициенты этой строки имеют одинаковые знаки, то столбцы, содержащие эти коэф¬ фициенты, а также саму строку, можно вычеркнуть и вы¬ черкнутые при этом Xj считать равными нулю. Таблица сократится, что уменьшит количество вычислений. Сформулированное в замечании правило обосновывается тем, что в случае отличия от нуля указанных Xj наше 0-уравнение, а вместе с ним система (2.6), очевидно, ста¬ новятся противоречивыми. 3) Отыскание оптимального решения произ¬ водится точно так же, как в § 3. 2. Смешанная система ограничений. Иногда ограниче¬ ния имеют смешанный характер: они состоят из неравенств (кроме неравенств хг 0, . . ., хп 0) и уравнений. В этом случае задача линейного программирования формулируется так: среди решений системы a;i*i + . . . +а1пхп^а1 +1*1 + ••• +aknxn = ak *1 + 0, . . ., хп 0, (/=1, .... г), (k = г 1 т), (2.6') где 0 = г»)- найти такое, которое макси- мизирует (минимизирует) линейную форму z — P\x\-[- ••• -\~Рпхп‘ (2-1) Неравенства из (2.6х) вводим в таблицу в виде У/=—(aiXxA-{- ... + ainxл)+ at (Z=l, ..., г), э уравнения — в виде 0-уравнений ° = -0*1*1+ ••• + (k — г —1~ 1, . ,., w).
60 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Получим — Xj • 1 а\i • • • а1П Д1 ", II . аГ\ • •• агп 0 = аг + 1, 1 • • • аг± 1, п аг+ 1 0 = ат\ •• • атп атп z = —Р\ ••• —Рп 0 Исключаем 0-уравнения, как в п. 2, затем ищем опорное решение системы, как указано в § 2, а оптимальное — как в § 3. 3. Примеры. Пример 1. Определить максимальное значение формы z = — 5х | —j— 10%2 — 1 х3 —Зх4 на множестве неотрицательных решений системы уравнений xi4“ x2~h 2х4 = “2- , 3 — 2xj— %2 ~Н Зх3 —|— Зх4 = » 2Х|—J—2xg “I-8х3 —j— х4 = 4. Переходим к таблице —*1 — Х2 — *з — *4 1 1 1 7 2 7 2 —2 —1 3 3 3 2 и 2 8 1 4 5 —10 7 —3 0 Для получения опорного решения надо освободиться от 0-строк. Берем первый положительный коэффициент 1 пер-
РАЗНЫЕ СПОСОБЫ ЗАДАНИЯ ОГРАНИЧЕНИЙ 61 § 41 вой 0-строки, сравниваем отношения свободных членов к положительным коэффициентам первого столбца и уста¬ навливаем, что разрешающим элементом будет число 2 (взятое в рамку). После шага модифицированного жорданова исключения и вычеркивания столбца под перенесенным наверх нулем получим а:2 —Хз —х4 1 0 н 3 2 3 2 1 11 4 11 2 . 1 4 1 ~2 2 —15 —13 И 2 —10 Мы освободились от одной 0-строки. Аналогично переходим к следующим таблицам: Последняя таблица уже не содержит 0-строк, так что имеем опорное решение х4 = 0, х3 —у, х2 = 0, х1 = 0. Приступаем к отысканию оптимального решения. В столбце над отрицательным коэффициентом ^-строки—у есть лишь
62 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. Ц один положительный у. Он и будет разрешающим эле¬ ментом. После шага модифицированного жорданова исключения получим таблицу _х i 1 3 2 43 18 из которой, положив х3=0, найдем max z — 18, достигаемый при 3 Xj = 0, х2 —у, х3 = 0, х4 = 1. Пример формы 2. Найти максимальное значение z — 1 Ох- — х2 — 9х3 — 8х4 линейной на множестве неотрицательных решений смешанной системы ограничений 2х1— х2— Зх3— х4+ 2 = 0, — 2х2 —Зх4 —5 = 0, — 7х^ —|— 4х2 — х3 — 4х4 —j— 1 0, — 3xj — 2х2 — 5х3 — 6х4 + 10 0. Переходим к таблице — X'! — х2 — Х3 — х4 1 0 = —2 ш 3 1 2 0 = —5 2 0 3 5 У1 = 7 —4 1 4 1 У2 = 3 2 5 6 10 Z = —10 1 9 8 0 Сделав шаг модифицированного жорданова исключения с раз¬ решающим элементом 1 из первой строки (взятым в рамку)
§ 41 РАЗНЫЕ СПОСОБЫ ЗАДАНИЯ ОГРАНИЧЕНИЙ 63 и вычеркнув столбец коэффициентов под перенесенным на верх нулем, получим таблицу — *i — ^з — х4 1 х2 = —2 3 1 2 0 = —1 —6 И 1 У1 = —1 13 8 9 у2== 7 —1 4 6 z — —8 6 7 _2 Аналогично освобождаемся от второй 0-строки: — *1 — *3 1 Х2 = —1 9 1 Х4 = —1 —6 1 У1 = ш 61 1 У2 = 11 23 2 Z = —1 48 —9 Теперь переходим к отысканию оптимального решения. Над отрицательным коэффициентом ^-строки разрешающим элементом будет 7, и после шага модифицированного жор¬ данова исключения получим таблицу — У1 — л-3 1 Z = 8 7 8 7 1 7 3 7 1 397 62 7 7 7
64 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II не содержащую отрицательных коэффициентов в z-строке. Следовательно, максимальное значение найдено: 62 max z — у- , и достигается при х3 = 0, уч = 0. Окончательно — ± —А —о —А X] -— у , — у > х3 — и, Х4 у • § 5. Задача минимизации линейной формы 1. Сведение к задаче максимизации. До сих пор мы рассматривали решение симплекс-методом задачи отыскания максимума линейной формы г = . +рпхп (2.1) при ограничениях — а1\х\— • • • — ainxn + ai>Q (Z=1 m)- (2-2) Во многих задачах требуется найти минимум формы (2.1) при ограничениях (2.2). Для этого достаточно положить z= -z = — pxxx — ... —Рпхп и решить задачу максимизации полученной формы при ограничениях (2.2). Ясно, что min z — — max Z. Замечание. Задачу минимизации линейной формы (2.1) при ограничениях (2.2) можно решать и непосредственно симплекс-методом, не сводя ее путем изменения знаков коэффициентов формы (2.1) к задаче максимизации. Для этого достаточно в алгорифме симплекс-метода несколько видоизменить лишь признак оптимальности и правило выбора разрешающего элемента. Признаком оптимальности опорного решения (т. е. до¬ стижения на нем min г) теперь будет отсутствие положи¬ тельных коэффициентов в г-строке, и тогда min z — Q.
§ 5] ЗАДАЧА МИНИМИЗАЦИИ ЛИНЕЙНОЙ ФОРМЫ 65 Разрешающий элемент теперь следует брать в столбце над положительным коэффициентом ^-строки (а не над отрицательным, как в случае максимизации). 2. Примеры. Пример 1. Минимизировать линейную форму Z = — 3Xj —|— 6л?2 при выполнении ограничений У1 — Xj —|-2х2+ 1^-0» у2 == —J— — 4 0, Уз= Xj— х2 —|— 1 О, У4 = Xj — 4х2 ~1~ 13 О, Уб ~= — 4Х| Ч~ х2 Ч~ 23 0. Эту задачу сводим к задаче максимизации формы Z = — z = 3xj — 6х2 при выполнении тех же условий. 1) Переходим к таблице — *1 — х2 1 У| = м —9 1 У 2 — —2 —1 —4 Уз— —1 1 1 У* = —1 4 13 у5 = 4 —1 23 Z = —3 6 0 2) Исключение координаты хг приводит к таблице — У1 — х2 1 У2 = —2 3 —6 Уз = -1 3 0 —1 6 12 4 —9 27 Z = —3 12 —3 5 С. Н. Зуховицкий, Л. И Авдеева
66 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СЙМПЛЕКС-МЕТОД [ГЛ. И с отдельно выписанным выражением для хх: х1 — ух — 2х2 — 1. Исключив координату х2, получим — ь — У 2 1 Уз = 1 — 1 6 у4 = 3 —2 24 Уб- —2 И 9 Z = 5 —4 • 21 и значение для х2: 2 1 о Х2 = -3У1— У У2 — 2. Свободные члены неотрицательны, так что у1 = у2 = 0 — опорное решение нашей системы ограничений. ' 3) Переходим к отысканию оптимального решения. В Z-строке есть отрицательный коэффициент —4, а столбец коэффициентов над ним содержит лишь одйн положитель¬ ный 3, так что он и будет разрешающим. После шага моди¬ фицированного жорданова исключения получим таблицу — У1 — Уз 1 9 30 3 7 4 33 3 3 не содержащую отрицательных коэффициентов в Z-строке., Задача решена: max Z = 33, и, следовательно, min z = —33 и достигается при ух = у5=0; тогда Уз =9, у4 = 30, у2 = 3 и х2 =—3, хх = 5.
§ 5] ЗАДАЧА МИНИМИЗАЦИИ ЛИНЕЙНОЙ ФОРМЫ 67 Пример 2. Решим пример 1, не сводя его к задаче максимизации. Исходная таблица — Aj — *2 1 = ЕН —2 1 У 2 = —2 —1 —4 Уз = —1 1 1 У4 = —1 4 13 У 5 = 4 —1 23 Z = 3 —6 0 после исключения хг и х2 перейдет в следующую: — У1 — у2 1 1 —1 6 3 —2 24 —2 И 9 —5 4 —21 причем х1 = у1— 2х2— 1, 2 1 п Х2= у У1 — -3У2 — 2- Получено опорное решение: у1 = у2 = О, и можно перейти к отысканию оптимального решения. В отличие от случая максимизации линейной формы, в за¬ даче минимизации разрешающий элемент выбираем в столбце коэффициентов, расположенных над положительным коэф¬ фициентом ^-строки, в нашем примере над коэффициентом 4. 5*
68 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II В этом столбце всего один положительный коэффициент 3. Он и берется в качестве разрешающего. После шага моди¬ фицированного жорданова исключения получим таблицу — У1 —Уб 9 30 3 7 4 —33 3 3 в которой все коэффициенты z-строки неположительны. Про цесс окончен, причем min z — — 33 и достигается при У1— у5-—0, у3—9, у4— 30, у2—3, т. е. при х2 — —3, х1 = 5. § 6. Вырождение 1. Зацикливание. Пусть в процессе решения задачи линейного программирования, например максимизации линей¬ ной формы (2.1) при ограничениях (2.2), получено некото¬ рое опорное решение, так что пришли к таблице вида — У1 ... — Уп 1 У/2+1 = ^П+1, 1 ^п+1>п Ут = Ьтп Ьт Z = <h ... qn Q в которой все свободные члены неотрицательны. Если при этом в некотором шаге алгорифма симплекс-метода выбор
§6] ВЫРОЖДЕНИЕ 69 разрешающего элемента был неоднозначен, т. е. наименьших отношений свободных членов к соответствующим положи¬ тельным коэффициентам разрешающего столбца было больше, чем одно, то после этого шага все упомянутые свободные члены, за исключением свободного члена разрешающей строки, обратятся, очевидно, в нуль.. Тогда через вершину у1=... et.=syrt = 0 многогранника 2 (опорное решение) проходит больше чем и плоскостей. Этот случай, как уже отмеча¬ лось, называется вырождением. Явление вырождения можно рассматривать как слияние двух или большего числа вершин многогранника 2, когда ребро (или ребра), соединяющее эти вершины, стягивается в точку. Как уже указывалось в п. 5 § 3, лишь в случае вырож¬ дения алгорифм симплекс-метода может потерять строгую монотонность. Геометрически это становится особенно прозрачным, если учесть, что шаг алгорифма симплекс-метода означает пере¬ ход по ребру от одного опорного решения к другому, т. е. переход от данной вершины многогранника 2 к соседней (расположенной на том же ребре). В случае же вырожде¬ ния— совпадения двух соседних вершин — может случиться, что после указанного шага мы остались в той же вершине, только выраженной с помощью другого набора из п пло¬ скостей (уравнений), проходящих через эту вершину. Если продолжать применение алгорифма симплекс-метода и если запоминание уже испытанных ребер не обеспечено, то не исключена возможность так называемого зацикли¬ вания, когда после некоторого числа шагов, каждый из которых приводит к некоторому набору и плоскостей из проходящих через данную вершину, мы вернемся к уже взятому ранее набору и процесс начнет повторяться. 2. е-метод для устранения зацикливания. А. Чарнес [16] предложил простой метод (так называемый е-метод) для защиты от зацикливания. Идея этого метода заключается в том, что путем соответствующего параллельного сдвига каждой из плоскостей, не попавших на верх таблицы, «рас¬ клеивают» слившиеся вершины, решают новую, уже не вы¬ рожденную задачу (так что алгорифм становится строго моно¬ тонным), после чего сдвинутые плоскости возвращают в перво¬ начальное положение и получают решение исходной задачи.
ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. Ц Применение е-метода начинают с введения следующей новой нумерации переменных в таблице (2.4Z)’- / “ >р+1 ■ -у'р+з ■■ У p+n i У1 = b1, р + 1 ■ ^1, p+S • ‘ Ь1,р+п b1 / bi,p+1 • •• bi,p + 3 • .. bi, p+n b. 1 че • 1! . ьр,р+1 ■ bp,p \-s " bP,P + n bp Z — Чр+1 q p+s qp+n Q где р+~п = т, y[ = yn+v У2 = Уп+2. .... У'р = Ут> У р+1 Ур •••’ Ур+п У п’ а коэффициенты обозначены той же буквой Ь, но с новыми индексами. Затем производят параллельный сдвиг плоскости у'=0 (Z=l, ...» р), прибавив к свободному члену ее урав¬ нения полином РДе): р.(е) = е« + ^+1еР+1_1_^+2ер+2+ ... + ^,р+пер+л 0=1. • •р). где е — положительное число, меньшее любого из чисел, которое встретится в дальнейших вычислениях. В резуль¬ тате получают таблицу eP + l ' ~yp+s .. еР + л • ~yp + n 1 -Ур+1 •• / У1 = 4 p+i ■■ b1,p+s •• • b1, p + n &i+s+4p+pp+1+---+4p+Z+" 'i= bi, p + 1 ' b i, p+s ’ " bi, p + n bi^l+bi,p+i>p+l+-+bi,p+n^n / yp= bp, p + 1 ■ ” bp, P + s •' " bp,P + n hp + ^^p.p + l^-^p.p + n^^ z = я p+1 •• qp+s qp+n Q у которой все свободные члены b-t (s)=&z4“^i (е) Q■= 1 > • • •»р) будут уже строго положительны.
ВЫРОЖДЕНИЕ 7'1 § 6] Действительно, если bt > 0, то bt (е) = bL + Pt (е) > О в силу малости е. Если же #z = 0, то bL (е) — PL (е) > О, так как вследствие малости е > 0 знак полинома опреде¬ ляется слагаемым г1 > 0. Убедимся теперь, что в новой таблице разрешающий эле¬ мент определяется однозначно. В самом деле, пусть разре¬ шающим оказался s-й столбец. Тогда, если <Z=1 А-1, А+1 Р) °k,p+s ui,p+s и, значит, разрешающий элемент bk,p+s определяется одно¬ значно в старой таблице, то и в новой будет .fo + Pfe(6) < i k — 1, k+1 p) bk,p + s ^i,p + s в силу малости e. Если же в старой таблице есть больше чем одно мини¬ мальное отношение — (Z = 1, ..., р), например, у-^— — “i.p + s °k,p + s = — и, следовательно, разрешающий элемент в старой vi,p + s таблице определяется неоднозначно, то в новой таблице отношения bk + PkV) и + bk,p + s bl,k + s уже не могут оказаться равными в силу того, что Pk (е) ф и, следовательно, разрешающий элемент определяется однозначно. Нетрудно проверить, что при каждом шаге модифициро¬ ванного жорданова исключения нет нужды производить вы¬ числения с полиномами от е, а можно лишь вычислить сво¬ бодные члены (без полиномов), а затем добавить к ним по¬ линомы от е, составленные согласно предыдущему, так что новые полиномы опять не будут попарно тождественными и единственность определения разрешающего элемента со¬ хранится. Можно показать (см., например, [14]), что ввиду доста¬ точной малости е оптимальному решению новой задачи с возмущенными при помощи Pz(e) свободными членами соответствует оптимальное решение исходной задачи,
72 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II получаемое из оптимального решения измененной задачи при е = 0. Аналогично устраняется зацикливание при отыскании опор¬ ного решения. § 7. Двойственность в линейном программировании 1. Двойственные таблицы. Рассмотрим систему = 2 «г/— xj) (Z=l, .... m) (2-9) /=1 и составим для нее таблицу — Xj ... —xs .. >• —xn У1 = 0ц , . . . <21S Л\п ь = аг\ ' ,.. ars • arn (2.Ю) Ут ~ ат\ • • • thus • ’ amn с матрицей A — ||aZy||. Шаг модифицированного жорданова исключения, меняю¬ щий ролями зависимую переменную уг с независимой пере¬ менной xs, приведет к таблице — *1 ... —Уг — Xn У1 = b" • • • — als • • • bln xs = ar\ 1 arn Ут = bmi •• • ams • • • bmn (Ьи=а1}аг$— arJals). Пусть теперь рассматриваются линейные формы т (/=1. .... в) (2.12) 1=1 с матрицей /Г, транспонированной к матрице А. Составим таблицу этой системы так, чтобы независимые переменные
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 73 стояли слева, а зависимые Vj— наверху. Получим таблицу Vt= ... vs = ... vn = а\\ >•• a\s ••• ахп аг\ >•• ars • • • Urn (2.13) ат 1 ■ •• ams • •• атп матрица которой совпадает с матрицей А таблицы (2.10). Таблицы (2.10) и (2.13) называют двойственными. Поменяв ролями переменные иг и vs при помощи шага обыкновенного жорданова исключения с разрешающим эле¬ ментом ars, придем к таблице ur = ... vn = Z/l /и .. • ais ■■■ bln Vs ar\ 1 . . . CLrtl Um bmi • ams •• • ^mn совпадающей с таблицей (2.11). Таким образом, шаг модифицированного жорданова ис¬ ключения, примененный к основной таблице (2.10), эквива¬ лентен шагу обыкновенного жорданова исключения, применен¬ ному к двойственной таблице (2.13). Этим оправдана целесообразность следующего совмеще¬ ния в одну таблицу взаимно двойственных таблиц (2.10) и (2.13): ^1 = . . — XX II s’ 1 II 1 U\ У1 = a\\ • a\s a\n ur Уг = ar\ . ars arn Ут~ am\ • ams • amn так как каждый шаг соответствующего жорданова исклю¬ чения преобразует нужным образом одновременно обе таб¬ лицы.
74 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II 2. Двойственные задачи линейного программирования. Наряду с основной задачей линейного программирования, т. е. с задачей максимизации линейной формы % = Р\х\ “И • • • I Рп ХП (2* 1 4) при выполнении ограничений ••• ainxn^- а1 •^1 ’ Хп О’ рассмотрим еще одну, так называемую двойственную (или сопряженную) ей задачу, заключающуюся в минимизации линейной формы w — axui+...-\-amum (2.16) при выполнении ограничений aljul~^T ••• + amjum^> Pj т. e. задачу, полученную из основной по следующим четы¬ рем правилам: 1) свободные члены av ..., ат ограничений служат коэффициентами новой целевой функции, а коэффициенты ..., рп целевой функции служат свободными членами новых ограничений; 2) матрицей коэффициентов новых ограничений является матрица А*, полученная транспонированием матрицы А (коэффициентов старых ограничений); 3) в новых ограничениях знаки неравенств противопо¬ ложны старым (<^ изменено на неотрицательность же переменных сохраняется); 4) максимизация целевой функции заменяется минимиза¬ цией новой. Как нетрудно проверить, основную задачу можно рас¬ сматривать как двойственную по отношению к своей двой¬ ственной. Записав ограничения основной задачи в виде = —Япх1 — + Ут — ~ ат1Хг — ... — атпхп + *1>0 х„>0,
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 75 а ограничения двойственной задачи в виде vx = апих-\- ... ~{-атХит— ^=а1П«1 + ••• —Р«>°- ^!>0, ...» IZr/2>0, сразу заметим, что условия этих взаимно двойственных за дач можно совместить в одной таблице: ... xs II 1 w = 1 — ... — Ui У1 = аП a\s > • a\n rii “г У г = ari ars am • (2.18) Щп Ут = ат\ atns “mn am • 1 Z = — рх ... — Ps •• — Pn 0 Тогда, как будет доказано ниже, в п. 3, решая < основную задачу (2.14) — (2.15) линейного программирования, мы од¬ новременно решаем и двойственную ей задачу (2.16) — (2.17), и обратно, причем полученное в результате решения основ¬ ной задачи значение максимума формы z совпадает со зна¬ чением минимума формы w. 3. Основная (первая) теорема двойственности линей¬ ного программирования. Пусть рассматривается пара двойственных задач (2.18). Если одна из них обладает оптимальным решением, то и другая имеет оптималь¬ ное решение, причем экстремальные значения соответ¬ ствующих линейных форм z и w равны*. max z — min w*). Если же у одной из этих задач линейная форма не ограничена, то двойственная ей задача противоречива. *) Как будет показано ниже (см. п. 4), если для пары опор¬ ных решений двойственных задач соответствующие линейные формы 2 и w равны между собой, то эти решения оптимальны.
76 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. I] Доказательство. Пусть основная задача имеет ко¬ нечное решение и получена, например, таблица II а 1 •• —Уз 4s+i= •• — A+i 1 Il w = 1 V1 *1 = ьп . • • bls ^1,5+1 • bxn bi Vs *s = bsi bss bs,s+}. bsn bs “s+1 b+i = bs+1, t • •• bs+i) s bs+lt . • bs+t.n bs+i Um Ут ~ bmi • • bms bm, s+i bmn bm 1 z — Qi Qs Qs+1 • Qti Q (2.19) в которой #1^0, Ьт^0; ^i^O, ..., <7л^>0; maxz = Q и достигается при У!= ... =У5 = а:5+г= Проанализируем полученную при этом таблицу двойст¬ венной задачи. Полагая значения переменных, находящихся слева, равными нулю: ®1 = ••• =^ = ««+1= =«m = 0. найдем = • • •• «5 = ^>0; ^41 = ?5 + 1>0. • • = Следовательно, получено опорное решение «1 = ?Р .... us = qs, us+l= ... =ит = 0, и из последнего столбца уже видно, что значение линейной функции ^---Ь^х-\- ... -\-bsvs + ^5+1^5+1+ ... в точке vx = ... = vs = us+[= . . . =ит — 0 будет мини¬ мальным в силу неотрицательности bv ..., bm. Таким об¬ разом, minw = Q и совпадает с max z.
§ 7] Двойственность в линейном программировании 77 \ пДть теперь линейная форма z основной задачи не огра¬ ничена.^ Это значит*), что в (2.19) для некоторой верхней переменной, например для у5, соответствующий коэффициент qs отрицателен (qs < 0), а все коэффициенты его столбца #15, •••* ^ms неположительны: bis < 0, ...» bms^Q. Тогда из двойственной таблицы следует ^S = ^ls‘nl+ ••• + ^sA + &S+1, А+1+ ••• +‘^Лг + + Qs Qs < 0’ так что система ограничений двойственной задачи противоре¬ чива, т. е. неотрицательность us несовместима с неотрицатель¬ ностью vv ..., vs, us+1, . .., ит. Замечание 1. Из противоречивости одной из задач еще не следует неограниченность линейной формы двойст¬ венной ей задачи. Оказывается, что при этом двойственная задача может быть также противоречивой. Это видно хотя бы из следующего примера: Vj = v2 = w = — х} — х2 1 2 —2 1 —2 2 —3 —3 1 0 Здесь задача максимизации линейной формы <г = 3х1 — х2 при выполнении ограничений = —2%j —2х2 —р 1 у2—- — 2х2 — 3^0, х1^0, х2^>0 *) Если функция z не ограничена сверху, то при отыскании max z мы наконец придем к некоторой окончательной таблице, ^-строка которой содержит отрицательные коэффициенты (иначе max z конечен), например, qs < 0, а остальные коэффициенты этого столбца неположительны. В противном случае можно было бы про¬ должить процесс, т. е. таблица не является окончательной.
78 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II противоречива, так как —2 < 0. Двойственная же ей задача минимизации линейной формы V) — их — Ъи2 при ограничениях vx = 2их— 2и2— 3>0, *и2 === —2их —j— 2и2 j— 1 0, их^0, также противоречива, так как г/1-|-г/2 = —2 < 0. Замечание 2. Нетрудно убедиться, что мы получаем одновременно решение обеих двойственных задач лишь в том случае, когда максимизируем линейную форму той задачи, и которой левая часть ограничений меньше правой ^2 aijxj^a^ т- е- линейную форму, расположенную го¬ ризонтально внизу совмещенной таблицы, и минимизируем линейную форму той задачи, в которой левая часть ограни¬ чений больше правой ^2 aijui^ т- е- линейную форму, расположенную вертикально справа от совмещенной таблицы. 4. Эквивалентность пары двойственных задач задаче решения системы линейных неравенств. Пусть рассматри¬ вается пара двойственных задач линейного программирова¬ ния, условия которых совмещены в таблице (2.18). Задача отыскания оптимальных решений этой пары двойственных задач оказывается эквивалентной задаче отыскания решения следующей системы линейных не¬ равенств: • • • +v«< ai (i — 1, .... m), 0 (j = 1, ..n), Vi+ • • • + amjum ^pj (/ = 1 n), ut 0 (Z = 1, ..., m). Pi*i + ••• +p„xl,>alu1+ ... которая состоит из всех ограничений обеих {включая неотрицательность всех переменных) дополнительного неравенства (2.21), заменяющего, та ким образом, требование оптимизации. (2.20) (2.21) задач и из
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 79 Доказательство. Пусть х* (х*, ..., х*) и . . ., ^*г) — какие-нибудь соответствующие оптимальные решения нашей пары двойственных задач. Тогда по основной теореме двойственности для них имеет место равенство Р1х*. _|_рпх*п = а1И* + ... + ати*т, (2.22) т. е. эти оптимальные решения, кроме системы (2.20), удов¬ летворяют также неравенству (2.21), так что любая пара соответствующих оптимальных решений является также ре¬ шением системы (2.20) — (2.21). Обратно, пусть х(хр ..., хп) и u(uv ..., ит)— какое- нибудь решение системы (2.20) — (2.21). Из того факта, что х и и удовлетворяют системе (2.20), следует, что 2 Pj*j < 5 ( 5 ^ijui) J = 1 j = l\i = l / i=l t. e. Pl*l + ... РпХп^а1и1-\- ••• + (2.23) Таким образом, x и и удовлетворяют неравенствам (2.21) и (2.23), следовательно, удовлетворяют уравнению (2.22). Достаточно теперь убедиться, что если решения х и и системы (2.20) удовлетворяют уравнению (2.22), то эти решения оптимальны. Действительно, если бы, например, х не было оптималь¬ ным решением, то, обозначив через х* и и* оптимальные решения нашей пары двойственных задач, мы получили бы Z PjX* > 2 PjXj = 2 ам. /=1 J J /=1 J J /=1 z=i т. e. n. m > S aiur что противоречит основной теореме двойственности. 5. Вторая теорема двойственности. Если хотя бы одно оптимальное решение одной из двойственных за¬ дач обращает 1-е ограничение этой задачи в строгое неравенство, то l-я компонента (т. е. xt или Uj) каж¬ дого оптимального решения второй двойственной за¬ дачи равна нулю,
80 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД/ [ГЛ. II Если же i-я компонента хотя бы, одног^ опти¬ мального решения одной из двойственных зад&ч поло¬ жительна, то каждое оптимальное решение другой двойственной задачи обращает 1-е ограничение этой задачи в строгое равенство. Другими словами, оптимальные решения х* и и* пары двойственных задач удовлетворяют условиям*. (/=1 «). (г= 1 т). Доказательство. Пусть х* и и*— оптимальные ре¬ шения пары двойственных задач, так что они удовлетво¬ ряют системе (2.20) и следующим из нее неравенствам п т п т По первой теореме двойственности (п. 3) для оптималь¬ ных решений х* и я* имеет место равенство п т учитывая же выписанные выше J = 1 J = 1 1 = 1 J tn 2 ^11*= 2 2 i=l i=l j-\ J J неравенства, получим ТП V1 „ * * п in Из первого равенства следует Так как все х*. и выражения в скобках неотрицательны, то п). Аналогично доказывается справедливость условий 2),
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 81 Обратная теорема. Опорные решения х* и и* пары двойственных задач, удовлетворяющие усло¬ виям 1) — 2), оптимальны. Доказательство. Просуммировав условия 1) по J, а условия 2) по I, получим равенства т п п S 2 а = PjX*. z=l ; = 1 4 J ;=1 J J m n tn 2 aijUlXj ~ \aiUl’ так что значения функций z и w в точках х* и и* совпа¬ дают. Из равенства значений функций z и w следует (п. 4) оптимальность решений х* и zz*. 6. Экономическая интерпретация основной и двойствен¬ ной задач. Пусть условия основной и двойственной задач совмещены в таблице (2.18). Основную задачу линейного программирования можно экономически интерпретировать следующим образом. Пусть для производства одного продукта имеется п раз¬ личных технологий. При этом пусть используются т ингре¬ диентов (различные виды сырья и прочие производственные факторы), причем по /-й технологии расходуется в единицу времени а^ единиц Z-ro ингредиента, общий запас которого равен aL, и производится pj единиц продукта. Пусть, нако¬ нец, — время, в течение которого производство ведется по /-й технологии. Тогда при «плане» х = (хр .. ., хл) будет произведено z = p1xi-[- ... -ф-рпхп единиц продукта и израсходовано aixxx-{- ... -j- ainxn единиц Z-ro ингредиента G’=l, ...» т). Естественно возникает задача: отыскать та¬ кой план (оптимальный), при котором из имеющихся запа¬ сов ингредиентов выпускалось бы максимальное количество продукта. Математической моделью этой задачи и будет ос¬ новная задача линейного программирования: максимизировать линейную форму z = ... + рпх„ при ограничениях azi*i + +az„x„<az (i=l т), х, > 0, .... х„ > 0. 6 С. И. Зуховицкий, Л. И. Авдеева
82 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Для экономической интерпретации двойственной задачи линейного программирования удобно цену единицы выпускае¬ мого продукта принять за единицу. Тогда по j-й технологии за единицу времени создается продукт ценой в pj единиц. На это расходуется я1;- первого ингредиента, a2j второго ингре¬ диента amj- т-го ингредиента. Обозначив относительные цены единицы каждого ингредиента соответственно через uv ..., ит, мы для оценки израсходованных ингредиентов (в принятом масштабе цен) получим сумму . . . . + amjunv и’ очевидно, она не меньше цены pj полу¬ ченного продукта, т. е. «у«1 + ••• +amjum^.pj (7=1 п). (2.24) Ясно, что их 0 и что, взяв достаточно боль¬ шие uv ..., ит, мы удовлетворим всем условиям (2.24). Не желая, однако, завышать относительные цены ингре¬ диентов, естественно их взять возможно меньшими, т. е. такими, чтобы дальнейшее снижение уже было невозможным, так как тогда перестанут выполняться условия (2.24). При таких наименьших опорных (оптимальных) относительных ценах будет, очевидно, иметь наименьшее значение цена всего запаса ингредиентов, т. е. сумма «i«i+ ••• Таким образом, математической моделью экономической за¬ дачи установления в принятом масштабе таких допустимых цен ингредиентов, чтобы цена их запасов была наименьшей, служит двойственная задача: минимизировать линейную форму w = axux+ ... -\-атит при ограничениях М1 + ••• U = 1 «) > О, . . ., иП1^ 0. Теперь основная теорема двойственности приобретает та¬ кой экономический смысл: Если для задачи (2.18) существует оптимальный план максимального выпуска продукции, то существует и опти¬ мальный план минимальных относительных цен ингредиентов, причем в этом масштабе цен стоимость z всего продукта,
ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 83 \ произведенного по оптимальному плану, совпадает со стои¬ мостью м запасов всех ингредиентов. Вторая же теорема двойственности теперь звучит так: Если в некотором оптимальном плане производства расход 2 aijxj *“г0 ингредиента строго меньше его запаса ар, 2 a^j < а(, /=1 то в каждом оптимальном плане относительных цен цена uL этого ингредиента равна нулю. Если же в некотором опти¬ мальном, плане относительных цен цена uL i-ro ингредиента больше нуля, то в каждом оптимальном плане производства расход этого ингредиента точно равен его запасу: п 2 aijxi—ai- 7 = 1 Далее, если в некотором оптимальном плане относитель- т ных цен цена S ингредиентов, расходуемых по /-й i- 1 технологии, строго превышает цену pj произведенного по этой технологии окончательного продукта: т 2 atjUi > р}, i = l то ни в одном оптимальном плане производства у-я техно¬ логия не применяется, т. е. Xj— 0. Если же по некоторому оптимальному плану производства /-я технология приме¬ няется (Xj > 0), то в каждом оптимальном плане ОТНОСИ- гп тельных цен цена S ингредиентов, расходуемых по i=l 7-й технологии, точно равна цене pj произведенного по этой технологии продукта: т S «,7«z= Pj- i=l Таким образом, оптимальные планы двойственных задач составляют гармонию в том смысле, что оптимальному плану 6*
§4 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. Ц производства соответствует оптимальный план относительных цен, по которому применяемые технологии рентабельны, а неприменяемые убыточны, и обратно. 7. Двойственные задачи со смешанной системой огра¬ ничений. В рассмотренной выше паре двойственных задач обе системы ограничений имели вид неравенств. Такие за¬ дачи принято называть симметричными двойственными задачами или задачами с однотипными ограничениями. Но двойственность можно установить и не симметричную, когда ограничения заданы в смешанном виде неравенств и уравнений или в виде уравнений и неравенств лишь вида ху>0, 1) Смешанная система ограничений. Рассмот¬ рим сначала задачу**) максимизации линейной формы z = P\xi~\- ~\~Рпхп при условии, что переменные xv ..., хп удовлетворяют смешанной системе ограничений ; У1 = — «11-^1— ••• — «1Л+«1>0> Уг = — аг1Х1~ ... — аг„х„+аг>0, О — ar + l, 1 Х1 ••• аг + 1, л л'л_1_ ar+V О ... йтпхп | ят, хг^0, . .., xs^0, s п. Двойственной этой задаче является задача минимизации линейной формы w=a1M14- ... •*) Нетрудно показать, что эти на первый взгляд более общие задачи могут быть сведены к симметричным, так что первая тео¬ рема двойственности имеет место и для несимметричных задач, а вторая также имеет место, но с той естественной оговоркой, что ее утверждения относятся лишь к ограничениям типа неравенств и к переменным, которые предполагаются неотрицательными. Мы не будем здесь на этом останавливаться, а ниже покажем, как непосредственно решаются такие задачи. **) Ср. с § 4.
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 85 при выполнении ограничений ®1 = «11«1 + Р1>0- vs—alsul~Н ••• + flms“m— О—а1, s+l“l+ ••• + am, s+lum—Ps+1> 0 — Vi+ ... -\-amnum pn, U^O Иг>0. Условия этой пары двойственных задач удобно, как и в симметричном случае, совместить в одной таблице: Щ = . — *i vs = .. —xs 0 = — *5+1 ... 0 = • • • xtl W — 1 У1 = Pll • • als a\, 5+1 a\n а, Уг = ar\ • • ars ar> S + 1 arn ar «г+1 0 = ar+\,\ • ar+\, 5 ДГ+1,5+1 ar+\,n ar+\ ат 9 = atn\ atns am, 5+1 • • • ^mn 1 2 = — Pl • • Ps Ps+l . .. —pn 0 (2.25) Заметим, что условия неотрицательности налагаются лишь на те независимые переменные u^Xj), которые в совмещенной таблице (2.25) расположены в строках (столбцах), соот¬ ветствующих ограничениям — неравенствам основной (двойственной) задачи. На переменные же u^Xj), соответ¬ ствующие ограничениям — уравнениям основной (двой¬ ственной) задачи, никаких ограничений не налагается. Построив таблицу (2.25), решаем, как обычно (см. § 4), основную задачу, что дает автоматически также решение двойственной. Пример. Рассмотрим задачу, двойственную задаче макси¬ мизации линейной формы z = 10хх — х2 — 9х3 — 8х4
86 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II со смешанной системой ограничений — х2— Зх3— 2 = О, — 2х2— 3x4-f-5 =0, = — 7х1-[-4х2— х3— 4х4-^-1 ^>0, у2 = — 3xj — 2х2 — 5х3 — 6х4+ 10 0, х^О, х2>0, х3>0, х4>0. По определению, придем к задаче минимизации линейной формы W =5 2их —|— 5#2 4“ ^3 ~~Н 19^4 при ограничениях T/j = — 2z/j — 5и9 —j— 7 и3 —[— 3 и4 — 10 >0, v2 = и 1 —р- 2и2 — 4и3 —2/z4 —1 0, = 3fZj —}— и3 —|— 5zz4 —р 9 О, *и4 = 3zz2“4“ 4zz3 _4_' 6zz4 + 8 О, w3>0, я4>0. Основная задача была решена на стр. 62—64, и было получено 62 max z = у-. Следовательно, 62 пип w = y • Для определения значений переменных uit при которых этот минимум достигается, совместим таблицы, полученные выше при решении задачи максимизации, с двойственными таблицами и выпишем отдельно выражения для исключаемых независимых переменных двойственной задачи, т. е. для пере¬ менных, на которые не накладывались ограничения, так как они понадобятся лишь после решения задачи, чтобы
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 87 выразить его в старых координатах. Получим Vj == v2 = v3 = v4 = w — — Xi — x2 — x3 — x4 1 Ui 0 = —2 3 1 2 и2 0 = —5 2 0 3 5 из У1 = 7 —4 1 4 .1 н4 У2 = 3 2 5 6 10 1 z = —10 1 9 8 0 = III = V3 = ^4= W = — Xi 0 —x3 —x4 1 v2 Х2 = _2 1 3 1 2 «2 0 = . —1 —2 —6 ш 1 > н3 У1 = —1 4 13 8 9 и4 у2 = 7 —2 —1 4 6 1 z = —8 —1 6 7 —2 u1 = v2 — 2u2 + 4и3 — 2zz4 — 1. Второй столбец (под исключенным и J вычеркиваем и после шага модифицированного жорданова исключения по¬ лучим V1 = V3 = н2 = w ==» — Xi — Х3 0 1 v2 х2 = —1 9 —1 1 v4 х4 = —1 —6 1 1 из У1 = м 61 —8 1 н4 У 2 = 11 23 —4 2 1 Z = —1 48 —7 —9 и2 = — v2 -|- v4 — 8н3 — 4и4 — 7.
88 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Вычеркиваем третий столбец и делаем следующий шаг. Получим «3 = ~У1 II 1 1S) = 1 v2 Х2 = 8 7 V4 х4 = -о] 00 Vj 1 7 “4 У 2 == 3 7 1 1 397 62 Z = 7 7 7 Последняя таблица заключительная, так как в ней все свободные члены основной задачи, а также коэффициенты г-строки неотрицательны. Таким образом, 62 min w = у- и достигается при ^ = ^ = ^ = ^ = 0. «з = у, v3=^-, т. е. при иЗ = Г’ И4 = 0- уравнений (и нера- Рассмотрим, наконец, за¬ дачу максимизации линейной формы 2=Р1^1+ ••• Л-Рпхп с ограничениями вида 0 = —аиХ1— ... — Q = — amXx1— ... — атпхп^-ап, О 0.
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 89 Эта задача является частным случаем рассмотренной выше задачи со смешанными ограничениями, когда г = 0, Sz=n. В задаче подразумевается, что число уравнений меньше числа неизвестных. Двойственная задача заключается в минимизации линей¬ ной формы <w = aiui-[- ... -\-атит при ограничениях г»1 = ацИ1+ ... 4-ат1ит —р!>0, ®Я=«1Я«1 + ••• +«тя«т — Рп>°- Так как г = 0, то на переменные uL никаких ограниче¬ ний не налагается. Условия этой пары двойственных задач также удобно совместить в одной таблице: Vi = — X! II г? Ч 1 W = 1 Их 0 = <2ц • • а\п ит 0== ат\ • • атп ат 1 z = ~Р\ •• ~Рп 0 Затем решаем основную задачу и получаем одновременно решения обеих двойственных задач. Пример. Задачей, двойственной к задаче максимизации линейной формы z = — —j— 10х2 — 7 Н- Зх4 при ограничениях 7 0=— хТ— х2— 7х3 — 2x4-j--^-, 3 0= 2Xj—|— х2— Зх3— Зх4 —|—2* > 0 = — 2хг — 2х2 — 8х3 — х44,• х2^0, х3>0, х4>0, решенной в примере 1 п. 3 § 4, будет задача минимизации формы 7 3 ™ = 2* и\~Ь ~2 U<2 +
90 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II при ограничениях V1 —: U | — 2^2 —1~ ^^3 —I- v2= их— и2-\-2и3—10 >0, г/3 = 7их + 3rz2 —j— 8rz3 —|— 7^0, = 2zzt —|— 3u2 “I- 0. Как следует из решения основной задачи, min w = max z = 18. Чтобы определить, при каких значениях независимых переменных uv и2, и3 достигается minw, выпишем их вы¬ ражения из двойственных таблиц, получающихся в процессе решения основной задачи. Составим совмещенную таблицу основной и двойственной задач: vx = —*1 II 1 ■ 1 II II а 1 w = 1 г/1 0 = 1 1 7 2 7 2 и2 0 = —2 —1 3 3 3 2 “3 0 = Ш 2 8 1 4 1 Z — 5 —10 7 —3 0 После шага модифицированного жорданова исключения с раз решающим элементом 2 была получена таблица и3 = и2 = и3 = v4 — w — 0 — х2 — х3 — х4 1 1 0 1 ч 1 3 3 2 2 9 1 1 11 4 11 2 1 2 1 4 1 2 2 5 2 —15 —13 11 2 —10
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 91 в которой был вычеркнут столбец под перенесенным наверх нулем. Выпишем из этой таблицы выражение для и3: 1 - - 1 5 zz3 = — 2 wi + ^г + у ^1— у- После лучена следующего шага таблица разрешающим элементом 3 по- *3 = 112 v2 х2 Щ = ^4 = О — х4 2^ з 3 ” 3 2 __ 3_ 2 2 v3 ^1 О *1 = О 1 с w = 1 2 О о 1 z —15 13 3 1_ 2 1 из которой = -т V, 1 11 4 . 13 I — З^^ 3 1 3 * Второй столбец вычеркиваем. Следующей была таблица и2 = v4 = w = О — л 4 1 v3 х3 = 0 1 2 1 2 v2 х2 = 1 - 3 ‘ 2 0 Vi Xi = —1 0 0 1 z = 15 — 43 2 7 2 из которой #2 == *^2 — ^1 ~Н 1
92 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Первый столбец вычеркиваем. Наконец, v3 = w = — х3 1 v4 х4 = 1 3 и2 х2 = 2 Vi Xi = 0 1 z = 43 18 так что min w — max z = 18 и достигается при <и4 = г/2 _ = 0, v3 = 43, т. е. при 1 к 109 92 «2=15, «! = д-, = 8. Двойственный симплекс-метод. Пусть условия пары двойственных задач совмещены в таблице Vi= .. — Xi 1 II 1 " ’ll w = 1 U\ У1 = all • • als a\n “r ■ -t • II arl ♦ • ars aTn ar Um Ут~ amA atns • • Umn am 1 Z = — P\ . . ps •• — Pn 0 (2.26) Тогда, как было показано выше, одновременно с решением задачи максимизации z решается также задача минимизации w. Если проследить за получающимися при этом преобразо¬ ваниями таблицы и переменных и Vj, что удобнее будет
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 93 сделать, записав ее в обычном виде £Z1 . . иг .. • “т 1 V1 = ^11 • .. агХ ат\ — А Д15 .. ars ■ • ams — Ps Ai = а\п ,. агп • • атп ~Рп w = А .. аг . • • ат 0 (2.27) то получим описание нового метода решения задачи мини¬ мизации w, указанного Лемке [31] и называемого двойст¬ венным симплекс-методом. Будем параллельно выписывать установленные выше правила симплекс-метода для решения задачи максимизации z, преобразуя таблицу (2.26), и вытекающие из них правила двойственного симплекс-метода для решения задачи мини¬ мизации w, соответственно преобразуя таблицу (2.27). Симплекс-метод для решения задачи максимизации z I. Правило выбора разрешающего эле¬ мента при отыскании опорного решения. 1. Рассматриваем строку с отрицательным свободным членом, пусть, например, аг < 0. Если же все свобод¬ ные члены неотрицательны, то опорное решение найдено и переходим к отысканию оптимального решения. 2. Находим в r-й строке какой-нибудь из отрицатель- Двойственный симплекс- метод для решения задачи минимизации w I. Правило выбора разрешающего эле¬ мента для избавления от отрицательности в -w-c троке. 1. Рассматриваем столбец с отрицательным коэффици¬ ентом w-строки, пусть, на¬ пример, аг < 0. Если же все коэффициенты w-строки не^ отрицательны, то 0 является оценкой w снизу и переходим к отысканию оптимального решения. 2. Находим в r-м столбце какой-нибудь из отрицатель-
94 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. Ц них коэффициентов, напри¬ мер ars < 0; столбец, содер¬ жащий этот коэффициент, берем в качестве разрешаю¬ щего. Если все коэффициенты г-й строки неотрицательны, то наша система несовместна. 3. Находим неотрицатель¬ ные отношения свободных членов к коэффициентам раз¬ решающего (s-го) столбца. Разрешающим берем тот из коэффициентов s-го столбца, для которого это отношение наименьшее. Если наименьшее отноше¬ ние равно нулю, то его зна¬ менатель берем разрешающим элементом лишь, когда он положителен. Выбрав разрешающий эле¬ мент, делаем шаг модифици¬ рованного жорданова исклю¬ чения. Если в результате при¬ менения предыдущих правил получена таблица вида (2.28а) ных коэффициентов, напри¬ мер ars < 0; строку, содер¬ жащую этот коэффициент, берем в качестве разрешаю¬ щей. Если все коэффициенты г-го столбца неотрицательны, то либо форма w неограничена снизу, либо задача противо¬ речива. 3. Находим неотрицатель¬ ные отношения коэффициен¬ тов w-строки к коэффициен¬ там разрешающей (s-й) стро¬ ки. Разрешающим берем тот из коэффициентов s-й строки, для которого это отношение наименьшее. Если наименьшее отноше¬ ние равно нулю, то его зна¬ менатель берем разрешающим элементом, лишь когда он положителен. Выбрав разрешающий эле¬ мент, делаем шаг обыкновен¬ ного жорданова исключения. Если в результате при¬ менения предыдущих правил получена таблица вида (2.286) — У\ • — ys — Xs+l Xn 1 Х1 = • • • b\s ^1,54-1 bin bt bsi ,.. bss bs,s+i >•• bsn bs У54-1 = &54-1, 1 ^54-1, S ^s+l, 5+1 bs+i,n bs+i Ьщл bms bm> 54-1 bmn bm Z = Qi Qs Qs+1 Qn Q
§ 71 ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 95 Vs 1 ^11 • • • ^51 bs +1, 1 • • • bml b\s ••• bss bs+\,s ••• bms ^1,5+1 ••• ^S,S+l ^5+1,s+1 ••• bm,s+i b\n ••• bsn bs+i, n ••• bmn <h <h+l qn b\ • • • bs bs+ j ... bm Q (2.286) в которой все свободные члены bv b2, • .., Ьт неотри¬ цательны, а среди коэффи¬ циентов z-строки еще есть отрицательные, например qs < 0, то оптимальное реше¬ ние еще не найдено и пере¬ ходим к его отысканию. Be-, личина Q дает оценку z снизу.' II. Правило выбора разрешающего эле¬ мента при отыскании оптимального реше¬ ния с и м п л е к с-м ет од ом. 1. В качестве разрешаю¬ щего берем столбец, содержа¬ щий отрицательный коэффи¬ циент z-строки, пусть 5-Й < 0). 2. Отбираем все положи¬ тельные коэффициенты этого столбца, делим на них соот¬ ветствующие свободные члены и в качестве разрешающего берем тот из коэффициентов s-го столбца, для которого отношение имеет наименьшее значение. Если в 5-м столбце нет положительных коэффициен- в которой все коэффициенты bv .. ., bm w-строки неотри¬ цательны, а среди свободных членов еще есть отрицатель¬ ные, например qs < 0, то оптимальное решение еще не найдено и переходим к его отысканию. Величина Q дает оценку w снизу. II. Правило выбора разрешающего эле¬ мента при отыскании оптимального реше¬ ния двойственным сим- п л е к с-м ет о д о м. 1. В качестве разрешаю¬ щей берем строку, содержа¬ щую отрицательный свобод¬ ный член, пусть 5-ю (qs < 0). 2. Отбираем все положи¬ тельные коэффициенты этой строки, делим на них соот¬ ветствующие коэффициенты w-строки и в качестве раз¬ решающего берем тот из коэффициентов 5-й строки, для которого это отношение имеет наименьшее значение. Если в 5-й строке нет положительных коэффициен-
96 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. Ц тов, то функция z не огра¬ ничена. После конечного числа шагов модифицированных жордановых исключений мы либо найдем максимальное значение функции z, либо убедимся в ее неограничен¬ ности. тов, то ограничения задачи противоречивы. После конечного числа шагов обыкновенных жорда¬ новых исключений мы либо найдем минимальное значе¬ ние функции w, либо убе¬ димся в противоречивости ограничений задачи. Пример 1*). Минимизировать функцию z = 4хг — х2 при ограничениях У1 = х2 — 2>0, у2 = — + %2'4_ 1 О» Уз = X| — х2 —[— 1 О, з . п У4= %!— у>0, х2^0. Составляем таблицу *1 х2 1 У1 = 0 1 —2 У 2 = —1 1 1 Уз = 1 1-11 1 1 0 3 2 Z — 4 —1 0 Над отрицательным коэффициентом г-строки находим отрицательный коэффициент —1, содержащая его третья строка — разрешающая. *) Вместо ui и vj мы переменные обозначаем, как обычно, через xi и у,.
7) ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Находим неотрицательные отношения у и —у и разре¬ шающим элементом берем —1. Сделав шаг обыкновенного жорданова исключения, получим таблицу *1 Уз 1 У1 = 1 —1 —1 У2 = 0 —1 2 л2 = 1 —1 1 у4 = ш 0 3 2 Z = 3 1 —1 с положительными коэффициентами г-строки. Переходим к отысканию оптимального решения. В ка¬ честве разрешающей берем четвертую строку, содержащую отрицательный свободный член —у. Разрешающим элемен¬ том в этой строке служит 1. После шага обыкновенного жорданова исключения придем к таблице 1 2 2 5 2 3 2 3 1 7 У в которой все свободные члены положительны. Следовательно, оптимальное решение найдено 7 Ш1П^— у, и достигается при 7 С. И. Зуховицкий, Л. И. Авдеева
98 Линейн. программирование и сймплёкс-Метод [гл. ц Замечание 1. Для решения двойственным симплекс- методом задачи максимизации w можно либо, пользуясь описанными правилами, найти минимум —w, а затем ре¬ зультат взять с противоположным знаком, либо сразу искать максимум w. В этом случае надо несколько видоизменить предыдущие правила с таким расчетом, чтобы все коэффи¬ циенты w-строки стали неположительными. Пример 2. Максимизировать функцию z = 4хх — х2 при ограничениях У1 = х2 — 2>0, у2 — — *1 + x2~h 1 о* Х1 — х2+1>0, У4 = — хг + 4 О, х2^0. Составляем таблицу: Х1 *2 1 У1 = 0 1 —2 У 2 = —1 1 1 Уз = 1 —1 1 1 -11 0 4 z — 4 —1 0 Рассматриваем столбец с положительным коэффициентом ^-строки, находим в нем отрицательные коэффициенты и строку, например четвертую, содержащую такой отрицатель¬ ный коэффициент, берем разрешающей. Находим неположи¬ тельные отношения коэффициентов z-строки к соответствую¬ щим коэффициентам разрешающей строки и тот из коэффи¬ циентов, для которого это отношение окажется наибольшим (наименьшим по абсолютной величине), берем разрешающим, о 4 В нашем примере такое отношение единственное: —р, так что разрешающий элемент есть —1.
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ программировании 99 После шага обыкновенного жорданова исключения по¬ лучим таблицу х2 1 У1 = 0 1 —2 у2 = 1 гп —3 Уз = —1 —1 5 *1 = —1 0 4 z = —4 —1 16 в которой все коэффициенты z-строки отрицательны, и можно перейти к отысканию оптимального решения. Строку, например вторую, содержащую отрицательный свободный член, берем разрешающей. Для определения раз¬ решающего элемента рассматриваем неположительные отно¬ шения коэффициентов ’Z-строки к коэффициентам (положи¬ тельным) разрешающей строки и тот из коэффициентов, для которого это отношение будет наибольшим (наименьшим по абсолютной величине), берем разрешающим. В нашем примере из отношений |~и |—р| видно, что разрешающей берется единица второго столбца. После шага обыкновенного жорданова исключения придем к таблице в которой уже все свободные члены неотрицательны, так что оптимальное решение найдено: max z = 13, и достигается при Xj = 4, х2=3. Замечание 2. В двойственном симплекс-методе вместо обыкновенных можно пользоваться модифицированными 7*
100 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. ц жордановыми исключениями. Так как при этом в верхней строке таблицы переменные выписываются со знаками минус, то при выборе разрешающего элемента надо помнить, что знаки всех коэффициентов таблицы, кроме столбца свобод¬ ных членов, противоположны знакам соответствующих коэф¬ фициентов обычной таблицы, для которой .сформулированы правила. Поэтому к отысканию минимума w приступаем лишь тогда, когда все коэффициенты w-строки станут неположи¬ тельными (как и в обычном симплекс-методе), а в качестве разрешающего берем тот из отрицательных коэффициентов разрешающей строки (т. е. содержащей отрицательный сво¬ бодный член), для которого достигается наименьшее из от¬ ношений коэффициентов w-строки к соответствующим отри¬ цательным коэффициентам разрешающей строки. К отысканию же максимума w приступаем, когда все коэффициенты w-строки станут неотрицательными (как и в обычном симплекс-методе), а в качестве разрешающего берем тот из отрицательных коэффициентов разрешающей строки, для которого достигается наименьшее по абсолютной величине из отношений коэффициентов w-строки к соот¬ ветствующим отрицательным коэффициентам разрешающей строки. Замечание 3. Пусть при отыскании минимума z (мак¬ симума z} симплекс-методом в процессе отыскания опорного решения или еще в исходной таблице все коэффициенты г-строки оказались неположительными (неотрицательными). Тогда, конечно, целесообразнее продолжать решение задачи двойственным симплекс-методом, так как для отыскания оптимального решения остается лишь избавиться от отрица¬ тельности свободных членов. Так, для минимизации z в при¬ мере, условия которого помещены в таблице — *1 — х2 — Хз 1 У1 = 1 —1 1 5 У2 = —1 Ьз| 3 —3 Уз — —2 1 —2 2 Z —3 —1 —4 0
§ 7] ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ Ю1 удобно применить двойственный симплекс-метод (так как коэффициенты ^-строки уже неположительны). Сделав шаг модифицированного жорданова исключения с разрешающим элементом —3 (так как , сразу получим оптимальное решение: _Xi —у2 — х3 1 6 1 1 — 8 — 1 —5 1 3 3 min г = 1 и достигается при х1 = х3 = 0, х2=1. Замечание 4. Как и в обычном симплекс-методе, вы¬ числительная процедура двойственного симплекс-метода свелась к последовательному преобразованию таблиц по указанным выше специальным правилам. По степени труд¬ ности ни одному из этих методов нельзя дать предпочтения. Отметим, что, в то время как в обычном симплекс-методе мы приближаемся к максимальному (минимальному) решению снизу (сверху) по опорным решениям, в двойственном симплекс-методе мы приближаемся к максимальному (мини¬ мальному) решению сверху (снизу), причем промежуточные решения уже не являются опорными. Действительно, если в промежуточной таблице (2.286) приравнять нулю переменные, расположенные сверху, то, ввиду наличия среди свободных членов отрицательных, некоторые боковые пере¬ менные также будут отрицательными. Иногда, при большом количестве переменных и ограни¬ чений, бывает удобно использовать для решения одной и той же задачи оба метода, так как при этом к оптималь¬ ному значению линейной формы мы подходим одновременно с двух сторон — сверху и снизу, и, если разность между соответствующими значениями линейных форм достаточно мала, мож;но вычисления прекратить и полученное опорное решение задачи, решаемой обыкновенным симплекс-методом, считать ее приближенным решением.
102 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II § 8. Целочисленное программирование 1. Постановка задачи. Геометрическая интерпретация. Часто в задаче линейного программирования, т. е. в задаче максимизации линейной формы (2.29) при ограничениях Xj 0 (7=1 п), определяющих многогранник 2, по самому смыслу задачи требуется, чтобы решение было целочисленным, причем aLj и а-ь (/=1, ...» /п; J—1, ...» п) предполагаются целыми. Однако симплекс-метод приводит непосредственно к цело¬ численному решению лишь для немногих задач. В общем же случае для отыскания оптимального целочисленного решения задачи (2.29)—(2.30) требуются специальные методы. Они заключаются в подборе дополнительных к (2.30) линейных ограничений, обеспечивающих целочисленность решения. Один из таких методов, приводящий к целочисленному решению за конечное число шагов, предложен Р. Е. Гомори [27] — [296]. Идею метода легко уяснить геометрически. Рассмотрим множество целочисленных точек многогран¬ ника ограничений 2. Если бы удалось заменить многогран¬ ник 2 выпуклой оболочкой его целочисленных точек, то получаемое симплекс-методом оптимальное решение этой видоизмененной задачи было бы, очевидно, целочисленным и служило бы оптимальным целочисленным решением исход¬ ной задачи. Ввиду трудности построения этой выпуклой оболочки строят промежуточный многогранник, охватывающий ее и содержащийся в 2. В рассматриваемом методе это осу¬ ществляется путем введения на каждом шаге дополнитель¬ ного ограничения, которое, уменьшая многогранник 2 (от¬ секая некоторую его часть), не исключает из него целочис¬ ленных точек, причем плоскость дополнительного линейного ограничения проходит хотя бы через одну целочисленную точку. Через конечное число шагов метод приводит к новой задаче, оптимальное решение которой является одновременно оптимальным целочисленным решением исходной задачи.
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ 103 § 2. Описание алгорифма. Предварительный шаг. Решая задачу (2.29) — (2.30) симплекс-методом, придем через ко¬ нечное число шагов к таблице •• ~Уз xs + x • ~ХП 1 • • ^15 ^1,5+1 bl *3 = ^51 • • bss ^5» 5 + 1 • bsn bs Уз+х = ^5+1,1 • • • 5 4-1,5 ^5 + 1» 5 + 1 •• • ^5+1, П &S+ 1 Ьщх • • bms ^т, 5+1 • Ьтп ьт Z = ?1 Яз #5+1 Яп Q в которой все свободные члены bv .... bm и коэффициенты г-строки qv . .., qn неотрицательны, так что У1= •••=Л = ^+1= ...=хя = 0, X1=bv .... xs = bs дает оптимальное решение задачи. Если не все свободные члены целые, то решение нецелочисленное, и переходим к общему шагу. Перепишем для удобства последнюю таблицу в виде -е, ... . ... -е„ 1 ^1 = Ьц ... ьи . . . b\n bi \.= hi ... . ЪИ ... bin bl rim ~ Ьт\ • • • bmj • • ■ - bmn bfn Z — Ях Я} • • Яп Q (2-31) Общий шаг. 1) Составление дополнительного ограничения. Пусть bL не целое. Полагаем ^^-[Ь^Ьц-Пц*). (так что пи < Ьи < /г,7+ 1, < ^ < 1 и 0 < < 1. *) Символом [я] обозначена целая часть числа а, т. е. наиболь¬ шее целое число, не превосходящее а.
104 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II 0 < < 1) и составляем дополнительное ограничение Si = - (- W - ₽/2 (- у -... - ₽/« (- и - > 0. (2.32) Полученное si будет целым неотрицательным при целых неотрицательных и tqz. - Действительно, si — ~ 2 ₽// (— tj) — ₽<• = 2 nij (— + Л/ — /=1 ; = i откуда (из последнего выражения) следует целочисленность slt а из предшествующего и из неотрицательности pZy- и сле¬ дует, что si^> — pz >—1, что в сочетании с целочислен¬ ностью S} доказывает его неотрицательность. Если, как в рассматриваемом случае, оптимальное реше¬ ние исходной задачи (2.29) — (2.30) не целочисленно (так как — не целое), то оно не удовлетворяет дополнительному, ограничению (2.32), потому что при ^ =...= = 0 будет si = — ₽< < 0. так что дополнительное ограничение (2.32) отсекает от 2 часть, содержащую нецелочисленное оптимальное решение, сохраняя целочисленные решения. Нетрудно убедиться, что плоскость si = 0 проходит через некоторую целочисленную точку (возможно, и не принад¬ лежащую 2). 2) Решение измененной задачи. Вносим огра¬ ничение в последнюю таблицу -5, .. . -tj . ■■ ~tn 1 *11 = £11 .. . btj . •• bln ^•1 .. bij ■ bin bi - II II Ьщ\ • • — .. • bmj < . ~ н/у • ■ . • bmn • • • ~ $in bm -Pi Z = • 4] Qn Q и решаем новую задачу максимизации z при ограничениях (2.30) и дополнительном ограничении (2,32).
§ 8] ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ 105 Для сохранения знаков уже неотрицательных коэффи¬ циентов г-строки пользуемся для отыскания оптимального решения двойственным симплекс-методом (§ 7, п. 8). Если полученное при этом оптимальное решение новой задачи окажется нецелочисленным, то повторяем общий шаг, и после конечного числа повторений [28] будет найдено оптимальное целочисленное решение новой, а следовательно и исходной, задачи, если оно существует *). Пример [29а]. Найти целочисленное неотрицательное решение системы ЗХ|—|— 2%2 Ю, X] —|— 4^2 11» 3Xj—J— 3x2—]— 13, максимизирующее линейную форму Z == 4Xj —|— б%2 “Н Перепишем ограничения в виде = — 3xj — 2^2 ~|— 10 0, У2== — — 4-^2 —j— 11 0, у3 — — Зх{ — Зх2 — х3 + 13 > 0 и составим таблицу —*1 — х2 ~х3 1 У1 = 3 2 0 10 у2 = 1 |7| 0 11 Уз = 3 У 1 13 Z — —4 —5 —1 0 *) Признаком отсутствия целочисленного решения служит по¬ явление в таблице хотя бы одной строки с дробным свободным членом и целыми остальными коэффициентами, так как в этом случае соответствующее уравнение не имеет решения в целых числах.
106 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Проделав три шага модифицированных жордановых исключений — Xi — у2 — х3 1 — У1 — у2 — 1 10 2 0 18 4* 2 0 18 У1 = 4 4 4 10 10 10 1 1 0 11 1 3 0 23 4 4 4 х2 = 10 10 10 Уз = 9 3 1 19 9 3 7 4 4 4 . Уз = 10 10 ш 10 11 5 —1 55 11 7 —1 187 z = 4 4 4 z = 10 10 10 придем к таблице — У1 — У 2 — Уз 1 *1 = 4 2 0 18 10 10 10 х2 = 1 3 0 23 10 10 10 9 3 1 7 *3 = 10 10 10 2 4 1 194 z = 10 10 10 из которой находим оптимальное, но нецелочисленное ре¬ шение задачи: 18 23 7 194 — 10 ’ х2 — ю ’ хз — ю> max z — jq- Для отыскания целочисленного решения вводим, согласно предыдущему, дополнительное ограничение
§ 8] ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ Ц)7 Таблица примет вид — У1 — У, —Уз 1 4 10 2 10 0 18 10 1 3 23 и 10 10 10 9 3 7 10 10 10 1 7 7 0 10 10 " 10 2 4 1 194 10 10 10 Для сохранения знаков z-строки неотрицательными при- меним двойственный симплекс-метод. На основании соответствующего правила берем отрица- 7 тельный разрешающий элемент —ц) из послеДней строки, так как |±._11И2-—II |ю- 101*4 ю’ юр Сделав шаг модифицированного жорданова исключения, по¬ лучим из таблицы — У1 — $з — Уз 1 2 2 1 1 * 4 1 19 7 7 Целочисленное оптимальное решение max z— 19,
108 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II достигаемое при х 1 — 2, х^:—- 2, х^ — 1 • 3. Другой метод построения дополнительных ограни¬ чений [24]. Пусть при решении задачи (2.29) — (2.30) мы пришли к таблице (2.31), определяющей .нецелочисленное оптимальное решение ^=•••=^2 = 0, 0, ..., ч\т — Ьт^^. Вводим дополнительное ограничение ^i+e2+...+^>i, (2.зз) которому, очевидно, удовлетворяет оптимальное целочисленное решение. Действительно, так как решение ^ ==...= = 0 нецелочисленное, то для любого оптимального целочислен¬ ного решения хотя бы одно из должно быть натуральным ЧИСЛОМ И Sj В/г 1. Отметим, что наше нецелочисленное оптимальное реше¬ ние не удовлетворяет ограничению (2.33) и отсекается им от многогранника 2. Если оптимальное решение полученной задачи нецело¬ численно, то продолжаем процесс *). Проиллюстрируем этот метод на решении примера пре¬ дыдущего пункта. В результате решения без требования целочисленности была получена таблица — У1 — У 2 — Уз 1 4 2 0 18 х\ — 10 10 10 1 3 0 23 х2 = 10 10 10 9 3 1 7 Х3 = 10 10 10 2 4 1 194 Z = 10 10 10 Для отыскания целочисленного решения вводим дополнитель¬ ное ограничение У1 + № + Уз 1 *) В [296] приведены необходимые условия его сходимости.
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ 109 § 8] или у 4 — 54 + У2+Уз —1^0; вносим его в таблицу — У1 — У 2 — Уз 1 4 2 18 г, = 0 л 1 10 10 10 1 3 23 х2 = 10 10 0 10 9 3 7 *з = 10 10 1 10 У 4 = 1-11 —1 —1 —1 2 4 194 Z = 1 10 10 10 и производим шаг модифицированного жорданова исключе¬ ния с разрешающим элементом —1, выбранным по правилам двойственного симплекс-метода. Придем к таблице — У 4 — У 2 — Уз 1 4 6 4 14 10 10 10 10 1 4 1 24 10 10 10 10 9 6 19 16 10 10 10 10 —1 1 1 1 2 2 8 192 10 10 10 10 Решение, полученное из этой таблицы, опять нецелочисленно, 'гак что вводим дополнительное ограничение у4 + У2 4“ Уз 1
110 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II или у5 = у4 + у2 + у3—1^0. Вносим его в таблицу — У 4 — У 2 — Уз 1 4 6 4 14 10 10 10 10 1 4 1 24 ’ 10 10 10 10 9 6 19 16 ’ 10 10 10 10 —1 1 1 1 —1 ЕЛ —1 —1 2 2 8 192 10 10 10 10 и производим шаг модифицированного жорданова исключения с разрешающим элементом, выбранным опять по правилам двойственного симплекс-метода. Придем к таблице — У4 — Уб — УЗ 1 2 2 1 0 1 0 2 6 19 10 10 из которой находим целочисленное оптимальное решение: maxz= 19, достигаемое при х^ — 2, х2 — 2> л3—1.
§ 9] ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 1Ц § 9. Параметрическое программирование [2] 1. Постановка задачи. Рассмотрим теперь некоторое обобщение задачи линейного программирования, когда коэф¬ фициенты целевой функции являются уже не постоянными, а линейно зависят от некоторого параметра t. Точная формулировка задачи параметрического програм¬ мирования выглядит так: Дана линейная при каждом [а, р] функция (целевая) */= 2 (2-34) /■= 1 и система ограничений (Z= 1, m), (2.35) 7=1 определяющая некоторый непустой многогранник 2. Тре¬ буется разбить сегмент [а, р] на конечное число подмножеств так, чтобы для всех значений параметра t из каждого под¬ множества максимальное значение zt достигалось в одной и той же вершине многогранника й. 2. Алгорифм решения задачи. Шаг алгорифма состоит из двух действий: 1) решения задачи линейного программирования при огра¬ ничениях (2.35) и целевой функции, полученной из (2.34) при некотором определенном значении t (т. е. отыскания соответствующей вершины многогранника 2, в которой до¬ стигается max^z); 2) определения подмножества всех значений параметра Л для которых zt достигает соответствующего максимума в по¬ лученной вершине. 1) Полагая / = а, получаем целевую функцию = 2 (Pj + Wj) (— xj) с постоянными коэффициентами и решаем обычную задачу максимизации линейной формы za при ограничениях (2.35), которые по предположению совместны. *) Знаки минус перед переменными мы ставим для удобства вычислений.
112 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. ц Для этого выписываем обычную таблицу, к которой до¬ бавляем снизу еще две строки. В первой из них располагаем числа рр а во второй qj. Для получения коэффициентов линейной формы zt нужно коэффициенты последней строки умножить на t и сложить с коэффициентами предпоследней: Преобразуя таблицу по правилам симплекс-метода, мы встретимся со следующими двумя возможностями: а) либо найдем конечный максимум функции za, б) либо убедимся в ее неограниченности. Исследуем оба случая. а) Пусть оказалось, что maxza<oo, т. е. мы пришли к таблице, в которой все коэффициенты ^-строки (а также свободные члены) неотрицательны. Переходим тогда ко вто¬ рому действию. 2) Находим множество всех значений параметра /, для которых max г, достигается в той же вершине многогран¬ ника 2, что и max£a. Очевидно, оно состоит из тех и только тех значений Л для которых все коэффициенты ^-строки последней таблицы неотрицательны, т. е. для которых сов¬ местна система Pj tq'j 0 (/=1, «... п) (2.36) (/ = а— одно из этих значений). После несложного анализа системы (2.36) убедимся, что искомое множество значений параметра t удовлетворяет не¬ равенствам <Х] < t < a2,
§ 9] ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 113 где [ maxf—— а1 j q'j> (Л ' j — OO, IU-4Y a2=|9'.<0\ 'W [ + °°> Действительно, если среди есть как положительные, так и систему тех неравенств из (2.36), для которых > 0, найдем, что если если если существуют существуют если все q. 0. коэффициентов qj отрицательные, то, Я] < О, (/=1, ...» п) решив сначала 7; > О’ (q'j > 0) и, значит, «1 = max . qj/ Решив затем систему тех неравенств из (2.36), для которых <7у<0, найдем < 0) и, значит, a2= min^— q'j одного знака, то в случае *7у<0 (/=1, ..., п) /, для которых совместна система (2.36), не ограни- «!= — ОО. Если все все значения чены снизу и Если же все q'j >0 (j = 1, ..., /г), то значения t не ограничены сверху и а2 = -|-оо. Нас, конечно, интересуют лишь те из полученных зна¬ чений /, которые принадлежат сегменту [а, р]. Если а2^>р, то задача решена: для всех [a, (3] функ¬ ция zt достигает максимума в той же вершине многогран¬ ника 2, в которой достигается тах,га. Если же «2=-^<₽, 8 С. И. Зуховицкий, Л. И. Авдеева
114 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II а все коэффициенты У0-го столбца в последней таблице не¬ положительны, то при t > а2 коэффициент р' -\-tq\ будет 'О •'о отрицательным, функция zt — неограниченной сверху, и за¬ дача опять решена: для всех t £ [а, а2] функция zt дости¬ гает максимума в той же вершине, что и za, а для t £ (а2, р] она не ограничена. Пусть снова а2 < р и достигается лишь при У = У0: но среди коэффициентов У0-го столбца есть положительные. В этом случае повторяем шаг алгорифма, выполняя действие 1), но с целевой функцией га2 вместо za, т. е. производим шаг модифицированного жорданова исключения с У0-м раз¬ решающим столбцом и приходим к соседней вершине мно¬ гогранника й. При этом, очевидно, z*2-строка не меняется, так что 2:а2 достигает максимума в новой вершине. Если же система неравенств типа (2.36) совместна и при t =/= а2, то t > а2, так как при t < а2 получили бы <0, где — разрешающий элемент, т. е. соответствующая си¬ стема (2.36) несовместна. Если а2 достигается при нескольких значениях /, напри¬ мер при /=уо, ур..., yvp то при выполнении действия 1) следует в качестве разрешающего брать тот из столбцов Уо, • • •» А» для которого при достаточно малом е > 0 вы¬ полняется неравенство Pi + (а2 + е) Qi < 0» J v J V т. е. разрешающим следует выбирать любой из этих столб¬ цов с q, <0. Другими словами, надо решить задачу мак- симизации ^а2+е при ограничениях (2.35). После конечного числа шагов модифицированных жорда- новых исключений либо избавимся от всех отрицательных q^ и получим вершину, в которой достигается максимум функ¬
§ 9] ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 115 Если же а' > 0, то для t £ 'О сегмента [а, {3] сегмент , В . ции га2+е, т. е. придем к случаю а), либо убедимся в не¬ ограниченности za2d.e, т. е. придем к случаю б). б) Нам осталось еще рассмотреть возможность б), когда в результате действия 1) оказалось, что функция za не ог¬ раничена сверху, т. е. когда мы пришли к таблице, в ^«-стро¬ ке которой есть отрицательный коэффициент, например р + а все коэффициенты соответствующего Л-го столбца неположительны. Если при этом q' 0, то коэффициент р' -\-tqr. при 'о Jo 'о всех будет отрицательным и функция zt будет неогра¬ ниченной сверху при всех [а, р], так что задача решена. а, ) коэффициент ч/ р' будет отрицательным и, значит, функция zt будет неограниченной,. Для вопрос требует нового ис- Ч следования, т. е. применяем алгорифм, рассматривая вместо г 1 Отметим, наконец, что после конечного числа шагов задача будет решена, так как в каждом шаге определяется либо интервал, для которого полученная вершина оптимальна, а таких вершин конечное число и они не могут повторяться, либо интервал, для которого целевая функция не ограничена, что соответствует некоторому ребру (грани) многогранника 2, которых также конечное число и повторяться они также не могут (в обоих случаях предполагается, что нет вырож¬ дения). 3. Пример. Решить задачу параметрического программи¬ рования для целевой функции Z^ = (2 — 0 *^1 "4“ сегмента [1, 10] и ограничений У1 = — 2Х|— 8^-0, у2= Xj+ х2—1>0, Vo = 3%i — 2х2 —I— 3>0, У4 = — х2+4>0. 8*
116 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II Первый шаг. 1) При t=\ имеем целевую функцию “I- Составляем далее таблицу — хг — х2 1 У1 = У2 = Уз = У< = 2 1 I-H -1 ' —3 2 1 —1 8 —1 3 4 —1 —1 0 —2 —1 0 1 0 0 и решаем задачу максимизации zx. Исключив координаты хг и х2, получим таблицу — У2 — У1 1 и выражения для и х2: *1 = У2 — х2 = 2у2 + у1 —6.
§ 91 ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 117 Для отыскания опорного решения делаем шаг модифи¬ цированного жорданова исключения с разрешающим элемен¬ том —3. Получим — —У1 1 7 1 3 3 1 2 3 3 15 3 1 2 3 3 4 0 1 8 1 1 ~ з- —4 Сделав шаг модифицированного жорданова исключения с разрешающим элементом -^- , получим таблицу — Уз ~У1 1 3 1 45 У4 = 7 7 7 У 2 = 1 5 36 7 7 7 1 5 43 г1 = 7 7 7 0 1 8 27= ■ 1 2 13 7 7 7 из которой находим 43 max — ,
118 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД (ГЛ. 11 достигающийся при А 45 36 Уз = У1 = 0- У4 = —» У2 = -г» т. е. при 13 30 Х1 = -у-, Х2 = -Т. 2) Определяем множество всех значений параметра Л при которых шах г, достигается в полученной вершине 13 30 т х1 = -у, х2 = -у. Так как в последней строке предыду¬ щей таблицы есть положительные и отрицательные числа, то находим т. е. эта вершина оптимальна для Для max^f имеем тах^у = 8 — Второй шаг. Так как а2 = ^-<10 = р, то определяем коэффициенты Zi -строки, заменяем в предыдущей таблице ~2 ^-строку на Zj-строку: *2 — Уз — У1 1 3 7 1 7 45 7 1 5 36 7 7 7 1 3 0 ¥ 2 0 1 8 1 2 13 7 ’ 7 7
ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 119 и делаем шаг модифицированного жорданова исключения с разрешающим элементом у. Получим таблицу — Уз — У 2 1 27 5 36 5 1 0 3 2 2 1 7 4 5 ~ 5 5 1 2 1 5 5 5 Повторяем действие 2): находим все значения при которых 4 - 1 . тах^ = у+ у достигается при А 27 36 Уз = У2 = 0- У4=-у У1 = -5"’ т. е. в вершине 1 6 *1— У’ *2 — 5 • Так как все qj > 0, то а2 = -|-(:х)’ а aj = max Qj > О откуда вершина оптимальна для у < / < + оо, и задача ре¬ шена: промежуток [1, 10] разбивается на два: ^1, yj и [у, 10^. В вершине 13 _ 30 Л?! — 7 , Х2 — у
120 ЛИНЕЙН. ПРОГРАММИРОВАНИЕ И СИМПЛЕКС-МЕТОД [ГЛ. II maxzz достигается для всех у]» а в вершине 1 6 = х2=5 maxzz достигается для всех |_-g-, 10J. 4. Двойственная задача параметрического программи¬ рования. Рассмотрим еще задачу, двойственную к задаче параметрического программирования. Эта двойственная за¬ дача формулируется так: Дана линейная функция т ■w=^iaiui (2.37) Z=l и система линейных ограничений т S аци1> (У=1 «)• (2-38) i= 1 где а t р. Требуется разбить сегмент [а, [3] на конеч¬ ное число подмножеств так, чтобы для всех значений пара¬ метра t из каждого подмножества минимальное значение целевой функции w достигалось в вершинах, определяемых одной и той же подсистемой системы т ^aljui = pj-\-tqj (/=1 и). т. е. достигалось в вершинах, отличающихся лишь парал¬ лельным сдвигом определяющих, их плоскостей. По общей теории двойственности § 7, решая одну из двойственных задач, например задачу (2.34) — (2.35), мы тем самым решаем и вторую задачу (2.37) — (2.38). 5. Геометрическая интерпретация. Система ограниче¬ ний (2.35) определяет некоторый непустой многогранник 2, а уравнение za = 0 — некоторую плоскость, проходящую через начало координат. Решив задачу линейного программирования при / = а, мы найдем вершину Рх многогранника 2, уклонение кото¬ рой от плоскости га = 0 максимально. Изменяя значение параметра t, мы тем самым изменяем коэффициенты уравнения 2^ = 0, т. е. поворачиваем пло-
§ ПАРАМЕТРИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 121 скость za — 0 около начала координат. При этом максималь¬ ное уклонение от новой плоскости = § будет достигаться в той же вершине Pv что и максимальное уклонение от плоскости za = 0, до тех пор, пока плоскость ^ = 0, поворачиваясь около начала координат, не станет парал¬ лельной какому-нибудь ребру или грани многогранника £2, проходящей через вершину Pv На рис. 9 в вершине Рг будет достигаться maxzP пока прямая zt — 0 не станет параллельной ребру Пусть это произойдет при t = а2. Для этого значения параметра t задача линейного програм¬ мирования (отыскания точки многогранника 2, в которой максимизируется форма га2) имеет бесчисленное множество решений (на рис. 9 — все точки ребра Р^Р^)- Сделав шаг модифицированного жорданова исключения, мы перейдем по ребру, параллельному плоскости ^а2 = 0, к соседней с Рх вершине Р2 многогранника. Поворачивая теперь плоскость za2 — 0, мы получим новое множество значений параметра /, для которых максимум линейной формы zt достигается в вершине Р2 и т. д. Если многогранник 2 неограниченный, то при некоторых значениях параметра t плоскость zt — Q может, очевидно, занять такое положение, для которого значение формы zt не ограничено.
ГЛАВА III НЕКОТОРЫЕ ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В настоящей главе иллюстрируется применение теории, изложенной в гл. II, к ряду практических задач, математи¬ ческой моделью которых служит задача линейного програм¬ мирования. Из обширного круга таких задач приводятся лишь наиболее типичные, и численные примеры к ним решаются симплекс-методом. Что же касается весьма важной транс¬ портной задачи, то эффективные методы для ее решения изложены в гл. IV. § 1. Задачи оптимального производственного планирования *) 1. Задача о максимальной рентабельности предприя¬ тия. В § 7 гл. II, при описании экономической интерпрета¬ ции основной задачи линейного программирования, была уже приведена одна из задач оптимального производственного планирования. В ней преследовалась цель максимального выпуска одного вида продукции из имеющихся запасов сырья при наличии разных технологий для ее производства. При¬ мером другой распространенной задачи оптимального произ¬ водственного планирования, также сводящейся к задаче линейного программирования, может служить задача дости¬ жения максимальной рентабельности предприятия при произ¬ водстве из имеющихся запасов сырья различных видов продукции. Приведем схему такой задачи. *) Во всех задачах этого параграфа ищутся целочисленные ре¬ шения; см. также подстр. прим, на стр. 132,
§ 1] ЗАДАЧИ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ 123 Пусть для изготовления каждого из и видов продукции употребляется т видов сырья, причем расход Z-го вида сырья, на единицу /-го вида продукции составляет aLj еди¬ ниц. Пусть, далее, на каждой единице продукции /-го вида предприятие получает прибыль pj рублей. Требуется определить, сколько единиц xv .... хп каждого вида продукции должно изготовить предприятие, чтобы обеспечить наивысшую рентабельность производства, если учесть, что сырья Z-го вида имеется в распоряжении предприятия at единиц (Z = 1, . . ., т). Так как при плане производства х(хр .. ., хп) из запаса сырья az расходуется аахх-\- ... -\-а1пхп единиц сырья /-го вида, а прибыль при этом плане составляет р1х1-\- .. . . . . + Рпхп рублей, то математической моделью задачи служит следующая задача линейного программирования: Найти xv ...» хп, максимизирующие линейную форму £ = Р1*1 + • + Рпхп при ограничениях + ••• (/=1, ...» т), > 0, .. ., > 0. 2. Общая задача производственного планирования [9]. Рассмотрим теперь так называемую общую задачу производ¬ ственного планирования, которую сформулируем так. Имеется п различных технологий (или предприятий) для выпуска по каждой технологии комплектной продукции (например, машины). Каждый комплект состоит из kx дета¬ лей (предметов) № 1, из k2 деталей № 2 и т. д., из ks де¬ талей № 5. Для их производства используются т различных ингредиентов (например, различные виды сырья, электро¬ энергия, зарплата и т. д.), имеющихся в ограниченных количествах av ..., ат, причем пр Z-й технологии £-й ингредиент используется за один цикл производства в коли¬ честве aik единиц (Z—1, ..., n; k=t=l, ..., m), а /-й де¬ тали по /-й технологии будет при этом произведено единиц (/=1, ..., п; /= 1, ...» $). Пллан х(хР ..., хп) производства означает интенсивности применения каждой технологии, так что xL — число циклов производства по Z-й технологии (/=1, .... п).
124 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III Все это удобно представить в виде таблицы: \ № ингре- хдиента № \ техно- \ логин \ 1 . .. k . . т \ № . \ детали 1 . .. J *. . . 5 План x 1 #И . • а\т Ьц . •. bls *1 Z .. .. • • aim Ьц . ..btj . • • b[S xl п агг\ • • • ank • • ■ ■ апт Ьщ ■ ■ • bnj . • • bns xn По данному плану х (хР хп) расход £-го ингре¬ диента равен alkxx + • • • + ankxn (£ = 1 > ...» /п), а вы¬ ход у-й детали равен Ь^хх-\- ... + bnjXn (у=1, .... s). Так как в каждом комплекте готовой продукции должно содержаться kj единиц у-й детали, то выход количества ••• ~\-bnjXn этой детали позволит его использовать для составления *i/*i + ... +bnjxn kj комплектов, и, таким образом, количество полных ком¬ плектов, которое можно будет выпустить по данному плану, равно наименьшему из частных ... + bnXxn bxsxx -1- ... bnsxn ^1 ks Задача заключается в выборе такого плана (оптимального), по которому из имеющихся запасов av ...» ат ингредиен¬ тов будет выработано наибольшее количество полных ком¬ плектов. Математическая модель этой задачи выглядит так: Среди неотрицательных решений системы линейных не¬ равенств л11х1+ ••• + anlXn^aV (3.1) W1 + • • • +«ЛЛ <ат
§ И ЗАДАЧИ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ 125 найти такое, для которого величина + • • • + ^njXfl min 7 ki имеет наибольшее значение, т. е. надо найти такое решение, для которого достигается следующий «максмин»: ^1/^1+ ••• + bnjXn max min т . X 1 < j < 5 “j В случае $=1 задача превращается в типичную задачу линейного программирования — задачу максимизации линей¬ ной формы „ £ц-*1+ ••• + 2 kt при ограничениях (3.1) и (Z=l, ..., n). Введением дополнительной переменной £ сведем рассма¬ триваемую общую задачу к следующей задаче линейного программирования: найти максимальное значение линейной формы z = ^ (3.2) при ограничениях (3.1) и Ь\\х\ + ••• + bn\Xn t b\sx\ + ••• + bfisxn \ t v——— KS xz О (1=1 n), l>0. (3.3) Замечание. Эквивалентность рассматриваемой задачи полученной задаче линейного программирования легко дока¬ зывается. Аналогичный вопрос подробно рассматривается в § 1 гл. V. 3. Задача о наилучшем распределении программы между несколькими предприятиями (об оптимальном использовании оборудования) [9]. Часто приходится решать следующий, несколько упрощенный вариант общей задачи производственного планирования.
126 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [I Л. III Пусть каждый из п видов изделий, из которых комплек¬ туется окончательная продукция, может быть поставлен на производство на каждом из т типов предприятий (стан¬ ков), причем имеется cL предприятий Z-го типа (/= 1, . .., /п), каждое из которых может изготовить в месяц изделий у-го вида, и в каждый комплект готовой продукции должно входить kj изделий /-го вида (/==1, ...» п). Каждое пред¬ приятие должно по плану выпускать продукцию лишь одного вида. Ставится задача об оптимальном распределении произ¬ водственной программы между предприятиями, т. е. об опре¬ делении числа x{j (/=1, ..., m; j— 1 я) предприя¬ тий /-го типа, которые надо специализировать на изгото¬ влении изделий у-го вида, чтобы обеспечить максимальный выпуск комплектной продукции. Очевидно, что сформулированная задача сводится к общей задаче производственного планирования (п. 2), если вместо разных технологий рассматривать разные предприятия и не учитывать расхода ингредиентов. Действительно, при плане %п, х^ хтп изделий у-го вида будет выпущено a\jxlj~\~ ••• -\~amjxmj (/=h •••» единиц, а число полных комплектов из них будет равно наименьшему из чисел *11*11 + ■•• + ат\хтл а\пх\п.~\~ ^тпхтп ^1 kn т. е. равно ••• amjxmj min т . 1 < J < п Введением дополнительной переменной £, такой, что aijXij+ ... +amjxmj k] > * (/ = 1 n), рассматриваемая задача сводится к задаче линейного про¬ граммирования *) — максимизации формы *) См. замечание на стр. 125.
§ П ЗАДАЧИ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ 127 при ограничениях ■ +'‘.^ (У=1 Л; ХИ + • • • + Х1п — Ci (Z = 1 , . . ., /П), £>0, х/;>0 (/= 1, ..т; /= 1, ..п). 4. Пример [9]. Для производства комплектной продук¬ ции требуется изготовить два вида изделий. Их изготовле¬ ние может быть поставлено на каждом из пяти типов пред¬ приятий; производственная мощность предприятия и коли¬ чество предприятий каждого типа даны в таблице: Тип предприятия Число предприятий Производственная мощность одного предприятия по изделиям № 1 по изделиям № 2 № 1 5 100 тыс. 15 тыс. № 2 3 400 » 200 » № 3 40 20 » 2,5 » № 4 9 200 » 50 » № 5 2 600 » 250 » Определить, сколько предприятий каждого типа надо поста¬ вить на производство первого и сколько на производство второго изделия, чтобы обеспечить максимальный выпуск комплектов, если в каждый комплект должно входить два изделия первого вида и одно второго. Обозначим через число предприятий /-го типа (/=1, 2, 3, 4, 5), которые планируется поставить на производство у’-го (/=1, 2) изделия. Тогда задача сводится к максими¬ зации линейной формы Z — $ при ограничениях 100хи —|—400^21 20хз 1 —(—200x41 ~|“600x5i \ с 2 15X12 Н” 200х22 2,5х32 —|— 50х42 —|— 250х32 *11 + *12 5, *21 + *22 “ *31 + х32 = 40, *41 + х42 = 9, *51 + *52 “ 2, = 1 , ..., 5;
128 приложения Линейного программирования (гл. nt Перепишем ограничения задачи в виде 0= - -Х11- ~ *12”Ь 5» 0= - - Х21 ~ “ *22 Н" 3, 0 = - “ *31 “ “ *32 + 40’ 0= - “ *41 ” “ *42 4“ 0, 0= - “*51" “ *52 4“ 2’ = 100хп 4-400х21 + 20х31 + 200х41 + 600х51 — 2£ О, у2== 15X12 Н- 200х22 “I- 2,5х32 —50х42 —250х^2 — £ 0. Записав условия, как обычно, в виде таблицы и освобо дившись от 0-уравнений, получим — *12 *22 *32 — *42 *52 “ У 2 1 *11 = 1 0 0 0 0 0 5 *21 = 0 ш 0 0 0 0 3 *31 = 0 0 1 0 0 0 40 *41 = 0 0 0 1 0 0 9 *51 0 0 0 0 1 0 2 У1 = 130 800 25 300 1100 —2 5500 Ь = • —15 —200 —2,5 —50 - -250 1 0 Z = —15 -200 —2,5 —50 - -250 1 .0 Так как все свободные члены неотрицательны, то сразу переходим к отысканию оптимального решения. Получим последовательность трех таблиц, третья из которых имеет вид *12 —Х21 —*32 —У1 —*51 —у2 1 *11 — *22 — *3\ = *41 = *52 — *42 = 6 = Z = 5 3 40 6 2 3 1250 20 200 5 1 200 2 1250 3 3 3 6 3 3
ЗАДАЧА ОБ ОПТИМАЛЬНОМ РАСКРОЕ МАТЕРИАЛОВ 129 Все коэффициенты z-строки положительны, так что по¬ лучено оптимальное решение: X J2 *^21 '^'32 ’—" ^51 ~~ О, "^11 — *^29 3, х31 = 40, х41 = 6, х52 = 2, х42=3; при этом шах г = 1250 комплектов. § 2. Задача об оптимальном раскрое материалов (о минимизации отходов) 1. Постановка задачи. Пусть некоторый полуфабрикат (например, листы фанеры) поступил на предприятие в виде т различных партий, содержащих соответственно av ..ат единиц полуфабриката одинакового для каждой партии раз¬ мера. Из поступивших полуфабрикатов требуется изготовить возможно большее число комплектов деталей, в каждый из которых входит kx деталей первого вида, k2 деталей второго вида и т. д., kt деталей /-го вида. Пусть каждую единицу полуфабриката можно раскроить на детали п различными способами, причем при раскрое единицы f-й партии у-м спо¬ собом получается Oys деталей 5-го вида. Обозначим через число единиц из /-й партии полу¬ фабрикатов, которые намечено раскроить у-м способом, так что из Z-й партии при у-м способе раскроя будет получено aijsxij деталей 5-го вида. Всего же по плану хп, ... ..., xZy, ..., хтп из всей f-й партии деталей 5-го вида п будет получено 2 а из всех т партий их будет полу- 7 = 1 т п чено 2 S ^ijSxij' Так как в каждый комплект готовой про- / = 1 ;=1 гп п дукции должно входить ks деталей 5-го вида, то 2 2 aijsxij i = 1 j = 1 Деталей позволит их использовать для составления т п 2 aijsxij *=1 7 = 1 ks 9 С. И Зуховицкий, Л И. Авдеева
130 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. II] комплектов, и, таким образом, количество полных ком¬ плектов, которое можно будет выпустить по данному плану ||х/у||, равно наименьшему из частных X X Х«,7А7 / = 1 j=1 /=1 у = 1 Мы пришли, таким образом, к задаче п. 2 § 1. Введением дополнительной переменной £ мы аналогично тому, как это сделано в п. 2 § 1, сведем рассматриваемую задачу к задаче максимизации линейной формы z = при ограничениях т п (s=l /). Xi\ + • • • + xin — at (Z = 1, ..., ni), £>0, xiy>0 (Z=l tn; J==l, ri). 2. Пример. В обработку поступили две партии досок для изготовления комплектов из трех деталей, причем пер¬ вая партия содержит 50 досок длиной по 6,5 м каждая, вторая содержит 200 досок длиной по 4 м каждая. Каждый комплект состоит из двух деталей по 2 м каждая и одной детали длиной в 1,25 м. Как распилить все доски, чтобы получить возможно большее число комплектов? Доска длиной в 6,5 м может быть распилена на детали требуемых размеров следующими способами: 1) 3 детали по 2 м, 2) 2 детали по 2 м и 2 детали по 1,25 м, 3) 1 деталь в 2 ж и 3 детали по 1,25 м, 4) 5 деталей по 1,25 м. Доска длиной в 4 м может быть распилена на детали следующими способами: 1) 2 детали по 2 м, 2) 1 деталь в 2 м и 1 деталь в 1,25 м, 3) 3 детали по 1,25 м. Обозначим через хп, х12, х13, х14 количество досок дли¬ ной в 6,5 м, которые планируется распилить соответственно
§ 2] ЗАДАЧА ОБ ОПТИМАЛЬНОМ РАСКРОЕ МАТЕРИАЛОВ 131 1-м, 2-м, 3-м и 4-м способами; через х21, х22, х23— коли¬ чество досок длиной в 4 д которые планируется распилить соответственно 1-м, 2-м и 3-м способами. Тогда задача сводится к максимизации линейной формы при ограничениях Х11 + х12"4~х13'4" Х14 = 50, Х21 “F Х22 + Х23 = 200, 3X11 2-V12АГ13 4~ 2х21 х22 о Перепишем ограничения в виде У1 — Зхп + 2х12+ х13+ 2х21 -(-х22 — 2£ 0, у2= 2х12-|- 3x13-j- бх14 —j—Х22 “F ^Х23 0. о = — Хп — *12 — х13 — х14+ 50, 0 = — х21 — х22 — х23 + 200, * 11 0, X j2 0, X j3 0, X |4 0, Х21 0, Х22 0, *23 О и составим таблицу — *и — *12 — *13 — *14 *21 *22 — *23 -г 1 У1 = —3 —2 —1 0 —2 —1 0 2 0 У 2 === 0 —2 —3 —5 0 —1 —3 1 0 0 = Щ 1 1 1 0 0 0 0 50 0 = 0 0 0 0 1 1 1 0 200 z = 0 0 0 0 0 0 0 —1 0 Освободимся от 0-строк, сделав два шага модифицированных жордановых исключений, и вычеркнем столбцы коэффициен- 9*
132 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. Ill тов под перенесенными наверх нулями; придем к таблице — *12 — *13 *14 *22 *23 -6 1 У1 = 1 2 3 1 2 2 550 у2 = —2 —3 —5 —1 —3 1 0 *11 = 1 1 1 0 0 0 50 *21 = 0 0 0 1 1 0 200 2 = 0 0 0 0 0 —1 0 все свободные члены которой неотрицательны. Перейдя к отысканию оптимального решения, получим последовательность таблиц, последняя из которых имеет вид — *1з —хи yL —х22 —х2з —У2 1 75 2 425 2 25 2 200 ± 1 3 1 0 1 8 8 8 8 4 425 2 Коэффициенты ^-строки последней таблицы неотрица¬ тельны, следовательно, процесс окончен и нет надобности вычислять остальные коэффициенты таблицы. Так как реше¬ ние должно быть целочисленным, то в качестве приближен¬ ного решения можно принять ближайшие к полученному целые числа, удовлетворяющие условиям задачи. Очевидно, ими будут х14=38, х12=12, х21 = 200, х13 = хи = х22 — х23 = 0; max z = 212 *). *) Для отыскания целочисленного решения можно было бы воспользоваться одним из приемов, описанных в § 8 гл. II. Если же, как у нас, значения переменных в полученном оптимальном реше¬ нии достаточно велики (ху 1), то в качестве приближенного решения можно взять ближайшее к оптимальному целочисленное допустимое решение.
§ 3] СЕЛЬСКОХОЗЯЙСТВЕННЫЕ ЗАДАЧИ 133 § 3. Сельскохозяйственные задачи 1. Задача о диете (о смесях). Пусть дневная потреб¬ ность в каких-то веществах, например бедках, жирах, угле¬ водах, витаминах и т. д., задана и известно содержание этих веществ в имеющихся продуктах, а также цена еди¬ ницы каждого продукта. Ставится задача определения такого рациона, который, удовлетворяя дневной потребности в не¬ обходимых веществах, вместе с тем был бы наиболее де¬ шевым. Конкретнее, пусть в состав дневной нормы питания должно входить не менее чем ах единиц первого вещества, не менее чем а2 единиц второго вещества и т. д. и, нако¬ нец, не менее чем ат единиц /n-го вещества. Пусть, далее, для изготовления этого рациона имеется п видов продуктов по цене /?у за единицу у-го продукта, причем известно, что в единице /-го продукта содержится atj единиц Z-ro веще¬ ства. Тогда, если обозначить через Ху количество единиц у-го продукта, которое планируется ввести в дневной рацион, то при плане хг хп дневное содержание Z-ro вещества составит • • • + ainxn единиц, а так как оно должно удовлетворять минимальной дневной потребности, то ••• (/=1 т). При таком плане цена всего дневного рациона составит ве¬ личину * = P1*1 + ••• +рпхп. Задача заключается в отыскании такого неотрицательного решения системы линейных неравенств auxi~Ь +а1Л ат\х\ + ••• + атпхп^> ат> для которого выражение (цена рациона) Z = P1X1+ ... +рпхп имеет наименьшее значение. Если предположить, что запасы продуктов, из которых составляется рацион, ограничены, то на переменные xv ..., хп нужно наложить еще ограни-
134 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III чения вида хх < ...» хп < Ьп, где bj — запас у-го про¬ дукта. Рассмотренная задача о диете с успехом используется, например, при составлении наиболее дешевого рациона для откорма скота. К описанной задаче сводятся , и так называемые задачи о смесях, т. е. задачи о составлении оптимальных в опре¬ деленном смысле смесей из имеющихся веществ. Примером такой задачи может служить задача составления таких сме¬ сей нефтепродуктов, которые, удовлетворяя определенным техническим требованиям, были бы наиболее дешевыми, а также задача о минимизации стоимости окончательного продукта при составлении рецептов сплавов. 2. Задача о наилучшем использовании посевной пло¬ щади. Пусть под посев п культур отведено т земельных массивов площадью соответственно в ..., ат га, причем пусть средняя урожайность у-й культуры на Z-м массиве составляет aLj центнеров с гектара, а выручка за один центнер у-й культуры составляет pj рублей. Определить, какую площадь на каждом массиве следует отвести под каждую из культур, чтобы получить максималь¬ ную выручку, если по плану должно быть собрано > не ме¬ нее bj центнеров у-й культуры (у = 1, ..., и). Обозначим через х^ площадь, которую предполагается отвести под у-ю культуру на Z-м массиве, так что xzi + - ~\~хin — ai (Z=l, ..., nt). Ожидаемый средний урожай у-й культуры со всех массивов равен ~}~amjXmp По плану он должен быть не менее bj центнеров: aljXlJ~i~ 4“ ат]ХтН> Ь] (7=1. •••> П). Ожидаемая выручка за урожай у-й культуры равна ••• +amjxmj), а за урожай всех культур — равна Р1(«И*11+ ••• + ат1хт0~\~ ■ ■ ■ ••• +P/i(al/ixlrt+ ••• + атпхтп)'
§ з] СЕЛЬСКОХОЗЯЙСТВЕННЫЕ ЗАДАЧИ 135 Таким образом, задача заключается в максимизации линей¬ ной формы Z = Pi(flilXll+ ••• “Ь ат\Хт\) ~F ••• ••• Pn(a\nxUi~\- -hamnXmn) от m X n переменных xn, .... xZ;-, xmn при выполне¬ нии следующих ограничений: хп 4~ • ■ • + *1п — «г xml + • • • + хтп = ат- allxU • • • 4~ amlxml >bv a\nxU 4- • • • ~Н ^тпХтг г>Ьп • (Z = 1. . .т; J- — 1, . . . ., /г), xlJ>0 и, как обычно, решается симплекс-методом. Иногда задача об оптимальном распределении посевной площади выглядит так: имеющуюся посевную площадь рас¬ пределить под посев п культур так, чтобы обеспечить мак¬ симальный урожай при соблюдении определенного соотно¬ шения kx : k2: : в котором должны производиться эти культуры. Считая, что в каждый набор сельскохозяйственных про¬ дуктов должно входить kx единиц первой культуры, k2 еди¬ ниц второй и т. д., kn единиц n-й культуры, убеждаемся, что эта задача аналогична общей задаче производственного планирования (см. § 1, п. 2). Введением дополнительной переменной £, такой, что ...+ат)хт!^ (у=1> ki рассматриваемая задача сводится к задаче линейного про¬ граммирования — максимизации формы при ограничениях aljx\j~h ••• -}~amjxmj^t ь~. *
136 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. Ill § 4. Задача о закреплении самолетов за воздушными линиями 1. Постановка задачи и сведение к задаче линейного программирования. Эта задача возникает при выборе опти¬ мального варианта плана закрепления самолетов (или судов) за данными воздушными линиями, обеспечивающего необхо¬ димые объемы перевозок при минимальных суммарных эксплуатационных расходах. Она формулируется так: Пусть имеется п различных типов самолетов, которые нужно распределить между т авиалиниями. Пусть месячный объем перевозок самолетом Z-го типа на у-й авиалинии ра¬ вен aLj единицам, а связанные с этим месячные эксплуата¬ ционные расходы составляют Ьц рублей. Определить число x{j самолетов Z-го типа, которое следует закрепить за у-й авиалинией для обеспечения перевозки по этой линии aj еди¬ ниц (/=1, ...» п\ J=lt ...t т) при минимальных сум¬ марных эксплуатационных расходах, если известно, что имеется самолетов /-го типа (/=1, ..., п). Так как объем перевозок по у-й авиалинии равен aVxv+ ••• ~\~ап]хп} U— а суммарные расходы составляют при этом то задача состоит в минимизации линейной формы т п J = 1 1=1 при ограничениях ••• +ащХп1>а} xil + • • • + xim — N i C/=l m), (/ = 1, .... n), xij^Q (/=1, n; y=l, nt) и решается симплекс-методом с учетом целочисленности х^. 2. Пример. Пусть три типа самолетов следует распре¬ делить между четырьмя авиалиниями. В приводимой ниже
§ 4] ЗАДАЧА О ЗАКРЕПЛЕНИИ САМОЛЕТОВ ЗА ЛИНИЯМИ 137 таблице заданы количества самолетов каждого типа, месяч ный объем перевозок каждым самолетом на каждой авиа¬ линии и соответствующие эксплуатационные расходы. Тип Число Месячный объем перевозок одним самолетом по авиа¬ линиям Эксплуатационные расходы на один самолет по авиалиниям самолета самолетов I и 111 IV I | II ’ Ш IV № 1 50 15 10 20 50 15 20 25 40 № 2 20 30 25 10 17 70 28 15 45 № 3 30 25 50 30 45 40 70 40 65 Надо распределить самолеты по авиалиниям так, чтобы при минимальных суммарных эксплуатационных расходах перевезти по каждой из четырех авиалиний соответственно не менее 300, 200, 1000 и 500 единиц груза. Обозначим через число самолетов /-го типа (/=1, 2, 3), которое планируется закрепить за у-й (/=1, 2, 3, 4) авиа¬ линией. Тогда задача сводится к минимизации линейной формы z = 15хц —20х12 “J- 25х40х14 —|— 70x2i 4“ 28х22 —|— 4~ 15х23 -|- 45х24 + 40х31 -j- 70х32 40х33 + 65х34 при ограничениях 15хц —30х21 “I- 25%3| 300, 10xj2 —j— 25х22 —50х32 200, 20xj3 —{— 10х23 —j— ЗОх33 1000, 50х14 —j— 17х24 —45х34 500, Х11 4" Х12“Н Х13~Н х14 = 50, Х21 4" Х22 4“ х23 4" х24 — 20, •*314” *32 4“ Х3з4~ х24~ 50, хо>0 (/= 1, 2, 3; J = 1, 2, 3, 4).
138 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III Перепишем ограничения в виде у! = 15*ц + 30х21 + 25х31 — 300 > 0, у2 = 10х12+25х22+ 50х32 — 200 > 0, У3= 20*134- 10*234-30*33— 1000 >0, у 4== 50*14 4~ 1 7*24 4- 45*34 500 0, 0 •—- * 11 * 19 * 1з * 14 | 50» 0 = *21 *22 *23 *24 4“ 20, 0 = *з1 *32 *33 *34 —|— 30, *t7>o (/=1, 2, 3; у=1, 2, 3, 4). Составив таблицу — *11 — * 12 — *13 — Лн -*21 — *22 — *23 “ *24 “ *31 - *32 -*зз -*34 . 1 У1 = — 15 0 0 0 -33 0 0 0 -25 0 0 0 -300 У 2 = 0 -10 0 0 0 -25 0 0 0 —50 0 0 -200 Уз — 0 0 -20 0 0 0 -19 0 0 0 -30 0 -1000 У 4*= 0 0 0 -50 0 0 0 -17 0 0 0 -45 -500 0 = ш 1 1 1 0 0 0 0 0 0 0 0 50 0 = 0 0 0 0 1 1 1 1 0 0 0 0 20 0 = 0 0 0 0 0 0 0 0 1 1 1 1 30 Z = -15 -20 -25 -40 -70 -28 -15 -45 -40 -70 -40 —65 0 и освободившись от 0-уравнений, получим преобразованную таблицу *12 “*13 -*14 *21 *22 - *24 *31 - *32 -*з< . 1 У1 = 15 15 15 -30 0 0 -25 0 0 450 у2 = |-ю| 0 0 0 -25 0 0 -50 0 -200 Уз = 0 -20 0 10 10 10 30 30 30 100 У4 = 0 0 -50 0 0 -17 0 0 -45 -500 *и = 1 1 1 0 0 0 0 0 0 50 *23 = 0 0 0 1 1 1 0 0 0 20 *33 — 0 0 0 0 0 0 1 1 1 30 Z —- -5 -10 -25 -55 -13 -30 0 -30 -25 2250 в которой еще есть отрицательные свободные члены.
§ 5] ЗАДАЧА О НАЗНАЧЕНИЯХ (ПРОБЛЕМА ВЫБОРА) 139 Переходим к отысканию опорного решения. Сделав два шага модифицированных жордановых исключений, придем к таблице У2 -*Г13 у4 Х21 Х22 Х24 Х31 Х32 -*34 1 У1 = Xj2 = Уз = Xi4 = Хи = Х23 — Х33 = Z * 0 20 100 10 20 20 30 2600 откуда видно, что решение z = 2600, для которого является не только опорным, но и оптимальным (все коэф фициенты z-строки неположительны!). § 5. Задача о назначениях (проблема выбора) 1. Постановка задачи. Будем рассматривать задачу о распределении п механизмов (работников) на п работ так, чтобы каждый механизм (работник) выполнял одну и только одну работу и чтобы при заданной производительности каж¬ дого механизма на каждой из работ суммарный эффект был максимальным. Обозначим через (/, j= 1, . . ., п) производительность ьго механизма на /-й работе. Тогда рассматриваемая задача, известная под названием задачи о назначениях или про¬ блемы выбора, будет заключаться в таком выборе п эле¬ ментов из матрицы ||cz.|| по одному из каждой строки и
140 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III каждого столбца, чтобы их сумма C\jt + £2/2+ ••• ~\~cnjn при k^l) была максимальной. Обозначив через переменную, равную единице, если f-й механизм назначен на j-ю работу, и равную нулю, если он на эту работу не назначен, мы сведем задачу к следую¬ щей задаче линейного программирования: Среди неотрицательных целочисленных решений системы 2zz уравнений xil + xi2 + • • • + Xin — 1 (/ == 1, . . ., д), ••• ~\~xnj—l (J— С •••> означающих, что каждый механизм выполняет одну работу и что каждая работа обеспечивается одним механизмом, найти то которое максимизирует линейную форму ^сих1}, t=i j=i означающую суммарную производительность всех механиз¬ мов *). 2. Пример. Имеются три механизма Av А2, Л3, каждый из которых может быть использован на каждом из трех ви¬ дов работ В2, В3 с производительностью (в условных единицах), заданной в виде таблицы Bi В2 в$ 1 2 3 2 4 1 3 1 5 Требуется так распределить механизмы по одному на каждую из работ, чтобы суммарная производительность всех механизмов была максимальной. Обозначим, как рекомендовалось выше, через пере¬ менную, равную единице, если механизм At назначен на работу Bjy и равную нулю, если механизм At не назначен *) Обычно эту задачу решают специальным алгорифмом [30], менее громоздким, чем симплекс-метод.
§ 5] ЗАДАЧА О НАЗНАЧЕНИЯХ (ПРОБЛЕМА ВЫБОРА) 141 на работу Bj. Тогда суммарная производительность меха низмов запишется в виде линейной формы Х= *ц + 2X12 4“ 3*13 + 2*21 + ^*22"1“*2зН“^*31_1“*32“1_^Л'33’ а ограничения запишутся в виде *11 + *12 + *13 = *21 + *22 “Ь *23 = *31 + *32 + *33 = 1 ’ *11 + *21 + *31 — *12 “Ь *22 Н- *32 =’= 1 ’ * 13 *23 “F *33 = 1 ’ и надо максимизировать форму z при этих ограничениях. Переписав ограничения задачи в виде 0-уравнений, со¬ ставим таблицу — хи —*12 —х13 —Х21 —*22 — *23 — *31 — х32 — х33 1 0 = ш 1 1 0 0 0 0 0 0 1 0 = 0 0 0 1 1 1 0 0 0 1 0 = 0 0 0 0 0 0 1 1 1 1 0 = 1 0 0 1 0 0 1 0 0 1 0 = 0 1 0 0 1 0 0 1 0 1 0 = 0 0 1 0 0 1 0 0 1 1 Z = —1 —2 —3 —2 —4 —1 —3 —1 —5 0 После избавления от 0-строк и вычеркивания столбцов, рас¬ положенных под перенесенными наверх нулями, получим таблицу *22 *23 — *32 *33 1 *11 = 1-11 — 1 —1 —1 —1 *21 = 1 1 0 0 1 *31 = 0 0 1 1 1 *12 = 1 0 1 0 1 *13 = 0 1 0 1 1 Z — 1 3 3 0 9
142 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. lit среди свободных членов которой есть отрицательный, так что опорное решение еще не получено. Сделав шаг модифицированного жорданова исключения с разрешающим элементом 1, получим таблицу — *11 — *23 — *32 — *33 1 *22 = —1 1 1 1 1 * *21 = ш 0 — 1 —1 0 *31 = 0 0 1 1 1 *12 = 1 —1 0 —1 0 *13 = 0 1 0 1 1 Z — —1 4 4 1 10 в которой все свободные члены неотрицательны, так что можно перейти к отысканию оптимального решения. Выбрав разрешающий элемент, как указано в таблице, и сделав один шаг модифицированного жорданова исключения, по¬ лучим окончательно *21 *23 *32 *33 1 *22 = *11 = *31 = *12 = *13 = z — 1 0 1 0 1 1 4 3 0 10 Из последней таблицы следует, что максимальная сум марная производительность всех механизмов равна 10 (ус ловным единицам) и достигается при *п = 0, *12 = 0, *13=1, х21 —0, х22=1» •*'23==0’ *31— 1> *32 = 0, *33 = 0, т. е. при следующих назначениях: механизм Аг на работу В3, » А2 » В2, » Л3 » Bv
ВОЕННЫЕ ЗАДАЧИ 143 § б] Так как в z-строке последней таблицы есть нулевой эле¬ мент, то полученное оптимальное решение задачи не един¬ ственное. Сделав шаг модифицированного жорданова исклю¬ чения с разрешающим элементом из столбца, содержащего, нуль в z-строке, можно найти другое оптимальное решение этой же задачи. § 6. Военные задачи [14] Методы линейного программирования нашли широкое применение и при решении некоторых военных задач. Так как эти задачи часто приходится решать при неполной ин¬ формации, то обычно условия в военных задачах менее определенны, чем в задачах, рассмотренных в предыдущих параграфах. 1. Проблема узких мест. Так обычно называют задачу о наилучшем распределении ограниченных ресурсов между взаимосвязанными звеньями некоторой системы. Рассмотрим задачу о наилучшем распределении выпускае¬ мых промышленностью самолетов между войсками и учеб¬ ными полигонами, на которых обучаются экипажи, для обес¬ печения возможно лучшей боеготовности противовоздушной обороны. Пусть некоторая воинская часть, участвующая в боевых вылетах и подготавливающая, кроме того, на своем учебном полигоне экипажи (летчиков), снабжается на протяжении п, месяцев самолетами по я у единиц (у = 1, ..., п) в начале каждого месяца. Из них часть Xj, для которой имеются в наличии подготовленные экипажи, направляется сразу на фронт, а оставшаяся часть aj — Xj направляется на полигон для обучения новых экипажей. Боеготовность части опре¬ деляется количеством самолетов с подготовленными экипа¬ жами и временем их пребывания в войсках, так называемым числом активных самолето-месяцев. Возникает задача такого распределения получаемых еже¬ месячно самолетов между фронтом и учебным полигоном, при котором будет достигнута максимальная боеготовность части. Пусть до начала рассматриваемой программы на поли¬ гоне имеется zQ самолетов. Число самолетов Zy, используе¬ мых на полигоне для обучения в /-м месяце, будет состоять
144 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III из Zj_x самолетов, имевшихся в предыдущем месяце, плюс я У— Ху самолетов, полученных в начале /-го месяца: = — Ху) (/=1, п). Пусть к началу программы имеется у! уже обученных экипажей, но не обеспеченных самолетами, и в течение ме¬ сяца на одном самолете обучается k экипажей. Число эки¬ пажей уу, обученных к началу /-го месяца, будет состоять из числа Уу_! обученных экипажей, имевшихся к началу предыдущего месяца, и числа k • Zj_x экипажей, обученных за этот (/—1)-й месяц: У/ = У/-1 + £ • и = 2, .... п). Общее число самолетов, направленных в войска к на¬ чалу /-го месяца, не должно превышать обученных к этому моменту экипажей, так что *1+ • • • + X] <> У/ (7=1 п). К концу периода, на который рассчитана программа, самолеты, поступившие в войска в первый месяц, обеспе¬ чат пхх активных самолето-месяцев. Самолеты, поступив¬ шие во второй месяц, обеспечат (п—1)х2 активных само¬ лето-месяцев и т. д. Самолеты, поступившие в течение всех п месяцев, обеспечат боеготовность в количестве лх14"(4—1)х2“1“ ••• — С/—01 xj~{~ ••• • • • +2хл-1 + хп активных самолето-месяцев. Задача заключается в максимизации линейной формы и = их j (п—1)х2+ ... + ^xn-i + хп (/=1, ...» п), (/=2, . . ., п), (/=1, .... п), (/= 1, ...» п). Замечание. К подобной математической модели сво¬ дится задача о распределении поступающего в ограниченном количестве сырья (например, металла), часть которого идет
ВОЕННЫЕ ЗАДАЧИ 145 § 6] на изготовление некоторого изделия, а часть для выпуска оборудования, используемого для производства этого изде¬ лия, если конечной целью является максимальный выпуск рассматриваемого изделия. 2. Задача о рациональном соотношении между раз¬ личными типами бронебойных снарядов. Пусть известно, что противник располагает т видами танковой брони, но неизвестно, в каком соотношении он ее использует для про¬ изводства своих танков. Пусть, далее, имеется п видов бронебойных снарядов и известен закон поражения каждого вида брони каждым из видов снарядов, т. е. известна веро¬ ятность Pij поражения танка с Z-й броней снарядом /-го вида (Z = 1, . . ., т\ / — 1 п). Требуется определить, в каком соотношении надо брать разные виды снарядов, чтобы, смешав их и используя слу¬ чайным образом, обеспечить максимальное значение матема¬ тического ожидания числа выведенных из строя танков про¬ тивника, какими бы видами брони он ни пользовался. Если обозначим через у у число снарядов /-го вида (/==1, . . п) в данной смеси, то математическое ожидание числа пора¬ жений танков с Z-й броней выразится, очевидно, числом = + РтУп- Если же отнести это математическое ожидание к одному снаряду, т. е. все поделить на у1 + ... +ул, то получим ^1 = РцХ1 + ... +pinxn, где х. = _ у2 ' У1+...+У»’ т. е. Xj — доля снарядов /-вида в общем числе всех сна¬ рядов (их количества относятся, как хг: х2: . . . : хп), так что *1 +*2+ ••• Ч~хп— Ь a ML— математическое ожидание числа пораженных танков с Z-й броней, отнесенное к одному снаряду. Если предположить, что противнику известны типы сна¬ рядов, используемые против его танковой брони, и что он будет стараться свести к минимуму возможный ущерб своим бронетанковым силам, то гарантированное среднее число 10 С. И. Зуховицкий, Л. И. Авдеева
146 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III пораженных танков, отнесенное к одному снаряду, составит, очевидно, наименьшее из чисел (7=1, ..., tn). Поэтому задача состоит в таком подборе чисел Xj (7=1, п), чтобы достигался max min х 1^ i tn Введением переменной E, такой, чтобы выполнялись усло¬ вия ~^Pinxn^>^ (/=1, ...» /п), рассматриваемая задача сводится к задаче линейного про¬ граммирования, т. е. к максимизации формы при ограничениях *1+ • • • хп— Р11х1+ + Р1пхп Рт\х 1 + • • • + Ртпхп Ху>0 (/’= 1, . . ., 11). § 7. Линейное программирование и матричные игры Линейное программирование тесно связано с так называе¬ мой теорией матричных игр, а именно, как будет установ¬ лено ниже, любая прямоугольная (или матричная) игра двух партнеров с нулевой суммой и конечным числом стратегий может быть сведена к некоторой задаче линейного програм¬ мирования и, обратно, любая задача линейного программиро¬ вания может быть сведена к решению некоторой прямоуголь¬ ной игры двух партнеров с нулевой суммой. В обеих теориях рассматриваются некоторые экстремаль¬ ные задачи: в линейном программировании решается задача наилучшего распределения ресурсов для достижения желае¬ мых результатов; в теории игр решается задача о выборе стратегии, с помощью которой достигается максимальный выигрыш. Связь между теорией игр и линейным программи¬ рованием впервые была установлена Нейманом [33] и Дан¬ цигом [20].
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРИЧН. ИГРЫ 147 1. Некоторые сведения из теории матричных (прямо¬ угольных) игр. Под матричной или прямоугольной игрой двух партнеров с нулевой суммой понимают совокупность правил, в результате реализации которых сумма выигрышей и v2 первого и второго игроков равна нулю: vx-\-v2 — о» так что выигрыш одного игрока равен проигрышу другого. Игра — одноходовая, т. е. партия состоит из одного хода первого игрока и одного хода второго, причем каждый игрок делает свой ход, не зная хода своего противника. Пусть первый игрок из т возможных ходов (т чистых стратегий) выбирает Z-й ход (Z-ю чистую стратегию), а вто¬ рой игрок из п возможных ходов (п чистых стратегий) выбирает /-й ход (j-ю чистую стратегию), и пусть при та¬ ком сочетании ходов первый игрок получает выигрыш а^ единиц, а второй соответственно —а^ единиц. Эти условия удобно записать в виде прямоугольной матрицы выиг¬ рышей первого игрока / ап • • • а\п \ Л=1 =1Ы1’ ат2 ... атп J где atj (Z = 1, ..., m; j — 1, ..., п)—действительные числа; здесь номера строк соответствуют возможным т чистым стра¬ тегиям (ходам) первого игрока, а номера столбцов соответ¬ ствуют п чистым стратегиям второго игрока. Примером игры двух партнеров с нулевой суммой может служить игра в «орла и решку»: каждый из двух партнеров, не зная хода другого, кладет свою монету орлом или реш¬ кой вверх, причем при совпадении одинаковых наименований второй игрок платит первому единицу, а при несовпаде¬ нии, — наоборот, первый платит второму единицу. В этом случае матрица выигрышей первого игрока имеет вид где в первой (второй) строке выписаны все возможные вы¬ игрыши первого игрока при выборе им орла (решки), 10*
148 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. Ill а в столбцах — выигрыши первого игрока при выборе орла (решки) вторым игроком. Если обозначить через хр ...» хт вероятности (частоты), с которыми первый игрок выбирает соответственно первую, вторую и т. д., m-ю чистые стратегии, а через ур ..., уп — вероятности, с которыми выбирает свои чистые стратегии второй игрок, то наборы чисел Х = (хР хт) и Г = (уР .... уп) называются сметанными стратегиями соответственно пер¬ вого и второго игроков. При этом, очевидно, Х1 + Х2*4" ••• Ь 0 (1= 1, .. ., /п), У1 + У2+ ••• уу>0 (у=1, .... п). Если ...=Хг_1==0. хг=1. х<+1= ... =хт = 0, то такая смешанная стратегия первого игрока является Z-й чистой стратегией; аналогично смешанная стратегия второго игрока, все компоненты которой, кроме у-й, равны нулю, является его у-й чистой стратегией. При выборе игроками смешанных стратегий соответственно X = (xP .... xm) и Y — (yv ..., ул) математическое ожи¬ дание выигрыша первого игрока равно п т Е{Х, Г) = 2 2 /=1/=1 J Если второй игрок выбрал некоторую смешанную стра¬ тегию Yf\ то первому игроку естественно считать лучшей ту смешанную стратегию А"*, при которой достигается тахЕ(Х, Г'): £(Х*, Г) = тах£'(АГ, Г). х Аналогично при выборе первым игроком некоторой сме¬ шанной стратегии X1 второму игроку следует считать луч-
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРЙЧН. ИГРЫ 149 шей ту смешанную стратегию К*, при которой достигается min£(X', У): У Е(Х', У*) = 1тп£(Л'', У). У Ясно, что Х*(У*) зависит от выбора Y' (А’/). Перед каж¬ дым игроком возникает, таким образом, задача выбора оп¬ тимальной смешанной стратегии, т. е. такой смешанной стратегии X (У), при которой гарантированное мате¬ матическое ожидание выигрыша (проигрыша), т. е. матема¬ тическое ожидание выигрыша (проигрыша) при наилучшей игре противника, было бы наибольшим (наименьшим). Другими словами, оптимальная стратегия Х(у) должна максимизировать (минимизировать) величину minf(Ar, У) у max min Е(Х, K) = minE,(-¥, У) ХУ у min max Е (X, У) = max Е (Х, У ух х Основная теорема теории матричных игр (см., напри¬ мер, [10]) утверждает, что каждая матричная игра двух партнеров с нулевой суммой имеет решение, т. е. су¬ ществуют оптимальные смешанные стратегии X и У для обоих игроков, причем max min Е(Х, У) — min maxЕ(Х, Y) = E(X, У)> х у УХ так что для произвольных смешанных стратегий X и У и оптимальных стратегий X, У имеют место со¬ отношения е(х, Y)<CE(X, г). Число v= Е(Х, К) называется ценой игры. В приведенном выше примере игры в орла и решку, мат¬ рица которой имеет вид -I
150 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. ш если каждый партнер выбирает с одинаковой вероятностью как орла, так и решку, т. е. если их стратегии заданы в виде математическое ожидание выигрыша первого партнера равно 2 2 Е(х, /=17=1 =i 4-1+(-1)44+(-1). 2 ’ 2 1 * 2 Следовательно, и математическое ожидание проигрыша вто¬ рого партнера также равно нулю. Можно проверить, что так выбранные стратегии обоих партнеров оптимальны, т. е. и цена игры равна нулю. Цену игры, равную нулю, имеют также все симметрич¬ ные игры, т. е. игры скососимметричными матрицами = = — ajlt Z = 1, ...» /п; j = 1, ..., т). В любой такой игре оптимальные стратегии противников совпадают и цена игры равна нулю. Действительно, пусть X и К — оптимальные смешанные стратегии и Е^Х> Y) = v. При любой смешанной стратегии Y второго игрока имеем v ^Е(Х, К). Положив Y — X и учитывая, что в симметричной игре получим, очевидно, v ^Е(Х, Х) = 0. Аналогично v>e(F. г)=о. так что т/=0 и достигается при совпадении стратегий про¬ тивников. Замечание. Путем прибавления к каждому элементу матрицы выигрышей || || фиксированного числа w можно, сохранив оптимальные стратегии, изменить цену v игры на
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРИЧН. ИГРЫ 151 Действительно, для любой пары смешанных стратегий X и К двух игроков математическое ожидание п т Е(Х, Г)= 2 2 а1]Х1У) j=li=l J выигрыша первого игрока в игре с матрицей ||aZy|| отли¬ чается от математического ожидания Ef(X, Y) выигрыша первого игрока в игре с матрицей + на одно и то же постоянное число w: п т п т Е'(Х, К) = 2 2 («// + w) =22 аих1У)-\- w = j=li=l y=lZ=l J J = E(X, r) + w, так что E' (X, K) = max inin Ef (X, Y) = max min E(X> V) w = x y x Y = e(x, r) + ‘W==^4-^. 2. Сведение матричной игры к задаче линейного про¬ граммирования. Пусть матричная игра двух партнеров с ну¬ левой суммой задана следующей матрицей выигрышей пер¬ вого партнера: По основной теореме игра имеет решение X, Y и цену v=E(X, Y). Для любой смешанной стратегии Y второго игрока имеет место неравенство Е(Х, r)>v. В частности, для любой его чистой стратегии У1= ••• =УУ-1 = 0, УУ=1. уу+1= ... =у„ = о получим
152 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. 1П Таким образом, задача первого игрока, заключающаяся в отыскании оптимальной смешанной стратегии X, при ко¬ торой гарантированное математическое ожидание v его вы¬ игрыша максимально, свелась к отысканию X = (хр .. хт), удовлетворяющего ограничениям а11х1+а21х2~1“ ••• Л" V1+V2 + ... +amnxm'^v, . xL 0 (i — 1, . . ., m), *l+*2+ ••• +xm=1 (3.5) и максимизирующего величину v. Аналогично при любой смешанной стратегии X первого игрока имеем е(х, г) о, в частности, для любой чистой его стратегии -^1 — ••• — a:z_1==0, xz=1, X}+i= ... — хт = О будет Y) = (Z=l /п). Задача второго игрока заключается, таким образом, в отыскании оптимальной смешанной стратегии К, при ко¬ торой гарантированное математическое ожидание v его про¬ игрыша минимально, т. е. заключается в отыскании У = ул), удовлетворяющего ограничениям Л11У1 + ^12^2+ ••• ainyn^Vt ат1У1~\~ ат2У2~^Г ••• + атпУп < <и’ У] >0 (/= 1, ...» п), .У1 + .У2+ ••• +Уп=1 (3.6) и минимизирующего величину v. В силу замечания в конце предыдущего пункта v можно считать положительным.
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРИЧН. ИГРЫ 153 Разделим почленно каждое из соотношений (3.5) — (3.6) на v и положим = (1=1 т), ± = у' (/=1 П). Получим + a2jX2~^~ • • • + amjX’m > 1 (/ = 11 • • •’ ")’ 0 (/ — 1, . . ., zn), х\ + ... +*' = — 1'2* 1 т я) И ацУ1~^ а12У2~^~ ••• (i=l т), У)>0 (j=l, п), X+X + • • • + X = v • (37) (3-8) Так как первый игрок стремится получить максимальное V, то его задача заключается в минимизации формы w=х\;+х'+ ••• + хг =— 1 1 2 1 1 т у при ограничениях (3.7); задача же второго игрока, стремя¬ щегося получить минимальное vt заключается в максимиза¬ ции формы 1 «=Х+Х+ ••• при ограничениях (3.8). Таким образом, задача отыскания решения матричной игры с нулевой суммой, заданной матрицей (3.4), свелась к паре двойственных задач линейного программирования, заданных следующей таблицей: е,= . .. еу = ... ея= W = / / 1 -5'1 •• -У) ~Уп II аи .. ах} ... а\п 1 x’l ъ = «/1 ■■ aij ... ain 1 х'т Чп = ат\ • • ат / ... а.пп I 1 и = —1 .. —1 —1 0
154 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. Ill Пример. Пусть игра двух партнеров задана следующей матрицей выигрышей первого партнера: [~2 -1 5\ А = \ 1 2 3 . V 3. 1 —4/ Эквивалентные задачи линейного программирования заклю чаются в отыскании неотрицательного решения системы — 2х^ —|— х% —|~ ЗХ3 1, х'— 2Xg + х'^1, —|— 3%2 — 4Xg 1, минимизирующего линейную форму = х х2 —|— х', и в отыскании неотрицательного решения системы -2У;- + X — 2^2 + З.У3 < 1, 1 + У 2 — 4Уз 1 ’ максимизирующего линейную форму «=у;+х+уз. Составив совмещенную таблицу е,= / —л ?2 ~ — У 2 63 = ->3 1 Х1 —2 -1 5 1 / t 7]2 = 1 —2 3 1 х3 Ъ = 3 1 —4 1 1 и = —1 —1 —1 0 и решив эту пару двойственных задач, получим max и = min w= 11;
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРИЧН. ИГРЫ 155 он достигается при У1 = 0, — х{ — 5; ,v' = 0, х' = б, так Г = = у2 = ^-. Уз = 4')- 3. Сведёние задачи линейного программирования к матричной игре. Пусть рассматривается следующая задача линейного программирования: требуется найти неотрицатель¬ ное решение системы а11х1 + ^21х2+ ••• + ат1Хт^> Ру а\пХ1~\~ а2пХ2~^~ ••• + атпХт^ Р п> (3.9) минимизирующее линейную форму w = a1x1+ ... +атхт. (3.10) Из совмещенной таблицы «1= .. — У1 11 1 1 II W = 1 *1 *11 = #11 a\j #1/1 a\ Xi Ч = ai\ ,. aij аг„ #z Хщ атл • • amj • • amn 1 и = — Pi • • —Pj ■■ .. —Pn 0 видно, что задача, двойственная к рассматриваемой, заклю¬ чается в отыскании неотрицательного решения системы а11У1 + а12У2”Ь ••• + а1пУп^а1* опМ + «т2У2 + • • • + атпУп < ат> максимизирующего линейную форму « = ЛУ1+ ••• Н-рл- (3.11) (3.12)
156 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III В силу основной теоремы двойственности (гл. II, § 7, п. 3), если существует оптимальное решение одной из пары двойственных задач, то и вторая задача имеет оптимальное решение, причем min w = шахи. Как было показано в п. 4 § 7 гл. II, отыскание опти¬ мальных решений рассматриваемой пары задач эквивалентно отысканию решения следующей системы линейных неравенств: allxl + а21Х2 + •' ■ • + ат1хт — Р1>0, + а2лХ2~Ь • ■ ' • 1 ^тпхт — Рп > 0. — Л11У1 — а12У2 * ■■ — а1пуп 4“ о» — «Ш1У1 — ат2У2 • 1 ‘ • ^тпУп + 0. Р1У1 + • • • РпУп — «1х1— ••• — 0 (i = 1 /п), У/>0 (7=1 п). (3.13) Умножив неравенства предыдущей системы на положи¬ тельную переменную г, получим эквивалентную систему anxi + ... 4- амхт- pxz 0. Vi + • • • + атпхт~ Pnz > 0, — «иУ1 — ... - ai„y„ + axz >0, — — • • • ~атпУп +^>0, Р1У1 + ••• +РпУп—а1х}—... — атхт >0, х( 0 (Z = 1 т), У/>0 (7=1 «)• (3.14) где Х1 = х^, yj= yjz.
§ 7] ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И МАТРИЧН. ИГРЫ 157 Из решения последней» если z > 0, найдем оптимальные решения пары двойственных задач по формулам xi У] Xi=— G=1 rn), yj = — (J = l я). Покажем, что решение симметричной матричной игры с нулевой суммой, заданной следующей кососимметричной матрицей выигрышей первого игрока: 0 ... 0 а11 • ат\ Р1 0 . .. 0 — «1» • • • атп Рп а11 ■ ■ • aln 0 . 0 — «1 • • ■ 0 . 0 — ат — Pl ••• ■ —Рп «1 . • • ат 0 является решением системы (3.14), и следовательно, реше¬ нием пары двойственных задач линейного программирова¬ ния (3.9) — (3.12). __ __ __ _ Действительно, пусть (ур ..., уп, xv ..., хт, г)—опти¬ мальная стратегия первого игрока. Тогда, какую бы чистую стратегию ни выбирал второй игрок, математические ожи¬ дания выигрышей первого игрока будут неотрицательными (так как они не меньше цены игры v, равной нулю). Это означает выполнение следующих неравенств: апх1 + • • • + ат\хт PiZ>0, а1лх1+ • ' • ■ 4" атпхт Pnz>Q’ а пУ1 ' •• — атУп + axz^> 0, — °т1У1— • ■■ ~атпУп + amz > 0, Р1У1+ • • • + РпУп — • ^тхт >0. У1+ •• ■ • 4" У п 4“ Х1 4“ • • • 4- xm+z = 1, (Z=l, . . ., /п), (/=1. • п), г>0.
158 ПРИЛОЖЕНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ [ГЛ. III Мы пришли к системе (3.14), к которой присоединено еще одно ограничение У1 + * • • + Уп + xi + • • • + г = 1 > но это допустимо, если однородная система (3.14) имеет нетривиальное решение. Таким образом, решение пары двойственных задач (3.9) — (3.12) линейного программирования свелось к реше¬ нию матричной игры с матрицей (3.15), так что решение (ур •••» Ул» xv •••» хт* z) матричной игры при z Ф О дает решение соответствующей пары двойственных задач линейного программирования по формулам Замечание 1. Если во всех оптимальных стратегиях игровой задачи г = 0, то соответствующая пара двойствен¬ ных задач линейного программирования неразрешима. Для разрешимой же пары двойственных задач хоть одна опти¬ мальная стратегия эквивалентной игры содержит компо¬ ненту z =£ 0. Замечание 2. К результату п. 2 добавим следующее: из конечного решения хг хт; yv уп пары двой¬ ственных задач линейного программирования решение соот¬ ветствующей симметричной игровой задачи с матрицей (3.15) может быть получено по формулам yj у.= yjZ = -^ . IB у/ ~Н ^2 j=1 1=1 2 >7 + 2 +1 j=i i=i 1 П т 2 х/ 2 4~ 1 j = 1 i = 1 Z
ГЛАВА IV ТРАНСПОРТНАЯ ЗАДАЧА В настоящей главе рассматривается одна из важнейших задач линейного программирования — транспортная задача, т. е. задача такого наиболее рационального прикрепления пунктов отправления грузов к пунктам их назначения, чтобы общая стоимость перевозок была минимальной. Являясь одной из задач линейного программирования, транспортная задача, конечно,, может быть принципиально ре¬ шена алгорифмом симплекс-метода. Но непосредственное при¬ менение симплекс-метода к транспортной задаче обычно нецеле¬ сообразно, так как, являясь универсальным методом решения любой задачи линейного программирования, он не учитывает специфики условий транспортной задачи, и применение симплекс-метода к ее решению оказывается слишком гро¬ моздким. В § 2 приводится один из наиболее распространенных методов решения транспортной задачи — метод потенциа¬ лов, полностью использующий особенности условий этой за¬ дачи и приводящий к цели значительно быстрее и проще, чем симплекс-метод. В § 3 приводится решение транспортной задачи «по кри¬ терию времени», когда минимизируется не общая стоимость перевозок, а время, расходуемое на доставку по назначению всего груза. Наконец, в §§ 4, 5 и 6 рассматриваются задачи об опре¬ делении кратчайших расстояний по заданной сети дорог, о построении кратчайшей сети дорог, связывающей данную совокупность пунктов, и о максимальном потоке в.сети.
160 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV § 1. Транспортная задача как задача линейного программирования 1. Общая постановка задачи. Транспортная задача формулируется так: В данных т пунктах производится некоторый одно¬ родный продукт в количествах соответственно а2, . . ат единиц. Этот продукт следует доставить в п заданных пунктов назначения, потребляющих его соответственно в количест¬ вах b2, . ... Ьп. Пусть стоимость перевозки единицы продукта из Z-ro пункта производства в /-й пункт назначения (потребления) равна а соответствующее количество единиц перевозимого продукта равно х^ (I — 1, ..., /п; J = 1, ..., п). Условия задачи запишем компактно в виде следующей таб¬ лицы (двойной матрицы): X ai ^2 а\ Си Х11 С12 Aj2 Sin хт С21 Х21 С22 Х22 С2П Х2П • • • • . . . . . . . . . . . . . . . . . . . . . • • • . . . . . . ат ст\ хт\ ст2 хт2 ... ... стп хпт (4.1) Совокупность тХп чисел х/у-, т. е. матрицу ||х/уЦ, будем называть планом перевозок, а матрицу \\с^\\ — матрицей транспортных издержек.
§ 11- ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 161 План называется допустимым, если числа х^ удовле¬ творяют следующим естественным ограничениям: > О (Z = 1, ..., т\ j = 1 /г), хи + xii + ••• (z==1 т)> х2?-|- ... (/=1, .... га). (4-2) в которых первые т равенств означают, что из каждого пункта производства вывозится весь произведенный продукт, а последние п равенств означают, что каждый пункт по¬ требления полностью удовлетворяется. Транспортная задача заключается в отыскании среди допустимых планов оптимального, т. е. такого, по которому общая стоимость перевозок т п *=2 2/^ 1 = 1 J = 1 (4.3) минимальна. Если система (4.2) совместна, то т т п пт 2«, = 2 1:^=2 2^ /=1 /=1 у = 1 ; = 1 / = 1 ,= 2оу; /=1 таким образом, условие т п 2«/=20у (4.4) i=l /=1 необходимо для совместности (4.2). Условие (4.4) является и достаточным для совместности (4.2). В самом деле, при выполнении условия (4.4) значения ХИ = -?- <z==1 т’ п> Z = 1 как легко проверить, удовлетворяют системе (4.2)*). *) Нетрудно проверить, что любое из т + п уравнений (4.2) является следствием остальных т-\-п — 1, образующих линейно независимую систему. 11 С. И. Зуховицкий, Л. И. Авдеева
162 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Таким образом, транспортная задача относится к задачам линейного программирования и решается алгорифмом сим¬ плекс-метода. Однако ввиду исключительной практической важности этой задачи и специфики ограничений (4.2): а) ограничения заданы в виде уравнений, б) каждая неизвестная входит лишь в два уравнения, в) коэффициенты при неизвестных — единицы. для ее решения созданы специальные алгорифмы, значительно менее громоздкие, чем алгорифм симплекс-метода. Один из них — рассмотренный ниже метод потенциал о в — пред¬ ставляет собой приспособление общего метода Л. В. Канторо¬ вича [6] для решения транспортной задачи и предложен Л. В. Канторовичем и М. К. Гавуриным [8] и несколько позже, независимо от них, Данцигом [19]*). Другой, так называемый венгерский метод (см., например, [14]) указан Эгервари [25] и усовершенствован Куном [30] для решения частного случая транспортной задачи — задачи о назначениях (или о выборе), приведенной нами в § 5 гл. III; затем он был приспособлен Манкресом [32] для решения общей транспортной задачи. 2. Открытая модель транспортной задачи (задача с на¬ рушенным балансом запасов и потребностей). Как было показано в п. 1, необходимым и достаточным условием раз¬ решимости транспортной задачи является равенство всех запасов груза в пунктах отправления потребностям в этих грузах в пунктах назначения: т п Иногда это равенство не выполняется, т. е. либо запасы груза превышают потребность в пунктах назначения либо потребность в пунктах назначения превышает запас *) Мы приведем изложение этого алгорифма в основнохм по [14], а п. 7 § 2 и § 3 — по [1].
ЗАДАЧА ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 163 § 1] груза Для этих случаев также может быть поставлена задача о построении плана перевозок с минимальными транспорт¬ ными расходами. Для отыскания оптимального плана перевозок в случае превышения запаса над потребностью (т п \ /?/'■ вводят фиктивный (п+ 1)-й пункт назначения с потребностью tn п Ьп+1 = 2 и полагают стоимости перевозок грузов /=1 ;=1 в этот пункт равными нулю: clt л+1 >= 0 (/ = 1, ..., т). По¬ лученная новая задача является уже обычной транспортной т л + 1 задачей, так как для нее выполняется равенство 2 2 /=1 ;=1 Нетрудно показать, что план ||а:/;||ш>л, полученный из оптимального плана л + 1 новой задачи, является опти¬ мальным планом исходной задачи, так как наличие лучшего плана старой задачи привело бы к наличию лучшего (чем оптимальный) плана новой задачи, что невозможно. Аналогично при т п 2 ai <2 i=i ;=i вводим фиктивный (т+1)-й пункт отправления с запасом п т груза ат, i = 2 ^7— 2 ai и со стоимостями перевозок /»1 7 7=1 ст+1^ = 0(/=1, .... п). Этим задача сводится к обыч¬ ной транспортной задаче, из оптимального решения кото¬ рой можно, как выше, получить оптимальное решение исходной задачи. 11*
164 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV § 2. Метод потенциалов 1. Предварительные понятия. В отличие ©т предыду¬ щего, будем в этом параграфе пользоваться для транспорт¬ ной задачи таблицей вида С11 clj c\n 01 Сц cij cin 0/ С'ГПЛ cmj ... cmn am ь, bJ ... bn at (4.5) Величины перевозок xLj будут заноситься в левые нижние углы клеток (Z, /) по мере построения плана. Набором будем называть произвольную совокупность клеток, а цепью — наборы вида 01» 7*i)» Op Л)» 0г» Л»)» 0*2’ Л)» • • • или Ор 7*1)’ О2» 7*1)» 0г» 7*2)’ Оз» Л)’ • • •» так что каждая пара соседних клеток цепи расположена либо в одной строке, либо в одном столбце таблицы (4.5), причем никакие три клетки цепи не лежат в одной строке (столбце). Если последняя клетка лежит в одном столбце»
МЕТОД ПОТЕНЦИАЛОВ 165 строке) с первой, т. е. если цепь имеет вид Gp 7*1)’ (Л* Л)» (^2* Л)» (^2* А)» •••» (А* Л) или Gp 71)’ (А* 71)’ (^2» 7г)» (7г 72)’ •••’ Gp 7Д то такую замкнутую цепь назовем циклом. На следующей таблице С11 С12 С13 С14 С15 С21 С22 С23 С24 С25 С31 ^32 С33 С34 С35 С41 С<2 С43 С44 С45 1 изображен цикл (1, 2), (1, 3), (3, 3), (3, 5), (4, 5), (4, 2). Ациклическим будем называть любой допустимый план перевозок Х= || х/;-1|т> л, если набор клеток с отличными от нуля элементами этого плана не содержит ни одного цикла. Как будет впоследствии показано, оптимальный план перевозок достаточно искать среди ациклических и число М элементов > 0 любого ациклического плана удовлетво¬ ряет неравенствам max [т, п} т-\- п—1. Если в ациклическом плане X — || х^\\т> п имеет место равенство —1, то элементы из набора т-^-п—1 клеток (Z, у) с > О называются X-выбран- ними. Пусть теперь N —1. Тогда дополним получен¬ ный набор клеток (Z, у) с х^ > 0 еще т^-п— 1 —N клет¬ ками с xtj = 0 такими, чтобы весь новый набор из т-\-п — 1 клеток не содержал циклов, и элементы из этого нового набора будем считать ^-выбранными.
166 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV 2. Потенциальность — признак оптимальности плана перевозок. Для того чтобы некоторый план Х = п транспортной задачи был оптимальным, необходимо и достаточно, чтобы ему соответствовала такая система из т-\~п чисел uv и2, ..., urn; vv v2 vn, для которой выполняются условия Vj — иГ^Сц (z = 1, .... т\ 7=1, .... п) (4.6) и Vj — u^Ctj для всех х1}> X). (4.7) Числа ut, Vj называются потенциалами соответственно пунктов отправления и назначенйя, вся их система — потен¬ циальной, а условия (4.6) — (4.7) — условиями потенци¬ альности системы ut, Vf, каждое в отдельности неравенство (равенство) называется условием потенциальности для соответствующей клетки (I, у). Если план X, для которого существует потенциальная система и^ Vj, также называть потенциальным, то теорема коротко формулируется так: для оптимальности плана транспортной задачи необходимо и достаточно, чтобы он был потенциальным. Достаточность. Пусть план X потенциален, так что существует для него система ut, Vj, удовлетворяющая условиям (4.6)—(4.7). Тогда для любого допустимого плана X' = ||х^. ||w> п п т т п т п 2 S сИх’И > 2 2 tn п п т п гп т п — 2 И/ 2 xij = /=1 7=1 J т п ni п т. е. стоимость перевозок по любому плану X' не меньше стоимости перевозок по потенциальному плану X, так что он оптимален.
МЕТОД ПОТЕНЦИАЛОВ 167 § 2] Необходи мость. Трактуя транспортную задачу (4.5), в которой минимизируется форма i=l / = 1 при соответствующих ограничениях, как задачу линейного программирования, рассмотрим и двойственную к ней задачу, условия которой легко получим из следующей таблицы: 0= . .. 0= . . 0 = 0== . ■ 0= • .. 0 = w ~ — Z/1 . ..—ui . • — “т " "Vi . . - Vj . . 1 *11 Ун = —1 .. 0 . . 0 1 . 0 .. 0 Cll х\п У 1/2 = —1 .. 0 . 0 0 . 0 .. 1 Cin */1 У/1 = 0 —1 . . 0 1 . о .. 0 cii хи У и = 0 —1 . . 0 0 . I .. 0 cl) Ут 0 —I . . 0 0 . 0 .. 1 cln хт\ У mi = 0 .. 0 . . —1 1 . 0 .. 0 cm\ хтп Утп ~ 0 .. 0 . . —1 0 , 0 .. 1 cmn 1 Z — «1 . .. a, . • ат ■bx .. .-bj .. ■ -bn 0 Двойственная задача, таким образом, заключается в макси¬ мизации формы п т z=Y,blvJ—^iaiul при ограничениях Уи = lti — 'uj + cij>° (z=1 zre; 7 = 1 rt), т. е. vj— ui < cij (z==1 ")• (4.6) Пусть X = ||xZy||n — оптимальное решение транспорт¬ ной задачи (4.5). Тогда по основной теореме двойственности (гл. II, § 7) двойственная задача также имеет оптимальное
168 ТРАНСПОРТНАЯ ЗАДАЧА 1ГЛ. IV решение и\, ...» и*т\ -и*, ...» -и*. Убедимся, что эти числа являются потенциалами соответствующих пунктов транспорт¬ ной задачи. Действительно, все zz*, -и*, как опорное решение двой¬ ственной задачи, удовлетворяют неравенствам (4.6). Если же xtj > 0, то по второй теореме двойственности соответст¬ вующее ограничение у*;. = и* — v*. двойственной задачи обращается в строгое равенство, так что гЛ— 8. Алгорифм решения транспортной задачи методом потенциалов. Алгорифм состоит из предварительного шага и повторяющегося общего шага. В предварительном шаге проделывается следующее: 1) составляется первоначальный ациклический план 2) для полученного плана строится система т-\-п чисел zzp ..., ит\ ..., vn таких, чтобы выполнялись условия Vj — u^Cij (4.8) для всех Х-выбранных Сц\ 3) построенная система uv .... ит; vn иссле¬ дуется на потенциальность (т. е. план X исследуется на оптимальность). Общий шаг (применяется, если план X, построенный в предыдущем шаге, не оптимален, т. е. система uv ..., ит\ . .., vn не потенциальна) состоит из следующих трех операций: 1) улучшения плана, т. е. замены плана X новым планом X' со стоимостью перевозок, не превышающей стоимости перевозок по плану Х\ 2) построения для плана Хг (путем исправления системы uv . . ., ит-, vv ..., vn) новой системы zz', ..., и'т\ v'v ..., v'n, удовлетворяющей условию (4.8') для всех А'-выбранных ctf, 3) исследования построенной системы zz', . .., и’т\ v[ v'n на потенциальность.
§ 2] МЕТОД ПОТЕНЦИАЛОВ 169 Перейдем к подробному изложению алгорифма *). Предварительный шаг. 1) Составление перво¬ начального плана X = ||||. Начинаем с определения элемента хп (отсюда название этого способа построения первоначального плана «правило северо-западного угла»), полагая хп = min {ар Z^}. Если ах < Z>P то хп = ах и = О для j = 2, 3, .... п. Если ах > bv то хп = Ьх и xzl = 0 для I = 2, 3, ..., т. Если же ах = bv то хп = ах = Ьх и все остальные элементы как первой строки, так и первого столбца равны нулю. Пусть для определенности ах < bv Тогда запас груза в первом пункте отправления свелся к нулю, а потребность первого пункта назначения составляет теперь ^1 — аг Эти данные отмечаем правее таблицы и под ней: <41 С12 0 0 С21 С22 ... С2П #2 . . . • • Стл ст2 стп ат ь, ^2 Ьп ai bi\^ bi — b2 ... Ьп Полагаем затем х21 = min [а2, Ьг — а^}. Если а2<Ь{ — ар то х21 = а2 и все х2у- = 0 для у = 2, ..., п\ если а2 > bx—av то х21==^1 — ах и все хп = 0 для Z = 3, ..., /п; если же a2 = bi— av то х21 = а2 = Ь{ — av а все остальные эле¬ менты 1-го столбца и 2-й строки равны нулю. Пусть имеет место второй случай. Тогда потребность первого пункта назначения полностью удовлетворена, а оста¬ ток запаса во втором пункте отправления составляет *) Обоснование алгорифма приводится в ц. 7,
170 ТРАНСПОРТНАЯ ЗАДАЧА 1ГЛ. IV °2 — (^1 — а1)- Эти значения записываются также правее таблицы и под ней: <41 Л1 С12 0 с\п 0 <*! с21 Ь\ — С22 С2П <22 . . . ст\ 0 ст2 ... стп ь, Ьг Ьп «1 bi \ — ai Ь2 ... Ьп 0 Ь2 ... Ьп <7 2 ^2 ^1 ~#1 ат ат О о Полагаем затем x22 = min[a2— &i+ 0f, М и т. д., пока не определим все элементы ty(/»l, .... щ\ 1, .... /г). Заметим, что каждый элемент xtj был получен из линей¬ ных комбинаций at и bj с коэффициентами 0, 1, —1 и является либо остатком груза в пункте отправления, либо потребностью соответствующего пункта назначения. Поэтому, если at и bj были первоначально неотрицательными целыми числами, то и первоначальный план перевозок X = l|xZy||mirt, полученный по описанному правилу, будет состоять из целых неотрицательных чисел х^. Число W положительных пере¬ возок (т. е. элементов х^ > 0) в этом плане не превышает т-\-п — 1. Действительно, таблица содержит (снизу и справа) всего т-\-п чисел av .... ат; bv .... btl. На каждом шаге за¬ полняется положительным xtj одна клетка таблицы, на месте одного или двух из чисел a[t bj ставятся нули, а на по¬ следнем шаге одновременно на месте ат и Ьп ставятся нули. Следовательно, всего шагов для построения плана (когда на местах всех т-\-п данных чисел будут нули) потребуется
$ 2] метод Потенциалов 171 не более чем т-\-п—1 и план будет содержать не более чем т-\-п— 1 положительных х^. Как нетрудно убедиться, полученный набор клеток не содержит циклов. Если — 1. то переходим к по¬ строению системы ит\ х/р ...» vn. Если же N <m-|-n—1 (тогда задача называется вырожденной), то вводим в набор дополнительно т-\-п—1—N новых клеток с нулевыми перевозками xtj = 0, но так, чтобы весь набор не содержал циклов. После этого переходим к по¬ строению системы uv ..., игп; . ... vn. Пример. Пусть условия задачи заданы таблицей 3 5 7 11 100 1 4 6 3 130 5 8 12 7 170 150 120 80 50 ъ- \ По правилу северо-западного угла находим = min (ар = min {100; 150} = 100; х12 = х13=х14=0. Вносим изменения в столбец запасов и строку потребления 3 5 7 11 0 100 0 0 0 1 4 6 3 130 5 8 12 7 170 50 i 120 80 50 \ в,- »> \
172 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Теперь х21 = min (130; 50} = 50, х31 = 0. При этом потребность первого пункта назначения полностью удовлетворена и обращается в нуль, а запас второго пункта отправления составляет 130 — 50 = 80, что отмечено в пра¬ вом столбце и нижней строке следующей таблицы: 100 3 5 0 7 0 11 0 0 50 1 4 6 3 80 0 5 8 12 7 170 0 120 80 50 at bi \ Далее имеем: x22=inin {80; 120} = 80; х23=х24 = 0, так что получим: 100 3 0 5 0 7 0 11 0 1 4 6 3 0 50 80 0 0 0 5 8 12 7 170 0 40 80 50 <4 Аналогично х32 — min {170; 40) = 40,
§ 2] МЕТОД ПОТЕНЦИАЛОВ 173 и мы приходим к таблице 3 100 5 0 7 0 11 0 0 1 50 4 80 6 0 3 0 0 5 0 8 40 12 7 130 0 0 80 50 bj \ Наконец, х33 = min {130; 80) = 80. Потребность третьего пункта назначения сводится к нулю, а запас третьего пункта отправления равен 50. Этот запас в точности равен потребности Z>4 = 50 четвертого пункта назначения, так что х34= 50. Получен следующий ациклический план, содержащий т-\- п — 1=3-{-4 — 1=6 положительных элементов: 100 3 0 5 0 7 0 И 50 1 80 4 0 6 0 3 0 5 40 8 80 12 50 7 2) Построение системы uL, Vj для первона¬ чального плана X. Числа uv ..., ит\ г/р . . ., vn определим из системы т-\-п—1 линейных уравнений (4.9)
174 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV где ctj суть АГ-выбранные элементы. Поскольку число неиз¬ вестных превышает на единицу число уравнений, то одну из неизвестных полагаем равной произвольному числу, напри¬ мер z/1 = 0, и легко находим последовательно из уравне¬ ний (4.9) значения остальных неизвестных. Вычисленные так значения их ит поместим в нулевом (.левом) столбце таблицы, а значения г/Р . . ., vn — в нулевой (верхней) строке. Получим 'Х vi и‘ V1 v2 Vn С11 Хц CJ2 *12 Cin х\п и2 С21 *21 с22 *22 C2fl Х2п . . . . . . . . . “т ст\ хт\ ст2 ХГП2 стп хтп Продолжаем решение примера, рассмотренного в п. 1). Для построенного в нем первоначального плана определим систему uv и2, и3, v[t т/2, *п3, v4, удовлетворяющую уравне¬ ниям: — их — 3, -Vj — и2 = 1, и 2 ~—1 4, <и2 — z/3 = 8, v3 — из = 12> ^4 —И3=7- Полагая и1==0, найдем: t\ = 3, и,2 — 2, и, = 6, и3— —2, г»3=10, у4 = 5.
§ 2] МЕТОД ПОТЕНЦИАЛОВ 175 Введем их в таблицу: \ «7 “<• \ 3 6 10 5 0 3 100 5 7 11 2 1 50 4 80 6 3 —2 5 8 40 12 80 7 50 3) Исследование построенной системы Vj на потенциальность. Каждый элемент не являю¬ щийся А'-выбранным, сравниваем с соответствующей раз ностью Vj — ut. Если для всех таких элементов выполняются неравенства Vj cij' то система и[У Vj потенциальна и построенный план опти¬ мален. Если же для некоторого ctj имеет место неравенство vj — ut'> cij> то система Vj не является потенциальной, план X не оптимален и надо перейти к следующему шагу. Для рассматриваемого в п. 1) примера имеем: v2 — tix = 6 — 0 > 5 = с12, т/g ~ их —— 10 0 7 —• v^ их 5 0 11 —- с 14» — и2 = 10 — 2 > 6 = с23, V^ U2 -—: 5 2 —3 == ^24’ •и, —и3 = 34-2 = 5 = с31. Таким образом, система их = 0, и2 = 2, . . ., v± = 5 не потен¬ циальна и наш план не оптимален.
176 ТРАНСПОРТНАЯ ЗАДАЧА |ГЛ. IV Общий шаг. 1) Улучшение плана. Пусть а/0;0 — наи¬ большее среди чисел atj = v,-tit- Си > 0. Клетка (Zo, у0) образует с вошедшими в набор ^-выбранными клетками единственный цикл. Обходим этот цикл против часовой стрелки, начиная с клетки (Zo, у0), и отмечаем его клетки попеременно знаками-)-и—. Первая клетка (Zo, у0) отмечается знаком-)-. Клетки цикла, отмеченные знаком4-» образуют «положительную» полуцепь, а знаком — «отрица¬ тельную» полуцепь. Рассматриваем элементы xtj нашего плана X, располо¬ женные в клетках отрицательной полуцепи, и находим среди них наименьший 6, содержащийся, например, в клетке (/', у'). Далее, улучшаем план перевозок следующим образом: эле¬ менты (перевозки) х^ отрицательной полуцепи уменьшаем на 0, а элементы х^ положительной полуцепи увеличиваем на 6; элементы же х^, не вошедшие в цепь, оставляем без изменения. Таким образом, новый план X' состоит из чисел x'ij = xtj — 0, если клетка (Z, у) входит в отрицательную полуцепь, х/у-|-9, если клетка (Z, у) входит в положительную полуцепь, если клетка (Z, у) не входит в цепь. План X' снова допустимый и содержит ациклический набор из —1 клеток, получающийся заменой клет¬ ки (Z', у'), для которой теперь xZ/;/ = 0, клеткой (Zo, Уо), С = 6. Проиллюстрируем описанный способ улучшения плана на примере, рассмотренном в п. 1). Наибольшей разностью a{j = Vj — uL— оказывается а13 = «у3— их — с13 = 3, так что клетка (1, 3) должна быть введена в набор. Строим цикл из клеток (1, 3), (1, 1), (2, 1), (2, 2), (3, 2), (3, 3)
§ 2) МЕТОД ПОТЕНЦИАЛОВ 177 и отмечаем их попеременно знаками-р и — , как на следую¬ щей таблице: 3 6 10 5 0 — 3 5 + 7 11 100 9 + 1 — 4 6 3 Z 50 80 9 5 + 8 — 12 7 —Z 40 80 50 Находим наименьшую из перевозок расположенных в клетках отрицательной полуцепи: 9 = х33 = 80 (или 6 = х22= 80). Вычитаем 9 = 80 из перевозок отрицательной полуцепи и прибавляем к перевозкам положительной. Исклю¬ чив из цепи клетку (3, 3), в которой теперь х33 = 0, получим новый набор, а с ним и новый план Х'\ ''\Vy «/ 3 6 10 5 0 20 3 5 7 80 11 2 130 1 0 4 6 3 —2 5 120 8 12 7 50 —3 2) И с п р а в л е н и е с и с т е м ы uh Vj. Для клетки (Zo, /0), вошедшей в новый набор, имеем aioJo = Uio f zo7o > 0» т. е. условие потенциальности (4.9) не выполняется, и надо исправить систему Vj, Это можно было бы сделать, как 12 С. И. Зуховицкий, Л. И. Авдеева
178 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV описано выше, в предварительном шаге, построив вообще новую систему Vj, но обычно новую систему uL, Vj проще построить путем следующего исправления старой. Для того чтобы для клетки (Zo, /0) выполнялось условие потенциаль¬ ности, уменьшим vj на величину Тогда для всех кле¬ ток (Zx , /0), .. ., (Zx , уо) /0-го столбца, вошедших в новый набор, кроме клетки (Zo, /0), условие потенциальности пере¬ станет выполняться и превратится в (^‘о-a'Vo) _ Ui < Cih = •••’ l)'V Z^Zo)‘ Для того чтобы для этих клеток восстановить потенциаль¬ ность, уменьшим также числа ui , . . ., на а, • . Од- Х1 о’ 7о нако при этом мы нарушим потенциальность для клеток набора, расположенных в строках L , ..., L (кроме кле- 1 '7 ток /0-го столбца), так что соответствующие Vj надо будет уменьшить на az-0, Уо и т. д., пока не будут выпол¬ няться условия потенциальности (4.9) для всех клеток нового набора. Проиллюстрируем это на разбираемом нами примере. Для введенной в набор клетки (1, 3) не выполняется условие потенциальности (см. предыдущую таблицу). Для его восста¬ новления вычтем а13=3 из v3. Получим г/' = 10 — 3 = 7. Так как в третьем столбце, кроме (1, 3), нет других клеток набора, то для остальных клеток набора потенциальность не нарушилась. Получили таблицу ‘ч 3 6 7 5 0 1 3 20 5 7 80 1 11 1 2 1 130 4 0 6 3 —2 5 8 120 12 7 50 1
МЕТОД ПОТЕНЦИАЛОВ 179 § 21 3) Исследование на потенциальность новой системы vj производится так, как описано в п. 3) предварительного шага, путем сравнения разностей v'j— и\ с соответствующими Сц. В нашем примере это исследование проводится так: v2— и} = 6 > 5 = £12, v4 — «, == 5 < 11 = с 14, *и3 ■— и <2 — ■ 5 6 - — ^4 = ^24’ — «з= 5 = с31, zz3 = 9 12 = с33. Новая система u'h не является потенциальной, и план Х’ нуждается в улучшении. Описанный общий шаг повторяем до тех пор, пока после конечного числа таких повторений не придем к оптималь¬ ному плану транспортной задачи. В нашем примере для получения оптимального плана, кроме первого шага, проделанного для иллюстрации, по мере описания алгорифма придется проделать еще два шага, Второй шаг. 1) Улучшение плана. Вводим в набор клетку (1, 2), для которой a12 = -v2— их — с12=1>0, строим замкнутую цепь из клеток (1, 2), (1, 1), (2, 1), (2, 2), отмечаем их попеременно знаками + и —• 3 6 7 5 0 20 3 + 5 7 80 11 2 _!_ 130 1 — 4 0 6 3 о 5 8 120 12 7 50 12*
180 ТРАНСПОРТНАЯ ЗАДАЧА (ГЛ. IV и перемещаем из отрицательной полуцепи в положительную минимальную перевозку 6 = 0 отрицательной полуцепи. Полу¬ чаем план 41 3 6 7 • 5 0 3 20 5 0 7 80 11 2 1 130 4 6 3 —2 5 8 120 12 7 50 —1 — 1 в котором перевозки не изменились, но в новый набор вместо клетки (2, 2) вошла клетка (1, 2). 2) Исправление системы tiy. Для вошедшей в набор клетки (1, 2) не выполняется потенциальность. По¬ этому исправляем вычитая из него а12=1: v; = v2 —а12 = 6 —1 = 5. При этом нарушается потенциальность клетки (3, 2). Для ее восстановления вычитаем а12=1 из w3: <= -2 — 1 = —3. После этого нарушается потенциальность клетки (3, 4), так что вычитаем а12 = 1 из v4: < = 5—1=4. В четвертом столбце больше не содержится клеток набора, и исправление Vj на этом заканчивается, так что таблица
МЕТОД ПОТЕНЦИАЛОВ 181 принимает вид 3 5 7 4 0 3 20 5 0 7 80 11 2 1 130 4 6 3 —3 5 8 120 12 7 50 3) Исследование на потенциальность новой системы и'., v'.. Новый план снова не оптимален, так как а31 — ^1 “з ^31 ~ 1 > О* Третий шаг. 1) Улучшение плана. Вводим в набор клетку (3, 1), строим замкнутую цепь из клеток (3, 1), (3, 2), (1, 2), (1, 1), отмечаем их попеременно знаками + и — и перемещаем из отрицательной полуцепи в положительную наименьший эле¬ мент 0 = 20 отрицательной полуцепи. Исключив из цепи клетку (1, 1), получаем новый набор, а с ним и новый план: 3 5 7 4 0 3 5 20 7 80 11 2 1 130 4 6 3 —3 5 20 8 100 12 7 50 —1
182 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV 2) Исправление системы tiL, Vj. Для этого вычи¬ таем а31 =1 из и и2. Получим 2 5 7 4 0 3 20 5 7 80 11 1 1 130 4 6 3 —3 5 20 100 8 12 7 50 3) Исследование на потенциальность новой, системы Vj. Легко проверить, что система Vj по¬ тенциальна, так что последний план оптимален. Стоимость перевозок по этому плану составляет ^ = 5 • 20 4-7 • 80 + 1 • 130 + 5-20 + + 8 • 100 + 7 • 50 = 2040. 4. Упрощение вычислительной схемы метода потенциалов. В приведенном выше алгорифме каждый шаг был расчленен на три следующие операции: 1) улучшение уже построенного плана, 2) ис¬ правление всей системы uit Vj, 3) исследование на потенциаль¬ ность новой системы Vj. При работе с большой матрицей ||С/у||» кроме операции 1), весьма трудоемка операция 2). Для ее облегче¬ ния приведем несколько видоизмененную схему алгорифма, осо¬ бенно удобную тогда, когда (как обычно бывает) количество пунктов отправления значительно меньше количества пунктов на¬ значения. Первоначальный план строим так же, как и в основном алго¬ рифме. Для построения системы чисел и Vj предварительно соеди¬ няем отрезками в каждом столбце одну из клеток набора со всеми остальными клетками набора из этого столбца. Каждый такой от¬
МЕТОД ПОТЕНЦИАЛОВ 183 § 2] резок связывает две строки. Если столбец содержит k клеток набора, то отрезков в этом столбце будет k — 1. Всего отрезков в таблице будет т — 1 (т— число пунктов отправления). Действительно, набор состоит изт-}-п— 1 клеток. Каждый столбец содержит не менее одной клетки набора, поэтому к оставшимся (т-\-п — 1) — п = т — 1 клеткам можно провести т — 1 отрезков. В предварительном шаге мы строим все щ и лишь те vy, ко¬ торые нужны для построения всех берем произвольное uv вычисляем Vj для тех столбцов, которые содержат отрезки, связы¬ вающие различные строки с первой, после чего вычисляем для всех этих строк и т. д., пока не будут найдены все ut. При этом, очевидно, потребуется вычисление не более чем т — 1 из чисел Vj. Исследование на потенциальность клеток, не вошедших в на¬ бор, начинаем с первого столбца, затем второго и т. д. до тех пор, пока не будет обнаружена клетка (г0, у0) с нарушенной потенциаль¬ ностью. Если до этого нам встретится столбец, для которого еще неизвестно vy, то его нужно вычислить. Клетку (/0, у0) вводим в набор, осуществляя операцию 1). Улучшив план, исправляем, как предписано в операции 2), лишь числа ...» ит и все по¬ строенные vy, после чего проверяем на потенциальность лишь те не вошедшие в набор клетки первых /0 столбцов, которые при¬ надлежат одновременно строкам с исправленными и столбцам с неисправленными vj. В набор вводим ту из непотенциальных клеток, для которой vy — w/ — — имеет наибольшее зна¬ чение. Затем снова улучшаем план, вводя в набор непотенциальную клетку. Если же среди первых у0 столбцов нет непотенциальной клетки, то определяем Vyo+1 (если оно еще не определено) по (4.8), про¬ веряем на потенциальность те клетки (у0-|-1)-го столбца, которые не вошли в набор клеток плана, и повторяем предыдущее. Таким образом, видоизмененный алгорифм выглядит так. Предварительный шаг. Как в основном алгорифме, строим первоначальный план и систему и тех vy, которые необходимы для построения Проверку на потенциальность клеток, не вошедших в набор, начинаем с первого столбца, затем второго и т. д., пока в неко-. тором столбце, пусть у0-м, не будет обнаружена непотенциальная клетка. Общий шаг. 1) Улучшение плана. Как и в основном алгорифме, улучшение плана достигается введением в набор обна¬ руженной непотенциальной клетки. 2) Исправление системы ...» ит и всех вычис¬ ленных Vj производится методом, приведенным в основном алго¬ рифме. 3) Исследование на потенциальность клеток первых /0 столбцов, не вошедших в набор клеток нового плана.
184 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Это исследование производится лишь для тех не вошедших в набор клеток первых Jo столбцов, для которых разность vj — щ увеличилась при исправлении системы и/, Vp т. е. клеток (Z, j) с исправленными и, и неисправленными иу. Если все клетки первых у0 столбцов потенциальны, то пере¬ ходим к исследованию клеток С/о+1)-го столбца и т. д., пока не будет обнаружена непотенциальная клетка. Попутно вычисляем ранее неизвестные vj. Пример. 3 5 7 11 100 1 4 6 3 130 5 8 12 7 170 150 120 80 50 X. «z bj X 1) Построение исходного плана совпадает с соответствующими операциями предварительного шага основного алгорифма. 2) Соединяем отрезками клетки набора в каждом столбце: «/ х^ 3 100 1 5 7 11 1 1 50 4 80 i 6 3 5 8 40 12 80 7 50 Из этой таблицы видно, что для построэнтя всех щ необходимо вычислить лишь Vj и Полагаем = 0; тогда = 3, ^ = 2,
§ 2] МЕТОД ПОТЕНЦИАЛОВ 185 v2 = 6, w3 = — 2. Вводим эти числа в таблицу: 3 6 0 — 3 + 5 7 11 100 2 + 1 — 4 6 3 50 80 —2 5 8 40 80 12 50 7 3) Имеем для первого столбца t/j—u3=c31. Для второго столбца v2— Wj == 6 > 5 = с12, так что клетка (1, 2) непотенциальна. Первый шаг. 1) Улучшаем план, вводя в набор клетку (1, 2). Строим замкнутую цепь (1, 2), (1, 1), (2, 1), (2, 2) и перемещаем наименьший груз в == 80 отрицательной полуцепи в положительную. Получим «/ \ 3 6 0 — 3 20 1 + 5 80 1 1 7 11 • 2 1 130 4 6 3 —2 + 5 40 8 12 80 7 50 —1 2) Исправляем систему и2, и3, vlt v2, вычитая а12=т>2— — Ц\ — cJ2« 1 из v2 и и3. 3) Исследуем на потенциальность не вошедшую в набор клетку (3, 1) первого столбца, расположенную в строке с испра¬ вленным и3 и неисправленным Имеем Vi — и3 = 6>5=сзи так что (3,1) — непотенциальная клетка.
186 ТРАНСПОРТНАЯ ЗАДАЧА (ГЛ. IV Второй шаг, 1) Вводим в набор клетку (3, 1). Перемещаем по цепи груз 0 = 20 и исключаем из набора клетку (1, 1) (см. преды¬ дущую таблицу). Получим: Vj и‘ \ 3 5 0 3 - 5 100 7 11 2 1 130 4 6 -3 5 20 -г- 8 20 — 12 8:0 7 50 —1 2) Вносим исправления в систему zz2, zz3, vlt v2, вычитая cc31 = 1 ИЗ Vi и u2. 3) Проверив клетку (2, 2), убеждаемся в ее потенциальности.. Переходим к 'исследованию клеток третьего столбца. Для этого вычисляем v3 — с33 -|- и3 — 12 — 3 = 9. Далее, а13 = 2>0, ®23 2 0. Третий шаг. 1) Вводим в набор клетку (1, 3). Для этого пере¬ мещаем 6 = 80 по цепи (1, 3), (1, 2), (3, 2), (3, 3) из отрицательной полуцепи в положительную. Получим \ «/ 2 5 9 3 5 20 7 80 11 1 1 130 4 6 3 —3 5 20 8 100 12 7 50 —2 2) Исправляем числа и2> и3, и2, и3 вычитая а13 = 2 из v3. Поскольку в третьем столбце нет других клеток набора, кроме клетки (1, 3), то на этом исправление чисел ult и2, и3, vlf v2, v3 заканчивается.
§ 2] МЕТОД ПОТЕНЦИАЛОВ 187 3) Ввиду того, что в первых трех столбцах йет клеток, для которых исправлялось щ и не исправлялось vy, а оц3 = max aZ3, то I среди клеток первых трех столбцов, не вошедших в набор, нет непотенциальных. Вычисляем v4: V4 = с34 “Ь — 7 — 3 = 4. Получим «/ 2 5 7 4 0 3 20 5 7 80 11 1 130 1 4 6 3 —3 20 5 100 8 12 7 50 Исследуем клетки четвертого столбца на потенциальность: v4 — = 4 < 11 — с14, 1/4 W2 = 3 = С24, т. е. эти клетки потенциальны и последний план оптимален. 5. Построение первоначального плана методом мини¬ мального элемента. Условия задачи записываем в виде таблицы (4.5): си С12 *1 С21 С22 С2П • • • . . . . . . . . . ст\ СГП2 стп ат *1 Ьг 1 Ьп <zz bj \
188 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV В методе северо-западного угла первоначальный план зави¬ сит лишь от величин aL и bj и совершенно игнорирует стоимо¬ сти перевозок, так что обычно он значительно отличается от оптимального. Приведем теперь для построения первоначаль¬ ного плана так называемый метод минимального эле¬ мента, в котором существенно учитывается матрица \\с^\\ транспортных издержек. В этом методе заполняются после¬ довательно клетки с минимальной во всей таблице стоимо¬ стью ctj перевозки, а величины xLj соответствующей пере¬ возки определяются точно так же, как в методе северо- западного угла, т. е. равняется минимуму из остатка груза в Z-м пункте отправления и недостающего груза в /-м пункте назначения. Получим ациклический план, состоящий из не более чем т-\-п—1 положительных перевозок. Проиллюстрируем изложенное на примере построения первоначального плана задачи (см. стр. 171). Условия задачи даны в таблице 3 5 7 11 100 1 4 6 3 130 5 8 12 7 170 150 120 80 50 bj \ На каждом шаге заполняем клетку с минимальной во всей таблице стоимостью. В нашем примере заполнение клеток производим в следующем порядке: x21 = min[a2; ZjJ = min {130; 150} = 130, Х22 ^23 " ~ *^24 ' ~ 0» далее = min (100; 20) = 20, х31 = 0; затем x12=min{80; 120} — 80, х13 = х14 = 0
МЕТОД ПОТЕНЦИАЛОВ 189 § и, наконец, х34 = min {170; 50} — 50; х32 == min {120; 40) — 40; х33 = 80. Получен первоначальный план 3 20 5 80 7 11 100 1 130 4 6 3 130 5 8 40 12 80 7 50 170 150 120 80 50 X б. Построение первоначального плана методом аппро¬ ксимации [13]. Первый шаг. Условия задачи записываем в виде таб¬ лицы (4.5) со свободными нулевой строкой и нулевым столбцом: \р; X, С11 С12 с\п 01 с’21 С22 С2П #2 . . . . . . . . . . . . ст\ ст2 стп ат bl ^2 Ьп Х^ at bi X (4.5)
190 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV для заполнения которых вычисляем величины (разности) аО) и ру) (Z = 1, . . ., ля; /= 1 я), которые определяются следующим образом. Величина а0> 0 (Z = 1, . . ., /я) равна разности, которую получим, вычтя минимальный эле¬ мент Z-й строки матрицы из следующего по величине элемента этой строки; аналогично р<1)>0 (7=1, .... я) является разностью, получаемой вычитанием минимального элемента /-го столбца из следующего по величине элемента этого столбца. Если Z-я строка (столбец) содержит больше одного минимального элемента, то а<п = 0 (рФ = О). После заполнения строки и столбца разностей выбираем наибольшее среди полученных т4- я чисел. Возможны два случая. а) Имеется лишь одна наибольшая разность. В этом случае рассматриваем строку (столбец), в которой оказалась наибольшая разность. Выбираем в этой строке (столбце) наименьший среди элементов Cij, пусть С/0/0, и клетку (Zo, /0), в которой находится этот элемент, заполняем числом (перевозкой) •Ч/. = min йл}. При этом, если то все остальные клетки /0-й строки отмечаем крестиками, что будет означать, что в процессе по¬ строения первоначального плана их не следует заполнять, и стираем а*1*. Если > Ь. , то подобным образом поступаем с остальными клетками /0-го столбца и стираем рФ. Если же так что х/о7-о = aZo = #/о, то крестиками исключаем из рассмотрения все остальные клетки /0-й строки и /0-го столбца и стираем и р^. Заполнением клетки (Zo, /0) числом заканчивается первый шаг. Пример. Пусть условия задачи записаны в виде следую¬ щей таблицы:
§ 21 МЕТОД ПОТЕНЦИАЛОВ 191 Xiv <*/ X. 3 5 7 11 100 1 4 6 3 130 5 8 12 7 170 150 120 80 50 at Заполняем нулевой столбец разностей а(.О и пулевую строку разностей 2 1 1 4 2 3 5 7 11 100 2 1 4 6 3 130 2 5 8 12 7 170 150 120 80 50 '""ч at bj\ Среди них одна наибольшая 3'^ = 4. Заполняем клетку (2, 4), соответствующую наименьшему элементу £24 = 3 четвертого столбца: x24 = min {130; 50} = 50. Так как при этом по¬ требность #4=50 полностью удовлетворится, то в осталь¬ ных клетках четвертого столбца ставим крестики и стираем 8<1) = 4:
192 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV 2 1 1 2 3 5 7 11 X 100 2 1 4 6 ’3 50 80 2 5 8 12 7 X 170 150 120 80 0 1 Хл/ bj \ б) Имеется несколько равных между собой наибольших разностей. В этом случае клетку, под¬ лежащую заполнению, находим следующим образом. Пусть а0>— одна из наибольших разностей, и пусть наименьший в /0-й строке элемент С/о7о является наименьшим также в /0-м столбце, причем для всех остальных наибольших разностей это не имеет места. Тогда заполняем клетку (/0, у0) и производим остальные операции так, как в случае а). Если же для нескольких наибольших разностей а*.1) и рФ наименьшие элементы соответствующих строк (столбцов) являются также наименьшими в своих столбцах (строках), то заполняем клетку с тем из этих элементов, который заходится в столбце (строке) с наибольшей разностью р^ (а(.ь) Например, в следующей таблице <4 2 1 1 2 3 5 7 3 1 4 6 3 5 8 12
МЕТОД ПОТЕНЦИАЛОВ 193 с двумя максимальными разностями а2та3«=3 следует за¬ полнить клетку (2, 1), так как наименьший элемент с21=1 второй строки является наименьшим в своем столбце (пер¬ вом), чего нельзя сказать о наименьшем элементе с31 = 5 третьей строки. В таблице же 4 2 1 4 4 1 5 1 6 2 6 2 8 7 4 6 2 2 10 3 5 9 7 3 1 4 10 9 8 с тремя максимальными разностями = р4 = |35 == 4 следует заполнить клетку (4, 1), так как из двух наименьших эле¬ ментов е41=1 и с25 = 2, соответствующих разностям и р5 и являющихся наименьшими в своих строках, элемент с41 находится в строке с большей разностью а4=3>2 = а2. Пусть теперь ни для одной из максимальных разностей наименьшие элементы ctj в соответствующих строках (столб¬ цах) не являются наименьшими в своих столбцах (строках). В этом случае клетку, подлежащую заполнению, отыскиваем так: находим наименьший элемент в первой из строк с ма¬ ксимальной разностью и вычитаем из него наименьший среди элементов его столбца. Так поступаем со всеми строками, содержащими максимальные разности, и аналогичное про* Делываем со всеми столбцами, содержащими максимальные разности. Получим несколько положительных чисел, и клетка, Для которой получилось наименьшее из этих чисел, под¬ лежит заполнению. Ясно, что в случае, когда наименьший элемент строки с наибольшей разностью является наименьшим 13 С. И. Зуховицкий, Л. И. Авдеева
194 ТРАНСПОРТНАЯ ЗАДАЧА [ГД IV и в своем столбце, то из этого правила следует приведен¬ ное выше. Например, в таблице \ fV а1 1 3 1 2 3 1 2 4 3 5 8 3 3 7 6 8 9 2 4 10 2 10 5 3 9 8 4 7 10 с четырьмя наибольшими разностями а2 = а4 = р2 = j35 = 3 наименьшие элементы с21 = 3 и с43=4 из второй и четвер¬ той строк не являются наименьшими в своих столбцах, а наименьшие элементы с12 = 4 и с35=5 из второго и пятого столбцов не являются наименьшими в своих строках. Составляем разности между элементом с21 = 3 и наи¬ меньшим элементом первого столбца сп = 2: С2| Cjj —- 3 2 = 1, между с43 = 4 и наименьшим элементом третьего столбца С 33 —: 2. ^43 езз~ 2 = 2; между с12 = 4 и наименьшим элементом первой строки = 2: с12 = 4 2 = 2, и, наконец, между с35 = 5 и наименьшим элементом третьей строки с33=2: £35 с33 = 5 2 = 3. Меньшей из этих разностей является с21 — си=1, так что заполнению подлежит клетка (2, 1). Во всех рассмотренных случаях заполнение клетки и остальные операции производятся так, как в случае а).
§ *1 МЕТОД ПОТЕНЦИАЛОВ 195 После .заполнения клетки вносим соответствующие изме¬ нения в столбец запасов и строку потребностей грузов и приступаем к следующему шагу. Второй и все последующие шаги начинаются с заполне¬ ния (вернее, исправления) нулевого столбца и строки новыми значениями разностей и и являются повторением первого шага, с той лишь разницей, что заполненные строки и столбцы уже не рассматриваются и в каждой заполняемой клетке проставляется минимум остатка груза, не вывезенного из соответствующего пункта отправления, и груза, недо¬ стающего в пункте назначения. Если в некоторой строке осталась лишь одна незаполнен¬ ная клетка, то в нее проставляется величина остатка груза в пункте отправления. То же имеет место и для столбца. В результате за —1 шагов заканчивается -заполнение таблицы, а с ним и построение первоначального плана. Можно проверить, что полученный при этом набор является ациклическим. Построенный первоначальный план получается, как правило, значительно более близким к оп¬ тимальному, чем план, построенный по методу северо- западного угла или минимального элемента. Продолжим рассмотренный выше пример построения по этому методу первоначального плана. После первого шага была получена таблица ''М11 2 1 1 2 3 5 7 11 X 100 2 1 4 6 3 50 80 2 5 8 12 7 X 170 150 - - 120 80 0 13*
196 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Второй таг. Строим новые разности а^2) (см. следую¬ щую таблицу). При этом четвертый столбец не рассматри¬ вается. Разности (у=1, 2, 3) совпадают с соответ¬ ствующими так как первые три столбца не заполнялись. Среди построенных разностей есть две наибольшие: aj? = a(2) = 3, ^2 3 так что имеет место случай б). Наименьший элемент с21=1, соответствующий разности а!>2), оказался наимень¬ шим и в своем столбце, так что заполняем его клетку: x21 = min{80; 150} = 80. При этом запас груза а2=130 оказался полностью выве¬ зенным из пункта отправления. Поэтому клетки второй строки заполняются крестиками и стирается а(22): 2 1 1 2 3 5 7 11 X 100 3 1 80 4 X 6 X 3 50 0 3 5 8 12 7 X 170 1 70 120 80 0 Х< ai bi Третий шаг. Вычисляем разности а(.3) и (3(3). Так как на предыдущем шаге первая и третья строки не заполнялись, то а(3) — = 2 и а^3) = а^2) = 3:
§ 2] МЕТОД ПОТЕНЦИАЛОВ 197 м 43) X 2 3 5 Р 2 3 5 7 11 X 100 1 80 4 X 6 X 3 50 0 3 5 8 12 7 X 170 70 120 80 0 х. <4 bJ \ Единственной наибольшей разностью является р^3) = 5 (слу¬ чай а)). Значение х13 = min {100; 80} = 80, и третий столбец из дальнейшего рассмотрения исключается. Четвертый шаг. Вычисляем разности а(4) и {^4): \₽<4) 2 3 2 3 5 80 7 X 11 20 80 1 4 X X 6 50 3 0 3 5 8 X 12 X 7 170 70 120 0 0 Наибольших из них две: а^4) = р^4) = 3. Наименьший элемент с31 = 5, соответствующий раз¬ ности а*4), не является наименьшим в своем столбце.
198 ТРАНСПОРТНАЯ ЗАДАЧА (ГЛ. IV Аналогично наименьший элемент с12 = 5, соответствующий раз¬ ности р^4), не является наименьшим в своей строке. Составляем разность между элементом с31 = 5 и наимень¬ шим элементом его столбца fn = 3: r3i сп = 5 3 = 2, а также разность между элементом г12 = 5 и наименьшим элементом его строки сп = 3: ^12 ~ = 5 3 = 2. Они оказались равными, поэтому можно заполнить любую из клеток (3, 1) и (1, 2), пусть (1, 2): x12=min{20; 120} =20. Первую строку из дальнейшего рассмотрения исключаем. Мы пришли к таблице 2 3 3 X 5 20 7 80 11 X 0 1 80 4 X 6 X 3 50 0 3 5 8 12 X 7 X 170 70 100 0 0 at bJ X, Пятый шаг. В первых двух столбцах остались неза¬ полненными по одной клетке, - так что для них разностей не составляем, а заполняем непосредственно: х31 = 70, - *32= 100.
МЕТОД ПОТЕНЦИАЛОВ 199 Получаем первоначальный план: 3 5 20 7 80 11 0 1 80 4 6 3 50 0 5 70 8 100 12 7 0 0 0 0 0 bJ \ Стоимость перевозок по этому плану составляет w= 5 • 20 + 7 • 80 + 1 «80 + 3 - 50 + 5 • 70+8 • 100 = 2040 и совпадает со стоимостью перевозок по оптимальному плану, найденному для этой же задачи в п. 3. Таким образом, по¬ строенный первоначальный план уже оптимален. 7. Обоснование метода потенциалов. При изложении в пре¬ дыдущих пунктах метода потенциалов мы опирались на ряд еще не доказанных фактов. Приведем теперь нужные обоснования. 1) Существование допустимого и оптималь¬ ного решений. Существование некоторого допустимого реше¬ ния транспортной задачи было доказано в п. 1 § 1. Существова¬ ние же оптимального решения будет следовать из доказываемой дальше в этом пункте монотонности и конечности алгорифма метода потенциалов. 2) Ацикличность оптимального плана. Приведем теперь доказательство утверждения п. 1 о том, что оптимальный план достаточно искать лишь среди ациклических. Для этого пока¬ жем, что любой план X = || л» содержащий цикл, может быть заменен ациклическим без увеличения суммарной стоимости пере¬ возок. Действительно, пусть среди положительных элементов матрицы II *ij ||w, п некоторые образуют замкнутую цепь. Обойдем последо¬ вательно все клетки цепи, например, против часовой стрелки и от¬ метим их попеременно знаками -|- и —. Получим «положительную» и «отрицательную» полуцепи, причем 2' (2_) будет означать, что сумма распространена на положительную (отрицательную) полуцепь.
200 ТРАНСПОРТНАЯ ЗАДАЧА (ГЛ. IV Пусть, например, ‘ и — минимальный среди элементов х/у отрицательной полуЦепи. Исправим наш план X = || xij \\т, п, вычтя б из всех х/у отрицательной полуцепи и при¬ бавив его ко всем х/у положительной полуцепи. Так как цепь со¬ стоит лишь из звеньев, соединяющих по две клетки столбца или строки, из которых одна принадлежит положительной, а другая — отрицательной полуцепи, то по исправленному плану количество груза, направляемого в каждый пункт и вывозимого из каждого пункта, очевидно, не изменится, т. е. план X' также является до¬ пустимым. Сравнение же стоимостей перевозок по обоим планам дает т п т п / \ 2 2 = S 2 2 СЧ~ 2 Z-1/-1 /=1;=1 \ / т п 1=1 J=1 откуда видно, что стоимость перевозок по плану X' не выше, чем по плану X, хотя в исправленном плане X' рассматриваемая замк¬ нутая цепь разомкнулась, так как выпала ведь клетка, содержав¬ шая элемент 0. Таким образом, количество циклов плана X уменьшилось в новом плане; продолжая аналогично, придем наконец к ацикли¬ ческому плану со стоимостью перевозок, не превышающей стои¬ мости по начальному плану X. 3) Ацикличность первоначального плана. Убе¬ димся в ацикличности первоначального плана, построенного по методу северо-западного угла, и в том, что он содержит не более чем т -\-п— 1 положительных элементов. Будем пользоваться индукцией по р=т-\-п. Для р = 2, когда m —zz=l, имеем лишь один допустимый план X = ||хн|’, который, очевидно, ацикличен и состоит из 1 = т -1- п — 1 элементов. Предположим утверждение верным для р = т п — 1. Пусть, например, хи = min {яр = alt так что х12 = х13 = ... — х1п = 0, и надо по методу северо-запад¬ ного угла построить первоначальный план для транспортной задачи с матрицей ||с/у который по предположению ацикличен и состоит из не более чем (т— 1)-|-п— 1 положительных элемен¬ тов. Но этот план вместе сх11 = а1 будет, очевидно, первоначаль¬ ным планом исходной задачи, состоящим из не более чем т-\-п— 1 положительных элементов, притом ацикличным, так как первая строка содержит лишь один положа тельный элемент хи и его при¬ соединение к нашему ациклическому плану не может породить ни одного цикла. 4) Двусторонняя оценка числа положительных элементов ациклического плана. Для любого допусти¬ мого плана количество Af положительных элементов, очевидно, не меньше чем max [т, п]. Убедимся теперь, что для любого ацикли-
§ МЕТОД ПОТЕНЦИАЛОВ 201 ческого цлана количество W ограничено сверху числом т + п — 1, так что если, например, те п — 1. .Действительно, рассматривая каждую клетку (/, j) как вектор Pij (а1» • • •» а/» • • •» ат» ат +1» • • • ’ am+j' • • •» а/п4-л) из 4“ /1)-мерНОГО пространства с координатами az = am+j = 1 и равными нулю осталь¬ ными координатами, легко понять, что цикличность некоторого на¬ бора {(/, j)} клеток означает линейную зависимость соответствую¬ щей системы {Р^} векторов и обратно. Это следует из того, что для обращения линейной комбинации векторов {Рц} в нулевой вектор необходимо и достаточно, чтобы в ее состав, кроме вектора вида Pixj^ входили еще вектор и вектор Pt у , а это озна¬ чает, что клетки {(/, /)} образуют замкнутую цепь. Любой же набор из т-\-п клеток является циклическим, так как вектор т п Q(-l,..., -1, 1, ..., 1), очевидно, ортогонален любому из наших векторов Р/у, так что эти т-^п векторов принадлежат (т-\-п— 1)-мерному подпростран¬ ству и, следовательно, линейно зависимы, т. е. набор цикличен. Таким образом, число N клеток аци клического набора меньше, чем т-\-п, т. е. Nт-\- п— 1. 5) Нарушение ацикличности присоединением дополнительной клетки. Покажем теперь, что присоедине¬ ние к ациклическому набору из т + п — 1 клеток дополнительной клетки (/0, /о) порождает в новом наборе из т -|- п клеток един¬ ственный цикл. Действительно, ацикличность некоторого набора {(/, /)} из т-\-п — 1 клеток означает линейную независимость соответствую¬ щего множества {P/у} из т~\~п— 1 векторов, являющегося, таким образом, базисом {т~{-п — 1)-мерного пространства всех векторов Р/у.В силу того, что каждый не принадлежащий базису вектор Р/оуо однозначно представляется линейной комбинацией т + п — 1 базис¬ ных векторов, присоединение к соответствующему ациклическому набору из т -|- п — 1 клеток новой клетки (z0, j0) образует набор, содержащий единственный цикл. 6) Ацикличность нового набора. Тот факт, что ис¬ ключение из цикла некоторой клетки (/', j') 4= Go» Jo) снова приводит к ациклическому набору, обосновывается так: вектор.Р/оуо, как было уже отмечено, однозначно представим в виде линейной ком¬ бинации т-}-п— 1 векторов базиса. Цикл образуется, очевидно, вектором Р/оуо и теми из векторов базиса, которые в эту линейную комбинацию входят с отличными от нуля коэффициентами. Поэтому исключение из нее вектора Рifj, приведет к линейно независи¬ мой системе из zn-j-n— 1 векторов, так как в противном случае
202 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV вектор имел бы два различных представления через базисные векторы. 7) Монотонность алгорифма, г. е. неувеличение стои¬ мости перевозок по плану X', полученному по алгорифму из пред¬ шествующего плана X, доказывается непосредственным подсчетом. Действительно, пусть, например, цикл образован из клеток 0’1» /1)» Ог» /1)» (А А)» Сз» /г)» •••» (А» A-i)> (А» А) ациклического набора присоединением клетки (f0, /0) = 0‘i» Для которой ai i ~Vi — и, — cf { > 0. l0J0 JO l0 lOJO Тогда, обозначив через ' сумму, распространенную на все клетки, не вошедшие в цикл, получим для стоимости w' перевозок по новому плану X' выражение так как 8) Вырождение в транспортной задаче. Транспорт¬ ная задача, как задача линейного программирования, также может оказаться вырожденной. При пользовании алгорифмом метода потен¬ циалов вырождение может привести к равенству нулю минималь¬ ного элемента 6 отрицательной полуцепи, так как вырожденность в случае транспортной задачи, как нетрудно убедиться, означает, что среди ациклических планов есть хотя бы один, содержащий менее чем — \ положительных элементов. Можно показать, что необходимым и достаточным условием вырожденности транспортной задачи является наличие такой группы из р < т пунктов отправления, суммарный запас груза которой
§ 2] МЕТОД ПОТЕНЦИАЛОВ 203 точно равен суммарным пунктов назначения: . потребностям некоторой группы из q < п Для предупреждения в случае вырожденной задачи возможно¬ сти зацикливания, т. е. возвращения к ранее встретившемуся плану, рассмотрим, наряду с исходной вырожденной задачей, так называё- мую s-задачу с той же матрицей С = ||q;||w, л, что и исходная, но с новыми запасами грузов в пунктах отправления М£) = л/ + е (Z= 1, т) и новыми потребностями пунктов назначения 7 ( bj + тг при j — п, где е— достаточно малое положительное число. Для е-задачи, очевидно, выполняется равенство т п 2 (е) = 2 bi (0. i=l J=1 но е можно подобрать так, чтобы не равнялись между собой ни¬ какие частные суммы вида Р Q 2 и S bjk^ {р < т, q < п). й=1 л k=\ k Действительно, равенство частных сумм 2 %(®)=2 Мг) йТ1 к л=х к может произойти либо в случае, когда либо когда р Q 2 а/ь + = 2 ьк+те- к * = 1 к Выбрав £ отличным от корней этих уравнений, мы исключим воз¬ можность вырождения. На практике надо выбрать е > 0 лишь достаточно малым, обычно меньшим, чем , где б — единица последнего значащего разряда ai и bj. 9) Конечность алгорифма. Для невырожденной задачи конечность алгорифма следует из его монотонности, не допускающей
204 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV возвращения к уже встретившемуся допустимому плану, и из ко¬ нечности числа ациклических планов. Для вырожденной же задачи, когда 0 = 0, строгая монотон¬ ность нарушается и, как уже отмечалось, появляется возможность возвращения к ранее встречавшемуся плану, т. е. возможность зацикливания. При этом процесс может стать бесконечным. Во избежание зацикливания можно наряду с исходной задачей рассмотреть соответствующую ей невырожденную е-задачу (как показано выше). В силу совпадения матриц издержек С = || Cij ||^, п исходной и s-задачи, а также малости е, совпадают также наборы клеток с первоначальными планами обеих задач, вводимые в набор клетки (z0, Jo) обеих задач, замкнутые цепи (циклы), а также поло¬ жения в отрицательных полуцепях минимального элемента, перено¬ симого по цепи. Переходу от плана X (е) к плану X' (е) в е-задаче соответ¬ ствует переход от плана X к плану л' в исходной задаче, и полу¬ ченному через конечное число шагов оптимальному плану е-задачи соответствует полученный через такое же число шагов оптималь¬ ный план исходной задачи. Как отмечает С. Гасс [2], до настоящего времени не обнару¬ жено ни одного примера транспортной задачи, приводящего к зацикливанию. 10) Целочисленность решения. Вп. 3 § 2 было пока¬ зано, что в случае целых неотрицательных л/ и bj (/=1,..., т\ .7=1,..., п) первоначальный план состоит из целых неотрицатель¬ ных перевозок хц. Как следует из правил построения плана X' из плана X (0 целое и минимальное в отрицательной полуцепи), все так построенные планы состоят из целых неотрицательных пере¬ возок. Таким образом, и полученный этим алгорифмом оптималь¬ ный план также состоит из целых неотрицательных перевозок. § 3. Транспортная задача по критерию времени [1] 1. Постановка задачи. В отличие от рассмотренной выше, в §§ 1 и 2, транспортной задачи (по критерию стои¬ мости), в так называемой транспортной задаче по критерию времени учитывается не стоимость перевозок, а время, рас¬ ходуемое на доставку по назначению всего груза, так что оптимальным планом перевозок считается тот, по которому все грузы могут быть доставлены в пункты назначения в кратчайший срок. Эта задача возникает, например, при составлении плана перевозок скоропортящихся продуктов, когда излишние транспортные расходы окупятся за счет доставки в сохранности продукта, а также при перевозке боеприпасов в военной обстановке, когда требуется быстрая доставка, а стоимость перевозки имеет второстепенное зна¬ чение.
§ з] транспортная задача по критерию времени 205 Точная формулировка задачи выглядит так. Имеется т пунктов отправления с запасами соответственно av а2, .... ат единиц однородного груза и п пунктов на¬ значения, потребность которых составляет соответственно bv b2 Ьп единиц этого груза, причем тп п 2^=2 bs. z=i ;=1 Пусть, кроме того, задана матрица Т = \\t^\\п, где tij — время, необходимое для перевозки груза из пункта i в пункт /. Требуется среди допустимых планов перевозок X=||xtj||т> Л, где, как обычно, —количество груза, отправляемого из пункта i в пункт у, причем 2 *// = «/ (/=1. т), — (/=1, .... п), j = 1 i - 1 выбрать оптимальный по времени план X* — jх*.||^ по которому грузы будут доставлены в минимальное время. С каждым допустимым планом X = ||xZy||m, п связан на¬ бор состоящий из элементов матрицы ||^;||т, соот¬ ветствующих положительным х^ плана X, т. е. если из пункта i в пункт j производится перевозка по плану X. Время tx, необходимое для реализации плана X, выра¬ жается формулой /х = тах{^)х, так что оптимальное время для перевозки грузов, т. е. время, необходимое для реализации оптимального плана X*, выра¬ зится так: tx* — min tx— min max x x J Сформулированная задача является частным случаем более общей экстремальной задачи, приводимой в следующем пункте и решаемой аппаратом жордановых исключений.
206 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV 2. Метод решения общей экстремальной задачи (типа транспортной по критерию времени). Пусть задана си¬ стема tn линейных уравнений с п неизвестными «11*1+ «12*2 + ••• +°1Л = «1> (4-Ю) 4" йт2^2 4" ••• “4“ ^тп^п и множество T-=[tv t2, . .., tn] вещественных чисел. Каждому неотрицательному решению X — {xj системы (4.10) отнесем набор {^}х, состоящий из тех элементов tj множества Т, для которых соответствующие Xj положи¬ тельны. Обозначим /х = тах{/у)х и рассмотрим задачу оты¬ скания оптимального решения системы (4.10), т. е. такого неотрицательного решения X*, для которого соответствую¬ щее tx* является минимальным среди всех tx: tx* = min tx = min max {^-}x. Для решения этой задачи приведем конечный алгорифм, существенно использующий аппарат жордановых исключений. П р ед варите льный шаг. Запишем систему (4.10), в кото¬ рой, очевидно, можно считать at 0 (/=1, .... zn), в виде таблицы 1 0 = а\\ #12 а\п а1 0 = аи ат ai 0 = ат\ ат2 • • • атп ат и при помощи симплекс-метода (гл. II, § 4, п. 1) найдем какое-нибудь из ее неотрицательных решений (если оно существует). Пусть оно получено из таблицы хт+1 — хт+2 - — Хп 1 &1» т + 1 ^1,/714-2 • •• Ь1п b, >0 Ь[,т+1 bi, т+2 • .. bin bl >0 ^т, т + 1 Ьт,т + 2 • • • bmn bm>0 так что Х0 = (х1 = 1>1 xm = bm, хт+1= .. . = х„ = 0).
ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ ВРЕМЕНИ 207 Общий шаг. Пусть ^ = тах{^}Хо=тах{/р t2 tm]. Просматриваем .... tn с индексами х-ов, оказав¬ шихся на верху таблицы. Столбцы под теми Хр для которых соответствующие tj не меньше полученного /z, следует, оче¬ видно, вычеркнуть, т. е. в дальнейшем рассматривать только те неотрицательные решения, в которых указанные Xj равны нулю. Просматриваем Z-ю строку. Если среди ее элементов есть положительные, то производим один или несколько шагов модифицированных жордановых исключений с разрешающими элементами из столбцов, содержащих эти положительные элементы, выбранными по обычному правилу, пока либо х{ не будет переброшено наверх, например на место х71, либо все элементы Z-й строки не станут неположительными. В первом случае полагаем xt — 0 и столбец под ним вычеркиваем. Теперь ^ = тах{^ th, ti+v .... и новый план вообще говоря, ближе к оптимальному, чем план Хо. Повторяем общий шаг, беря tt вместо Во втором случае, когда все btj неположительны, рассмотрим две возможности: 1) £z>0, 2) £z = 0. Если &z > 0, то не существует неотрицательного решения системы (4.10) с xz = 0, так как при bL > 0 и xft+1^0, . .. хЛ^0, £zy<0 получим xi~ — л+1хл+1+ ••• +^Л) + ^/>0- Следовательно, уменьшить tl нельзя, и полученный план оптимален. Если же Z>z = 0, то полагаем х;==0 для всех /, для которых btj < 0, вычеркиваем соответствующее столбцы и Z-ю строку (так как теперь xz = 0) и повторяем общий шаг.
208 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Пример. Дана система уравнений Х1 Х2~^~Х3~Ь^Х4 '^Х6~ — 2х2 —х3+ х4 — 2х5 = 4. 2xi + х2 —Зх4— х5-]-4х6== 4 и множество Т= (^1 = 3, #2=8, #3 = 5, t4 = 15, #5=12, #6 = 6}. Найти такое неотрицательное решение X* системы, для которого соответствующее #х* удовлетворяет условию t%* = min max х Предварительный шаг. Запишем уравнения в виде таб¬ лицы — *1 — *2 — х3 — *5 — *б 1 0 = —1 гп —1 —2 0 4 1 0 = 0 2 —1 1 —2 0 4 0 = 2 1 0 —3 —1 4 4 и при помощи трех шагов модифицированных жордановых исключений и вычеркивания соответствующих столбцов най¬ дем некоторое неотрицательное решение этой системы: — — *3 — х4 — *5 1 х2 = —1 —1 —2 0 4 1 0 =. 2 гп 5 —2 —8 2 0 = 3 1 —1 —1 0 3 —*1 —х4 —х5 —х6 1 — —х4 —хб 1 х2 = 1 3 —2 —4 3 х2 — 3 —9 12 5 2 5 —2 —8 2 ~> Хз = 4 —7 8 4 0 = 1 —6 ш 8 1 1 —6 8 1 Таким образом, Ло = (х1 = О, х2=5, х3=4, х4=0, х5=1, хб = 0).
§ 3] ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ ВРЕМЕНИ 209 Первый шаг. Допишем для удобства слева и сверху от последней таблицы значения соответствующих tp tj 3 15 6 — АГ1 — *4 — *е 1 8 х2 — 3 -9 12 5 5 Х3 = 4 —7 8 4 12 *5 = ш 8 1 Имеем шах{/2 = 8, Л = 5, /5= 12} = 12. Так как /4=15> 12, то полагаем д?4 — 9 и вычерки¬ ваем расположенный под ним столбец. Затем пои помощи одного шага модифицированного жорданова исключения пере¬ носим х5 на верх таблицы: 12 6 — *5 -Л-е 1 8 х2 = —3 —12 2 5 х3 = —4 —24 0 3 Xi = 1 8 1 и, положив х5 = 0, вычеркиваем затем расположенный под ним столбец. Второй шаг. Теперь тах{/2=8, /3 = 5, tx = 3] = 8. Соответствующая строка для х2 не содержит положительного элемента, а свободный член 2 положителен, так что задача решена. Решение х2=2, х3 = 0, х4 = 0, х5 = 0, х6 = 0) оптимально, и соответствующее ему значение fx* = /2=8. 3. Решение транспортной задачи по критерию вре¬ мени. Приведенная в п. 1 транспортная задача является, очевидно, частным случаем задачи п. 2 (когда в уравне¬ ниях (4П0) коэффициенты состоят из нулей и единиц) и, сле¬ довательно, полностью решается алгорифмом п. 2. 14 С. И. Зуховицкий, Л. И. Авдеева
210 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV П р и м е р. Пусть условия задачи заданы таблицей *11 1 *12 3 *13 7 *14 12 18 *21 2 *22 8 *23 10 *24 8 10 *31 6 -*32 1 -*33 4 *34 5 12 11 9 13 7 at bi \ где в правых верхних углах проставлены ttj. Предварительный шаг. Выпишем соответствующую си¬ стему ограничений: *11 + *12 + *13 + *14 = 18, *21 + *22 "Ь *23 + *24 = 10» *31+ *32+ *зз + *34 = 12» *11 + *21 +*31= 11’ *12+ *22+ *32 = 0» *13+*23+*33= 13» *14 + *24 + *34 = 7 ’ х/у>0 (i~l, 2, 3; /=1, 2, 3, 4). Записав условия задачи в виде таблицы и исключив 0-уравнения, получим таблицу *22 — *23 — *24 — *31 — *32 — *34 1 *12 = 1 0 0 0 1 0 9 *13 = 0 1 0 —1 —1 —1 1 *33 = 0 0 0 1 1 1 12 *11 = —1 —1 —1 1 0 0 1 *21 = 1 1 1 0 0 0 1Q *14 = 0 0 1 0 0 1 7
§ 31 ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ ВРЕМЕНИ 211 из которой найдем допустимое решение: *12 = 9» *^13=== 1’ •*'33==12» Х11==1, Х21=10, *J4 = 7, *22 = Х23 = Х24 = ^31 = -^32 = Х34 ~ Первый шаг. Допишем слева и сверху от таблицы зна¬ чения соответствующих ttf. 8 10 8 6 1 5 — *22 — *23 ~ *24 *31 - — *32 — *34 1 3 *12 = 1 0 0 0 1 0 9 7 *13 = 0 1 0 -1 —1 —1 1 4 *33 = 0 0 0 1 1 1 12 1 *11 = —1 -1 —1 1 0 0 1 2 *21 = 1 1 1 0 0 0 10 12 *14 = 0 0 1 0 0 ш 7 Им< еем шах (/12 = 3, i ‘13 = 7, ^33 = 4, /п = 1, /21 = 2, /14 = 12} = В верхней строке нет 12, поэтому сразу переходим к изменению плана. Делаем шаг модифицированного жорданова исключения с разрешающим элементом, взятым в рамку. Получим таблицу tij 1 8 10 8 6 1 12 *2*2 — *23 — *24 — *31 *32 — *14 1 3 *12 = 1 0 0 0 1 0 9 7 *13 = 0 1 1 —1 -1 1 8 4 *33 = 0 0 —1 1 1 —1 5 1 *11 = -1 —1 —1 1 0 0 1 2 *21 = 1 1 1 0 0 0 10 5 *34 = 0 0 1 0 0 1 7 Вычеркиваем столбец под *14, полагая *14 = 0, и пере¬ ходим ко второму шагу. 14*
212 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Второй таг. Имеем max {^12== ^1з== 7, === 4, /ц = 1, /21== 2» ^34 = 5} = 7, Вычеркиваем все столбцы, расположенные под т. е. под /22=8» ^23= Ю» ^24 “8. так что х22 = х23 = х24 = 0. В оставшейся таблице 6 1 — АГ31 ^32 1 3 х12 = 0 1 9 7 Xia = —1 — 1 8 4 А'зз = 1 1 5 1 Хц = 1 0 1 2 х21 = 0 0 10 5 х34 = 0 0 7 все коэффициенты строки для х13, соответствующей наибольше¬ му £13=7, отрицательны, а свободный член положителен, следовательно, процесс окончен. Оптимальный план состоит из перевозок х j2 —9, *^1з 8, •^'зз & * *^ц ~~ 1 * •^21 —' 10, Х34 ——■ 7 и может быть выполнен за время t — 7. Этот оптимальный план не является, очевидно, единствен¬ ным, так как, сделав шаг модифицированного жорданова исключения с разрешающим элементом, например, из третьей или четвертой строки, мы найдем другой план, реализация которого также потребует времени t—7. 4. Другая вычислительная схема алгорифма (для слу¬ чая транспортной задачи). В приведенной в п. 3 вычисли¬ тельной схеме алгорифма для решения транспортной задачи по критерию времени очень громоздким является предвари¬ тельный шаг — отыскание допустимого решения. Указанного недостатка нет в приводимой ниже другой вычислительной схеме этого же алгорифма для решения рассматриваемой транспортной задачи. Условия задачи записываем в виде таблицы, в правом верхнем углу каждой клетки которой проставляем время а в свободных местах клеток — величины перевозок:
§ 3] ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ ВРЕМЕНИ 213 ^11 -*и ^12 -*12 ... tin Х1П «1 ^21 •*21 ^22 -*22 ... ^2П Х2п #2 . . . . . . • • • . ^т\ хт\ ^ГП2 хт2 tmn хтп ат bt Ь,г \ «/ bJ Предварительный шаг. Строим первоначальный допу¬ стимый план XQ по методу северо-западного угла или мини¬ мального элемента (см. стр. 169 и стр. 187). Общий шаг. Просматриваем BceZZy-, соответствующие поло¬ жительным xz«, выбираем из них наибольшее t\j = max [tij] , х*7>0 и вычеркиваем все клетки, для которых tij^tij. Далее производим исправление плана XQ, целью кото¬ рого является обращение в нуль, если удастся, той пере¬ возки x'ijt которая находится в одной клетке с t\p и тем самым уменьшение времени на реализацию нового плана Хх. Для построения плана Хх составляем замкнутую цепь, как это делалось в методе потенциалов. Первой клеткой отрицательной полуцепи берем клетку с t\j, остальными клетками отрицательной полуцепи берем клетки с Xij > 0, а положительной цепи — клетки с tij < tij. Затем перемещаем минимальный элемент б отрицательной полуцепи в положительную. Если при этом удастся Xij обра¬ тить в нуль, то реализация нового плана потребует, вообще говоря, меньше времени. Далее повторяем общий шаг до тех пор, пока на неко¬ тором шаге не окажется невозможным обратить в нуль всю перевозку xij из клетки с максимальным временем tij.
214 ТРАНСПОРТНАЯ ЗАДАЧА ?ГЛ. IV Пример. Условия задачи записаны в таблице 1 3 7 12 18 2 8 10 8 10 6 1 4 5 12 11 9 13 7 a.i bi\ Требуется составить такой план перевозок X == || х/;-||з,4» реализация которого потребует наименьшей затраты времени. П редваришельный шаг. Составляем первоначальный до¬ пустимый план по методу северо-западного угла. Получим — 1 11 3 + 7 12 18 7 1 + 2 8 2 — I 10 8 8 10 6 1 4 5 5 7 12 и 9 13 7 <4 bJ Первый шаг. Находим максимальное из клеток с по¬ ложительными iij = t23 = 10, и вычеркиваем клетку (1, 4), так как £14=12> 10. Составляем замкнутую цепь из клеток (2, 3), (1, 3), (1, 1), (2, 1) и переносим из отрицательной полуцепи в
ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ ВРЕМЕНИ 215 § положительную минимальный груз отрицательной полуцепи 9 = х23 = 8. Получим новый план — 1 3 + 3 7 7 8 12 X 18 1 + | 2 8 — 8 2 10 X 8 10 6 1 4 5 5 7 12 и 9 ‘ 13 7 'Х <ч bj\ Второй таг. Находим t'tj = /22 = 8 и вычеркиваем клет¬ ку (2, 3) (^33= 10 > 8). Составляем замкнутую цепь из кле¬ ток (2, 2), (1, 2), (1, 1), (2, 1) и переносим из отрицательной полуцепи в положительную минимальный элемент отрица¬ тельной полуцепи 0 = х22=2. Получим новый план 1 1 9 3 8 7 X 12 18 2 10 X 8 X 10 X 8 10 6 1 5 4 7 5 12 11 9 13 7 bj \ L-u Третий шаг. Находим t\j =» /13 = 7 и вычеркиваем клет¬ ки (2, 2) и (2, 4) с ^22 = ^24» 8 > 7.
216 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Замкнутой цепи, начинающейся с клетки (1, 3), по¬ строить нельзя, так как клеткой отрицательной полуцепи оказывается обязательно клетка с нулевой перевозкой. Та¬ ким образом, последний план улучшить нельзя, и он опти¬ мальный. Он состоит из перевозок х11=1, х12=9, х13=8, x2i=10, х33 = 5, х34 = 7 и совпадает случайно с оптимальным планом этой же задачи, вычисленным в предыдущем пункте. Время реализации опти¬ мального плана составляет 7 часов. Построенный оптимальный план, очевидно, не единствен¬ ный, так как замкнутые цепи строятся по описанному пра¬ вилу неоднозначно. § 4. Определение кратчайших расстояний по заданной сети 1. Постановка задачи. Связь с линейным програм¬ мированием. Пусть на плоскости задано п точек Pv Р2, . . ., Рп, причем некоторые упорядоченные пары (Р/} Pj) этих точек соединены звеньями заданной длины P(PZ. р7)=/гу так, что получается связная цепь звеньев, т. е. сеть, по ко¬ торой из любой точки можно попасть в любую другую. Ставится задача об определении кратчайших расстояний и соответствующих им путей по данной сети между любыми двумя из точек ..., Рп. Убедимся, что каждая задача отыскания кратчайшего пути по сети между любыми двумя фиксированными точками является задачей линейного программирования. Действительно, пусть, например, требуется определить кратчайшее расстояние от точки Рг до точки Рп. Положим f.y=p(P., Pj), если точки Pt и Pj соединены звеном, и 1ц = -|- сю, если они не соединены. Каждому пути PZi> ..., Р^, Рпу состоящему из звеньев, соединяю¬ щих Рг с Рп, и не содержащему петель, поставим в соот¬ ветствие совокупность п2 чисел (Z, / = 1, . . п), равных единице, если звено (Pz, Pj) принадлежит [л, и нулю, если не принадлежит. Тогда задача отыскания кратчайшего пути из Рг в Рп эквивалентна задаче отыскания целочисленного
§ 4] ОПРЕДЕЛЕНИЕ КРАТЧАЙШИХ РАССТОЯНИЙ 217 решения ||^7-|[лд, минимизирующего линейную форму (длину пути из в Рп) п п г hfiu 1 = 1j = l при ограничениях: 1) o<e(7<i а, /=1 п), 2) Д(5о-^)=0, (/=# 1. /=#«). 3) 4) 2«яУ-еУл)=-1. /al Сначала покажем, что для любого (следовательно, и для кратчайшего) пути р из точки Рг в Рп совокупность соот¬ ветствующих ему значений удовлетворяет выписанным ограничениям 1) — 4). Для ограничений 1) это очевидно. Ограничения 2) со¬ стоят из п — 2 уравнений, каждое из которых составлено для каждой фиксированной точки Pt из Pv Р2, .... Рл_р Рп, кроме начальной и конечной точек пути р, и содержит лишь те и которые соответствуют звеньям, имеющим одним из своих концов точку Pt. Если точка Pt не принадлежит р, то и ни одно из звеньев (Pz, Pj) и (Pj, Pt) (J = 1 ri) не принадлежит p, n так что все ^. = ^z = 0 (7=1 я) и — = О- Если же точка Pt принадлежит р, то пути р принадлежит два звена, имеющих одним из концов точку Pt, причем в одном из них, пусть (Pk, Р^, точка Pt является конеч¬ ной, а в другом, пусть (Pz, Pz),— начальной (рис. 10). По¬ этому из всех В// (Л /=1, . я), участвующих в сумме п — tji), будут лишь £ftz=l и £/z=l, а все остальные будут равны нулю. Так как все слагаемые с фиксированным индексом i на первом месте входят в сумму со знаком а с индексом I на втором месте — со знаком —, то
218 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV и в случае, когда Pt принадлежит {л, получим 7 = 1 Выполнение ограничений 3) и 4) следует из аналогичных соображений и того факта, что из всех звеньев, имеющих одним из своих концов точку Pv пути [х принадлежит лишь одно — первое звено этого пути» а из всех звеньев, имею¬ щих одним из своих концов точку Рп, пути (х принадлежит тоже лишь одно — последнее звено пути (см. рис. 10). Теперь осталось показать, что и, обратно, каждое цело¬ численное решение нашей задачи линейного программирова¬ ния определяет систему чисел ^i = V1/2= ••• =Ч-1'’==1, соответствующих некоторому пути [х. Действительно, из равенства S 1 + 5 7=1 7=1 следует, что найдется по крайней мере одно значение £1^=1. В свою очередь из равенства следует, что найдется по крайней мере одно значение у2=1. Рассуждая аналогично, продолжим построение этой цепочки, которая может закончиться лишь в точке Рп, так как в любой другой точке Pt должно выполняться равенство
§ 41 ОПРЕДЕЛЕНИЕ КРАТЧАЙШИХ РАССТОЯНИЙ 219 Как задача линейного программирования наша задача принципиально может быть решена, хотя и громоздко, симплекс-методом. Однако, в силу специфичности условий задачи, можно указать более эффективные методы для ее решения. К таким методам относится рассматриваемый ниже алгорифм Форда [26] для отыскания кратчайшего расстоя¬ ния и кратчайшего пути от любой фиксированной точки сразу до всех остальных. 2. Описание алгорифма. Предварительный шаг. Пусть, например, требуется определить кратчайшие расстояния по сети от точки Рх до всех остальных. В таблицу заносим расстояния от каждой точки Pt (/=1, ..., п) лишь до всех соседних с нею точек Pjt т. е. до точек, образующих с Pi звенья. Каждой точке Pj ставим в соответ¬ ствие число Ху по следующему правилу. Начальной точке Pi ставим в соответствие число Хх = 0. Затем, начиная с /=1, рассматриваем клетки Z-й строки с заполненными Zzy, и если для некоторой клетки (z, /) уже определено Хр а Ху еще не определено, то полагаем Ху = ^4-/^
220 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV и вносим его в клетки с номером j верхней строки и левого столбца таблицы. При этом, если при отыскании некоторого Ху в /-м столбце имеется более одной клетки с заполненными 1ц и известными < то полагаем = niin kj}' Проиллюстрируем предварительный шаг на примере опре¬ деления кратчайших расстояний от точки Рх до то¬ чек Р2, Р3, ...» Р8, связанных сетью, изображенной на рис. И, где стрелки указывают, что проезд по звеньям (Р3, РД (Р4, Р3) и (Р7, Р4) односторонний, так что, например, /74=3, a Z47 не определено. Составляем таблицу: \Pj i \ pt Pt Рз л л р. р. л Рх 7 5 9 рг 7 1 7 Рз 3 1 4 15 р< 5 1 2 6 Ръ 9 2 11 р< 7 6 10 Р1 4 3 5 рв 15 11 10 5
§ 4] ОПРЕДЕЛЕНИЕ КРАТЧАЙШИХ РАССТОЯНИЙ 221 Полагаем, что Хх == О и записываем его в соответствую¬ щие клетки таблицы. Затем просматриваем клетки с запол¬ ненными Zly-, т. е. клетки (1, 2), (1, 4), (1, 5), и, имея Х1 = 0, вычисляем Х2, Х4, Х5: ^2 ~ “Н12 = 7, Х4 = Xj 4~ Z14 = 5, Х5 = Xj + Z15 = 9. Заносим эти значения в таблицу. Далее вычисляем и заносим в таблицу остальные Х^: X3=min {Х2 + /23=8; Х4 + /43=6} = 6, Х6 = min {Х2 -|- Z26 = 14; Х4 Z46 = 11} = 11, ^7==^з + ^37= 10* Х8 = min{X34-Z38 = 21; Х5 + /58 = 20; Ч ”Нб8 — 1» ^7 + ^78 — 1 5 J — 1 5.
222 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Получим V? л\ p. Pt Pt pt pt p* Pl Р» \}j h\ 0 7 6 5 9 11 10 15 0 7 5 9 Pt 7 7 1 7 р3 6 3 1 4 15 р< 5 5 1 2 6 р3 9 9 2 11 pt 11 7 6 10 Pl 10 4 3 5 pa 15 15 11 10 5 Общий шаг. Просматриваем заполненные клетки (Z, /) таблицы, начиная для определенности с первой строки. Сравниваем для. них разности Ху — Xz с соответствующими ZZy*. Возможны два случая: 1) для всех заполненных клеток таблицы ' (*) 2) для некоторых клеток (Z, /) В первом случае будем говорить, что числа Хр . . . , Х/Р а также все заполненные клетки удовлетворяют условию
§ 4] ОПРЕДЕЛЕНИЕ КРАТЧАЙШИХ РАССТОЯНИЙ 223 оптимальности и, как будет доказано ниже, каждое число Ху¬ дает кратчайшее расстояние от точки Р1 до соответствующей точки Pj (/ = 1, ...» п). Во втором случае пусть для клетки (/0, /0) нарушена оптимальность, т. е. Ч — Ч, > Тогда исправляем Х/о, заменив его значением Ч = Ч + ^'о/о < ^*о- Это проделываем со всеми клетками с нарушенной оптималь¬ ностью, просматривая последовательно все строки таблицы. Общий шаг повторяем до тех пор, пока не будет выпол¬ нено условие оптимальности (*) для всех заполненных клеток. Проиллюстрируем общий шаг на предыдущем примере. Первый шаг. Для клеток первой строки имеем: ^2 ^1 :== == ^12’ ^4 ^1 == == ^14’ Xg Xj = 9 = /15. Для второй строки: X} — Х2= 7 <7 = /2р Х3 Х2 = 1 1 — /23, ^6 ^2= 4 < 7 = /2б. Для третьей строки: Xj Х3 = 6 < 3 = /31, Х2 Х3 = 1 = /32, ^7 Х3 — 4 = /37, Х8 Х3 = 9 < 15 = /38. Для четвертой строки: Xj — Х4 -—; 5 5 —- /4р Х3 Х4 = 1 —— 7^3, ^5 ^4 = 4 > 2 = /45, Хб Х4 = 6 = /46. Вычисляем Х5 = Х4-|-/45 = 7 и вносим в таблицу исправле¬ ния: Х5 = 9 заменяем на Х5 = 7. Далее проверяем заполненные клетки остальных строк (от пятой до восьмой) и устанавливаем, что для них
224 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Исправленная таблица выглядит так: р> р2 Рз Рч Рз Рз Р7 Рз \Ъ 0 7 6 5 7 11 10 15 р, 0 7 5 9 р2 7 7 1 7 Рз 6 3 1 4 5 Рч 5 5 1 2 6 Р5 7 9 2 11 Р6 11 7 6 10 Р; 10 4 3 5 Рз 15 15 11 10 5 Второй шаг. Проверкой устанавливаем, что получен¬ ные числа Хр . . . , \п удовлетворяют условию оптимальности, так что кратчайшее расстояние /(Рр Pj) от точки Рг до любой точки Pj дается числом Ху (/— 1 8): l(Pv Р2) = Х2 = 7, Z(PP />3) = Х3 = 6. Z(Pp Р4) = ) 4 = 5, l(Pv Р5) = Х5=7, /(Рр Р6) = Х6 = 11, /(Рр Р7)==Х7=10, /(Рр Р8) = Х8=15. 3. Составление кратчайших маршрутов. Заключитель¬ ная таблица, в которой получены длины кратчайших путей, соединяющих по сети точку Рг со всеми остальными, позво¬ ляет уже легко обнаружить для каждой точки Pj кратчай¬
§ 4] ОПРЕДЕЛЕНИЕ КРАТЧАЙШИХ РАССТОЯНИЙ 225 ший маршрут |л0, т. е. последовательно проходимые точки между Р: и Ру. Для его составления отмечаем в столбце под конечной точкой Ру величину = —Х/р которая обязательно суще¬ ствует благодаря правилу вычисления Ху. Если в столбце под Ру найдется более одного из таких значений Z/,y, то отмечаем любое из них. Выписываем звено (Р6, Ру), которое будет последним зве¬ ном маршрута. Повторяя предыдущее со столбцом под P/t, найдем предпоследнее звено (Р/2, Р/,) маршрута, длина кото¬ рого равна lt2tx = \ti—Продолжая процесс, мычобяза- тельно придем (после &4“ 1 шагов) к первому звену (Pi, Ptf^ (с длиной l\t tk = ^tk — М = так как X/ >XG >\> ... >X/ft>X1 = O. Этим построен маршрут fi0(Pi, Ptk, Ptk_^ .... Pt^ Pj) с длиной Z(p-0), равной /(^o) = 4 + //?fe-I+ ••• + ZM = ~\k— "■ — 4=4—Xj = X/. В нашем примере кратчайшим маршрутом из точки Рр например, в точку Р7 будет |х0(РР Р4, Р3, Р7). Нам осталось лишь доказать, что путь |х0 — кратчайший. Действительно, пусть p-(Pi, Ps > Ps2> •••» PsT> P/)—про¬ извольный путь от точки Рг ДО ТОЧКИ Ру с длиной Z (р.). Для звеньев (Pb Р51), (P5l, Р52), ..., (P5f, Pj), в силу вы¬ полнения условия оптимальности, имеем: X?! — Xi liSl, XS1 Z$l(y2, ..., Ху Х5^ lsTj* Складывая почленно эти неравенства и учитывая при этом, что Х1 = 0, получим Z (|i) = Zi5i +13^2 + ... 4~ lsrj — I (Ho), t. e. путь |1о(Л, Ptk> Ptk_{ Pte P/) — кратчайший из Px в Ру и Ху — длина этого пути. 15 С, И. Зуховицкий, Л. И. Авдеева
226 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Замечание. Если для каждой из точек Pv .... Рп решить задачу этого параграфа, то получим матрицу ||с/7-||л/г кратчайших расстояний по сети между любыми двумя точ¬ ками Pt и Pjt используемую обычно в транспортной задаче. § 5. Задача о кратчайшей связывающей сети 1. Постановка задачи и основные понятия. Рассмотрим теперь одну задачу на экстремум, не сводящуюся к обычной тран¬ спортной задаче, но имеющую большое практическое значение также для транспорта. Задача формулируется так. Пусть на плоскости заданы точки Рх, Р2, ..., Рп и расстоя¬ ния C[f между каждой парой точек PL и Pj (Z, /=1, ...» л), что удобно записывается таблицей с симметричной матрицей ||с^||я я: Р1 • • • Рп-1 Р п X С12 ... С1> П- 1 сп\ СП2 п - 1 X Требуется связать все точки сетью прямолинейных звеньев так, чтобы длина всей сети была наименьшей *). Удобного алгорифма для построения кратчайшей связывающей сети нет. Но мы приведем один метод [12], позволяющий построить некоторую связывающую сеть, обычно пригодную на практике, но, возможно, не кратчайшую. Введем некоторые определения. Точку назовем изолированной, если она не соединена звеном ни с какой точкой. Подмножество точек, связанных звеньями, назовем фрагментом. Под расстоя¬ нием точки от фрагмента будем подразумевать минимальное из расстояний от этой точки до всех точек фрагмента. Ближайшим соседом данной точки назовем точку, которая находится от данной на расстоянии не большем, чем все остальные. Ближайшим сосе¬ дом фрагмента назовем любую из ближайших к нему точек. 2. Построение связывающей сети. В основу положены два принципа, выполнение которых необходимо при построении крат¬ чайшей к нему связывающей сети: *) При этом требуется, чтобы из каждой точки можно было попасть в любую другую по звеньяхм сети.
§ 5] ЗАДАЧА О КРАТЧАЙШЕЙ СВЯЗЫВАЮЩЕЙ СЕТИ 227 1) каждая изолированная точка соединяется звеном с ближай¬ шим соседом; 2) каждый фрагмент соединяется звеном с ближайшим соседом. Продемонстрируем метод построения сети на следующем примере. Пример. Пусть условия задачи заданы таблицей Pi А Рз р< А А X 5,7 9,3 4 8 9 5,7 X 6,7 8,4 5 7 9,3 6,7 \/ /\ 11,3 4,2 5 4 8,4 11,3 X 6,1 7 8 5 4,2 6,1 X 5,5 9 7 5 7 5,5 X Нулевой шаг. Построение сети начинаем с первой точки Р{. По первому принципу ее следует соединить звеном с ближайшим соседом. Для его отыскания выписываем первую строку таблицы, за исключением первой клетки: А Рз р< Р5 Р6 5.7, 9,3j 4! 8. 9, Индекс у каждого числа означает номер точки,- расстояние от кото¬ рой записано в этой клетке. Из чисел этой таблицы находим наименьшее 4] (в столбце Р4), следовательно, ближайшим соседом точки Р{ является точка Р4. Соединяем их звеном (Рр Р4), которое вносим вместе с его дли¬ ной 4 в отдельную таблицу (4.16) (см. ниже, на стр. 229). Первый шаг. Из таблицы (4.12) исключаем столбец Р4. Отыски¬ ваем в таблице (4.11) строку Р4. Каждое число этой строки сравни¬ ваем с соответствующим числом таблицы (4.12), принадлежащим тому же столбцу (из оставшихся Р2, Р& Р^ А)> т. е. сравниваем между собой числа каждой из следующих пар: (5,71; 8,44), (9Д; 11,34), (8,; 6,14), (91; 74). В каждой паре выбираем меньшее число и составляем таблицу Рц Рз Рз Рз 5,7, 9,3j 6,14 74 15*
228 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV показывающую соответственно расстояния от каждой из точек Р2, Рз» Р5, Р6 до фрагмента {Ру Р4]. Точка Р2, под которой находится наименьшее число 5,7! таб¬ лицы (4.13), является ближайшим соседом фрагмента {Рр Р4}, и ее следует соединить звеном с точкой (так как индекс 1 у числа 5,7! показывает, что Р2 ближе к Рь чем к Р4). Звено (Plt Р2) и его длину 5,7 вносим в таблицу (4.16) (см. ниже) и переходим ко вто¬ рому шагу. Второй шаг. Исключаем из таблицы (4.13) столбец Р2. Рас¬ сматриваем в таблице (4.11) строку Р2 и сравниваем числа этой строки из оставшихся столбцов Р3, Р5, Р6 с соответствующими числами таблицы (4.13): 6,72 с 9Д; 52 с 6,14; 72 с 74. Меньшее из каждой пары чисел заносим в таблицу Рз Рь Р6 6,72 52 74 (4.14) и точка Р5, под которой находится наименьшее из этих чисел 52, является ближайшим соседом фрагмента {Pi, Р4, Р2}. Она ближе всего находится от точки Р2, поэтому вписываем в таблицу (4.16) звено (Р2, Р5) и его длину 5. Третий шаг. Исключаем из таблицы (4.14) столбец Р5. Рас¬ сматриваем в таблице (4.11) строку Р5. Сравниваем числа этой строки из оставшихся столбцов Р3 и Рб с соответствующими числами таблицы (4.14): 4,25 с 6,72\ 5,65 с 74. Меньшее из каждой пары чисел заносим в таблицу Рз Рб 4,25 5,55 (4.15)
МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ 229 § 6] Наименьшим из чисел этой таблицы является число 4,25, следова¬ тельно, ближайшим соседом фрагмента {Рр Р4, Р2, Р5} является точка Р3 и она ближе всего находится к Р5. Вписываем в таблицу (4.16) звено (Р3, Р5) и его длину 4,2. Четвертый шаг. Исключаем из таблицы (4.15) столбец Р3. Рассматриваем строку Р3 таблицы (4.11) и сравниваем число из оставшегося столбца Рб этой строки с соответствующим числом таблицы (4.15): 53 с 5,55. Меньшим из них является 53. Построение сети заканчивается зве¬ ном (Р3, Р6), которое заносим в таблицу. Окончательно получим Звено Длина звена (Pi. Р<) 4 (Рр р.) 5,7 (Р2. р6) 5 (Р5. Рз) 4,2 (Рз> Ре) 5 (4-16) Схема связывающей сети изображена на рис. 12. § 6. Максимальный поток в сети 1. Постановка задачи0 Пусть задана сеть, состоящая из п+2 точек Ро, Рр Рп, Рп+1 и из некоторого ко¬ личества звеньев (Pz, Ру), соединяющих некоторые упорядо¬ ченные пары Pz, Pj этих точек (рис. 13). Звенья (Pz, Ру) и (Ру, Pz) называются симметричными. По путям |х(Р0, PZj, Р/2, .... PZft, Рл + 1), составленным из звеньев (Ро> Р^, (Р1}, Рп+^ сети и не образующим петель, направляется жидкость, газ или транс¬ порт из точки Ро—входа сети в точку Рп + 1— выхода сети. Каждой упорядоченной паре точек Pz, Ру (Z, у = 0, 1, . .. ..., п+1) отнесено неотрицательное число а^, называемое пропускной способностью звена (Pz, Ру) и определяющее максимальное количество вещества, которое может пропу¬ стить за единицу времени звено (Pz, Ру), причем если ка¬ кая-то пара точек Pz и Рт не соединена звеном, то а1т — 0.
230 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Потоком xtj по звену (Pz, Р;) (/, / = 0, 1 п+1) называется количество вещества, проходящего через это звено в единицу времени. Будем считать, что потоки удо¬ влетворяют ограничениям: О + xij С aij / = 0» 1 ^+1), (4.17) 2 *++7 = ° (Z = l, ...,«). (4.18) /г=0 j = l Ограничения (4.17) означают, что поток по каждому звену (Pz, Pj) неотрицателен и не превышает его пропуск¬ ной способности. Рис. 13. Ограничения (4.18) означают, что количество вещества, притекающего в каждую точку Pt (кроме PQ и Рп+1), равно количеству вещества, вытекающего из Pz. Из ограничений (4.18) следует, что общее количество ве- п + 1 щества 2 xoj> вытекающего из PQ, совпадает с общим ко- 7 = 1 п личеством вещества У xz n+v притекающего в Рп+1>. т. е. z = 0 ’ п + 1 п S xoj = 2 xlin+1 — z. (4.19) J=1 /=0 Линейная форма z называется величиной потока в сети. Поставим задачу об отыскании максимального по¬ тока в сети, т. е. об отыскании такого решения
МАКСИМАЛЬНЫЙ поток в СЕТИ 231 § 6] (/, / = 0> 1» •••» Я-+-1) системы (4.17) — (4.18), которое максимизирует линейную форму (4.19). Поставленная задача является, как видим, задачей линей¬ ного программирования и может быть решена, хотя и гро¬ моздко, симплекс-методом. Частным случаем рассматри¬ ваемой задачи является задача отыскания максимального потока транспорта по заданной транспортной сети, В последней задаче пропускные способности а^ звеньев задаются целыми числами и решение ищется целочис¬ ленное. Ввиду специфики ограничений задачи о максимальном потоке, для ее решения созданы специальные алгорифмы, более эффективные, чем алгорифм симплекс-метода. Один из них, совпадающий по идее с алгорифмом [26а] *), приво¬ дится ниже. 2. Алгорифм. Введем некоторые предварительные поня¬ тия. Разобьем множество всех точек сети на два непересе- кающихся подмножества U и V с обязательным условием, чтобы и Рп+\£У- Выделим множество всех звеньев, выходящих из U и входящих в V, назовем его разрезом сети и обозначим через (U, V). Пропускной способностью разреза (U, V) назовем число A (U, V) = аи. (4.20) Разрез с наименьшей пропускной способностью назовем ми¬ нимальным. При любой величине потока z и любом раз¬ резе (U, 17) каждая частица вещества, движущаяся из Ро в Рп+1, обязательно пройдет хотя бы по одному звену раз¬ реза (£/, V), так что в может за единицу времени по¬ пасть из количество вещества, не превышающее про¬ пускную способность разреза, т. е. A(U, V). (4.21) Приступим теперь к изложению алгорифма. *) См. также Д. Гейл, Теория линейных экономических мо¬ делей, ИЛ, М., 1963.
232 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV П редварителъный шаг. Записываем условия задачи в виде следующей таблицы: А . . . Pl Pj Pn-\ 1 А) a0i aQj Л0 fl+\ А 0/0 aij ai, П + 1 Pj aji aj, n+\ Р л+1 ап+\, 0 . . . an+l, i . . . ап+ъ j (4.22) в верхней строке и левом столбце которой перечислены все точки сети, а в остальных клетках проставлены соответ¬ ствующие пропускные способности звеньев сети. При этом, если PL и Pj соединены звеном, то даже в случае, когда в одну сторону пропускная способность равна нулю, например, а^ > 0, ау7 = 0, следует в клетке (у, /) простав¬ лять нуль. В случае же, когда aZy = a/7 = 0, мы клетки (Z, у) и (у, Z) не заполняем. Для получения максимального потока в сети надо, очевидно, найти все различные пути, по которым ве¬ щество может поступать из Ро в Pn+V и полностью исполь¬ зовать их пропускные способности. При этом следует учесть, что если звено участвовало в некотором пути, то оно может участвовать и в последующих путях, но уже с измененной пропускной способностью. Каждый обнаруженный путь и его пропускная способ¬ ность запоминаются с помощью соответствующего, указан¬ ного ниже, преобразования таблицы (4.22). Общий шаг. Общий шаг алгорифма состоит из следую¬ щих трех действий: 1) отыскания по таблице вида (4.22) нового пути из Р^ в Рп+\ с отметкой чисел в его клетках и симметричных с ними, а также с отметкой столбцов;
МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ 233 § 6] 2) определения пропускной способности найденного пути; 3) вычисления новых пропускных способностей всех звеньев найденного пути и симметричных с ними и стирания всех отметок. 1) Отыскание нового пути с отметкой его (и симметричных) клеток производится по следующей схеме.. В Р0-строке находим одну из заполненных клеток с aQj #= О, например клетку (0, /о) (т. е. берем звено (^о» •-Р/о)), отмечаем аО/о знаком —, a — знаком Столбцы (нулевой и /0-й), в которых расположены отмеченные а/оо и #о/о» отмечаем знаком *. Просматриваем затем Р;о-строку, отыскиваем в ней клетку из неотмеченного столбца, заполненную не нулем, например клетку (/0, /0), отмечаем находящееся в ней число =£ О знаком —, а — знаком -(-» а также отмечаем /0-й столбец (получим второе звено (PyQ, Pt^} Так продолжаем построение, т. е. находим в /0-й строке клетку, заполненную не нулем, из неотмеченного столбца и т. д. до тех пор, пока а) либо придем к Рл+1-столбцу, и путь из Ро в Рл+1 построен, б) либо в рассматриваемой строке не окажется клетки, заполненной не нулем, не принадлежащей ни одному из от¬ меченных столбцов. В случае а) переходим к действию 2). В случае б) про¬ буем новый вариант действия 1) с целью отыскания какого- нибудь пути из Ро в Рл+1, если он существует. Если же такого пути нет, то процесс закончен. 2) Пропускная способность 0г найденного пути, т. е. максимальное количество вещества, которое можно за единицу времени по нему пропустить из Ро в Рл+1, вычи¬ сляется просто, так как она равна, очевидно, минимальной из пропускных способностей звеньев этого пути: 3) Вычисление новых пропускных способ¬ ностей всех звеньев найденного пути необходимо произвести потому, что, как уже отмечалось, в последую¬ щем выборе нового пути могут участвовать некоторые звенья
234 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV предыдущего, но, очевидно, с пропускной способностью» уменьшенной на 0Р Кроме того, надо также учесть возможность существования вместо найденного пути другого, в котором участвует некоторое звено, симметрич¬ ное одному из звеньев предыдущего пути. Оказывается, что пропускную способность звена (Ру, Pz), симметричного использованному в предшествующем пути звену (Pz, Ру), надо считать равной [— 0Х. Это следует из того, что звено (Ру, Pz) не препятствует доставке в Pz ко¬ личества вещества по новому пути (с использованием этого звена) плюс количества 0j по части старого пути от Ро до Pz, так как пропускная способность всех звеньев старого пути не меньше 0! (т. е. мы учитываем, что Pz теперь соединена с Ро двумя путями). Получается, что звено (Ру, Pz) якобы заменено новым с пропускной способностью ад + 01- На рис. 14 старый путь р-(Р0, A, Pt, Pj, В, Рп+1) использует звено (Pz, Ру), а новый р-(Р0, a, Pjt Pt, b, Pn+i) использует симметричное звено (Ру, Pz) и Pz соединена с Ро двумя путями: 1) р(Р0, а, Ру, Pz) и 2) р(Р0, A, Pz). Таким образом, новые пропускные способности звеньев вычисляются по правилу: из отмеченных знаками — вычи¬ тается 0р а к отмеченным знаком -|- прибавляется 0Р.
МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ 235 § б] Остановимся еще на способе запоминания путей и их пропускных способностей в описанном общем шаге алго¬ рифма. Очевидно, все звенья старого пути р.(Р0, A, Pt, Pj, В, Pn+i) и его пропускная способность запоминаются тем, что из всех пропускных способностей звеньев этого пути вычитается 0Р и в рассматриваемой в следующем шаге новой задаче уже фигурируют новые пропускные способности. Обеспечено также неповторение старого пути, так как одно по крайней мере из его звеньев имеет теперь нулевую пропускную спо¬ собность. Если в новом пути (Ро, a, Pj, Pt, b, Рп+1) (см. рис. 14) с пропускной способностью 02, где, например, 02 > ®1» ис" пользовано симметричное звено (Pj, Р^, то это означает, что старый путь [i(P0, A, Pt, Pj, В, Рп+1) не использу¬ ется, а вещество направляется по следующим трем путям: 1) по |л(Р0, a, Pj, Pt, b, Pn+i) с пропускной способ¬ ностью 02— 0Р 2) по (х (Ро, a, Pj, В, Pn+i) с пропускной способностью 0Р 3) по jx(P0, A, Pt, b, Рп+А) с пропускной способностью 0Р По этим трем путям будет в Рп+1 доставлено в единицу времени 0Х-(- 02 количества вещества. Это равносильно тому, что по старому пути jx(P0, A, Pt, Pj, В, Рп+}) доставлено 0Р а по новому (I (Ро, a, Pj, Pt, b, Рп+^) доставлено 02 коли¬ чества вещества. После вычисления пропускных способностей звеньев сти¬ раем все отметки в таблице и применяем общий шаг к пре¬ образованной таблице, повторяя его до тех пор, пока не при¬ дем к таблице, в которой нет ни одного пути из Ро в Рп+1. Для определения полученного потока ХЦ (I, 7 = 0, 1 «+0 вычтем из всех элементов первоначальной таблицы про¬ пускных способностей звеньев соответствующие элементы таблицы, полученной на последнем шаге. Положитель¬ ные значения найденных разностей и определяют, очевидно, величины потоков x-Lj по звеньям, а величина потока в сети вычисляется по формуле (4.19).
236 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Убедимся, что для окончательного потока, полученного применением изложенного алгорифма, имеет место следую¬ щее утверждение: Если xZy>0, то по симметричному звену (Ру, Р.) (/, у==0, 1, ...» п-1- 1) нет потока. Действительно, пусть по всем путям, проходящим через звено (Pz, Ру), пропускается суммарно количество вещества 0'. Это означает, что пропускная способность этого звена стала равной aZy—6', а звена (Ру, Pz) стала равной а Пусть, кроме того, по всем путям, проходящим через звено (Ру, Pz), пропускается суммарно количество 0" (0Z/ < 0Z), следовательно, пропускная способность этого звена в итоге стала равной, — 0", а звена (Pz, Ру) стала равной atj—0'—|— 0". Отсюда уже видно, что при Xij = ai} - (а0 - 6' + 9") = 0' — 6" > О будет обязательно X]i = ajt - (a]t + 9' - 6") = 0" — 0' < О, т. е. по звену (Ру, Pz) нет потока. 3. Обоснование алгорифма. По построению алгорифм обрывается, как только получена таблица, в которой нельзя построить ни одного пути из Ро в Рл+1. Покажем, что по¬ лученный таким образом поток является максимальным. Для этого построим разрез (/7*, V’*) следующим образом: Ро££/*, а при k =/= 0 пусть Pk £ U* тогда и только тогда, когда Pk достижимо из Ро, т. е. когда существует некоторый путь р.(Ро, Р/р Р/2> ...» Рь) из точки Ро в Pft; остальные точки сети (недостижимые) отнесем к V*. Так как не суще¬ ствует никакого пути из Ро в Рл+1, то Рл+1СУ*. Пусть точка Pz £/7* связана звеном с Py£V*. Так как из Ро в Pz существует путь, а из Ро в Ру его нет, то это означает, что в окончательной таблице пропускная способность звена (Pz, Ру) равна нулю. Следовательно, либо xZy. = aZy и XyZ = 0, либо xZy = 0, так как = 0 и ajt Ф 0, но (Ру, Pz) не используется. Поэтому величина z потока из (У* в V* (или, что то же, из Ро в Рл + 1)
МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ 237 § определяется равенством Z = 5 аи. PfiU*, Р.£У* С другой стороны, для пропускной способности A(U*> У*) разреза ((7*, V*) имеем Таким образом, величина полученного потока z равна пропускной способности разреза (£/*, V*), а так как по.(4.21) Рис. 15. для произвольного потока z и произвольного разреза (£7, V) z ^A(U, У), то равенство величины потока пропускной способности раз¬ реза означает, что величина полученного потока z макси¬ мальна, т. е. z = z*, х^ = х*} (/, У=0, 1, ...» п+1), а разрез ((7*, У*) минимальный, т. е. А(1Г, У*) = min A(U, У). [U, V) Задачу, отыскания минимального разреза будем считать двойственной к задаче об отыскании максимального потока; таким образом, доказана.
238 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV Теорема двойственности. Величина максималь¬ ного потока в сети равна пропускной способности минимального разреза. 4. Пример. Дана сеть с входом Ро и выходом Р7, по которой направляется вещество. Пропускные способности всех звеньев указаны на рис. 15. Определить максимальную величину потока из Ро в Р7. Предварительный шаг. Составляем таблицу * -к- % * Ро Pl Рз Рз р< Рз Рз Рз Рз 2 5' 2 3 Рх 1 3 2 2 Р2 3+ 1 4~ 3 Рз 2 2 5 4 Р> 3 2 2 4 2+ 0 1 4“ Рз 2 4 3 0 3 Р? 4 3+ 2 Первый шаг. 1) Находим какой-нибудь путь из точки Ро в Р7, например (Ро, Р2, Р5, Р7). Отмечаем я02, я25, а57 знаками —, а а20, я52 и а75 — знаками 2) Вычисляем пропускную способность найденного пути: 91 = min[a“, а-, = min {5; 4; 4) = 4. 3) Вычитаем 0} = 4 из а~г а~^ а~ и прибавляем к а+, и ^75* Получаем таблицу, помещенную в начале стр. 239. Второй шаг. 1) Находим путь из Ро в Р7, например р2(Р0, Р4, Рб, Р7). Отмечаем я04, я46, яб7 знаками —, а я40, я64, я76 — знаками 2) Вычисляем пропускную способность пути: 62 = min[#~, а^, a-j=min{3; 2; 3} = 2.
§ 6] МАКСИМАЛЬНЫЙ ПОТОК В СЕТИ 239 -х- * % -х- ~ГГ~ 1 0 Рх Рз Рз Рх Рз Рз Pl Рз 2 1 2 3~ Рх 1 3 2 2 Рг 7 1 0 3 Рз 2 2 5 4 Рх 3+ 2 2" Рз 4 6 0 1 0 Рз 2 4 3+ 0 3" Pi 4 7 2+ 3) Вычитаем 02 = 2 из а~, а~, а~ и прибавляем к а+, а^. Получим таблицу Ро Рх Рз Рз Рх Рз Рз Рз Рз 2 1 2 1 Рх 1 3 2 2 Р2 7 1 0 3 Рз 2 2 5 4 Рх 5 2 0 Рз 4 6 0 1 0 Рз 2 4 5 0 1 Рз 1 4 1 7 4 В следующих четырех шагах строим пути: Р-зС^о* ^6» Pj) с 63—1, |х4(Р0, Ру) с 04 = 2, P'S (Л)> ^4’ ^1) С 1’ РчДЛр ? 2’ ^6’ ^4’ ^3’ ^7) с 0б=1,
240 ТРАНСПОРТНАЯ ЗАДАЧА [ГЛ. IV В полученной на шестом шаге задаче с таблицей р0 л р3 л Рь р6 Рт >о 1 0 0 0 Pi 2 3 2 1 Pt 8 1 0 2 Pt 4 4 5 0 л 6 0 1 Рь 4 6 0 1 0 л 3 5 4 0 0 л 8 7 5 уже нельзя найти ни одного пути из PQ в Р7, так что остается лишь найти потоки xtj по звеньям сети и вели¬ чину z максимального потока. Вычитаем из элементов первой таблицы соответствующие элементы последней таблицы и вносим в таблицу лишь по¬ ложительные из найденных разностей. Получим таблицу р0 Pi Pt Рз 1 р< 1 р* Рб Ру ра 1 5 2 3 Pi 1 Pt 4 1 р3 4 р< 2 1 Рь 4 р. 1 3 Р 7 указывающую максимальный поток с величиной ^ = 4 + Г67+х*; = 4 + 4+3=11.
ГЛАВА V ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ И ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ В настоящей главе рассматривается применение методов линейного программирования к задачам чебышевского при¬ ближения. В §§ 1—3 изучаются такие задачи чебышевского при¬ ближения, которые, являясь задачами выпуклого кусочно¬ линейного программирования *), все же сводятся к задаче линейного программирования. § 4 посвящен одной задаче чебышевского приближения, которую удается свести к одной из задач нелинейного программирования **). Для решения последней приводится сходящийся алгорифм, каждый шаг которого представляет собой решение задачи линейного программирования. Наконец, в § 5 решается задача минимизации суммы модулей линейных функций путем сведения этой задачи выпуклого кусочно-линейного программирования к задаче линейного программирования. Во всей главе в духе общего плана книги рассматри¬ ваются лишь такие алгорифмы, которые сводят приводимые здесь задачи к задаче линейного программирования, решае¬ мой симплекс-методом. Это приводит к значительному уве¬ личению количества ограничений и, следовательно, к увели¬ чению размеров таблиц. *) То есть задачами, в которых минимизируемые (целевые) функции выпуклы (вниз) и «склеены» из «кусков» линейных функций. **) То есть к задаче, в которой минимизируемая (целевая) Функция или некоторые из ограничений не являются линейными, 16 С. И. Зуховицкий, Л. И. Авдеева
242 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Существуют, однако, и другие алгорифмы^ которые за счет более сложного, чем в симплекс-методе, правила выбора разрешающего элемента не требуют введения допол¬ нительных ограничений и позволяют вести вычисления со значительно меньшими таблицами. Для чебышевских при¬ ближений можно отметить, например, алгорифмы, указанные в [4а] и [35], а для задачи § 5 — алгорифмы, указанные в [3] и [46]. § 1. Задача чебышевского приближения несовместной системы линейных уравнений 1. Постановка задачи. Геометрическая интерпретация. Условие единственности. Пусть задана несовместная си¬ стема тп линейных уравнений с п неизвестными = ^Zlxl + ••• + ainxn + ai — 0 (5.1) (Z = 1, . . ., tri). Задача чебышевского приближения системы (5.1) заключается в отыскании чебышевской точки этой системы, т. е. точки х* (х*, ..., х*), для которой шах | т]. (х*) | = inf max | vj. (х) [ = L *). (5.2) 1 < i < m х 1 < i < m Геометрически чебышевская точка х* является точкой, наименее уклоняющейся (см. п. 2 § 1 гл. I) по модулю от всей системы плоскостей (5.1) в том смысле, что всякая другая точка будет уклоняться по модулю от некоторой из плоскостей системы (5.1) больше, чем точка х*, т. е. больше, чем на L. Если каждые п из плоскостей (5.1) пересекаются в одной точке, т. е. если все миноры n-го порядка матрицы ||я^||/7Ъ/z отличны от нуля (условие А. Ха ар а), то, как нетрудно убедиться, чебышевская точка х* лежит внутри некоторого n-мерного симплекса, ограниченного п+1 плоскостями из (5.1), от которых она максимально и равно уклонена по модулю на А, от остальных же плоскостей системы (5.1) ее уклонения по модулю не превышают L. *) Вместо задачи чебышевского приближения несовместной системы уравнений (5.1), можно говорить о чебышевском прибли¬ жении системы линейных функций тц (х), ..., (х).
§ 1] НЕСОВМЕСТНАЯ СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ 243 На рис. 16 для случая n = 2, т = 6 чебышевская точка х* лежит внутри двумерного симплекса — треуголь¬ ника, ограниченного прямыми, наведенными жирно, от ко¬ торых х* максимально и равно уклонена. В этом и только в этом случае для любой системы сво¬ бодных членов aL соответствующая чебышевская точка си¬ стемы (5.1) единственна. Для выяснения геометрической картины задачи в случае невыполнения условия А. Хаара удобно пользоваться поня¬ тием r-мерной призмы. Будем под г-мерной призмой по¬ нимать множество точек n-мерного пространства, ограни¬ ченное г+1 плоскостями из (5.1), каждые г из которых пересекаются, образуя линейное многообразие — (п — г)-мер- ное ребро призмы, а оставшаяся (г4~1)"я плоскость (грань призмы) параллельна этому ребру. В частности, п-мер- ная призма является симплексом (n-мерным). В трехмер¬ ном пространстве двумерная призма — это обычная трех¬ гранная призма, только бесконечная — не срезанная основа¬ ниями. В случае г = 1 призма (одномерная) представляет собой слой n-мерного пространства, ограниченный двумя параллельными плоскостями, являющимися одновременно ребрами и гранями этой призмы. Можно убедиться, что при невыполнении условия А. Хаара чебышевская точка х* системы (5.1) лежит внутри некото¬ рой r-мерной призмы (1 г п), ограниченной г 4-1 пло¬ скостями, от которых она максимально и равно уклонена по модулю на L, а от остальных плоскостей системы (5.1) 16*
244 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V ее уклонение по модулю не превышает L. Единственность чебышевской точки теперь не обязательна и существенно зависит от свободных членов at системы (5.1). Другую, принадлежащую Фурье, геометрическую интер¬ претацию задачи получим, если рассмотрим в (л-|- 1)-мерном пространстве выпуклую поверхность z — шах И/(х)|, (5.3) 1 < i < т направленную выпуклостью «вниз», т. е. к «горизонтальной» плоскости z = 0, и состоящую из плоских кусков, т. е. являющуюся выпуклой кусочно-линейной поверхностью. Чебы¬ шевской точке х* соответствует «наинизшая» точка, (вершина) (х*, z*) этой поверхности. Поверхность (5.3) может иметь площадку, параллельную плоскости £ = 0, и тогда задача (5.1) — (5.2) имеет не един¬ ственное решение (каждая из точек (х, z} площадки является чебышевской). 2. Присоединенная задача линейного программирова¬ ния. Введем дополнительную переменную хл+1 и составим систему линейных неравенств (/=1, .... т), т. е. систему У1 = ч 4- хп+1 = + ... +ainx„ + xn+i +ai > 0. | У*=~ ^+хл+1=—аих— •••— ainxn+xn^—ai>°) ( ’ (/ = 1 /п). Рассмотрим задачу минимизации линейной формы z = x„+l (5.5) при ограничениях (5.4). Эта задача линейного программиро¬ вания называется присоединенной к задаче чебышевского приближения системы (5.1). Нетрудно убедиться, что задача (5.1) — (5.2) чебы¬ шевского приближения эквивалентна задаче линейного программирования (5.4) — (5.5). Действительно, пусть £/ = minxn + 1 при ограничениях hzWl c^+i (Z = 1, .. ., т) и достигается в точке (х', х'п 4 которая является, таким образом, некоторым решение!*!
§ 1] НЕСОВМЕСТНАЯ СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ 245 задачи (5.4) — (5.5). Тогда zr — х' = max I тц (xz) I > min max [ t?z (х) | = L. i х i С Другой стороны, в чебышевской точке х*, т. е. в реше¬ нии задачи (5.1) — (5.2), имеем Hz(x*)|<;A (Z=l, . . ., тп), т. е. (х*, хл + 1 = А) удовлетворяет ограничениям (5.4), поэтому zr, как наименьшее значение хп+1 при выпол¬ нении ограничений (5.4), не превышает L: zr < L. Из двух неравенств заключаем, что £ = У, так что L = max 1v/z (х') ] = min max | tjz (х) |, i xi т. e. xr — чебышевская точка системы (5.1) и L — x'+r Пусть теперь x* — некоторая чебышевская точка системы (5.1), т. е. max | vjz (х*) | = min max | tjz (х) | = L. i х i Тогда I > И/ (**) I (t = 1..... иг), т. e. (x*. x„+1 — L) удовлетворяет ограничениям (5.4); по¬ этому zr L. С другой стороны, как уже отмечалось, для решения (х', х^+1) задачи (5.4) — (5.5) имеем z' = х' j = max | tqz (xz) [ min max | tjz (x) | = L, i r i так что zr^>L\ следовательно, z' = L, т. e. (x*, L)— ре¬ шение задачи (5.4) — (5.5). Таким образом, задача (5.1) — (5.2) чебышевского при¬ ближения сводится к присоединенной задаче (5.4) — (5.5), которую, как типичную задачу линейного программирования, можно уже решать симплекс-методом. 3. Схема решения задачи симплекс-методом. Для че¬ бышевского приближения системы ^(х) = апХ1+ ... -J- а/яхл-Ь а, = 0 (/=1 иг)(5.1)
246 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V переходим к присоединенной задаче (5.4) — (5.5), которую задаем таблицей — X! .. . —хп хп+\ ! 1 У1 = — а\\ • • • — а\п — 1 Ут ~ атл • - ■ • атп —1 ат * >1 = • • ат —1 — Д1 * Ут атЛ • • • атп —1 ~ат Z = 0 0 —1 0 При помощи последовательных шагов модифицированных жор- дановых исключений исключаем лишь координаты xv .. ., хп (так как хп+1 > 0) и выписываем отдельно их значения*). Применяем алгорифм симплекс-метода для отыскания опорного решения (гл. II, § 2), т. е. для избавления от отри¬ цательных свободных членов, а затем для минимизации z (гл. II, §§ 3 и 5). Получив решение, вычисляем координаты х*, ..., х* чебы¬ шевской точки. Уклонение L равно полученному значению z. Пример. Найти чебышевскую точку системы 7]1 = 2х1— х2— 3 = 0, 7]2= Xj х2-|-2 = 0, ^3 = Х| Зх2 —Н 1 == О’ т^4= хг — 2х2+ 2 = 0. Переходим к присоединенной задаче минимизации формы z = x3 при ограничениях у1== 2хх— х3—3>0, у2= х1+ x2~i~ хз~Ь 2 0, у3= хх Зх2+ х3+ 1 > 0, у4= Xj — 2х24~ *з”Ь 2 0, У1 = — 2хх + x2-j-х3-{- 3 0, у2 = — хг x2~h х3 — .2^0, у3’ = — Xj-j- Зх2+ х3 1 0, ?4 = х! + 2х2 + х3 2^0. *) Впрочем, удобно также исключить хл+1, так как таблица содержит г = хл+1.
247 НЕСОВМЕСТНАЯ СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ § И Составляем таблицу: — Х1 — *2 ~Х3 1 У1 = —2 1 1-11 —3 ?2 = —1 — 1 —1 2 Уз = —1 3 —1 1 у4 = —1 2 —1 2 * У1 = 2 —1 —1 3 II 1 1 —1 —2 * Уз = 1 —3 —1 —1 * У 4 = 1 —2 —1 —2 г = 0 0 —1 0 Исключив переменные хр х2, х3, придем к таблице — У2 -Уз —У1 1 у2 = 2 3 1 4 3 25 3 1 1 1 17 у4 = ' 6 ’ 2 3 6 * 5 1 1 25 У1 = 3 “ 3 3 * 5 4 25 Уз = 3 2 3 3 * 3 3 —1 11 ?4 = 2 2 2 5 1 2 25 Z — 6 2 3 6 причем х3 — — 2хх + л:2 + + 3, 1 * - 1 ,1 *1 = —-ЗУ2+-ЗУ1+-3’ 1*1 ,1 ,11 Х2 Q ^2 2 Уз+з У1+ 6 • Так как в последней таблице все свободные члены положи¬ тельны, то решение У2=Уз=У1=()
248 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V опорное, *но не оптимальное, потому что среди коэффици¬ ентов ^-строки еще есть положительный. Для отыскания min z следует произвести шаг модифицированного жорда- нова исключения с разрешающим элементом, взятым в рамку. Получим — >2 ‘ * “"3’4 — У1 1 у2 = * У1 = * Уз = Уз = 14 3 14 3 14 3 1 И 3 1 1 1 7 z = 3 3 3 3 Таким образом, min z = у и достигается при т. е. при х2 = 0, Подставив полученные значения хр х2, х3 в первона- чальную систему, найдем уклонения: 7 7 4 7,7 ^1 — з ’ ^2 — з ’ ^3 — 3 » ^4 — з > L — з • 4. Применение двойственного симплекс-метода. По¬ скольку после исключения координат xv ..., хп таблицы (5.6) коэффициенты 2-строки не изменятся, удобно продолжать решать задачу двойственным симплекс-методом. При этом коэффициенты 2-строки остаются все время неположитель¬ ными, и первое опорное решение уже будет оптимальным.
§ п НЕСОВМЕСТНАЯ СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ 249 Проиллюстрируем это на примере: рассмотренном выше (стр. 246) — *1 — х2 — *3 1 * ~У2 -х2 — -*з 1 У1 = —2 1 —1 —3 У1 = 2 —3 —7 У 2 = —1 —1 —1 2 у2 = 1 0 —2 0 Уз = —1 3 —1 1 Уз = 1 4 —2 —1 ?4 = —1 2 —1 2 У 4 = 1 3 —2 0 У1 = 2 —1 —1 3 * _> >1 = —2 —3 1 7 * У2 = ш 1 -1 —2 X] = 1 1 —1 —2 * Уз — 1 —3 —1 —1 II —1 —4 0 1 * У4 = 1 —2 —1 —2 II -1 —3 0 0 г = 0 0 —1 0 Z =- 0 0 —1 0 х1 = — У2 — *2 + -*3~ 2 х2 = — У*2 —У1 — х3 1 У2 = 2 3 4 -■ 7 3 У 2 = 1 0 —2 0 Уз = 5 4 9 25 Уз = 3 -у 2 3 У 4 = У4 = —1 —1 1 7 * ♦ л = 0 1 —2 0 -> У1 = 5 4 25 * Уз = т У ~4 “У Уз = * >4 = 1 1 ы —7 *3 = г = 0 0 —1 0 Z = х2 = з У 2 з У1Н" хз з •
250 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ (ГЛ. V Из последней таблицы находим, что min z = у и дости 1 гается при х1 = -у, х2 = 0. § 2. Задача чебышевского приближения системы линейных функций (уравнений) при наличии ограничений 1. Задание ограничений системой линейных нера¬ венств. Пусть задана система линейных функций 7)г(х)=апХ1+ ... (Z=l т) (5.7) и система линейных неравенств (ограничений) + ••• + ^knxn + bk > 0 (£=1 р), (5.8) определяющая некоторый ограниченный многогранник 2. Рассмотрим кусочно-линейную выпуклую функцию zz(x) = max| t]z(x)|. z Задача минимизации функции и(х) при ограничениях (5.8), т. е. задача отыскания точки х* £ S такой, что и (х*) = max | (х*) | = min max | (х) |, (5.9) i i является задачей выпуклого кусочно-линейного программиро¬ вания и служит обобщением рассмотренной в § 1 задачи чебышевского приближения системы (5.7) на случай, когда дополнительно заданы ограничения (5.8). Для решения задачи введем, аналогично п. 2 § 1, до¬ полнительную переменную xn+v положив I (•*)! < хп+1 (1=1, .... т). (5.10) Мы придем тогда к следующей задаче линейного про¬ граммирования: минимизировать функцию
§ 2] СИСТЕМА ЛИНЕЙНЫХ ФУНКЦИЙ С ОГРАНИЧЕНИЯМИ 251 при ограничениях (5.10) и (5.8), т. е. при ограничениях У/ (л) + • • • + ainxn + хп+1 + «Z 0-1 у*(х) = -а.л-...- alnxn-i-xn+1^- а.^ 0 J (1=1, ..., /п), (& = 1 р). Пример. Минимизировать функцию и(х)= шах |^(х)|, 1 < / < 3 где (х) = хг — 2х2, т|2 (х) = 2х1 — х2 — 4, (х) =±= 3xj —j— х2 3, при ограничениях 8Х (х) = — xt — х2 + 1 0, Xi>-0, х2^0. Эквивалентная задача линейного программирования фор¬ мулируется так: минимизировать функцию z = x3 при ограничениях ут = хт — 2х2 + *з ^0» у2= 2хг— х2 -1- х3—4^>0, Уд — ЗХ| —[— х2 —х3 — 3 0, У*=— Xj + 2х2 + Х3 >0, У 2 ~ ^Х1 “Ь х2 4" хз "Ь 4 0, У3 =— 3Xj х<2 -f“ х3 —3 0, 8j —: хJ — х2 —[— 1 О, ^>0, х2>0.
252 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Составив таблицу и освободившись от отрицательных свободных членов, получим — — х2 — У 2 1 У1 = 1 1 — 1 4 Уз = —1 —2 —1 1 * У1 = 3 —3 —1 4 II 4 —2 —1 8 * Уз = 5 0 —1 7 Ь1 = Ш 1 0 1 z = 2 —1 —1 4 причем х3 = — + х2 + у2 4“ 4. Сделав шаг модифицированного жорданова исключения, по¬ лучим таблицу — —х2 —у2 1 У1 = 3 Уз = 2 •ft У1 = 1 * У2 = 4 II 2 Л] = 1 Z = —2 —3 —1 2 из которой находим: min z — 2, = х2 = у2 = О, У1 = 3, у3 = 2, у<=1, у* = 4, у>2, х1=1, откуда х1=1, х2 = 0, х3 = 2, 7]1=1, Т)2 = —2, 7]3=0.
§ 2] СИСТЕМА ЛИНЕЙНЫХ ФУНКЦИЙ С ОГРАНИЧЕНИЯМИ 253 2. Задание ограничений системой линейных уравне¬ ний. Рассмотрим снова систему линейных функций уц(х)^апх1 + ••• + + (г=1. .... т), (5.7) и пусть ограничения заданы не в виде линейных неравенств, как в п. 1, а в виде линейных уравнений (связей): ... -\~bknxn-\-bk = Q (^=1, ..., р). (5.11) Задача чебышевского приближения системы (5.7) при на¬ личии связей (5.11) заключается в отыскании среди мно¬ жества решений Аг={х) системы (5.11) такого решения х*, для которого шах | (х*) | = min max | (х) | i х^Х I (задача В. А. Маркова [И]). Очевидно, метод, изложенный в п. 1, полностью решает эту задачу, только надо учесть, что теперь в задаче фигу¬ рирует смешанная система ограничений: неравенства уДх)= ЗД + • • • +а/Л+ x„+14-az>0, | — ... -alnxn-[-xn+i — oz>0 J (Z = 1, ..., щ) и уравнения (x) ^k\x\ + • • • + bknxn bk = 0 (k = 1, ..., p), так что симплекс-метод следует применять в том виде, как это указано в п. 2 § 4 гл. II. Пример. Найти чебышевское приближение системы Xj — х2 — 2х3— 1, ^з(х)= —^2~h Зх3 при связях &i(x)s—хт + х3-|-4 = 0, &2(х)== 2xj — х2 — Зх3 =0. Согласно предыдущему задача сводится к минимизации функ¬ ции Z = Xi
254 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V при следующей смешанной системе ограничений: У1— Х1— Х2— ^хзЧ~х4— 1 ^0, у2= 2х1-}-х2 х4-{-2 О, Уз — —Зх3 + х4 >0, У* —— + х24- 2%3x4-j- 1 0, у*2 = — 2х1 — х2 Ч~х4— 2 > 0, у3= х2—Зх3 + ^4 >0, &! = — хг + х3 4~ 4 = 0, §2 ~ 2 X— Зх3 ~ — О» Составляем таблицу — — х2 — х3 — X 4 1 У1— —1 1 2 —1 —1 у2 = —2 —1 0 —1 2 Уз = 0 1 —3 —1 0 * У1 = 1 —1 —2 —1 1 II 2 1 0 —1 —2 * Уз = 0 —1 3 —1 0 0=&! = гп 0 —1 0 4 0=В2 = —2 1 3 0 0 z = 0 0 0 —1 0 и, согласно п. 2 § 4 гл. II, получаем: — х2 — х3 — х4 1 — х2 — х4 1 У1 = 1 1 —1 3 У1 = 0 —1 —5 У 2 = —1 —2 -1 10 Уг = 1 —1 26 Уз = 1 —3 —1 0 Уз = 4 —1 24 * У1 = —1 —1 —1 —3 * >1 = 0 —1 5 * У2 = 1 2 —1 —10 * -> У2=^ ш —1 —26 * Уз = —1 3 —1 0 Уз = —4 —1 —24 *1 = 0 —1 0 4 х3 = 1 0 8 0 = 1 Щ 0 8 Z = 0 —1 0 0 0 —1 0
ЧЕБЫШЕВСКАЯ ТОЧКА ЛИНЕЙНЫХ НЕРАВЕНСТВ 25г> з] — У 2 — 1 — У 2 — УЗ 1 У1 = 0 —1 —5 у2 = 1 —2 0 Уз = 4 Ml —80 У1 = 0 —1 5 х2 = — 1 1 26 * >3 = —4 3 80 Z = 0 —1 0 Х1 = л3 + 4, х3 = У1 = 11 Уг — 32 х4 = 16 > у[ = 21 * Уз = 32 4 1 z — 16 5 5 8» л2 = У 2 — х4 + 26 Таким образом, min z — 16 и достигается в точке хх = 2, х2 = 10, х3 =—2. § 3. Чебышевская точка системы линейных неравенств 1. Постановка задачи. Геометрическая интерпретация. Пусть дана система линейных неравенств Ч (х) — ai\X\ + • • • + а1пХп + ai < 0 (Z = 1, .. ., zn) (5.12) и пусть Z, = min max ^(x). (5.13) x 1 < i < tn Система (5.12), очевидно, совместна (разрешима) тогда и только тогда, когда А < 0. В этом случае |£| есть устой¬ чивость разрешимости этой системы в том смысле, что существует решение х\ устойчивое по отношению к неко¬ торому изменению коэффициентов системы (5.12), т. е. остающееся при этом решением новой системы до тех пор, пока изменения коэффициентов не приведут к изменению, Уклонений 7]Дх*) (Z = 1 т) на величину, большую чем | L |.
256 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Если же L > 0, то система (5.12) несовместна и L — ее минимальное уклонение. Точка х*(х*, . .., х*), в которой при L =#—оо дости¬ гается (5.13), так что max 7}z(x*)c=min max t]z(x) = £, (5.14) 1 < i < m x 1 < д < m называется чебышевским решением системы (5.12), если £<^0 (х*— устойчивое решение), и чебышевским прибли¬ жением этой системы, если L > 0. В любом из этих случаев точку х* будем называть чебышевской точкой системы (5.12). Геометрический смысл чебышевской точки х* системы (5.12) наиболее прост, когда каждые п из плоскостей iqz = 0 (/=1, ..., т > п) пересекаются, т. е. когда выполняются условия А. Хаара. В этом случае, если х* — чебышевское решение совместной системы (5.12), то точка х*, равно- уклоненная на величину £<0 от п 4-1 из этих плоскостей, ограничивающих n-мерный симплекс, лежит внутри этого симплекса, являясь одним из множества решений системы (5.12) , и уклоняется не более чем на £ от остальных т — п—1 плоскостей. На рис. 17 рассмотрен случай п = 2, т = 5. Штриховкой отмечены полуплоскости, для точек %
§ 3] ЧЕБЫШЕВСКАЯ ТОЧКА ЛИНЕЙНЫХ НЕРАВЕНСТВ 257 которых ^(х)<;0. Точка х*— чебышевское решение си¬ стемы линейных неравенств. Если же х*— чебышевское приближение несовместной системы (5.12), то геометрическая интерпретация та же, только х* уже не является решением (решений нет!) (рис. 18). Задача отыскания чебышевской точки системы линейных неравенств, представляющая и самостоятельный интерес, имеет важное значение для задач, рассматриваемых ниже, в § 4, а также в гл. VI. 2. Сведение к задаче линейного программирования. Примеры. Введем вспомогательную переменную хл + 1 во все ограничения, требуя выполнения неравенств 7iz(x) = anxi4- ... + (/ = 1 т). Тогда, как и в § 1, задача (5.12) — (5.14) сводится к экви¬ валентной ей следующей «задаче линейного программирова¬ ния: найти минимум линейной формы (5.15) при ограничениях ••• + й.Л + а<<Лн (i = l tn). 17 С. И. Зуховицкий, Л. И. Авдеева
258 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Переписав ограничения в виде У/ (*) = — аахг — ... — а1пх„ + хл+1 — > 0 (5.16) (Z — 1, ../п), решим задачу (5.15) — (5.16) симплекс-методом. Пример 1. Найти чебышевскую точку системы линей¬ ных неравенств TQ1 = Х2-|-ЗС0> = — 2Xj — х2 — 2 О, *13 = Х1~Г х2~ 2 <0, т]4 = — хх 2х2 — 8 < О, ''15 = — *1 + Х2~ 6<0. Введением дополнительной переменной х3 сводим задачу к отысканию минимума формы z = x3 при ограничениях У1 — — Х1Ч~ x2~h хз— 3^.0, у2= 2х}-^~ х24-х3+2>0, Уз= — Х1— л:2+х3-|-2>0, У4 = Xj 2х24~ *3+8 О, у5 = Xj— х2 —|— х3 —(■“ 3 0. Составив таблицу и исключив переменные, получим таблицу — У1 — У 4 — Уз 1 у2 = 7 4 3 2 9 4 1 4 У& = 1 2 —1 1 2 1 2 1 _1 1 4 2 4 4
§ 3]' ЧЕБЫШЕВСКАЯ ТОЧКА ЛИНЕЙНЫХ НЕРАВЕНСТВ 259 и выражения для xv х2, х3: X] — — У] + *2 + хз — 3, х2 — — У4 + 2х3 5, 3,1 1 5 хз = 4-У1 + Уз — т• В таблице есть еще отрицательный свободный член А. исключе- После одного шага модифицированного 3 ния с разрешающим элементом — жорданова придем к таблице 1 У4 = У5 = z — У1 — У 2 —Уз 1 6 2 3 1 1 1 7 6 3 2 6 > в которой все элементы ^-строки неположительны, тельно, Следова- min z = —“§■ < О» так что система совместна. При этом У1 = У2 = У3 = О, у4 = |,у5=2., следовательно, _____ ^5 —А __ 7 хх — 3 ’ х2 — 2 ’ ~ 6 * т. е. (— У ’ у) — чебышевская точка (решение), а е. ее укло¬ нения от плоскостей 7)z = 0(Z=l, ...» 5) равны соответст¬ венно 7 7 7 8 11 — — “0 ’ ^2 — — "ё ’ % — б ’ — 6 ’ 715 6 * 17*
260 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Пример 2. Найти чебышевскую точку системы 7h = х2—1<0, % == — •Х'г “Ь 1 О» 7)з= —*1 -{-1^0, т)4 = — хг — 2х2Н-2<0, т)5х= 2.^ + х2 — 3<0. Заменим эту задачу эквивалентной ей задачей отыскания минимума функции z = x3 при ограничениях У1 = — — Х2-\- Х3-Ь 1 О, 34 = *2 4“ *3 — 1 О’ у3= хг +*з— у4 — *i + 2х2 + хз — 2 О, у5 = — 2%!— х2+х3 + 3>0. Составив таблицу и исключив xv х2, хз* найдем xi = Уз — хз+ Х2 = У 2 Х3 + 1 ’ 1 I 1 I 1 хз— уУз+ У2 — "4 34 + у и получим таблицу — Уз -У2—У* 1 1 2 0 —2 —3 3 2 2 1 2 2 1 —1 1 1 2 2 2 все свободные члены которой уже неотрицательны, так что решение З’з = 3,2 = 5,4 = ° опорное.
§ 4] ПРИБЛИЖЕНИЕ ОТНОШЕНИЯМИ ЛИНЕЙНЫХ ФОРМ 261 Переходим к отысканию оптимального решения. Сделав шаг модифицированного жорданова исключения с разрешаю¬ щим элементом ~ , получим таблицу — Уз — У 2 — У1 1 1 3 4 3 1 1 1 1 3 3 3 3 Все элементы ^-строки отрицательны, так что У1 = -У 2 = Уз ~ О приводит к оптимальному решению при этом min z = -у > 0, следовательно, система несовместна о и чебышевская точка есть чебышевское приближе¬ ние системы. § 4. Чебышевское приближение отношениями линейных форм 1. Происхождение и формулировка задачи. Пусть не¬ прерывную на отрезке \а, функцию /(/) надо приблизить в смысле Чебышева при помощи рациональной дроби вида ыт-'+&т-2 + ... +!т +v]2f‘ 2+ ... + или при помощи более общей функции Е1?1 (О~Ь^2?2(О••• 'ГиФ 1 (0 + '^2^2 (0 + • • • + (0 *
262 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V гдес?^), .... ?т(0’Ф1(0 ФДО— данные непрерывные на [а, Ь] функции, т. е. надо отыскать значения коэффи¬ циентов (5Р т/л) = [х, у], при которых до¬ стигается min max I ’ ^^7^777 — [a-,b] I Ti4i(0+ +тЛ(0 /(0 Учитывая непрерывность всех рассматриваемых функций, мы получим приближенное решение задачи, если вместо чебышевского приближения на всем промежутке [а, Ь] будем рассматривать чебышевское приближение на его е-сетке [tv tp}. Введем обозначения: <Py(Q = “I7 (Z== 1, .... р; J=i, .... т); <Ь-(А)=--Р,7 (Z = 1, ■■■, Р\ /=1. .... я); /(О=Ъ (*=1 Р)> а.[т), ..... p/n). (Z = 1 р\, * = Gi U- У = СЧ1 Vn)- Задача чебышевского приближения на сетке {/р tp} заключается в отыскании точки (Еь ..., Е/и; 71, ..., т^) = [х*, у*] такой, чтобы max 1 < i < р I (*';:, I (У*> */) у. = min max (*» Q't) (У> bt) Ъ • (5.17) Пусть (независимо от аппроксимационного происхождения задачи (5.17)) на искомую точку (х*, у*) налагается еще требование принадлежать многограннику 2, определяемому следующими неравенствами: (у. ^) > о (Z = 1 р) и | 1 (Z = 1 п). (5.18) Первые р неравенств обеспечивают существование реше¬ ния (5.17), а остальные — введены для нормировки, так как . (х, а,) умножение х и у на одно и то же число не влияет на уу- Тогда под задачей чебышевского приближения
§ 4] ПРИБЛИЖЕНИЕ ОТНОШЕНИЯМИ ЛИНЕЙНЫХ ФОРМ 265 отношениями линейных форм будем понимать за¬ дачу отыскания такой точки [х*, у*] £ 2, для которой max к i < р aj) (У*> М Ti¬ min max \х, У1€2 (-г. ад _ (У- bi) Ъ • (5.19), 2. Сведение к задаче нелинейного программирования. Введем дополнительную переменную М и рассмотрим не¬ равенства »=' Тогда нетрудно показать, что наша задача эквивалентна следующей задаче нелинейного программирования: минимизировать функцию z = M (5.20) при ограничениях Ж>0, |-g-g--Iz|<M, (у, ^)>0 (/ = 1, .... р), Ш < i (/ = 1 п) или, что то же, при ограничениях 80(х, у, /И) = Л1>0, 8z(x, у, М)=(х, + Z>z)<0 (/=1 2р), (5.21) 82р+у(х, у, Ж) = —(у, />;)<0 (у = 1, .... р), 1 ЫО (Z=l. .... п), J (5’22) где положено bl+P = bi, •li+p= — ^l (/=1 р). 3. Схема алгорифма. Сходимость. Выбираем какое- нибудь значение М1^> 0 переменной М, для которого линей¬ ная система (5.21 х), полученная из (5.21) заменой М на Mv совместна, например Мг = max {| |, |тр|}. Методом, изложенным в § 3, находим чебышевскую точку [х(1), у(1)] системы (5.21 при ограничениях (5.22), т. е. точку, для которой min max Bz(x, у, 2ИХ) = max 8Дх<1), y(1), Ml) = Li. [*, yj£2 l<i<2p l<z<2p
264 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Определив точку [х(1\ у(1)], будем непрерывно умень¬ шать параметр Л4, начиная со значения Л4Р При этом каж¬ дая плоскость 8.(х, у, М)^(х, а.)-(М + Ъ)(у, ^) = 0 (Z=l, 2р) (5.23) будет непрерывно поворачиваться около начала координат и может при некотором значении Л4 пройти через точку у<1>]. Впервые некоторая из плоскостей (5.23) (пусть при 1 = 1^) встретит точку [х(1), yW] при М = Л42, где Л42—наибольшее положительное значение М, меньшее Mv среди 2р значений (х(1) а,) м=77W ~11 (/=1 2р)' (5,24) Нахождением М2 < заканчивается первый шаг алгорифма. Второй шаг является повторением первого, только вместо системы неравенств (5.21 j) в нем берется система неравенств (5.212), получающаяся из (5.21) при Л1 = М2. Продолжая процесс, построим последовательности систем {(5.21 л)}, их чебышевских точек у(л)]} и максимальных уклонений [Ln], а также монотонно убывающую последова¬ тельность {Л4л}, где Ln= min max 8л(х, у, Л4/г)== [х,у]€2 1<й<2р — max 8л(х(/1), уМ, Мп) (п=1, 2, .. .), 1<£<2р а Л4л+1— наибольшее положительное значение Л4, меньшее чем Л4л, среди 2р значений (х(п) а-} Ъ <'=1 2₽- ” = 1. 2. Докажем, что Ал->Ло = О. (5.25) Для этого из равенства «;)-(Л1,т + Ъ)(уП ftz) = 8.(xW. у("\ Mn+1) = ^rl< вычтем равенство (*<">. а,) — (Мп + 7,) (У«). bi) = 8Z (х<4 у(«), Мп) = 8^
§ 4] ПРИБЛИЖЕНИЕ ОТНОШЕНИЯМИ ЛИНЕЙНЫХ ФОРМ 265 и заменим на Ln = max В(/г). Получим верное при всех значениях i — 1, . .., 2р неравенство (Мп - Мп+1) (у(п>, bi) = 8("+1) - 8?’ > 8;"+1) +1 Ln\. Но при некотором I = in будет 8/„(xw, ?п), Л1л+1) = 8<«+1’ = 0 (плоскость (х, у, 7Ил+1) = 0 пройдет через точку [х(л), у(л)])> поэтому |^|<(М/г-Л4/Н.1)(у(Ч ^). (5.26) Остается лишь заметить, что | (у(л), b) | К, а из суще¬ ствования предела 7И0 монотонной последовательности {Мп] следует, что Мп — Мп+1-+0. Так как задача (5.18) —(5.19) имеет решение Л4* [х*, у*], то при MQ > М* устойчивость разрешимости системы (5.210), получаемой из (5.21) при M=MQ, т. е. величина |£0|, была бы больше нуля, вопреки доказанному. Поэтому Л10 = ЛГ и [х<°>, у<°)] — одна из точек [х*, у*], для которых достигается (5.19). 4. Пример. Найти min max {| 2Е2 — ^1 + Ti2 -НО I — — 3;2 I 2-Г]! 4“ т12 при ограничениях — 7?1 + 712>0’ — 2^1 + ^2>0’ ^1>0, И11 < 1, I Т}21 < !• Введением дополнительной переменной М 0 сведем задачу к следующей задаче нелинейного программирования: минимизировать функцию z=M при ограничениях А1 > О, I Щ h 10 I < М , I — •rll+Tl2 I I — 21 —2| I — 2ти +’/]2 I | •<]! | — 711 + 712>°> — 2у)1 + 71-2 > °« 7)1 >0, 7)1 <1> — ?12 С1’ —712
266 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V другими словами, при ограничениях 8о — М>0, 81 = 2^2 ~ -(2И — 10) (— ^4-7)2) <0. S2 — 3^2 “ -(М + 2) (- 2^ + 712) <0, 83 = Ч- ^2- -(М + 2) т)! <0, 84 = — 2;2 - -(М + Ю)(- 7].1 + т)2) < 0. 85 ЧЧ- з?2- - (М — 2) (— 2 ?], + -/]2) <0, 86 = “ 4+ ^2" -(М-2)71! + 0, 87 = ’ll — Ъ . <0, 88 — 2'll — ’h <0, 89 - — ''ll <0, 810 — rll — 1 . 0, 8ц — — ’ll — 1 <0, °12 ~ ''12 — 1 <0, 813 = — Ъ~ 1 < 0. *)(2) (1) Первый шаг. Полагаем М = Л11= max | I = 10, 1<Z <3 подставляем в ограничения (1) и находим чебышевскую точку полученной при этом системы (1J при ограничениях (2). Для этого решаем задачу минимизации функции //=£ при огра¬ ничениях 8;(х, у, Ж1)<С (i = l. ...,6) (С<0)и(2), т. е. при ограничениях — —2;2 Ч- С +> 0, S2 = ^Ч- 3^2 — 247^—1“ 12т]2—0, =-^1+ ^>+^1 + >0. В4 = 2^ — 20^ +20^ +С >0, *) Элементарный анализ ограничений показывает, что о7, о9, &ю, &11, &1з можно не включать в таблицу, а координаты тц > 0, т]2 > 0 — не исключать.
§ 4] ПРИБЛИЖЕНИЕ ОТНОШЕНИЯМИ ЛИНЕЙНЫХ ФОРМ 267 5 = — 51 — ЗЁ2 — 16ttji -|- 8-7.2 4- 5 >0, 6 = £1 + Зт)! + 5 >0, '7 = -’114- Ъ >0, '8 = — 2 >7i 4" Ъ >0, 9 — ’li >0, 10 = — ’ll + 1 >0, И = ’ll 4-1 > о, 12 ~ “’Ь 4-1 >о, 13 “ К 4-1 >о. Составляем таблицу: £ -е2 — ■'ll ~\2 -с 1 О1 = 0 2 0 0 —1 0 о2 —■ —1 —3 24 —12 —1 0 о3 = 1 -1 — 12 0 —1 0 б4 = 0 —2 20 —20 —1 0 05 = 1 3 16 —8 —1 0 = —1 1 —8 0 —1 0 *7 = 0 0 1 —1 0 0 °8 — 0 0 2 —1 0 0 о9 = 0 0 —1 0 0 0 *10 — 0 0 1 0 0 1 Оц = 0 0 —1 0 0 1 *12 — 0 0 0 1 0 1 *13 — 0 0 0 —1 0 1 и = 0 0 0 0 —1 0 Исключив переменные £р ё2, ^Р т)2, С, получим выра жения для исключенных переменных: ''ll ~ ^11 1 ’ ^2 = S12 + 1 ’ Si — — ^3 + с2 + 12ВИ --|-С — 12, С = 2<2 + ор £-2 = ~4 °з + 4- — 2“ 01 + 5
268 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V таблицу — *3 *6 -8И *12 -81 1 Ь2 = —1 —2 м 12 2 64 84 = —1 —1 40 20 1 60 s5 = 0 1 8 8 —2 16 87 = 0 0 1 1 0 2 8, = 0 0 2 1 0 3 &9 = 0 0 —1 0 0 —1 °10 = 0 0 1 0 0 2 *13 = 0 0 0 1 0 2 и = 1 2 1 2 10 0 0 10 Для отыскания опорного решения делаем шаг модифи¬ цированного жорданова исключения с разрешающим элемен¬ том 52. Получим таблицу — 53 — Ьб *2 *12 -8, 1 вн = 16 13 в4 = 140 13 85 = 80 13 67 = 10 13 *8 = 7 13 89 = 3 13 о II 10 13 *13 = 2 и = 4 3 5 30 5 30 13 26 26 13 13 13
§ 4] ПРИБЛИЖЕНИЕ ОТНОШЕНИЯМИ ЛИНЕЙНЫХ ФОРМ 260 в которой уже все коэффициенты и-строки отрицательны, так что 30 min и = — -уу и достигается при °3 — ^6 — ^2 — °12 — ^1 — 0’ " _ 16 7 — 140 Т — 80 7 _ 10 ^l —13’ °4—"ТГ’ 13> °7 —Тз» следовательно, при _ _9_ . _ 15 _ 3 _1Г_ 30 Ч — 13 ’ <2 — 1з » ^1 — 13 ’ ^2 — 1 > — 1з • Точка — чебышевская точка системы (1Х) при ограничениях (2). Вычисляем М2 — наибольшее положительное значение /И, меньшее Л4Р среди значений я=^—<,=1 6)- Таким значением окажется 7И2 = 7, достигаемое при I = 1. Второй таг. Значение М = М2 = 7 подставляем в огра¬ ничения (1) и находим чебышевскую точку полученной при этом системы (12) при ограничениях (2). Для этого решаем задачу минимизации функции и = С при ограничениях = — 252 + Зт)1 — 3^12+С >0. 82 — 51 + 2^2- 18^ + 9г)2 + С >0, &3 = —51 + £2 + 9т)1 >0, 8ч = 252- 177)! + 17т)2+(; >0, 8® = — 51 — 352 107)1 + 5т)2 + С >0, 86 = 51- £2 + 5т)1 +С >0,
270 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V 7 = — ’ин- >0, '8 — — 2^1 + Ъ >0. '9 ~ ’ll >0. 'ю — — ’ll + 1>0, 11 = ’ll +1>0, 12 ~ — Ъ + 1>о, ' 13 = + 1 >0. В результате решения задачи минимизации находим чебы¬ шевскую точку и значение Отметим, что в действительности lim Мп = = 6. П->ОО § 5. Минимизация суммы модулей линейных функций 1. Постановка задачи. Пусть снова заданы система ли¬ нейных функций 7);(х) = апХ1-|- ... ainxn-\-at (Z = 1 т) (5.7) и система линейных неравенств (ограничений) о* (х) = ^ixi“h • • • ~\~^knxn 4“ 0 (k — 1, . . ., р), (5.8) но, вместо рассмотренной в п. 1 §2 задачи минимизации функции и (х) = max|v]z (х)| при ограничениях (5.8), рас- i смотрим теперь задачу минимизации (выпуклой кусочно-ли¬ нейной) функции 2 iv*)i <5-27) /=1 при ограничениях (5.8). Эта задача является, очевидно, также задачей выпуклого кусочно-линейного программирования,
§ 5] МИНИМИЗАЦИЯ СУММЫ МОДУЛЕЙ ЛИНЕЙН. ФУНКЦИЙ 271 обобщающей задачу отыскания приближения х*(х*, х*) несовместной системы = + ••• + а1пХп + а1 = ® (/=1, .... nt) по принципу минимизации суммы модулей всех уклонений: ij |^(х*)| =min % hz(x)|. i-1 x i= 1 Введем дополнительные переменные yp ym, положив (-01 < У1 1. ■■■> m), t. e. Уг + 71г(х)>° и Уг — ^г О) > 0 G = 1 m). (5.28) Тогда задача минимизации функции (5.27) при ограничениях (5.28) окажется эквивалентной следующей задаче линейного программирования: минимизировать функцию т Z = 2 Уг (5.29) t = 1 при ограничениях 1.=>\ + »л+■•■+»,л+».>М I h = yi — «г1^1— • • • — ainxn— a^o J } 8*==Анх1 + ••• (k=l, ..., р). j (5.30) Действительно, пусть г" —min г при ограничениях (5.30) и достигается в точке (xv, у"), а г/= min-и при ограниче¬ ниях (5.8) и достигается в точке х'. Очевидно, у" = | т]. (х") | (Z = 1, . . ., т), так как по (5.30) У • |^z (*,z) | G=l> •••» m) и в случае отсутствия знака равенства при некотором i можно было бы при отыскании min z уменьшить соответствующее у". Имеем т т z" = 2 у ■' = 2 I Vi (х")| > V 1 = 1 1 = 1 (точка х”, удовлетворяя ограничениям (5.30), удовлетворяет одновременно ограничениям (5.8)).
272 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. V Положим теперь у'. — | т/. (х') |. Тогда точка (л/, у') удо¬ влетворяет ограничениям (5.30), поэтому т т /=1 /=1‘ 1 Таким образом, z” — v' и х" из решения (х", у") задачи (5.29) — (5.30) является решением задачи (5.27) — (5.8), а точка (л/, у'—^(х7)), где х' — решение задачи (5.27)—(5.8), является также решением задачи (5.29) — (5.30). 2. Примеры. Пример 1. Пусть 7)1 (х)= Xj+,%2 —2. + *з +2- 7)3(х)= Xj —2х2 + х3, 7)4 (х)= — Х2Н-Х3 —2 и BjHEEX! Х3^0, — 4х2 ^>0, х2 0. (5.31) Требуется найти минимум функции ®(х)= У | 7)1 (Х)| 1 = 1 при ограничениях (5.31). Полагая |^(х)|<у. (/=1, 2, 3, 4), придем к задаче минимизации функции г = У1 + У2 + Уз+У4 при ограничениях = — х2 +2>0, Т2=^2“ЬХ1 Х3 2^-0» Тз = Уз —х1 + 2х2 —*3 >0’ Т* = У4 + х2 — х3-|-2^>0, Т1 = У1 + Х1+ х2 2^>0, 72 = ^2 Х1 +хзН“2^>0, 73 >*3 + Х1 — 2х2 + Х3 0»
j 5] МИНИМИЗАЦИЯ СУММЫ МОДУЛЕЙ ЛИНЕЙН. ФУНКЦИЙ 273 14^У4 — х2 + х3 —2>0, 81 = хг — х3 >0, 82 = — 4х2 0, х2 >0, которую решим симплекс-методом. Составляем таблицу — Xi ~ *2 ~хъ — У1 — У 2 — Уз — У4 1 * 1 1 0 —1 0 0 0 2 * 72 = 1-11 0 1 0 —1 0 0 —2 * 7з = 1 —2 1 0 0 —1 0 0 * 74 = 0 —1 1 0 0 0 —1 2 71 = —1 —1 0 —1 0 0 0 —2 72 = 1 0 —1 0 —1 0 0 2 7з = —1 2 —1 0 0 —1 0 0 74 = 0 1 —1 0 0 0 —1 —2 *1 = —1 0 1 0 0 0 0 0 ь2 = —1 4 0 0 0 0 0 0 z = 0 0 0 —1 —1 —1 —1 0 После исключения Хр х3 придем к таблице. * — 72 ~х2 — 74 -5'1 -У2 -Уз ~У4 1 * 71 = 1 2 1 —1 —1 0 —1 —2 * 7з = 1 0 2 0 —1 —1 —2 —6 * 74 = 0 0 1 0 0 0 —2 0 71 = —1 —2 —1 —1 1 0 ш 2 72 = 1 0 0 0 —2 0 0 0 7з = —1 0 —2 0 1 —1 2 6 bi = —1 0 0 0 1 0 0 2 Ь2 = —1 3 —1 0 1 0 1 4 z = 0 0 0 —1 —1 —1 —1 0 18 С. И. Зуховицкий, Л. И. Авдеева
274 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ [ГЛ. у причем Х1 — Ъ + %3 У 2 + 2’ Х3 Х2 + ?4 -^4 + 2’ Находим опорное, а затем оптимальное решение: * — 72 — х2 — 74 -У1 -У2 -Уз -71 1 * 0 0 0 2 0 0 1 0 * 7з = —1 —4 0 —2 1 ЕЛ 2 —2 * 74 = —2 —4 —1 —2 2 0 2 4 —1 _9 —1 —1 1 0 1 2 72 = 1 0 0 0 _2 0 0 0 7з = 1 4 0 2 —1 —1 —2 2 bi = —1 0 0 0 ' 1 0 0 2 &2 = 0 5 0 1 0 0 —1 2 Z = —1 —2 —1 —2 0 —1 1 2 * — 72 -Л-2 — 74 -У1 -У2 * -7з “71 1 * 71 = 0 0 0 —2 0 0 1 0 II # СО 1 4 0 2 —1 —1 —2 2 II —2 —4 —1 —2 2 0 2 4 У4 = —1 —2 —1 —1 1 0 1 2 —>72 = 1 0 0 0 —2 0 0 0 7з = 2 8 0 4 —2 —1 —4 4 &1 = —1 0 0 0 1 0 0 2 о2 = 0 5 0 1 0 0 —1 2 z = 0 2 —1 0 —1 —1 —1 4
§ 5] МИНИМИЗАЦИЯ СУММЫ МОДУЛЕЙ ЛИНЕЙН. ФУНКЦИЙ 275 —> 72 = * 71 = Уз = * 74 = У4 = 7з = О _2_ 5 28 5 _14 5 О 4 5 2 _2_ 5 ‘-I х2 = Z о 1 J6 5 Из последней таблицы находим 16 ппп Z = "у; он достигается при х*— Z х*— -4-2— — х*— -—4-2 — — х2— 5’ 3 — 5 5 ' 5’ 1— 5' 5’ Пример 2. Найти приближение несовместной системы liWs Xj— х2 — 1 =0, 7)2 (а?) = 2х14~ а?2 — 2 = 0, (-^) = -^1 4~ 1=0, минимизирующее сумму И1(Х)| 4- | 7)2 (х)| 4- |7)3(х)|. Рассматриваемая задача сводится к задаче минимизации функции г = У1 + у2+Уз при ограничениях (Z= 1, 2, 3), 18*
276 ЧЕБЫШЕВСКИЕ ПРИБЛИЖЕНИЯ (ГЛ. V т. е. при ограничениях Т* = У1— х14~ х2“М >0, *2 + 2>°> Тз^^з— х1Н-2х2 — 1>0, 71 = У1+ х1~~ х2~ 1>0, 12 = У2-\~2х1-\~ х2 — 2>0, 7з^Уз + xj —2х2+1>0. Составив таблицу и исключив хг и х2, получим таблицу ~71 — 1з —Ут — У2 -Уз 1 * 71 = 1 0 —2 0 0 0 * 72 = 5 з РЩ —1 —3 —6 72 = —5 —3 5 —1 3 6 7з = 0 1 0 0 —2 0 z = 0 0 —1 —1 —1 0 причем Х1 = Т1 + Х2 У1 + 1 ’ х2 = 11 + 1з — У1 — Уз + 2- Ищем опорное решение 71 = У1 = 72 = 73 = — Т1 ~1з —12 —У2 —Уз 1 12 5 6 5 0 0 1 3 1 4 2 6 5 5 5 5 5
§ 5] МИНИМИЗАЦИЯ СУММЫ МОДУЛЕЙ ЛИНЕЙН. функций 277 Из таблицы видно, что полученное опорное решение является оптимальным, т. е. 6 ПИП Z — у , и достигается при Т1 = Тз=:Т2:=У2 = 3’з = Ъ = 'Гз = 0’ 11 =-Г ’ = т. е. при 4 3 Х2=у, *1=5-.
ГЛАВА VI ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ Настоящая глава посвящена общей задаче выпуклого программирования, т. е. задаче минимизации нелинейной, но гладкой выпуклой функции при ограничениях, заданных нелинейными неравенствами, определяющими выпуклое мно¬ жество пространства переменных. Важным примером задачи выпуклого программирования служит задача комплексного чебышевского приближения, в частности задача чебышевского приближения несовместной системы линейных комплексных уравнений как при отсут¬ ствии ограничений па переменные, так и при наличии таких ограничений, которые определяют некоторое выпуклое мно¬ жество в пространстве переменных. Оказывается, что такого рода нелинейная задача, когда как минимизируемая функция, так и функции ограничений гладки и выпуклы, поддается еще решению методами наи¬ скорейшего спуска. В § 2 мы приводим сходящийся монотонный алгорифм для решения общей задачи выпуклого программирования, оказавшийся также удобным для вычислений. В § 3 этот алгорифм применяется к решению задачи чебышевского приближения несовместной системы линейных комплексных уравнений. В § 4 мы применяем алгорифм для отыскания точки, наименее уклоняющейся от системы точек (на плоскости) или от системы прямых (в пространстве). § 5 посвящен задаче квадратичного программирования, для решения которой применяется алгорифм § 2 и приво¬ дится один конечный алгорифм [5а]. Наконец, в § 6 алгорифм § 2 применяется к общей задаче линейного программирования.
ОБЩАЯ ЗАДАЧА ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 279 § 11 § 1. Общая задача выпуклого программирования 1. Формулировка задачи и характер минимума. Пусть задана выпуклая *) гладкая **) функция (6.1) и выпуклая область 2, определяемая неравенствами ?у(х) = ?у(х1, .... х/г) < 0 (у = 1, ..... q)t (6.2) где ф?-(х)— также выпуклые гладкие функции, причем £2 содержит внутренние точки х, т. е. существуют точки, в которых <0 (/= 1, . . ., ?). Задача выпуклого программирования заключается в ми¬ нимизации функции (6.1) при ограничениях (6.2), т. е. в оты¬ скании среди точек области 2 такой точки х*, для которой достигается /(x*) = min /(х). (6.3) х С 2 Покажем, что в задаче выпуклого программирования л о к а л ь н ы й минимум совпадает с абсолютным, т. е. с наи¬ меньшим значением минимизируемой функции в области 2. Действительно, пусть функция f (х) достигает в точке х(1) локального минимума /(х(1)), т. е. в некоторой окрестности £7(x(1))cz2, и пусть в некоторой точке х(2) £ 2 имеет место /СО </(?»). Рассмотрим отрезок X = (1 — t) xw + tx(2} (0 < t < 1). *) Функция f (x) называется выпуклой, если для любых х', х" f [Хх' + (1 - X) х"] < If (х') + (1 - X) f (х") (0 < X < 1). **) Гладкость функции означает непрерывность ее первых производных.
280 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI В силу выпуклости области 2 этот отрезок полностью со¬ держится в 2. На нем существует точка Х<°> = (1 _ t0) x(1) + V(2,C t/(x(1)). не совпадающая с х(1). В силу выпуклости функции /(х) W(i-w(*")+wM= =/(-»"’)+М/(«”) -/(И1 </(*">) вопреки условию, что /(х(1)) </(х) в окрестности U (х(1)). Следовательно, / (х(1)) .< / (х) во всех точках х £ 2. Замечание. При отсутствии выпуклости задача про¬ граммирования наталкивается на наличие локальных мини¬ мумов, что значительно ее усложняет, так как методы спуска приводят, вообще говоря, к локальному минимуму, а не к искомому наименьшему значению функции. 2. Примеры реализации общей задачи. Приведем четыре важных примера реализации общей задачи выпуклого про¬ граммирования. а) Комплексное чебышевское приближение. Пусть комплекснозначная непрерывная на некотором ком¬ пакте Q функция f(t) приближается на Q в смысле Чебы¬ шева при помощи полинома *1/1(0 + • • • +znfn(t) (zk = xk-\-iyk, где /jCO’ •••» fn(t)— фиксированный набор непрерывных комплекснозначных и линейно независимых на Q функций. Пусть при этом коэффициенты приближающего полинома удовлетворяют некоторым ограничениям ф/ггр .... z„)< сj (/= 1 q), (6.4) где ..., zn)— действительные, гладкие, выпуклые функции, так что (6.4) определяет некоторое выпуклое мно¬ жество 2 в 2п-мерном пространстве переменных хР . . ., хп; yv . . ., уп. Ограничения на коэффициенты могут быть заданы, например, в виде
§ 1] ОБЩАЯ ЗАДАЧА ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 281 Чебышевское приближение функции /(/) при помощи полинома zxfi(t)-\- . . . +^Л/П(О означает, что среди точек z(zv . .., гл), удовлетворяющих (6.4), отыскивается точка г (4. z^, называемая чебышевской, для которой max /€ Q 2 4Л(0-/(0 /2=1 = inf max n 2 zkfk (t)-f(t) k=l • Так ' как функция n F(*) = = ^(*1 Хп-, У! y„)= ■ max t£Q 2**Л(0-/(0 /2 = 1 выпуклая (это легко проверить), то рассматриваемая задача комплексного чебышевского приближения является задачей выпуклого программирования. Ввиду непрерывности функций f (t) и ...» fn(t) мы получим приближенное решение рассматриваемой задачи, если решим ее на е-сетке {/р £2, ..., tm] компакта Q, причем тем лучшее, чем меньше е > 0. Если обозначить Л(0) = а,й=«,л + ^,й’ /(Q = a, (v=l, m; 6=1, ...,n), то придем к следующей задаче комплексного чебышевского приближения. Задана несовместная система т линейных комплексных уравнений ^Az) = a^zi + ••• +а«гн + а, = ° (^ = 1 т) (6-5) и система неравенств (6.4). Требуется найти чебышевское приближение системы (6.5) при ограничениях (6.4), т. е. требуется найти точку z*£Q, для которой шах | Av (z*) | = min max | \ (z) |. (6.6) V 2 V Заметив снова, что max|Av(z)| — выпуклая функция, при¬ ходим к заключению, что задача (6.4) — (6.6) также является задачей выпуклого программирования. б)Точка, наименее удаленная от системы плоскостей. Пусть в /г-мерном евклидовом пространстве
282 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI задана система из т ^-мерных плоскостей az, определяемых системами (Z = 1, . . пг), причем гиперплоскости в каждой системе взаимно ортого¬ нальны и приведены к нормальному виду. Величина р(х', az) = (О n-k, означает расстояние от точки х' = (х', до пло¬ скости az. Рассмотрим задачу отыскания точки, наименее удаленной от системы (6.7) ^-мерных плоскостей az, т. е. точки х*. для которой max р(х*. az) = inf max р(х, az). х -о) Легко проверить, что функция f (х) — max р (х, az) i выпуклая, так что приведенная задача (6.7) — (6.8) также является задачей выпуклого программирования. При k = n—1 плоскости az превращаются в гиперпло¬ скости рассматриваемого /г-мерного пространства и (6.7) состоит лишь из одного уравнения. Задача (6.7) — (6.8) в этом случае превращается в задачу отыскания точки, наименее удаленной от заданной системы из т гиперпло¬ скостей n-мерного пространства, т. е. в классическую задачу чебышевского приближения несовместной системы линейных уравнений, рассмотренной в § 1 гл. V. При k — О плоскость az означает точку n-мерного про¬ странства. Поэтому задача (6.7) — (6.8) превращается в этом случае в задачу отыскания точки, наименее удаленной от заданной системы точек [4в].
§ 1] ОБЩАЯ ЗАДАЧА ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 283 в) Выпуклое чебышевское приближение. При¬ веденные в а) и б) задачи являются частными случаями сле¬ дующей задачи выпуклого чебышевского приближения. Пусть задана система р выпуклых гладких функций хп) (7 = 1 р) (6.9) и область 2, определенная q неравенствами <ру(х) = (ру(хР •••• х„)<0 (7=1 q), (6.10) причем срДх), . . ., с*г/(х)— также выпуклые гладкие функции. Задача выпуклого чебышевского приближения системы (6.9) при ограничениях (6.10) заключается в отыскании точки х* £ 2, в которой max Д (х*) — min шах/Дх). (6.11) I х С 2 i Так как функция шах/Дх) выпуклая, то задача выпук- L лого чебышевского приближения также является задачей вы¬ пуклого программирования. г) Задача Штейнера. Пусть в тг-мерном евклидовом пространстве задана система из, т точек РДх^, ..., х^) (1=1, 2, ..., т) и некоторое выпуклое множество 2. Под задачей Штейнера будем понимать задачу отыскания во мно¬ жестве 2 такой точки Р*, чтобы сумма ее расстояний до всех точек нашей системы была минимальной: т т 2 р(р*- Pt) = min V р(Р, Pz). i=l P£2Z=1 Так как функция fCF. является выпуклой, а сумма выпуклых функций также вы¬ пукла, то задача Штейнера является задачей выпуклого программирования. 3. Каноническая форма общей задачи. Введем в общую задачу (6.1) — (6.3) выпуклого программирования дополни¬ тельную переменную хл + 1 и дополнительное ограничение /(*1 хп)^х,1 + 1.
284 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Тогда, как нетрудно убедиться (см., например, гл. V, § 1, п. 2), эта задача окажется эквивалентной следующей: мини¬ мизировать линейную форму z — хп + \ при ограничениях /(Хр .... хл) хя+1<^0, <ру(Хр . .., хл)<0 (/=1 q), или, в более удобной записи, —задаче минимизации линей¬ ной формы ^=Р1^1+ ••• ~\~Рпхп (6.12) при ограничениях фу(Хр ...» хл)<0 (/=1, ...» ?)*), (6.13) которую будем называть канонической формой общей задачи выпуклого программирования. § 2. Решение задачи выпуклого программирования 1. Основной вариант алгорифма. а) Общее описание. Алгорифм состоит из предвари¬ тельного и общего шагов. Предварительный шаг алгорифма заключается в отыскании какой-нибудь точки х°£2. Общий шаг алгорифма состоит из следующих действий: 1) определения в полученной точке (приближении) х(й_1)(& = 1, 2, .. .) направления С(Л) = (С1Ч .... С(лЛ)) до¬ пустимого наискорейшего убывания функции z(x)> 2) вычисления нового значения параметра В, 3) вычисления шага tk > 0, характеризующего длину отрезка допустимого продвижения из х(Л_1) вдоль С(Л), 4) определения новой точки (приближения) и новых уклонений. б) Предварительный шаг. Исходное приближение х(0) может быть найдено, например, при помощи излагаемого ниже, в п. 3, сходящегося алгорифма, применяемого к сле¬ дующей задаче: *) Функции ф;(Х1, хп) гладкие и выпуклые, но не обяза¬ тельно строго выпуклые.
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 285 минимизировать линейную форму (6.14) при ограничениях № (/=! ?)• (6-15) определяющих некоторую область 2х. Так как по условию область й содержит внутренние точки, то min и < 0. и, а) с 2' Поэтому, для того, чтобы получить предварительное при¬ ближение, нет необходимости находить min и при ограниче¬ ниях (6.15), а достаточно, начиная с произвольной точки х', проделать лишь несколько общих шагов, изложенных ниже, пока не придем к точке х<® такой, что соответствующее и 0. в) Общий шаг. Пусть уже найдено исходное приближе¬ ние х^ £ й. Без ограничения общности можно считать, что лежит на границе й, так как в противном случае до¬ статочно продвинуться из точки х^ в направлении С = (—Рр .... —Рл)> т. е. увеличить t в формуле x = x^-\-t^ пока не достигнем границы области Й. Последнее сводится к отысканию, например методом касательных Ньютона, наи¬ меньшего положительного корня уравнений <р;(х(0> —/С) = 0 (7=1 q)- Во избежание так называемого «заедания» (см. [56], [5в] и [36]) и для установления предела допускае¬ мой погрешности вычислений на каждом шаге, мы в нашем алгорифме устанавливаем для каждого шага соот¬ ветствующее ему значение некоторого положительного пара¬ метра (k — номер шага), начиная с произвольного до¬ статочно малого > 0 для первого (после предварительного) шага. Точку х<°> будем считать принадлежащей поверхности Фл(х)=0’ если -ХЫЖО-
286 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ (ГЛ. VI т. е. если уклонение точки х<0) от поверхности непо¬ ложительно и больше чем —8Р Пусть, например, — 8i < Фа, (х(0)Х 0 (*=1 vi)> Ф;(х(0))<- §1 (/ ¥= J\. .... Jj. 1) Определение направления спуска. Напра¬ вление спуска C(1)=(Cil), . СпО из точки х(0) определим, во-первых, из условия, чтобы в этом направлении убывала функция z(x') = plxi -j- ... 4 рпхп, т. е. чтобы = ••• + Рп^п < (6.16) и, во-вторых, из условия, чтобы это направление вело строго внутрь области 2, т. е. чтобы вдоль этого направления убывали все функции tyj (х)> т. е. удовлетворялись бы не¬ равенства (х(0)) J V (*=1.2 vt). (6.17) 2 Величины k=l d^j (х(0)) " j (x(0)) A=1 определяют соответственно скорость убывания функций z (х) и фд (х) (v = 1, .. ., в направлении С = (Ср ...» Ся). Для осуществления наискорейшего спуска с проникно¬ вением внутрь области 2 необходимо, чтобы наименьшая по абсолютной величине из величин k = l k=l s b- 1 C*. (6.18) т. e. наименьшая абсолютная скорость убывания указанных функций, была как можно большей. Ввиду отрицательности этих величин это означает» что наибольшая из величин (6.18)
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 287 должна быть как можно меньшей. Другими словами, на¬ правление должно быть чебышевским, т. е. являться «чебышевской точкой» системы линейных неравенств 2 РА < °> дЬ • (х'0)) <<=1'2 Введением еще одной дополнительной переменной т], согласно п. 2 § 3 гл. V, сведем таким образом задачу опре¬ деления направления к решению следующей задачи ли¬ нейного программирования: минимизировать форму U=T} при ограничениях 2 hk (v = l, 2, ..., Л). а=1 fc=i Область О, определенная этими линейными однородными неравенствами, не ограничена, так что вектор С следует еще пронормировать, например положить |СЛ|<С. Таким образом, определение наискорейшего спуска С(1) из точки х(0) сводится к решению следующей задачи линей¬ ного программирования: минимизировать форму U = 7] (6.19) при ограничениях п *=1 Обозначим min и при ограничениях (6.20) через т\ . 2) Вычисление нового значения параметра 8. Различаем два возможных случая: а)т]х<—8Р Р)^^— оР
288 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ (ГЛ. VI В случае а) не меняем значение параметра 8> т. е. полагаем 82 — 8Р В случае р) меняем значение параметра 8. Если — 8i < ^1 < то полагаем 82 = -g- и продолжаем процесс, двигаясь в направлении из точки х(0). Если же = 0 и Фур. О(0>) = 0 (Iх = 1 И1)> Ф/ (*<0) ) < о (/ + j\ /|JL[), то решаем следующую задачу линейного программирования: минимизировать форму и — У] дх[ при ограничениях " « д*. (х<°>) \ рЬ < 71 (Iх = 1 ■ • • • - Hi)- Z=1 i=l 1 |CZ|<C (Z=l, ...» n). (6.21) 1(6.22) При этом, если min w =т]' = О, то х(0) — решение; если же min и = т/' < О, то полагаем о2 — и продолжаем процесс, двигаясь в на¬ правлении С, являющемся решением рассмотренной задачи (6.21)— (6.22) линейного программирования. 3) Вычисление шага tv Пусть уже определены направление С(1) и параметр 82. Тогда следует двигаться из точки х(0) в направлении С(1), т. е. увеличивать t в формуле x==x(0)+zC(i) до тех пор, пока не достигнем значения tv равного наи¬ меньшему из положительных корней уравнений (у=1 q). (6.23) Число tx назовем тагом приближения.
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 289 4) Определение новой точки (приближе¬ ния) х(0 и новых уклонений. В качестве нового приближения берем точку Вычисляем новые уклонения фДх(1)) (/= 1, ...» q). Для дальнейшего приближения считаем х(1) исходной точкой, о2— значением параметра; определяем, как выше, направление спуска £(2), вычисляем значения параметра 53 и шага £2, новое приближение х(2) = х(1) -|- /2С(2) и новые уклонения фу(х(2)) С/=1> •••» <7) и т. д. 5) Критерий решения задачи и оценка при¬ ближения. Пусть получено приближение и при определении направления спуска из точки х(*_1) пусть оказалось, что min u — 'f\k = 0. Пусть, далее, в задаче линейного программирования типа (6.21) — (6.22) оказалось, что снова min и = = 0. Тогда приближение х^”^ является решением задачи (6.12) — (6.13), и процесс закончен. Действительно, из того факта, что = 0, т. е. из несуществования направления спуска из точки х^”-1^ еще нельзя делать вывода о том, что точка является ре¬ шением. Дело в том, что отсутствие направления спуска может быть следствием того, что недостаточно малб ak и равенство нулю v}k объясняется наличием одной или не¬ скольких поверхностей, в которых х^_1> в действительности не лежит, а лишь уклонение от них меньше чем и по¬ этому они фигурируют в (6.19) — (6.20). Если же кроме ^ = 0 имеет еще место т^ = 0, то отсутствие направления спуска может быть лишь следствием того, что x(ft_1) является решением, так как в задаче типа (6.21) — (6.22) участвуют лишь те поверхности, в которых x(z?-i) точно лежит. Остановимся на вопросе об оценке близости получаемых на каждом шаге приближений к значению z* — min z [36]. 19 С. И. Зуховицкий, Л. И. Авдеева
290 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Уравнение касательной плоскости к поверхности у = фу. (х) (/=1, q) в точке х = имеет вид 1=1 1 В силу выпуклости функции ф7(х) имеем Подставляя в предыдущее уравнение, получим неравенство \ — (xi — х?}) < Фу (*) — Ф; О( Д i = 1 1 которое для любой точки (ф/(х) ^0) превращается в следующее: д<\>; (х^) \ — (Х1 — х^у) + Ф; <xW) < 0 (/=!.■••>?)• Z=1 1 Этим установлено, что область 2 целиком содержится в многограннике 2Р определяемом последними неравенствами. Так как 2 cz 2Р то справедливы следующие неравенства: min (г — z^k}) min (г — г(й)) -С 0. Это означает, что I min (z — z{k}) I < I min (z — z{k}) I . I-VC2 I IatCSi I Таким образом, для оценки сверху близости значения z^k>> к z* = minz достаточно решить следующую задачу линей- ного программирования: минимизировать функцию z'^=pxxv+ ... +pnxn — z^ при ограничениях S } (Xi ~ + Ъ < 0 Ц = 1 ’ • • • ■ ?)• £=1
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 291 г) Пример, Минимизировать форму z = x3 при ограничениях Х2’ *з) = х? + 2х1х2 + + 2х% — <2х1 — х2 — х3 — 2 < О, 'МХ) = ’Ь(Х1’ Х2' Хз) = Х? + Х2~ *1 + Х2~ Х3~3 <°- Ф3(Х) = ФДХГ Х2’ Хз) = ^ + Х1 —4х2 —Хз + 3<°- В качестве исходного приближения можно взять точку х(0)=(1,— 1,9), так как (Х(О)) = _ 11, ф2(х(0)) = _ 12, фз(х(о))_ о. Положим 8Х = 0,5, тогда ф1(х(о)) = -11 <-8р ф2(х<0)) = — 12 < — 8Р - < ф3(*(0)) = 0. Первый шаг. 1) Определение С(1)- д? г дф3(х(°)) ? ~дГ ~ ^3’ дГ~' ~ ~ Для отыскания направления убывания СзО решаем следующую задачу линейного программирования: минимизировать форму U — при ограничениях С3-^<0, ЗС, —4С2 —Сз —^С0, Cj— 1<0, — 1<0, С2—1<0, — С2—1<0. Заметим, что ограничение |С3|< 1 излишне, так как переменная С3, очевидно, ограничена вследствие первых двух неравенств. Решив эту задачу, получим с(11) = —1; ^*=1; Сз’=.—3,5. 2) Вычисление 82. Имеем — — 3,5 < — 8Р так что 32 = 81 = 0,5. 19*
292 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 3) Определение шага tv Двигаться следует вдоль луча Xj = 1—/; х2 =—1 + х3 = 9 — 3,5£; t > 0. Наименьшим из положительных корней уравнений + ф2 (х(0> +/С(1)) = 0; ф3 (х<0) +/С(1)) = 0 является ^ = 2,1. 4) Определение новой точки и новых уклонений. Новое приближение определяется по формуле Х(1) = Х(О) + ^(1) =(— 1,1; 1,1; 1,65), а для новых уклонений получим фх(х<*’) = — 1,34 < — 82; — 82 < ф2 (х<1>) = 0; фз(х(1)) = — 2,94 < — 82. Второй шаг. 1) Определение С<2). Для отыскания направления убывания решаем задачу линейного программирования: минимизируем форму U = 7] при ограничениях Ъ — Ч — 3,2СХ -4-3,2С2 — С3 — |CZ|<1 (/=1,2). Решив эту задачу, получим tf’=l; (£> = _1; ^ = -3,2. 2) О п р е д е л е н и е 83. Имеем 7^2— 3,2 < 83. По¬ этому В3 = В2 = 0,5. 3) Определение шага t2. Двигаться следует вдоль луча — 1,1 —1_£; х2 = 1,1—t’, х3=1,65 — 3,2/; t > 0.
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 293 Наименьшим из положительных корней уравнений фу(х(1)+^) = 0 (7=1, 2, 3) является £2 = 0,45. 4) Определение новой точки и новых укло¬ нений. Новое приближение х(2) определяется по формуле х(2) = х(1) +1£(2) = (— 0,65; 0,65; 0,21). Новые уклонения равны Ф1 (х<2>) = —1,14 < — о3; ф2 (х<2>) = — 1,07 < — о3: -§з<Фз(*<2)) = 0- Третий, шаг. С(3) = (1; 1; —2,15); 84 = о3 = 0,5; /3 = 0,36; х<з)=(—0,29; 1,01; —0,57). Четвертый шаг. С<4> = (1; _!• —1,51); 85 = В4 = о,5; *4 = О,12; х<4’=(—0,17; 0,89; —0,75). Пятый шаг. 1) Определение £(5). = У} = 0,56:, 4- 2,22С2 - С3; _^2(xW) ==_ь34!-1+2|78г2_(;з; ^з(х<О) =0>66^_4;-2_t.3- Для отыскания направления убывания решаем задачу линей¬ ного программирования: минимизируем форму и = Т} при ограничениях С3 — т/ < 0; 0,56^ + 2,22С2 — С3 — v < 0; — 1,34^ + 2,78С2 — С3 — 7} < 0; 0,66^ — 4С2 — С3 — 71 <0; |(.|<1 (Z= 1, 2). Решив эту задачу, получим ^5 = 0. 2) О п р е д е л е н и е 8б. Имеем т]5 = 0. Поэтому приме¬ няем критерий решения задачи. Имеем ф1(х(4)) = —0,49; ф2(х(4)) = —0,37; ф3(х<4)) = 0. 20 С. И. Зуховицкий, Л. И. Авдеева
294 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Решаем следующую минимизируем форму задачу линейного программирования: и = 7] при ограничениях <ty3 (х«) ас Получим Полагаем 3) Определение шага /6. Двигаемся вдоль луча хх — — 0,17 —1\ х2 = 0,89 +1; х3 = — 0,75—2,33f; />0- Наименьшим из положительных корней уравнений фу(х<4) + ^(5)) = 0 (/=1, 2, 3) является = 0,06. 4) Определение новой точки и новых укло¬ нений. х<5) = х(4) + /5С(5)=(—0,23; 0,95; —0,88); Ф1(х(5)) = —0,19 > — 86; ф2(х(5)) = 0; Фз(*(5)) = -0,1 >—86. Шестой шаг. 1) Определение С(6). = -^‘g(5)) = — 0.56С, 4-2,34Г2 —с3; ^f5)) = - 1.46^ + 2,90С2 - С3; = 0>54С1- 4С2 -с3. Для отыскания направления убывания решим следующую задачу линейного программирования: минимизируем форму
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 295 при ограничениях С3 —— 0,56С1-Н2,34С2 —С3 —< 0; — 1,46(;1 + 2,90С2 —С3 —т]<0; 0,54^ — 4С2 — С3 — tj < Оу |Сг|<1 (/=1,2). Решив эту задачу, получим С(!6)=1; Сг6’ = 0,18; ($’ = — 0,08. 2) Определение 87. Имеем т/6 = — 0,08 >—0,25, так что В7 = -^= 0,12. 3) Определение шага /б. Двигаться следует вдоль луча х} — — 0,23 + /; х2 = 0,95 0,18/; х3 = — 0,88 — 0,08/; / > 0. • Наименьшим из положительных корней уравнений фу(х<5)+ /£(6)) = о (/=1, 2, 3) является /б = 0,34. 4) Определение новой точки и новых укло¬ не н ий. Х(6) = х(5) 4-/6(;(б) =(0,11; 1,01; —0,91); Ф1(х<6>) = —0,05; ф2(х*6))= — 0,16; ф3(х(6)) = 0. Седьмой шаг. £(?>=(— 1; —0,15; —0,26); В8 = о7 = 0,12; t3~ 0,2; х(7)=(—0,09; 0,98; —0,96). Восьмой шаг. с<8’=(0,3; —0,03; —0,18); S9 = o8 = 0,12; /8 = 0,09; x(S'=(—0,06; 0,98; —0,98). 5) Применение критерия решения. Рассмотрим теперь точку х* = (0, 1, —1) и убедимся, что она дает решение задачи. 20*
296 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Имеем Ф1(х*) = 0, ф2(х*) = 0, ф3(Аг*) = 0, т. е. х* принадлежит всем поверхностям. Определим направление наискорейшего спуска из точки х*. Для этого находим _г г <*Ь(х*) Г ! ОГ г —^3’ dt —^2 — 4’ --Ц + ^2-^з- <?Фз (X*) _ г 4Г г — Ч "*4 Ч и минимизируем форму U = q при ограничениях Сз-V < 0, ЗС2-С3-^<0, - Cj + ЗС2-С3 —7)< о, С,-4С2-Сз-^)<0, ICilCl. |С2|<1. Получим min и = if = 0. В силу критерия решения точка (0, 1, —1) является реше¬ нием задачи. д) Сходимость алгорифма. Сходимость алгорифма докажем в предположении, что область Q ограничена и замк¬ нута. Тогда монотонно убывающая последовательность при¬ ближений {^(х^)} имеет конечный предел а. Прежде всего покажем, что из lim z(x(ft)) = a>—оо £->оо следует, что неотрицательная монотонно убывающая после¬ довательность {8Л} значений параметра стремится к нулю: lim 8ь = о = 0. k ->оо Допустим противное. Тогда найдется Kq такое, что для всех £ > KQ будет 8/, = о и rik < — о.
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 297 Рассмотрим предельную точку х последовательности и в пусть Х^ этой точке —в < Фа W < 0 фу(х)<-8 х. Ясно, что х — точка границы. (6.24) силу непрерывности функций фу(х) найдется окрестность всех х £ U (х) П 2 будут В L U (х) точки х такая, что для выполняться неравенства _8<^. (х)<0 Так как х^-^х, то найдется номер такой, что, начиная с k > /Ср все точки х^к^ попадут в £7(x)f]2, так что в определении направления спуска из x^k^ будут участ¬ вовать все функции (х), ..., фу (х). Далее, для всех x(ki) £ U (х) П 2 справедливы неравенства 1 = 1 £ i = l 0=1, .... Vj). (6.26) Так как последовательность ограничена, то из нее можно выделить сходящуюся подпоследовательность. Можно считать lim = С. Переходя к пределу в неравенствах i ->оо (6.26) при Z—>оо, получим ;=i z=i Таким образом, направление С является направлением не¬ которого спуска из точки х. Величина шага по этому на¬ правлению С равна t > 0. Следовательно, о,= 1 21 С. И. Зуховицкий, Л. И. Авдеева
298 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI а это означает, что для достаточно больших kt будет + (7=1, .... q). т. е. для достаточно больших kt будет Ц > ^- • Имеем, наконец, z (*(*<)) = z (x(ft-1) + = z + z = — z (x<a‘~2')') +z +г = k- k. = г CO+S 2 = 21")+S >, S < j=l /=1 |x=l J=1 J (1=1 t. e. lim z (x^) = — oo. i ->oo Последнее же противоречит предположению, что lim z (х^) > — oo. i ->oo Следовательно, B = 0. Докажем теперь, что г(х(/г)) сходится к минимуму а. Обозначим через ki номер шага, на котором должен меняться параметр ол. Тогда, в силу правила построения {6J, заключаем, что lim т] , = 0. ki Пусть х* — предельная точка некоторой подпоследова¬ тельности последовательности {х(^)} . Можно считать, что lim х(*')=х*. ->ОО
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 299 Допустим, что х* не (6.13), и пусть является решением задачи (6.12) — Фу1Х(^*) = 0 (р=1, 2 н)’ | (6.27) Тогда существует направление С* наискорейшего спуска из точки х*', и оно удовлетворяет системе неравенств 1 i- 1 i = l (н=Ь 2 н)’ (6.28) где rf < 0. Из неравенств (6.28) следует t=l " dtyj (х*) dxt 44 2 ’ (6.29) Покажем теперь, что в определении направления спуска из точки при достаточно большом k\ могут участво¬ вать лишь функции из состава ф. (х), ...» ф. (х) (но не j\ j p,t обязательно все). Действительно, в точке х* выполняется (6.27). Пусть min | фу (х*) | = о. Тогда фу(х*)<—(/¥=/Р ...» /И1). Поэтому для всех точек х некоторой окрестности U (х*) Q 2 точки х* Ф/(^)<—у и ¥= J\. .... Л,). 21*
300 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI А так как при достаточно большом k будет °*< Т’ то в точках х £ U (х*) П а следовательно и в точках х(*') с достаточно большими ki> в определении направления спуска не могут участвовать функции, отличные от ф. (х), ..., ф. (х). Из непрерывности частных производных функций фу(х) и из неравенств (6.29) следует, что для достаточно боль¬ ших kj будет <Л 2 . V=1 " dtyj (») дх^ v=l Следовательно, С* также является спуска (может быть, не наискорейшего) из точки х’ наискорейшего же спуска имеет место неравенство \ 2 ’ направлением некоторого Для которое противоречит тому, что tq , —>0. kt Таким образом, предположение о том, что х* не является решением задачи (6.12) — (6.13), привело к противоречию. Следовательно, {г (x(ft))} сходится к z(x*), т. е. к наимень¬ шему значению функции г(х) в области 2. 2. Второй вариант алгорифма. Второй вариант алго¬ рифма отличается от основного, изложенного в п. 1, лишь способом отыскания направления спуска С. В описанном процессе отыскания направления спуска для первого алгорифма оказываются «равноправными» не¬ равенства (6.16) — (6.17), что не всегда целесообразно, так как ведь основным в задаче является стремление к быстрей¬ шему уменьшению функции ^(х) = р1х1 + ... -\-рпхп при ограничениях (6.13). Поэтому направление спуска естествен¬ нее искать следующим образом.
§ 2] РЕШЕНИЕ ЗАДАЧИ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ 301 После отыскания х(0) мы наряду с 8j > 0 выбираем произвольное,, достаточно малое Хх > 0. Затем направление определяем из следующей задачи линейного программирования: минимизировать форму ^ = PiCi+ ... -\-рп^п (6.30) при ограничениях /=1 dxi Если К/ К С. min и = т]1 < — 8Р то двигаемся в направлении С(1) до тех пор, пока впервые не встретим границу области 2. Получаем точку %(!)== X(O) + ^(D. которую считаем исходной, полагаем В2 = бр Х2 = Х1 и т. д., пока на &-м шаге не придем к min и В случае 0 > определяем tk, и новые уклонения и продолжаем процесс из точки х(Л), считая bk + \~ 2 и azh-i — При полагаем а выбор параметра \k осуществляем следующим образом. Пусть ф^(х^-п) = 0 ([1 = 1, .... н); фу(х(Ь1))<0 U + jv .... /И1). Тогда минимизируем функцию
302 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI при ограничениях 2 (н =1 н); (г = 1 п). Если окажется, что min и = ri'k = 0, то — решение задачи (6.12) — (6.13), и процесс закончен. Если же < 0, то решаем еще одну задачу линейного программирования: максимизируем форму v = X при ограничениях Получаем Полагаем dxt — Г1/, |CZ|<C (/=1....,»). направление спуска и пусть maxt/ = <vA>. Процесс продолжаем, беря 8л+1 вместо 8^ и Хл+1 вместо Хй. § 3. Комплексное чебышевское приближение Как уже отмечалось в п. 2, а) § 1, одной из важных задач выпуклого программирования является задача чебы¬ шевского приближения несовместной системы комплексных линейных уравнений = + ••• +Мл + а, = ° (v=l, .... т), ' z = zn), + %k = a,k + ib,k. • = (Л = 1 n; v= 1, ..tri) (6.32)
КОМПЛЕКСНОЕ ЧЕБЫШЕВСКОЕ ПРИБЛИЖЕНИЕ 303 при наличии ограничений в виде неравенств .... х„; Ур .... у„) <0 (/=1 q), (6.33) определяющих некоторое выпуклое множество 2 в 2/г-мер- ном пространстве переменных хр хп*, ур ...» уп (tyj(z) предполагаются действительными, выпуклыми и гладкими), т. е. задача отыскания точки z*£Q, для которой шах | (г*) | = min max | (z) |. (6.34) v 2 v Описанный в § 2 алгорифм, конечно, решает задачу (6.32) — (6.34), но, во избежание чрезмерного количества ограничений, мы не будем переходить к канонической форме, а применим алгорифм непосредственно к задаче (6.32) — (6.34) (см. [56]). Возникающие при этом некоторые видо¬ изменения алгорифма поясним на следующих примерах. 1. Случай отсутствия ограничений. Рассмотрим сначала чебышевское приближение линейной несовместной комплекс¬ ной системы уравнений при отсутствии ограничений, т. е. когда 2 совпадает со всем пространством. Пример. Дана несовместная система линейных комп¬ лексных уравнений Д1(г) = г1 — z2 =0, Д2 (.?) = .?! — 1 —|-£ = 0, Д3 (z) == z2 + 1 — I = 0, Д4(2г) = г1+ z2 =0, Д5 (г) = z} — 2г2 — 1 1 = 0, •Zi = *i~Hyi> z2 = x2 + ly2, z = (zv z2). Найти точку г*, для которой max | (г*) |2= min max | (г) |2. 1 < i < 5 z 1 < i < 5 Имеем I Ai (■*) 12=/10; у )=оч — *2)2+(уj — у2)2, ^(z^2 = f2(x; у) = (хх — 1)2 + (У1 + I)2. |Дз(г)|2 = /з(Х; У) = (Хг + 1)2 + (3»2— о2- I д4 (*) 112 = Л (*; у)=(-vi + хг)2+(у 1+у2)2’ |д5(^)12 = /зО; У) = (^1 —2^2 — 1)2+(У1 —2у2+ I)2.
301 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI где x — (xv х2), у=(ур у2), a /z(x(0), у{0))— уклонение точки (х(0), у(°>) от поверхности /z(x; у) = 0. Таким образом, задача заключается в отыскании точки (х*; у*) такой, что max y*) = min max /z(x; у). 1 < i < 5 (x; у) 1 < i < 5 За исходное приближение возьмем точку (х<°); у(°)) = = (1, 0; 0, 1), а за исходное значение параметра 5 возьмем 8Х = 0,2. Подставляя в /z(x; у), найдем max у<°)) = /х(х^; у(°)) = /4(х<°>; у(°>) = 2, 1 < i <5 /,(^(0). у(0))_2<_81 (z==2, 3, 5). Первый шаг, 1) Определение направления наискорейшего спуска. Имеем 1 df, (х'°>; у«”) _ г 2 дС ’ -С2-Сз + С4; 1 <ЭЛ(х(0);У(0,)__ 2 д? ~ с1+с2+с3+с4. Вдоль направления наискорейшего спуска С(1) эти произ- водные должны быть отрицательными и наименьшая из них по абсолютной величине должна иметь наибольшее по воз¬ можности значение, т. е. С(1) — решение следующей задачи линейного программирования: минимизировать форму и = ^ при ограничениях и дополнительных ограничениях |У<1 (7=1, 2, 3, 4). которые, как уже отмечалось в п. 1 § 2, необходимо ввести для нормировки вектора С. Получим С(1’ = (— 1. 1; —1. —1).
§ 3] КОМПЛЕКСНОЕ ЧЕБЫШЕВСКОЕ ПРИБЛИЖЕНИЕ 305 2) Вычисление 82. Имеем min и = = — 2 <—8Г так что 82 = 8j = 0,2. 3) О п р е д е л е н и е шага Двигаться следует вдоль луча = 1—t', x2 = t\ У1 = —t\ у2~ 1£ > 0. Для максимальных уклонений вдоль этого луча получим Л(х; у)= 1+(1 —2/)2, /4(х; у) = 1 + (1 -2/)2. Величину шага определим по формуле tx = min [£z; t"}, где tf минимизирует j\(x\ y) = /4(ат; у), a t"— наименьший положительный корень уравнений А(аг; y) = /z(x; у) (z = 2, 3, 5). Получим ^ = 0,5, /zz = 0,18 и, следовательно, ^ = 0,18. 4) Определение новой точки и новых ма¬ ксимальных уклонений. Для нового приближения (х<1>; у(1)) = (х<0); у<0))+^С(1) = (0(82; 0,18; —0,18; 0,82) новыми максимальными уклонениями будут /1(х(1); у(1)) = /3(х(1); у(1)) = /4(х(1); у(1))= 1,4, /z(x(i); y(D)_1,4 <_82 (Z==2, 5). Второй шаг. 1) Определение С(2). У(1)).= 0>64С1_0)64С2_^ + С4( |У(1)) = 1,1 8с2 _ 0,1 8ч4, |. dft№ У(1)) = сi + + 0,64Сз + 0 б4С4 Минимизируем форму
306 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI при ограничениях 0,64^ —0,64С2 — С3+ С4 — В <0, 1,18С2 _ о, 18С4 — В < 0, Ц —}— С2 Н- 0,64С3 —|— 0,64ц — ; ‘х 0, |:Z|.<1 (Z=l,2, 3, 4). Получим :(2)=(—1; —1; 1; —0,15). 2) Определение 83. Имеем ;2 = —1,15 < — о2. Поэтому о3 = о2 = 0,2. 3) Определение шага Z2. Двигаться следует вдоль луча х} — 0,82 —t\ х2 = 0,18 — Z; У1 = — 0,18—|—Z; у2 —0,82 — 0.15Z; t > 0. Для максимальных уклонений вдоль этого луча получим Л(х; у) = 0,41 Ц-(1 — 1,15£)2, /з(^; У) = (1.18-/)2+(0,18 + 0,15г)2. /4(х; у) = (1 — 2/)2 + (0,'64Н-0,8502- Из этих функций убывает медленнее в направлении С(2) функция /Дх; у), так как из трех производных dfx (х; у) I __1 д5 = (х; у) I dt L=o ’ dt |/=э ’ У) I =—1,46 l/ = 0 первая имеет меньшее по модулю значение при малом t > 0. Величину шага определяем по формуле Ц = min \t', t"}, где t' минимизирует /Дх; у), a t" — наименьший положи¬ тельный корень уравнений /1(х; y) = /z(x; у) (Z = 2, 3, 4, 5). 4) Определение новой точки и новых ма¬ ксимальных уклонений. (х<2>; у<2>) = (х<1); y(D)4-/2C<2) =(0,66; 0,02; —0,02; 0,80), max /z(x(2); У(2)) =/i(x(2); у(2)) = /2(х(2); у(2)) = l<i<5 = /з(х<2)- у(2))= 1>08.
§ 3] КОМПЛЕКСНОЕ ЧЕБЫШЕВСКОЕ ПРИБЛИЖЕНИЕ 307 Далее, так как — §з<Л(^(2); у(2)) — 1,08 < о. /5(х<2); у(2)) — 1,08 < — 83, то максимальными будут уклонения /1(х(2); у<2>); /2(х(2’; у<2>); /3О(2); У<2)); /4(*(2); У(2))- Третий шаг. V3> = (—1; —0,6; — 0,8; — 1); 84 = 83 = 0,2; 73 = 0,30; х(3>=(0,36; —0,16; —0,26; 0,50), Четвертый шаг. С(4) = (1; —0,85; 0,55; —1); В5 = В4 = 0,2; t4 = 0,13; (Х(4); у(4))== (0,49; —0,27; —0,19; 0,37); шах/{-(х(4); у(4)) = о,93. 5) Применение критерия решения. Рассмотрим точку (х*; у*) = (4 ’ —4 ’ — 4 ’ 4") ’ и ПУСТЬ &*= О- Имеем шах Л(х*;/) = /1(х*; /) = /2(х*;/) = /3(^/) = 0,889. l<i<5 Далее, 1 dfi (х*; у*) _ 2 г 2 г 2 г , 2 г 2 ’ d'Q ~ 3 3 3 ' 3 ^4’ 1 д/2 (х*; у*) _ 2 г , 2 г 2 (К 3 -г 3 1 а/3 (х*; у*) _ 2 г 2 г 2 ’ д'С ~ 3 3 Минимизируем форму при ограничениях 2 _2_ Г 2 г | 2 3 Ч з Ч з Ч ~г з С4-;<0, 2 3 С1 |С;|<1 (/=1, 2, 3, 4). 0,
308 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Оказывается min и = 0. В силу критерия решения п. 1 § 2 точка ^=(т’— 4; — 4’ 4) является решением задачи. 2. Случай наличия ограничений. Рассмотрим теперь чебышевское приближение линейной несовместной комплекс¬ ной системы уравнений при наличии ограничений на неиз¬ вестные, если совокупность ограничений определяет некото¬ рую выпуклую область 2. Пример. Дана несовместная система линейных ком¬ плексных уравнений Д1 (2:) — zx — 2г2+1— Z = 0, Д2(г)= zx +1— Z = 0, Д3 (2Q = zx —J— З.г2 — 0,5Z = 0, Д4(г)==0,5г1— г2 =0, ДбС2")— — Z = 0 и область 2, определяемая неравенствами | 22’1 Н 2221 У 2, 12^! — 4^21 < У 2. Найти точку 2*^2, для которой max |AZ(2*)|2 = min max |AZ(2)|2. 1<Z<5 l</<5 Имеем I Al O)l2 = /1О; y) = (JCi —2x2+ 1)2 + (У1 — 2y2 — l)2, \^zW = f2(X-, y)==(x1+l)2 + (y1-l)2, IА О) 12 = /3 (x; У) = O1 + Зхз)2 + (y 1 + ЗУз — 0.5)2, | Д4 (*) 12 = /4 (^; У) = (0.5X, - x2)2 + (0,5У1 - y2)2, ]Д5(г)|2 = /5(х; У)-(2х1 + х2+1)2 + (2у1 + у2-1)2 и ограничения (x'> У) — (2Xj + 2x2)2-|- (2)>j + 2y,2)2 — 2^0, ф2 (x; y) = (2xj — 4x2)2 + (2yi — 4y2)2 — 2 < 0.
<§ 3] КОМПЛЕКСНОЕ ЧЕБЫШЕВСКОЕ ПРИБЛИЖЕНИЕ 309 Задача заключается в отыскании точки (х*; у*) £ 2 такой, что шах /Дх*; у*) = min max ft(x\ у). 1</<5 (х; y)£2 1<Z<5 За исходное приближение возьмем точку (х(0); j/0))== — (0, 0; 0, 0), а за исходные значения параметров В и X возьмем соответственно ^ = 0,42 и >^=1. Подставляя (х(0); у(0)) в /z(x; у) и Фу-(х; у), получим max /z(x(0); у(0)) = /1(х(0); у(0)) = у(0))=. 1 < i <5 = /5(х(0); у(0,)-2. /,(Х(0); у(0))_ 2<_81 (/=3,4), ф1(х(0); у(0)) < —8Р ф2(х(0); у(0)) < — 8Р Первый шаг. 1) Определение скорейшего спуска. Имеем направления на и- у<0))_ дг, <?Л(х<0’; у(0)) 2С1-4С2-2С3 + 4С4, 2Cj — 2С3, <Vs(x(0): у(0)) = 4^+2!^- 4ч3 —2С4. Направление наискорейшего спуска С(1) является решением следующей задачи линейного программирования: минимизировать форму U = ; при ограничениях 2-1 — 4Ч> — 2^3 + 4С4 — о, 2^ — 2С3 — Г<0, 4Ci + 2С2 — 4С3 — 2С4 — I < 0, |С;|<1 (/—1,2, 3, 4). Получим С<1) = (—1, 1; 1, 1). 2) Вычисление 82 и Х2. Имеем min и = 41 = — 4 < — 81; поэтому §2 = ^ = 0,42 и Х2 = Х1=1.
310 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 3) Определение шага tv Двигаться следует вдоль луча Xj — —1\ x2 — t\ У1 = ^, у2 — > 0- Величина шага определяется по формуле tx = min \t', t"\ t"'}t где tr и t" вычисляются так же, как в примере п. 1, a — это наименьший положительный корень уравнений Ф1(х; у) = 0; <р2(х; у) = 0. Получим tx = min [t\ t”, tm\=tf = 0,20. 4) Определение нового приближения и но¬ вых максимальных уклонений. х<]>; y<D, у(1)) = (х(0); у«») + ^<0 = = (—0,20; 0,20; 0,20; 0,20). Для новых максимальных уклонений получим max /г(хп); y(1)) = /i(x(1); у(1)) = 1,60. 1<е<5 Далее, — о2</2(х(1>; у(1))—1,60 < 0, ft Уп)) — 1,60 < — В2 (Z = з. 4. 5), Ф1(х(1); у(1)) < — 82, — °2 ф2(х<1); у(1)) < 0- Второй шаг. 02) = (—1, — 1; 1, — 1); 83 = 82 = 0,42; Х3 = Х2=1; = 0,20; (х(2>; у<2’) = (—0,40; 0; 0,40; 0). Третий шаг. £(з) = (—1, 1; 1, —1); в4 = вз = о,42; Х4 = Х3; t3 = 0,03; (х(3); у<3)) = (—0,43; 0,03; 0,43; —0,03). Четвертый шаг. 1) Определение £(4). Минимизируем а = £
§ 3] КОМПЛЕКСНОЕ ЧЕБЫШЕВСКОЕ ПРИБЛИЖЕНИЕ ЗЦ при ограничениях 1,02^ — 2,04:2— 1,02’3+ 2,04С4 — В < 0, 1,14ч! — 1.14ч3 — $<0, —3,92:14-7>84С2+3,92С3 —7,84С4 <— 1, |ч,.| <1 (/=1,2, 3,4); получим minzz = 0,3>0. 2) Вычисление о5 и Х5. Так как inin и > 0, полагаем S5 = ^_=0,21. Для вычисления Х5 решаем две задачи линейного програм¬ мирования. а) Минимизируем u = q при ограничениях 1,14^ _ 1,14С3 — £<0, —3,92:, + 7,84С2 + 3,92:з — 7,84С4 < 0, |С/К 1 G=h 2, 3, 4). Получим min и = — 2,28. р) Максимизируем форму V = X при ограничениях 1,14^ —1,14С3 + 1,14<0, —3,924 4- 7,84С2 + 3,92:з — 7,84С4 + X <0. Получим шахт/—11,76. Поэтому X5 = min (0, 5; И, 76} =0,5. Для С(4) получим 44) = (0, —1; 1, 1). 3) Определение шага /4. Двигаться следует вдоль луча х} = — 0,43; х2 = 0,03 — /; У1 = 0,43-Н; у2 = — 0,03 4-t > 0. Для шага получим /4 = 0,03.
312 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 4) Определение новой точки и новых укло¬ нений. (х<4>; у<4>) = (—0,43; 0; 0,46; 0). Для новых максимальных уклонений получим max /Дх(4); у<4)) = (х<4); У(4)) = /2О(4>; у(4)) = 0,62, /. (Х(4); у(4)) _ 0,62 < — в5 (Z = 3, 4, 5), <р!(х(4); у(4))< — о5; Ф2(х(4); у(4)) < — В5. Пятый шаг. £(5) = (_1; lt _1); g6 = о,21; Хб = Х5 = 0,5; /5 = 0,018, (х(5); у(5)) = (—0,448; 0,018; 0,478; —0,018). Легко проверить, что точка (х*; /) = (—0,5; 0; 0,5; 0) является искомым решением. § 4. Точка, наименее удаленная от системы плоскостей Как уже отмечалось в п. 2,6) § 1, общая геометриче¬ ская задача отыскания в n-мерном евклидовом пространстве точки, наименее удаленной от заданной конечной системы ^-мерных плоскостей, является задачей выпуклого програм¬ мирования. Представляют интерес рассмотренные ниже два частных случая этой задачи. 1. Точка, взвешенно наименее удаленная от заданной системы точек на плоскости. При /г = 0 общая геометри¬ ческая задача п. 2, б) § 1 превращается в задачу об отыскании точки, наименее удаленной от заданной системы точек п-мер- ного пространства [4в]. Рассмотрим частный случай этой задачи при п = 2, т. е. задачи отыскания точки, наименее удаленной от заданной системы точек на плоскости, причем расстояния будем брать взвешенные. Пусть на плоскости дано 5 точек: ^(-3,-1); Л42(—1,—3); М3(-3/2, -%); Ж4(0, 0); Ж5(—2, —2) 1 1 _2_. 1 2 /2 ’ /2 ’ /2 ’ 2 /2" ’ /2 ’ с весами соответственно
§ 4] ТОЧКА, НАИМЕНЕЕ УДАЛЕННАЯ ОТ СИСТЕМЫ ПЛОСКОСТЕЙ 313 т. е. расстояниями от точки Л1(х, у) до будут величины Р1 (X, у) = Р (Ж, Mj) = А. /(х + 3)2 + (у-Н)2, р2 (X, у) = Р (М, М2) = /(х-Н)2-Ну + 3)2. р3(х, у) = р(М, М3) = = +1)’ + (У + ТГ = ТТ /(2*+3)!+(2у+5?. р4(х. ,)=р(М. = = р5(х, у) = р(/И, Л45) = = yL /(х +2)2 4-(у+ 2)2 = ^=- У(2х + 4)2 + (2у + 4)2. Задача определения точки, взвешенно наименее удаленной от данной системы точек, состоит в отыскании точки АГ(х*, у*) такой, что max р2 (х*, y*) = min max р2 (х, у). 1 < v < 5 (X, у) 1 < v < 5 v Она, очевидно, эквивалентна задаче отыскания чебышевской точки следующей несовместной системы линейных комплекс¬ ных уравнений: = г+3+ 0 = 0. A (z)= ' ( z + 1 + 3i) = 0, Аз (2) ~ у2 3 “Ь 50 = О, ДДг)==Ж Z Д5 (г) = (2^ + 4 +40 = о, т. е. отысканию точки z* такой, что max |\(z*)|2== min max |ДДг)|2. l<v<5 2 l<v<5
314 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI За исходное приближение возьмем точку (х(0), у(0)) = = (—1, —1) и положим Bj == 0,5. Получим р2(Х(0), у(0)) = р2 (Х(0), у(0)) = 5. max 1 Первый шаг. 1) Определение С(1). Так как макси¬ мальных уклонений лишь одно, то следует двигаться по антиградиенту (т. е. в направлении, противоположном гра¬ диенту) — grad рз (х(0), у(0)) = ( <^(х«Ъ<0)) дР| (У0*, у°>) \ z о сх = \ д~х ’ ду / =(-2’ ~6> и можно брать С(1) = (—!/з’ —О- 2) Вычисление 32. Имеем dpi (х(0), у(0)) следовательно, В2 = В1 = 0,5. 3) Определение шага Двигаться следует вдоль луча х — —1—^t', у ——1—/; t > 0. Наименьший из положительных корней уравнений р2[(х(0), 5,(0)) + ^1)] = р2 [(Х(о\ y(0))_|_^(D] (м=1, 2, 4, 5) равен 0,6 = ^. 4) Определение новой точки и новых макси¬ ма л ь’н ы х уклонений. (AW, = у<0)) + ^(1)=(—1,2; —1,6), max pj(x(1), у(1)) = Pi (х(1), У(1)) = pl (х(1), у(1))= 1,8, — < р2(л;<1). у(1))_1.8<0. р2(х(1’, у"))— 1.8 < — вг р2(х<1), у(1))_ 1,8<-81. Второй шаг. 1) Определение С(2>. 1 (х*1', У1’) _ 2 ' дИ ~ 1 д(1 (х(1), /’) _ 2 ’ Л ~ 1 2 ’ = 1,6(4 + 0,8С2. 0,9^ —О,ЗС2, 0.6С1 -J- 1,8С2.
5 4] ТОЧКА, НАИМЕНЕЕ УДАЛЕННАЯ ОТ СИСТЕМЫ ПЛОСКОСТЕЙ 315 Минимизируем форму при ограничениях 0,9;i —О.ЗС, —5<0, о,бсх ч-1,8С2—а<о, Еб^ + О.в^ — £<0, |CZ|<1 (/=1,2). Получим С(2;=(—1; —0,14). 2) Определение 83. Имеем 0 > $2 = — 0,85 < — 32, поэтому полагаем З3 —о2 = 0,5. 3) Определение шага t2. Двигаться следует вдоль луча х = — 1,2 —у = — 1,6 — 0,14/; />0. Для величины шага получим t2 — min {/', t"\ =t' = 0,42. 4) Определение новой точки и новых макси¬ мальных уклонений. (х<2), у(2)) = (%(1), у(1))4-/2^(2) = (—1,62; —1,66), шах р2 (х(2), у(2)) = р2(х(2\ у(2>)= 1,44, l<v<5 — 83<р2(х(2), у<2))— 1,44 < 0 (/=1, 2), р2(х(2), у(2)) — 1,44 < — 83 (м = 4, 5). Третий шаг. 1) Определение С(3). 1 dp? U(2), у(2)) _ 2” d'Q ~ 0,69^ — 0,33^, 1 2 1 2 д?22 С?2\ у™) d'Q -0,31^4-0,67^, <Эр| СЛ у(2)) ас = — о.г^х-н 1,68С2. Минимизируем форму
316 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ (ГЛ. VI при ограничениях 0,69^ —0,ЗЗС2 —$<0, —0,31^ +- 0,67С2 — g С 0, —0,24^+1,68^ — е < о, |^|< 1 (Z= 1, 2). Получим С(3) = (—1, —1). 2) Определение В4. Имеем ;3 — — 0,36 >—83, по¬ этому 34 = -^- = 0,25. 3) Определение шага /3. Двигаться следует вдоль луча х =—1,62 — /; у = —1,66 — Z; t > 0. Для величины шага получим Z3== /' = 0,36. 4) Определение новой точки и новых макси¬ мальных уклонений. (х(3), у(3)) = (х(2), у(20++(3) ~ (—2, —2), шах р2(х(3>, у(3)) = р2 (х(3), у(3)) = 1 5 = р2(х(3\ у(3)) = р2 (х(3\ у(3)) = р2(х<3), у(3))=1, р2(х(3), у(30— 1 < — + Четвертый шаг. 1) Определение £(4). U(3), У3)) , , dt (х$\ у®) X = + (х<3), У(3>) — — 2^1 + 2С2’ д& (х<3>, /’) дС Минимизируем форму =-л-л. и = Ъ
§ 4] ТОЧКА, НАИМЕНЕЕ УДАЛЕННАЯ ОТ СИСТЕМЫ ПЛОСКОСТЕЙ 317 при ограничениях С1- с2-^<0, —Ci 4- ^2 — В О, _2С1 + 2С2 —е<0, -^1- N <!(/ = !, 2). Получим min и — 0. 2) Применение критерия решения. Так как в задаче линейного программирования, решенной в четвертом шаге, в определении направления наискорейшего спуска фигурировали лишь точно равные уклонения, то, согласно критерию решения (п. 1, в) § 2), точка (х(3>, у(3)) = (—2, —2) является искомым решением задачи. Замечание. Мы рассмотрели вариант задачи, когда искомая точка АГ ищется на всей плоскости. Несколько усложненный вариант, когда точка АГ ищется в некотором выпуклом множестве точек на плоскости, также решается аналогичным алгорифмом так, как это проиллюстрировано на примере п. 2 § 3. 2. Точка, наименее удаленная от заданной системы прямых (в пространстве). Рассмотрим еще один частный случаи общей геометрической задачи (6.7) — (6.8) при k=\ и /г = 3, т. е. задачи об отыскании точки, наименее удален¬ ной от системы прямых в трехмерном пространстве. Пример. Пусть в трехмерном пространстве заданы пять прямых: [ xi ~ х2 — 1 . I 1 | Х\ + Х2 I К2 = 0, = 0; (— 1=0, I х2 ~I- = 0» Х1 ~ х3 /2 xi ~Т~ хз — 2 71 х{ — 2х2 — х3 — 2 xi -^2 — «Уз -|- 1 Кз f 22 С. И. Зуховицкий, Л. И. Авдеева
318 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI которым соответственно приписаны веса У 2, 1, ]/~2, 1, ]Лб, так что расстояния pz(x) от точки x = (xv х2, х3) до пря¬ мых az (z=l, 2, 3, 4, 5) определяются формулами = У (*! — Х2 — 1 )2 + 01 + *2)2- Р2 (X) = /(^-l)2 + (X24-2)2, Р1М=/2/(£Т?1), + (^ИЙ=2)’ = =• /(*1 — *з)2 + (*1 + *3 — 2)2- Задача определения точки, наименее удаленной от задан¬ ной системы прямых, заключается в отыскании точки х* = (х*, х*, х*) такой, что max p?(x*) = min max р2 (х). 1<Z<5 x l</<5 За исходное приближение возьмем точку х(0)=(0, 0, 0) и положим ^ = 0.50. Имеем max р2 (х(0)) = о2(х'0)) = 6, р2(х(°))_б< — (z=l, 2, 3, 4). Первый шаг. 1) Определение С(1). Так как макси¬ мальных расстояний лишь одно, следует двигаться по анти* градиенту — grad р2(х(0)) = (0, —12, 0) и можно брать С(Ь = (0, —1, 0). 2) Вычисление 82. Имеем <М(*(0’) 12 < — 8Р следовательно, 82 = 61 = 0,50.
§ 4] ТОЧКА, НАИМЕНЕЕ УДАЛЕННАЯ ОТ СИСТЕМЫ ПЛОСКОСТЕЙ 319 3) Определение шага Двигаться сл-едует вдоль луча х1==0; х2==—1\ x3 = 0; t > 0. Для величины шага получим = /"} =£z/ = 0,14, где /минимизирует р| (х(0) 1 a t —наименьший поло¬ жительный корень уравнений pl (х<0) + /С(1)) = Р/ (х(0) + /С(1)) (/=1,2,3, 4). 4) Определение новой точки и новых макси¬ мальных расстояний. + —0,14; 0), max р? (х<*>) = р| (х<») = р? (хО)) = 4,46, 1<Z<5 — 52<p2(xd>) — 4,46 < 0, р2 _ 4,46 < — 82 (/ = 1, 4). Второй шаг. 1) Определение С(2). Минимизируем форму при ограничениях —2С,4-3,72С2 — Е<0, —4С, — 4С3 — е<0, 10.32С, — Е С О, |CJ<1 (/=1,2,3). Получим С<2) = (1, — 1, 1). .&*£) Вычисление 83. Имеем Е2 = — 5,72 < — 82, следо¬ вательно, 83 = 82 = 0,50. 3) Определение шага /2. Двигаться следует вдоль луча xx = t\ х2= — 0,14 — Z; х3 = Л, t > 0. Для величины шага получим /2 = t" = 0,86. 22*
320 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 4) Определение нового приближения и но¬ вых максимальных расстояний. х<2) = (0,86; —1; 0,86), max р2(%(2))= р2(аг<2>) = р2(х(2>) = 1,02, 1</<5 — 83<р2(х(2)) _ 1,02 <0, р2(х<2))—1,02 < — 83 (Z = 3, 5). Третий шаг. 1) Определение С(3). Минимизируем форму и — Ъ при ограничениях 3,44^ —2С2 -а <0, —0,28Cj -J- 2^ —В 0, — 2С2 —0,28С3 —В<0, |CZ|<1 (/=1, 2, 3). Получим С(3) = (—0,08; —0,08; 1). 2) Вычисление^. Имеем £3 = —0,12 > — 83, поэтому полагаем 84=-у = 0,25. 3) Определение шага /3. Двигаться следует вдоль луча х1 = 0,86 — 0,08/; х2= — 1—0,08/; х3 = 0,86 -|-t\ / > 0; /3== tr = 0,06. 4) Определение новой точки и новых макси¬ мальных расстояний. х(3) = (0,86; —1,00; 0,92), max р2 (х(3)) = р2 (%(3)) = 1,02, 1</<5 - В4 < р2(х<3)) - 1,02 < 0, ?2 (Х(3)) _ 1,02 < —84 (Z = 1, 3, 5).
§ 4] ТОЧКА, НАИМЕНЕЕ УДАЛЕННАЯ ОТ СИСТЕМЫ ПЛОСКОСТЕЙ 321 Четвертый таг. 1) Определение £(4). Минимизи¬ руем форму при ограничениях — 0,28чЧ-2С2 — £ <0, — 2С2 — 0,16С3 — L<0, |CZ|<1 (/=1, 2, 3). Имеем С(4) = (1; 0,03; 1). 2) В ы ч и с л е н и е о5. Имеем Е4 = — 0,220 > — 34, следо¬ вательно, 35 = -у = 0,125. 3) Определение шага /4. Двигаться следует вдоль луча -4 = 0,86 + /; х2 = —1+0,03/; х3 = 0,92 + /; t > 0; t4 = tf = 0,11. 4) Определение новой точки. jcW =(0,97; —1; 1,03). 5) Применение критерия решения. Рассмотрим точку х*(1, —1, 1) и В* = 0. Имеем max (х*) = pj (х*) = р| (х*) = р2 (х*) == 1. 1 < i <5 Для определения направления наискорейшего спуска надо решить следующую задачу линейного программирования: минимизировать форму и = \ при ограничениях 2СХ —2С2 —е со, 2ч — £<о, — 2^2 — ICJC1 (/=1, 2, 3). Получим min и = 0. В силу критерия решения п. 1 § 2 точка х’(1, —1. 1) является решением задачи.
322 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI § 5. Квадратичное программирование 1. Постановка задачи. Пусть задана квадратичная функция /(■*) = / (*р • • •. хп) = у 2 Т bijxlxjCiXt (6.35') Z = 1 ; = 1 Z = 1 или в векторно-матричной форме f (X) = 1 хтВх + сгх *), (6.35) и линейные неравенства Ф/(^) = Ъ(Х1 Хи) = = ау1х1 + ••• ajnxn~}~ aj (6.36') (7=1, .... m), которые в векторно-матричной форме запишем так: Дх-+а<0, (6.36) и пусть неравенства (6.36) определяют некоторую область 2, содержащую внутренние точки. Будем предполагать, что матрица В — симметрич¬ ная и положительно определенная, так что /(х)— выпуклая функция. Задача квадратичного программирования формулируется так: отыскать точку х*£2, для которой достигается мини¬ мум функции (6.35) при ограничениях (6.36): /(х*) = min f (х). (6.37) 2. Применение алгорифма выпуклого программиро¬ вания. Предварительный шаг. Исходное приближение х(0) £ 2 можно вычислить, например, симплекс-методом. *) хт = (хр ...» хп), т. е. это строка, полученная транспони- /хА рованиехм вектора-столбца х = ; в = 11М- Л
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 323 Общий шаг. Пусть уже найдено исходное приближение х(0) £ 2. Без ограничения общности можно считать, что х(0) лежит на границе 2. Как и в общем алгорифме п. 1 § 2, устанавливаем на каждом шаге значение положительного параметра §k(k— но¬ мер шага), начиная с произвольного достаточно малого 8Х для первого (после предварительного) шага, и точку х<°> будем считать принадлежащей плоскости фу-(х) = 0, если — < фу(х<0>) < 0. Пусть, например, — Bi < (х(0>Х 0 (v=l, .... V,). (7¥=/р ...» А). 1) Определение направления спуска. Напра¬ вление спуска •••> С/?) из точки х(0) определяем из следующей задачи линейного программирования: минимизировать линейную форму 1 при ограничениях ХЛ; + . . . 4- ОУ?Л Сл < 0 0=1 Vj), |Сг|<С (/=1 п). Обозначим min и через uv 2) Вычисление нового значения параметра 8. Различаем два случая: а) их < — 8р б) — 8р В случае а) не меняем значения 8, т. е. полагаем 82 = ор и продолжаем процесс. В случае б), если —8j < их < 0, то полагаем 82 = ^- и продолжаем процесс; если же и1 = 0, то проверяем, не является ли точка х(0) решением задачи. Пусть, например, ф^(Х(0))==0 (И=1, И1). ф7(х^)<0 (У .... А).
324 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Тогда решаем следующую задачу линейного программиро вания: минимизировать форму _у ~ Li dxL i = l при ограничениях ... +#./^/2^0 \^\<C ([1=1, .... [1J, (Z — 1, . . ., ri). Если min и = u'x = 0, to x(0) — решение задачи (6.36)—(6.37). Если же zz'< 0, то полагаем снова о2 = ^- и продол¬ жаем процесс, считая направлением наискорейшего спуска решение рассмотренной задачи линейного программирования. 3) Вычисление шага tv Пусть уже определено на¬ правление С(1) наискорейшего спуска из точки х<°). Двигаемся в этом направлении, т. е. увеличиваем t в формуле х==х(0) + ^(1) до тех пор, пока не достигнем значения Z1 = min \tr, t"\, где t, = _ (Вх(0) + с)Г С(1) (С(1))Г ВС(1) минимизирует функцию /(х(0)-|-a t определяется как наименьшее положительное среди чисел — Ф,О(0)) г = 1 1 г=1 4) Определение новой точки и новых укло¬ нен ий. В качестве нового приближения берем точку х(1) = = х(°) + и вычисляем новые уклонения. Алгорифм продолжаем, считая х(1) исходной точкой, о2— значением параметра. 5) Признак получения решения и оценка приближения. Пусть получено приближение и при определении направления спуска из точки ока-
§ КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 325 залось, что min и = uk — 0. Тогда, аналогично описанному выше, в 2), если w^==0, то х^-1)— решение. Остановимся на вопросе об оценке близости полученного на й-м шаге приближения /(x(ft)) к значению /(х*) = min/(x). х£2 Для этого, как и в общем случае п. 1 § 2, рассмотрим уравнение касательной плоскости в точке x(fe) £ 2 к по¬ верхности у = /(х): Y — f (х^) = (Вх^ + с)т (х — х<*>). ■ В силу выпуклости функции /(х) имеем /(х)>К. Подставляя в предыдущее уравнение, получим неравенство (Вх^ 4- с)т (х — х®) < / (х) — f (х<*>), так что I min | АГ £ S Таким образом, для оценки сверху близости значения / (х(Л)) к значению f (х*) = min/(х) достаточно отыскать *£2 min (Bx(ft) -|- с)т (х — х(Л)). Пример. Минимизировать функцию f (х) — -^2 2хз при ограничениях Ф1(х)— *1 + a:2~h -^з — 2 0, х2 — Зх3 —|— 5 Фз(х)= Xj— х2 —2 <р4 (Х) = Xj + у х2 — х3 — 1 'Ых)== — xi+ 2х2 —2х3 + 3<0, Фб(л')== Х2— Зх3-|-1~<0. За исходное приближение возьмем точку х*0) — (0, 0, 2), а за исходное значение параметра 8 возьмем 81 = 0,50. Имеем ф1(х(0)) = 0; ф((х<0))< —8t (г=2, 3, 4, 5, 6).
326 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Первый шаг. 1) Определение С(1). Для отыскания направления С(1) = (С1П, Сг*» СзО решаем следующую задачу линейного программирования: минимизировать форму и = 8С3 при ограничениях |CZ|<1 (/= 1, 2, 3). Получим С(1) = (0, 0,-1). 2) Определение В2. Имеем их = —8 < — 8Р так что §2 = ^ = 0,50. 3) Определение tx. Двигаемся вдоль луча х1 = 0; х2 = 0; х3 = 2 —1\ £ > 0. Для величины шага получим Zj = Z'z = 0,33. 4) Определение новой точки и новых укло- нений. х(1) ==%(0)+ /£(!)== (0; 0; 1,67), ф2(х(1))==0; -82<^(x<D)<0; - 82 < ф5(х<О) < 0; фу(х<1>)<— 82 (/=3, 4, 6). Второй шаг. 1) Определение С(2). Для отыскания направления С(2) решаем следующую задачу линейного про¬ граммирования: минимизировать форму и = 6,65£3 при ограничениях Ci + £2 4- С3 0, — 2С1— — ЗС3<0, - C1 + 2C2-2C3<0, |£.|<1 (Z=l, 2, 3). Получаем С<2)=(1; —0,5; —0,5).
КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 327 § 5] 2) Определение 8«. Имеем и2 =—3,32 <—L, так ЧТО 83 = 82 = 0,50. 3) Определение /2. Двигаемся вдоль луча х1 = /; х2 =— 0,5/; х3=1,67— 0,5/; t > 0. Для шага /2 найдем /2 = /'= 1,03. 4) Определение новой точки и новых укло¬ нений. jc<2) = (1,03; —0,52; 1,15), _Ь3<ф1(х^)<0; — 83 < ф2(л;<2>) = 0; - В3 < ф3 < 0; ф.(х(2))<_вз (у = 4, б)< Третий шаг. 1) Определение С(3). Минимизируем // —2,06^ — 0,52С2 + 4,6С3 при ограничениях Ci + ^2+ С3<0, — 2^ —С2 —ЗС3<0, ^-С2 <0, |CZ|<1 (/=1, 2, 3). Получим £(3) = (_1; 0,5; 0,5). 2) Определение 64. Имеем и3 =—0,02 >—63, так что В4 = -у-= 0,25. 3) О п р е д е л е и и е /4. Двигаемся вдоль луча х^ = 1,03 — /; х2 == — 0,52 —|— 0,5/; х3= 1,15+0,5/; / > 0. Для шага /3 найдем /3 = /' = 0,006 ^0. 4) Определение новой точки и новых укло¬ нений. ^(3) = x(2)=(ij03; —0,52; 1,15); — &4<1>2(*(4))=0; Ъ(л(4)Х—S4 (/=1, 3, 4, 5, 6).
328 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI Четвертый шаг. 1) Определение С2 3 (4). Минимизи¬ руем и = 2,06 ц — 0,52С2-4- 4,6С3 при ограничениях — 2ц —С2 —ЗС3<0 |CZ|<1 (1=1, 2, 3). Получим С(4) = (1, 1, —1). 2) Определение 35. Имеем и4 =— 3,06 <—84, так что 85 = 84 = 0,25. 3) Определение t4. Двигаемся вдоль луча = 1,03 Ц- /; х2 = — 0,52 Ц- х3=1,15 —/; Г>0. Для шага t4 получим Ц = Г = 0,34. 4) Определение новой точки иновыхукло- нений. № = (1,37; —0,18; 0,81), — 85 < Ф1 (•*;<5>) = °; — 85 < Ф2 (х(5)) = ф.(х(5))<_(/ = 3, 4, 5, 6). Пятый шаг. 1) Определение С(5). Минимизируем и = 2,74^-0,18^4-3,24^ при ограничениях — 2ц — С2 — Зц < 0, IQI < 1 (/ = 1. 2, 3). Получим С(5) = (_1; 0,5; 0,5). 2) О п р е д е л е н и е о6. Имеем иъ = —1,21 <—35, так что 86 = В5 = 0,25. 3) О п р е д е л е н и е /5. Двигаемся вдоль луча х^ = 1,37 — t‘ х2 = — 0,18 4-0,5t; х3 = 0,81 4- 0,5^; t > 0.
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 329 Для шага t5 получим г5 = Г = 0,35. 4) Определение новой точки. х<5) =(1,020; —0,005; 0,985). 5) Легко проверить, что точка х* = (1, 0, 1) является решением. 3. Конечный алгорифм для квадратичного програм¬ мирования. Приведем теперь изложение одного конечного алгорифма для решения задачи (6.35) — (6.37) квадратичного программирования [5а]. 1) Составим таблицу из ограничений (6.36') и частных производных минимизируемой функции /(х) (6.35'): Х} ... Xi ... х,г 1 41 = а\ 1 ... a\tl a{ 4/ = ai\ ... (iij ain at 4т ~ ат\ ... dmj • • amn am ьи ... by . .. bln C1 f х!г ~ ькх ••• bkj ■ •• bkn Ck fxn = ... bnj . •• bnn cn Найдем единственную точку а(1), в которой /(х) дости¬ гает минимума. Если а(1) £ 2, то а(1) = х*, и задача решена. Если же а(1) £ 2, то выберем произвольную точку х(0) £.2 (исходная точка) и вектор С(1) = а(1) — х(0), вдоль которого будем двигаться к точке а(1) до встречи с границей много¬ гранника в некоторой точке х(1), которую будем считать первым приближением, т. е. будем увеличивать t в формуле Х = + ^(1)
330 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI до значения tv равного наименьшему положительному среди значений Пусть для удобства j = 1, . . ., {1, т. е. значение tx достигается при ф1(х<»)= ... =^(х(1)) = 0. ша- раз- При помощи соответствующего числа последовательных гов жордановых исключений с произвольно выбранными решающими элементами перебрасываем на верх таблицы столько из аннулировавшихся фу (у—1, .... у-), сколько окажется возможным. При этом каждый шаг жорданова исключения дополняется следующей операцией (реализующей правило дифференцирования сложной функции): если в ре¬ зультате жорданова исключения меняются местами ф^ и Xj (т. е. atj — разрешающий элемент), то в полученной таблице к элементам каждой новой строки /' при k^j при- xk бавляются соответствующие элементы новой строки f , ум- it. е. на значе- строка снова обозначается че- строки f' умножаются лишь на 1 1 на , и строка переименовы- aij ноженные на новое значение элемента aLk ние . Полученная рез /' . Элементы новой xk новое значение aZy, вается в f' . Действительно, если мы меняем местами ф; и Xj (разре- то т. е. тающий элемент а/;), х = J <4j aij aij ai aij aij
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 331 следовательно, а) dxk f **” xj-v xj(xv xj-v xj+v •••» хп)> xj+v • • • • хгЛ = df df dxj f dxk + dxj dxk xk ’ * ’ ’ X/+1’ ’ * * ’ + /;,(xp .... x,_v фр xj+v .... x„)(— где f'x (xv .... Xj_v фр Xj+V ...» xn)— новая строка и fx (xp ..., x;_p фр Xj+l, .... xn)— также новая строка; Xj_v Xj(X1 Xj_v фр xy+1 x„), Xj+V • • •> Xn] = d f дх; 1 =-d^wi==f'/'xl x'-p x'+1 Xn)^j- В дальнейшем под шагом жорданова исключения будем понимать обычный шаг жорданова исключения с указанными дополнениями. Пусть после г р- последовательных шагов жордановых исключений пришли к таблице Фг *т+\ .. хп 1 Фг + 1 = аг + 1, 1 а{г} • • аг+1, г 0 .. 0 0 4= 41 • • р.Г 0 .. 0 0 ф|1+1 = 4+1,1 а(г} •• ар. + 1, г г +1 • а{г} •• % + 1, п 41 = а{т\ • • с Г+1 •• 4« 4’ 4= ьи 4’ 441 • ■ 41 4 4= к •• 4 °т, г+1 .. ь(г> 4 4+1“ ^1, 1 • • 44, Ь(г) рг + 1,г + 1 • . blr' , мг + 1, п 41, 4“ 41 41 А(г) % г + 1 ь{г} • ■ пп 4
332 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 2) Определим единственную точку а(2), в которой функ¬ ция /(х) достигает относительного минимума при условии ф1(х) = ... = ф[Х(х) = 0. Для этого, как обычно, решаем систему линейных уравнений = =0==&’m+ix'-+1+ ••• -\-b{jnXn-[-b'P = 0 (J = Г Ч- 1, . .., Ъ). В качестве направления спуска из точки х(1) выбираем вектор С(2) = а(2) — х(1) и двигаемся вдоль этого направле¬ ния, т. е. увеличиваем t в формуле х — х(1) /С(2) до тех пор, пока не достигнем /2, равного наименьшему положительному среди значений -Ф„,(-»"'), L 2а+.,Л!|’ ' i=l i=l Если Z2=l, то а(2) £ 2 и х(2) = а(2). Такую точку х® будем называть стационарной. Если {х=1, то стационарная точка а(2) является реше¬ нием. Действительно, в этом случае градиент функции f (х), очевидно, ортогонален лишь одной грани, например фх(х) = 0, в которой лежит точка а(2), и направлен вовне 2, так как гиперплоскость Ф1(х) = 0 отделяет 2 от а(1). Поэтому нет направления из а(2), не выводящего из 2, вдоль которого функция fix) убывает. Если же {1 > 1, то стационарная точка а(2) может не являться решением. Действительно, в этом случае градиент функции fix) ортогонален линейному многообразию, полученному в пере¬ сечении нескольких гиперплоскостей фДх) = 0, т. е. орто¬ гонален плоскости, размерности меньшей чем п—1, не от¬ деляющей 2 от а(1). Поэтому из точки а(2) возможно су¬ ществование направления убывания f (х), не выводящего из 2. Если же 0 </2 < 1, то не более чем через п — г ша¬ гов либо получим стационарную точку, либо получим точку
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 333 Х(И1) — вершину, т. е. принадлежащую р^ я граничным плоскостям, среди которых есть п линейно независимых, т. е. на верху таблицы не останется ни одного Xj. Точку х^*> будем также называть стационарной. 3) Определим направление движения из стационарной точки. Пусть стационарная точка х(0, . . О, хг+1, .. хп) принадлежит плоскостям ф1(х)=0 фг.(х) = 0, <рг+1(х) = 0, <рДх) = 0- (см. таблицу (*)). Тогда, если р = 1, то, как было ука¬ зано, точках — решение задачи. Если же р > 1, то найдем направление спуска из точки х, т. е. направление С (фр . фг, хг.и, •••> хл)> ке выводя¬ щее из 2, вдоль которого убывает функция /(х), так что если С и выводит из плоскостей фх (х) = 0, . . ., ф (х) = О, то лишь в 2. Для получения направления наискорейшего спуска решаем следующую задачу линейного программирования: минимизировать функцию _ д/(х) _ у df(x) г | у df(x) г д'С, d^i L "1“ fix. I t=l /=г+1 при ограничениях dtyj у d'\>j i = i (7=1, • • •> РО> — C<CZ <С (/ = 1, . . ., /г). Но фр..., фг, хг+1,.. ., так что (см. таблицу 0е)) хп — независимые переменные, сг<о, дф1 Далее, точка х стационарная, т. е. df (х) dxi 1Ф.= 23 С. И. Зуховицкий, Л. И. Авдеева
331 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI поэтому _ у df(x) г дС ~ Zj d^i / = 1 Окончательно мы пришли к следующей задаче линей¬ ного программирования: минимизировать функцию при ограничениях — — = afl Cj + ... + a{pr Cr < О (Z= 1, .... г), (/ = г + 1, ...» р.) (так как Сг+1, Zn не участвуют в нашей задаче линей¬ ного программирования, то их можно считать нулями). Если minw = 0, то х* = х, и задача решена. Если же min и < 0, то двигаемся из точки х в направлении С реше¬ ния нашей задачи линейного программирования, т. е. уве¬ личиваем t в формуле х — х-\-$ъ до значения 7, равного наименьшему положительному среди чисел “I|X+1W -few г ’ * * ’ ’ г ’ * V лг) 7 у (г) 7 + 1, i*i umi4 1=1 i=l где t' — значение Z, минимизирующее функцию После получения точки х = х t С перебрасываем на верх таблицы столько аннулировавшихся фу. из числа фг+1, ...» фт, сколько окажется возможным, и с получен¬ ной таблицей производим действия п. 2). Вычисления про¬ должаем до получения новой стационарной точки, с кото¬ рой производим действия п. 3), и т. д. Так как алгорифм монотонный, а стационарных точек — конечное количество, то после конечного числа шагов полу¬ чим решение х*.
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 335 Пример. Минимизировать функцию / (х) = 2х2 + X2 -+ 3x2 2XjX3 Х2Х3 4- —|— 10Xj —j- 9Xj — 26xj при ограничениях Ф1 (*) = — Xj — 1 <0, Ф2 (*) = — x2 <0, Фз (*) = — x3 <0, ФИ*) Х2~Г Х3 4<^0, ф5 (х) = — xt — 2х2 — х3 + 3 0. Предварителъный шаг. Составляем таблицу: xi x2 *3 1 Ф1 = —i 0 0 —1 +2 = 0 —Г 0 0 Фз = 0 0 —1 0 = 1 1 1 —4 Фб = —1 —2 ЕЛ 3 4 —1 —2 10 —1 2 —1 9 —2 —1 6 —26 Первый шаг. 1) Определение точки минимума. Решив систему линейных уравнений — 4Xj— х2— 2х3 4-10 = 0, Л2= - х24-2х2 — х34- 9 = 0, = — 2xj — х2 4- 6х3 — 26 = 0, получим точку а(1)=(—2, —4, 3)£2, в которой дости¬ гается min /(х). Находим какую-нибудь точку х(0) £ 2, например х(0)(1, 1, 1). Действительно, Фу(*<°>)<0 (7 = 1,..., 5). 23*
. 336 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 2) Определение С(1). (;(i)=a(i)_ х(о)=(_ 3> _5t 2). 3) Определение Двигаемся вдоль луча х — х(0) + -4- /Х(1), т.. е. = 1 —3/; х2 = 1 — 5/; х3 = 1 -р 2/. Для шага t} получим t __L и — и • 4) Определение новой точки и новых ук¬ лонений. ф5(Х(1))==0; (JV5). Второй шаг. 1) Определение точки услов¬ ного минимума функции. Производим шаг жорданова исключения в таблице (1°) с разрешающим элементом а53 = — 1. Получим таблицу *1 *2 1 = —1 0 0 —1 <Ь = 0 Ml 0 0 Фз = 1 2 1 —3 <р4 = 0 —1 -1 —1 14 16 8 12 16 30 13 22 II 4- 8 13 6 8 х3 = = —*1 — 2х2 — +5 + 3- Решив систему линейных уравнений (/Д5=о= 14х>+ 16^ + 12 = °- (%0= 16*1 + 30*2+22 = °.
§ 5] КВАДРАТИЧНОЕ ПРОГРАММИРОВАНИЕ 337 найдем условную экстремальную точку функции / (х) (при условии ф5 = 0) в новых координатах (хр х2, ф5): 2) Определение £(2). 3) Определение /2. Двигаемся вдоль луча х — х(1) + + /С(2), т. е. 8 350 ± 6 565 ± Л X1—IT- 45rZ; х2 — ТГ— 4бГ/: Для шага /2 получим _ 246 *2 — 565 ‘ 4) Определение новой точки и новых ук¬ лонений. *'“ = (—ГО'0' °); ф2(х(2)) = 0; фу(х(2))<0 (7=1,3, 4). Третий шаг. 1) Определение точки услов¬ ного минимума функции. Производим шаг жорда¬ нова исключения в таблице (2°) с разрешающим элемен¬ том я22 — — 1. Получим таблицу Фг Фз 1 Ф1 = —1 0 0 —1 Фз — 1 —2 1 —3 ф4 = 0 1 —1 —1 л,= 14 -16 8 12 4 = —16 30 —13 —22 4 = 8 —13 6 8 х2 ф2. Решив уравнение (/') = М^Н- 12 = 0, ' 1'Фг - ?5 ~
338 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI найдем условную экстремальную точку функции / (х) (при условии ф2 = ф5 = О) в новых координатах (хр ф2, ф5): а(3,=(хР ф2, ф5)=(-|, О, О) С 2, так что х(3) = а(3)— стационарная точка. Получив стационарную точку, опускаем операции 2) и 3). 4) Определение новых уклонений. фу-(х(3))<0 (7=1,3, 4). Четвертый шаг. Опускаем операцию 1). 2) Определение С(4). Для выхода из стационарной точки решаем следующую задачу линейного программирова¬ ния: минимизировать форму h = jW1)__82(.2+1|(.3 при ограничениях Cj = O, — 1 <С2<0, — 1 <С3<0. Для С(4) получим С(4) = (0, 0, — 1). 3) О п р е д е л е и и е t4. Двигаемся вдоль луча х = xl3) -f- 1^\ т. е. *1 = —ф2=о; Фв=—л Для шага /4 получим где I' минимизирует функцию / (х(3)-|- ZC<4)). 4) Определение новой точки и новых укло нений. х<4>=х<з)+=(-1, о, - 4) е причем ^■(х^ХО (у=1, 3,4,5).
§ 6] ПРИМЕНЕНИЕ К ЛИНЕЙНОМУ ПРОГРАММИРОВАНИЮ 339 Пятый шаг. 1) Определение точки услов¬ ного минимума функции f (х). Решив систему ли¬ нейных уравнений (Q2=o==14x’+8^+ 12==0’ (4)Ф2=о=8*-+6^+8 =0' найдем условную экстремальную точку а(4) функции /(х) (при условии <|>2 = 0) в новых координатах (хр ф2, ф5): а(4) = (_ о,4; 0; — 0,8) £2, так что а(4) = х(5) — стационарная точка. Так как v=l, то х(5) = (—0,4; 0; —0,8) или в ста¬ рых координатах (—0,4; 0; 4,2) — решение. § 6. Применение к линейному программированию 1. Предварительные замечания. Алгорифм выпуклого программирования, очевидно, можно применить для решения рассмотренной подробно в гл. II общей задачи линейного программирования: минимизировать функцию г = р1х1-|- ... +р„х„ при ограничениях фу(х)= tZyjXi-j- ... ajnx/t-f-а;-^0 (/=1, ..., т), определяющих область 2. В отличие от симплекс-метода, в котором движения происходят по одномерным ребрам от вершины к вершине многогранника 2, в излагаемом ниже алгорифме движения осуществляются в линейных многообразиях большей размер¬ ности, что обычно быстрее приводит к цели. 2. Алгорифм. Предварителышй шаг. Для отыскания исходного допустимого приближения х(0) берем произвольное достаточно малое число > 0 и применяем излагаемый ниже алгорифм к задаче минимизации функции
340 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI при ограничениях ^1+ ••• + ajnxn+aj<^ (/= 1, ...» лишь до тех пор, пока не получим приближение ^<^0. Общий шаг. Пусть уже выбрано достаточно малое 8Х > 0 и найдена точка х(0) £ Определяем уклонения фу-(х(0)) (У = 1 * • ••» и пусть — 8i < Ф/, (*(0)Х 0 (V=l, Vj, ФХ^Х-^ (/¥=/,..... /„). Для определения направления наискорейшего спуска решаем следующую, обычно значительно более простую, задачу линейного программирования: минимизировать функцию « = Р& -h • • • + Р£п при ограничениях + ••• + 'С 0 (v = 1, .... vT), Kzl <1 G=l» ...» п). В этой задаче, вообще говоря, ограничений меньше, чем в исходной. Пусть уже найдено направление наискорейшего спуска С(1)=(С11), ..., СлО и minz/ = z/1<—Тогда двигаемся в этом направлении, т. е. увеличиваем t в формуле х = х(0) 4~ до тех пор, пока не достигнем значения /р равного наименьшему положительному среди чисел — Ф1 (*(0)) 2 Z=1 Точка х(1) == х(0) служит новым приближением. Процесс продолжаем до тех пор, пока при некотором не получим minzz = zz^>—8Й. В этом случае меняем значение параметра так, как описано в § 2, и продол¬ жаем процесс, пользуясь новым значением параметра.
§ 6] ПРИМЕНЕНИЕ К ЛИНЕЙНОМУ ПРОГРАММИРОВАНИЮ 341 3. Пример. Минимизировать форму z = Зхх — 2х2 + *з при ограничениях Ф1(*) = — *1 + *2—3*3 <0’ ф2 (х) = — Зхх + 4х2 — Зх3 — 2 О, Фз(*) = х2 — х3 — 1<0, Ф4 (х) == — 2xj Зх3 + 2 < 0; Фз(х)= *i *2“Н *3 — з<0, ф6(х) = 2хт — Зх2— х3— 2<_0. За исходное приближение возьмем точку х(0) =(1, 0, 0) и положим Bj = 0,5. Имеем ф4(х(о)) = О; ф6(х<0)) = 0; фу(х^)<—Bj (у=1> 2, 3, 5). Первый шаг. 1) Определение £(1). Для отыскания направления С(1) решаем следующую задачу линейного про¬ граммирования: минимизируем форму zz = 3C1-2C2-+-C3 при ограничениях -2ч +ЗС3<0, 24 —зс2— С3<0, 141 <1 (/=1, 2, 3). Решив эту задачу, получим С(1) = (—1, 1, —1). 2) Вычисление В2. Имеем minn= — 6<—Вр так что В2 = Oj = 0,5. 3) Определение шага tx. Двигаться следует вдоль луча хг=1—t\ x2 = t\ х3 =—t\ / > 0. Для шага получим
342 ВЫПУКЛОЕ ПРОГРАММИРОВАНИЕ [ГЛ. VI 4) Определение новой точки и новых укло¬ нений. Х .5’5’ 5 ) — о2 < (х(1)) = 0; -Л^Д^’ХО; фу(х<1>)<-82 (у = 2, 3, 5, 6). Второй шаг. 1) Определение С(2). Минимизируем форму « = ЗС1-2С2 + С3 при ограничениях - ^-Х-ЗСзСО, — 2^ +ЗС3<0, (/=1,2,3). Получим XI'>■ 4)- 7 2) Вычисление 83. Имеем min и = — < — 82, так что 83 = о2. 3) Определение шага t2. Двигаться следует вдоль луча х\ — ■5+у ^2=5"+^’ хз =—> о* Для шага найдем 4) Определение новой точки и новых укло¬ нений. х(2) (37 Ц х ~Ч 35 ’ 35 ’ 35 / — &з<Ф1(*(2)) = °; — Вз < Фз(х(2)) = °» -Л<М*(2))<0; ^(х<2))<-83 и = 2, 5, 6). 5) Легко проверить, что точка х* = (1, 1, 0) является решением.
ЦИТИРОВАННАЯ ЛИТЕРАТУРА 1. Барсов А. С., Что такое линейное программирование, Физ- матгиз, 1959. 2. Г а с с С., Линейное программирование, Физматгиз, 1961. 3. Г олыитей.н Е. Г., Об одном классе нелинейных экстремаль¬ ных задач, ДАН СССР 133, № 3 (1960), стр. 507—510. 4а. 3 у х о в и ц к и й С. И., О новой численной схеме алгорифма для чебышевского приближения несовместной системы линей¬ ных уравнений, ДАН СССР 139, № 3 (1961), стр. 534—537 (см. также ДАН СССР 79, № 4 (1951), стр. 561—564). 46. 3 у х о в и ц к и й С. И., О приближении несовместной системы линейных уравнений по принципу минимизации суммы моду¬ лей всех уклонений, ДАН СССР 143, № 5 (1962), стр. 1030—1033 (см. также Журнал выч. матем. и матем. физики 3, № 3, стр. 599—605). 4в. Зуховицкий С. И., Алгорифм для вщшукання точки, що найменш вщхиляеться (в розумшш П. Л. Чебишова) вщ данно! системи т точок, Доповцц АН УРСР, № 6 (1951), стр. 404—407 (см. также Науков1 записки Луцького пед. шституту 1 (1953), стр. 3—23). 5а. 3 у х о в и ц к и й С. И., Л е й ф м а н Л. Я., О вычислительной схеме одного алгорифма для выпуклого квадратичного про¬ граммирования, СО АН СССР, Новосибирск, 1962. 56. 3 у х о в и ц к и й С. И., Поляк Р. А., П р и м а к М. Е., Ал¬ горифм для решения задачи выпуклого чебышевского при¬ ближения, ДАН СССР 151, № 1 (1963), стр. 27—30. 5в. 3 у х о в и ц к и й С. И., Поляк Р. А., Примак М. Е., Алгорифм для решения задачи выпуклого программирования, ДАН СССР 153, № 5 (1963), стр. 991—994. 6. Канторович Л. В., Математические методы в организа¬ ции и планировании производства, Изд-во ЛГУ, 1939. 7. Канторович Л. В., Об одном эффективном методе реше¬ ния некоторых классов экстремальных проблем, ДАН СССР 28, № 3 (1940), стр. 212—215. 8. Канторович Л. В., Г а в у р и н М. К., Применение мате¬ матических методов в вопросах анализа грузопотоков. Сб. «Проблемы повышения эффективности работы транспорта», Изд-во АН СССР, 1949, стр. 110—138. 9. Канторович Л. В., Экономический расчет наилучшего использования ресурсов, Изд-во АН СССР, 1959.
344 ЦИТИРОВАННАЯ ЛИТЕРАТУРА 10. М а к-К и ней Дж., Введение в теорию игр, Физматгиз, 1960. 11. Марков В. А., О функциях, наименее уклоняющихся от нуля в данном промежутке, СПб., 1892. 12. П р и м Р. К., Кратчайшие связывающие сети и некоторые обобщения, Кибернетический сборник 2 (1961). 13. Р ё й н ф е л ь д' Н., Фогель У., Математическое програм¬ мирование, ИЛ, 1960. 14. Юдин Д. Б., Гольштейн Е. Г., Задачи и методы линей¬ ного программирования, «Советское радио», 1961. 15. Линейные неравенства и смежные вопросы, Сб. статей под ред. Г. У. К у н а и А. У. Т а к к е р а, ИЛ, 1959. 16. С h а г n е s A., Optimality and degeneration in linear program¬ ming, Econometrica 20 (1952), 160—170. 17. D a n t z i g G. B., Programming of interdependent activities, Mathematical model, Econometrica 17 (1949), 200—211. 18. Da nt zig G. B., Maximization of a linear function of variables subject to linear inequalities, Activity analysis of production and allocation, ed. T. C. Koopmans, Cowles Commission Mono¬ graph 13, Wiley, New York, 1951, p. 339—347. 19. Dant zig G. B., Application of the simplex method to a trans¬ portation problem, Activity analysis of production and alloca¬ tion, ed. T. C. Koopmans, Cowles Commission Monograph 13, Wiley, New York, 1951, p. 359—373. 20. Dant zig G. B., A proof of the equivalence of the program¬ ming problem and the Game problem, Ac<ivity analysis of pro¬ duction and allocation, ed. T. C. Koopmans, Cowles Commission Monograph 13, Wiley, New York, 1951, p. 330—335. 21. Da nt zig G. В., О r d e n A, A., Duality theorems, RAND Report RM-1265, The RAND Corporation, Santa Monica, Calif, October 1953. 22. D a n t z i g G. В., О r d e n A., W о 1 f e P., Generalized simplex method for minimizing a linear form under linear inequality restraints, Pacific J. Math. 5 (1955), No. 2, 183—195. 23. D a n t z i g G. В., О r c h a r d-H ays W., The product form for the inverse in the simplex method, Math., Tables Aids Comp. 8 (1954), 64—67. 24. Dant zig G. B., Note on solving linear programs in integers, Naval Res. Logist. Quart., 1959. 25. E g e r v а г у E., Matrixok combinatorius tulajdonsagairol, Mat. Fiz. Lapok 38 (1931), 16—28. 26. Ford L. R., Network flow theory, RAND Corp, paper, 1956. 26a. Ford L. R., Fulkerson D. R., Maximal flow through a network, Canad. J. Math. 8, 1956, 399—404. 27. G о m о г у R. E., Outline of an algorithm for integer solutions to linear programs, Bull. Amer. Math. Soc. 64 (1958), No. 5, 275—278. 28. G о m о г у R. E., An algorithm for integer solutions to linear programs (mimeographed). Prinston — IBM Math. Res. Project, Technical Report 1 (1958). 29a. G о m о г у R. E., В a u m о 1 W. J., Integer programming and pricing, Econometrica 28, No. 23 (1960), 521—550.
ЦИТИРОВАННАЯ ЛИТЕРАТУРА 345 296. Go тогу R. Е., Н of f т a n A. J., On the convergence of an integer-programming process, Naval Res. Logist. Quart., 10, N 2 (1963), 121—123. 30. К u h n H. W., The Hungarian method for solving the assignment problem, Naval Res. Logist. Quart. 2 (1955), 83—97. 31. L e m к e С. E., The dual method of solving the linear program¬ ming problem, Naval Res. Logist. Quart. 1 (1954), 36—47. 32. Munk res J., Algorithms for the assignment and transpor¬ tation problems, J. Soc. Industr. Appl. Math. 5 (1957), 32—38. 33. Neumann J. von, A certain zero-sum two person game equi¬ valent to the optimal assignment problem, Annals of Math. Studies 28 (1953), 5—12. 34. Rosen J. B., The gradient projection method for nonlinear programming, часть I, Linear constants, J. Soc. Indust. Appl. 'Math.,.?. 8, No. 1, 1960; часть II, Nonlinear Constants, J. Soc. Indust. Appl. Math., t. 9. No. 4, 1961. 35. Stiefel E., Note on Jordan elimination, linear programming and Tchebycheff approximation, Numerische Mathematik 2 (1960), 1—17. 36. Zoutendi jk G., Methods of feasible directions, 1960 (рус¬ ский перевод: Методы возможных направлений, ИЛ, 1963).
АЛФАВИТНЫЙ УКАЗАТЕЛЬ Алгорифм выпуклого программирова¬ ния 284, 300 , применение к линейному про¬ граммированию 339 — конечный квадратичного програм¬ мирования 329 — решения задачи параметрического программирования 111, 115 целочисленного программиро¬ вания 103, 108 транспортной задачи методом потенциалов 168, 171 — симплекс-метода 33, 46 — Форда 219 Величина потока 230 Вход сети 229 Выпуклое программирование 278 Вырождение 40, 43, 69 — транспортной задачи 202 Выход сети 229 Гавурин М. К. 162 Гаусса метод решения системы ли¬ нейных уравнений 20 Гомори Р. Е. 102 Данциг Г. 9, 32, 146, 162 Двойственность в линейном програм¬ мировании 72, 74, 78, 81 Двойственные таблицы 73 s-метод для устранения зациклива¬ ния 69 Жордановы исключения 10 модифицированные 25 обыкновенные 10 , применение к решению системы линейных уравнений 18, 20, 22 Задача выбора оптимальной смешан¬ ной стратегии 149 — выпуклого программирования об¬ щая 279 , алгорифм решения 284, 300 , каноническая форма 284 Задача линейного программирования двойственная 74, 78 — — — симметричная 84 — с однотипными ниями 84 ограниче- со смешанной ограничений 84 системой , экономическая тация 81 основная 27 интерпре- , геометрическая тация 27, 31 интерпре- ,способы задания чений 56, 59, 60, 62 ограни- , экономическая тация 81 интерпре- , присоединенная к задаче че¬ бышевского приближения 244, 245, 249 , сведение к матричной игре 155 — Маркова В. А. 253 — минимизации линейной формы 64 отходов 129 суммы модулей линейных функ¬ ций 270, 272, 275 — о диете 133 — о закреплении самолетов за воз¬ душными линиями 136 — о кратчайшей связывающей сети 226 — о назначениях 139, 140 — о наилучшем использовании посев¬ ной площади 134, 135 распределении ограниченных ресурсов 143 программы между пред¬ приятиями 125, 127 — сырья, поступающего в ограниченном количестве 144 — оптимального использования обо¬ рудования 125, 127 производственного планирования 122, 123, 125 —— раскроя материалов 129, 130 — о рациональном соотношении меж¬ ду различными типами бронебой¬ ных снарядов 145 — о смесях 133 — отыскания кратчайшего расстоя¬ ния по заданной сети 216 максимального потока в сети 230, 231, 232, 236
АЛФАВИТНЫЙ УКАЗАТЕЛЬ 347 Задача отыскания максимального по¬ тока транспорта по заданной транспортной сети 231 — параметрического программирова¬ ния двойственная 120 основная 111 — типа транспортной по критерию времени 206, 208 — транспортная, см транспортная за¬ дача — чебышевского приближения несов¬ местной системы линейных урав¬ нений 242 — — — системы линейных функций при наличии ограничений 250, 253 — Штейнера 283 — экстремальная общая (типа транс¬ портной по критерию времени), метод решения 206, 208 Зацикливание 56, 68 Звенья сети симметричные 229 Игра матричная (прямоугольная) 147 — —, сведение к задаче линейного программирования 151, 153 — одноходовая 147 — симметричная 150 Каноническая форма общей задачи выпуклого программирования 284 Канторович Л. В. 9, 162 Квадратичное программирование 322 , конечный алгорифм решения 329 Кратчайшая связывающая сеть, по¬ строение 226 Кун X. 162 Лемке К. 93 Линейное программирование, форму¬ лировка основной задачи 27 М анкрес Дж. 162 Маркова В. А. задача 253 Матрица выигрышей 447 — обратная 14 — транспортных издержек 160 Матричная игра двух партнеров с ну¬ левой суммой 147 Метод потенциалов 163 , обоснование 199 , упрощение вычислительной схе¬ мы 182 Минимальное уклонение системы ли¬ нейных неравенств 256 Набор 164 Нейман Дж. 146 Обращение матриц 14 Опорное решение системы линейных неравенств 32, 33, 35, 37, 39 Оптимальное решение основной зада¬ чи линейного программирования 32, 46 Параметрическое программирование *111, 115 План перевозок 160 ациклический 165 допустимый 161 , исправление системы и-, v- 177, 180 7 , необходимый и достаточный признак оптимальности 165 первоначальный, исследование системы на потенциальность 168, 169, 175, 179 , построение методом аппро¬ ксимации 189, 191 , минимального элемента 188 , — системы a-, Vj 173 , составление плана 169, 171 , улучшение плана 176, 179 L потенциальный 166 Потенциал 166 Потенциалов метод 163, 189, 199 Потенциальная система 166 Поток по звену 230 Правило выбора разрешающего элемента 35, 40, 44, 47, 53, 93, 95 — северо-западного угла 169 Призма г-мерная 243 Проблема выбора 139, 140 — узких мест 143 Пропускная способность звена сети 229 разреза 231 Путь сети 229 Разрез сети 231 минимальный 231 Ранг матрицы, вычисление 16 Расстояние от точки до фрагмента 226 Симплекс-метод 32, 33, 35, 46, 47 — двойственный 93, 99, 101 — для отыскания опорного решения системы линейных неравенств 33, 35 оптимального решения основ¬ ной задачи линейного программи¬ рования 47, 49, 52 Стейница теорема 13 Стратегия смешанная 148 — чистая 147 Теорема двойственности 238 вторая 79, 83 основная (первая) 75, 82 — основная теории матричных игр 149 — Стейница 13 Точка, взвешенно наименее удален¬ ная от заданной системы точек на плоскости 313 —, наименее удаленная от заданной системы прямых (в пространстве)
348 АЛФАВИТНЫЙ УКАЗАТЕЛЬ Точка, наименее удаленная от систе¬ мы плоскостей 281, 312 — стационарная 332 Транспортная задача 160, 161, 162 вырожденная 171 , конечность алгорифма 203 , открытая модель 162 по критерию времени, методы решения 205, 209, 210, 212, 214 с нарушенным балансом запа¬ сов и потребностей 162 , условие вырожденности 202 Уклонение 12 Условие потенциальности клетки 166 — Хаара 242 Условия потенциальности системы И у Vj 166 Устойчивость разрешимости системы линейных неравенств 255 Цепь 164 Цикл 165 Чарнес А. 69 Чебышевская точка 281 системы линейных неравенств 255, 256, 257 Чебышевское приближение выпуклое . 283 комплексное 280 на сетке 262 несовместной системы комплекс¬ ных линейных уравнений 281, 302, 303, 308 линейных неравенств 256 отношениями линейных форм 262, 263, 265 — решение системы линейных нера¬ венств 256 Форда алгорифм 219 Функция выпуклая 279 — гладкая 279 Хаара условие 242 Шаг обыкновенного жорданова ис¬ ключения 10 — приближения 288 Штейнера задача 283 Штифель Э. 8, 10 Целочисленное программирование 102 Цена игры 149 Эгервари Э. 162 Элементы Х-выбранные 165