Text
                    Ю. Н, КУЗНЕЦОВ, В. И, КУЗУБОВ, А. Б. ВОЛОЩЕНКО
Математическое
программирование
ИЗДАНИЕ ВТОРОЕ,
ПЕРЕРАБОТАННОЕ И ДОПОЛНЕННОЕ
Допущено Министерством высшего и среднего
специального образования СССР
в качестве учебного пособия
для студентов
экономических специальностей вузов
МОСКВА «ВЫСШАЯ ШКОЛА» 1980


ББК 22.1 К89 УДК 51 Рецензент: д-р физ.-мат, наук, проф. В, Д. Андреев Кузнецов Ю. Н., Кузубов В. И., Волощенко А. Б. К80 Математическое программирование: Учеб. пособие. — 2-е изд., перераб. и доп. — М.: Высш. школа, 1980 — 300 с, ил. В пер.: 70 к. В книге изложен курс математического программирования — линейное, нелинейное и динамическое программирование. Основной теоретический материал иллюстрирован примерами, упражнениями и задачами экономического характера. Во второе издание включены основы параметрического линейного программирования, более подробно освещены градиентные методы решения задач нелинейного Программирования. Предназначается для студентов экономических специальностей вузов, .20204—256 517.8 К001@1)-80 36~80 1702070000 ББК 22{ § Издательство «Высшая школа», 1978 Издательство «Высшая школа», 1980, с изменениями
ПРЕДИСЛОВИЕ В данной книге авторы стремились изложить в доступной форме основные разделы математического программирования, основы - ваясь при этом на ныне действующих программах для студентов экономических специальностей вузов. Однако книга может быть использована не только студентами, но и теми лицами, которые самостоятельно изучают данный курс или сталкиваются в своей производственной деятельности с математическим программированием. Этому способствует значительное количество приведенных в книге примеров и задач, в том числе с экономическим содержанием. В некоторых из них был использован многолетний опыт авторов в разработке и внедрении методов математического программирования в народном хозяйстве. Второе издание (первое вышло в 1976 г.) расширено по сравнению с первым за счет включения основ параметрического линейного программирования. Уточнены некоторые определения и устранены замеченные опечатки, Авторы благодарны за полезные советы рецензенту проф. В. Д. Андрееву, а также всем лицам, приславшим свои пожелания и замечания по первому изданию книги. Авторы
ВВЕДЕНИЕ Развитие современного общества характеризуется повышением технического уровня, усложнением организационной структуры производства, углублением общественного разделения труда, предъявлением высоких требований к методам планирования и хозяйственного руководства. В этих условиях только научный подход к руководству экономической жизнью общества позволит обеспечить высокие темпы развития народного хозяйства. Одним из необходимых условий дальнейшего развития экономической науки является применение точных методов количественного анализа, широкое использование математики. В настоящее время новейшие достижения математики и современной вычислительной техники находят все более широкое применение в экономических исследованиях и планировании. Этому способствует развитие таких разделов математики, как математическое программирование, теория игр, теория массового обслуживания, а также бурное развитие быстродействующей электронно-вычислительной техники. Уже накоплен достаточный опыт постановки и решения экономических задач с помощью математических методов. Особенно успешно развиваются методы оптимального планирования, которые и составляют сущность математического программирования. Одной из основных становится задача создания единой системы оптимального планирования и управления народным хозяйством на базе широкого применения математических методов и электронно-вычислительной техники в экономике. Решение экстремальных экономических задач можно разбить на три этапа: 1) построение экономико-математической модели; 2) нахождение оптимального решения одним из математических методов; 3) практическое внедрение в народное хозяйство. Построение экономико-математической модели состоит, в первую очередь, в создании такой математической модели изучаемого экономического процесса, которая бы отражала его сущность. Иными словами, в такой модели должны учитываться существенные особенности задачи, а также ограничивающие условия, которые могут повлиять на результат. Составными частями математического программирования являются линейное, нелинейное и динамическое программирование. Впервые постановка задачи линейного программирования в виде предложения по составлению оптимального плана перевозок, позволяющего минимизировать суммарный километраж, дана в работе советского экономиста А. Н. Толстого A930 г.). В 1931 г. венгерский математик Б. Эгервари 4
Введение рассмотрел математическую постановку и решил задачу линейного программирования, имеющую название «проблема выбора», метод решения получил название венгерского метода. Систематическое исследование задач линейного программирования и разработка общих методов их решения начаты в работах советского ученого Л. В. Канторовича A939 г.), который предложил общий метод.решения этих задач (метод разрешающих множителей). Он же совместно с М. К. Гавури- ным в 1949 г. разработал метод потенциалов, который применяется при решении транспортных задач. В последующих работах Л. В. Канторовича, В. С. Немчинова, В. В. Новожилова, А. Л. Лурье, А. Бруд- но, А. Г. Аганбегяна, Д. Б. Юдина, Е. Г. Гольштейна и других математиков и экономистов получили дальнейшее развитие как математическая теория линейного и нелинейного программирования, так и приложение ее методов к исследованию различных экономических проблем. Методам линейного программирования посвящено много работ зарубежных и прежде всего американских ученых. В 1941 г. Хичкок поставил транспортную задачу. Основной метод решения задач линейного программирования—симплексный метод—был опубликован в 1949 г. Данцигом. Дальнейшее развитие методы линейного и нелинейного программирования получили в работах Форда, Фалкерсона, Куна, Лемке, Гасса, Чарнеса, Била и др. В настоящее время методы линейного программирования развиваются главным образом в направлении выявления конкретных экономических задач, к решению которых оно может быть применено, а также по пути создания более удобных алгоритмов для решения задач на электронно-вычислительных машинах. Одновременно с развитием линейного программирования большое внимание уделялось задачам нелинейного программирования, в которых либо целевая функция, либо ограничения, либо то и другое нелинейны. В 1951 г. была опубликована работа Куна и Таккера, в которой приведены необходимые и достаточные условия оптимальности для решения нелинейных задач. Эта работа послужила основой для последующих исследований в области нелинейного программирования. Чар- нес и Лемке A954 г.) рассмотрели приближенный метод решения задач с сепарабельными выпуклыми функциями цели и линейными ограничениями. Начиная с 1955 г. опубликовано много работ, посвященных квадратическому программированию (работы Била, Баранкина и Дорфмана, Франка и Вольфа, Марковича, Хилдрета и др.). В работах Денниса, Розена и Зойтендейка разработаны градиентные методы решения задач нелинейного программирования. При исследовании экономических процессов в большинстве случаев имеют место задачи нелинейного программирования, апроксимация их линейными задачами вызвана только тем, что последние хорошо изучены и для них разработаны алгоритмы решения. Даже простейшая транспортная задача принимает нелинейный вид, если стоимость перевозки единицы груза зависит от его общего количества. 5
Введение В настоящей книге рассмотрены приближенные методы решения задач нелинейного программирования с сепарабельными функциями, а также градиентные методы. В ряде задач линейного и нелинейного программирования экономический процесс зависит от времени—от нескольких периодов (этапов). При решении таких задач (они называются многоэтапными) необходимо учитывать поэтапное развитие процесса. Это, например, задача распределения ресурсов между предприятиями по годам планируемого периода. Такие многоэтапные задачи относятся к задачам динамического программирования. Таким образом, динамическое программирование определяется как математическая теория отыскания оптимального решения многоэтапных задач. Динамическое программирование как самостоятельная дисциплина сформировалась в пятидесятых годах нашего века. Большой вклад в ее развитие внес американский математик Р. Беллман. Дальнейшее развитие динамическое программирование получило в трудах зарубежных ученых Дрейфуса, Робертса, Ланге, Карра, Хоува и др. В настоящее время оно в основном развивается в направлении приложений к различного рода многоэтапным процессам. Линейное, нелинейное и динамическое программирования относятся к численным методам отыскания оптимального решения различных управляемых процессов. Они являются частью общей математической теории оптимальных управляемых процессов, основой которой послужили результаты, полученные в 1956—1961 гг. коллективом советских математиков, возглавляемым Л. С. Понтрягиным, а также группой американских математиков под руководством Р. Белл- мапа.
Глава I ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ § 1. Общие понятия Линейное программирование — это наука о методах исследования и отыскания наибольших и наименьших значений линейной функции, на неизвестные которой наложены линейные ограничения. Таким образом, задачи линейного программирования относятся к задачам на условный экстремум функции. Казалось бы, что для исследования линейной функции многих переменных на условный экстремум достаточно применить хорошо разработанные методы математического анализа, однако невозможность их использования можно довольно просто проиллюстрировать. Действительно, путь необходимо исследовать на экстремум линей- п ную функцию 2 = щ^^С^x^ при линейных ограничениях ( «11 *1 + Я12 *2+ • • • +ОЩ ХП = Ь19 I #21 Х1 + #22 Х2 ~Н • • • + а2П */г ~ ^2 » \ аШ1 Х\ -\- ат2 %2 ~г • • • т~ атп хп — "т * Так как 1 — линейная функция, то -^ = С/ (/ = 1, 2, ..., п), но все коэффициенты линейной функции не могут быть равны нулю, следовательно, внутри области, образованной системой ограничений, экстремальные точки не существуют. Они могут быть на границе области, но исследовать точки границы невозможно, поскольку частные производные являются константами. Для решения задач линейного программирования потребовалось создание специальных методов. Особенно широкое распространение линейное программирование получило в экономике, так как исследование зависимостей между величинами, встречающимися во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные. 7
Глава I. Линейное программирование Построение математических моделей простейших экономических задач * I Постооение Задача использования сырья. Для изго товления двух видов продукции Ри Р2 используют три вида сырья: 5Х, 52 и 53. Запасы сырья, количество единиц сырья, затрачиваемых на изготовление единицы продукции, а также величина прибыли, получаемая от реализации единицы продукции, приведены в табл. 1.1. Необходимо составить такой план выпуска продукции, чтобы при ее реализации получить максимальную прибыль. Обозначим через хх количество единиц продукции Ръ а через х2 — количество единиц продукции Р2. Тогда, учитывая количество единиц сырья, затрачиваемых на изготовление единицы продукции, а также запасы сырья, получим систему ограничений ( 2хг + 5*2 < 20, I 8хг + 5л:2 < 40, ( Ьхх + 6д:2 < 30, которая показывает, что количество сырья, расходуемое на изготов ление продукции, не может превысить имеющихся запасов. Если продукция Рх не выпускается, то хх = 0; в противном случае хх >0. То же самое получаем и мя продукции Р2. Таким образом, на неизвестные хх их2 должно быть наложено ограничение неотрицательности; хх > 0, х2 > 0. Таблица 1.1 Вид сырья $3 Запас сырья 20 40 30 Количество единиц сырья, идущих на изготовление единицы продукции Рг \ Р2 \ 2 8 5 Прибыль от единицы продукции, руб. 50 5 5 6 40 1 Конечную цель решаемой задачи — получение максимальной прибыли при реализации продукции — выразим как функцию двух переменных Хх и х2. Реализация хх единиц продукции вида Р} и х2 единиц продукции вида Р2 дает соответственно 50 хх и 40 х2 руб. прибыли, суммарная прибыль I = Ъ0хх + 40д:2 (руб.). Условиями не оговорена неделимость единицы продукции, поэтому хх \\х2 (план выпуска продукции) могут быть и дробными числами, следовательно, задача имеет бесконечное множество вариантов планов (значений хх и#2, которые удовлетворяют системе ограничений). Необходимо найти такие неотрицательные значения хх и х2, при которых
§ 1. Общие понятия функция 2 достигает максимума, т. е. найти максимальное значение линейной функции 1 = 50^ + 40*2 при ограничениях ( 2хх + 5*2 < 20, 8*1 + 5аг2 < 40, *1 > 0, х2> 0. I 5*! + 6*2 < 30, Построенная линейная функция называется функцией цели и совместно с системой ограничений образует математическую модель рассматриваемой экономической задачи. Задачу использования сырья можно легко обобщить, если при выпуске п видов продукции используются т видов сырья. Обозначим через 5^ (ь = 1, 2, ..., т) виды сырья; Ьг — запасы сырья *-го вида; Р; (/ = 1, 2, ..., п) —виды продукции; ац — количество единиц /-го сырья, идущего на изготовление единицы /-й продукции; С/ — величину прибыли, получаемой при реализации единицы /-й продукции. Условия задачи запишем в табл. 1.2. Таблица 1.2 1 Виды сырья 5, Запасы сырья Прибыль Количество единиц /-го сырья, идущего 1 на изготовление единицы /-й продукции 1 Рг | Р. «11 «21 а7П1 с, «12 «22 «Ш2 с3 • • • • • • • • • • • • . • . Рп I «1П «2П с„ Пусть х$ — количество единиц /-й продукции, которое необходимо произвести. Тогда математическую модель задачи можно представить в следующем виде. Найти максимальное значение линейной функции 2 ~Сххг 4- + С2х2 + .. + Спхп при ограничениях апх1 + а12х2+...+а1пхп<Ь1} «21 *1 + «22*2+."+«2П*71<&>> *у-> 0 (/= 1 ,2 , . . . , П) , I ^>0(*=»1,2, ...,т). 1«т1л:1 + «т2 *2 + .. . + «т?г хп<Ьт, Задача составления рациона. При откорме каждое животное ежедневно должно получить не менее 9 ед. питательного вещества 5Х, не менее 8 ед. вещества 52 и не менее 12 ед. вещества 53. Для составления рациона используют два вида корма. Содержание количества единиц питательных веществ в 1 кг каждого вида корма и стоимость 1 кг корма приведены в табл. 1.3. 9
Глава I. Линейное программирование Таблица 1.3 Питательные вещества 5, 52 | 53 Стоимость 1 кг корма, коп. Количество единиц, питательных 1 веществ в I кг корма 1 корм I 1 корм II 1 3 ! 1 1 4 1 6 6 Необходимо составить дневной рацион нужной питательности, причем затраты на него должны быть минимальными. Для составления математической модели обозначим через хг и х2 соответственно количество килограммов корма I и II в дневном рационе. Принимая во внимание значения, приведенные в табл. 1.3, и условие, что дневной рацион удовлетворяет требуемой питательности только в случае, если количество единиц питательных веществ не меньше предусмотренного, получаем систему ограничений ОХ± "X" %2 -^ **» Ч + 2л:2 > 8, *1 + 6% > 12. Если корм I не используется в рационе, то хг = 0; в противном случае хг > 0. Аналогично имеем х2 > 0, т. е. должно выполняться условие неотрицательности переменных: хг ^ 0, х2 ^ 0. Цель данной задачи—добиться минимальных затрат на дневной рацион, поэтому общую стоимость рациона можно выразить в виде линейной функции 2 = 4хх + 6х2 (коп.). Задача является многовариантной, х± и х2 могут принимать бесконечное множество значений. Из этого множества следует выбрать такие хг и х2у при которых функция 2 принимает минимальное значение. Таким образом, необходимо найти минимальное значение линейной функции 2 = 4хг + 6 х2 при ограничениях ОХ\ *Т" *2 ^ "» хг + 2л:2 > 8, хг > 0, х2 > 0. х1 + 6а:2 ^ 12, Задачу составления рациона можно обобщить, если предусмотреть в рационе т видов питательных веществ в количестве не менее Ьь {ь = 1, 2, ..., т) ед. и использовать п видов кормов. Для составления математической модели задачи обозначим через а и (ь == 1, 2, ..., т\ \ = 1, 2, ..., п) количество единиц /-го питательного вещества, содержащегося в единице /-го корма; С7- — стоимость единицы /-го корма; X] — количество единиц /-го корма в дневном рационе. 10
§ 1. Общие понятия Необходимо найти минимальное значение линейной функции 2 = Сххх + С2х2 + ... + Спхп при ограничениях #11 Х1 + #12 Х2 + • ' • + #171 ХП > &1 > #21*1 + #22*2+'«- + #271-%>^2» ^ >0 (у = 1 ,2, ...,/1), ^>0(* = 1,2, ...,/и). #т1 *1 ~г #тг *2 + • • • "Т атп хп ^ &т» Рассматривая приведенные задачи и их математические модели, нетрудно заметить, что если потребовать, чтобы в процессе производства какое-то сырье использовалось полностью или в дневном рационе должно содержаться точное количество единиц какого-нибудь питательного вещества, то ограничение для этого сырья (питательного вещества) можно выразить в виде уравнения. Таким образом, системы ограничений в зависимости от условий задачи могут содержать не только линейные неравенства, но и линейные уравнения. При решении систем линейных неравенств с п неизвестными приходится сталкиваться с большими трудностями, поэтому от неравенств переходят к равенствам и решают систему линейных уравнений. Этот метод широко применяют при решении задач линейного программирования. Замена Рассмотрим линейное неравенство с п неравенств неизвестными уравнениями A.1) аххх + а2х2 + ... + апхп < Ь. Для приведения неравенства A,1) к равенству необходимо к его левой части прибавить некоторую неотрицательную величину A.2) *п+1>0. В результате получаем линейное уравнение, содержащее п + 1 неизвестных (переменных): A.3) а1х1 + а2х2+...+апхп + хп.н = Ь. Неотрицательная переменная величина хп+1 ^ 0, с помощью которой неравенство преобразуется в уравнение, называется дополнительной переменной. Теорема 1.1. Каждому решению X = (р1э р2, ..., рп) неравенства A.1) соответствует единственное решение У = (|3Ь E2> •••> Рп» Рл+О уравнения A.3) и неравенства A.2), и, наоборот, каждому решению У уравнения A.3) и неравенства A.2) соответствует единственное решение X неравенства A.1). Доказательство. Пусть X — решение неравенства A.1); тогда а А + #2Р2 + ... + апК < ьщ 11
Глава I. Линейное программирование Перенося левую часть этого неравенства в правую и обозначая выражение в правой части через $п+ъ т- е. 0</>—(#1р1+#2Р2+... + #тгРп)=1р71+1, получаем, что решение V = фъ C2, ..., рп, Eп+1) удовлетворяет уравнению A.3) и неравенству A.2). Действительно, рп+1>0и «1р1+«2р2+ •••+#7гр71 + р71+1:==#1р1 + #2р2+---+#7г Рп + Пусть У удовлетворяет уравнению A.3) и неравенству A.2), т. е. #1р1 + #2р2+---+#71р71 + р71+1=3& И Рп+1>0. Тогда, отбрасывая в левой части равенства неотрицательную величину рп+1, получаем неравенство «А + «2Р2 + ••• + #7гРт1 < Ь. Отсюда следует, что X — решение неравенства A.1). Таким образом, если система ограничений задачи линейного программирования содержит неравенства, то, вводя в каждое из них свою неотрицательную дополнительную переменную, ее можно преобразовать в систему уравнений. При этом в линейную функцию каждая дополнительная переменная входит с коэффициентом, равным нулю. Используя доказанную теорему, перейдем от системы неравенств к системам уравнений в математических моделях рассмотренных задач. Задача использования сырья. Найти максимальное значение линейной функции 2 = Сгхг + С2х2 + ...+ Спхп + 0 • хп+г+...+0Х, X хп+т ПРИ ограничениях (аих1 + а12х2+... + а1пхп + хп+1 *=Ьи 1#21 *1+#22 Х2~\~ •••+#271 хп ~\~ ХП+2 =^2» [ат1 *1 + #т2*2 + . ..+атп Хп -\~хп+т—Ьт1 */>0 (/ = 1,2, ...,/г,я+1, ...,/г + т), где хп+( (I = 1, 2, ..., т) — дополнительные переменные, соответствующие им коэффициенты в линейной функции Сп+% = 0. Задача составления рациона. Левая часть неравенств, входящих в систему ограничений этой задачи, больше или равна правой, поэтому для перехода от неравенств к равенствам необходимо из левых частей вычесть неотрицательные дополнительные переменные. Найти минимальное значение линейной функции Ъ а= Сххх + + С2х2 + ... + Спхп + 0 • хп+1 + ...+ 0 • хп+т при ограничениях 1ап хг + а12 х2+ ...+% *71--*п+1 =&1, I #21 Х1 4" #22 Х2 ~Ь ' • * "I" #271 ХП — ХП + 2 с= ^2» \ат\ Х\ ~\~ #7712 Х2 ~\~ • • • + #77171 ХП #71+771 ==: #771 » #7>0 (/ = 1,2, ...,/г, я + 1, •••|Л + /и)« 12
§ 1. Общие понятия Следует заметить, что правые части неравенств и уравнений любой системы ограничений можно считать неотрицательными, т. е. Ъг ^ ^ 0 (ь = 1, 2, ..., т). Если для какого-нибудь й-го неравенства или уравнения Ьк < 0, то это неравенство или уравнение умножают на —1, причем знак неравенства меняют на противоположный. Таким образом, систему ограничений любой задачи линейного программирования можно привести к системе т линейных уравнений с п неизвестными; значения переменных х^ (/ = 1, 2, ..., «), при которых линейная функция достигает минимального или максимального значения, надо искать среди множества решений этой системы. Решение произвольных систем линейных уравнений, а также методы решения задач линейного программирования основываются на понятиях д-мерного векторного пространства. Вопросы для самопроверки 1. Дайте определение линейного программирования. 2. Что называется математической моделью экономической задачи и как она строится? 3. Какие виды ограничений могут содержаться в задаче линейного программирования? Как перейти от неравенств к уравнениям? Доказать эквивалентность такой замены. Какие переменные называются дополнительными и какой коэффициент соответствует им в линейной функции задачи линейного программирования? Упражнения Построить математические модели следующих задач и в полученных системах ограничений от неравенств перейти к уравнениям. 1- Для изготовления трех видов изделий Ръ Р2 и Р3 используют четыре вида материалов: 5Ь $2, $з и 54. Запасы материалов, технологические нормы расхода материалов на каждое изделие и цена единицы изделия приведены в табл. 1.4. Составить план выпуска изделий, обеспечивающий их максимальный выпуск по стоимости. Таблица 1:4 Вид материала 5> 54 Запас материала, кг 150 000 170 000 100 000 200 000 Цена одного изделия, руб Норма расхода материалов на одно изделие, кг Рг 4 6 0 8 100 Рг | Р> 2 0 2 7 150 1 2 4 0 200 13
Глава I. Линейное программирование Таблица 1.5 Наименование питательного вещества Кормовые единицы, кг Перевариваемый протеин, г Каротин, мг Цена 1 кг корма, коп. [ Количество единиц питательных веществ, содержащихся в 1 кг корма ячмень 1,2 80 5 3 бобы М 280 5 4 I сенная мука 0,8 240 100 5 2. Чтобы при откорме животных весом 30—40 кг получить средний привес 300— 400 г, по нормам в дневном рационе должны содержаться питательные вещества в следующем количестве: кормовых единиц — не менее 1,6 кг; перевариваемого протеина — не менее 200 г., каротина — не менее 10 мг. При откорме используют ячмень, бобы и сенную муку. Содержание питательных веществ в 1 кг этих кормов и стоимости 1 кг корма приведены в табл. 1.5 Составить дневной рацион, удовлетворяющий данной питательности при минимальной стоимости. § 2. Линейные векторные пространства I I Понятие Из курса аналитической геометрии извест- я-мерного но, что всякий вектор А, расположенный | пространства на числовой оси, определяется координатой А = (х), т. е. одним действительным числом. Прямая — одномерное векторное пространство. Всякий вектор А, расположенный на плоскости с заданной системой координат, определяется двумя координатами или компонентами: А = (г, у), т. е. упорядоченной системой из двух действительных чисел. Плоскость является двумерным векторным пространством. Всякий вектор А трехмерного векторного пространства определяется тремя координатами или компонентами: А = (х; у; г), т. е. упорядоченной системой из трех действительных чисел. В экономике, физике, геометрии приходится изучать объекты, для задания которых недостаточно трех действителных чисел. Пусть, например, некоторый промышленный район производит станки, хлопчатобумажные ткани, автомобили, телевизоры, шерстяные изделия и т. д. Для характеристики производства района, очевидно, потребуется упорядоченная система из п действительных чисел. Таким образом, целесообразно рассмотреть совокупности всевозможных упорядоченных систем из п действительных чисел. Определение 1. Совокупность всевозможных упорядоченных систем из п действительных чисел после введения в нее операций сложения и умножения на действительное число называется п-мерным векторным пространством. 14
§ 2. Линейные векторные пространства Определение 2. Упорядоченная система из п действительных чисел аъ а2, ..., ап называется п-мерным вектором и обозначается так: А = (ах; а2\ ...; ап). Числа #/ (/ = 1, 2, .., п) называются компонентами вектора А. Векторы условимся обозначать большими буквами латинского алфавита, а числа—малыми. Коэффициенты всякого линейного уравнения с п неизвестными образуют я-мерный вектор; всякое решение системы линейных уравнений с п неизвестными—п-мерный вектор; в матрице из т строк и п столбцов строки являются п-мерными векторами, столбцы — т-мерными векторами и т. д. Вектор А = (аъ а2, ,.., ап) и вектор В = (Ь19 Ъ2> ...» Ьп) равны в том случае, если совпадают их компоненты, стоящие на одинаковых местах, т. е. если а/ = Ь/ при / = 1,2, ..., п. Суммой векторов А и В называется вектор А + В = (ах + Ьъ а2 + Ь2, ..., ап + Ьп)9 компонентами которого являются суммы соответствующих компонент слагаемых векторов. Роль нуля играет нулевой вектор о = (о, о, ..., 0). Противоположным вектору А называется вектор — А = (— аь —а2, ...# — ап)у очевидно, что А + (—А) = 0. Для сложения векторов существует обратная операция — вычитание. Разностью двух векторов А и В является вектор А - В = А + (- В) или А — В = (ах — Ьи а2~Ь2, ..., ап — Ьп). Сложение я-мерных векторов возникло из геометрического сложения векторов на плоскости или в трехмерном пространстве, производимого по правилу параллелограмма. Произведением вектора А на число к называется вектор к А = {каъ ка2, .., &ап), компоненты которого равны соответствующим компонентам вектора А, умноженным на число к. Из этого определения вытекают важные свойства: к (А ± В) = кк ± №, (к ±1) к = кк± /А, кA) А = (Ы) А, ЬА = А, следствиями которых являются следующие свойства: 0-А = 0; (—1) А = — А; к-0 = 0. Если кк = 0, то или к = 0, или А = 0. 15
Глава I. Линейное программирование Умножение вектора А на действительное число к означает растяжение вектора в | к | раз при | к | > 1 и сжатие вектора в | к \ раз при \к\ < 1. При этом если к < 0, то направление вектора к А противоположно направлению вектора А. По аналогии с трехмерным векторным пространством для п-мерного векторного пространства вводится понятие скалярного произведения двух векторов этого пространства. Скалярным произведением двух векторов А и В называется действительное число, равное сумме произведений соответствующих компонент этих векторов: АВ = а1Ь1 + а2Ь2 + ... + апЬп. Длиной вектора А или его модулем называется действительное неотрицательное число, равное корню квадратному из суммы квадратов его компонент: \А\=Уа*+а1+...+а*. Рассмотрим линейное уравнение, содержащее п неизвестных: а&х + а2*2 + ••• + ап *п = Ь Левая часть этого уравнения — линейная функция от п неизвестных: I = агхг + а2х2 + ... + апхп ц может быть представлена в виде скалярного произведения векторов: 1 = АХ, где А = (аи а2У ..., ап)у X = (х19 х2, ..., хп). Линейная функция от неизвестных хъ х2>..., хп вполне определяется вектором А из своих коэффициентов, и, наоборот, всякий я-мерный вектор однозначно определяет некоторую линейную функцию. Исходя из этого, сложение и умножение вектора на число превращаются в соответствующие операции над линейными функциями, которые широко используются при решении задач линейного программирования. Линейная Вектор В п-мерного векторного простран- зависимость ства называется пропорциональным векто- векторов ру А, если существует такое число к, при котором выполняется соотношение В = кА. В частности, нулевой вектор пропорционален любому вектору А, так как 0 = 0 • А. Обобщением понятия пропорциональности векторов является понятие линейной комбинации векторов. Вектор В называется линейной комбинацией векторов Аъ А2, ..., Ап, если существуют такие числа къ к2, ..., кп, при которых выполняется соотношение В = кгкч + к2\2 + ...+ ЬпАп> т. е. /-я компонента вектора В при / = 1, 2, ..., п равна, в соответствии с определениями суммы векторов и произведения вектора на число, сумме произведений /-х компонент векторов Аь А2, ..., Ап соответственно на числа къ /е2, ..., кп. 1в
§ 2. Линейные векторные пространства При изучении систем векторов важную роль играет понятие лиейной зависимости векторов. Определение 1. Система векторов A.4) Аь А2, ..., Аг(г>2) называется линейно зависимой, если хотя бы один из векторов системы является линейной комбинацией остальных, и линейно независимой — в противном случае. Например, система векторов В = (8; 5; 11), Ах = A; 2; 3), А2 = = C; 2; 1), А3 = C; 1; 2) линейно зависима, так как вектор В—линейная комбинация векторов А1э А2 и А3, поскольку для него выполняется соотношение В = 2АХ — А2 + ЗА3. Определение 2. Система векторов A.4) является линейно зависимой, если существуют такие числа къ к2, ..., кг> не все равные нулю, при которых имеет место равенство A.5) /г^ + МгЧ- • - • +&ГАГ = 0. Если соотношение A.5) возможно лишь в случае, когда все к] = 0 (/ = 1, 2, ..., г), то система векторов называется линейно независимой. Например, система векторов Аг = B; 4; 3), А2 = B; 3; 1), А3 = E; 3; 2), А4 = A; 7; 3) линейно зависима, так как векторы связаны соотношением Ах + 2А2 — А3 — А4 = 0, в котором все коэффициенты отличны от нуля. Из рассмотренных примеров следует эквивалентность обоих определений. Действительно, для того чтобы в последнем примере от второго определения линейной зависимости векторов перейти к первому, достаточно данное соотношение разрешить относительно любого вектора: А4 = Ах + 2А2 — А3. Теорема 1.2. Если некоторая подсистема Ах, А2, ..., А8 E < г) системы векторов A.4) линейно зависима, то и вся система A.4) линейно зависима. Доказательство. Пусть подсистема Аь А2, . .., А8 линейно зависима; тогда для нее выполняется равенство к1Х1 + к2Х2 + ••• + + к8 А8 = 0, где не все коэффициенты равны нулю. Присоединяя к этому равенству остальные г — 5 векторов с нулевыми коэффициентами, получаем Л1А1 + Л8А1 + ... + ЛвАв+0.Ав+1+--.+0-Аг=0, т. е. система A.4) линейно зависима. Из теоремы следует, что вообще всякая система векторов, содержащая два равных, два пропорциональных вектора или нулевой вектор, является линейно зависимой. Это свойство можно сформулировать по- другому: если система векторов A.4) линейно независима, то и всякая ее подсистема также линейно независима. Теорема 1.3. Пусть дана линейно независимая система векторов Ах, А2, ..., ,АП. Преобразуем эту систему, прибавляя к одному из ее векторов некоторое кратное другого вектора этой оюе системы. Тогда новая система векторов также линейно независима. 17
Глава I. Линейное программирование Доказательство. Умножим один из векторов системы, например Ах, на число кфО и прибавим полученное произведение к вектору Ап; тогда получим новый вектор А« = Ап + кАг. Докажем, что система векторов Аъ А2, ..., Ап_ъ А'п линейно независима. Предположим, что она линейно зависима; тогда для нее справедливо соотношение /1А1+/аАя+... + /п_1Ап-1+/пА,;=0, где не все / равны нулю. Заменяя в этом соотношении вектор Агп его значением Ап + кАъ получим /1А1 + /2А2+..,+/7г-1Ал_1 + /7гА71 + /7г^А1 = 0, или A1+1пЬ)А1 + ЬА%+... + 1п-1Ап-1 + 1пАп=*0. Система векторов А1у А2, ..., Ап по условию линейно независима, поэтому 1г + 1пк = 0, /2 = 0, ..., 1п_г = 0, 1п = 0, откуда 1г = /2 =* = ...= 1п = 0, т. е. преобразованная система векторов также линейно независима. Система векторов остается линейно независимой и в том случае, когда преобразования рассмотренного вида выполняются несколько раз. Рассматривая линейно зависимую систему векторов Аг, А2,..., Ап, возьмем такую линейно независимую подсистему векторов А1? А2, ..., АГ (г <; п), к которой нельзя присоединить ни одного вектора системы, не нарушив линейной независимости. Такая подсистема называется максимальной линейно независимой подсистемой данной системы векторов. Число векторов, входящих в любую максимальную линейно независимую подсистему векторов, называется рангом системы. Пусть дана система векторов А1 = (яп, я12, .... а1п), A.6) А2 = (а21, а22, ...,а2л), Ат — (#т1 > ат2» • • • > атпп)> Необходимо определить, является она линейно зависимой или нет; если система линейно зависима, то найти, какое число векторов составляет максимальную линейно независимую подсистему. Составим из компонент векторов системы матрицу /#11 #12 ••• а1в\ \ат1 атп2 • • • апгп/ так, чтобы строки матрицы соответствовали векторам Аъ А2, ..., Ат, Тогда поставленную задачу можно решить с помощью следующей теоремы. 18
§ 2. Линейные векторные пространства Теорема 1.4. Максимальное число линейно независимых векторов системы A.6) равно рангу матрицы А, составленной из компонент векторов этой системы. Доказательство. Пусть ранг матрицы #11, #12 • • • #21 #22 • • • . . . ог ап аг2 #1Г #2Г • • -#7Т V.. а^ ... а1п ... а.ч] ... а2п • ••••*• . •. #Гу- ... агп #г1 #*2 \ #т1 #Ш2 • * • атг • • • ат] • • • атп I равен г. Докажем, что максимальное число линейно независимых строк матрицы А, следовательно, и векторов системы равно г. Без нарушения общности предположим, что отличный от нуля минор Ог порядка г расположен в левом верхнем углу. Так как минор ЭТ Ф О, то первые г строк линейно независимы: если бы между ними существовала линейная зависимость, то, так как при сложении векторов складываются соответствующие компоненты, между строками минора также существовала бы линейная зависимость, следовательно, минор Ог был бы равен нулю. Докажем, что все остальные строки—линейные комбинации первых г строк. Действительно, рассмотрим в матрице А любой минор (г -|- 1)-го порядка, окаймляющий минор Ьг: Ог+1 = #11 #12 #21 #22 #1г #1; #2Г #2у игг \лГ] г<Кт, 1 </</*. I #Ц #г2 ••• #гг #гт* ! Этот минор равен нулю в соответствии с выбором числа л Разложим его по элементам /-го столбца: #17 ^17 + ^27 Л2;+ . ..+#Г7" Л^ + йТ ^/ = 0. Так как ЭТ Ф О, то, решая это соотношение относительно а^9 имеем Полагая аи- ЛГ] От л2] А- аг;. А^ЮТ = к2, ..., АТ;ЮТ = кг, запишем а^ = кх а1} + к2 а2у-+ ... +кг а^. Придавая / значения 1, 2, ..., п, из последнего соотношения получим #*1 = Мп + ^2#21 + — + МтЬ *=Г + 1, Г+2,..,т. #*71 = ^1 #171 + ^2 #2П+ • • • +^Г #ГП. 19
Глава I. Линейное программирование Последнее свидетельствует о том, что /-я строка матрицы А является линейной комбинацией первых г строк, где г — ранг матрицы. Очевидно, доказательство теоремы не изменится, если матрицу А составить таким образом, чтобы ее столбцы соответствовали векторам Аь А2, ..., \т. Тогда максимальное число линейно независимых столбцов матрицы равно г. Из доказанной теоремы следует, что максимальное число линейно независимых строк матрицы равно максимальному числу линейно независимых столбцов матрицы и равно рангу этой матрицы. Теорема указывает на один из возможных способов определения линейной зависимости векторов и отыскания максимальной линейно независимой подсистемы данной системы векторов. Пример. Определить, является ли система векторов Ах = E; 4; 3; 2), А2 = = C; 3; 2; 2), А3 = (8; 1; 3; — 4) линейно зависимой; если она линейно зависима, то найти ее максимальную линейно независимую подсистему. Решение. Составим матрицу из компонент векторов и найдем ее ранг. Имеем Минор второго порядка 5 4 3 3 = 3=^=0. Два минора третьего порядка, которые его окаймляют, = 118—118 = 0, = 2E9—59) = 0. Ранг матрицы равен 2, поэтому система векторов является линейно зависимой. В матрицах, составленных из компонент любых двух векторов данной системы, содержатся миноры второго порядка, отличные от нуля, например, = 3^0, = -21^0, = —27=^=0, поэтому максимальная линейно независимая подсистема состоит из двух любых векторов, а третий вектор—их линейная комбинация. Основываясь на доказательстве теоремы. 1.4, можно доказать как следствие следующую теорему. Теорема 1.5. Любая совокупность п + 1 векторов п-мерного векторного пространства линейно зависима. Действительно, составляя из компонент этих векторов матрицу таким образом, чтобы каждому вектору соответствовала в матрице строка, получим матрицу порядка (п+ 1) X п. Ранг такой матрицы не может быть равен п + 1, поэтому совокупность п-\- 1 векторов линейно зависима.
§ 2. Линейные векторные пространства Базис л-мерного Определение. Базисом п-мерн^го векторного векторного пространства называется лю- пространства бая совокупность п линейно независимых векторов этого же пространства. Таким образом, в двумерном пространстве за базис могут быть взяты любых два неколлинеарных вектора, в трехмерном пространстве— три некомпланарных вектора, в пространстве измерений п > 3 — система из п линейно независимых векторов. Теорема 1.6. Любой вектор п-мерного векторного пространства можно представить как линейную комбинацию векторов базиса, притом единственным образом. Доказательство. 1. Пусть система векторов Ех, Еа, ..., Е^ образует базис п-мерного векторного пространства. Возьмем произвольный вектор А этого же пространства и присоединим его к векторам базиса. Система векторов А, Еь Е2, ..., Еп состоит из /г+ 1 векторов, поэтому на основании теоремы 1.5 она является линейно зависимой и для нее выполняется соотношение A.7) к0\ + к& + к2Е2+ ...+ кпЕп = О, где не все к] (/ = 0, 1, 2, ..., /г) равны нулю. Число к0 заведомо не равно нулю, так как в противном случае векторы Ех, Е2, ..., Еп были бы линейно зависимыми и не являлись базисом. Решая A.7) относительно вектора А, находим /г0 «о «о полагая —к±/к0 =аъ —к2/к0 = а2, ..., —кп/к0 =ап> получаем, что A.8) А = а1Е1 + а2Ъг + ... + апЕп, т. е. является линейной комбинацией векторов базиса. Числа а1у а2, ..., ап называются коэффициентами разложения вектора А по векторам базиса или координатами вектора А в базисе Ь*1, Ь2, ..., €.п. 2. Докажем единственность разложения. Предположим, что кроме разложения A.8) существует другое разложение вектора А по векторам того же базиса Ег, Е2, ...» Е7г: A-9) А = а[Ег + а'2Е2 + ... + а'пЕп. Вычитая A.9) из A.8), получаем (а,—а^)Е! + (а2—а^)Е2+... + (ап—^)ЕП = 0. Так как векторы Еъ Е2, ..., Е^ — базис, то ах — а[ = 0, а2 — а'ъ =* = 0, ..., ап — а'п = 0, откуда а[ = ах, а2 = а2,..., ап « ап, т. е. разложение A.8) — единственное. 21
Глава I. Линейное программирование Система Рассмотрим в трехмерном векторном про- единичных векторов странстве прямоугольную систему коор- л-мерного динат Охуг и три единичных вектора векторного Еь Е2, Е3. Расположим векторы соответ- пространства ственно на осях координат так, чтобы их направление совпадало с положительным направлением осей; тогда их можно записать в следующем виде: ( Е1= A; 0; 0), A.10) ] Е2= @; 1; 0), ( Е3 = @; 0; 1). Эти векторы образуют систему единичных векторов трехмерного векторного пространства. По аналогии с трехмерным векторным пространством, введем понятие системы единичных векторов п-мерного векторного пространства. Действительно, если положить, что /-я компонента вектора Ез равна единице, а остальные равны нулю, то при / = 1, 2,..., п получим систему AЛ1) [ Ех = A; 0; ...; 0), Е2 = @; 1; ...; 0), Ел = @; 0; ...; 1), которая называется системой единичных векторов п-мерного векторного пространства. В частности, при п = 3 имеем систему A.10). Докажем, что система единичных векторов линейно независима. Составим соотношение НА + к2Е2 + ... + кпЕп = 0 . Подставляя вместо Еь Е2, ..., Еп их выражения, умноженные соответственно на &>, и складывая, получим №ь *2, .... кп) - @; 0; ...; 0), откуда кг == 0, к2 = 0, ..., кп = 0. Таким образом, система векторов A.11) линейно независима. С другой стороны, всякий п-мерный вектор А = (аъ а2, ...,ял) представляет собой линейную комбинацию векторов этой системы: А = в1Е! + а2Е2 + ... + апЕп = (аъ а2у ..., ап). Таким образом, система единичных векторов A.11) образует один из базисов п-мерного векторного пространства; компоненты же любого п-мерного вектора можно считать координатами этого вектора в единичном базисе. Например, вектор А = C; —2; 4; —5) можно записать как линейную комбинацию единичных векторов Ех = A; 0; 0; 0); Е2 = @; 1;0;0);Е3 = @; 0; 1; 0); Е4 =@; 0; 0; 1) с коэффициентами, которые равны компонентам вектора А: А = ЗЕл — 2Е2 + 4Е3 - 5Е4 = C; - 2; 4; — 5). 22
§ 2. Линейные векторные рространства Вычислим ранг матрицы, используя теоремы 1.3. Назовем элементарными следующие преобразования матрицы: перемену мест двух строк или столбцов; умножение строки или столбца па произвольное, отличное от нуля число; прибавление (вычитание) к одной строке (столбцу) кратного другой строки (столбца). Эти преобразования не меняют ранг матрицы. Матрицы, получаемые в процессе преобразования, эквивалентны исходной. В результате элементарных преобразований векторы- строки (столбцы) матрицы можно преобразовать в единичные или в нулевые векторы. Число единичных векторов в преобразованной матрице определяет ее ранг. Пример. С помощью элементарных преобразований определить, является ли линейно зависимой система векторов Ах = C; 2; 4; 3), А2 = B; 3; 5; 4) А3 - E; 5; 9; 7). Решение. Составим матрицу из компонент векторов: /3 2 4 3\ А=B 3 5 4 \ 5 5 9 7/ Умножим вторую и третью строки на 3 и вычтем из них первую, умноженную, соответственно на 2 и 5; в результате получим матрицу /3 2 4 3\ 0 5 7 6 \0 5 7 6/ Умножая первую строку на 5 и вычитая из нее удвоенную вторую, а из третьей вычитая вторую строку, переходим к матрице /15 0 б 3\ ( 0 5 7 б]. \ 0 0 0 0/ Умножая третий и четвертый столбцы на 15 и вычитая из них первый столбец, умноженный соответственно на 6 и 3, имеем матрицу /15 0 0 0 \ [ 0 5 105 90 I . \ 0 0 0 0 / Умножая второй столбец на 21 и 18 и вычитая соответственно из третьего и четвертого столбцов, получаем матрицу /15 0 0 0\ ( 0 5 0 01. V 0 0 0 0/ Умножая первый столбец на 1/15, а второй на 1/5, окончательно получаем матрицу которая содержит два единичных вектора. Таким образом, ранг матрицы равен 2. Данная система векторов является линейно зависимой, причем максимально независимую подсистему в ней составляют два вектора,
Глава I. Линейное программирование A.12) Решение системы Рассмотрим систему из т линейных урав- линейных уравнений нений с п неизвестными; методом Жордана — Гаусса апх1 +аих2 + ... + а1пхп =Ьи #21*1 + #22*2 ~Ь • • • +а2П ХП — ^2» [ат1 Х\ + Ягаг х- + • • *~\-атп хп Обозначим через А = (а^) матрицу системы, через X = (*/) — матрицу-столбец, состоящую из неизвестных, через А0 = фг) — матрицу-столбец, состоящую из свободных членов; тогда систему A.12) можно записать в виде матричного уравнения A 13) АХ = А0. При т = п матрица А является квадратной; если ее определитель |А| Ф О, то А-1 — обратная ей матрица. Умножая матричное уравнение A.13) слева на обратную матрицу, получаем ЕХ = А ^Ао, где Е — единичная матрица, а произведение матрицы А_1А0 — решение системы. Нахождение обратной матрицы через алгебраические дополнения — трудоемкий вычислительный процесс, поэтому при решении системы линейных уравнений воспользуемся численным методом, который позволяет с помощью элементарных преобразований за конечное число шагов найти решение (если оно существует) и при необходимости получить обратную матрицу. Этот метод называется методом полного исключения неизвестных или методом Жордана — Гаусса. Суть метода состоит в том, что, рассмотрев первое уравнение, а в нем неизвестное с коэффициентом, отличным от нуля (он в дальнейшем называется разрешающим элементом), и разделив первое уравнение на этот коэффициент, с помощью первого уравнения исключают это неизвестное из всех уравнений, кроме первого. Выбрав во втором уравнении неизвестное с коэффициентом, отличным от нуля, и разделив на него второе уравнение, с помощью второго уравнения исключают другое неизвестное из всех уравнений, кроме второго, и т. д., т. е. с помощью одного уравнения производят полное исключение одного неизвестного. Процесс продолжают до тех пор, пока не будут использованы все уравнения. При этом возможны следующие случаи. 1. В процессе исключений левая часть /-го уравнения системы обращается в нуль, а правая часть равна некоторому числу, отличному от нуля, т. е. имеет место равенство 0 = 6* Ф 0. Это означает, что система не имеет решений, так как г-щ уравнению не могут удовлетворить никакие значения неизвестных. 24
§ 2. Линейные векторные пространства 2. Левая и правая части 1-го уравнения обращаются в нуль. Это означает, что 1-е уравнение является линейной комбинацией остальных, ему удовлетворяет любое найденное решение системы, поэтому оно может быть отброшено. 3. После того, как все уравнения использованы для исключения неизвестных, либо будет получено решение, либо доказано, что система несовместна. Рассмотрим применение метода Жордана — Гаусса на примерах систем линейных уравнений. Пример 1. Решить систему линейных уравнений 12хх + Зл:2 — 4*3 — 1» 2хх + 2*2 — 5*з = 3, 4*х — 2*2 + 2*3 = 1. Решение. Положим, что А^Ы, А2= ( 2) , А3- I -5 1 , А0 тогда систему можно записать в векторном виде: Аа*! + А2*2 + А3*3 == А0. На основании этого соотношения можно заключить, что решение системы уравнений сводится к нахождению коэффициентов разложения хъ х2, хъ вектора А0 по векторам Аь А2, Аз. Для нахождения этих коэффициентов воспользуемся методом полного исключения неизвестных. Шаг 1. В первом уравнении коэффициент при хх отличен от нуля: ап = 2^=0; выбираем его за разрешающий элемент. Разделим первое уравнение на 2. Исключим хх из всех уравнений, кроме первого. Для этого преобразованное первое уравнение умножим на 2 и вычтем из второго, умножим на 4 и вычтем из третьего; в результате получим систему < Х1 + 3/2х2—2*3=1/2, \ """"" *2 """" "^8 == ^» [ —8*2+Ю*з=—1. Если коэффициент при хх в первом уравнении равен нулю, то можно выбрать любое уравнение, в котором коэффициент при хх отличен от нуля, и с помощью этого уравнения исключить хг из всех остальных уравнений. Шаг 2. Во втором уравнении преобразованной системы коэффициент прил:2 отличен от нуля: а'ы = — 1 =^=0; выбираем его за разрешающий элемент. Разделим второе уравнение на —1. Исключим х2 их всех уравнений, кроме второго. Для этого преобразованное второе *5
Глава I. Линейное программирование уравнение умножим на 3/2, вычтем из первого, умножим на 8, сложим с третьим; в результате имеем систему хх —7/2* з==7/2, 18*3= —17. Шаг 3. В последней системе за разрешающий элемент выбираем коэффициент при х3, так как а33 = 18=^=0. Разделим на него третье уравнение. Исключим х3 из всех уравнений, кроме третьего. Для этого преобразованное третье уравнение вычтем из второго, умножим на 7/2 и сложим с первым; окончательно получим решение системы: хх = 7/36, х2 = — 19/18, х3 = — 17/18. Таким образом, в результате преобразований по методу Жордана — Гаусса, с одной стороны, матрица первоначальной системы преобразуется в единичную матрицу, что соответствует умножению исходной системы на обратную матрицу, если первоначальная матрица системы квадратная и невырожденная. С другой стороны, векторы къ А2, А3 преобразуются в единичные, а компоненты вактора А0 — в коэффициенты разложения вектора А0 по векторам Ах, А2, А3. Учитывая значения найденных коэффициентов хъ х2, х3, получаем разложение 7/36А! — 19/18А2 — 17/18А3 = А0. Для рассмотренной системы коэффициенты разложения хъ х2У х3 имеют единственное значение, так как векторы Аь А2, А3 линейно не-, зависимы и представляют собой базис в трехмерном векторном пространстве. Для удобства вычислений преобразования над коэффициентами и свободными членами по методу Жордана — Гаусса проводят в специальных таблицах. Чтобы получить матрицу А, к матрице А приписывают единичную матрицу Е такой же размерности, над которой одновременно с матрицей А производят все преобразования по методу полного исклю* чения. Тогда матрица А преобразуется в единичную, а матрица Е — в обратную матрицу А. Пример 2. Решить систему уравнений Г5*1+2*2 + 3*3+3*4 = 1, 12*х — 2х2 + 5л:3 + 2*4 = 4, (з*! + 4*2 + 2*з+2*4 = — 2 или найти коэффициенты разложения вектора А0 по векторам Ац А2, Аз, А4: A.14) Ах*1 + А2*2 + А3*з + А4*4 = А0- Решение. Запишем коэффициенты при неизвестных и свободные члены в табл. 1.6, к элементам которой и применим метод полных исключений. В прямоугольники заключены разрешающие элементы №
§ 2. Линейные векторные пространства Таблица 1.6 А1 ПИ 2 3 1 0 0 1 0 0 1 0 1 0 А2 2 -2 4 2/5 1-14/5) 14/5 0 1 0 0 1 0 А3 3 5 2 3/5 19/5 1/5 8/7 —19/14 Ш 0 0 1 А4 3 2 2 3/5 4/5 1/5 5/7 -2/7 1 3/7 3/56 1/4 Ао 1 4 —2 1/5 18/5 -13/5. 5/7 —9/7 1 3/7 —53/56 1/4 1 и 4 ^~*' 1-й шаг A-я итерация) 2-й шаг B-я итерация) 3-й шаг C-я итерация) уравнений, с помощью которых производим полные исключения неизвестных. Окончательно система принимает вид (хх +3/7 л:4 = 3/7, | х2 +3/56x4=—53/56, I ^+1/4^=1/4, откуда находим общее решение: хг = 3/7—3/7лг4, х2 = — 53/56— —3/56 *4, х3 = 1/4—1/4 *4- Векторы Аь А2, А3 линейно независимые и составляют базис в трехмерном пространстве; соответствующие им неизвестные хъ х2, хъ называются базисными, а *4, соответствующее вектору А4 — свободным (ему можно придавать произвольные значения). Минор, состоящий из коэффициентов при базисных неизвестных в линейно независимых уравнениях, называется базисным минором. Если в общем решении системы свободные неизвестные приравнять нулю, то такое решение называется базисным. Таким образом, базисное решение рассматриваемой системы таково: хх = 3/7, х2 = = — 53/56, х3 = 1/4, #4 = 0. Для базисного решения получаем разложение вектора А0 по векторам базиса Ах, А2, А3: 3/7Ах - 53/56А2 + 1/4А3 = А0. Базисное решение, содержащее точно т отличных от нуля неизвестных, где т — количество линейно независимых уравнений системы, называется невырожденным. Если хотя бы одно из базисных неизвест- 27
Глава I. Линейное программирование ных равно нулю, то базисное решение называется вырожденным. Действительно, если в примере 2 на последнем шаге в табл. 1.6 исключить не хЗУ а л:4 с разрешающим элементом 1, то получим результат, приведенный в табл. 1.7. Теперь базис соствляют векторы к19 А2, А4; базисными неизвестными являются хъ х2, лг4, а х3 — свободное неизвестное. Полагая х3 = 0, получаем второе базисное решение: хг = 0У х2 =— 1, х3 =0, х± = 1, которое является вырожденным, так как базисное неизвестное хг = 0. Подставляя базисное решение в разложение A.14), получаем — А2 + А4 = А0. Геометрический смысл вырождения для рассматриваемого примера заключается в том, что вектор А0 лежит в одной плоскости с векторами базиса А2 и А4, не пропорционален ни одному из них, поэтому представляет собой линейную комбинацию только этих векторов. Для пространства любой размерности смысл вырождения состоит в том, что вектор рассматриваемого пространства является линейной комбинацией не всех векторов выбранного базиса, а только некоторых. Исследуем более подробно, чему соответствуют преобразования рассматриваемой в примере 2 системы уравнений Таблица 1.7 А, 1 0 0 1 0 0 А2 0 1 0 0 1 | 0 А, 8/7 — 19/14 4 — 12/7 —3/14 4 А, 5/7 -2/7 ш 0 0 1 А, 5/7 -3/7 1 0 —1 1 1 по методу полного исключения. Обозначим через О квадратную матрицу, составленную из компонент базисных векторов, а через V — матрицу-столбец, состоящую из базисных неизвестных: /б 2 3\ /*д 0= 2 -2 5 , У= х2 ; \3 4 2) \хг) тогда в соответствии с соотношением A.14) систему можно записать в виде ОУ + А4*4 = А0. В результате операций матрица О преобразовалась в единичную матрицу Е, что равносильно умножению ее на обратную матрицу В-1. Отсюда заключаем, что совокупность преобразований, имеющих место 28
§ 2. Линейные векторные пространства в методе полного исключения неизвестных, эквивалентна умножению левой и правой частей исходной системы на О", в результате общее решение принимает вид Если наряду с решением системы линейных уравнений необходимо получить обратную матрицу Э, то к матрице системы дописывают единичную матрицу, порядок которой равен числу уравнений, и затем проводят преобразования по методу полного исключения. Если в результате преобразований для некоторого уравнения получено равенство 0=0, то это уравнение исключают как линейную комбинацию остальных. Вместе с ним отбрасывают соответствующую строку и столбец единичной матрицы. Проиллюстрируем это на примере (см. табл. 1.8). Таблица 1.8 А* Гч 2 3 1 0 0 1 0 0 1 1 о ! о А2 2 -2 4 2/5 1-14/5] 14/5 0 1 0 0 1 0 А 8 3 5 2 3/5 -19/5 1/5 8/7 —19/14 Ш 0 0 1 А, 3 2 2 3/5 4/5 1/5 5/7 —2/7 1 3/7 —1/56 1/4 г;, 1 0 0 1/5 -2/5 —3/5 1/7 1/7 —1 3/7 — 11/56 -1/4 |;2 0 1 0 0 1 0 -1/7 —574 1 -1/7 -1/55 1/4 Е, 0 0 1 0 0 1 0 0 1 —2/7 19/56 1/4 А, 1 4 —2 1/5 18/5 13/5 5/7 -9/7 1 3/7 —53/56 1/4 ! Из последней итерации таблицы находим / 3/7 —1/7 —2/7 \ О-1 = -11/56 —1/56 19/56 . V -1/4 1/4 1/4 ) Если в процессе вычислений не допущена ошибка, то должно выполняться равенство О'1 V = Е. 29
Глава I. Линейное программиравание Разложение Пусть в ^-мерном векторном пространстве векторов по базису, задана система векторов А1? А2, »..< Ад, переход Ап+ь ••» Ап+т. Эта система заведомо линей- от одного базиса но зависима, но в ней возможны линейно к другому независимые подсистемы из п векторов, которые и можно принять за базис /г-мер- ного векторного пространства. Необходимо найти подсистему из п векторов, которые образуют базис, разложить остальные векторы системы по векторам базиса; если подсистем векторов, образующих базис, несколько, то перейти к новому базису и найти коэффициенты разложения остальных векторов в новом базисе. Поставленная задача решается довольно просто, если воспользоваться методом Жордана — Гаусса. Рассмотрим ее решение на конкретном примере. Пусть система состоит из векторов Ах=(—2), Ая = [—1), А3 = [ 2), А4=( 1, А. = (-б), *-и Так как пространство трехмерное, а векторов пять, что система линейно зависима. Выделим подсистему из трех векторов, образующих базис, и разложим остальные векторы по векторам базиса. Запишем векторы в табл. 1.9 и выполним преобразования по методу полного исключения. Векторы Ад, А2, А8 линейно независимы и составляют базис, причем в столбцах А4 и А5 на последнем шаге найдены коэффициенты разложения векторов А4 и А5 по векторам базиса: А4 = — 5/7АЦ + + 5/3 А2 + 13/21А3, А5 = 2АХ + 0 • А8 — А3. Таблица А, 1 1 1 —2 3 1 0 0 1 0 0 1 0 1 о 1.9 А2 2 —1 —2 2 т —8 0 1 0 0 1 0 А3 —1 2 4 —1 0 7 —1 0 Ш 0 0 1 А4 2 1 —3 2 5 —9 -4/3 5/3 13/3 -5/7 5/3 13/21 Аб 1 3 -6 2 3 0 —7 3 0 —7 2 1 0 -1 30
§ 2. Линейные векторные пространства Вектор А5 представляет собой линейную комбинацию только двух векторов базиса, т. е. для него линейная комбинация из векторов базиса Аь А2, А3 является вырожденной. Вообще все числа, полученные в результате последней итерации в табл. 1.9, являются коэффициентами разложения векторов Аь А2, А3, А4, А5 по векторам базиса Аь А2, А3. Действительно, для вектора базиса, например А1 получаем комбинацию Ах = 1 • Ах + 0 • А2 + + 0 * Аз, т. е. вектор базиса сам через себя выражается с коэффициентом, равным единице, а через остальные векторы базиса—с коэффициентами, равными нулю. Так как коэффициенты разложения вектора А4 все отличны от нуля, то, выбрав любой коэффициент за разрешающий элемент, проводим одно полное исключение. В результате вектор А4 преобразуется в единичный и включается в базис; вектор базиса, у которого единица соответствовала разрешающему элементу, исключается из базиса. В итоге получаем новый базис и коэффициенты разложения всех векторов по векторам нового базиса. В последней итерации табл. 1.9 за разрешающий элемент выберем — 5/7 и с его помощью проведем одно полное исключение, получаем табл. 1.10, из которой заключаем, что векторы А2, Аз, А4 являются базисом, а векторы Ах и А5 — их линейными комбинациями; А4 = 7/3 А2 + 13/15 А3 — 7/5 А4, Аб = 14/3 А2 + 11/15 А3 — 14/6 А4« Таблица 1.10 Ах -7/5 7/3 13/15 А, 0 1 0 А2 0 0 1 А3 1 0 0 Ао -14/6 Н/3 11/15 Для получения обратной матрицы, соответствующей векторам базиса, достаточно в начале табл. 1.9 приписать единичную матрицу, размерность которой равна размерности векторов, и произвести над ней все операции по методу полного исключения. На месте единичной матрицы и будет получена обратная матрица, соответствующая векторам, включенным в базис. Возвращаясь к последней итерации табл. 1.9 и коэффициентам разложения вектора Аб по векторам базиса Ах, А2, А3, замечаем, что в его разложении только два коэффициента отличны от нуля; при выборе одного из них за разрешающий элемент вектор А5 может быть включен в базис по методу полного исключения только вместо вектора Ах или А3. Следовательно, вектор Аб может составлять базис с векторами А!, А2, А3 в сочетании Ах, А2, Аб или в сочетании А5, А2, А3. Сочетание векторов А1э А5, А3 базисом не является, так как эта система векторов линейно зависимая. Таким образом, если и
Глава I. Линейное программирование система содержит п векторов размерности т, где т < я, и г — количество базисов, которые могут быть выделены из данной системы, то г ^ С™. Причем равенство достигается только в том случае, если ни один из векторов ни при каком из базисов не является вырожденной комбинацией. На методе Жордана — Гаусса основаны все известные варианты симплексных методов и, в частности, симплексный метод, который рассматривается ниже. Вопросы для самопроверки 1. Дайте определение п-мерного векторного пространства. 2. Что называется /г-мерным вектором? Приведите примеры «-мерных векторов. 3. Какие действия вводятся над л-мерными векторами? 4. Когда система векторов Является линейно зависимой, а когда линейно независимой? 5. Что называется рангом матрицы? 6. Доказать, что любая совокупность п + 1 векторов /г-мерного векторного пространства линейно зависимая 7. Что называется базисом «-мерного векторного пространства? 8. Какими свойствами обладает базис? 9. Напишите систему единичных векторов я-мерного векторного пространства и докажите се свойства. 10. Какие преобразования матрицы системы векторов называются элементарными? 11. В чем состоит метод Жордана — Гаусса? 12. Как определяется совместность и несовместность системы, решаемой методом Жордана — Гаусса? 13. Чему эквивалентны преобразования, проводимые над системой линейных уравнений по методу Жордана — Гаусса? 14. Какое решение называется базисным? 15. В каком случае базисное решение называется невырожденным, в каком — вырожденным? 16. В чем состоит геометрический смысл вырождения? 17. Как получить обратную матрицу с помощью метода Жордана — Гаусса? 18. Как найти базис данной системы векторов и разложение векторов системы по базису, используя метод Жордана — Гаусса? Упражнения 1. Даны векторы Ах = A; —2; 3; —4; 5) иА2 = C;-1; 2; 6; — 4). Найти их сумму, разность, скалярное произведение, длину; умножить векторы соответственно на числа 3, —2 и сложить. 2. Используя элементарные преобразования, определить, является ли данная система векторов линейно зависимой или линейно независимой; Аг = B; 1; -2; -1; 3), А2 = (- 2; -3; —1; 4; 5), А3 - C; 2;- 1;- 2; 4), А4 = (- 3; —4; —2; 5; 4). 3. Систему линейных уравнений { Х\ —{— ^Х% "Г" ОХ% — &Х\ -р #5 = 4, 3*! + 6х2 — 5#з — 4*4 + Злг5 = 5, 1 хх + 2х2 + 7л:3 — 4*4 + #5=11, 2 хх + 4*2 + 2*з — 3*4 + 3*5 =6 32
§ 3. Общая задача линейного программирования записать в векторной форме, найти коэффициенты разложения вектора А0 по векторам Ах, А2, ..., Аб, а также базисное решение и обратную матрицу, соответствующую базисному минору. Правильность вычислений проверить умножением системы линейно независимых уравнений слева на матрицу 0~1- 4. В системе векторов Ах, А2, А8, А4, А5, Ав найти любую подсистему векторов, которые образуют базис, разложить векторы по базису, перейти к другому базису, найти коэффициенты разложения векторов во втором базисе; в обоих случаях определить обратные матрицы, соответствующие векторам базиса, если А! = A; 2; 3; 4), А2 = (-4; 3; -2; 1), А, = 'B; 1; - 1; -3), А4 = = C; 2; 1; 5), А5 = (— 1; —2; 3; 2), Ав *= (—3; 4; 2; 3). Правильность вычислений в каждом случав проверить с помощью умножения вектора слева на матрицу, обратную матрице векторов базиса. § 3. Общая задача линейного программирования 1 [ Формулировка Даны линейная функция I заДачи A.15) 2 = С1Х1+С2х2 + ...+Спхп и система линейных ограничений ( аи *1 + 012*2+ • • • +«1/ */ + • • • +ащ хп ^ЬА, A.16) «21 *1 + «22 Ч + • • • +«8У */+•••+ а2П *П = &2 » <*П х1 + ^2 *2~Г • • .+<*и х] + • • • + аШ хп=^1> ( а т 1 х\ + аШ2 х2 + • * • 4" атз х] + • • • 4" атп хп — ^т* A 17) *у>0(/=1, 2, ..., /г), где я^у, &г и С] — заданные постоянные величины. Найти такие неотрицательные значениял,1,х2, ..., хп, которые удовлетворяют системе ограничений A.16) и доставляют линейной функции A.15) минимальное значение. Как отмечалось ранее, в системе ограничений A.16) все 6г (/ = = 1, 2, ..., т) можно считать неотрицательными. Общая задача имеет несколько форм записи. Векторная форма записи. Минимизировать линейную функцию 2 = СХ при ограничениях (Ы8) Ал + \2х2 + ... + \пхп ~ А0, Х>0, где С = (сх, с2У ..., сп)\ X == (хих2, ..., хп); СХ — скалярное произведение; векторы /ап \ /а12\ /а^\ (Ьх \ А,= ? , А.-Ы А„ = 1°Г 1. А,- Ы \йт1/ \ат2/ \«тл/ \&т/ состоят соответственно из коэффициентов при неизвестных и свободных членов. Матричная форма записи. Минимизировать линейную функцию 2 = СХ при ограничениях АХ = А0, X ^ 0, где С = (сх, с2» •••><?Л)~~ 2 Зак. 14 28 33
Глава I. Линейное программирование матрица-строка; А = (аи) — матрица системы; X *1 Хо матрица-столбец, А0 = | | — матрица-столбец. л. Запись с помощью знаков суммирования. Минимизировать линей- п ную функцию 1 = ^С]Х] при ограничениях /=1 п 2^^ = ^, 1 = 1, 2,..., т\ аг7->0, / = 1,2,..., п. /=1 Определение 1. Планом или допустимым решением задачи линейного программирования называется вектор Х = (х,, х2, ..., хп), удовлетворяющий условиям A.16) ^ A.17). Определение 2. Ляая X = (хг, х2, ..., хп) называется опорным, если векторы Аг- (* = 1, 2, ..., /п), входящие в разложение A.18) с положительными коэффициентами хг, являются линейно независимыми. Так как векторы А^ являются т-мерными, то из определения опорного плана следует, что число его положительных компонент не может превышать т. Определение 3. Опорный план называется невырожденным, если он содержит т положительных компонент, в противном случае опорный план называется вырожденным. Определение 4. Оптимальным планом или оптимальным решением задачи линейного программирования называется план, доставляющий наименьшее (наибольшее) значение линейной функции. В дальнейшем рассмотрено решение задач линейного программирования, связанных с нахождением минимального значения линейной функции. Там, где необходимо найти максимальное значение линейной функции, достаточно заменить на противоположный знак линейной функции и найти минимальное значение последней функции. Заменяя на противоположный знак полученного минимального значения, определяем максимальное значение исходной линейной функции. Свойства решений задачи линейного программирования тесно связаны со свойствами выпуклых множеств. Выпуклые Пусть на плоскости хгОх2 заданы две множества точки: А! (х1]*; яB}) и А2 (яТ; лФ), определяющие прямолинейный направленный отрезок АгА2 (рис. 1.1). Найдем координаты произвольной внутренней точки А (хг\ х2) данного отрезка через координаты его начала и конца. 34
§ 3. Общая задача линейного программирования -хЩ = Цх1Г—хУ). гA) у<2) Л9 Х<% " *Т) ху$') па- направлены, «г<*Л Векторы АгА = (хх и А^ =(*Т-*Ф; раллельны и одинаково поэтому ЛИ = * (ЛИг)» где 0 < ^ < < 1, или хг — х{\\= I (*'?>— х<\>), х2— Отсюда хг — = A—^Ч***?*, Хз==A_/L1> + + ^x{^\ Полагая 1 — / = %ъ I = Я2, получаем (Ы9) Рис. 1.1 {Хх^Хх х{1^ + А,2 х +А,2х, B) 1 » B) ^1>0, А,2>0, Хх + Л,2 = I. Учитывая, что в AЛ9) координаты точки А являются суммами одноименных координат точек Ах и А2, умноженными соответственно на числа Хх и Я2, окончательно имеем: A-20) А = Я1А1 + М», A.21) К > 0, Я2 > 0, А,! + Я2 = 1. Точка А, для которой выполняются условия A.20) и A.21), называется выпуклой линейной комбинацией точек Ах и А2. При Х± = 1 и А,2 == 0 точка А совпадает с концом отрезка Ах, при Х± = 0 и А,2 = 1 — с концом отрезка А2, Таким образом, если I пробегает все значения от 0 до 1, то точка А описывает отрезок ЛХА2. Точки Ах и А2 называются угловыми или крайними точками отрезка А1А2- Из определения линейной выпуклой комбинации точек очевидно, что угловая точка не может быть представлена как выпуклая линейная комбинация двух других точек отрезка. Соотношения A.20) и A.21) верны независимо от размерности пространства. Пусть имеется п точек Аь А2, ..., Ал. Точка А — выпуклая линей* ная комбинация, если выполняются условия А==^1 А! + А,2 А2+ .. - + К Ап, *у>0(/=1, 2,..., л), 2 ^ = 1- Множество точек называется выпуклым, если оно вместе с любыми двумя точками содержит и их произвольную выпуклую линейную комбинацию. Геометрический смысл этого определения состоит в том, что множеству вместе с его двумя произвольными точками полностью принадлежит и прямолинейный отрезок, их соединяющий. Примерами выпуклых множеств служат прямолинейный отрезок, прямая, полуплоскость, круг, шар, куб, полупространство и др. На рис. 1.2 множества а, б, в, г — выпуклые, множество д выпуклым не является, так как отрезок АХА% полностью этому множеству не принадлежит. Точка множества называется граничной, если любой шар сколь угодно малого радиуса с центром в этой точке содержит как точки, принад- 2* 85
Глава I. Линейное программирование лежащие множеству, так и точки, не принадлежащие ему. Граничные точки множества образуют его границу. Замкнутым называется множество, содержащее все свои граничные точки. Замкнутое множество может быть ограниченным и неограниченным. Множество называется ограниченным, если существует шар радиуса конечной длины с центром в любой точке множества, который полностью содержит в себе данное множество; в противном случае множество называется неограниченным. Пересечением двух (или нескольких) множеств называется множество, представляющее общую часть данных множеств. Рис. 1,2 Пусть Р— пересечение выпуклых множеств Рг и Р2 (рис. 1.3). Возьмем в Р две произвольные точки Аъ А2 и соединим их прямолинейным отрезком. Отрезок АХА2 принадлежит Рг и Р2, так как они — выпуклые множества; этот же отрезок принадлежит и множеству Р> поскольку оно является общей частью Рг и /V Следовательно, Р — выпуклое множество. Угловыми точками выпуклого множества называются точки, не являющиеся выпуклой комбинацией двух различных точек множества. Например, угловыми точками треугольника являются его вер- Рис. 1.3 Рис. 1.4 шины, угловыми точками круга—точки окружности, которая его ограничивает. Таким образом, выпуклое множество может иметь конечное и бесконечное число угловых точек. Прямая, плоскость, полуплоскость, пространство, полупространство угловых точек не имеют. Выпуклым многоугольником называется выпуклое замкнутое ограниченное множество на плоскости, имеющее конечное число угловых 30
§ 3. Общая задача линейного программирования точек. Угловые точки многоугольника называются его вершинами, а отрезки, соединяющие две вершины и образующие, его границу, — сторонами многоугольника. Опорной прямой выпуклого многоугольника называется прямая, имеющая с многоугольником, расположенным по одну сторону от нее, хотя бы одну общую точку. На рис. 1.4 прямые МЫ и Р() являются опорными к многоугольнику АВСЭЕ. Выпуклым многогранником называется замкнутое ограниченное выпуклое множество трехмерного пространства, имеющее конечное число угловых точек. Угловые точки многогранника называются его вершинами; многоугольники, ограничивающие многогранник, — гранями; отрезки, по которым они пересекаются, — ребрами. Опорной плоскостью многогранника называется плоскость, имеющая с многогранником, расположенным по одну сторону от нее, хотя бы одну общую точку. Теорема 1.7. Замкнутый, ограниченный, выпуклый многогранник являет- ся выпуклой линейной комбинацией своих угловых точек. Доказательство. Рассмотрим многоугольник, имеющий п вершин. Рис. 1.5 Сначала докажем, что любая точка треугольника удовлетворяет теореме. В треугольнике АхА^А^ (рис. 1.5) возьмем произвольную точку А и через нее проведем отрезок АХА^ Так как точка А принадлежит отрезку АХА^ то она — выпуклая линейная комбинация его концов, т. е. A.22) А = /хА, + /4А* к > 0, к > 0, к + к = 1. Точка А4 принадлежит отрезку А2А3, следовательно, является выпуклой комбинацией его концов, т. е. A.23) А4 = г2А2 + *8А8, к > О, к> 0, к + к = 1. Подставляя A.23) в A.22), получаем А = 1хкх + к (к&2 + *зА3) = к&г + кк А2 + ^4АЯ, Полагая 1Х = Ъ>ъ 12^ = Л2, 1*1* = А,3, окончательно имеем А = ^Ах + А,2А2 + Я3 А3, К > 0. К> 0, К > 0, К + К + ^з = 1» т. е. точка А — выпуклая линейная комбинация вершин \и А2, А3. Если положить, например, Я1 = 0, то это означает, что точка А совпадает с точкой А4 и лежит на стороне А2А3. В этом случае линейная выпуклая комбинация для точки имеет вид А = 0-А! + А,2А2+^зАз = А,2А2 + А<3А3, К = 0, К2 > 0, К3 > 0, К2 + Х3 = 1. 37
Глава I. Линейное программирование В выпуклом многоугольнике, имеющем п вершин (п > 3), возьмем произвольную точку А. С помощью диагоналей, проведенных из одной вершины, разобьем многоугольник на я — 2 треугольников; тогда точка А попадет в один из них. Без ограничения общности можно положить, что она попала в треугольник А1А2А3. Тогда, как уже доказано, точка А — выпуклая линейная комбинация трех вершин: А = ХгАг + Я2А2 + Я3А3. Добавляя к правой части этого соотношения остальные п — 3 вершины, умноженные на нуль, окончательно получаем А = А,^! + М2 + Мз + °'А4 + ••• + °'А7г> ^.>0(/ = 1, 2, / = 1 т. е. точка А угольника. выпуклая линейная комбинация угловых точек многопример. Даны точки А! C; —2; 5) и А2 (—1; 6; 1). Найти точку А (хг; х2\ дг3), являющуюся выпуклой линейной комбинацией точек А1 и А2. Решение. По определению, точка А — выпуклая линейная комбинация точек Ах и А2, если выполняются условия А = Х\\\ + Х2А2, Хг ^0, Х2 ^ 0, ^1 + Х2 = 1. Так как Х2 + Хх = 1, то Х2 = 1 — Хх. Пусть, например, Хх = 1/3; тогда Х2 — 1 — ги = 2/з и координаты точки А находятся из соотношения (хъ х2; х3) = 1/3 C;—2; 5) + 2/3 (—1; 6; 1) = A/3; 10/3; 7/3). Отсюда хх = 1/3; х2 = 10/3; х3 — 7/3. Геометрическая интерпретация задачи линейного программирования A.24) при ограничениях Рассмотрим задачу линейного программирования, система ограничений которой задана в виде неравенств. Найти минимальное значение линейной функции г = с1х1 + с2х2 + .,, + спхп A.25) A.26) «п Х1+а12х2-\-...-\-а1п хп <&!, йЧХ Х1 ~\~ а2Ъ Х2 "Т~ * • • Н~ а2П ХП <ь2, [ х1 + атг х2 ~Ь •+Оп <Ь„ < 0 (/ = 1,2, .../г). Совокупность чисел хъ х2, ..., хПУ удовлетворяющих ограничениям A.25) и A.26), называется решением. Если система неравенств A.25) при условии A.26) имеет хотя бы одно решение, она называется совместной, в противном случае — несовместной. Рассмотрим на плоскости х ±Ох2 совместную систему линейных неравенств 38
§ 3, Общая задача линейного программирования ( а11х1-\-а12х2 <&1, а21х1 + а22х2^Ь2У *1>0, V ат\ *1 + #тг х2 ^ Ьт, Это все равно, что в системе A.25)—A.26) положить п = 2. Каждое неравенство этой системы геометрически определяет полуплоскость с граничной прямой а^хг + аЬ2х2 == ^ (/ = 1, 2, ..., т). Условия неотрицательности определяют полуплоскости соответственно с граничными прямыми хг = 0, х2 = 0. Система совместна, поэтому полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть, которая является выпуклым множеством и представляет собой совокупность точек, координаты каждой из которых являются решением данной системы (рис. 1.6). Совокупность этих точек (решений) назовем многоугольником решений. Он может быть точкой, отрезком, лучом, многоугольником, неограниченной многоугольной областью. Если в системе ограничений A.25)— A.26) /2=3, то каждое неравенство геометрически представляет полупространство трехмерного пространства, граничная плоскость которого ацхг + + 0*2*2+ я*з*з =Ьг (I = 1, 2, ..., т), а условия неотрицательности — полупро- Рис. 1.6 странства с граничными плоскостями соответственно х$ = 0 (/ = 1,2, 3). Есди система ограничений совместна, то эти полупространства, как выпуклые множества, пересекаясь, образуют в трехмерном пространстве общую часть, которая называется многогранником решений. Многогранник решений может быть точкой, отрезком, лучом, многоугольником, многогранником, многогранной неограниченной областью. Пусть в системе ограничений A.25)—A.26) п > 3; тогда каждое неравенство определяет полупространство /г-мерного пространства с граничной гиперплоскостью аAХг + аг-2х2 + ... + Щпхп = Ъ% (г = 1, 3, ..., т), а условия неотрицательности — полупространства с граничными гиперплоскостями %) = 0 (/ — 1, 2, ..., п). Если система ограничений совместна, то по аналогии с трехмерным пространством она образует общую часть д-мерного пространства, называемую многогранником решений, так как координаты каждой его точки являются решением. Таким образом, геометрически задача линейного программирования представляет собой отыскание такой точки многогранника решений, координаты которой доставляют линейной функции минимальное значение, причем допустимыми решениями служат все точки многогранника решений. Хг\ 1 < 0 \ А 'ршшшк /ч\ <^^ VУ+ * , х, 39
Глава I. Линейное программирование Свойства Теорема 1.8. Множество всех планов за- решений дачи линейного программирования выпукло. задачи линейного Доказательство. Необходимо до- программирования казать, что если Хх и Х2 — планы задачи линейного программирования A.15)— A.17), то их выпуклая линейная комбинация X = К1Х1 + Я2Х2, Хг ^ О, Я2 ^ О, Я2 + %2 ±= 1 также план задачи. Так как Хх и Х2 — планы задачи, то выполняются соотношения АХХ = А0, X! > 0; АХ2 = А0, Х2 > 0. Перемножая АХ = А (К^ + %2Х2) = %х АХ, + Я2АХ2 = Мо + + ЯаА0 = (К + К) А0 = А, получаем, что X удовлетворяет системе A.16). Но так как Хх ^ 0; Х2 > 0, Хг ^ 0, Х2 ;> 0, то и X ^ 0, т. е. удовлетворяет и условию A.17). Таким образом X — план задачи линейного программирования. Теорема 1.9. Линейная функция задачи линейного программирования достигает своего минимального значения в угловой точке многогранника решений. Если линейная функция принимает минимальное значение более чем в одной угловой точке, то она достигает того же значения в любой точке, являющейся выпуклой линейной комбинацией этих точек. Доказательство. Предположим, что многогранник решений ограниченный, имеющий конечное число угловых точек. Обозначим его через /С. В двумерном пространстве К имеет вид многоугольника, изображенного на рис. 1.7. Обозначим угловые точки К через Х1? Х2, .,., Хр, а оптимальный план —через Х0. Тогда 2 (Х0) ^ ^2 (X) для всех X из К. Если Х0 — угловая точка, то первая часть теоремы доказана. Предположим, что Х0 не является угловой точкой; тогда Х0 на основании теоремы 1.7 можно представить как выпуклую линейную комбинацию угловых точек К, т. е. Х0 = Х! Хг-\-Х2 Х2+ .. .+Кр Хр, Ь«>0(/ = 1, 2, .... Р), ^ ** = 1. Так как 1 (X) — линейная функция, получаем 2 (х0) = г A1х1 + *2х2 + ... + хр х^ = к г (хо + + К ? (Х2) + ... + Яр 1 (Хр). В этом разложении среди значений 2 (X*) (/ = 1, 2, ..., р) выберем наименьшее [пусть оно соответствует угловой точке Хй A ^ к ^ р)\ и обозначим его через /я, т. е. 2 (Хк) = т. Заменим в A.27) каждое 40
§ 3. Общая задача линейного программирования значение 2(Х,) этим наименьшим значением. Тогда, так как Хг > О, 2*, -1. то 1=1 Р 2(Х0) >Я1ш+?12/п+...+Яр/п = /п У^к1 = т. 1=1 По предположению, Х0 — оптимальный план, поэтому, с одной стороны, 2(Х0) < т, но, с другой стороны, доказано, что 2(Х0) > т, значит, 2 (Х0) «= т = 2 (ХА), где X/, — угловая точка. Итак, Л*| » ъ\к х?— -Л * •& у /V» % | Рис. 1.7 Рис. 1.8 существует угловая точка \п> в которой линейная функция принимает минимальное значение. Для доказательства второй части теоремы допустим, что I (X) принимает минимальное значение более чем в одной угловой точке, например в точках Хъ Х2, ..., Хд, 1 < ?</?; тогда I (Хг) = 2 (Х2) = ... = ~ 1 (Хд) —т. Если X — выпуклая линейная комбинация этих угловых точек: Х = Х1 Х! + А,2 Х2+ . ..+^<? Х^, Я|>0(*-1, 2 0, 2*1 = 1. ТО 2(Х)-2(А1Х1 + ^Х2+...+^Х^) = ^12(Х1)+^22(Х2)+... + ^г(Х0)== т. е. линейная функция 2 принимает минимальное значение в произвольной точке X, являющейся выпуклой линейной комбинацией угловых точек Х1э Х2, ..., Хд. Замечание. Если многогранник решений — неограниченная область, то не каждую точку области можно представить выпуклой линейной комбинацией угловых точек области В этом случае задачу линейного программирования с многогранником решений, представляющим собой неограниченную область, можно привести к задаче с ограниченной областью, вводя в систему дополки- 41
Глава I. Линейное программирование тельное ограничение х1 + х2 + ... + хп ^ Я> гДе 0. ~ достаточно болыиое число. Введение этого ограничения равносильно отсечению гиперплоскостью х} -(- + х2 + ... + хп = 0. (рис. 1.8) от многогранной неограниченной области ограниченного многогранника, для точек которого теорема 1.9 уже выполняется. Очевидно, что координаты угловых точек Е и Р, появившихся в результате введения нового ограничения, зависят от () Если в одной из них линейная функция принимает минимальное значение, то оно зависит от С}; изменяя ф, значение линейной функции можно сделать сколь угодно малым, а это означает, что линейная функция не ограничена на многограннике решений. Теорема 1.10. Если известно, что система векторов Аъ А2, •¦., А& (к ^ п) в разложении A.18) линейно независима и такова, что Ах*! + А2х2 + ... + Ак*к — А<ъ еде все х$ ^ 0, то точка X = (хх, х2, ..., хк, 0, ..., 0) является угловой точкой многогранника решений. Здесь X — /г-мерный вектор, последние п — к компонент которого равны нулю. Доказательство. Предположим, что точка X не является угловой. Тогда она может быть представлена как выпуклая линейная комбинация двух других точек X! и Х2 многогранника решений, т. е. X = ЯА + Я2Х2, %л > 0, %2 > 0, Аа + %2 = 1, Компоненты векторов Хх и Х2, значения Ях и Х2 неотрицательные и последние п — к компонент вектора X равны нулю, поэтому соответствующие п — к компонент векторов Хх и Х2 также должны быть равны нулю, т. е. Хх-Ц1), *<*>. ..., 41}. ° °). хя=Ц»>, *<2>, ..., 42)> °. •• > °)- Поскольку Хх и Х2 — планы, то А1Х?>+А2х«> + ... + Акхр) = А*$ А14в,+А2^> + ... + Ал4я)=Ав. Вычитая из первого соотношения второе, получаем И1)^4я))А1 + D1)--48))А2+---+D1)"-42))А*=0. По предположению, векторы Ах, А2, ..., Ак линейно независимы, поэтому последнее соотношение выполняется, если ^Е>—М2>=о; 4п-42)=о; ...|41)-42)=°. Отсюда х(Г = хТ; х^ = х{1\ ...; х{У = х{1\ Итак, X невозможно представить как выпуклую линейную комбинацию других двух точек многогранника решений. Следовательно, X — угловая точка. Теорема 1.11. Если X = {хи х2, ..., хп) — угловая точка многогранника решений, то векторы в разложении A.18), соответствующие положительным хь являются линейно независимыми. 42
§ 3. Общая задача линейного программирования Доказательство. Без ограничения общности можно положить не равными нулю первые к компонент вектора X, так что к ^ А г- х% = А0« Проведем доказательство от противного. Допустим, что система векторов Аь А2, ..., Ак линейно зависима. Тогда существуют такие числа 1Ъ /2, ..., /А, не все равные нулю, при которых выполняется соотношение A-28) ^А, + /2А2 + ... + 1кАк = 0. По условию A -29) ххкх + *2А2 -Ь ... 4 хп^к = Ао Зададим некоторое число 8 > 0, умножим на него равенство A.28); прибавляя и вычитая результат из A.29), получаем: (*1 + е/х) АА 4 (*2 4 е/2) А2 + ... 4" (** 4- е/ь) АЛ = А0, (*! — е/г Ах) 4- (х2 — е/2) А? + ... + (хц — е1к) /Кк = А0 Таким образом, система уравнений A.18) имеет два решения, которые могут и не быть планами: *1 = (*1 + е'ъ *2 4 е/2; ...$ хк 4 ?Л; 0; ...; 0), Х2 = (х-1 — я/г; *2 — е/2; ..; *ъ —е/^; 0; ...; 0) Все лгг< > 0, поэтому число е можно выбрать настолько малым, что все первые к компонент Хх и Х2 примут положительные значения, тогда Хх и Х2 — планы. При этом 1/2 X, -|- 1/2 Х2 = X, т. е. X — выпуклая линейная комбинация точек Хх и Х2, что противоречит условию теоремы о том, что X — угловая точка. Итак, допущение, что система векторов Ах, А2, ..., \к линейно зависима, привело к противоречию. Следовательно, сделанное допущение неверно и система векторов линейно независимая. Следствие 1. Так как векторы \19 А2, ..., Ап имеют размерность т, то угловая точка многогранника решений имеет не более чем т положительных компонент хг >> 0 (/ ===== 1, 2, —, /тг). Следствие 2. Каждой угловой точке многогранника решений соответствует к <! т линейно независимых векторов системы Ах, А2, ..., Ап. Не теряя общности, можно предположить, что система векторов Ах, А2, ..., Ап задачи линейного программирования A.15)—A.17) всегда содержит т линейно независимых векторов. Если при решении частной задачи это свойство не очевидно, то первоначальную систему векторов дополняют т линейно независимыми векторами, затем находят решение расширенной задачи. Итак, если линейная функция задачи линейного программирования ограничена на многограннике решений, то: 1) существует такая уг- 43
Глава I. Линейное программирование ловая точка многогранника решений, в которой линейная функция задачи линейного программирования достигает своего оптимума; 2) каждый опорный план соответствует угловой точке многогранника решений. Поэтому для решения задачи линейного программирования необходимо исследовать только угловые точки многогранника решений, т. е. только опорные планы. Вопросы для самопроверки и Сформулируйте общую задачу линейного программирования. 2. Напишите в различных формах (векторной, матричной, с помощью сумм) математическую модель общей задачи линейного программирования. 3. Дайте определение плана, невырожденного и вырожденного опорного плана, оптимального плана. 4. Какое множество называется выпуклым? Приведите примеры выпуклых множеств. 5. Какая точка выпуклого множества называется угловой? 6. Какими свойствами обладает выпуклое множество? 7. Что называется многогранником решений? 8. Дайте геометрическое истолкование задачи линейного программирования. 9. В какой точке многогранника решений линейная функция задачи линейного программирования достигает своего оптимального значения? 10. Какой вид имеет угловая точка многогранника решений и какому плану она соответствует? 11. Какие планы необходимо исследовать, чтобы найти оптимальное значение линейной функции? § 4. Графический метод решения задачи линейного программирования 1 I Область Графический метод основан на геометриче- I применения ской интерпретации задачи линейного программирования и применяется в основном при решении задач двумерного пространства и только некоторых задач трехмерного пространства, так как довольно трудно построить многогранник решений, который образуется в результате пересечения полупространств. Задачу пространства размерности больше трех изобразить графически вообще невозможно. Пусть задача линейного программирования задана в двумерном пространстве, т. е. ограничения содержат две переменные. Найти минимальное значение функции A.30) г = Сл + С2х2 при апхх + а12х2 < Ь\% #21*1 ~Г #22*2 ^ ^2 A.31) ат1Х1 "Ь а ТП2Х2 < Ь{] A.32) х1 >0, х2 >0. 44
§ 4. Графич, метод решения задачи лин. програм. Допустим, что система A.31) при условии A.32) совместна и ее многоугольник решений ограничен. Каждое из неравенств A.31) и A.32), как отмечалось выше (п. 3 § 3), определяет полуплоскость с граничной прямой: ацхг + а%2х2 = Ь% (/ = 1,2, ..., т), хх = 0, х2 = 0. Линейная функция A.30) при фиксированных значениях 2 является уравнением прямой линии: СхХг + С2х2 = сопз!. Построим многоугольник решений системы ограничений A.31) и график линейной функции A.30) при 2=0 (рис. 1.9). Тогда поставленной задаче линейного программирования можно дать следующую интерпретацию. Найти точку многоугольника решений, в которой прямая Сгхг + С2х2 = сопз! — опорная и функция 2 при этом достигает минимума. Значения 2 = Сххх + С2х2 возрастают в направлении вектора N = (Сг, С2), поэтому прямую 2=0 передвигаем параллельно самой себе в направлении вектора N. Из рис. 1.9 следует, что прямая дважды становится опорной по отношению к многоугольнику решений (в точках А и С), причем минимальное значение принимает в точке Л. Рис. 1.9 /г1 \ N / \ 0 / Я/ Рис. 1.10 Рис. 1.11 45
Глава I. Линейное программирование Координаты точки А {хг\ х2) находим, решая систему уравнений прямых АВ и АЕ. Если многоугольник решений представляет собой неограниченную многоугольную область, то возможны два случая. Случай 1. Прямая Сгхг + С2х2 = соп${, передвигаясь в направлении вектора N или противоположно ему, постоянно пересекает многоугольник решений и ни в какой точке не является опорной к нему. В этом случае линейная функция не ограничена на многоугольнике решений как сверху, так и снизу (рис. 1.10). Случай 2. Прямая, передвигаясь, все же становится опорной относительно многоугольника решений (рис. 1.11). Тогда в зависимости от вида области линейная функция может быть ограниченной сверху и неограниченной снизу (рис. 1.11, а), ограниченной снизу и неограниченной сверху (рис. 1.11, б), либо ограниченной как снизу, так и сверху (рис. 1.11, в). Примеры задач, Решим графическим методом задачи ис- решаемых пользования сырья и составления рацио- графическим на, условия приведены в § 1, п. 1. методом Задача использования сырья. Найти максимальное значение линейной функции 2 = 50 х 1 + 40 х2 при ограничениях 2хг + 5х2 < 20, 8х1 + 5*2 < 40, *,>(), х2 > 0 5*х + 6х2 <30, Решение. Построим многоугольник решений (рис. 1.12). Для этого в системе координат х1Ох2 на плоскости изобразим граничные прямые 2x1 + 5*2 = 20 (^); 8х1 + 5л;2 = 40 (Ь2); хг = 0; х2 = 0 5*! + 6*2 = 30 (Ь3); Взяв какую-нибудь точку, например, начало координат, установим, какую полуплоскость определяет соответствующее неравенство (эти полуплоскости на рис. 1.12 показаны стрелками). Многоугольником решений данной задачи является ограниченный пятиугольник ОАВСй. Для построения прямой 50^ + 40*2 = 0 строим радиус-вектор 1Ч = = E0; 40) =10 • E; 4) и через точку О проводим прямую, перпендикулярную ему. Построенную прямую 2 = 0 перемещаем параллельно самой себе в направлении вектора N. Из рис. 1.12 следует, что опорной по отношению к многоугольнику решений эта прямая становится в точке С, где функция 2 принимает максимальное значение. Точка С 46
§ 4. Графич. метод решения задачи лин. програм. лежит на пересечении прямых Ь2 и Ьв. Для определения ее координат решим систему уравнений { 8*! + 5#2 = 40, 5*! + 6*2 = 30. Оптимальный план задачи: л^ = 90/23 я^3,9; х2 = 40/23^1,7. Подставляя значения хг и х2 в линейную функцию, получаем 2тах = 50 X X 3,9+40 . 1,7 «260,3. Рис. 1.12 Таким образом, для того чтобы получить максимальную прибыль в размере 260,3 руб., необходимо запланировать производство 3,9 ед. продукции Рг и 1,7 ед. продукции Р2- Задача составления рациона. Найти минимальное значение линейной функции 2 = 4хг + 6х2 при ограничениях Зхг + х2 ^ 9, хг + 2х2 > 8, х1 + 6*2 ^ 12, #1 > 0, х2 > 0, Решение. Построим многоугольник решений (рис. 1.13). Для этого в системе координат ххОх2 на плоскости изобразим граничные прямые З^х + х2 = 9 (Ц); х1 + 2х2 = 8 A2); #г > 0; д:2 > 0 % + 6*2 =; 12 A3); 47
Глава I. Линейное программирование и установим, какую полуплоскость определяет каждое неравенство относительно граничной прямой. В результате получим неограниченную многоугольную область с угловыми точками Л, 5, С, Э. Построим вектор N = D; 6) и прямую 4хг + 6х2 = 0 B). Перемещаем прямую 2 параллельно самой себе в направлении вектора N. Из рис. 1.13 следует, что она впервые коснется многогранника решений и станет опорной по отношению к нему в угловой точе В; если прямую Рис. 1.13 перемещать далее в направлении вектора Ы, то значения линейной функции на многограннике решений возрастут, значит, в точке В линейная функция принимает минимальное значение. Точка В лежит на пересечении прямых Ьх и Ь2; для определения ее координат решим систему уравнений I ОХ-^ ~"р Д^2 ==:: У, \ хг + 2л:2 = 8. Имеем: хх = 2, х2 = 3. Подставляя найденные значения в линейную функцию, получаем 1т[П = 4 • 2+6 • 3=8+18=26. Для того чтобы обеспечить минимум затрат B6 коп. в день), необходимо дневной рацион составить из 2 кг корма 1 и 3 кг корма II. Вообще, с помощью графического метода может быть решена задача линейного программирования, система ограничений которой содержит п неизвестных и т линейно независимых уравнений, если пит связаны соотношением п — т =2. Действительно, пусть поставлена задача линейного программирования. 48
§ 4. Графич. метод решения задачи лин. програм. Найти минимальное значение линейной функции 2 ;= С& + + С2х2 + ... + Спхп при ограничениях A.33) «11 *1 +^12 *2 4- • • • + аЫ Хп = Ьг , а21 хг + а22 *2 + ... + а2Д хп^Ь2> ^т\Хх+ат2х2 + ...+ятп хп—Ьг X; > О, (/ = 1,2, ..., /г), где все уравнения линейно независимы и выполняется соотношение п — т =2. Используя метод Жордана — Гаусса, производим т исключений, в результате которых базисными неизвестными оказались, например, т первых неизвестных хи х2, ..., хту а свободными—два последних: хт+1 пхп, т. е. система ограничений приняла вид A.34) *1 + а1. т-\- I *ет-Ы +а1п ^п"^ х2^Га2, т+ I хш+ 1 + а2л*л~^2' *т + а'т т + | хт +, + а/лт *п = /;^ */>0, 0=1.2, .л). С помощью уравнений преобразованной системы выражаем линейную функцию только через свободные неизвестные и, учитывая, что все базисные неизвестные—неотрицательные: #/^0(/ = 1,2, ..., т), отбрасываем их, переходя к системе ограничений, выраженных в виде неравенств. Таким образом, окончательно получаем следующую задачу. Найти минимальное значение линейной функции I = С'т+гНт+х) + + СпХп при ограничениях 2, т-{- 1 *ю + 1 + а2л ^л ^ ^2» а *7п-{-1 >о, ат, т+ \ хт+1 ~^~а'тп хп < Ь'т ХП>0 Преобразованная задача содержит два неизвестных; решая' ее графическим методом, находим оптимальные значения хт+г и хпу а затем, подставляя их в A.34), находим оптимальные значения Пример. Графическим методом найти оптимальный план задачи линейного программирования, при котором линейная функция 2 = 2*х — *2 + х3 — 3*4+ + 4% достигает максимального значения при ограничениях *1 — х2 + 3*ч •—- 1вл:4 4~ 2*& = — 4, 2*! — *2 + 4*з — 21л;4 + 4л:б = 22, З^х — 2*2 + 8л:3 — 43*4 + 11*5 = 38, (/ = 1, 2, „., 5) 49
Глава I. Линейное программирование Решение. Используя метод Жордана — Гаусса, произведем три полных исключения неизвестных хъ *2, х3. В результате приходим к системе A.35) х1 + *4— 3*б = 6, Ч +7*4+10хб = 70, *3 — 4*4+ 5*5=20, откуда A.36) х1 — 6 — *4 + Злг5, • х2 — 70 — 7*4 — 10*5, хз = 20 + 4*4 — 5*б. Подставляя эти значения в линейную функцию и отбрасывая в системе A.35) базисные переменные, получаем задачу, выраженную только через свободные Рис. 1.14 неизвестные *4 и *5; найти максимальное значение линейной функции I = 6*4+ + 15*5 — 38 при ограничениях |*4 — 3*5 < 6, 7*4 + 10*5 < 70, *4 >0, *5 > 0. — 4*4 + 5*5 < 20, Построим многогранник решений и линейную функцию в системе координат *4 0*5 (рис. 1.14). Из рис. 1.14 заключаем, что линейная функция принимает максимальное значение в угловой точке В, которая лежит на пересечении прямых 2 и 3. В результате решения системы { 7*4 + 10*5 = 70, — 4*4 + 5*5 = 20 28/5. Максимальное значение функции 2л — 38 + находим: *4 = 2, *б + 12 + 84 == 58. Для отыскания оптимального плана исходной задачи подставляем в A.36) найденные значения *4 и *5. Окончательно получаем: х± = 104/5, *2 = 0, *3 =0, *4 = 2, *Б = 28/5. 60
§ 5. Симпл. метод решения задачи лин. програм. Вопросы для самопроверки 1. На чем основан графический метод решения задачи линейного программирования? 2» Как определить по рисунку, имеет задача линейного программирования решение или ее оптимум находится в ± оо? 3. Какие задачи линейного программирования можно решать графическим методом? Упражнения Найти графическим методом оптимальный план задач линейного программирования 1. 1 тт = — 2*1 + 5*2 при 2. 1Т |г7*1 + 2*2>14, 5*! + 6*2 < 30, 3*1 + 8*2>24, *!>0, *2>0. 3. ^„ = 2*!—10*2 при 4. Г*1— *2>0, \Х± — 0*2^> ~~'Э> *х>0; *2>0. 5. 2тах = 2*х — 5*2 при 6. 1 Г4*1 + 3*2<12, 1з*1 + 4*2>24, *1>0, *2>0. = 3*4 2*2 при 7*1 + 2*2>14, — *1 -{- 2*2 ^ 2, 7*!+10*2 < 28, *!>0, *2>0. ^ппп = *1 — 10*2 при Г*! —1/2*2>0, V*! ~~*2^- —О, *1>0, *2>0. тах = 2*х 4- *2 + 6*3 — 12*4 — 9хш при *1 + *2 + 7*з—3*4--7*5= 13, *1 + 2*2+ 13*з + 2*4—14*6=20, *1 + 3*2 + 20*3 + 6*4—23*5= 19. *7>0 (/=1,2, ..¦, 5). § 5. Симплексный метод решения задачи линейного программирования На основании материала, рассмотренного в § 2—4, можно сделать следующий вывод. Существует такая угловая точка многогранника решений, в которой линейная функция достигает своего наименьшего (наибольшего) значения. Каждой угловой точке многогранника решений соответствует опорный план. Каждый опорный план определяется системой пг линейно независимых векторов, содержащихся в данной системе из п векторов, Аь А2, ..., Ап. Для отыскания оптимального плана необходимо исследовать только опорные планы. Верхняя граница количества опорных планов, содержащихся в данной задаче, определяется числом сочетаний С?. При больших тип найти оптимальный план, перебирая все опорные планы задачи, очень трудно. Поэтому необходимо иметь схему, позволяющую осуществлять упорядоченный переход от одного опорного плана к другому. Такой схемой является симплекс- 51
Глава I. Линейное программирование ный метод, который позволяет, исходя из известного опорного плана задачи, за конечное число шагов получить ее оптимальный план. Каждый из шагов (или итераций) состоит в нахождении нового плана, которому соответствует меньшее значение линейной функции, чем значение этой же функции в предыдущем плане. Процесс продолжают до получения оптимального плана. Если задача не обладает планами или ее линейная функция не ограничена на многограннике решений, то симплексный метод позволяет установить это в процессе решения. 1 Построение опорных планов + Спхп при ограничениях I #11 Х1 + #12 Х2 4" « Пусть поставлена задача линейного программирования. Найти минимальное значение функции 2 =Сгхх + С2х2 + ... + •+#1П*71=^1> #21 *1+#22 *2+ • ¦ • + #2П ХП = К , Г/>0 0 = 1,2, ...,л), ат\ х\ + атъ х2 ~Ь • • • + йтп Хп = Ьт, где 6, > 0 (г = 1, 2, ..., /и). Предположим сначала, что система ограничений задачи содержит т единичных векторов, причем без ограничения общности можно положить, что единичными являются первые т векторов. Тогда необходимо минимизировать линейную функцию A.37) I = С1х1 + С2х2 + ... + Спхп при ограничениях A.38) Х\ +й1,т+1 ХТП + \-\- • • '+#171 ^П— ^1» *2 + #2,т+1 Л'т-Ы+ • •• + #2л. *л = ^2» + #тп *л —^т» A.39) ^>0 (/=1,2, ...,/г). Запишем систему A.38) в векторной форме: A.40) хх А± ^х2 Аг+ • • • +хт Ат +*т+1 Ат+1 + ... +хп Ап = А0, где ут+1 > А2 62
Симпл. метод решения задачи лин. программ Векторы Ах, А2, ..., Ат — линейно независимые единичные векторы т-мерного пространства. Они и образуют базис этого пространства. Поэтому в разложении A.40) за базисные неизвестные выбираем хъ х2, ..., хт, свободные неизвестные *т+1э ..., хп приравниваем нулю и, учитывая, что Ь^0A = 1, 2, ..., т), а векторы А,,А2, ...,Ат— единичные, получаем первоначальный план: A.41) Х0 = (хх = Ьг; х2 = Ь2; ...; хт = Ьт; хт+1 = 0; ...; хп = 0). Плану A.41) соответствует разложение A.42) *1А1+*,А, + ...+ где векторы А,, А2, ..., Ат линейно независимы, следовательно, построенный первоначальный план является и опорным Рассмотрим, как исходя из первоначального опорного плана A.41), можно построить второй опорный план. Векторы А,, А2,..., Ат образуют базис в т-мерном пространстве, поэтому каждый из данных п векторов соотношения A.40) можно разложить по векторам базиса, причем единственным образом: т А7= 2 *Ч АЬ /=1» 2> •••»«• *= 1 Предположим, что для некоторого вектора, не входящего в базис, например, для вектора Ат+1, положителен хотя бы один из коэффициентов х1т+1 в разложении A.43) Х1г т-ы &1+х2, т+1 А2-(- ...-(-Ят, т+1 Ат = Ат+1, Зададимся некоторой величиной 8 > 0 (пока неизвестной), умножим на нее обе части равенства A.43) и вычтем результат почленно из равенства A.42). Получаем П 44) (^~9хьт+1) Ах+(а:2—9л:2, т+1) А9+... + (л:т~ел:т, т+1Мт-Н + 6Ат4-1 = А0. Таким образом, вектор Х1 = (*1 — 6*1, ,71+р *а — в*2, т+1; ,,,; *т—йхт, т+\\ ®\ 0; • ••; 0) является планом, если его компоненты неотрицательны. Так как 0 > 0, то все компоненты вектора Кг, в которые входят неположительные л^т+ь неотрицательны. Поэтому надо рассмотреть только компоненты, включающие положительные **,то+1A = 1,2, ..., т), т. е. необходимо определить такое 6 > 0, при котором для всех A.45) *| — 0*1.т+1>°- Из A.45) получаем 9 ^ Х(/х1т+ъ следовательно, вектор X!—план задачи для любого 0, удовлетворяющего условию A.46) О<0<тт — , I х1, т+\ где минимум берется по 19 для которых х1>т+х > 0» 53
Глава I» Линейное программирование Опорный план не может содержать т + 1 положительных компонент, поэтому в плане Хх необходимо обратить в нуль по крайней мере одну из компонент. Положим в A.46), что A.47) е-=е0=тт Х{ - х1, т+1 тогда компонента плана Хь для которой достигается минимум, обращается в нуль. Пусть эта компонента стоит на первом месте, т. е. = пип- * х1, т+1 х1, т+1 Подставляя значение 0О в A.44), имеем [х1~ ' *1,т+1)А1+ \Х2— х2< т+1) А2+-.- + х1, т+1 / \ *1 т+1 ( Х1 \ х1 *Ь \хт—~ *т, т+1 Ат + А7П+1 = А0, х1, т+1 / х1, т+1 откуда получаем разложение *2А2 + *3Аз+---+*^Аго+*//,+ ! Ат+1 = А0, которому соответствует новый опорный план: Хх = @; х'2\ х'ъ\ ...; *„',; х/;г+1; 0; ...; 0), тех! = х( — 60х^т+1 (I = 2, 3, ..., /я), хт+1 = 90. Исключение одного вектора из базиса и включение вместо цего другого с помощью 00 соответствуют переходу от одного базиса к другому с помощью метода Жордана—Гаусса, рассмотренного в §2, п. 6, поэтому система векторов А2, А3, ..., Ат, Ат+1 линейно независима и является новым базисом. Для определения следующего опорного плана необходимо любой вектор, не входящий в базис А2, А3, ..., Ат, Ат+1, разложить по векторам этого базиса, а затем определить такое Э0 > 0, при котором исключался бы один из векторов этого базиса. Таким образом, процесс получения новых опорных планов заключается в выборе вектора, который подлежит включению в базис, и определении вектора, подлежащего исключению из базиса. Критерий, использумый для определения вектора, который включается в базис, является одним из основных.элементов симплексного метода. Заметим, что если вектор Ат+1 подлежит включению в базис, а в его разложении A.43) все х{ т+1 ^ 0, то, очевидно, нельзя выбрать такое 0 > 0, которое исключало бы один из векторов разложения A.44). В этом случае план Хх содержит т + 1 положительных компонент, а система векторов А1э А2, ..., Ат, Ат+1 линейно зависимая и определяет не угловую, а внутреннюю точку многогранника решений, в которой линейная функция не может достигать минимального значения. Это указывает на то, что гиперплоскость соответствующая линейной функции, не может стать опорной к многограннику решений, как бы далеко ни 54
§ 5. Симпл. метод решения задачи лин. програм. перемещать ее в направлении, обратном вектору N. т. е. линейная функция не ограничена на многограннике решений. Таким образом, если система ограничений задачи линейного программирования при неотрицательных свободных членах содержит единичный базис, то без дополнительных вычислений можно получить первоначальный опорный план, а также коэффициенты разложения векторов по векторам базиса. Пример. Построить опорный план задачи 2т1п = хх — *2 -— *з + **—' — 2*5 -{- х6 при 1*1 "~г" ^*4 — 3*5 — 2*б = 5, х2 + 3*4 — 2*5 — 4*6 = 6, X) > О, *з — 4*4 — *5 + 2*6== 3* Ц=* 1,2, .... 6), а затем перейти к другому опорному плану. Решение. Запишем систему в векторной форме: Ах*! + А2*2 + А3*3 + А4*4 + А5*5 + Аб*я = А». За базис выбираем систему векторов Аь А2, А3, так как эти векторы единичные и линейно независимые. Базисными неизвестными являются неизвестные *1§ *2, *3 Приравнивая нулю свободные неизвестные *4 = хь = *б = 0, получаем первоначальный план: Х0 = (х1 = 5; *2 = 6; *3 =3, *4 = 0; *5 = 0; *б =0). Этому плану соответствует разложение A 48) бАг + 6А2 + ЗА3 = А§. Чтобы перейти к другому опорному плану, возьмем любой вектор, не входящий в базис, но имеющий хотя бы одну положительную компоненту, например А4, и разложим его по базису. Так как базис единичный, то коэффициентами разложения вектора А4 по векторам базиса являются компоненты вектора А4, т. е A 49) 2 А, + ЗА2 - 4А3 =» А4 В разложении вектора имеются два положительных коэффициента. Умножая последнее соотношение на 6 > 0 и вычитая из A.48), получим A.50) E - 26) А, + F - 39) А2 + C + 49) А» + 9А4 = А0 Для исключения какого-нибудь вектора из разложения A.50) определяем 90 =* = гшп E/2, 6/3)=6/8 —2. Подставляя значение 90 = 2 в A.50), исключаем из разложения вектор А2; в результате получаем второе разложение: Аг+ И А. + 2А4 = А§, которому соответствует опорный план Хх = (хг = 1; *2 = 0; *3 = 11; *4 — 2; *5 = 0; *6 = 0) Теперь вместо вектора А4 возьмем вектор А5, который имеет следующее разложение в первоначальном базисе: A 51) — ЗАХ - 2А2 - А3 = А5. Умножая A.51) на 9 > 0 и вычитая из A.48), получаем разложение E + 30)А1 + F + 29) А2 + C + 9) А3 + 9А3 = А0, из которого ни при каком 9 > 0 нельзя исключить ни один из векторов. План Хх = E + 39; 6 + 29; 3 + 9; 0; 9; 0), где 9 > 0, не является опорным, так как содержит четыре положительные компоненты и соответствует внутренней точке многогранника решений Если этот план подставить в линейную функцию 2 (X), то получим I (Х^ = — 4 — 29. Выбирая значение 9 сколь угодно большим, получим сколь угодно малое значение функции, т. е. линейная функция не ограничена на многограннике решений. 63
Гдааа I. Линейное программирование Отыскание Предположим, что задача линейного про- оптимального граммирования A.37)—A.39) обладает пла- плана. Условия нами и каждый ее опорный план невы- оптимальности рожден. В этом случае для опорного плана A.41) имеем: A-В21 *1А1+*2А2 + ...+ хт^т — Ао, A.63) х1С1+х2С2+...+хтСт = 2(Х0I где все хь > 0, а 2(Х0) — значение линейной функции, соответствующее этому плану. Разложение любого вектора А; по векторам данного базиса А1э А2, .¦., Ат единственное: A.Б4) хг]Аг+х^ А2+...+*т;Ат = А^ (/«1,2, ...,/г), поэтому разложению вектора А7- в базисе соответствует и единственное значение линейной функции A.55) х1$С1+х2$С2+...+хтЛСт^11 (/ = 1,2, ...,/г), где 27 — значение линейной функции, если в нее вместо неизвестных подставить соответствующие коэффициенты разложения /-го вектора по векторам базиса. Обозначим через С^ коэффициент линейной функции, соответствую* щий вектору А^. Тогда справедлива следующая теорема. Теорема 1.12. Если для некоторого вектора А7- выполняется условие 27 — С/ ;> 0, то план Х0 не является оптимальным, и можно построить такой план X, для которого выполняется неравенство 1 (X) < < 2 (Х0). Доказательство. Умножая A.54) и A.55) на 8 > 0 и вычитая результаты соответственно из A.52) и A.53), получаем A.56) (хг— 6*и) А1 + (^2—вх^) А2+ ... + (*т — 6*т;) Ат +0А, = А„ A 57) (Х1 ~ ®4^ С> + (Л:2 ~ е^27 ) ^2 + • • • + (*т — Э^ту) Ст + №^ => =2(Хо)-0B7—С,). В соотношении A.57) к обеим частям прибавлена величина 0С^ для / = = 1, 2, ..., п. В A.56) хъ *2, ..., хт положительны, поэтому всегда можно выбрать такое 6 > 0, чтобы все коэффициенты при векторах Аь А2, ..., Ат, А; были неотрицательными, т. е. получить новый план задачи: X = (хг — вхи;х2 — 0х27-; ...; хт — 0хт7-; 0; 0; ...; 0), которому согласно A.57) соответствует значение линейной функции A-58) 2(Х) = 2(Х„) - 0B; - С;) Так как по условию теоремы 2, — С, > 0 и 0 > 0, то 2 (X) < 2 (х0) Следствие. Если для некоторого плана Х0 разлооюения всех векторов Ау (/ «= 1, 2, ..., п) в данном базисе удовлетворяют условию A.59) 2,-С, <0, то /ыая Х0 является оптимальным. 56
§ 5. Симпл. метод решения задачи лин. програм. Неравенства A.Б9) являются условием оптимальности плана задачи, решаемой на отыскание минимального значения линейной функции, а значения 1$ — С] называются оценками плана. Таким образом, для того чтобы план задачи на отыскание минимального значения линейной функции был оптимальным, необходимо и достаточно, чтобы его оценки были неположительными. Для задачи линейного программирования A.37) — A.39), заключающейся в отыскании максимального значения линейной функции, справедлива следующая теорема. Теорема 1.13. Если для некоторого вектора к; выполняется условие 2, — С] < 0, то план Х0 не является оптимальным и можно построить такой план X, для которого выполняется условие 1 (X) > > г (х„). Доказательство аналогично доказательству теоремы 1.12. Следствие. Если для некоторого плана Х0 разложения всех векторов Ау (/ = 1, 2, ..., п) в данном базисе удовлетворяют условию A.60) 27—Су>0, то план Х0 является оптимальным: Неравенство A.60) — условие оптимальности плана задачи на отыскание максимального значения линейной функции. Таким образом, для того чтобы план задачи на отыскание максимального значения линейной функции был оптимальным, необходимо и достаточно, чтобы его оценки были неотрицательными. Алгоритм Как следует из теорем 1.12 и 1.13 и след- симплексного ствий, начиная с исходного опорного пла- метода на задачи можно получить последовательность опорных планов, завершающихся оптимальным планом. Продолжим рассмотрение задачи линейного программирования A.37)—A.39) на отыскание минимального значения линейной функции, опорный план которой Х0 = (хг = Ьг\ х2 = Ь2\ ...; хт = Ът\ хт+1 = = 0; ...; хп = 0) определяется системой т-мерных единичных векторов Ах, А2, ..., Ат. Для исследования этого опорного плана на оптимальность необходимо векторы А^ (/ = 1, 2, .,., л) системы A.38) разложить по векторам базиса Аъ А2, ..., Ат и подсчитать значения оценок 2/ — С/. Базис является единичным, поэтому коэффициентами разложения вектора А,- по базису служат его компоненты, т. е. хи = = анA = 1,2, ,...,т;/ = 1,2,...,«). Дальнейшие вычисления удобнее проводить, если условия задачи и первоначальные данные, полученные после определения первого опорного плана, записать в симплексную таблицу (табл. 1.11). В столбце С базиса запишем коэффициенты линейной функции, соответствующие векторам базиса. В столбце А0 — первоначальный опорный план Х0, в нем же в результате вычислений получаем оптимальный план, в столбцах А^ (] = 1,2,..., п) 67
Первая симплексная таблица Таблица 1.11 с 1 ] 2 1 т т+1 Базис Ах А2 Аг • Ат 2Г С базиса Сг с2 Сг ^т -С, Ао *1 *2 **, • *т 20 С! А! 1 0 • 0 • 0 0 с2 А2 о 1 • О • О О ... ... • ... • ... ... С1 А1 О О • 1 • О О • » • ... ... Ст Ат о О * О • 1 О Ст+1 Ат+1 х1, т+1 х2, т+1 • х1, т+1 • хт, т+1 Кт+1—^т+1 • ... С/ А/ *1} Х2] • хц • *т/ ^-С7- ... • ... ... ... ск Ч Х1Ь Х2к • 1 *1к 1 • хтк %к — Ск ... . .. • • '" Сп Ап хт Х2П • х1п 1 хтп ^п Сп
§ 5. Симпл. метод решения задачи лин. програм. записываем коэффициенты разложения /-го вектора по базису, обозначаемые в дальнейшем через Х7. В (т + 1)-й строке в столбце А0 записываем значения линейной функции 2 (Х0), которое она принимает при найденном опорном плане, а в столбцах А7- — значения оценок 27 — С]. Функции 2 (Х0) и 2^ =.- 2 (Х7) находим, подставляя в линейную функцию соответственно компоненты опорного плана и коэффициенты разложения /-го вектора по векторам базиса, поэтому эти значения в табл. 1.11 можно получить как скалярное произведение: т 2(Хо)==СбХо= 2л ^1Х1* 1=1 т ~/ = ^б ^7 = 2^ С % Х^, )=1, 2, . .. , Я, где Сг — коэффициенты линейной функции, соответствующие векторам базиса. После составления табл. 1.11 просматриваем (т + 1)-ю строку. Если для всех / = 1, 2, ..., п разности 27 — С7 ^ 0, то опорный план Х0 оптимальный и минимальное значение линейной функции равно 2 (Х0). Предположим, что одна из оценок 27 — С7- > 0; тогда план Х0 не является оптимальным и, включая в базис вектор, соответствующий этой оценке, можно построить другой опорный план, которому соответствует меньшее значение линейной функции. Если положительных оценок несколько, то на основании соотношения A.58) в базис должен быть включен вектор, которому соответствует тах [0О7 B] — С7)], где максимум берется по тем /, для которых 2/ — С] > 0 и 607- определяется для каждого /. Это дает возможность на данном шаге перейти к вершине многогранника решений, связанной с наибольшим уменьшением линейной функции и в большинстве случаев приводящей к уменьшению количества итераций, что при решении задачи «вручную» позволяет быстрее получить оптимальное решение. При решении задачи на ЭВМ вектор, подлежащий включению в базис, выбирается по тах B7- — С7). Если имеется несколько одинаковых максимальных значений 907 B] — С7), то из соответствующих им векторов включается в базис прежде всего вектор, которому соответствует гшп С^. Если хотя бы для одной положительной оценки 2} — С/ > 0 коэффициенты разложения хц соответствующего вектора неположительны, то линейная функция не ограничена на многограннике решений и, выбирая Э, ее значение можно сделать сколь угодно малым; многогранник решений в этом случае представляет собой неограниченную многогранную область. Пусть тах 607 B7 — С7) = &ок Bп — Ск)у т. е. максимальное значение достигаетя для к-го вектора, ш < к ^ п. Тогда в базис включается вектор Ак и исключается вектор, которому соответствует е0А = пип (хг/хгк) (х1к > 0). 59
Глава I. Линейное программирование Допустим, что 0оь = гшп (Хг/х(к) = Х\1х\\ достигается для вектора базиса, состоящего в /-й строке; тогда вектор Кг исключается из базиса. Элемент х1к называется разрешающим, а столбец и строка, на пересечении которых он находится, — направляющими. Новому опорному плану соответствует базис, состоящий из векторов Аи ..., Аг_ь Ад, Ат, ..., Ат. Чтобы вычислить новый опорный план и проверить его на оптимальность, необходимо все векторы А0, Ау (/' = 1, 2, ..., п) разложить по векторам базиса. Первоначальный базис был единичным (А1э А2, ..., Ат) = Е, поэтому (! .61) А0 = хг Ах + ...+хг \1+... +хт Ат, A.62) АА==*1Ь А!+ ...+*/* Аг+...+*тй Ат, A.63) ^ = ху \г+ .. . + хц &1+ .. .+xт^ Ат. Из A.62) имеем A.64) \1=\/х1к (Ак—х1к Ах— ... — хтк Ат)» Подставляя выражение Аг в A.61), получаем А0=**1 Ах+ .. • + хА (А&—х1к Ах— ...— хтк \т) \+ ... +*т Ат, или А0=(^1— ^1/1) Аг + ...+ \к+ . ..+(хт — хтк Ат. Таким образом, новый опорный план Х0 = (х{, х*29 ..., я*, >.-,х'т) вычисляется по формулам A,65) >_ ЛИ. Х{ —Х( Х(к Х\ х'к Подставляя в A.64) в A.63), получаем разложение вектора А; по векторам нового базиса: А7- = х[; Ах + ... + х'к] кк + ... + х'т1 Ат, где A.66) Х11==ХХ1. Х1к Х1Н ЦФ1), Ч}-- :У Х1к (*•=/)• Объединяя A.65) и A.66), находим, что новый опорный план и разложения векторов в новом базисе при / =0, 1, 2, ..., п определяются по формулам ( / _ ХУ \Хц -^Хц A.67) 60 х\к х(к AФП, Х1Ь A = 1),
§ 5. Симпл. метод решения задачи лин. програм. которые являются формулами полных исключений Жордана — Гаусса. Действительно, полагая / = к, имеем ( х1к *1к т. е. все коэффициенты разложения вектора, вводимого в базис, за исключением одного, обращаются в нуль, а коэффициент, взятый за разрешающий элемент, — в единицу. Вектору базиса соответствует оценка, равная нулю, поэтому для вычисления значений (т + 1)-й строки также используем формулы A.67). Таким образом, чтобы получить коэффициенты разложения векторов А0, А7- (/ = 1, 2, ..., п) по векторам нового базиса, значения оценок нового опорного плана и значение линейной функции, нужно разделить все элементы направляющей строки на разрешающий элемент и, производя одно полное исключение по методу Жордана — Гаусса с помощью этой преобразованной строки, составить симплексную таблицу (табл. 1.12). Формулы A-68) 2(Х0)-СбХ0; ^-С; = СГ>Х7.~-С7- используют для контроля за правильностью произведенных вычислений. Если в табл. 1.12 в (т + 1)-й строке все оценки 1$ — С, =^ О, то полученный план Х0 является оптимальным; если же имеются положительные оценки, то отыскивают следующий опорный план. Процесс продолжают либо до получения оптимального плана, либо до установления неограниченности линейной функции решаемой задачи. Если среди оценок оптимального плана нулевые только оценки, соответствующие базисным векторам, то это говорит о единственности оптимального плана. Если же нулевая оценка соответствует вектору, не входящему в базис, то в общем случае это означает, что оптимальный план не единственный. Действительно, пусть некоторому Ат+1, не входящему в базис, соответствует оценка-2т+1 — Ст+1 = 0. Включим этот вектор в базис и по 00 т+1 какой-то вектор исключим из базиса. В результате получим новый опорный план, которому соответствует то же значение линейной функции, что и в первоначальном оптимальном плане, т. е. линейная функция достигает оптимума в двух угловых точках многогранника решений, но тогда по теореме 1.9 она достигает его в любой точке, являющейся выпуклой линейной комбинацией этих угловых точек. Таким образом, в этом случае задача линейного программирования обладает бесконечным множеством оптимальных планов. Используя теорему 1.13 и ее следствие, решаем задачу линейного программирования на отыскание максимальньго значения линейной функции. 61
Вторая симплексная таблица Таблица 1.12 1 \ 1 2 • / т \т+\ Базис Ах А2 • А& ¦ Ат С базиса Сг Сг - ск • Ста Ъ-Ъ А„ *\ Х2 • ч • хт К Сг А, 1 0 • 0 • 0 0 сЕ А? ¦0 1 • о - • 0 0 ... ... ... ... • ... ... .-.. С1 Аг хм х21 • хи • хт1 1\-Сг ... ... ... ... • ... ... Ст Ат 0 0 • 0 • 1 0 Ст+1 Ат-Ы *1, /тг+1 *2т-И • х1, т+1 • *т. т+1 2т-М~С/72+1 ... "* ... • ... • ... ... С$ А. . х'м Х2] • *'и • • • хт\ К-с, ... ... • ... • 1 *"' Ск Ак 0 0 • 1 • 0 0 ... .о. ... • ... ... ... сп *п х\п х2п • Х1п * • хтп К-Сп
§ 5. Симпл. метод решения задачи лин. програм. При невыполнении условия оптимальности A.60) в базис включают в первую очередь тот вектор, которому соответствует пип 607- B^ — —С/), где минимум берется по тем /, для которых 2,- — С7- < 0. Если минимальных оценок несколько, то в базис прежде всего включают вектор, которому соответствует тах С^. В остальном симплексный процесс аналогичен процессу, имеющему место при отыскании минимального значения линейной функции. Пример. Решим с помощью симплексного метода следующую задачу линейного программирования. Найти минимальное значение линейной функции 2 =* хг — х2 — — Зхг при ограничениях |2*1— х2 + х3<1 , Ахг-2х2+х3> -2, х^0(] = 1, 2, 3), Решение. Первоначальный опорный план рассмотренным методом находится сразу только при неотрицательных правых частях системы ограничений, поэтому умножим второе неравенство на (—1): 12*!— *2 + *з<1, — 4*х+ 2*2—*3<2, х7->0 (/ = 1, 2, 3). 2>х1 +#3<5, Перейдем от неравенств к равенствам, прибавляя к левым частям неотрицательные дополнительные переменные (напомним, что дополнительным переменным в линейной функции соответствуют коэффициенты, равные нулю): ( 2хх— х2+хг+хА =1, \ — 4*1 + 2л;2—х3 +хь =2, д:7>0 (/= 1, 2, ..., 6). ( 3*1 +АГ3 +#6 = 5, Запишем систему в векторной форме: л^+ЯгАг+ЯзАз+л^+Яб Аб+^6А6=А0> где А+:)' *.+;). *+!). Л..0. 4-0. Л..0.Л.-0. Единичные векторы А4, А5, А6 выберем за базис первоначального опорного плана, свободные неизвестные хг, х2, х3 приравниваем нулю. В результате получим первоначальный опорный план Х0 = (х1=0, 63
Глава I. Линейное программирование х2 = 0, х3 == О, лг4 = 1, хь = 2, х6 = 5), которому соответствует разложение *4А4 + хъкь + х6А6 = А0. Для проверки плана Х0 составляем первую симплексную таблицу (табл. 1.13) и подсчитываем значение 2 (Х0) и оценок 27- — Су. Имеем: 1 (Х0) - Сб Х0 = 0; ^ = Сб Хх = 0; го - Сб Х2 - 0; 2, = = СбХ3 = 0; ^ ~ ^ = 0 — 1 == — 1; 2» — С, == 0 + 1 = 1; 28 — — С3 = 0 + 3 = 3. Таблица 1.13 * 1 2 3 т+1 Базис А, А5 А, С базиса 0 0 0 г,- с, А« 1 2 5 0 С,= 1 А, 2 —4 3 — 1 С2=— 1 А2 -1 2 0 1 с.=-з А, ш — 1 1 3 С4=0 А4 1 0 0 0 с5=о А, 0 1 0 0 св=о Ав 0 0 1 0 Для векторов базиса оценки равны нулю. Среди полученных оценок имеются две положительные: 1г — С2 = 1 > 0 и 23 — С3 = 3 > 0. Это означает, что первоначальный опорный план не является оптимальным и его можно улучшить, включив в базис вектор, которому соответствует тах 90/- (I] — С/) > 0. Среди коэффициентов разложения векторов А2 и А3 по базису имеются положительные, поэтому 0О2 > 0 и 003 > 0, которые исключают из базиса хотя бы один из векторов, существуют. Найдем эти значения: 602 =2/2; 00з = т1П A/1, 5/1) = - 1/1 = 1; 0О2 B2 — С2) - Ы = 1; Э0э . Bз — Сз) =* 1 • 3 = 3; тах A; 3) =3. Следовательно, разрешающим элементом служит число 1, стоящее на пересечении первой строки и третьего столбца, первая строка и третий столбец являются направляющими; необходимо вектор А3 включить в базис, а вектор А4 исключить. Составим вторую симплексную таблицу (табл. 1.14). Таблица 1.14 / 1 2 3 т+1 Базис А, Ав С базиса -3 0 0 г,-с, л. 1 3 4 —3 1 А, 2 —2 1 —7 — 1 А, -1 И1 1 4 —3 А, 1 0 0 0 0 л4 1 1 -1 -3 0 А,, 0 1 0 0 0 А г, 0 0 1 0 64
§ 5. Симпл. метод решения задачи лин. програм. Подсчитаем новые элементы направляющей строки. Для этого старые элементы направляющей строки разделим на разрешающий элемент (на 1) и с помощью этой строки произведем одно преобразование по методу полных исключений, т. е. сложим со второй строкой, вычтем из третьей, умножим на 3 и вычтем из (т + 1)-й строки. В результате получим все элементы табл. 1.14. Правильность проведенных вычислений проверяем по формулам A.68). В табл. 1.14 получен второй опорный план Х(о} = (х± = 0; х2 =0; х3 = 1; л;4 = 0; хь = 3; хб = 4), которому соответствует значение линейной функции I (Х(о}) = — 3. В (т + 1)-й строке 2% — С2 = 3 + 1 = 4 > 0, значит, план Х(о} не является оптимальным и вектор А2 подлежит включению в базис. Определяем 602 = пип C/1; 4/1) = 3/1. Число 1, стоящее на пересечении второго столбца и второй строки, разрешающий элемент, вектор А5 исключается из базиса. Составляем таблицу, в которой в последней итерации получен оптимальный план (табл. 1.15). Таблцица 1.15 1 2 3 т-Н 1 1 2 3 т+\ Базис А3 А2 Ав С базиса —3 —1 0 г,-с} Аз А2 А, -3 -1 1 2/~С, А„ 4 3 1 — 15 4 11/3 1/3 -46/3 1 л4 0 —2 ш 1 0 0 1 0 -1 А, 0 1 0 0 0 1 0 0 —3 Аа 1 0 0 0 1 0 0 0 0 А4 2 1 —2 —7 2 -1/3 -1/2 -19/3 0 А5 1 1 —1 —4 1 1/3 -1/3 -11/3 0 А. 0 0 1 0 0 2/3 1/3 -1/3 Так как в (т + 1)-й строке четвертой итерации все оценки неположительные, то план Х(о) — (хх = 1/3; х2 = 11/3; х3 = 4) — оптимальный и ему соответствует 2т1п (Хо3)) = — 46/3. На основании оценок в (т + 1)-й строке можно заключить, что оптимальный план для данной задачи является единственным, так как нулевые оценки соответствуют только векторам, входящим в базис. В столбцах А4, Аб1 Ав записана матрица, из которой перестановкой первой и третьей строк получаем обратную матрицу для векторов базиса. Составим симплексную таблицу (табл. 1.16) для задачи линейного программирования, условия которой приведены в § 5, п. 1. На основании полученных оценок заключаем, что первоначальный опорный план не является оптимальным и его можно улучшить за 3 Зак. 1428 65
Глава I. Линейное программирование Таб л и ца 1.16 2 1 2 3 т+1 Базис Ах А2 Аз 2)~ С базиса 1 —1 — 1 -^ Ао 5 6 3 —4 1 А^ 1 0 0 0 — 1 А2 0 1 0 0 — 1 А, 0 0 1 0 1 А, 2 3 —4 3 —2 А6 —3 —2 —1 2 1 А, —2 4 2 —9 счет включения в базис одного из векторов: А4 или А5. Все коэффициенты разложения вектора А5 по векторам базиса отрицательные, следовательно, для него не существует такого 60>0, которое исключало бы один из базисных векторов. Поэтому линейная функция рассматриваемой задачи не ограничена на многограннике решений. Метод искусственного базиса 4 | Метод Выше (п. 1 §5) было показано, что если ограничения задачи линейного программирования содержат единичную матрицу порядка т, то тем самым при неотрицательных правых частях уравнений определен первоначальный план, исходя из которого с помощью симплексного метода находится оптимальный план. Если ограничения задачи линейного программирования можно преобразовать к виду АХ ^ А0 при А0 > 0, то система ограничений всегда содержит единичную матрицу. Многие задачи линейного программирования, имеющие решения, не содержат единичной матрицы и не приводятся к указанному виду. В этом случае для решения задач применяется метод искусственного базиса. Рассмотрим общую задачу линейного программирования. Найти минимальное значение линейной функции 2 = С1х1-{-С2х2 + + ... + Спхп при ограничениях #и Х\ + #12х2 +* • • • + ат Хп—Ь1$ #21 Х1 + #22 *2 + • • • + #2/1 ХТЬ = ^2 » [ат1 х1-\-аТП2 *2+ •• - + %л хп:==Ьтп1 х^О (/ = 1, 2, ,..,/,), где Ь1 ^ 0 и система ограничений не содержит единичной матрицы, Для получения единичной матрицы к каждому равенству прибавим по одной переменной хп+г ^ 0 (/ = 1, 2, ..., т), которые назовем искусственными, и рассмотрим расширенную задачу, связанную с отыска- 66
§ 5. Симпл. метод решения задачи лин. програм. нием наименьшего значения линейной функции 2 = С1х1 + С2х2 -(- + ... + Спхп + Мхп+1 + ... + Мхп+т при ограничениях I апхг +а12х2 + ...+а1п хп+хп+1 =Ь19 I «21 Х1 + а22 Х2 + • • • +«2П ХП + ХП+2 = ^2» я7.>0 (/ = 1, 2, ..., дг + т). Величина М предполагается достаточно большим положительным числом, если задача решается на отыскание минимального значения линеной функции, и достаточно малым отрицательным числом, если находится максимальное значение линейной функции. Единичные векторы Ап+1, Ап+2, ..., Ап+т> соответствующие искусственным переменным, образуют искусственный базис. Для отыскания оптимального плана исходной задачи используют следующую теорему. Теорема 1.14. Если в оптимальном плане X = (%» х2у..., хп, 0, ..,, 0) расширенной задачи искусственные переменные хп+г- = 0 (/ = 1, 2, ... ..., т), то план X = (хъ х2> ..., хп) является оптимальным планом исходной задачи. хъх2,...,хп Доказательство. Заметим, что если план X — оптимальный план расширенной задачи, то план X — план первоначальной задачи, при этом 2 (X) =2 (X). Равенство значений функции следует из того, что план X от плана X отличается т последними компонентами, равными нулю. Докажем, что план X — оптимальный план исходной задачи, Допустим, что X не является оптимальным планом. Тогда существует такой оптимальный план X* =(*!, х\, .., х*п), для которого 2(Х*)< < 2 (X). Отсюда для вектора X* = (х*\, х\, ..., х*п, О, ...,0), являющегося планом расширенной задачи, получаем 2(х*)=2:(Х*)<2(Х)=*= Дх), т. е. 2(х*)<1(х) Таким образом, план X расширенной задачи не является оптимальным, что противоречит условию теоремы. Применение симплексного метода к расширенной задаче обеспечивает построение плана, в котором каждое из искусственных переменных хп+1=0. Если первоначальная задача не обладает планами (т, е. она не совместна), то оптимальное решение расширенной задачи содержит по крайней мере одно хп+г > 0. Для отыскания оптимального плана расширенной задачи в случае, если заранее не задана величина М, применяется симплексный метод с составлением симплексных таблиц, которые имеют на одну строку 8* 67
Глава I. Линейное программирование больше, чем обычная симплексная таблица. По этой (т + 2)-й строке определяют вектор, подлежащий включению в базис. Итерационный процесс по (т + 2)-й строке проводят для исключения из базиса всех искусственных векторов, затем процесс отыскания оптимального плана продолжают по (т + 1) -й строке. Пример. Найти максимальное значение линейной функции 2 =з = 5*! + Зх2 + 4*3 — х4 при ограничениях {л „ х,->0 (/ = 1, 2, 3, 4). \2*1 + 2*2 + х3 + х4 = 3, ' и ; Решение. Система ограничений не содержит единичной матрицы. Прибавим к каждому уравнению по одной неотрицательной искусственной переменной (соответственно хь ^ 0, х6 > 0) и перейдем к расширенной задаче. _ Найти максимальное значение линейной функции 2 = 5хг + 3*2+ + 4х3 — лг4 — Мхь — Мх% при ограничениях 1*1+*х* + *х%+гх> + хь = Ъ, , >0(/ = 1§2§ ...,6), 12^+2^+дрз+х4 + хв = 3, 7 или в векторной форме: А1Х1+А2*8 + Аз*з + А4*4 + А5*Б + Ав*в=А0. Выберем за базис единичные векторы А6, Ав, которые и образуют искусственный базис. Приравнивая свободные неизвестные нулю: хг = =х2 = лг3 = х4 = 0, получаем первоначальный опорный план расширенной задачи: Х0 = @; 0; 0; 0; 3; 3), которому соответствует разложение *5А5 + х6А6 = А0. Составим симплексную таблицу (табл. 1.17) в которой т + 2 строки, и по оценкам, содержащимся в ней, проверим план на оптимальность. Значения оценок, записанных в (т + 1)-й и в (т + 2)-й строках, находим по формулам A.68): 1 (Х0) = СбазХ0 = — ЗУИ — ЗМ + 0 = 0 — 6Л4, 2г — Сг = СбазХх — С^ — М-2М~5 = — 5—ЗМ, 12 — С2 = СбазХ2—С2 = — ЗМ — 2УИ — 2= — 3 — 5Л4 и т д., т. е. если М заранее не фиксировано, то оценки 2, — С^ являются линейным функциями величины УИ, причем функция состоит из двух слагаемых, одно из которых зависит от М, а второе — не зависит. Для удобства вычислений в (т + 1)-ю строку запишем слагаемое, независимое от М, а в (т + 2)-ю строку — только коэффициенты при М, которые и позволяют сравнивать оценки между собой. В (т + 2)-й строке имеются отрицательные оценки, поэтому опорный план Х0 расширенной задачи не является оптимальным и его можно улучшить. 68
§ 5. Симпл. метод решения задачи лин. програм, Таблица 1.17 I 1 2 т + 1 т + 2 Базис А5 А. 2)~ С базиса —М — М с, А0 3 3 0 -6 1 5 А, 1 2 -5 —3 8 А2 |~з~| 2 —3 -5 1 А А, 2 1 —4 —3 — 1 А, 2 1 1 —3 —л* А, 1 0 0 0 —м Ае 0 1 0 0 Вычислим шах 0О/- B/ — С,), которое достигается для вектора Аг\ 0О2 B2 — С2) = 3/3- (— 5) = — 5. Разрешающий элемент число 3, вектор Л2 включаем в базис, а вектор Аь — исключаем. Составим симплексную таблицу (табл. 1.18). Для этого разделим элементы направляющей строки на 3 и произведем одно полное исключение. В результате второй итерации с разрешающим элементом 4/3 из базиса исключен последний, искусственный вектор А6, поэтому в (т + 2)-й строке третьей итерации все оценки, кроме оценок двух искусственных векторов, обратились в нуль. В силу выбора величины М векторы А5 и А6 уже не могут попасть в базис, исключаем их из дальнейшего рассмотрения, но сохраним для получения обратной матрицы. Опорный план Х§ = C/4; 3/4; 0; 0; 0; 0), полученный в третьей итерации, является планом исходной задачи, хотя и не оптимальным, так как в (т + 1)-й строке имеется отрицательная оценка 22 — С г = «— 3<0. Дальнейший итерационный процесс проводим по (т + 1)-й строке, (т + 2)-ю строку из дальнейшего рассмотрения исключаем, а величину М включаем в оценки для искусственных векторов. В четвертой итерации находим оптимальный план исходной задачи: X = A; 0; 1; 0); при этом плане 2тах (X) = 9. В столбцах Аб и А6 получена матрица, из которой можно получить обратную, поменяв местами первую и вторую строки. Принимая во внимание п. 3 и п. 4 настоящего параграфа, можно заключить, что если система ограничений задачи линейного программирования содержит единичный базис, то для решения задачи необходимо примерно т итераций; если же для получения первоначального 69
Глава I. Линейное программирование Таблица 1.18 1 1 2 т+1 т+2 1 2 /71+1 т+2 1 1 ! 2 1 т+1 Базис А2 А6 С базиса 3 -м ^-с. А2 Ах 3 5 2}~С, А3 1 А, 4 1 5 Ао 1 1 3 — 1 3/4 3/4 6 0 1 1 1 | 2У-С, | 9 5 А, 1/3 Н/з~| —4 —4/3 0 1 0 0 ' 0 1 1 ° 3 А2 1 0 0 0 1 0 0 0 4/3 1/3 4 4 А 2/3 -1/3 —2 1/3 \Щ -1/4 -3 0 1 0 1 ° — 1 А4 2/3 -1/3 3 1/3 3/4 -1/4 2 0 1 0 5 —м А6 1/3 —2/3 1 5/3 1/2 -1/2 — 1 1 2/3 -1/3 1+М —м А, 0 1 1 0 0 1 -1/4 3/4 3 1 -1/3 2/3 2+М опорного плана необходимо ввести полный искусственный базис, то количество итераций увеличивается приблизительно до 2т. При решении определенной экономической задачи, по характеру которой известно, что она обладает планами и в процессе решения не требуется получения обратной матрицы, количество вводимых искусственных векторов можно значительно сократить, если используя метод полного исключения, сначала включить в базис линейно независимые векторы из имеющейся системы векторов А1э А2, ..., Ап. Пример. Найти максимальное значение линейной функции 1 =? = 3*! + 4х2-\-хв + 2х4 — хь ПРИ ограничениях хг + 2х2 — 3*3 + *4 — 5*5 = 5, X] > О, 2хх + 3*2 — 5*з + 2*4 — 7*б =8, / = 1, 2, 3, 4, 5. 3*! + *2 — 2*з + 6*4 + 2*5 = 6, Решение. Запишем условие задачи в табл. 1.19 и, используя метод полного исключения, включим в базис сначала вектор А2, а затем векторы А! и А4, так как этим векторам в линейной функции соответствуют самые большие коэффициенты. Разрешающие элементы вы- 70
§ 5. Симпл. метод решения задачи лин. програм. бираем в соответствии со значениями 0О2, 0О1 и 0О4 так, чтобы свободные члены были неотрицательными. В результате проведения трех итераций получаем первоначальный опорный план Х0 = B/3; 2; 0; 1/3; 0), который проверяем на оптимальность, вычисляя значения оценок 2/ — С^. План Х0 не является оптимальным, так как в (т + 1)-й строке имеется две отрицательные оценки для векторов А3 и А5. Произведем еще одну итерацию, включим в базис вектор А3 и исключим из него вектор А4. В результате получаем оптимальный план Хог) = C/2; 5/2; 1/2; 0; 0), которому соответствует максимальное значение линейной функции 2тах = 15. Таким образом, при решении задачи не пришлось вводить искусственных векторов. Полученный оптимальный план не единственный, так как вектору А5 соответствует нулевая оценка. Если в базис вместо вектора А3 включить вектор А5, то получим новый оптимальный план с тем же значением линейной функции. Если на неизвестные не налагать дополнительных ограничений, например целочисленности решения, то задача имеет бесконечное множество оптимальных планов. Таблица 1.19 1 1 1 2 3 1 2 3 1 2 3 2 3 | т+\ 1 2 3 т+1 Базис — А2 А2 А1 А2 А4 С базиса — 4 4 3 4 3 2 2;-с. А2 Ах А3 4 3 1 г-с7. | Ао 5 8 6 5/2 1/2 7/2 2 1 1 2 2/3 1/3 32/3 5/2 3/3 1/2 15 3 А1 1 2 3 1/2 1^.1 5/2 0 1 0 0 1 0 0 0 1 0 0 4 А2 н 1 3 1 1 0 0 1 0 0 1 0 0 0 1 | о ! 0 0 1 1 А, —3 —5 —2 —3/2 -1/2 -1/2 —1 -1 2 —1 —5/3 1 2/31 —26/3 0 0 1 0 2 А4 1 2 6 1/2 1/2 П/2 0 0 0 0 1 0 3/2 5/2 3/2 13 — 1 А6 -5 —7 2 , —5/2 1/2 9/2 —3 1 2 ! —3 1/3 2/3 —26/з| —2 1 2 1 0 I 71
Глава I. Линейное программирование Задача Рассмотрим задачу на отыскание мини- со смешанными мального значения линейной функции ограничениями 2 = С1х1 + С2х2 + ••• + Спхп при ограничениях ( аи х1+а12х2+ .. ,+а1п хп<1 ъ «21 ^1+022^2+ -^+а2ПХП<Ь2> «/и х\ +ак2 х2+... + акп хп<Ьк, п хп — ат 1 х1 + ат2 х2~\~ • • • + атп Хп — Ьт> Х)>0 (/ = 1,2, .,.,/2). Здесь система ограничений состоит из к неравенств A ^ к < т) и т — к уравнений и не содержит единичной матрицы. Эта задача называется задачей со смешанными ограничениями; ее базис состоит из дополнительных и искусственных векторов. Пусть смешанная система ограничений содержите уравнений. Тогда для получения первоначального опорного плана ее можно преобразовать так, что нужно будет включить не более А искусственных переменных. Действительно, если система содержит к неравенств вида АХ ^ ^ А0, А0 ^ 0, то утверждение не вызывает сомнений. Пусть система ограничений содержит к неравенств вида АХ ^ А0, А0 ^ 0. Тогда с помощью дополнительных переменных преобразуем неравенства в равенства: АХ-Х'=А0, где X' = (хл+1, хп+2, ..., хпЛк), т. е. система ограничений содержит к отрицательных единичных векторов. В результате несложных преобразований можно получить к положительных единичных векторов. Для этого возьмем /-е уравнение со свободным членом Ьг > О, I = = к + 1, ..., т, каждое неравенство системы разделим на произвольное положительное число так, чтобы его свободный член был меньше Ь|, затем перейдем от неравенств к равенствам и почленно вычтем их из /-го уравнения. Полученные уравнения содержат дополнительную переменную со знаком «+». Пример. Найти минимальное значение линейной функции 2. = — х± — — 2*2 + хз ПРИ ограничениях I— *! + 4х2 — 2*з < 6, *1 + *2 + 2*3 > 6, X} < О (/ = 1, 2, 3). 2хг — х2 + 2*з = 4, Решение. Если в данной задаче перейти от неравенств к уравнениям, то необходимо ввести две искусственные переменные. Чтобы этого избежать, разделим второе неравенство на 2, затем заменим его уравнением, полученное уравнение вычтем из третьего ограничения, а потом введем в третье ограничение искус-
§ 5. Симпл, метод решения задачи лин. програм. ственную переменную. В результате задача принимает вид I — — лх — 2л2 + + *з + 0 • хк + 0 хъ + Л^л:в при ограничениях I— хх + 4*2—2*з+*4 = 6, 3/2*х-3/2*2 + х*+хъ = \, ^>0(/ = 1, 2, ... ,6). 2^1~ *2 + 2*3 + *6 = 4> Запишем задачу в векторной форме: А^! + к2х2 + А8*3 + А4*4 + Аб*Б + А6хс = А0. В качестве базиса выберем единичные векторы А4, Аб, А6, которые представляют собой смешанный базис. Свободные неизвестные приравняем нулю (хг = х2 = == х3 = 0) В результате получим первоначальный опорный план расширенной задачи: Х0 = @; 0; 0; 6; 1; 4). С помощью симплексного метода находим (табл. 1 20) оптимальный план исходной задачи: Хф = A4/5; 12/5; 2/5), которому соответствует минимальное значение линейной функции 2т\п — — 36/5. Таблица I. ,;0 1 1. 1 1 2 3 т+\ т+2 1 1 2 I т+\ т+2 1 1 2 3 т+\ 1 2 3 ] т+\ Ьасис А4 А6 С базиса ! о о м 2)-С, А, Аз А. 0 1 м гг-с, А4 Аз А2 0 1 -2 2}-С} ! А1 1 Аз А2 1 -1 1 —2 2г~С) А0 6 1 1 0 4 Ь 1 2 1 2 7 5/2 1 1/2 14/5 2/5 1 12/5 1 —36/5 1 _1 1 А* -1 3/2 2 1 2 2 3/2 — 1 5/2 -1 15721 3/4 -1/2 11/4 1 0 о 1 0 1 ~2 1 А2 1 4 —3/2 — 1 2 — 1 1 —3/2 ш 1/2 2 0 0 1 0 0 0 1 0 1 1 | Л, -2 2 — 1 2 0 1 0 0 0 0 1 0 0 0 1 о ] 0 1 1 ° 1 Л* 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 2/5 —3/10 1/5 | -И/5 1 ° А6 0 | 1 0 0 0 2 1 —2 1 —2 3 -1/2 -1 3/2 6/5 1 -7/5 -2/5 1 -9/5 1 м \ А" 0 0 1 0 1 ! п 0 1 0 1 0 1 0 -1/2 3/4 1/2 —1/4—м\ -1/5 9/Ю 2/5 3/10—Л* 1 Если система ограничений задачи линейного программирования состоит только из неравенств вида АХ ^ А0, А0 ^ 0, то ее можно привести к задаче со смешанными ограничениями, базис которой включает 73
Глава I. Линейное программирование один искусственный вектор. Действительно, преобразуя неравенства в уравнения с помощью дополнительных переменных, получаем АХ — X = А0, где X = (#п+1» хп+2> • ••> хп+т). Из уравнения, содержащего тах Ь% (I = 1,2, ..., т), вычтем все остальные уравнения. Полученная система ограничений содержит т — 1 единичных векторов. Для получения базиса в уравнение, которому соответствует тах Ъь, вводят искусственную переменную. При построении симплексного метода предполагалось, что все опорные планы задачи невырожденные, что обеспечивало получение оптимального плана за конечное число шагов. Если опорный план вырожден, т. е. среди его компонент хь одна или несколько равны нулю, то 0О может оказаться равным нулю и значение линейной функции при переходе к новому опорному плану не изменится. В случае вырожденного плана вычисления проводят аналогично. Если в опорном плане нулевых компонент больше одной, то линейная функция может сохранить свое значение в течение нескольких последующих итераций и возможен возврат к старому базису, что приводит к так называемому зацикливанию (в, практических задачах этот случай встречается редко). Геометрическая В простейшем случае симплексный про- интерпретация цесс может быть интерпретирован как дви- симплексиого жение по соседним угловым точкам много- метода гранника решений, связанных с уменьшением (увеличением) значения линейной функции. Две угловые точки называются соседними, если они расположены на одном ребре многогранника решений. Пусть имеется задача на отыскание максимального значения линейной функции I = С1х1 + С2х2 и на рис. 1.15 изображен многоугольник К ее решений. Допустим, что в процессе преобразования системы ограничений построен первоначальный опорный план, соответствующий угловой точке А. Тогда прямая Сгхх + С2х2 = сопз! проходит через точку Л, и 1 имеет значение 1 (А). Включение вектора в базис по гп1п 0О7- {I] — С/) приводит к тому, что прямая Сгхх + С2х2 = сопз! проходит через точку (}, и 2 принимает значение 2 (<2), причем 2 (О) > 2 (А). В результате последующей итерации приходим к точке Р, в которой линейная функция достигает максимального значения. Если в результате исходного опорного плана была принята точка С, то алгоритм симплексного метода приводит в точки Э, Еу Г и для получения оптимального Рис. 1.15 плана потребуется четыре итерации. 4г 0" А\ ^1Г X/ 74
§ 5. Симпл. метод' решения задачи лин. програм. Таким образом, количество итераций в симплексном процессе определяется первоначальным опорным планом и количеством угловых точек, встречающихся на пути движения прямой С^ + С2х2 = сопз! от первоначального плана до оптимального. Вопросы для самопроверки 1. Как построить первоначальный опорный план задачи линейного программирования и проверить его на оптимальность? 2. Перечислите условия оптимальности опорного плана задачи линейного программирования на отыскание минимального и максимального значений линейной функции. 3. Как определяется вектор для включения в базис, если первоначальный план не является оптимальным? 4. Когда линейная функция не ограничена на многограннике решений? 5. Как определить вектор, подлежащий исключению из базиса? Какой элемент называется разрешающим? 6. Выведите формулы разложения векторов по векторам базиса и покажите, что они являются формулами полного исключения 7. Какой метод решения систем линейных уравнений лежит в основе симплексного метода ? 8. Какая переменная называется искусственной, когда она вводится и какой коэффициент соответствует ей в линейной функции? 9. Зачем в системе ограничений необходим единичный базис? 10. Когда оптимальный план расширенной задачи является оптимальным планом исходной задачи? 11 Когда исходная задача несовместна и как это определить с помощью решения расширенной задачи? 12. Как определяется вектор, подлежащий включению в базис при использовании искусе!венного базиса? 13. В каком случае можно сократить количество вводимых искусственных векторов и как это сделать? 14. В каком случае задача линейного программирования является задачей со смешанными ограничениями? 15. Как сократить количество искусственных векторов в задаче со смешанными ограничениями, если она включает различные виды неравенств и уравнения? 16. Что такое зацикливание и в какой задаче линейного программирования оно может произойти? 17. Какую простейшую геометрическую интерпретацию можно дать симплексному методу? Упражнения Решить следующие задачи линейного программирования. 1. Минимизировать функцию 1 = — х1 + 3*2 + 2*3 при ограничениях *1 + х2 + 2*3 > — 5, 2хг - 3*2 + х3 < 3, x^ < 0 (/ = 1, 2, 3). 2*х — 5*2 + 6*з < 5, 2. Максимизировать функцию 2. = хг + 5*2 -}- 4*3 —- 6*4 при ограничениях |2*2 + 3*2 — 4*3 — 5*4 < 1. 5*! — 6*2 + *3 — *4 < 3, Х] > 0 (/ = 1, 2, 3, 4). 4*х + *2 — 2*3 + 3*4 < 2, 76
Глава I. Линейное программирование 3. Максимизировать функцию 2 = х± — 2*2 + Зх3 — Юхц при ограничениях | хх + х2 + 2х3 — 6*4 = 1, *1 + х2 + 4*я — 8*4 = 1, X} > 0 (/ = 1, 2, 3, 4). I 4л;х + 2*2 + х3 — 4*4 = 3, 4. Предварительно преобразовав систему ограничений, включить в базис возможное число линейно независимых векторов из системы векторов А^ А2, А3, А4, а затем минимизировать функцию 2, = 2х1 -{- *2 — х3 — х\ ПРИ ограничениях 1*1 — х2 ~т 2*з — *4 = 2, 2*х + *а — 3*з + *4 = б, *у > 0 (/ = 1, 2, 3, 4). *1 + *2 + *9 + *4 = 7» 5. Максимизировать функцию 2 = 5*х-|-2*2 — #$ при ограничениях |2*х + *а + *3 < 5, 3*х + 2*2 + *3 = б, *у > 0 (/ = 1, 2, 3), 5*! + 3*2 + 4*3 > 1, 6. Минимизировать функцию 1 = 2*1 + 3*2 + 5/2 *8 при ограничениях |2*х + *2 + 3*з > 6, 2*! + 4*2 + 3*з > 16, X; > 0 (/ = 1, 2, 3) 3*! + 4*2 + 2*з > 12, 7. Решить задачи 1 и 2 из упражнений к § I. Примечание Правильность итераций, начиная со второй, следует проверять по формулам A.68); последующую итерацию можно начинать, только убедившись, что в предущей итерации не было допущено ошибок § 6. Применение общей задачи линейного программирования к решению некоторых экономических задач Линейное программирование возникло из практических потребностей, поэтому оно находит применение при решении широкого класса различных экономических задач. Рассмотрим постановку и решение некоторых из них. 1 I Задача Предприятие имеет га видов ресурсов, ко- использования личество которых соответственно равно I ресурсов Ьь {ь = 1, 2, ..., т) единиц, из которых производится п видов продукции. Предприятие может обеспечить выпуск каждого вида продукции в количестве не более &$ (/ = 1,2,..., п) единиц. Для производства единицы /-й продукции необходимо аи единиц *-го ресурса. При реализации единицы /-й продукции прибыль составляет С^ единиц. Необходимо составить план выпуска продукции, который обеспечивал бы получение максимальной прибыли при реализации всей выпущенной продукции. 76
§ 6. Применение общей задачи лин, програм. Если через х) (/ = 1, 2, ..., п) обозначить количество единиц /-й продукции, которое необходимо выпустить, то поставленная задача имеет следующую математическую модель. п Найти максимальное значение линейной функции 2=2 Ол при ограничениях п. A.69) ^ аИх1<ь1> /в1, 2, ..../я, 0<х;«1;, / = 1,2, ...,/г. /=1 Задача использования сырья, рассмотренная в § 1 и решенная графическим методом в § 4, относится к этому виду задач. К этому же классу задач относится задача оптимального использования удобрений. Пусть для выращивания некоторой культуры применяется т видов удобрений соответственно в количестве Ь% (г = 1,2, ..., т) единиц. Вся посевная площадь разбита на п почвенно-климатических зон, каждая по й] (/ = 1,2, ..., п) единиц. Пусть а^ — количество /-го удобрения, вносимого на единицу площади /-й зоны, а С; — повышение средней урожайности, получаемой с единицы площади у-й зоны. Составить такой план распределения удобрений между посевными зонами, который обеспечивал бы максимальный суммарный прирост урожайности культуры. Обозначим через х, (/ = 1, 2, ..., п) площадь /-й зоны, которую необходимо удобрить; тогда математическая модель поставленной задачи имеет вид A.69). Рассмотрим решение этой задачи на конкретном примере, условия которого приведены в табл. 1.21. Обозначим через хх площадь, которую необходимо удобрить в зоне I, х2 — в зоне II, *3 —в зоне Ш- Тогда математическая модель задачи имеет следующий вид Найти максим_альное значение линейной функции 2=12*^14 л2+10л;а при ограничениях B*!+ х2 + х3< 400 000, *1+ 2х2 + 1/2*3<300 000, I х1 + Ь/4хл < 100000, ^>0(/ = 1,2,3). 1 х1 < 100 000, х2 < 150 000, х3<200 000, Перейдем от неравенств к уравнениям: B*1+ *3+ л:3+*4 = 400 009, *1 + 2ла + 1/2^3 + хь = 300 000, I *1 + 5/4*а +*«= 100 000, х3>Ъ (/= 1,2, ..., 9). 1 х1 +л:7 = 100 000, х2 + х8=150 000, [ л:3 + х9 = 200 000, 77
Глава I. Линейное программирование Таблица 1.21 Зоны 1 1 11 III Посевная площадь, га 100 000 150 000 200 000 Имеющиеся удобрения (ц) Затраты удобрений на 1 га (в ц) фосфорные азотные 2 1 1 400 000 1 2 1/2 300 000 калийные 1 5/4 0 100 000 Прирост урожайности на 1 га (в ц) 12 14 ! 10 { — Векторы А4> А5, Ас, А7, А8, А9 выбираем за первоначальный базис и за четыре итерации получаем оптимальный план (табл. 1.22) Х0 = A00 000; 0; 20 000), для которого 2тах = 3 200 000. Чтобы получить максимальный прирост урожайности данной культуры в размере 3200 тыс. ц, удобрения необходимо распределить следующим образом. Для удобрения I зоны выделить фосфорных удобрений 200 тыс. ц, азотных 100 тыс. ц, калийных 100 тыс ц; для III зоны—фосфорных удобрений 200 тыс.ц, азотных 100 тыс. ц. При этом 100 тыс. ц азотных удобрений останется неизрасходованными, Задача составления диеты различных продуктов Дневная диета должна содержать т видов различных питательных веществ соответственно в количестве не менее Ъг (/ = 1,2, ..., т) единиц. Имеется п в количестве й/ (/ = 1, 2, ..., п) единиц. Пусть аи — количество единиц /-го питательного вещества, содержащегося в единице /-го продукта; С7- — стоимость единицы /-го продукта. Определить, какие продукты и в каком количестве необходимо включить в диету, чтобы она удовлетворяла минимальной дневной потребности в каждом питательном веществе при наименьшей общей стоимости используемых продуктов. Обозначим через */ (/ = 1, 2, ..., п) количество единиц /-го продукта в диете; тогда задача имеет следующую математическую модель. п Найти минимальное значение линейной функции 2—2 С/*/ при /=1 ограничениях A.70) 2 аи*}>Ьи *¦=!. 2, 0<д;у<^у., / = 1,и, Задача составления дневного рациона, рассмотренная в § 1 и решенная графическим методом в § 4, относится к этому виду задач. К нему же относятся задачи на составление смесей, а также некоторые задачи планирования производства, 73
Таблица 1.22 { 1 2 3 4 5 6 /72 + 1 1 2 3 4 5 6 т+1 1 2 3 4 5 6 т+1 1 2 3 4 6 т+1 Базис А4 Аб А6 А7 А8 А9 с базиса 0 0 0 0 0 0 г^с1 А4 Аб А6 А7 А8 Аз 0 0 0 0 0 10 7^-С, А4 А5 А2 А7 А8 Аз 0 0 14 0 0 10 ^-Су А4 А5 А2 Ах А8 Аз 0 14 12 10 ^-с* А0 400 000 300 000 100 000 100 000 150 000 200 000 0 200 000 200 000 100 000 100 000 150 000 200 000 2 000 000 120 000 40 000 80 000 100 000 70 000 200 000 3 120 000 0 100 000 0 100 000 150 000 200 000 3 200 000 1 12 1 А' 2 1 1 1 0 0 — 12 2 1 1 1 0 0 -12 6/5 —3/5 4/5 т -4,5 0 —4/5 0 0 о 1 0 0 0 14 | А2 1 2 5/4 0 * 1 0 — 14 1 2 1 5/4 | ! 1 0 — 14 0 0 1 0 0 0 0 0 1 0 0 0 1 10 | А8 1 1/2 0 0 0 — -10 о 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 о 1 0 I ° 1 А« 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ° 1 А* 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 Ав 0 0 1 0 0 0 0 0 1 1 0 0 0 0 —4/5 —8/5 4/5 0 —4/5 0 56/5 —4/5 -8/5 4/5 0 —4/5 0 56/5 1 ° | А7 0 о 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 -6/5 3/5 —4/5 1 4/5 0 4/5 1 ° 1 А8 0 0 о 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 ° 1 А» 0 о 0 1 0 -1 -1/2 0 0 1 10 — 1 0 0 0 1 10 — 1 -1/2 0 0 0 1 10 1 79
Глава I. Линейное программирование Рассмотрим задачу оптимального использования материалов при условии, что заданный план изготовления деталей может быть выполнен или перевыполнен. Для производства т видов деталей соответственно в количестве не менее Ьь (I = 1, 2, ..., т) единиц используются п видов материалов, имеющихся в количестве А^ (/ = 1,2, ..., п) единиц. Пусть аи — количество деталей 1-го вида, которые согласно установленным нормам можно изготовить из единицы /-го материала, С7- — стоимость единицы /-го материала. Необходимо определить, какие материалы и в каком количестве надо использовать, чтобы изготовить деталей не меньше, чем запланировано, при минимальной суммарной стоимости материалов. Обозначим через лг7- (/ = 1,2, ..., п) расход материала /-го вида; тогда A.70) — математическая модель задачи. Пример. При изготовлении обуви используют, в частности, жесткую кожу— чепрак, вороти др. Каждый из видов в свою очередь делится на несколько категорий по средней толщине. ГОСТом предусмотрено изготовление деталей из определенного вида кожи. Одна и та же деталь может быть изготовлена из различных видов кожи, причем из этих же кож изготовляют и другие детали. Исходные данные приведены в табл. 1.23. Таблица 1.23 Толщина детали, мм 3,9 3,0 2,5 Количество деталей по плану, тыс. шт. 21 30 500 Количество имеющегося материала, тыс. кв. м Стоимость 1000 кв. м, тыс. руб. Количество деталей, которые можно изготовить из 1000 кв. м кожи, тыс. шт. Толщина чепрака, мм 4,01 — 4,5 26.5 51,0 0,9 14,4 4,51—5,0 7,8 26 0,8 16 Толщина ворота, мм 3,5 — 4,0 45,7 5,0 5,0 12,8 4,51—5,0 72,5 6,0 10,5 Решение Обозначим через *х необходимое количество тыс кв метров чепрака толщиной 4,01—4,5 мм, *2— чепрака толщиной 4,51—5, мм, х3 — ворота толщиной 3,5—4,0 мм, *4 — ворота толщиной 4,51—5 мм. Тогда математическая модель задачи имеет следующий вид Найти минимальное значение линейной функции 2, = 14,4 *х + 16 х2-{-12,8 *3 + + 10,5 *4 при ограничениях I 26,5*! +7,8д-а >21, 51*!+ 26^ + 45,7*3 >30> 5*з +72,5*4 >500, *>0 | хх <0,9, (/ = 1,2,3,4), х2 <0,8, ( *4<6» 80
§ 6. Применение общей задачи лин. програм. От неравенств перейдем к равенствам: B6,5х1 + 7,8*2- *6 =21, 51*! + 26*2 + 45,7*ч —*б =30, 50л:3-|-72,5*4—*7 = 500, * 10*1 + ** = 9, Ю*2 +*о=8, х3 +-^10 = ^» Х^ + Хи=6ш *у>0 (/ = 1,2, .. И). Вычитая из третьего уравнения первое и второе, получаем систему ограничений, в которую необходимо включить только одну искусственную переменную г = 14,4 хх + 16*2 + 12,8 х3 + 10,5 *4 + Мх8 при ограничениях | — 26,5*! —7,8л;24- 50*3 + 72,5*4 + *5--*7 = 479, — 51*!— 26*2 + 4,За:з + 72,5л:4 + *6—*7=3470, 50*з + 72.5*4—*7 + *8 = 500, ' Ю*! + *о=3 9, *>0 Юлг2 +*ю = 8, G = 1,2, .... 12). За базис выбираем систему единичных векторов А5, А6, А8, А9, А<0, Аи, А12. Тогда первоначальный опорный план Х0 = А0. Составим табл. 1.24 и за три итерации получаем оптимальный план \(р = (*, = 0,8; х2 = 0; *3 — 1,3; *4 = 6), при котором ^гшп = 91,2. Таким образом, для того чтобы обеспечить выполнение плана выпуска деталей при минимальной стоимости материала в 91 200 руб., необходимо использовать 800 кв м чепрака толщиной 4,01—4,5 мм, 1300 кв. м ворота толщиной 3,5— 4,0 мм и 6000 кв м толщиной 4,51—5.0 мм Некоторые другие виды задач, решаемые методами линейного программирования, рассматриваются ниже. Вопросы для самопроверки 1. Сформулируйте задачу использования ресурсов и напишите ее математическую модель. 2. Сформулируйте задачу составления диеты и напишите ее математическую мо~ дель Упражнения 1. На рынок доставляется картофель из трех колхозов но цене соответственно 12, 10 и 8 коп. за 1 кг. На погрузку 1 т картофеля в колхозах соответственно затрачивается 1, 6, 5 мин. Для своевременной доставди картофеля необходимо, чтобы на погрузку 12 т картофеля затрачивалось не более 20 мин. Из каких колхозов и в каком количестве надо доставить картофель, что*) бы его стоимость была минимальной, если колхозы могут выделить для про-] дажи соответственно 10, 8 и 6 т картофеля? Отв. *х = 14/3 т, *2 = 10,3 т, х3 = 4 т, 81
о о о о 25 о о о 10,5 12,8 '"°- 14,4 < < < < < < < < < < < < < С базиса Базис Г о о о о о о т-н о о оо о -н о оо о о—* о о о оо г-н о о о 00*-< ОО О О -< —«»-* ООО О 1 1 I О»-* ОООО О г-н О О ОО О О ЮЮЮ I Г см см см ° ° ° Г"( ^ г-- г- | | со О -О О От-* О 00 -СО ммооооо 1 1 - ю со ю о о оо о 7) - О О О С7> 00 Ю СО 1> Г^О ^ ^ ю оо?оооо О г-1 N ,15 ф 00 О) н Н г-1 ««« < »-<<м со ^юсо с^ оо оо оо оо о о От-Ч 1 о о о о ю ~ю о - —«см 1^ 00 см о —1 Ю 1 СО 7° 1 оо ю о 1 ++ 6 6 ЮЮЮ III ! о оооо—• о о оо о—< о о о о о —« о о о О От-ч о ОО О ^ _ _ о ОО О 1 1 1 О ^ О ОО ОО *-н О О О ООО О О О О О Ог-н 1 — 1 со о -о о о*-< о ю ^ ю 00 л СО 1^ СЧ О О О О О 1 1 ю СО Ю О О О О О 7 1 - ^ Ю Ю О ООЮ СО 'Ф СО СО ю О О 5 О О О о" «о «о оо да м гч ч# г-н О* СО ^Ю<0 8>. юю 1 сТсм" 1 1 ОО ОО оо | оо о — 1 о о о о о о со см" о — ю 1 СО —| О 1 1 СО Ю сосо 1 ++ 82
о 1 ° о о 3 о о о 10,5 00 СМ ф < п < в < < < < < < < < < < < С базиса Базис - ю0^ 1 1 ОО О ООт-ц О о о о о^оо ОО О т-чООО О О •-* ОООО см о ел 0~о <=> оооо 1 1 о-* о оооо о о | оо0ло о | ¦ | ОО О ООО*-* ,-н О О ОООО СМ 1^ о о * о° -о 1 1 *¦ ° 1С - *оо о^ 1 1 ю о" см ю о сю «с» т-< О "^ - ст. оо" о От-н (М ^ оо 00 л лл^ -О ^! О О О •> см -^ о О «Н СО «О <Ю <Э> г-4 гЧ <* <Г| <} <!^ <} <С <} <} г-* СМ 00 ^ЮСОЬ оо*о 1 ОО ОО ОО ОО со см 1 оо оо»-« о 1 о о оо 2оо 1^ см СМ со" оо •^см о 1 N1 »-«см 1 ++ й к 1 *-• ^ о о о •>•«• и ООО0О»-*0 ОООО—* ОО ООО^ООО °^°.оо0*о 00 1 1 8°>. О*о ооооо о—• ооооо тф СМ СМ ^ О _* О ооооо о»-* —«оо оооо °„Гсосол*3 17°' ° ОО^чОООО 0О ООО Г>- «оо л_ч оо *со т-* О СО 00 ^ Ю ~о «ооо • СМ т^ О О тН «О «О г-< <» Н Н ** -н СМ 00 г^ЮСО Г^ 1 ! оо оо ОО со — со см оо 1 со 1 о"о I оо I ОО 1 1 оо 1 см 1 »-ч СМ 1 ++ 5 6 1
Глава I. Линейное программирование 2. Имеется две почвенно-климатические зоны, площадь которых соответственно равна 0,8 и 0,6 млн. га. Определить размеры посевных площадей озимых и яровых зерновых культур, необходимые для достижения максимального выхода продукции в стоимостном выражении Урожайность культур по зонам и стоимость 1 ц зерна приведены в табл. 1 25. Необходимо произвести озимых не менее 20 млн ц и яровых не менее б млн .ц Та б л ица 1.25 Озимые , Яровые . Наименование Урожайность I зона 20 25 ц/га ! I зона 25 20 Стоимость 1 Ц, РУб. 8 7 Отв. Озимые: I зона — 250 тыс га, II зона — 600 тыс. га; яровые; I зо*1 а — 550 тыс. га. § 7. Двойственность в линейном программировании 1 I Понятие С каждой задачей линейного программи- I двойственности рования тесно связана другая линейная задача, называемая двойственной. Первоначальная задача называется исходной. Связь исходной и-двойственной задач состоит в том, что коэффициенты С^ функции цели исходной задачи являются свободными членами системы ограничений двойственной задачи, свободные члены Ь1 системы ограничений исходной залачи служат коэффициентами функции цели двойственной задачи, а матрица коэффициентов системы ограничений двойственной задачи является транспонированной матрицей коэффициентов системы ограничений исходной задачи. Решение двойственной задачи может быть получено из решения исходной и наоборот. В качестве примера рассмотрим задачу использования ресурсов. Предприятие имеет т видов ресурсов в количестве Ьь (I = 1, 2, ..., т) единиц, из которых производится п видов продукций. Для производства 1 ед. ;-й продукции расходуется аи ед. 1-го ресурса, а ее стоимость составляет С} ед. Составить план выпуска продукции, обеспечивающий ее максимальный выпуск в стоимостном выражении. Обозначим через х1 (/ = 1, 2, ..., п) количество ед. /-й продукций. Тогда исходную задачу сформулируем так. Найти вектор X =(х1, -х2У ...,*п), который удовлетворяет ограничениям 1аи хх + а1а,х2 +...+а1пхп<Ь19 а21*1+а22*2 +...+а2Пхп<Ь2, ^>0(/ = 1,2, ...,л) \ат1 х1~{~ат2 х2~\~ " • - ~гатпхп^^т* и доставляет максимальное значение линейной функции 2 = СхХх -\- С%Хъ + **• т* СпхПУ 84
§ 7. Двойственность в линейном програм. Оценим ресурсы, необходимые для изготовления продукции. За единицу стоимости ресурсов примем единицу стоимости выпускаемой продукции. Обозначим через уь (I = 1,2, ..., т) стоимость единицы /-го ресурса. Тогда стоимость всех затраченных ресурсов, идущих на изго- т товление единицы /-й продукции, равна 2 аиу;. Стоимость затраченных ресурсов не может быть меньше стоимости окончательного продук- т та, поэтому должно выполняться неравенство ^аиу^С^, /=1,2,..., Пт т Стоимость всех имеющихся ресурсов выразится величиной 2 ЬХУ1* Итак, двойственную задачу можно сформулировать следующим образом. Найти вектор V == (уъ у2, ..., ут), который удовлетворяет ограничениям (апУ1+а21 у2 +*.* + ат1ут>Сх Я12#1 + #22#2 +"-+ат2Ут>С2 ^>0(^=0,2| ...$т) {атУг+^пУэ+'-'+а тп Ут^^ты и доставляет минимальное значение линейной функции / = Ъ\У\ + Ь2у2 + ... + Ьтут Рассмотренные исходная и двойственная задачи могут быть экономически интерпретированы следующим образом. Исходная задача. Сколько и какой продукции х9 (/ = 1,2, ..., п) необходимо произвести, чтобы при заданных стоимостях С; (/ = 1,2, ... ..., п)единицы продукции и размерах имеющихся ресурсов^ (г=1,2,..# ..., т) максимизировать выпуск продукции в стоимостном выражении. Двойственная задача. Какова должна быть цена единицы каждого из ресурсов, чтобы при заданных количествах ресурсов Ь% и величинах стоимости единицы продукции С7- минимизировать общую стоимость затрат? Переменные у\ называются оценками или учетными^ неявными ценами. Многие задачи линейного программирования первоначально ставятся з виде исходных или двойственных задач, поэтому имеет смысл говорить о паре двойственных задач линейного программирования. Несимметричные Теорема двойственности» В несимметрич- двойственные ных двойственных задачах система огра- задачи ничений исходной задачи задается в виде равенств, а двойственной — в виде неравенств, причем в последней переменные могут быть и отрицательными. Для простоты доказательств постановку задачи условимся записывать в матричной форме. 85
Глава I. Линейное программирование Исходная задача. Найти матрицу-столбец X = (х1} х2, ..., хп)9 которая удовлетворяет ограничениям A.71) АХ = А0, X >0 и минимизирует линейную функцию 1 — СХ. Двойственная задача. Найти матрицу-строку V = (уи у2, ..., ут), которая удовлетворяет ограничениям A.72) УА < С и максимизирует линейную функцию / == УА0. В обеих задачах С = (съ с2> ..., сп) — матрица-строка, А0 = (Ь19 Ь2у •••» Ьт) — матрица-столбец, А = (ац) — матрица коэффициентов системы ограничений. Связь между оптимальными планами пары двойственных задач устанавливает следующая теорема. Теорема 1.15 (теорема двойственности). Если из пары двойственных задач одна обладает оптимальным планом, то и другая имеет решение, причем для экстремальных значений линейных функций выполняется соотношение пцп 2 — тах /. Если линейная функция одной из задач не ограничена^ то другая не имеет решения. Доказательство. Предположим, что исходная задача обладает оптимальным планом, который получен симплексным методом. Не нарушая общности, можно считать, что окончательный базис состоит из т первых векторов А1э А2, ..., Ат. Тогда последняя симплексная таблица имеет вид табл. 1.26. Таблица 1.26 ' 1 2 т т+1 Базис А! А? С базиса с; *1-С, Ао ?о с, А, 1 0 б г,-с, с, А2 0 1 0 ^2 ^2 : Ст Ат 0 0 1 '"Ш ^т Ст + 1 Ат+1 *1» т+1 *2> т+1 хт т+1 ^т+1 — Ст+1 • с 1 п Ап Х\П Х2П хтп ^П ^71 Пусть V — матрица, составленная из компонент векторов окончательного базиса Ах, А2, ..., Ат; тогда табл. 1.26 состоит из коэффициентов разложения векторов Ах, А2, ..., А„ исходной системы по векторам базиса, т. е. каждому вектору А^ в этой таблице соответствует такой вектор X^} что A.73) А, = ОХ; (/= 1,2, 1М|я). Для оптимального плана получаем 86
§ 7. Двойственность в линейном програм. A.74) А0 = ОХ*. где X* = (х\9 *?, ...^ х*т). Обозначим через X матрицу, составленную из коэффициентов разложения векторов А7- (/ = 1, 2, ..., я), записанных в табл. 1.26. Тогда, учитывая соотношения A.73) и A.74), получаем: A.75) А = ОХ, 0-1А = Х, A.76) Ао-ЭХ*; Э1 А0 = Х*. A.77) гшп2=С*Х*, A.78) 2 = С*Х—С<0, где С* = (С*, Сг, ..., С^), С = (Съ С2, ..., Ст9 Ст+19 ..., Сп), а 2 = (С*ХХ —С х; С Х2 — С2, ..., С Хп — Сп) = Bх —Сг*9 22 —С2; ..., 2п — Сп) — вектор, компоненты которого неположительны, так как они совпадают с 2>$ — С7-.^ О, соответствующими оптимальному плану. Оптимальный план исходной задачи имеет вид X* = О А0, поэтому оптимальный план двойственной задачи ищем в виде A.79) У* = С*0-1. Покажем, что V* действительно план двойственной задачи. Для этого ограничения A.72) запишем в виде неравенства УА — С ^ 0, в левую часть которого подставим V*. Тогда на основании A.79), A.75) и A.78) получим V* А— С = С* О А — С = С* X—С<0, откуда находим У*А ^ С. Так как V* удовлетворяет ограничениям A.72), то это и есть план двойственной задачи. При этом плане значение линейной функции двойственной задачи / (V*) = У*А0. Учитывая соотношения A.79), A.76) к A.77), имеем A.80) /(У*)=У* Ао = С* О" А0 = С* Х* = пип I (X). Таким образом, значение линейной функции двойственной задачи от V* численно равно минимальному значению линейной функции исходной задачи. Докажем теперь, что V* является оптимальным планом. Умножим A.71) на любой план У двойственной задачи, а A.72) — на любой план X исходной задачи: УАХ = УА0 = / (V), УАХ < СХ =* 2 (X), отсюда следует, что для любых планов X и У выполняется неравенство A.81) /(У)<2(Х). Этим же соотношением связаны и экстремальные значения тах / (V) ^ ^тт Ъ (X). Из последнего неравенства заключаем, что максимальное значение линейной функции достигается только в случае, если тах / (V) = тт 1 (X), но это значение [см. A.80)] / (У) достигает при плане У*, следовательно, план V* —оптимальный план двойственной задачи.
Глдва I. Линейное программирование Аналогично можно доказать, что если двойственная задача имеет решение, то исходная также обладает решением и имеет место соотношение тах / (V) = тт 2 (X). Для доказательства второй части теоремы допустим, что линейная функция исходной задачи не ограничена снизу. Тогда из A.81) следует, что ^ (V) ^ — оо . Это выражение лишено смысла, следовательно, двойственная задача не имеет решений. Аналогично предположим, что линейная функция двойственной задачи не ограничена сверху. Тогда из A.81) получаем, что 2 (X) > + оо. Это выражение также лишено смысла, поэтому исходная задача не имеет решений. Доказанная теорема позволяет при решении одной из двойственных задач находить оптимальный план другой. Исходная задача. Найти минимальное значение линейной функции 2 = х2 — хА — Зхь при ограничениях \Хх -\- 2#2 — #4~Г~Яб == 1 у < — 4х2+х8-\-2х4—хъ =2, х/>0(/ = 1,2, ...,6). Здесь матрица-строка С = @; 1; 0; —1; — 3; 0), матрица-столбец Двойственная задача. Найти максимальное значение линейной функции / = уг + 2у2 + 5//3 при ограничениях | Ух <о» 2*/1 — 4#2-)-3«/з<1, ! У2 <°> ] — Уг+^У* < —1, У1— У*+ Уз<— 3, ( #з<0. Решение исходной задачи находим симплексным методом (табл. 1.27). 88 <\ 2 0 —4 ^0 3 1 2 0 -1 1 0 0 1 0 0 —4 1 2 — 1 0 -1 2 0 о\ 3 ' 0 0 0 1 1/ 1 -1 ]
§ 7. Двойственность в линейном програм. Таблица 1.27 I 1 1 2 3 1 т+\ 1 1 2 3 1 /я+1 1 1 2 з 1 /Я+1 1 1 2 3 /72+1 Базис А, А3 А„ С базиса 0 0 0 | Ъ-с, А5 А3 А, —3 0 0 Ъ-С] А5 А4 Ав —3 -1 0 гг-с) А6 А4 К 1 —3 1 -1 1 | 2%-С} А0 1 1 2 5 1 3 4 —3 4 3 1 -15 4 1 11/3 1/3 | -46/3 0 А, 1 0 0 1 1 —1 -3 2 1 —2 —7 3 1 -1/3 -2/3 -19/3 1 А., ! 2 —4- 3 ! -1 2 —2 1 —7 0 —2 по. I 0 0 1 0 0 Л \ о 1 0 0 0 1 0 0 1 1 —1 —4 1 1/3 -1/3 — 11/3 ~1 А, 1 —1 2 0 1 — 1 Ш 1 4 0 1 0 0 0 | 1 0 —3 А, |Т| ~1 1 3 1 0 0 0 1 0 0 0 1 0 0 0 0 А, 0 1 0 1 0 1 0 I 0 1 0 1 0 1 0 1 0 0 1 2/3 1/3 -1/3 Оптимальный план исходной задачи Х* = @; 1/3; 0; 11/3; 4; 0), при котором 2ш1п = — 46/3, получен, в четвертой итерации табл. 1.27. Используя эту итерацию, найдем оптимальный план двойственной за«- дачи. Согласно теореме двойственности оптимальный план двойственное задачи находится из соотношения V* = С* О, где матрица О — матрица, обратная матрице, составленной из компонент векторов, входящих в последний базис, при котором получен оптимальный план исходной задачи. В последний базис входят векторы Аб, А4, А2; значит, /1-1 2\ 0»(А„А,,А,)« -1 2-41. \ 1 0 8/ Обратная матрица V образована из коэффициентов, стоящих- в столбцах Ах, А3, Ав четвертой итерации: / 2 1 0\ 0-1с= —1/3 1/3 2/3 . \—2/3 -1/3 1/3/ 89
Глава I. Линейное программирование Из этой же итерации следует С* = (— 3; —1; 1). Таким образом /2 10 у* = С*0-1=(—3; —1;1).( —1/3 1/3 2/3 \ —2/3 -1/3 1/Зу У* = ( —19/3; —П/3; —1/3), т. е. уг = С*Х$, где X* — коэффициенты разложения последней итерации, стоящие в столбцах векторов первоначального единичного базиса. Итак, 1-ю двойственную переменную можно получить из значения оценки (т + 1)-й строки, стоящей против соответствующего вектора, входившего в первоначальный единичный базис, если к ней прибавить соответствующее значение коэффициента линейной функции: ух = — 19/3 + 0 = — 19/3; у2 = — 11/3 + 0 - — 11,3; уъ = = — 1/3 + 0 = — 1/3. При этом плане тах / = — 46/3. Симметричные Разновидностью двойственных задач ли- двойственные нейного программирования являются задачи двойственные симметричные задачи, в которых система ограничений как исходной, так и двойственной задач задается неравенствами, причем па двойственные переменные налагается условие неотрицательности. Исходная задача. Найти матрицу-столбец X = (хъ х2, ..., хп), которая удовлетворяет системе ограничений A.82) АХ > А0, X >0 и минимизирует линейную функцию 2 == СХ. Двойственная задача. Найти матрицу-строку V = (уъ у21 ..., ут), которая удовлетворяет системе ограничений УА<!С, У>0 и максимизирует линейную функцию I == УА0. Систему неравенств с помощью дополнительных переменных можно преобразовать в систему уравнений, поэтому всякую пару симметричных двойственных задач можно преобразовать в пару несимметричных, для которых теорема двойственности уже доказана. Используя симметричность, можно выбрать задачу, более удобную для решения. Объем задачи, решаемой с помощью ЭВМ, ограничен числом включаемых строк, поэтому задача, довольно громоздкая в исходной постановке, может быть упрощена в двойственной формулировке. При вычислениях без помощи машин использование двойственности упрощает вычисления. Исходная задача. Найти минимальное значение линейной функции 2 = хх + 2х2 + Зхз при ограничениях Bхг-1-2*2— х-3>2, Х1~~ Х2 — 4Х3 <—3, *1+ *2 —2*3>6, *у>0(/ = 1, 2, 3). [2хг-\- х2~2х^>3, 90
§ 7. Двойственность в линейном програм. Очевидно, для того чтобы записать двойственную задачу, сначала необходимо систему ограничений исходной задачи привести к виду A.82). Для этого второе неравенство следует умножить на —1. Двойственная задача. Найти максимум линейной функции / = = 2уг + Зу2 + буз + 3#4 при ограничениях 2#1 — у2+ Уз+ 2У* < и 201 + Уг + Уз + У4 > 2, Уь > 0 (/ = 1, 2, 3, 4). — Уг+ 4#2 — 2г/3 — 2#4 > 3, Для решения исходной задачи необходимо ввести четыре дополнительные переменные и после преобразования системы — одну искусственную. Таким образом, исходная симплексная таблица будет состоять из шести строк и девяти столбцов, элементы которых подлежат преобразованию. Для решения двойственной задачи необходимо ввести три дополнительные переменные. Система ограничений не требует предварительных преобразований, ее первая симплексная таблица содержит четыре строки и восемь столбцов. Двойственную задачу решаем симплексным методом (табл. 1.28). Оптимальный план двойственной задачи V* = @; 1/2; 3/2; 0), / — 21/2 /щах — ^1/^- Оптимальный план исходной задачи находим, используя оценки (т + 1)-й строки последней итерации, стоящие в столбцах Аб, А6, А7 :.Х1 = 3/2 + 0 = 3/2; х2 = 9/2 + 0 = 9/2; ^,=0 + 0=0. При оптимальном плане исходной задачи X* = C/2; 9/2; 0) линейная функция достигает наименьшего значения: 2т1п =21/2. Таблица 1.28 / 1 2 3 т+1 1 2 3 |т+1 1 2 3 т+1 Базис А5 Аз А, С базиса 0 0 0 21-С] Аз А6 А, 6 0 0 2} — С Аз А2 А7 6 3 0 ?}-С] А0 1 2 3 0 1 1 5 6 3/2 1/2 2 21/2 2 А4 2 2 —1 -2 2 0 3 10 2 0 3 ! 10 1 3 А2 —1 1 4 —3 —1 по 6 —9 0 | 1 0 1 0 6 Аз гп 1 —2 | —6 1 0 0 0 1 0 0 3 А4 2 — 1 —2 —3 2 —1 2 9 3/2 ~1/2 4 9/2 о А5 1 0 0 1 0 1 — 1 2 6 1/2 -1/2 5 3/2 0 А, 0 1 0 1 0 0 1 0 0 1/2 1/2 3 9/2 о А7 0 0 1 0 0 0 ! 1 0 0 0 1 0 91
Глава I. Линейное программирование Виды математических моделей двойственных задач На основании рассмотренных несимметричных и симметричных двойственных задач можно заключить, что математические модели пары двойственных задач могут иметь один из следующих видов. Несимметричные задачи A) Исходная задача Двойственная задача ^т!п = СХ; /та* = ^А-о» АХ = А0; УА < С. X > 0. B) Исходная задача Действенная задача ^тах = СХ; /тах = ^Ао> АХ = А0; УА > С, Х>0. Симметричные задачи C) Исходная задача Двойственная задача ^т\а = СХ; /тах = УА0: АХ > А0; УА < С У>0. X >0 D) Исходная задача ^тах ^ СХ; АХ < А0; X >0. Двойственная задача /т1а = ^А0; УА>С; У>0. Таким образом, прежде чем записать двойственную задачу для данной исходной, систему ограничений исходной задачи необходимо привести к соответствующему виду. Запишем, например, математическую модель двойственной задачи для следующей исходной. Найти минимальное значение линейной функции 2 = 2хх + к% + + 5х3 при ограничениях *1 ¦— ч — *з < 4> Х\ — 0X2 "т" Л-8 ^ ^» 2х± — х2 + Зх3 > 6, */>0(/= 1, 2, 3) Рассматриваемая задача относится к симметричным двойственным задачам на отыскание минимального значения линейной функции. Для того чтобы было можно записать двойственную задачу, ее модель должна иметь вид C). Переход осуществляется умножением первого неравенства на —1. 92
§ 7. Двойственность в линейном програм. Исходная задача: 2шш = 2*1 + х2 + 5хз при ограничениях ( — *, + х2 + х3 > — 4, | *, — 5х2 + *я>5, ^>0(/=1, 2, 3). I 2хл — х2 + 3*з ^ б, Двойственная задача: /шах = — 4г/х + 5#2 + б^з при ограничениях I 01-502- 03 < 1, Уг>0A*= 1, 2, 3). 1 01 + 02 + 30з < 5, Приведем без доказательства следующую теорему. Теорема 1.16. Если при подстановке компонент оптимального плана в систему ограничений исходной задачи 1-е ограничение обращается в неравенство, то 1-я компонента оптимального плана двойственной задачи равна нулю. Если 1-я компонента оптимального плана двойственной задачи положительна, то 1-е ограничение исходной задачи удовлетворяется ее оптимальным решением как строгое равенство. Двойственный В п. 2 и и. 3 настоящего параграфа было симплексный показано, что для получения решения метод исходной задачи можно перейти к двойственной и, используя оценки ее оптимального плана, определить оптимальное решение исходной задачи. Переход к двойственной задаче не обязателен, так как если рассмотреть первую симплексную таблицу с единичным дополнительным базисом, то легко заметить, что в столбцах записана исходная задача, а в строках — двойственная. Причем оценками плана исходной задачи являются С], а оценками плана двойственной задачи — Ьь. Решим двойственную задачу по симплексной таблице, в которой записана исходная задача; найдем оптимальный план двойственной задачи, а вместе с ним и оптимальный план исходной задачи. Этот метод носит название двойственного симплексного метода. Пусть необходимо решить исходную задачу линейного программирования, поставленную в общем виде: минимизировать функцию 1 =СХ при АХ = А0, X ^ 0. Тогда в двойственной задаче необходимо максимизировать функцию / = УА0 при УА < С. Допустим, что выбран такой базис Б = (Аь А2, ..., Кь ..., Ат), при котором хотя бы одна из компонент вектора X = О А0 = (хъ х2, ..., хь ..., хт) отрицательная (например, хг < 0), но для всех векторов А^ выполняется соотношение 2/ — С,- < 0 (/ = 1,2, ..., п). Тогда на основании теоремы двойственности V == Сбаз Б — план двойственной задачи. Этот план не оптимальный, так как, с одной стороны, при выбранном базисе X содержит отрицательную компоненту и не является планом ис- 93
Глава I. Линейное программирование ходной задачи, а с другой стороны, оценки оптимального плана двойственной задачи должны быть неотрицательными. Таким образом, вектор А1у соответствующий компоненте а;^<0, следует исключить из базиса исходной задачи, а вектор, соответствующий отрицательной оценке,— включить в базис двойственной задачи. Для выбора вектора, включаемого в базис исходной задачи, просматриваем /-ю строку: если в ней не содержатся хц <С 0, то линейная функция двойственной задачи не ограничена на многограннике решений, а исходная задача не имеет решений. Если же некоторые хц < О, то для столбцов, содержащих эти отрицательные значения, вычисляем 0О7- = гшп (х(/хи)^0 и определяем вектор, соответствующий тах 0О7 B/ — С7) при решении исходной задачи на минимум и тт 0О7- A}—С7) при решении исходной задачи на максимум. Этот вектор и включаем в базис исходной задачи. Вектор, который необходимо исключить из базиса исходной задачи, определяется направляющей строкой. Если 0О7- = тт (Х(/хи) = 0, т. е. х% = 0, то хц берется за разрешающий элемент только в том случае, если хц > 0. Такой выбор разрешающего элемента на данном этапе не приводит к увеличению количества отрицательных компонент вектора X. Процесс продолжаем до получения X ^ 0; при этом находим оптимальный план двойственной задачи, следовательно, и оптимальный план исходной задачи. В процессе вычислений по алгоритму двойственного симплексного метода условие 27—С7 ^ 0 можно не учитывать до исключения всех хь < 0, затем оптимальный план находится обычным симплексным методом. Это удобно использовать, если все хь < 0; тогда для перехода к плану исходной задачи за одну итерацию необходимо 0О>/ определить не по минимуму, а по максимуму отношений, т.е. 0О7- = тах (хг/х^)> >0. Двойственным симплексным методом можно решать задачи линейного программирования, системы ограничений которых при положительном базисе содержат свободные члены любого знака. Этот метод позволяет уменьшить количество преобразований системы ограничений, а также размеры симплексной таблицы. Рассмотрим применение двойственного симплексного метода на примерах. Пример 1. Найти минимальное значение функции 2 = —2х1+хг-\- + 5х3 при ограничениях С;^;;:;й *,>•</-¦'¦»• Решение. Умножим второе неравенство на —1 и преобразуем неравенства в уравнения: \~х А-Ъх х\х^-Ъ х1>0и~1> 2> ••" 5)-
§ 7. Двойственность в линейном програм. Таблица 1.29 1 1 2 /и+1 Базис А4 А8 С базиса 0 0 2}-С, Ао 4 —5 0 —2 А, Ш —1 2 1 А2 1 5 —1 5 А„ —1 —1 —5 0 А, 1 0 0 ! о | А6 0 1 0 Составим первую симплексную таблицу (табл. 1.29), выбрав за базис векторы А4 и Аб. Так как х2 = — 5 < 0, то просматриваем коэффициенты второй строки. Среди них два отрицательных коэффициента, стоящие в столбцах, соответствующих векторам Ах и А3. Имеем: 601 = гп1п D/1;—5/— 1) = 4/1, 0О1 BХ — Сг) = 4/1.2 = 8, 903 = — 5/ — 1 = 5, 903 B8 - С3) = 5,(-5) = - 25. Исходная задача решается на отыскание минимального значения линейной функции, поэтому в базис исходной задачи надо включить вектор, которому соответствует тах Э0уB7- — С/) = тах (— 25; 8) = 8, т. е. вектор Аг с разрешающим элементом 1, вектор А4 исключаем из базиса. В результате одного полного исключения получаем табл. 1.30, где в последней итерации найден оптимальный план исходной задачи: X* = (9/2; 0; 1/2), 2шШ = — 13/2 и двойственной задачи: V* = G/2; 3/2), /тах = - 13/2. Для получения плана двойственной задачи было необходимо 2.$ + С/, соответствующие векторам первоначального базиса, умножить на — 1, так как исходная и двойственная задачи симметричны. Таблица 1.30 / 1 2 1 т+1 1 2 т+1 Базис Ах А8 С базиса —2 0 г,-с, А1 Аз —2 1 5 21-С, А0 4 — 1 -8 9/2 1/2 —13/2 —2 А» 1 0 0 1 0 0 1 А2 1 6 —3 —2 —3 — 12 5 А8 —1 ЕЁ —3 0 1 0 0 А4 1 ! -2 1/2 -1/2 —7/2 0 Ав 0 1 0 1 -1/2 -1/2 —3/2| оГ>
Глава I. Линейное- программирование Пример 2. Найти минимальное значение функции 2. = 3^ + 2х2 —4х3 при ограничениях | ,1+,2-2,3>4, /=1>23)< I Зх1-{-х2 — 4х9 > 7, ' Решение Умножаем неравенства системы ограничений на —1 и переходим к уравнениям: -х1 — х<2-\-2х3+хл = -4, дс;>0(/=1, 2, ..., 5). —3*!—х2 + 4*3 + л;5 = —7, Решение приведено в табл. 1 31, причем разрешающий элемент в первой итерации выбран по 00^ — тах (Х(/х(/1 > О, что позволило во второй итерации перейти к опорному плану исходной задачи и в дальнейшем решать задачу обычным симплексным методом. Т а б л и ц а 1 / 1 2 т+\ 1 2 /я+1 1 1 2 /я+1 1.31 Базис А4 А. С базиса 0 0 2,—С, А, А, 3 0 2}-С, А, А2 3 2 г,-с, А б —4 -7 0 4 6 12 3/2 5/2 19/2 3 А, -3 -3 1 0 0 1 0 0 2 А, — 1 — 1 -2 1 1 0 1 0 —4 А» 2 4 4 —2 —2 -2 -1 -1 ' —1 0 А» 1 0 0 — 1 -3 —3 1/2 -3/2 —3/2 0 | А5 1 0 1 0 0 1 1 0 -1/2 1/2 -1/2 Оптимальный план исходной задачи X* = C/2; 5/2; 0); 2т1п — 19/2. Задачи симметричные, поэтому оптимальный план двойственной задачи У* = = C/2; 1/2); /тах = 19/2. Вопросы для самопроверки 1. В чем заключается сущность двойственности в линейном программировании? 2. Пусть исходная задача состоит в оптимальном использовании ресурсов. Дайте экономическую интерпретацию двойственной задачи. 3. Сформулируйте и докажите теорему двойственности. 4. Какие задачи линейного программирования относятся к несимметричным и симметричным, в чем их отличие? 5. Как по решению исходной (двойственной) найти решение двойственной (исходной) задачи? 6. Запишите возможные виды математических моделей двойственных задач, 7. В чем состоит сущность двойственного симплексного метода? 96
§ 8. Целочисленное программирование Упражнения 1. Используя свойство симметричности, с помощью двойственной задачи решить исходную. Найти минимальное значение линейной функции 1 = 4*х + Ьх2 + 6*3 при ограничениях Х± —*2 — *-^з *^* —' » *х — *2-|-8*3 > 4, ^ > 0(/ = 1, 2, 3). 2. Для двойственной симметричной задачи записать исходную и найти ее решение: /ццп = 2#1 + 4#2 + 12#4 при ограничениях 01 + 2#2 +1/3 + 404 > 10» уг> 0(* = 1,2, 3, 4). *у>0(/ = 1,2,3); I 2^/1+ 02 — 2#з + 3*/4 > 4, 3. Применяя двойственный симплексный метод, решить задачи: а) ^так = 2*х — 2*2 + 3*3 + 4*4 при ограничениях 1*1 + 2*2 + *з + Ч < 2. 2*! — *2 + 2х8 — 3*4 > 3, */> 0 (/ = 1, 2, 3, 4); 3*! + 4*2 — 5*з + 2*4 < 4, б) ^тах = 5*! — *2 — 4*з при ограничениях "~~~ Х2 ~Т~ ^-^8 ^ ^ » — *1 + *2 >1, *1*Г~*2— 3*з > В, *1 ~ *з < 4. в) 2цца = 2*! + 3*2 + 5/2*3 ПРИ ограничениях Г 2*а + *2 + 3*з > 6, I 2*х + 4*2 + 3*3 > 16, */> 0 (/ = 1, 2, 3); 1 3*! + 4*2 + 2*з > 12, г) ^т!а = 4*! + 6*2 + 3*з при ограничениях ] 13*1 + *2 + 2*з > 9, *! + 2*2 + 2*з > 8, */> 0 (/ = 1, 2, 3). *1 + 6*2 > 12, Для упражнений а)—г) записать оптимальные планы исходной и двойственной задач. § 8. Целочисленное программирование Значительная часть экономических задач, относящихся к задачам линейного программирования, требует целочисленного решения. К ним относятся задачи, у которых переменные величины означают количество единиц неделимой продукции, например распределение производственных заданий между предприятиями, раскрой материалов, за- 4 Зак. 1428 97
Глава I. Линейное программирование грузка оборудования, распределение судов по линиям, самолетов по рейсам, а также задачи по производству неделимой продукции. Если единица составляет малую часть всего объема производства, то оптимальное решение находят обычным симплексным методом, округляя его до целых единиц, исходя из смысла задачи. В противном случае округление может привести к решению, далекому от оптимального целочисленного решения. 1 I Постановка Задача целочисленного программирова- задачи ния формулируется так же, как и задача I и метод решения линейного программирования, но включается дополнительное требование, состоящее в том, что значения переменных, составляющих оптимальное решение, должны быть целыми неотрицательными числами. п Найти минимальное значение линейной функции 2 = ^^С^x^ при /=* ограничениях п / = 1 x^ — целые. %. > 0, [ — 1, 2, ..., /г, Предположим, что задача линейного программирования имеет многогранник решений, приведенный на рис. 1.16. Если наложить требование целочислепности, то допустимое множество решений такой задачи представляет собой совокупность изолированных целочисленных точек и не является выпуклым. Если добавить новые ограничения, связывающие внешние целочисленные точки, а затем в качестве многогранника решений использовать все выпуклое множество, ограниченное осями координат и новым контуром (рис. 1.16), то получим новую задачу линейного программирования со следующими свойствами: 1) новый многогранник решений содержит все целые точки, заключавшиеся в первоначальном многограннике решений; любая его угловая точка является целой; 2) так как линейная функция достигает оптимума в угловой точке многогранника решений, то построением такого многогранника и обеспечивается цел'очисленность оптимального решения. Метод решения поставленной задачи, предложенный Гомори, основан на симплексном методе и состоит в следующем. Симплексным методом находится оптимальный план задачи без учета условия целочис- ленности. Если оптимальный план целочисленный, то вычисления за- 98
§ 8. Целочисленное программирование каичивают; если же оптимальный план содержит хотя бы одну дробную компоненту #ь то накладывают дополнительное ограничение, учитывающее целочисленность компонент плана, и вычисления симплексным методом продолжают до получения нового оптимального плана. Если и он является нецелочислепным, то составляют следующее ограничение, учитывающее целочисленность. Процесс присоединения дополнительных ограничений повторяют до тех пор, пока либо будет найден целочисленный оптимальный план, либо доказано, что задача не имеет целочисленных планов. Это имеет место в случае, если для дробного XI все х^ в этой строке окажутся целыми. Недостатком метода Гомори является требование целочисленности для всех переменных: как основных, выражающих единицы продукций, так и для дополнительных, выражающих величину неиспользованных ресурсов, которые могут быть и дробными. Составление Пусть оптимальный план X = {хъ х29 ... дополнительного ..., хи ..., хт, ..., хп) получен на базисе Аь ограничения А2, ..., Аг-, ..., Ат; тогда последняя симплексная таблица имеет следующий вид: 1 0 ... о ... О х1ш т+1 ... хч ... х1п > 0 1 ... О ... О ^2, т+1 ••• *2/ ••• х2п х = О 0 ... 1 ... О Х1,т+1 п О 0 ... О ... 1 Хт,т+1 * • • %У • • • хтп Предположим, что хь — дробное; тогда некоторые х^ — также дробные (в противном случае задача не имеет целочисленного решения). Обозначим через [х^] н [х^] целые части чисел хг и хц, т. е. наибольшие целые числа, не превосходящие чисел х% и хц. Тогда величины дробных частей ц% и ц^ чисел х% и хи определяются как разности: где Ц1 и цц — неотрицательные. Например, [7/3] = 2; [-7/3] = -3; 7/3 - [7/3] = 7/3 — 2 = 1/3; -7/3 - — [—7/3] = —7/3 + 3 = 2/3. Так как по условию х$ (/ = 1,2, ..., п) — неотрицательные целые числа, то и разность [(#1*1 + <7*2*2 + — + Яы^п) — яА > ° также целое неотрицательное число. Преобразуя это неравенство в уравнение, вычитая из его левой части целую неотрицательную дополнительную переменную хп+г, умножим уравнение на —1, добавим к последней симплексной таблице и, применяя двойственный симплексный метод, находим новый план. Если он не является целочисленным, то по последней симплексной таблице составляем новое дополнительное ограничение. 4* 99
Глава I. Линейное программирование Если в оптимальном плане несколько дробных хи то дополнительное ограничение составляют для тах ць. Это ускоряет процесс получения оптимального целочисленного решения. Рассмотрим геометрический смысл введения дополнительного ограничения (рис. 1.17). Пусть в точке Л многогранника решений $ функция 1 достигает максимального значения 2 (А) = тах, но координаты точки А—дробные. Тогда введенные ограничения по целочисленности / и // от области <3 отсекают область С)' с угловой точкой А', координаты которой целочисленные и в которой линейная функция достигает максимального значения. Метод Гомори рассмотрим на примере задачи, которая была решена в § 5, Рис. 1.17 п. 3 (ее оптимальный план приведен в табл. 1.15). Найти минимальное значение линейной функции 2 = х1 — х2 — — Зхг при ограничениях 2*1 — *2 + х3 < 1, —4*х + 2*2 — А'з < 2, X] !> О (/ = 1, 2, 3), х$ — целые. 3*1 + А'3 < 5, В табл. 1.15 найден оптимальный план этой задачи X = A/3; 11/3; 4), в котором х± и х2 — дробные. Запишем последнюю итерацию, составим дополнительное ограничение и продолжим процесс до получения целочисленного решения (табл. 1.32). Дополнительные ограничения составим для х2 = 11/3, имеющего наибольшую дробную часть: <72 = *а-[*2] = 11/3—3 = 2/3, #21 = #22 = #23 = О, #24 = *24 — 1>24] = —1/3 + 1 = 2/3, #25 = *25 — 1>25] = 1/3 — 0=1/3, #26 = *2е — Ы = 2/3 — 0 = 2/3. Дополнительное ограничение имеет вид 2/3*4 + 1/3*в + 2/3*6 — 2/3 > 0, Умножим неравенство на —1 и преобразуем его в уравнение: -2/3*4 — 1/Зл:5 — 2/3*а + *7 = —2/3. Допишем коэффициенты этого уравнения снизу к последней итерации, введем в базис дополнительный вектор А7, компоненты которого записаны в последнем столбце таблицы. Применяя алгоритм двойственного симплексного метода, проводим одну итерацию, в результате которой и получаем оптимальное целочисленное решение: X = @; 3; 4), при котором 2т1п = — 15. лг л \ о\ / ! \ 1 % \ 100
§ 8. Целочисленное программирование Таблица 1.32 1 1 2 3 т+\ 4 1 2 3 4 т+\ Базис А3 А2 Аг 2г А, Л2 А! А« 2г С базиса —3 —1 1 -с> 0 —3 —1 1 0 -с. Ао 4 11/3 1/3 -46/3 —2/3 1 4 3 0 1 -15 1 А1 0 0 1 0 0 0 0 1 0 0 -1 А, 0 1 0 0 0 0 1 0 0 0 -3 Аз 1 0 0 0 0 1 0 0 0 0 | 0 | 0 А4 2 -1/3 —2/3 — 19/3 —2/3 2 -1 —1 1 —6 А5 1 1/3 -1/3 — 11/3 -1/3 1 0 -1/2 1/2 -7/2 о А0 0 2/3 1/3 -1/3 |-2/3| 0 0 0 1 0 о 1 А7 1 0 0 0 0 1 0 1 1/2 -3/2 -1/2 Замечание. Если в первоначальный базис задачи входили искусственные векторы, то при составлении дополнительного ограничения искусственные переменные необходимо опустить. Некоторые Задача оптимального раскроя материалов, экономические На предприятии производится раскрой т задачи различных партий материалов соответствен- целочисленного но в количестве Ьг (* = 1, 2, ..., т) единиц программирования одинакового размера в каждой партии. Из материалов всех партий требуется изготовить максимальное число комплектов 2, в каждый из которых входит р различных видов деталей соответственно в количестве кг (г = 1, 2, ... ...,р) единиц, если известно, что каждую единицу материала можно раскроить на детали п различными способами, причем при раскрое единицы С-й партии /-м способом получается а,цТ деталей г-го вида. Для составления математической модели задачи обозначим через х^ число единиц материала 1-й партии, которые будут раскроены /-м способом. Тогда из 1-й партии при /*-м способе раскроя получим а^г хц деталей г-то вида. Из всей же 1-й партии при применении к ней всех п п способов раскроя получим деталей г-го вида 2ао> Х1Ь а из всех т паР" /=1 т п тий их будет получено 2Г = 2 2^о> ха- В каждый комплект должно /= 1 /= 1 входить кг деталей, поэтому отношения 1г1кг {г = 1, 2, ..., р) определяют количество комплектов, которые можно составить из деталей г-го 101
Глава I. Линейное программирование вида. Количество полных комплектов по всем видам деталей определится наименьшим из этих отношений. В случае полной комплектности должно выполняться равенство отношений: 2х\кх = 22/к2 = ... = 1г1кт = ... =2р/кр, откуда р — 1 отношений можно выразить через любое из них, например через первое: 1г1кг = Ъ^к^ (г = 2, 3, ..., /?), или 2Г = = МА(г =2, 3, ..., р). Заменяя 1Т и 2Х их значениями, получаем р —1 ограничений по комплектности; т п 1 т п /=1 / = 1 л1 /=1 /=1 т п г « ч 2 2 ГО>— -Г-^иО-^и = 0(^ = 2, 3, ..., р). Учитывая имеющееся количество единиц материала в партиях, находим т ограничений по ресурсам: п Все ХA удовлетворяют условию неотрицательности: хн ^ 0 (ь = 1, 2> ..., ш; / = 1,2, ..., п). Таким образом, необходимо найти наибольшее значение функции / \ т п \ 2 = шах т!П — 22 аИгхьЛ при ограничениях 2 2 аиг— — аш ) хи = о, г=2, з, ...,р, 2 хи=ьь> 1' = 1» 2' •••» т> I /=1 #г-7- > 0 (/ = 1, 2, ..., т\ / = 1, 2, ..., /г); д:г-/ —целые. Рассмотрим решение задачи на следующем примере. Пример. Для изготовления комплектов из трех брусьев имеются две партии бревен. Первая партия содержит 99 бревен длиной 6,6 м каждое, вторая — 60 .бревен по 4,8 м каждое. Комплект состоит из двух брусьев длиной 2,2 м и одного длиной 1,3 м. Как распилить все бревна, чтобы получить максимальное число комплектов? Решение. Составим возможные способы распила, определим а^г, где / — 1, 2; г = 1, 2, и запишем результаты в таблицу (табл. 1,33). Обозначим через х^ (с = 1,2;/=: 1,2, 3, 4) количество бревен в I и II партиях, распиленных 1, 2, 3, 4-м способами, и составим математическую модель задачи. Из условия комплектности 2х/2 = 121\ и табл 1. 33 находим выражение для целевой функции. Так как Х1 = 22^, то гшп Bг1кг) = 22, 1 </• < 2 2. = 22 = л'12 ~т~ Зл:Аз "~г &хи ~г 2х22 т* Зх2з« 102
§ 8. Целочисленное программирование Таблица 1.33 Партия I II Размер брусьев 2.2 м 1.3 м 2.2 м 1.3 м Способы распила 1 | 2 | 3 | 4 Значения а-._ 3 2 2 1 1 2 1 3 3 5 — 11 11 Ъ 1 11 22 Ограничение по комплектности получаем из равенства 2ГХ = 222: 3*п ~г 2#12 + л:13 -р 2л:21 + л:22 = 2» (л:12 + Зл:13 + ох^ + 2л:22 т 3#2з)» или 3#ц — 0X12 — 10X^4 "Т 2#21 — 3#22 — ^23 — ^. Учитывая ограничения по материальным ресурсам, получим следующую математическую модель. Найти максимальное значение линейной функции ^ = *12 + 3*13 + 5*14 + 2*22 + 3*23. при ограничениях *11+*12+ *13+ *14 =99, *21 "Т~ *22 "Т~ *23 ~ V® , оА^ц 5*13 -*— I 0^14 "Т~ ^*21 ^*22 ^*23 == » л:г-7- — целые; х^ > 0 (г = 1, 2; / == 1, 2, 3, 4). Система содержит только один единичный вектор А12. Для того чтобы составить первую симплексную таблицу, с помощью второго уравнения исключим л*22 из третьего, а с помощью третьего, исключим хи из первого, за базис примем векторы Ац, А12, А22 и из линейной функции исключим л:12 и х22. Имеем г = 159 + 1/Злг13 + 2/Зл:14 — 1/Зх21 при ограничениях х12 + 8/Зх13+ 13/3х14—5/Зх21 + л:23 = 39, *21 ~\~ *22 I" *23 == ®^ » *1х — 5/Зл;13 — 10/ Зхи + 5/3*21 — х23 = 60, а- > 0 (* = 1, 2; / = 1, 2, 3, 4). Решение задачи приведено в табл. 1.34. Оптимальным является план х^ = 90; хи = 9; х22 = 60; х12 = #13 = *21 = -= х2П = 0, при котором ^тах = 165 Таким образом, чтобы получить 165 комплектов деталей, необходимо 90 бревен по 6,6 м распилить на 3 бруска по 2,2 м; 9 бревен по 6,6 м распилить на 5 брусков по 1,3 м; 60 бревен по 4,8 м распилить на 3 бруска, из которых один имеет длину 2,2 м, а два других —1,3 м. 103
Глава I. Линейное программирование Таблица 1.34 1 1 2 3 т~\ I 1 2 3 1 т+\ Базис А„ А„ С баз иса 0 0 0 ^ 1-С, 4 А 22 Ац 2/3 0 0 гг-с, Ло 39 60 60 159 9 60 90 165 0 | 0 | 1/3 | 2/3 | -1/3 | 0 | 0 Ап 0 0 1 0 0 0 1 0 Ацг 1 А1з 1 0 0 0 3/13 0 10/13 2/13 8/3 0 -5/3 -1/3 8/13 0 5/13 1/13 Аи Ц3/3| 0 — 10/3 -2/3 1 0 0 0 А2, 1 Л22 1 А23 -5/3 1 5/3 1/3 -5/13 1 5/13 1/13 0 1 0 0 0 1 0 0 1 1 — 1 0 3/13 1 -3/13 2/13 | Задача оптимального использования оборудования. На предприятии имеется т видов оборудования (станков) соответственно в количестве Ьь (I = 1,2, ..., т) единиц. На каждом виде оборудования можно изготавливать п видов деталей, которые входят в комплект соответственно в количестве 6/ (/ = 1,2, ..., п) единиц. Пусть аи — производительность 1-го вида оборудования при изготовлении /-го вида детали. Необходимо составить план использования оборудования, который обеспечит максимальный выпуск комплектной продукции. Обозначим через хи количество 1-го оборудования, на котором изготавливаются детали /-го вида. За единицу времени их будет произведено аихи единиц, а на всех видах оборудования т 1=1 Так как в каждый комплект должно входить к деталей, то отношения %]1к] (/ = 1»2 ..., п) определяют количество комплектов, которое можно составить из деталей /-го вида. Количество полных комплектов по всем видам деталей определяется наименьшим из этих отношений. Для соблюдения условия полной комплектности, очевидно, должно выполняться равенство отношений: 211к1 = 22/к2 = ... = 2/й/ = ...= = 2п/кп. Отсюда получаем п—1 ограничений по комплектности: Х}1к} = 1Лгх (I = 2,3, ..., я), т I к- \ ^иЬ] хи—--± ап хп)^0 (/ = 2, 3, ..., /г). 104
§ 8. Целочисленное программирование Так как предполагается, что оборудование используется полностью, то получаем еще т ограничений: п Х(] > 0 (* = 1, 2, ..., т; / = 1, 2, ..., п). Таким образом, необходимо найти наибольшее значение функции 2 = тах тт — "V аи ХИ при ограничениях у П I /=1 \ т I г ш ч 2 (я*7*Ъ— ~ГаИхп )=2°» /«=2, 3, .... я, I /=1 V «1 / *и* > 0 (* = 1, 2, ..., т; / — 1, 2, ..., /г), *г-7- — целые. На основании математической модели можно заключить, что рассмотренная задача является частным случаем задачи оптимального раскроя материалов Вопросы для самопроверки 1. Какие экономические задачи относятся к задачам целочисленного программирования? 2. Сформулируйте задачу целочисленного программирования. 3. В чем состоит метод Гомори? 4. Как составить дополнительное ограничение-, если компоненты оптимального плана задачи являются дробными? 5. В каком случае поставленная задача не имеет целочисленного решения? 6. Какой геометрический смысл имеет введение дополнительного ограничения? 7. Сформулируйте задачу оптимального раскроя материалов и составьте ее математическую модель. Упражнения 1. Найти целочисленное решение задач линейного программирования: а) для примера, рассмотренного в § 5, п. 5, оптимальный план которого приведен в табл. 1.20; б) для примеров 1 и 2, рассмотренных в § 7, п. 5, оптимальные планы которых приведены соответственно в табл. 1.30 и 1.31. 2. В обработку поступила партия из 150 досок длиной 7,5 м каждая для изготовления комплектов из четырех деталей. Комплект состоит из одной детали длины 3 м, двух деталей размером по 2 м и одной детали размером 1,6 м. Как распилить все доски, чтобы получить возможно большее число комплектов? Указание. Сначала составить таблицу возможных способов распила одной доски на детали заданных размеров. 105
Г л а в а I. Линейное программирование § 9. Транспортная задача линейного программирования В настоящее время транспортная задача линейного программирования широко применяется как в теоретических разработках, так и в практике планирования различных экономических процессов. Особо важное значение она имеет при решении вопросов рационализации поставок важнейших видов промышленной и сельскохозяйственной продукции, а также оптимального планирования грузопотоков и работы различных видов транспорта. 1 I Постановка Некоторый однородный продукт, сосредо- задачи точенный у т поставщиков А% в количестве и ее математическая аг (I = 1, 2, ..., т) единиц соответственно, I модель необходимо доставить п потребителям В7- в количестве Ъ} (/ == 1,2, ..., п) единиц. Известна стоимость Сц .перевозки единицы груза от /-го поставщика к /-му потребителю. Необходимо составить план перевозок, позволяющий вывезти все грузы, полностью удовлетворить потребности и имеющий минимальную стоимость. Обозначим через хц количество единиц груза, запланированных к перевозке от 1-го поставщика к /-му потребителю; тогда условие задачи можно записать в виде таблицы (табл. 1.35), которую в дальнейшем будем называть матрицей планирования. Составим математическую модель задачи. Так как от г-го поставщика к /-му потребителю запланировано к перевозке хц единиц груза, Таблица 1.35 | Поставщики А 4 1 Атг 1 Потребности 1 Потребители В, | В2 | . • • Вп Си сЪ1 *21 ХТГЫ . С12 Х1?. Х2'2 ХГП2 Ь\ | Ь7 . . . . . . • . . Х1Г) Х2П ^гпп хтпп 1 ьп Запасы ах | «2 От 2а1=Щ 106
§ 9. Транспортная задача линейного програм. то стоимость перевозки составит Сихи. Стоимость всего плана выразится двойной суммой: т п *=1 /=1 Систему ограничений получаем из следующих условий задачи: п а) все грузы должны быть вывезены, т. е. 2*г./ = аь (*=1,2, ... ..., т) (эти уравнения получаются из строк табл. 1.35); б) все потребности должны -быть удовлетворены, т. е. 1=1 ^(/ = 1,2, ...,я) (уравнения получаются из столбцов табл. 1.35). Таким образом, математическая модель транспортной задачи имеет следующий вид. Найти наименьшее значение линейной функции A.83) при ограничениях A.84) A.85) 1=1 /=1 2 хи = а1, / = 1, 2, ..., /я, т / = 1 хи>0(/ = 1, 2, ..., т; / = 1, 2, ..., п). В рассмотренной модели предполагается, что суммарные запасы равны суммарным потребностям, т. е. A.86) /=1 /=1 Такая модель называется закрытой. Теорема 1.17. Любая транспортная задача, у которой суммарный объем запасов совпадает с суммарным объемом потребностей, имеет решение. Для доказательства теоремы необходимо показать, что при заданных условиях существует хотя бы один план задачи и линейная функция на множестве планов ограничена. 107
Глава I. Линейное программирование т п Доказательство. Пусть 2 #* = 2^/ = М > 0. Тогда ве- личины*^ = аьЪ]1М (I = 1,2, ..., т; / = 1,2, ..., л) являются планом, так как они удовлетворяют системе ограничений A.84), A.85). Действительно, подставляя значения хи в A.84) и A.85), имеем а* 13 ^и м м ^ ] м 1 / = 1 / = 1 /-1 т т и и т и у х у ^=1у в|=АМяЬу. ^ш 1} Ал м м ^ 1 м ] Выберем из значений Си наибольшее С = тах Сц и заменим в линейной функции A.83) все коэффициенты на С; тогда, учитывая A.84), получаем т п т п т 2 2 Сцхч<с 2 2 *и=с' 2 <*1=см. / = 1/ = 1 / = 1/ = 1 /=1 Выберем из значений Сц наименьшее С" = гшп Сц и заменим в линейной функции все коэффициенты на С"; тогда, учитывая A.84), имеем т п т п т 2 2с*^>с'/2 2**7==с"'2а^с'м- /=1/ = 1 < = 1/ = 1 /=1 Объединяя два последних неравенства в одно двойное, окончательно получаем см < г < см, т. е. линейная функция ограничена на множестве планов транспортной задачи. Построение Как и для других задач линейного про- первоначального граммирования, итерационный процесс опорного плана по отысканию оптимального плана транспортной задачи начинают с нахождения опорного плана. Рассмотрим систему ограничений A.84) и A.85) транспортной задачи. Она содержит тп йеизвестных и т +п уравнений, связанных соотношением A.86). Если сложить почленно уравнения отдельно подсистемы A.84) и отдельно подсистемы A.85), то получим два одинаковых уравнения. В табл. 1.35 такое сложение равнозначно соответственно почленному сложению столбцов и почленному сложению строк. Наличие в системе ограничений двух одинаковых уравнений говорит об ее линейной зависимости. Если одно из этих уравнений отбросить, то в общем случае система ограничений должна содержать т + п — 1 линейно независимых уравнений, следовательно, невырож- 108
§ 9. Транспортная задача линейного програм. денный опорный план транспортной задачи содержит т + п — 1 положительных компонент или перевозок. Таким образом, если каким-либо способом получен невырожденный опорный план транспортной задачи, то в матрице (х^) (I = 1,2, ..., т\ / = 1,2, ..., п) значений его компонент (табл. 1.35) положительными являются только т + п — 1, а остальные равны нулю. Если условия транспортной задачи и ее опорный план записаны в виде таблицы (табл. 1.35), то клетки, в которых находятся отличные от нуля перевозки, называются занятыми, остальные — незанятыми. Занятые клетки соответствуют базисным неизвестным, и для невырожденного опорного плана их количество равно т + п — 1. Если ограничения транспортной задачи записаны в виде A.84) и A.85), то, как известно, базисным неизвестным, включенным в опорный план, соответствует система линейно независимых векторов. Опорность плана при записи условий транспортной задачи в виде таблицы (табл. 1.35) заключается в его ацикличности, т. е. в таблице нельзя построить замкнутый цикл, все вершины которого лежат в занятых клетках. Циклом называется набор клеток вида (^Д) (у2) X (/У2) ••• (Л'т)> в котором две и только две соседние клетки расположены в одном столбце или одной строке таблицы, причем последняя клетка находится в той же строке или столбце, что и первая. Построение циклов начинают с какой-либо занятой клетки и переходят по столбцу (строке) к другой' занятой клетке, в которой делают поворот под прямым углом и движутся по строке (столбцу) к следующей занятой клетке и т. д., пытаясь гозвратиться к первоначальной клетке. Если такой возврат возможен, то получен цикд и план не является опорным. Клетки, в, которых происходит поворот под прямым углом, определяют вершины цикла. В противном случае план является опорным. Всякий план транспортной задачи, содержащий более т + п— 1 занятых клеток, не является опорным, так как ему соответствует линейно зависимая система векторов. При таком плане в таблице всегда можно построить замкнутый цикл, с помощью которого уменьшают и число занятых клеток до т + п — 1. Если к занятым клеткам, определяющим опорный невырожденный план, следовательно, и ацикличный, присоединить какую-либо незанятую клетку, то план становится неопорным, появляется единственный цикл, все вершины которого, за исключением одной, лежат в занятых клетках. Первоначальный опорный план транспортной задачи как задачи линейного программирования можно построить ранее рассмотренными методами, однако это сопряжено с большими вычислениями. Существуют несколько простых схем построения первоначального опорного плана транспортной задачи, которые рассмотрим на примерах. Метод северо-западного угла. Пусть условия транспортной задачи заданы табл. 1.36. Не учитывая стоимости перевозки единицы груза, начинаем удовлетворение потребностей первого потребителя Вх за счет запаса постав- 109
Глава I. Линейное программирование Таблица 1.36 Поста в- 1 щики Ах А2 А8 А4 Потребности 1 в, 100 1 1 1 1 100 — — 200 10 2 8 11 ! в2 — "~50" 1 [ 50 — 200 7 7 5 8 1 Потребители в, 4 10 3 100 12 100 в. 1 6 2 ~~50~! 1 1 16 50 ' 100 в5 4 | И 2 13 50 250 Запасы 100 250 200 300 850 1 щика Аг. Для этого сравниваем ах «= 100 с Ьг *= 200, а±< Ъъ мень ший из объемов, т. е. *=* 100 ед. записываем в левый нижний угол клет ки АхВ^ Запасы первого поставщика полностью израсходованы, по этому остальные клетки первой строки прочеркиваем. Потребности В остались неудовлетворенными на 200—100=100 ед. Сравниваем этот остаток с запасами поставщика А 2: так как 100<250, то 100 ед. записываем в клетку А2ВЪ чем полностью удовлетворяем потребности потребителя Въ а оставшиеся клетки в первом столбце прочеркиваем. У поставщика А2 осталось 150 ед. груза. Удовлетворяем потребителя В2 за счет оставшегося у поставщика А2 груза. Для этого сравниваем этот остаток с потребностями потребителя 232 : 150 < 200, записываем 150 ед. в клетку А2В2 и, так как запасы А2 полностью израсходованы, прочеркиваем остальные клетки второй строки. Потребности В2 остались неудовлетворенными на 50 ед. Удовлетворяем их за счет поставщика А3 и переходим к удовлетворению В3 за счет остатка, имеющегося у поставщика Л3, и т. д. Процесс продолжаем до тех пор, пока не удовлетворим всех потребителей за счет запасов поставщиков. На этом построение первоначального опорного плана заканчивается. Таким образом, в табл. 1.36 в правых верхних углах клеток стоят числа, определяющие стоимость перевозки единицы грузов, а в левых нижних углах — числа, определяющие план перевозок, так как их сумма по строкам равна запасам соответствующего поставщика, а сумма по столбцам — потребности соответствующего потребителя. 110
§ 9. Транспортная задача линейного програм. Проверим, является ли план, построенный в табл. 1.36, опорным. Видим, что, начиная движение от занятой клетки АгВх, вернуться не только в нее, но и в любую другую занятую клетку, двигаясь только по занятым клеткам, невозможно. Следовательно, план является опорным. В то же время план невырожденный, так как содержит точно т + + п — 1 =4 + 5 — 1 = 8 занятых клеток. При составлении первоначального опорного плана методом северозападного угла стоимость перевозки единицы груза не учитывалась, поэтому построенный план далек от оптимального, получение которого связано с большим объемом вычислительных работ. Поэтому рассмотренный метод используется при вычислениях с помощью ЭВМ. Найдем общую стоимость составленного плана как сумму произведений объемов перевозок, стоящих в левом углу занятых клеток, на соответствующие стоимости в этих же клетках: 2 = 100-10 + 100-2 + 150-7 + 50-5 + 100-3 + 50-2 + 50-16 + 250-13 = = 6950 (ед. стоимости) Если при составлении опорного плана учитывать стоимость перевозки единицы груза, то, очевидно, план будет значительно ближе к оптимальному. Метод минимальной стоимости. Суть метода заключается в том, что из всей таблицы стоимостей выбирают наименьшую и в клетку, которая ей соответствует, помещают меньшее из чисел аг или Ь]. Затем из рассмотрения исключают либо строку, соответствующую поставщику, запасы которого полностью израсходованы, либо столбец, соответствующий потребителю, потребности которого полностью удовлетворены, либо и строку и столбец, если израсходованы запасы поставщика и удовлетворены потребности потребителя. Из оставшейся части таблицы стоимостей снова выбирают наименьшую стоимость, и процесс распределения запасов продолжают, пока все запасы не будут распределены, а потребности удовлетворены. Составим с помощью этого метода опорный план уже рассмотренной задачи. Запишем ее условие в таблицу (табл. 1.37). Выбираем в таблице наименьшую стоимость (это стоимость, помещенная в клетке Л^), так как а3 = 64> Ю0 ед. груза помещаем в этой клетке и исключаем из рассмотрения первую строку и четвертый столбец. В оставшейся таблице стоимостей наименьшей является стоимость, расположенная в клетке А2В1 и в клетке Л3#5. Заполняем любую из них, например А2В1. Имеем 200 < 250, следовательно, записываем в нее 200 и исключаем из рассмотрения столбец Вг. В клетку А-6ВЪ записываем 200 ед. и исключаем из рассмотрения строку Аъ. В оставшейся таблице стоимостей снова выбираем наименьшую стоимость и продолжаем процесс до тех пор, пока все запасы не будут распределены, а потребности удовлетворены. В результате получен план X = (хи = 100; х21 = 200; х22 = 50; хзь = 200, хк2 = 150; *43 = 100; *45 = 50), остальные значения переменных равны нулю. 111
Глава I. Линейное программирование Таблица 1.37 Поставщики А А2 А3 А, Потребности Потребители \ вг \ в, 10 2 200 8 11 200 7 1 7 50 5 8 150 200 | вь 4 Ю 3 12 100 100 | в. 1 100 6 2 16 100 1 в* 4 11 2 200 13 50 250 Запасы 100 250 200 300 850 План не содержит циклов и состоит из семи положительных перевозок, следовательно, является вырожденным опорным планом. Определим его стоимость: I = 100.1 + 200.2 + 50.7 + 200.2+150.8+100.12 + 50.13 = = 4300 (ед). Стоимость плана перевозок значительно меньше, следовательно, он ближе к оптимальному. Метод двойного предпочтения. Если таблица стоимостей велика, то перебор всех элементов затруднителен. В этом случае используют метод двойного предпочтения, суть которого заключается в следующем. В каждом столбце отмечают знаком V клетку с наименьшей стоимостью. Затем то же проделывают в каждой строке. В результате некоторые клетки имеют отметку V V. В них находится минимальная стоимость как по столбцу, так и по строке. В эти клетки помещают максимально возможные объемы перевозок, каждый раз исключая из рассмотрения соответствующие столбцы или строки. Затем распределяют перевозки по клеткам, отмеченным знаком \/. В оставшейся части таблицы перевозки распределяют по наименьшей стоимости. Применим метод двойного предпочтения к задаче, условия которой записаны в табл. 1.38. Сначала заполняем клетки А2ВЪ А±В^ А3ВЪ, а затем клетку Л4В2. В оставшейся части таблицы последовательно заполняем клетки по минимальной стоимости А2ВЗУ Л4В3, Л4В5. План, полученный в табл. 1.38, является вырожденным опорным планом. Найдем его стоимость: 1 = 100.1 + 200.2 + 50.10+200.2 + 200.8 + 50.12+50.13 = = 4250 (ед ). 112
§ 9. Транспортная задача линейного програм. Таблица 1.38 Поставщики А, \ Аг А, А, Потребности Потребители Вх 10 V V 2 200 8 И 200 в* 7 7 V 5 V 8 200 200 в» | в4 4 10 50 V 3 12 50 100 V V 1 100 6 V 2 16 100 в6 4 11 УУ 2 200 13 50 250 Запасы 100 250 200 300 850 Таким образом, наименьшую стоимость имеет опорный план, полученный методом двойного предпочтения, следовательно, он наиболее близок к оптимальному плану*. С помощью рассмотренных методов построения первоначального плана можно получить вырожденный или невырожденный опорный план. Построенный опорный план транспортной задачи как задачи линейного программирования можно было бы довести до оптимального с помощью симплексного метода. Однако из-за громоздкости симплексных таблиц, содержащих тп неизвестных, и большего объема вычислительных работ для получения оптимального плана используют более простые методы, самый распространенный из которых метод потенциалов (модифицированный распределительный метод). Метод Теорема 1.18. Если план X* = (х*^ транс- потенциалов портной задачи является оптимальным, то ему соответствует система из т + п чисел Щ и V], удовлетворяющих условиям Щ+У] = С1Л для 4/>0 и Щ + У]<Си для 4=0 (/ = 1, 2, ..., т\ / = 1, 2, ..., /г). Числа Щ и V) называются потенциалами соответственно поставщиков и потребителей. *Отсюда не следует вывод, что с помощью метода двойного предпочтения всегда получают лучший первоначальный план по сравнению с методом минимального элемента. Рациональность методов можно оценить только в среднем. ИЗ
Глава I. Линейное программирование Доказательство. Транспортную задачу минимизации ли- т п нейиой функции 2^22 Сихи при ограничениях ( ^1-1-^12+ •••+^171 =«1, /=1, 2, ..., /Л, *у>0 (/ = !, 2, ...,т; /=1,2, .... /г) можно рассматривать как двойственную некоторой исходной задачи линейного программирования, условия которой получают по общей схеме, рассмотренной в §7, если каждому ограничению вида хц + #*2 + + ... + Х(П = щ в исходной задаче соответствует переменная 1/г (I = 1,2, ..., /я), а каждому ограничению вида х17- + х2</ + ... + + ^ту = Ъ} — переменная V; (/ = 1, 2, ..., я), а именно максимизи- ровать линейную функцию / = 2#*^г + 2^^- при ограничениях Иг + 16 < С^ (I = 1, 2, ,.., /я;"/~= 1, 2, "., /г). План X* — оптимальный план двойственной задачи, поэтому план V* = (Щ, V]) является планом исходной задачи и на основании теоремы двойственности тах I — тт 2 или т п т п 2 <н Щ + 2 ь, у;= 2 2 си хч> хй>°- На основании теоремы 1.16 получаем, что ограничения исходной задачи, соответствующие положительным компонентам оптимального плана двойственной задачи,удовлетворяются как строгие равенства, а соответствующие компонентам, равным нулю,— как неравенства, т. е. 6// + У/=Су для х^>09 Щ + У}<Си для х% = 0. На основании доказанной теоремы для того чтобы первоначальный опорный план был оптимальным, необходимо выполнение следующих условий: а) для каждой занятой клетки сумма потенциалов должна быть равна стоимости единицы перевозки, стоящей в этой клетке: A.87) Уг + Уз^Сц; б) для каждой незанятой клетки сумма потенциалов должна быть меньше или равна стоимости единицы перевозки, стоящей в этой клетке: A-88) ^1 + У]<Сг]. 114
§ 9. Транспортная задача линейного програм. Таблица 1.39 Матрица планирования Поставщики Лх А2 А3 А4 V % = —12 V и2 = —1 V V «4=0 Потребности Потребители в4 | в2 | 10 2 200 8 И 200 V2 = 8 7 —7 50 | 1 1 1 5 1 1+>-*- 150 200 в, | в< | в. | у3 = 12 4 10 Т| 3 _\2 100 100 04=13 1 100 +6 !~2 1 0 | 16 100 V Vь = \г 4 11 Т1 +2 200| -А13 50 250 За пасы 100 250 : 200 300 850 Если хотя бы одна незанятая клетка не удовлетворяет условию A.88), то опорный план является неоптимальным и его можно улучшить, вводя в базис вектор, соответствующий клетке, для которой нарушается условие оптимальности (т. е. в клетку надо переместить некоторое количество единиц груза). Таким образом, для проверки плана на оптимальность необходимо сначала построить систему потенциалов. Рассмотрим алгоритм метода потенциалов и одновременно проиллюстрируем его применение на опорном плане, полученном в табл. 1.37. Для этого к таблице добавим строку и столбец, в которых записывают значения потенциалов (в результате получим табл. 1.39). 1. Построение системы потенциалов. Для построения системы потенциалов используем условие Уь + У^С^, где Си —- стоимость перевозки единицы груза занятой клетки в /-й строке и /-м столбце. Систему потенциалов можно построить только для невырожденного опорного плана. Такой план содержит т + п — 1 занятых клеток, поэтому для него можно составить систему из т+п—1 линейно независимых уравнений вида A.87) с п + т неизвестными. Уравнений па одно меньше, чем неизвестных, поэтому система является неопределенной и одному неизвестному (обычно 6^) придают нулевое значение. После этого остальные- потенциалы определяются однозначно. 115
Глава I. Линейное программирование Пусть известен потенциал V\\ тогда из равенства A.87) следует Уз = Си - «/,. Если известен потенциал У^ то из того же равенства имеем: (Д- = Сц— — V]. Таким образом, для определения неизвестного потенциала от величины Си занятой клетки следует вычесть известный потенциал. В табл. 1.39 опорный план вырожденный, так как не хватает одной занятой клетки. Поэтому выбираем строку, которая содержит наибольшее количество занятых клеток (строка Л4), и полагаем (/4 = 0. В строке Л4 три занятых клетки (Л4В2, ААВ3 и Л4В5), которые связывает соответственно потенциал [у4 с потенциалами У2, Уъ, Уъ. Определим эти потенциалы: У2 = С42 — (У4 = 8 — 0 =8, Уз == С43 — {/4 = = 12—0 = 12, Кб =± С4б — {/4 = 13 — 0 = 13. С помощью потенциала (/4 определить еще какой-нибудь неизвестный потенциал невозможно, поэтому отмечаем его знаком V. Теперь поочередно просматриваем столбцы В2, В3 и 55, для которых потенциалы уже определены. В столбце В2 имеются две занятые клетки (А2В2 и Л4В2), которые связывают потенциал У 2 с потенциалами Ц2 и (/4; потенциал [/4 уже определен. Переходим к клетке А2В2 и с помощью С22 определим неизвестный потенциал: 1J = С22— ^2 = 7 — 8 = — 1. Отмечаем потенциал У2 знаком V и переходим к столбцу В3. В этом столбце нет занятых клеток, которые бы связывали Уз с неизвестными потенциалами строк. Отмечаем потенциал У3 знаком V и переходим к столбцу Вб. В нем одна занятая клетка (А3ВЪ)У которая связывает Уъ с неизвестным потенциалом Vг3. Определим его: 1!3=^С32 — Уб = 2 —13= —11. Отмечаем потенциал Уг знаком V и, так как неизвестные потенциалы столбцов использованы, переходим к известным потенциалам строк, которые еще не отмечены знаком \/,затем просматриваем соответствующие им строки. Потенциал Ц2 занятой клеткой А2Вг связан с неизвестным потенциалом Уг. Находим этот потенциал: Уг = 2 — (—1) =3 и отмечаем потенциал И2 знаком V- В строке А3 нет занятых клеток, которые связывали бы потенциал (У3 с неизвестным потенциалом столбца; потенциал 1!9 отмечаем знаком V- Переходим к известным потенциалам столбцов, которые не отмечены знаком V (это потенциал V!). Но в столбце Вг нет занятых клеток, которые связывали бы Уг с неизвестным потенциалом строки, поэтому потенциал Уг отмечаем знаком V- Построение системы потенциалов прервалось, потенциалы 1/± и 1/4 остались неопределенными. Это произошло потому, что опорный план вырожденный (отсутствует одна занятая клетка). Для устранения вырожденности дополняют количество занятых клеток до т + п — 1, вводя нулевые перевозки. Клетки, в которые введены нулевые перевозки, называются фиктивно занятыми. Чтобы определить потенциалы (/х и У4, необходимо сделать фиктивно занятой одну из незанятых клеток либо строки Аъ либо столбца 2?4, для которых один из потенциалов определен. Задача решается на Минине
§ 9. Транспортная задача линейного програм. мизацию линейной функции, поэтому целесообразно сделать фиктивно занятой клетку, в которой стоит наименьшая стоимость. Просматривая стоимости, стоящие в незанятых клетках строки Аг и столбца В4, выбираем наименьшую (пнп С^ = 2), которая соответствует клетке Л3Я4, в нее записываем нуль и считаем занятой. Теперь клетка Л3В4 связывает потенциал У с потенциалом 1/з; У4 = С34 — — 1/з = 2 — (— 11) - 13. Затем находим Цг = Си — У4 = 1—13 = = —12. Система потенциалов построена, знаки V» которыми отмечались потенциалы, следует стереть. Проверяем правильность построения системы. Для этого просматриваем занятые клетки строк и для каждой из них определяем сумму потенциалов. Если для всех занятых клеток выполняется равенство A.87), то система построена правильно, в противном случае ее надо построить заново или изменить так, чтобы условие A.87) выполнялось. 2. Проверка выполнения условия оптимальности для незанятых клеток. Просматриваем строки и для каждой незанятой клетки проверяем выполнение условия A.88), т. е. суммируем потенциалы, на пересечениях которых стоит незанятая клетка, сумму сравниваем со стоимостью, стоящей в ней. Если для всех незанятых клеток V\ + + V; ^ Си, то (см. теорему 1.18) план оптимальный. Если для некоторых клеток III + V^>С^^у то план является неоптимальным. Тогда для каждой клетки, в которой не выполняется условие оптимальности, находим величину разности A/г + V}) — Сц >0и записываем ее значение в левый нижний угол этой же клетки. В табл. 1.39 для незанятых клеток последовательно получаем: для строки Л^ — 9 < 10, —4 < 7, 0 < 4, —8 < 4; для строки Л2: для клетки Л253 имеем И > 10 или И—10 = 1; условие оптимальности нарушено, разность, равную единице, записываем в эту клетку; для клетки Л2В4 имеем 12 > 6, 12—6 = 6, условие также нарушено, разность, равную шести, записываем в эту клетку; для клетки Л255 имеем 12 > 11, 12—11 = 1, разность, равную единице, записываем в клетку; для строки Лз: — 8<8, —3<5, КЗ; для строки Л4: 3< 11, 13 < 16. Таким образом, имеются три клетки, в которых нарушено условие оптимальности; разности соответственно равны 1, 6 и 1. 3. Выбор клетки, в которую необходимо послать перевозку. Транспортная задача линейного программирования решается на минимум ллнейной функции, поэтому алгоритм ее решения также следует общим принципам алгоритма симплексного метода решения задач па минимум. Если отождествлять занятые клетки с векторами, составляющими базис, а незанятые — с остальными векторами системы ограничений, то в общей задаче линейного программирования в базис включается тот вектор, которому соответствует тах 00 B7- — С,)- В транспортной задаче значение 2/ заменено суммой потенциалов A/1 + Ку), поэтому за- 117
Глава I. Линейное программирование грузке подлежит в первую очередь клетка, которой соответствует тах \{и. + у.) _ Си]. Таким образом, в рассматриваемом примере тах A; 6; 1) = 6, клетку Л2В4 необходимо сделать занятой. Для этого сначала необходимо определить, сколько единиц груза должно быть перераспределено в нее. 4. Построение цикла и определение величины перераспределения груза. Для определения количества единиц груза, подлежащих перераспределению, отмечаем знаком «+» незанятую клетку, которую надо загрузить. Это означает, что клетка присоединяется к занятым клеткам. В таблице занятых клеток стало т + п, поэтому появляется цикл, все вершины которого, за исключением клетки, отмеченной знаком «+», находятся в занятых клетках, причем этот цикл единственный. Отыскиваем цикл и, начиная движение от клетки, отмеченной знаком «+», поочередно проставляем знаки «—» и «+». Затем находим 0о = гшп хц, где хц — перевозки, стоящие в вершинах цикла, отмеченных знаком «—». Величина 0О определяет, сколько единиц груза можно перераспределить по найденному циклу. Значение 00 записываем в незанятую клетку, отмеченную знаком «+», двигаясь по циклу, вычитаем 00 из объемов перевозок, расположенных в клетках, которые отмечены знаком «—», и прибавляем к объемам перевозок, находящихся в клетках, отмеченных знаком «+». Если 0О соответствуют несколько минимальных перевозок, то при вычитании оставляем в соответствующих клетках нулевые перевозки в таком количестве, чтобы во вновь полученном опорном плане занятых клеток было т + п — 1. В рассматриваемом примере клетку Л2В4 отмечаем знаком «+» и находим цикл, приведенный в табл. 1.39. Имеем 0О = гшп E0; 50; 0) = 0, т. е. нулевую перевозку необходимо переместить в клетку Л254, остальные числа при вычитании и прибавлении нуля, очевидно, не изменятся. 5. В результате перераспределения 0О получен новый опорный невырожденный план (табл. 1.40), который снова подлежит проверке на оптимальность. Для проверки на оптимальность нового опорного плана можно вновь построить систему потенциалов и проверить выполнение условия оптимальности для каждой незанятой клетки. Если полученный план снова окажется неоптимальным, то следует выполнить вычисления, приведенные в п. 4. Процесс повторяют до тех пор, пока все незанятые клетки не будут удовлетворять условию A.88). Все вычисления оптимального плана рекомендуется выполнять в одной таблице, поэтому значения Хц, {/*, 1^, а также знаки V» «+» «—», следует записывать карандашом и затем стирать. Построение ноеой системы потенциалов и проверка всех незанятых клеток на оптимальность требуют значительных затрат времени, поэтому рассмотрим порядок изменения системы потенциалов, позволяющий значительно сократить объем вычислительных работ. 6. Изменение системы потенциалов. В новом опорном плане, записанном в табл. 1.40, пока указаны старые потенциалы. Клетка Л2В4, 118
§ 9. Транспортная задача линейного програм. Таблица 1.40 Матрица планирования Поставщики 1 Ау А2 А3 \ + ® -6 - 1! -11 0 Потребности Потребители 1 В1 3 10 2 200 8 11 200 Щ 8 7 7 50 1 1 5 + ! 8 150 200 *з 12 4 11 10 Т) 3 12 100 100 я* 4? 7 1 100 Г + ^б @ 2 16 100 в, 13 + 4 1 И 71| 1 2 200 1 Ь 50 - 250 Запасы 100 250 200 300 850 прежде свободная, теперь стала занятой. Для занятой клетки должно выполняться условие 1)ь + V; = Си. В действительности же /У2 + + У4 --= — 1 + 13 = 12 =^= 6. Следовательно, необходимо либо /У2, либо 1/4 уменьшить на шесть. Очевидно, что уменьшать следует тот потенциал, уменьшение которого приводит к наименьшему изменению остальных потенциалов. Так, если изменить. У4, а потенциал Ц2 оставить без изменения, то изменению подлежит только потенциал 1)г\ в противном случае изменяются все остальные потенциалы. Отмечаем потенциал И2 знаком «!», а потенциал ]/4—знаком «—». Изменение потенциала У4, так как клетка АгВ^ занята, потребует изменения потенциала 1)х (отмечаем его знаком «+»); на этом цепочка изменений обрывается. Таким образом, значения потенциалов, отмеченных знаком «—», уменьшаются, а знаком «+» — увеличиваются (в данном случае на 6 ед.). В результате для всех занятых клеток выполняется соотношение A.87). Значение потенциала ]/4 уменьшилось на 6 ед., поэтому свободные клетки в столбце В4, не удовлетворяющие условию оптимальности, появиться не могут. Если же такие клетки были, то они могут исчезнуть, так как разность, равная шести, максимальна для всех клеток, в которых нарушено это условие. Свободные клетки, не удовлетворяющие условию оптимальности, могут появиться только в строке (столбце), потенциал которой увеличился. Потенциал Уг увеличился на бед., поэтому незанятые клетки строки Аг следует проверить на оптимальность:— 3 < 10; 2 < 7; 6 > 4; 7 > 4. Клетки А1В3 и А1ВЪ не удовлетворяют этому условию; находим для них величины разностей 119
Глава I. Линейное программирование Щ + V; — си и записываем юс в левый нижний угол соответствующих клеток. Определяем тах B; 3; 1; 1) = 3. Клетка А1ВЬ подлежит загрузке, отмечаем ее знаком «+» и устанавливаем цикл перераспределения, показанный в табл. 1.40 пунктирной линией. Отмечаем вершины цикла попеременно знаками «—» и «+» и находим 0О = тт E0; 50; 100)=^ = 50. По циклу перераспределяем 50 ед. груза в клетку АгВъ и получаем опорный план, приведенный в табл. 14Л. Так как значение б0 = 50 достигается для двух клеток цикла, отмеченных знаком «—», то в полученном опорном плане в клетке А2В2 оставлена нулевая перевозка. Заметим, что план в результате последней итерации улучшился на 150 ед. стоимости. Это улучшение находится как произведение количества единиц груза, перемещенного в свободную клетку, на величину разности в этой клетке. Величина разности (IIг + К?) — Си > 0 в незанятой клетке показывает, на сколько уменьшится стоимость плана перевозок, если единицу груза перераспределить в эту клетку. В полученном опорном плане изменяем систему потенциалов и проверяем его на оптимальность. Условию оптимальности не удовлетворяют две клетки с разностями, равными двум и единице, следовательно, груз надо перераспределить в клетку АгВ^ Отмечаем ее знаком «+» и строим цикл перераспределения, который показан в табл. 1.41 пунктирной линией. Циклы могут иметь различную конфигурацию, быть даже самопересекающимися (табл. 1.41). Отмечаем вершины цикла знаками «—» или «+» и находим величину перераспределения: 90 ~.гшп E0; 0; 100) =0. Нулевую перевоз- Таблица 1.41 Матрица Поставщики л ^ ^ 1  - 61 - 1 + -К -8 0 Потребности Потребители *1 3 10 2 200 8 11 200 в2 8 7 - 7 0 [' 1 5 + I 8 • 200 200 *з 12 *" 1 10 1 3 1 12 I 100 - 100 #4 7 - 1 50~] 50 + 2 16 100 Вь & 10 4 50 И 2 200 13 250 Запасы 100 250 200 300 850 120
§ 9. Транспортная задача линейного програм. Таблица 1.42 Матрица планирования Поставщики А' А2 А3 Л* -6! - 1 - 8 + 2 Я 1 Потребности Вх 3 10 2 200 8 11 200 В2 Ж 200 200 Потребители 6 7 7 5 8 в, 10. 4 10 3 12 100 100 в, 50 50 100 7 1 6 2 16 #5 10 4 50 11 2 200 13 250 Запасы •. 100 250 1 200 | 300 850 ку перемещаем в клетку АхВа> получаем новый опорный план и вносим изменения в систему потенциалов. Построенная система потенциалов позволяет сделать вывод, что план, приведенный в табл. 1.42, является оптимальным. Его стоимость равна 4150 ед. стоимости, Открытая модель Транспортная задача, в которой суммарные транспортной запасы и потребности совпадают, т. е. вы- задачи ™ " полняется условие 2/** = ЛА/> называется закрытой моделью; в противном случае — открытой. Для открытой модели может быть два случая: а) суммарные запасы превышают сум- т п марные потребности 2 сц > 2&/5 б) суммарные потребности превы- шают суммарные запасы 1=1 1=1 Линейная функция одинакова в обоих случаях, изменяется только вид системы ограничений. 121
Глава I. Линейное программирование Найти минимальное значение линейной функции 2 при ограничениях 1 т (случай а) 4=1 | (случай б) л:^>0 (/ = 1,2, ...,т;/ = 1,2, ....я). Открытая модель решается приведением к закрытой модели. В случае (а), когда суммарные запасы превышают суммарные потребности, вводится фиктивный потребитель Вп+Ъ потребности которо- т п го Ьп+1 = ^а1 — 2&/- В случае (б), когда суммарные потребности 1=\ /=1 превышают суммарные запасы, вводится фиктивный поставщик Лт+1, т п запасы которого ат+1 = 2^ — 2а- /=1 *=1 Стоимость перевозки единицы груза как до фиктивного потребителя, так и стоимость перевозки единицы груза от фиктивного поставщика полагают равными нулю, так как груз в обоих случаях не перевозится. После преобразований задача принимает вид закрытой модели и решается обычным способом. При равных стоимостях перевозки единицы груза от поставщиков к фиктивному потребителю затраты на перевозку груза реальным потребителям минимальны, а фиктивному потребителю будет направлен груз от наименее выгодных поставщиков. То же самое получаем и в отношении фиктивного поставщика. Прежде чем решать какую-нибудь транспортную задачу, необходимо сначала проверить, к какой модели она принадлежит, и только после этого составить таблицу для ее решения. Пример. 1. Составить план перевозок грузов с наименьшей общей стоимостью от четырех поставщиков Л$ (/ = 1, 2, 3, 4) соответственно в количествах 100, 400, 100 и 100 ед. к пяти потребителям В] (/= 1, 2, 3, 4, 5) соответственно в количествах 50, 100, 150, 200 и 250 ед.; стоимости перевозок единицы груза приведены в табл. 1.43. 4 Решение. Вычислим суммарные запасы и потребности: 2 а-ь = 700; 1 = I 5 2 Ъ] ~ 750. Потребности превышают запасы на 50 ед. Необходимо ввести фи- /==1 ктивного поставщика Лт+1, объем запасов которого ат+1 = 50 ед. В табл. 1.44 = 2.1 2л СнХц 1=1 1=1 122
§ 9. Транспортная задача линейного програм. Таблица 1.43 получен оптимальный план. При составлении первоначального опорного плана методом минимальной стоимости или двойного предпочтения необходимо наименьшую стоимость выбирать только среди стоимостей реальных поставщиков и потребителей, а запасы фиктивного поставщика (потребности фиктивного потребителя) распределять в последнюю очередь. Это позволит получить план, более близкий к оптимальному. Отмеченное выше используют также при введении фиктивно занятых клеток. Анализируя оптимальный план задачи, можно сделать следующие выводы. Потребитель Вь получает 50 ед. груза от фиктивного поставщика, следовательно, его потребности "будут не удовлетворены на это же количество единиц' Оптимальный план не является единственным, так как для клетки А2В3 сумма потенциалов равна стоимости перевозки Ц2 + У3 = С23 и в нее по циклу, показанному в табл. 1.44, молено переместить 100 ед. груза. Таблица 1.44 Матрица планирования Поставщики А! Аг А$ А, Ат+1 1 Потре —2 —2 —4 —3 — 17 Юности Потребители #1 3 1 50 16 4 3 0 50 Вг 5 6 10 — 1 100] 0 0 100 в, 10 8 50 + _± > 1 9 _____ 1' 100— 0 150 в4 | вь 8 12 6 200 11 7 0 200 17 16 - 15 2001 -1 » 0 + 15 0 50 250 1 Запасы 100 400 100 100 60 750 123
Глава I. .Линейное программирование В результате перераспределения получен новый опорный план, который также является оптимальным, так как система потенциалов останется без изменения и общая стоимость плана перевозок не уменьшается, поскольку (Ц2 + + Уз) ~ С23 = 0. Любая выпуклая линейная комбинация двух оптимальных планов также является оптимальным планом, поэтому это свойство можно использовать для улучшения планирования, при этом можно учесть особенности, которые не были учтены в математической модели задачи (ранее взятые договорные обязательства, сложившиеся традиции в отношениях и т. д.). Открытая модель транспортной задачи используется при решении ряда экономических задач, рассмотренных ниже. Дельта-метод При составлении плана перевозок с по- решения мощью транспортной задачи линейного транспортной программирования большое значение име- задачи ет время, затраченное на ее решение. Применение метода двойного предпочтения и метода потенциалов для решения транспортной задачи с 10—15 поставщиками и 15—20 потребителями требует 4—5 часов непрерывных вычислений. Это происходит потому, что существующие методы составления первоначального опорного плана позволяют получить план, далекий от оптимального. Как показала практика, использование дельта-метода совместно с методом потенциалов дает возможность найти оптимальный план в 3—4 раза быстрее, причем чем больше размеры таблицы, тем ощутимее разница во времени. Это объясняется тем, что в результатате применения дельта-метода всегда находится оптимальный план. Если построенный план оказался неоптимальным, то это произошло только в результате допущенных в процессе построения плана ошибок. Алгоритм дельта-метода рассмотрим на примере транспортной задачи, записанной в табл. 1.45. 1. Преобразуем таблицу Сц в таблицу приращений ДС^, выбирая в каждом столбце наименьшую стоимость и вычитая ее из всех стоимостей столбца. Значения ДС*7- записываем под соответствующими значениями Си. 2. Таблицу АСи преобразуем в таблицу ДС^-, выбирая в каждой строке наименьшее приращение и вычитая его из всех приращений строки; результаты записываем под значениями ДС^-. Если в какой- нибудь строке уже имеется нулевое приращение после первого преобразования, то в этой строке приращения оставляем без изменения и преобразуем приращения строк, не содержащих нулевых приращений. В табл. 1.45 преобразованию подлежат приращения строки Л4, где гшп АСи = 1. Появившиеся в таблице нули указывают на наименьшие приращения стоимостей по отношению к наименьшим стоимостям, выбранным в столбцах. 3. Просматриваем столбцы, содержащие одно нулевое приращение, и в клетки, содержащие его, записываем потребности &у, не обращая внимания на величину запасов поставщиков. Затем просматриваем 124
§ 9. Транспортная задача линейного програм. Таблица 1.45 Матр )ица планирования Поставщики \ Аг 4 А, 4 4 Потребители Вг 10 200 0 13 3 15 5 14 4 3 21 И 200 в2 V 19 8 14 3 — 11 1 300H 1 12 +1' У — 23 12 300 в, V 17 10 11 4 7 0 400 12 5 4 10 3 400 в4 18 1 17 + ж 1° 100) 1 1 1 | |19 Ь 1 1 118 1 1 !° 150 20 3 250 вв 16 1 18 3 19 4 21 6 5 15 150 0 150 Вв 21 5 19 3 22 6 23 7 6 16 100 0 100 аг 450 400 150 150 250 1400 До^ + 250 + 300 550 0 0 — отмеченных столбцов 1 8 3 1 3 — столбцы, содержащие два нулевых приращения, и клетки, содержащие их, заполняем, учитывая ранее произведенное закрепление и запасы поставщиков. Потом переходим к столбцам, содержащим три, четыре и т. д. нулевых приращения; процесс закрепления потребителей за поставщиками продолжаем до тех пор, пока все объемы потребностей не будут закреплены за поставщиками. В табл. 1.45 в столбцах Въ 52, В3> Въ и В6 по одной клетке с нулевыми приращениями; записываем в эти клетки потребности соответствующих потребителей. В столбце 54 два нулевых приращения, стоящие в клетках А2В4 и Л4б4. За поставщиком Л4 следует закрепить 150 ед. потребностей, а за поставщиком Л2 — 400 ед. Имеется же всего 250 ед., поэтому планируем полное удовлетворение поставщика Л4 и 100 ед. закрепляем за поставщиком А2. В результате получено первоначальное закрепление потребителей за поставщиками по нулевым приращениям стоимостей. 125
Глава I. Линейное программирование п 4. Подсчитываем для строк Ааь =аь — 2 х^, I = 1,2, ..., т. Если все Д^ = 0, то построение плана закончено. Он же является оптимальным, так как все грузы перевозятся с наименьшими приращениями стоимостей. В общем случае получаем: а) для одних строк Ааь = 0 (такие строки называются нулевыми); б) для других Ааь < 0 (такие строки называются избыточными и отмечаются знаком «—»; в) для третьих Ааг >0 (такие строки называются недостаточными и отмечаются знаком «+»). В рассматриваемом примере Аах = 450—200 = 250; Аа2 = 400— — 100 = 300; Аа3 = 150—700 - — 550; Аа4 = 150—150 = 0; Ааъ = = 250—250 =0, т. е. Аг и А2— недостаточные, А3 — избыточная, Л4 и Аъ — нулевые строки. Для закрытой модели сумма Аа% избыточных строк всегда должна быть равна сумме Ааг недостаточных строк. Так как Д^, Аа2 и Аав не равны нулю, то первоначальное закрепление не является планом. Чтобы получить план, необходимо избыточные 550 ед. потребностей, закрепленных за поставщиком Л3, закрепить за поставщиками Ах и А2 соответственно в количестве 250 и 300 ед. В первоначальном закреплении потребности распределены по нулевым приращениям, поэтому дальнейшее их перезакрепление связано с увеличением суммарной стоимости планируемых перевозок. Необходимо 550 ед. потребностей перезакрепить за поставщиками Лх и А2 таким образом, чтобы получить при этом минимальное приращение стоимости на единицу перезакрепленпых потребностей. Для этого выполняем следующие операции. 5. Отмечаем знаком V столбцы, имеющие занятые клетки в избыточных строках. В табл. 1.45 это столбцы В2 и Б3. 6. Для каждой недостаточной и нулевой строки сравниваем АСг-7-, стоящие в отмеченных столбцах, выбираем наименьшее и проставляем в последнюю графу таблицы. Имеем: пнп (8; 10) = 8 (для недостаточной строки Аг); гшп C; 4) = 3 (для недостаточной строки А2); гшп A; 4) = 1 (для нулевой строки Л4); пнп A2; 3) = 3 (для нулевой строки Аъ). Эти значения показывают, какое приращение стоимости на данном шаге будет получено, если единицу потребности непосредственно перезакрепить от поставщика А3 соответственно к поставщикам А19 А2, Л4, Л5. __ 7. В последней графе таблицы просматриваем ДСг-7- недостаточных строк, выбираем наименьшее и сравниваем его с АСг-0у для нулевых строк. При этом могут быть два случая: а) для каждой нулевой строки пш АСг; ^ ДС^; б) для некоторых нулевых строк гшп АСц > АСг-о7-. 8. Если выполняется условие (а), то производится непосредственное перераспределение потребности из избыточной строки в недостаточную в клетку отмеченного столбца, которой соответствует гшп АСи. Величина перераспределения равна гшп (хи; |Ааг-;|), гцех^ — 126
§ 9. Транспортная задача линейного програм. величина перевозки, стоящая в отмеченном столбце избыточной строки; Ай(г — величина разностей, находящихся в избыточной и недостаточной строках. 9. Если для некоторой нулевой строки выполняется условие (б)» то перераспределение проверяем по цепочкам, идущим через эту нулевую строку из избыточной строки в недостаточную. Для построения цепочки в нулевой строке в отмеченном столбце находим клетку, для которой АСг-о7- < ГП1П АСг-7«, и отмечаем ее знаком «+», в этом же столбце находим занятую клетку, стоящую в избыточной строке, и отмечаем ее знаком «—» — начало цепочки. Начиная движение по построенному звену цепочки от «—» к «+», попадаем в нулевую строку, затем передвигаемся по нулевой строке к занятой клетке и отмечаем ее знаком «—», далее по столбцу переходим в клетку недостаточной строки и отмечаем ее знаком «+». Цепочка построена. Если матрица содержит большое число нулевых строк, то цепочки перераспределения могут проходить через несколько нулевых строк и их количество значительно возрастает, поэтому руководствуемся следующим правилом. При переходе из одной нулевой строки в другую определяем полученную сумму приращений и сравниваем ее с минимумом приращений в выделенных столбцах данной строки. Если полученная сумма превышает этот минимум, то продолжение цепочки по дайной строке не рассматриваем. Очевидно также, что если сумма приращений, полученная при переходе в недостаточную строку, меньше, чем при переходе в любую другую нулевую строку, то не следует рассматривать продолжение цепочки переходом в нулевую строку. 10. Составляем для каждой цепочки алгебраическую сумму приращений 22^^./, считая их отрицательными, если они стоят в клетке, отмеченной знаком «—», и положительными, если клетка отмечена знаком «+». Полученную сумму сравниваем с тт АСи: а) если ^Ц^АСи > ^ тт АСи для всех построенных цепочек, то отбрасываем их и производим непосредственно перераспределение; б) если 22^^ < гшпЛС^-, то перераспределение производим по цепочке, для которой эта сумма наименьшая. При этом возможный объем перераспределения по цепоч* ке равен тт (х1к) ; \&а1г\), где х1к ;р — числа, указывающие на перевозки, которые стоят в клетках, отмеченных знаком «—», 1 ^ к ^ т, 1 < Р < п; Айгг — разности, стоящие в избыточной и недостаточной строках, в которых начинается и заканчивается цепочка, 1 ^ г ^т. Следуя по цепочке, вычитаем величину перераспределения из чисел, помещенных в клетках, отмеченных знаком «—», и прибавляем к числам, которые стоят в клетках, отмеченных знаком «+», па эту же величину изменяем Даг . В результате получаем новое закрепление потребителей за поставщиками. 127
Глава I. Линейное программирование В табл. 1.46 в последней графе находим для недостаточных строк гшп АСи = ппп (8; 3) == 3. Сравниваем это значение с ДСг-о7- нулевых строк. Для нулевой строки Л4 выполняется условие (б) п. 7 алгоритма, поэтому перераспределение проводим по цепочке. Для построения цепочки находим в строке А4 приращение ДС42 = 1, стоящее в отмеченном столбце, и эту клетку отмечаем знаком «+», в столбце В2 находим занятую клетку А3В2У которая находится в избыточной строке, и отмечаем ее знаком «—». Начинаем движение по звену цепочки А3В2— —Б2Л4 и приходим в нулевую строку Л4; находим в ней занятую клетку Л4В4 и отмечаем ее знаком «—»; затем по столбцу б4 переходим в клетку недостаточной строки. В данном случае цепочку можно окончить в двух клетках (Лх54 и Л2В4), которые и отмечаем знаками «+»¦ Получены две цепочки: Л3В2 — Я2Л4 — Л454 — В4ЛХ и А3В2 — — В2Л4— Л454 — В±А2. Подсчитаем по цепочкам сумму приращений: 22 дси*г=~°"Ь1~ + ^==2 (Для первой цепочки),- / ^2^СгУ = —0 + 1 —0-|-0= 1 (для второй цепочки). ' / Для обеих цепочек сумма меньше трех, следовательно, обе они годятся. Для перераспределения выбираем вторую цепочку, так как для нее 1<2. Определяем величину перераспределения: ппп C00; 150; 550; 300) = 150. Двигаясь по цепочке, перераспределяем 150 ед., затем Да2 и Д^изменяем на это же число. В результате получаем новое закрепление, приведенное в табл. 1.46. 11. После перераспределения проверяем возможность исключения отмеченных столбцов. Столбцы исключаем из отмеченных в том случае, если занятая клетка избыточной строки стала незанятой или избыточная строка превратилась в нулевую. В этом случае следующую итерацию следует начинать с п. 6 алгоритма. Если количество отмеченных столбцов осталось без изменения, то следующая итерация начинается с п. 7 алгоритма. 12. Процесс перезакрепления продолжаем до тех пор, пока все строки не превратятся в нулевые. Полученный план перевозок проверяется на оптимальность методом потенциалов. В табл. 1.46 после первой итерации количество отмеченных столбцов и недостаточных строк осталось без изменения, поэтому, как и прежде, гшпДС0- = 3 и для строки Л4 имеем 1 < 3. Проверяем перераспределение по цепочке, которая начинается в клетке А2В2 и проходит через клетку Л452 нулевой строки Л4. Но из клетки Л452 движение по нулевой строке Л4 продолжать невозможно, так как в ней нет других занятых клеток. Для нулевой строки Л5 имеем гшп АСи = ДСг / = 3, поэтому производим непосредственное перезакрепление из строки Л3 в клетку А2В2У в которой находится гшп ДС,-,-. 128
§ 9. Транспортная задача линейного програм. Таблица 1.46 Матрица планировани я Поставщики Аг А2 А3 А, Аъ Ь) ! Потребители вх 10 0 200 13 3 15 5 14 4 3 21 11 200; 1 в, V 19 8 14 > 3 11 0 150 13 2 1 150 23 12 300 1 в9 V 17 10 ! 11 4 7 0 400 12 5 4 10| 3 400 1 В* 18 1 17 0 250 19 2 18 1 0 20| 3 250 1 1 ь 150 150 >5 16 1 18 3 19 4 21 6 5 15 0 | вй 21 5 19 3 22 6 23 7 6 16 0 100 100 г 450 400 150 150 250 \ 1400 Да^ + 250 + 1 150 400 0 | 0 — X . з» 'О з-ю .5 з 3 с ^ н С О У 8 3 1 3 — Определяем теперь величину перераспределения тш A50; 400; 150) = 150 и производим его, внося изменения в табл. 1.46. В результате получаем новое закрепление, приведенное в табл. 1.47. В результате перераспределения клетка АЯВ2 стала свободной, столбец В2 выбыл из отмеченных, строка Л2 стала нулевой. Подсчитываем гшп АСц в отмеченных столбцах для избыточных и нулевых строк и помещаем эти значения в последнюю графу табл. 1.47. Находим для недостаточных строк гшп АС^ = 10. Любое из значений ДС/0^ стоящих в нулевых строках, меньше десяти, поэтому возможность перераспределения по цепочкам надо проверить для всех нулевых строк. Проверку начинаем с нулевой строки Аь, так как ей 5 Зак. 1428 129
Глава I. Линейное программирование Таблица 1.47 Матрица планирования Постав- [ щики Ах А, А, А, Ал 1 ь, Потребители в, 10 0 200 13 3 15 5 14 4 3 21 11 200 в2 19 8 14 3 150 11 0 | 13 2 150 1 23 12 | зоэ ва V 17 10 11 4 —| 7 1 о 400| 1 5 1 4 + !-- ^ 3 400 д, 18 1 17 0 250 19 2 18 1 0 20 3 250 вь 16 + ж ! 1 1 1 18 • 3 I 3 1 ' 19 1 1 4 1 1« 1 6 ! 5 _:1'5 0 150 150 в. 21 5 19 3 22 6 23 7 6 16 0 100 100 аг 450 400 150 150 250 1400 Да. + 250 0 250 0 0 — тш АС- • отмеченных столбцов | 10 4 4 3 1 — соответствует гшп АС7-07- = 3. Клетку АЪВ3 отмечаем знаком «+» и строим цепочку из клетки А3В3, отмечая ее знаком «—».В строке Аь две занятые клетки, поэтому строим цепочку через каждую из нпх и составляем сумму приращений: А3В3 - ВВАЬ - АЬВЪ - ВЪЛЪ -0 + 3-0+1-4; А3ВЬ - В3АЬ - АЬВ0 - ВъАх, -0+3-0+5 = 8. Так как для первой цепочки сумма приращений равна четырем и в остальных нулевых строках АСг-07- = 4, то проверять возможность перераспределения через них нецелесообразно. Перераспределение гшп D00; 150; 150) == 150 производим по первой цепочке. В результате получаем табл. 1.48, в которой построение цепочек снова начинаем с клетки АЪВ3 нулевой строки Аь. Цепочки А3В3 - В3АЬ - АЬВ6 - ВЬА1% -0 + 3-0 + 5-8, 130
§ 9. Транспортная задача линейного програм. Таблица 1.48 I Матрица планирования Поставщики Ах А2 А3 Ах Аь 1 ь\ Ь} 1 1 Потребители 1 В* 10 0 200 13 3 15 5 14 4 3 211 11 200 1 1 в2 19 8 14 150 3 11 0 13 2 150 1 23| 12 300 1 1 В* V 17 10 11 ! + |4 -!7 Ъ 0 250 12 5 4 10 з 150 1 400 1 1 в4 1 18 + 1 17 250 0 19 2 18 1 0 20 3 250 1 1 В& 16 1 150 18 3 19 4- 21 6 5 15 0 150 1 100 100 вй 21 5 19 3 22 6 23 7 6 1б| 0 а1 450 400 150 150 250 1 1400 1 Да. + 100 0 _ 100 0 | 0 — X 1 < ЕГО С %*\ с о о 10 1 4 4 3 — А 3В3 — В3АЬ — АЬВ6 —'В6А2 — А2В4 — В*Аи _0 + 3 — 0 + 3 — 0+ 1=7 дают сумму приращений значительно больше четырех, поэтому проверяем возможность перераспределения через остальные нулевые строки. Для строки Аг\ А3В3 — В3А2 — Л2В4 — ВЛАЪ —0 + 4 — 0+1 = 5; А3ВВ - В3А2 - А2В2 - В2АЬ -0 + 4-3 + 8 = 9. Для строки Л4: А3В3 - В3А, - Л4Б2 - В2АЪ -0 + 4-1 + 8=11; А 3В3 — В3А4 — А±В2 — В2А% — А2Вй — В±АЪ —0 + 4 — 1 + 3 — 0+1 = 7. Перераспределение шш B50; 250; 100; 100) = 100 производим по третьей цепочке. В результате получаем табл. 1.49, в которой все строки преобразованы в нулевые. Следовательно, в результате послед- 5* 131
Глава I. Линейное программирование Таблица 1.49 Матрица планирования Поставщики ! А л2 А* л, Ль 0 —1 -5 —2 —2 1 Ъ Потребители в, 10 10 200 13 15 14 21 200 в2 15 19 14 150 11 13 150 23 300 1 Вз 12 17| 11 100 7 150 12 10 150 400 в4 18 16 100 17 150 19 18 20 250 Д. 16 16 150 18 19 21 15 150 в6 18 21 19 22 23 16 100 100 аг 450 400 150 150 250 1400 Да. 0 0 0 0 0 ГП1П АС} , отмеченных столбцов 1 — — — — — ней итерации получен план. Построенная система потенциалов показывает, что этот план является оптимальным. При решении задач дельта-методом количество итераций зависит в основном от числа строк, поэтому при т < п потребителей закрепляют за поставщиками, при т> п — поставщиков за потребителями. Дельта-метод позволяет решать открытую модель транспортной задачи, не приводя ее к закрытой модели, однако это возможно только в том случае, если вычисления абсолютно правильны и все перераспределения произведены по наилучшим цепочкам. Так как такой уверенности быть не может (цепочки могут проходить через несколько нулевых строк), то план проверяют и доводят до оптимального с помощью метода потенциалов. Поэтому при решении задач дельта-методом без применения ЭВМ открытую модель преобразуют в закрытую. Для того чтобы нулевые стоимости фиктивных перевозок не привели к увеличению вычислений при преобразовании таблицы Си в таблицу АС^-, минимальные стоимости в столбцах отыскивают среди стоимостей реальных поставщиков и потребителей. При этом отрицательные приращения, имеющие место для фиктивного_поставщика, преобразуют в положительные при переходе к таблице АС*,. Для фиктивного потребителя отрицательные приращения получаем при пере- 132
§ 9. Транспортная задача линейного програм. Таблица 1.50 1 Матрица планирования Поставщики Аг Аг А, А* А, 1 0 1 —9 1 -6 Ь' Потребители в, 19 19 6 2 250 31 18 15 25 12 28 151 13 13| 0 150 400 1 | в2 24 24 9 5 29 14 11 15 0 300 25 10 8 50 20 5 350 1 1 Вл 20 2Ь 9 5 27 10 7 17 0 21 41 2 50 27 10 5а I 1 В* 19 28 10 6 25 7 4 22 4 20 21 0 150 18 0 150 1 Вь 20 30 16 12 23 9 6 24 10 23| 9 7: 14 0 200 200 1 1 Вс 20 22 4 0 21 3 0 300 18 0 27! 9 7 30 12 300 1 1 В? 18 18 5 1 200 19 6 2 150 13 0 29 16 14 24 11 350 1 К+1 — 1 0 —4 0 ! о 1 -3 1 0 0 4 0 | —2 150 2 4 150 1 а1 450 450 300 400 350 1950 1 ходе к таблице ДС^, а затем преобразуем их в положительные, вычитая из этих приращений наименьшее отрицательное приращение по столбцу фиктивного потребителя. Решение транспортной задачи с фиктивным потребителем рассмотрено в табл. 1.50. § 10. Приложения транспортной задачи к решению некоторых экономических задач Транспортная задача применяется при решении экономических задач, которые по своему характеру не имеют ничего общего с транспортировкой груза, поэтому величины Си могут иметь различный смысл (в зависимости от конкретной задачи). Например, означать стоимость, расстояние, время, производительность и т. д. Рассмотрим постановку и математические модели некоторых задач. 133
Глава I. Линейное программирование 1 I Увеличение Известно, что в смену от га поставщиков Аг производительности к п потребителям В^ перевозится хц (/ = автомобильного = 1, 2, ..., т; / = 1, 2, ..., п) однород- транспорта за счет ного груза. (Однородными считаются гру- минимизации зы, которые могут быть перевезены одним I порожнего пробега и тем же подвижным составом.) В результате транспортного процесса у потребите- т лей В] в течение смены должно образоваться 2**/ = &/ (/ = 1» 2, ...,л) /=1 автотонн порожних автомобилей, а для вывозки грузов поставщикам п А г под погрузку необходимо подать 2**; =а1 (I = 1, 2, ..., т) авто- тонн. Сформулируем задачу минимизации порожнего пробега. Пусть у п потребителей Б7- (/ = 1, 2, ..., п) имеется соответственно Ь^ порожних автотонн, которые необходимы т поставщикам Аь {г = 1, 2, ...,га) соответственно в количестве аг автотонн Известны расстояния 1п от каждого потребителя до каждого поставщика. Необходимо составить такой план работы автомобилей, чтобы очи вывезли запланированные грузы и совершили при этом минимальный суммарный порожний пробег. Обозначим через уп количество порожних автотонн, которые должны быть поданы после разгрузки от /-го потребителя к /-му поставщику. Порожний пробег уц автотонн от /-го потребителя к /-му поставщику, находящихся на расстоянии 1п друг от друга, равен 1цуц. п т Суммарный порожний пробег выразится функцией \^ ~ 2 2^##« /=11=1 п т По характеру задачи всегда получаем закрытую модель 2 6>==2а«- /=1 /=1 Таким образом, необходимо найти минимальное значение линейной п т функции 1^ = 2 2 1пУп ПРИ ограничениях /=1 *=1 з т 2 ул=ь^> /—*»2»-"> п> ул > °» I 1=1 I л 2 УН^аь /=1. 2,..-./и, </=1,2,...,л;/=1,2,..., /и). 1 / = 1 Если для некоторых однородных грузов, включенных в план перевозок, коэффициент использования грузоподъемности у< 1, то для установления взаимно однозначного соответствия между количеством тонн груза и количеством порожних автотонн необходимо вес грузов в тоннах разделить на у. Уменьшение порожнего пробега позволяет 134
§ 10. Приложения транспортной задачи Таблица 1.51 Поставщики А1 (каменный карьер) Л2 (шахта) А3 (шлаковые огвалы) АА (песчаный карьер) Вид груза Щебень Камень Кварцит Отвальный шлак То же » Песок » Количество тонн 200 400 150 200 200 150 100 300 Потребители В2 (бетонный завод) Въ (строительство очистных сооружений) В6 (прокатный стан) Вг (строительство жилого квартала) В3 (строительство ремонтного завода) Б4 (строительство дороги) Вх (строительство жилого квартала) Вх (бетонный завод) уменьшить количество автомобилей, необходимых для выполнения плана перевозок, т. е. увеличить их производительность, что приносит значительный экономический эффект. Пример. В соответствии с планом автомобильных перевозок в первую смену планируемых суток необходимо выполнить перевозки грузов (см. табл. 1.51). Расстояния ^^^ от каждого поставщика до каждого потребителя известны и приведены в табл. 1.52, причем 1уъ = 1ц (I = 1, 2, 3, 4; / = 1, 2, 3, 4, 5, 6). Необходимо составить план работы автомобилей, позволяющий вывезти в течение смены запланированные грузы, совершив минимальный порожний пробег. Составим табл. 1.52. Числа, заключенные в скобки, определяют количество груза (в тоннах), которое перевозится от поставщика к потребителю. В рассматриваемом примере для перевозки каждой тонны требуется одна автотонна, поэтому, просуммировав величины грузов по строкам, определим, сколько автотонн необходимо каждому поставщику в течение смены; суммируя величины грузов по столбцам, получим количество порожних автотонн, которые образуются в течение смены у каждого потребителя. В результате получаем закрытую модель транспортной задачи, которую решаем на минимум порожнего пробега, не обращая внимания на числа, заключенные в скобки. Оптимальное решение этой задачи также приведено в табл. 1.52 (см. числа, стоящие в левых нижних углах клеток). Минимальный порожний пробег в рассматриваемом примере составляет 4350 т-км. При этом на основании полученного оптимального плана движения порожних автомобилей и плана перевозок грузов (табл. 1.52) можно сделать вывод, что автомобили, которые привезли груз от поставщиков А3 и Л4 потребителю Ви должны после разгрузки быть поданы под погрузку поставщику Аъ а доставившие груз от поставщика Ах потребителю Въ — поставщикам Л3 и Л4 и т. д. Таким образом, с помощью табл. 1.52 можно составить замкнутые маршруты работы автомобилей с минимальным порожним пробегом. Например, на маршруте А3 — Вг — Лх — Въ — А3 перевозится от каждого поставщика по 150 т груза, на маршруте Л4 — В^ — Аг — В5 — Л4 — по 100 т груза. Такие же маршруты можно составить и для перевозок остальных грузов; маршрут Аг — В2 -— Ах — 150 т, маршрут А3 — Я4 — Л3 — 150 т, 135
Глава I. Линейное программирование Таблица 1.52 Матрица планирования Поставщики Лг л2 А* А \^0 —1 —3 0 1 1 ь) Потребители Вг | Вг 2 1 0 250 4 3 7 A50) 6 10 A00) 7 250 5 B00) 4 2 150 2 0 150 5 3 200 8 C00 N 500 в3 5 4 0 200 4 0 7 B00K 8 4 200 в, \ въ \ вс 4 6 3 3 0 4 A50) 1 150 7 4 1 D00O 6 3 2 1 0 150 2 1 250 150 |400 1 1 0 9 5 5 A50) 1 4 3 1 0 150 1150 а1 600 150 500 400 1650 Да. 0 0 0 0 — маршрут А2 — В6 — у44 — В2 — А2 — по 150 т, маршрут Аг — Въ — Л4 — В2 — ^з — В3 — А1 — по 150 т, маршрут 41 — В2 — А3 — В3 — Ах — по 50 т. Совокупность этих маршрутов и является оптимальным планом работы автомобилей. Оптимальное Пусть на предприятии имеется т видов закрепление станков, максимальное время работы коза станками торых соответственно равно аг (/ = 1, операций 2, ..., т) часов. Каждый из станков может по обработке выполнять п видов операций. Суммарное деталей время выполнения каждой операции соответственно равно Ъ] (/ = 1, 2, 3, ..., п) часов. Известна производительность (Си) /-го станка при выполнении /-й операции. Определить, сколько времени и на какой операции нужно использовать каждый из станков, чтобы обработать максимальное количество деталей. Для составления математической модели обозначим через х^ (I = *= I, 2, ..., т\ / = 1, 2, ..., п) время, которое 1-й станок должен работать на /-й операции. Тогда количество деталей, обработанных на 1-м станке, равно Сихи. Количество деталей, обработанных на всех 136
§ 10. Приложения транспортной задачи т п станках, можно выразить функцией 2 =22^%. Так как макси- мально возможное время работы 1-го станка ограничено (значением п а,-), то получаем ]^хи = а(, г = 1, 2, ..., т, если максимальное время п работы станков используется полностью, или 2#и ^ &и * = 1, 2, ... ..., т, если это время используется неполностью. С другой стороны, время, отведенное на /-ю операцию, равно 6,- т часов, поэтому 2*^ = йу, / = 1, 2, ..., п. Из условия следует, что 1=1 общее время работы всех станков должно быть равно сумме макси- т п п мальных времен работы всех станков, т. е. 2 23*0* = 2^*» и времени, т /г л необходимого на выполнение всех операций, т. е. 2 2 *и = 2^- /=1 /=1 /=0 Отсюда следует, что 2 щ = 2 &/¦ Таким образом, необходимо найти максимальное значение линей- т п пой функции 2=22 СцХц при ограничениях п 2 хИ = аи /=1,2, ...,т, */7>0, 2*« = ^» /=1,2,...,я, (/=1, 2 т; /=1, 2 я). Для того чтобы решить эту задачу методом потенциалов или дельта-методом, достаточно линейную функцию умножить на —1, т. е. считать в таблице все значения Сц отрицательными. Пример. На предприятии имеется четыре группы станков, каждый из которых может выполнять пять видов элементарных операций по обработке детали, причем операции могут производиться в любом порядке. Максимальное время работы каждой из групп станков соответственно равно 320, 400, 240 и 400 ч; каждая операция должна выполняться соответственно в течение 336, 224, 224, 288 и 288 ч. Необходимо определить, сколько времени и на какой операции нужно использовать каждую группу станков, чтобы обработать максимальное количество деталей, если производительность каждого станка группы известна и равна Си (/ = 1, 2, 3, 4; /= 1, 2, 3, 4, 5). Решение. Все значения Сц берем со знаком «—», составляем табл. 1.53 и решаем транспортную задачу дельта-методом. В результате получаем оптимальный план закрепления операций за станками. Таким образом, для того чтобы обработать максимальное количество деталей, необходимо, чтобы первая группа станков выполняла первую операцию 48 ч, третью операцию — 224 ч, пятую операцию —48 ч, а вторая группа станков выполняла первую операцию 137
Глава I. Линейное программирование Таблица 1.53 Матрица планирования Поставщики А, А* А3 А* 0 1 1 1 1 Ь> Потребители Вх | Вг —4 —4 0 48 —3 1 112 —2 2 1 —3 1 176 336 —7 —3 3 —4 3 —5 1 0 —6 0 224 224 в3 —6 -6 0 224 —3 3 —4 2 1 —5 1 224 в, \ вь -6 —2 3 —5 0 283 -3 2 1 —4 1 288 -5 -5 0 48 —2 3 —4 1 0 240 -3 2 288 а1 320 400 240 400 1360 Аа* 0 0 0 0 — 12 ч, четвертую — 288 ч и т. д. При этом будут обработаны: на 1-й операции — 056 деталей, на 2-й операции — 1344 детали, на 3-й операции — 1344 детали, ;а 4-й операции — 1440 деталей, на 5-й операции — 1200 деталей, т. е. полно- ТК1П МЛЖНП П^ПЯ^ПТЯТи 1 П.^П ПАТЯПРЙ 1 1056 на 4-й операции — 1440 деталей, на о стью можно обработать 1056 деталей. Оптимальные назначения, или проблема выбора Пусть имеются т лиц Аь (/ = 1, 2, ..., т), которые могут выполнять В$ (/ = 1, 2, ... ..., т) различных работ. Известна производительность (Сн) 1-го лица при выполнении /-й работы. Необходимо определить, кого и на какую работу следует назначить, чтобы добиться максимальной суммарной производительности при условии, что каждое лицо может быть назначено только на одну работу. Для составления математической модели обозначим через хи назначение г'-го лица на /-ю работу. Тогда, так как количество лиц равно количеству работ и каждое из них может быть назначено только на одну работу, хц принимает только два значения: 1, если 1-е лицо назначается для выполнения /-й работы; 0, если 1-е лицо не т назначается для выполнения ;-й работы. Поэтому 2 **; = 1 и 1=\ 138
§ 10. Приложения транспортной задачи т 2 Хг] = 1. При назначении /-го лица на /-ю работу производитель- ность равна С^х^. Суммарную производительность можно выразить т т функцией 2=22 СцХц. 1=1 1=1 Таким образом, приходим к следующей задаче линейного программирования. т т Найти максимальное значение линейной функции 2=22 С^хц 1=\ /=1 при ограничениях / т 2*^==1» /=1,2,...,т, х^>0 I /=1 | т 2 хи:==1' 1=1,2,...,т, (/=1, 2,...., т; /=1, 2,..., т). * 1=1 Умножая линейную функцию на —1, приводим задачу к транспортной, в которой объем запасов каждого поставщика и объем потребностей каждого потребителя равны единице. Рассмотренную задачу можно обобщить, если имеются идентичные работы и лица, которые могут их выполнять с одинаковой производительностью. Тогда работы можно объединить в категории, а лица — в группы. Пусть имеется т групп лиц Л* (I = 1, 2, .,., т) по аг человек в каждой и п категорий работ В^ (/ = 1, 2, ..., п) по Ь$ единиц в каждой. Известна производительность Сц лица 1-й группы при выполнении /-й категории работ. Необходимо определить, сколько лиц, из какой группы и на какую категорию работ назначить, чтобы суммарная производительность была максимальной. Обозначим через х^ количество лиц 1-й группы, назначенных для выполнения работ /-й категории; тогда задача имеет следующую математическую модель. т п Найти максимальное значение линейной функции 2=22 Сихи 1=1 1=1 при ограничениях 2 хи = а1> «'=1, 2, ...,/я, хи>0 / = 1 I т 2 *и = ^> /=1» 2» —» л* (/ = 1, 2, ...,т, л=1, 2, ...,п). I 1=\ т В задаче общее число работ равно общему числу лиц, т. е. 2#1 = Ь=1 п т п = 2 Ь;. Если 2 сц < 2 Ь^} то вводят фиктивную группу лиц, содер- /=1 1=1 !=1 139
Глава I. Линейное программирование п т т п жащую 2 Ь} — 2 аь человек; если 2 #; > 2 Ь]ч то используют фик- /=1 / = Д 1=1 /=1 тивную категорию работ, состоящую из 2 #* —2 ^ единиц. *=1 /=1 Пример. На предприятии 5 станков различных видов, каждый из которых люжет выполнять 5 различных операций по обработке деталей Известна производительность С/7- (I = I, 2, 3, 4, 5; / = 1, 2, 3, 4, 5) каждою станка при выполнении каждой операции (табл 1.54) Необходимо определить, какую операцию и за каким станком следует закрепить, чтобы суммарная производительность была максимальной при условии, что за каждым станком закреплена только одна операция. Обозначим станки через Л$, а операции — через В^ Умножая С^ на —1, составляем табл. I 54 и решаем транспортную задачу В результате получено оптимальное закрепление операций за станками, в соответствии с которым в единицу времени должно обрабатываться 28 деталей Полученный оптимальный план не является единственным, так как для незанятых клеток А3В3, А±В{ и А5#1 сумма потенциалов рлвна значениям производительности, помещенным в этих клетках, и в них по построенным циклам перемещается единица Этот факт можно использовать для перезакрепления операций за станками, специфика работы которых не учтена математической моделью. Таблица 1.54 Матрица планирования Поставщики А, А> А3 А, А,- 0 -1 0 2 0 *1 Потребители в, \ в» \ в3 ¦ —5 -5 1 —6 0 1 —4 2 —3 3 1 —5 1 1 -6 -3 3 —2 4 —3 3 —4 2 0 0 -6 0 1 1 -5 —4 2 —6 0 0 —5 1 —3 3 1 1 -3 3 1 в, | въ -б —6 0 0 —4 2 —6 1 0 —4 2 0 0 —2 4 1 -7 —7 0 1 -5 2 —6 1 —3 4 2 -5 2 1 аь 1 1 1 1 1 5 л*< 0 0 0 0 0 — 140
§ 10. Приложения транспортной задачи Задачи При решении такого рода задач исполь- разглещения зуется открытая модель транспортной за- с учетом дачи. транспортных Задача 1. Несколько предприятий выпус- и производственных кают однородную продукцию, объем про- затрат изводства которой необходимо сократить и перейти к выпуску другой продукции, причем себестоимость единицы продукции на каждом предприятии различна. Определить, на каких предприятиях следует провести сокращение, чтобы суммарные расходы на производство и транспортировку продукции, выпускаемой после сокращения, были минимальными. Пусть (С/у) (/ = 1, 2, ..., т\ / = 1, 2, ..., п) — матрица стоимостей перевозок единицы продукции от /-го поставщика к /-му потребителю, а С( — стоимость производства единицы продукции /-го поставщика. Тогда, очевидно, (Сц) = (С// + Сг) — матрица стоимостей рассматриваемой задачи. Уменьшим на необходимую величину объем потребностей реальных потребителей и введем фиктивного потребителя, объем потребностей которого равен производственному сокращению. В результате избыток продукции будет закреплен за фиктивным потребителем. Предприятия, прикрепленные к-фиктивному потребителю, и должны сократить объем производства. Задача 2. Для удовлетворения потребностей в некоторой однородной продукции необходимо разместить предприятия таким образом, чтобы суммарные затраты на доставку сырья, производство продукции и ее транспортировку были минимальными. Задачу решим в два этапа. Определим сначала затраты на транспортировку сырья и производство продукции в намеченных пунктах производства, число которых выбираем заведомо большим, чем количество предприятий. Для этого построим открытую модель, в которой поставщики — возможные пункты добычи сырья, а потребители — намеченные пункты производства. После этого вновь построим открытую модель, причем поставщиками будут возможные пункты производства, а потребителями — возможные пункты потребления готовой продукции, которая решается по критерию минимума суммарных затрат на производство, транспортировку сырья и готовой продукции. В результате находим наиболее выгодный вариант размещения предприятий по производству продукции с точки зрения общих затрат на транспортировку и производство. Анализ размещения уже существующих предприятий по критерию минимальных общих затрат на транспортировку и производство позволяет получить первоначальное закрепление, найденное с помощью дельта-метода, если его выполнить по приращениям ЛСг^. По этому же закреплению можно, исходя из принятого критерия, судить о том, на каких предприятиях нужно расширить, а на каких — сократить производство, а также о величине экономического эффекта этих ме- 141
Глава I. Линейное программирование роприятий по сравнению с оптимальным планом закрепления. Кроме того, первоначальное закрепление по объемам потребностей определяет возможный объем производства в каждом пункте, причем если на объем производства не наложены ограничения, т. е. О^а* (/ = 1, 2, ..., т), то первоначальное закрепление является оптимальным пла- ном и аг- = 2-^гл если же ограничения наложены (о^^^^Р^), то первоначальное закрепление определяет величину возможного перераспределения потребностей между возможными пунктами производства по отношению к наложенным ограничениям. Таким образом, получив таблицу ДСг-7-, производим первоначальное закрепление для всех предполагаемых пунктов производства, по которому определяем объемы производства в соответствии с ограничениями, затем вводим фиктивного потребителя, преобразуем таблицу ДСг-7- в АСа и, используя алгоритм дельта-метода, получаем оптимальный план закрепления потребителей за возможными пунктами производства. Пункты, которые полностью удовлетворены объемами фиктивного потребителя, из плана размещения исключаются. Рассмотрим пример размещения предприятий по минимуму транспортных издержек. Пусть для производства некоторой однородной продукции в количестве 2400 ед. необходимо разместить три однотипных предприятия, объем производства каждого из которых 800 ед. Себестоимость производства единицы продукции на каждом из предприятий предполагается одинаковой. На изготовление единицы продукции затрачивается две единицы сырья. Известны источники сырья Еъ Е2У Е3у Е^ и Еъ мощностью 800, 800, 1600, 800 и 800 ед. соответственно, а также потребители готовой продукции Въ В2У В3> 54 и В5, объем потребностей которых соответственно равен 500, 400, 500, 450 и 550 ед. Для строительства предприятий выбрано пять пунктов: Аъ Л2, Лз, Л4 и Л5. Транспортные расходы по доставке единицы сырья к каждому месту строительства и доставке единицы готовой продукции до каждого потребителя приведены в табл. 1.55 и 1.56. Таблица 1.55 Ег \ 1 Е' Е2 *з в, \ Еь Л, Л2 10 9 15 9 11 л3 15 1 16 10 8 13 14 17 19 16 13 л4 14 10 10 12 15 л, 9 12 16 14 11 ; 142
§ 10. Приложения транспортной задачи Таблица 1.56 Таблица 1.57 Поставщики Ег Е* Е3 Е* Еь Ет+1 1 ^^\ -1 — 1 0 -1 1 -10 \ Ь> 1 Потребители Ах 10 10 1 9 0 800 15 6 9 0 800 И 0 2 0 —9 0 4 1600 | \ А2 I Аг 1 А* 8 15 7 10 2 8 0 1600 13 5 14 6 0 —8 5 1600 10 16 3 17 4 19 6 16 3 13 0 0 — 13 0 1600 1600 10 14 4 10 0 0 10 0 12 2 15 5 0 -10 3 1600 1600 I л* 10 9 0 800 12 3 16 7 14 5 11 800 2 0 —9 4 1600 а1 800 800 1600 800 800 3200 8000 **1 0 0 0 0 0 0 — 1 ш
Глава I. Линейное программирование Необходимо определить, в каких пунктах следует построить предприятия, чтобы транспортные и производственные издержки были минимальными. Себестоимость единицы продукции на предприятиях предполагается одинаковой, поэтому решение зависит только от величины транспортных издержек. Определим сначала размещение предприятий относительно источников сырья. Для этого составим табл. 1.57. В соответствии с оптимальным решением, приведенным в табл. 1.57, подсчитаем транспортные расходы на единицу сырья для каждого предполагаемого места строительства предприятия. Имеем: С± = (800.9 + 800.9)/1600 = 9 (ед. стоимости) для Ах\ С2 = A600.8)/1600 = 8 (ед. стоимости ) для Л2; С5 = (800-9 + 80(Ы1)/1600 = 10 (ед. стоимости) для Ль Потребители Л3 и Л4 закрепились за фиктивным источником сырья Ет+1; если решение задачи на этом закончить, то их следует исключить из рассмотрения. Второй этап решения заключается в определении размещения относительно потребителей готовой продукции, поэтому А3 и Л4 нужно учитывать в дальнейшем, так как может ока- Та блица 1.68 Матрица планирования Поставщики Лг л2 Лз Л, 4 ь, и1 \. 0 0 0 —2 0 Потребители Вх | Вг 30 36 6 31 1 0 40 10 2 37 7 30 ! о 500 500 28 28 2 50 29 3 2 40 6 26 350 0 37 11 400 в, 27 27 0 200 28 1 0 35 8 0 28 1 27 0 300 500 в. 27 38 13 28 3 2 41 16 8 25 450 0 28 3 450 В> 1 *П + 1 26 26 0 550 27 1 0 44 18 10 27 1 40 14 550 0 0 8 0 —1 800 7 0 —8 800 0 0 8 0 8 0 1600 а1 800 800 800 80 800 4000 Ай} 0 0 0 0 0 — 144
§ 10. Приложения транспортной задачи заться, что именно они лучше всего расположены относительно потребителей готовой продукции. Поэтому полагаем, что для них транспортные расходы на единицу сырья равны наименьшей из стоимостей, находящихся соответственно в столбцах Л3 и Л4ч т. е. Сз = 13 для Л3, С4 = 10 для Л4. Полученные значения Сг (/ = 1, 2, 3, 4, 5) удваиваем, суммируем со значениями стоимостей С^ (/ = 1, 2, 3, 4, 5; / = = 1, 2, 3, 4, 5) [см. табл. 1.56] и составляем табл. 1.58. Решение, приведенное в табл. 1.58, является оптимальным для всей задачи, так как в нем учтены и транспортные расходы на доставку сырья. Таким образом, для получения минимальных транспортных расходов как по доставке сырья, так и по доставке готовой продукции предприятия необходимо построить в пунктах А1у Л4, Аь, а пункты Л2 и Л3 из плана размещения исключить. Чтобы подсчитать величину минимальных транспортных расходов, очевидно, необходимо решить две закрытые модели транспортной задачи, используя табл. 1.55 и 1.56, исключив из рассмотрения Л2 и Л3. Сумма стоимостей двух оптимальных планов и есть искомая величина. Решение задач Решим задачу, в которой суммарный объем с помощью метода потребностей больше суммарного объема запрещения производства, причем необходимо опре- перевозок делить минимальные транспортные издержки при условии, что потребности некоторых потребителей обязательно должны быть удовлетворены полностью. Преобразуем эту открытую задачу в закрытую, вводя фиктивного п т поставщика Ат+и объем производства которого равен 2 Ь7- — 2 сц- Предположение, что для фиктивного поставщика все Сш+1 = 0, приводит к неудовлетворению некоторых потребителей, причем среди них 1\>огут оказаться те, которые обязательно должны быть удовлетворены. Поэтому стоимости перевозок от фиктивного поставщика к потребителям, потребности которых следует обязательно удовлетворить, устанавливаются значительно большими любой из стоимости перевозок решаемой задачи. Теперь перевозки от фиктивного поставщика не могут быть запланированы указанным потребителям и их потребности будут удовлетворены только реальными поставщиками. Этот метод называется методом запрещения перевозок или блокирования клеток. Он применяется и в том случае, если груз от поставщика по каким- либо причинам не может быть направлен одному из потребителей. Обычно вместо определенного числа для блокирования клетки используют букву М, под которой понимают сколь угодно большую стоимость, или в блокируемой клетке ставят знак X. Рассмотрим применение метода блокирования на примере планирования автомобильных перевозок. В соответствии со сменно-суточным планом перевозок однородных грузов в первую смену необходи- 145
Глава I. Линейное программирование мо перевезти от поставщиков к потребителям следующее количество груза: 180 т — с 8 до 11 ч от Ах к Въ 190 т ¦— с 11 до 15 ч от Ах к В2, 120 т — с 15 до 17 ч от А2 к В3, 100 т — с 8 до 17 ч от А3 к В&, 510 т — с 8 до 17 ч от А3 к Въ. Расстояния от каждого поставщика до каждого потребителя приведены в табл. 1.59. Таблица 1.59 Аг Л А3 Вг 15 6 5 в* 10 9 8 в, 8 20 10 в4 6 3 15 в8 5 1 9 1 12 | Необходимо составить такой план работы автомобилей, чтобы грузы были доставлены в указанное время при минимальном порожнем пробеге. Для решения задачи составим табл. 1.60, в которой поставщик Ах представлен двумя строками, так как от него грузы двум потребителям должны быть доставлены в различные сроки; клетки А1В2 и А±ВВ первой строки, АтДх и АХВ3 второй строки, А2ВХ и А2В2 третьей строки «запрещены», так как время перевозок для них не совпадает. Числа, заключенные в скобки, означают количество перевозимых грузов, или объем перевозок. Кроме того, в таблице добавлены один столбец и одна строка, в которых указаны промежутки времени перевозок. Суммируя объемы перевозок по строкам, получаем количество автотонн, необходимых для погрузки каждому поставщику. Суммируя объемы перевозок по столбцам, получаем количество автотонн, образующихся у каждого потребителя. Затем обычным методом решаем закрытую модель транспортной задачи на минимум порожнего пробега. Числа, помещенные внизу клеток, являются оптимальным планом подачи порожних автомобилей. В соответствии с планом перевозки грузов можно выполнить с минимальным порожним пробегом, равным 7390 т-км. Составляем маршруты движения автомобилей: 1) А\ — В1 — А3 — Вь - А1 — 180 т — с 8 до 11 ч, 2) Аг — В2 — А3 — В5 — Ах — 190 т — с 11 до 15 ч, 3) А2 — В3 — А3 — Б4 — А2 — 100 т — с 15 до 17 ч, 4) А8 — В6 — А2 — В3 — А3 — 20 т — с 15 до 17 ч, 5) Аз — Вь — А3 — 120 т - с 8 до 17 ч. 146
§ 10. Приложения транспортной задачи Таблица 100 Матрица планирования |Пос- 1 тав- щики Ах А1 А, А* -7 ~7 -3 0 Ь/ | Время доставки грузов Потребители *х 5 A80) Ц 5 180 ° 180 8-11 Щ 8 A90) ^ 8 190 ° 190 11-15 в. 10 D20) *| 10 120 0 120 15-17 #4 6 6 3 6 3 3 100 ° A00) |* 100 8-17 щ 12 5 180 ° 5 190 ° 9 20 4 E10) 12 120 7 510 8-17 а1 180 190 120 610 1100 - Щ 0 0 0 0 - - Время подачи автомобилей 8-11 1 11-15 15-17 1 8-17 - - Так как на всех маршрутах, кроме пятого, перевозки осуществляются не полную смену, то для выполнения плана перевозок необходимо еще составить график работы автомобилей на маршрутах. Вопросы для самопроверки 1. Сформулируйте транспортную задачу линейного программирования и напишите ее математическую модель. 2. Докажите теорему о существовании решения транспортной задачи. 3. Какие существуют методы построения первоначального опорного плана? Постройте опорный план с помощью этих методов. 4. Сколько положительных перевозок должен содержать невырожденный опорный план и почему? 5. В чем заключается опорность плана транспортной задачи, условия которой записаны в виде таблицы? 6. Дайте определение системе потенциалов, расскажите, как она строится. 7. В каком случае опорный план транспортной задачи является оптимальным? 8. Какая модель транспортной задачи называется закрытой, а какая — открытой? 9. Как открытую модель преобразовать в закрытую? 10. Для решения каких экономических задач применяется транспортная задача? Сформулируйте эти задачи и постройте их математические модели. 11. Какая модель транспортной задачи применяется для решения задач на размещение? 12. В чем заключается сущность метода запрещения перевозок? 147
Глава I. Линейное программирование Задачи и упражнения 1. Найти оптимальные планы транспортных задач, заданных табл. 1.61 и 1.62. Проверить, являются ли планы единственными; если нет, то найти другой оптимальный план и убедиться, что стоимость этих планов одинакова. 2. На строительном полигоне имеются пять кирпичных заводов, объем производства которых соответственно равен 600, 600, 500, 650 и 600 т в сутки. Эти заводы удовлетворяют потребности семи строительных объектов соответственно в количестве 250, 450, 300, 450, 300, 200 и 450 т Оставшийся кирпич отправляют по железной дороге в другие районы. Кирпич на объекты доставляется автомобильным транспортом. Расстояния (в км) от заводов до объектов приведены в табл. 1.63. Определить, с каких заводов и на какие строительные Таблица 1.61 Поставщики л, | А% А3 Потр ебителя в1 21 16 15 в2 19 14 13 /4, | 14 | 12 1 Аь Ь} 10 200 11 300 вй 17 7 11 12 10 400 В4 18 20 18 17 20 250 в, 15 18 19 21 16 150 в* 16 19 22 23 21 100 в7 27 15 23 14 12 150 Вв аг 18 | 650 20 14 600 200 14 ! 100 12 300 200 —— ' ¦¦ -1 Т а б л и д а 1.62 Постав- щики Аг Л А, 1 А, 1 Л 1 Ь> Потребители Вг 19 31 25 28 13 100 В, 24 29 15 25 20 350 вя 26 27 17 21 27 50 В4 28 25 22 20 18 150 въ 30 21 24 23 14 200 В9 22 21 18 27 30 300 В7 18 19 13 29 24 350 аг 450 450 300 400 350 148
§ 10. Приложения транспортной задачи Таблица 1.63 Кирпичные заводы А1 л2 л3 ! л4 4 01 14 13 18 14 11 в, 5 4 8 7 15 Строительные объекты в, 10 11 14 13 14 В, 8 9 18 19 25 в. 16 20 23 14 19 Д» 10 12 17 16 15 в7 25 23 22 1 23 1 20 1 объекты должен доставляться кирпич, а также какие заводы и в каком количестве должны отправлять кирпич в другие районы, чтобы транспортные издержки по доставке кирпича автотранспортом были минимальными Стоимость перевозки 1 т кирпича автотранспортом удовлетворяет условию С = а + <*ср (/ — 0» где а == 25, ^ср = 4,4 коп., 1 < / < 28 (км). 3. В экономическом районе имеются пять предприятий, выпускающих некоторую однородную продукцию, которые удовлетворяют потребности семи потребителей. Объемы производства и потребностей, а также стоимости перевозок единицы продукции приведены в табл. 1.64. В связи с переходом к выпуску другой продукции уменьшаются объемы поставок потребителям В2 и В3 соответственно на 50 и 100 ед. Определить, на каких предприятиях необходимо провести сокращение, чтобы суммарные расходы на производство и транспортировку продукции после сокращения были минимальными, если себестоимость производства единицы продукции на предприятиях соответственно равна 5, 8, 12, 12 и 10 ед. 4. Найти оптимальный план открытой модели транспортной задачи, условия которой заданы табл. 1 65, если потребности потребителей Вь и Бб должны быть полностью удовлетворены. Таблица 1.64 Поставщики 1 А± 1 А2 А3 1 А4 Аь Ьз Потребители Вх | В2 10 13 15 14 21 200 19 14 И 13 23 300 в3 | в4 17 11 7 12 10 400 18 17 19 18 20 250 в5 1 вв 16 18 19 21 15 150 21 19 22 23 16 100 в7 12 14 23 25 27 50 аь 500 400 150 1 150 1 250 1 1 149
Глава I. Линейное программирование. Таблица 1.65 Поставщики А, А, А3 А, Аъ Ь1 Потребители в, | вг | вл | в4 | вь | в6 | в7 10 6 8 9 7 80 7 8 10 9 11 120 6 13 12 5 6 70 8 11 5 6 9 130 15 14 12 10 18 60 И 10 14 9 15 140 5 9 12 10 8 50 аг 70 1 150 100 1 150 1 100 1 § 11. Параметрическое линейное программирование Как известно из § 3, общая задача линейного программирования содержит постоянные величины: коэффициенты С/, ац и свободные чдены Ь% (/ = 1, 2, ..., т\ / = 1, 2, ..., п). С одной стороны, при определении этих величин на практике встречаются с тем, что в действительности они не являются постоянными, а их значения изменяются в некоторых интервалах; с другой, найдя оптимальный план некоторой экономической задачи при фиксированных значениях ац> С/, Ь(, полученных из опыта, необходимо знать, в каких допустимых пределах можно их изменять, чтобы план оставался оптимальным. Поэтому возникает необходимость исследовать поведение оптимального решения задачи линейного программирования при изменении ее коэффициентов и свободных членов. Исследования подобного рода и составляют предмет параметрического линейного программирования. Параметрическое программирование возникло в связи с изучением задач планирования производства и дает возможность управлять оптимальным планированием различных экономических процессов, которые могут быть описаны линейной математической моделью. 1 I Задача Предположим, что коэффициенты С; ли- с параметром нейной функции I в целевой функции п могут изменяться в некоторых допустимых пределах [С7< — С/; С/ + С/1, тогда для удобства исследования целесообразно коэффициенты линейной функции заменить выражением С^ (К) = С/ + ЯС/, где С/, С/ — постоянные, а X — параметр, изменяющийся в некоторых пределах. В этом случае математически задача может быть поставлена следующим образом. 150
§11. Параметрическое линейное программирование Дана линейная функция A.87) г=2 (с1+хсдх1 и система линейных ограничений п A.88) ^^а^^x^ = Ь^^ /-1,2,..., т} A.89) *7->0, /=1, 2, ..., п. Для каждого значения X в интервале б ^Я ^ ф, где б и ф — произвольные действительные числа, найти неотрицательный вектор X = = (хц х2У ..., хп), удовлетворяющий системе A.88), и доставляющий линейной функции A.87) минимальное значение. Исследуем поведение решения поставленной задачи в зависимости от изменения параметра X. Положим X = б и используем симплексный метод. В результате приходим к одному из двух случаев: для X = б оптимальный план существует (случай А); для X = б линейная функция не ограничена (случай Б). Рассмотрим каждый из них. Случай А. Пусть для X = б получен оптимальный план, которому соответствует некоторый базис, состоящий из т векторов системы къ А2, ..., Ап. В соответствии с условиями оптимальности плана A.59) его оценки должны удовлетворять условию 27- — С/^ 0. Так как С^ = С/ + 6С/, то условия оптимальности имеют вид A.90) 27— С7==а/ + 6р7-<0, /=1,2,..., л, где ^ ир; — некоторые действительные числа. Отсюда заключаем, что система неравенств а7- + Яру- ^ 0, / = = 1, 2, .,., л совместна и имеет следующие решения: X > — а^/$^ для всех C/ < 0, Я<-—&}!$] для всех Ру >0. Пусть { тах (— ау/Ру), { пип (—оу/Ру), М ^<° [х=\ Ь>° """ [ — оо, если все Р,/^0, [ +оо, если все |3/<0, тогда оптимальное решение задачи при X = б совпадает с оптимальным планом этой задачи для всех X, удовлетворяющих условию Я ^ X ^ X. Так как в данном случае левый конец интервала [б; ф] покрыт, т. е. X ^ б, то для решения задачи необходимо покрыть правый конец интервала, или доказать, что при X ^ ф задача не имеет решений. Итак, если Я конечно и[>ф, или X = +оо, то процесс решения закончен. __ _ ПустьТ конечно: X = — ак/$к и X < <р, тогда рассмотрим вектор АЛ. Если его компоненты д-^^0, то согласно симплексному методу и 151
Глава I. Линейное программирование определению X линейная функция задачи при X > А, неограничена снизу, в этом случае процесс решения также закончен. Если по крайней мере, одна из хгк > 0, то вектор Ак вводится в базис, а вектор Аь соответствующий направляющей строке, из базиса исключается. Поскольку новый базис получен с помощью обычного симплексного метода, причем при % = X, то он соответствует некоторому новому плану, причем неравенства A.91) сс; + ЭД;<0, /=1,2,..., /г совместны и соответствуют только новому базису. Покажем, что любое X < X не удовлетворяет системе неравенств A.91). Действительно, для оценки вектора \ь исключенного из прежнего базиса, получаем A.92) <*; = — аъ/хц; р/«=Р*/*№, где хХк > О как разрешающий элемент. Допустим, что системе A.91) удовлетворяет некоторое Х<СК тогда а/ + Х$1 ^ 0, или согласно A.92) — ак — Х$к ^ 0. Так как §к > 0, то из последнего неравенства следует, что X ^ — ак/$к = к. Таким образом, если X конечно, то оно является нижней границей для интервала изменения X при новом базисе. Этим самым доказана следующая теорема. Теорема 1.19. Новый базис соответствует оптимальному плану хотя бы для одного значения параметра X. Если интервал X' ^ X ^ X' является полной совокупностью значений Я, для которых новый базис соответствует оптимальному плану, то X' — X. Таким образом переходим от одного интервала изменения X к другому до тех пор, пока один из интервалов не включит X = ф. Величины X и X называются критическими значениями параметра X, а оптимальные планы, им соответствующие, называются критическими решениями. Случай Б. 1. Пусть в результате проведенной итерации для вектора Ак получена оценка ак + фи > 0, а все Хц ^ 0. Тогда, если р к ^ 0, то линейная функция задачи неограничена снизу для любого X. 2. Если §к < 0, то неравенство ак + Х$к > 0 имеет место для Х<сХ[ = —ак/$к. Отсюда для любого б ^ X < Х\ задача не имеет оптимального плана. Если для X =Х{ всея^-\-X^$^^: 0, то оптимальный план для этого значения X получен и процесс продолжается, как и в случае А. Если не всеа7- + X'ф^ <! 0, то в базис можно ввести любой вектор, для которого а 7- + Х'ф^> 0. Процесс продолжают до тех пор, пока не окажется, что либо а, + Яф,- ^ 0 для всех / =; = 1, 2, ..., п, либо пока не будет обнаружен вектор А* с оценкой аг + Х\$г > 0, для которого хп < 0, тогда возвращаются к п. 1. 162
§11. Параметрическое линейное программирование Последовательное применение описанной процедуры либо приведет к оптимальному плану для некоторого значения Я, либо позволит обнаружить, что при любом Я линейная функция задачи не ограничена снизу. Если значения б и ф заранее не заданы, а необходимо определить систему интервалов изменения Я и соответствующих им оптимальных планов, то надо найти такой базис, для которого система уравнений а,- + Я|37^ ^0,/ = 1, 2, ..., п совместна. С помощью этой системы определить Я и Я, после чего продолжить исследования как для Я > Я, так и для Я < Я рассмотренным методом. Геометрическая интерпретация задачи. Рассмотрим задачу с параметром в целевой функции на плоскости. Для каждого значения б ^ Я ^ ф найти неотрицатель- Рис. 1.18 ный вектор X = (хъ х2)у минимизирующий линейную функцию 2 = %хх + С%х2 при ограничениях ( СЩХ1 + «12*2 < ЬЪ \ &2\Х\ • ^22*2 ^ &2» *1 <^ "» *2 ^ "« I ......... I ат1х1 "Г Ят2*2 ^ Ьт> Положим, что Я ^ ф и изобразим условия задачи на рис. 1.18, где направление вектора N == (б, С2) соответствует Я = б. В этом случае функция 2 достигает наименьшего значения в вершине А многоугольника решений, а координаты этой вершины и являются оптимальным планом, соответствующим Я = б. Начнем увеличивать Я > б, тогда конец вектора N будет скользить вправо по прямой (Ь), а прямая B), вращаясь вокруг начала координат, станет параллельной ребру АВ. Пусть этому моменту соответствует Я = Яь тогда, начиная с этого значения параметра, функция 2 достигает минимального значения в вершине Б, а координаты этой вершины являются оптимальным планом, соответствующим Я = Ях. Если продолжать увеличивать значения Я, то прямая B) превратится только в опорную к многоугольнику решений в вершине В, но стать параллельной ребру ВС она не может, так как отыскивается наименьшее значение функции 2. Если уменьшать значения Я, то конец вектора N будет скользить влево по прямой (Ь), а прямая B), вращаясь вокруг начала координат, при Я = Я2 может стать параллельной ребру АЕ, а при Я = Я3 — параллельной ребру ОЕ, координаты вершин Е и И являются оптимальными планами, соответствующими значениям Я2 и Я3. При этом прямая B) останется опорной в точке О, сколько бы мы не уменьшали Я, т. е. она не может быть параллельной ребру СО. ч \, 0 1 С Л уптптгтпта А Й / 163
Глава I. Линейное программирование Таким образом, интервалами оптимальности планов задачи для различных значений параметра являются: — со< X < Х3 — критическое решение координаты вершины О; ^з ^С ^ ^ ^2 — критическое решение координаты вершины Е; %2 >< X <; Хг— критическое решение координаты вершины А; Хг <[ X < +оо — критическое решение координаты вершины В. Оптимальными решениями также служат точки, представляющие собой выпуклые линейные комбинации точек И и Е\ Е и А; А и В. Пример. Для каждого значения —оо < X < +00 найти неотрицательное решение, минимизирующее линейную функцию 2, = Ххг + 2х2 при ограничениях ( 2хх + х2 > 6, < — *1+ Зх2 < И, ^1 > 0, д:2 > О, I 3*! — 2х2 < 2, Решение. Вводя дополнительные и искусственную переменную, получаем расширенную задачу: 7.т\п = Я*! + 2аг2 + М*б ПРИ ограничениях [ 2хг -\-х2 — х3 + х6 = б —*1 + 3*2 +лг4 =11, */<0, / = 1,2,..., 6. [ 3^1-—2^2 + х5 =2, Для определения интервалов изменения X записываем расширенную задачу в табл. 1.66. Отыскиваем первоначальный опорный план, применяя метод Жордана—Гаусса, выбираем разрешающий элемент по 0 = тш (х^/х^), где г хц > 0. По этому отношению включаем в базис сначала векторы первоначальной задачи, а затем расширенной. В результате трех итераций получаем опорный плап Хх = B; 2; 0; 7; 0; 0) при базисе (Ах, А2, А4) Вектор А0 из дальнейшего решения задачи исключаем. Проверяем этот план на оптимальность, для чего подсчитываем оценки B^ — С7-) и решаем систему неравенств: с —6/7— B/7)А, < 0, \ _4/7 + (\П)Х < 0, откуда —3 <! X <! 4. Таким образом, в точке Хх линейная функция достигает минимального значения, если X изменяется в пределах [—3; 4]. Проверяем, существуют ли планы задачи при X < —3. Для этого рассматриваем компоненты вектора А3> так как именно из оценки этого вектора найдено, что X — —3. Среди компонент этого вектора х38 = 1 > 0. Выбираем эту компоненту за разрешающий элемент, проводим одно полное исключение. Вектор А4 исключаем из базиса, а вектор А3 — включаем в базис. В результате четвертой итерации получен новый опорный план Х2 = D; 5; 7; 0; 0; 0)> которому соответствует базис (Ах, А2, А3). Проверяем этот план на оптимальность: для этого подсчитываем оценки {1^ — С;) и решаем систему неравенств ( 6/7 + B/7)*, < 0,  2/7 + C/7)А, < 0, откуда получаем — оо < X <! —3. Таким образом, в точке Х2 линейная функция достигает минимального значения, если X изменяется в пределах (— оо; —3]. 154
Таблица 1.66 1 1 1 2 3 1 2 3 1 2 3 \т+\ 1 2 3 т+1 1 2 3 т+1 1 1 ^ I 1 ° 1 Базис] « 1 охо — — — — 1 А' А2 А4 А! — — — — — 1 Х 2 0 % г,-с, А2 Аз Ах 2 0 1 2~Ъ 1 А2 Аб Ах 2 0 Я, *-^ А0 6 1 11 2 14/3 35/3 1 2/3 2 7 2 4+2А, 5 ; 7 4 10+4Х 4 7 1 8+^ 1 Я 1 А* 2 1 "-1 131 0 1 ° 1 1 1 о 0 1 0 0 0 | 1 0 0 0 1 0 1 2 1 А2 I 1 3 —2 \щ 7/3 —2/3 1 0 0 о 1 0 0 0 1 0 0 0 1 ° 1 А3 —1 0 0 —1 1 ° 0 —3/7 Ш —2/7 —6/7— -B/7) Я | 0 1 0 0 -1/7 1 -3/7 -4/7- 1 -C/7) % 1 1 0 1 А4 0 1 ^ 0 0 1 1 0 о 1 0 0 3/7 1 2/7 6/7+ +B/7) Я 2/7 1 -1/7 4/7- 1 -A/7) Ь| 1 0 1 Аб 1 ° 0 1 —2/3 I 1/3 1/3 —2/7 ш 1/7 -4/7+ +A/7) Ь| 1/7 1 3/7 2/7+ 1 +C/7) Ц 0 1 0 0 1 м 1 Ав | 1 0 0 1 1 ° 0 5/7 —1 2/7 6/7+ +B/7)ЛН —М — — — — — — — — 165
Глава I. Линейное программирование Проверяем, существуют ли планы задачи при А.> 4. Для этого возвращаемся к третьей итерации и рассматриваем компоненты вектора А5, так как именно из оценки этого вектора найдено, что X ~ 4. Среди компонент этого вектора две положительные; за разрешающий элемент выбираем х2ь = 1, так как 7/1 < < 2/A/7), и производим одно полное исключение. Вектор А4 из базиса исключаем, а вектор Аб включаем в базис В результате пятой итерации получен новый опорный план Х3 = A; 4; 7; 0; 0; 0), которому соответствует базис (Аь А2, А5) Проверяем этот план на оптимальность^ для чего подсчитываем оценки Bу- — Су) и решаем систему неравенств Г -4/7 - C/7I < 0, \ 4/7 — A/7)Х <0, откуда 4 <Г X < +оо. Таким образом, в точке Х3 линейная функция достигает минимального значения, если X изменяется в пределах [4; 4-°°). Интервалами онтимальности планов первоначальной задачи для различных значений параметра являются: —оо < X <; —3, критическое решение Х2 = D; 5), 2ицп = АХ + 10; —3 <; X <; 4, критическое решение Хх = B; 2), %т\п = 2Х + 4; 4 -< X < +оо, критическое решение Х3 = A; 4), 2т\п = X + 8, Задача Дана линейная функция с параметром п в свободных членах A.93) 2 = 2 с1 хз системы /=1 ограничений и система линейных ограничений A.94) 21 аих;=Ь[+Щ, / = 1, 2,..., /я, '/=1 Х)>Ъ, /=1, 2,..., п. Для каждого значения X в интервале б ^ X <! ф, где б и ф — произвольные действительные числа, найти неотрицательный вектор X =: (хъ х2, ..., хп), удовлетворяющий системе A.94) и минимизирующий линейную функцию A.93). Допустим, что при К = 8 найден оптимальный план X* = = (х\, *2, ..., Хп); тогда каждая его компонента является линейной функцией от б, т. е. х! = # + §Рь и система неравенств A.95) ^^ + Хр{ > 0, I = 1, 2, ..., т является совместной. Если все рх = 0, то система A.95) не зависит от X, и план X* является оптимальным для всех значений параметра. Если все рь '^ 0, то план X* оптимальный для всех X ^ б, а если все рь ^ 0, то X* оптимальный для всех Я ^ б. Так как р1 могут быть как положительными, так и отрицательными, то из решения системы A.95) получаем: X > —Щ1р1 ДЛЯ р1 > 0 156
§11. Параметрическое линейное программирование тах (—<7*/р*)» причем — оо, если все /?г-<0; 'Л><—Я1/Р1 Для р1 < О, причем [ +оо, если все р% > 0. Отсюда план X* оптимальный для всех Я из интервала Я < Я ^ Я. Допустим, что X конечно. Начнем неограниченно увеличивать X, тогда оценки 2, — С/ ^ 0, поскольку они не зависят от X, останутся без изменения. При этом вектор X* с компонентами х1 — </г- + V* продолжает удовлетворять условиям оптимальности, перестав быть планом рассматриваемой задачи. Это произойдет тогда, когда хотя бы одна из компонент вектора окажется отрицательной. Пусть при увеличении X компонента х* = дг + Хрг первая стала отрицательной, тогда X = —цх1рь где рг < 0. Теперь необходимо определить, существует ли новый оптимальный план при X ^ X. Для этого надо выбрать такой вектор, подлежащий введению в базис, и вектор, исключаемый из базиса, чтобы компоненты плана в новом базисе были неотрицательными, а преобразованные оценки B7- — С,) — неположительными. Теорема 1.20. Если вектор Аь соответствующий X ——Ц\1ръ исключается из базиса и в базис включается вектор Ак) для которого тт < о *1* Ки <•и *и то образуется новый оптимальный план хотя бы для одного значениях. Если новый базис определяет решение задачи для интервала Я' < Я< Я, то Я' = Я. Дока-зательство. На основании A.65) компоненты нового опорного плана X* вычисляются по формулам: Х^ ^Я1 +Хр{ =Я1+ХР1 — -^^ (Я1 + Хрх), \ф1, х1к *1 =Як+Щ = —: Л1к Вектор X*' является планом задачи для X ="Я = —Цх^Рх- Если X*' — план задачи для некоторого другого значения Я, то оно должно удовлетворять условию Я ^Я. Это следует из того, что если хгк < 0, рг < < 0, и (дг + Ьрд/хгъ > 0, то Я > —Ц\1р\ = ЯГ. 157
Глава I. Линейное программирование Покажем, что в этом случае новый базис связан с оптимальным планом. Действительно, оценки векторов нового плана х1к Так как все 1$ — С; < 0 и хиг < 0, то все разности (I] — С7-) при хц ^ 0 неположительны. Для того чтобы получить 1} — С/ — ^- Bк — Ск) ^ 0 при яу < О, х1к необходимо, чтобы удовлетворялось неравенство 7 П ^ Х[] 17 Г \ „„гх ^]~~С] Ъъ — Съ Ъ$—С2 -<—— A^—Си) или > • х1к ХИ Х1Ъ Следовательно, вектору А&, вводимому в базис, должно соответствовать гшп 1И^1^.. х1] < ° ХЦ Следствие. Если все хц ^ 0, то исследуемая задача при Я> Я не имеет ни одного плана. Действительно, пусть при Я > Я свободный член /-го уравнения Ьг стал отрицательным, и в этом уравнении все коэффициенты неотрицательные. Так как ищется неотрицательное решение системы, то этому уравнению не могут удовлетворять никакие значения х; ^ О, / = 1, 2, ..., я, т. е. система ограничений несовместная при Я >» Я. Таким образом переходим от одного интервала изменения Я к другому до тех пор, пока один из интервалов не включит Я == ср. Если значения б и Я заранее не заданы, а необходимо определить систему интервалов изменения Я и соответствующих им оптимальных планов, то надо найти такой базис, для которого система неравенств ^Н-Я/?^ > О, I — 1, 2, ..., т совместна и оценки векторов 2,- — С7- ^ 0. С помощью этой системы определить Я и Я, после чего продолжить исследования как для Я > Я, так и для Я <; Я. Геометрическая интерпретация задачи. Рассмотрим задачу с параметром в свободных членах системы ограничений на плоскости. Для каждого значения б ^ Я ^ ср найти неотрицательный вектор X = (*!, х2)у минимизирующий линейную функцию I = С^ + С%х2 при ограничениях [ Яп*1 + #12*2 < Я&1? #21*1 + а22*2 < ^2> #1 > > Х2 > 0 аТП1Х1 "Т #7712*2 ^ ^Ш> Положим, что Я =б и изобразим условия задачи на рис. 1.19. Пусть на рис. 1.19 уравнению граничной прямой, содержащей параметр в свободном члене, соответствует прямая (/,), проходящая через 158
§11. Параметрическое линейное программирование вершины А и Е. Тогда величина отрезка ОР = ЪхХ1а171 соответствует Я = б. В этом случае функция 2 достигает минимального значения в вершине Л, образованной пересечением прямых (I) и А5, этой вершине соответствует первоначальный базис. Увеличим значение параметра Я > 6, тогда прямая (Ь) переместится в направлении ветора ]^, величина отрезка ОР уменьшится, а многоугольник решений расширится. При этом вершины, в которых прямая B) остается опорной к многоугольнику решений, а функция 2 достигает минимального значения, определяются пересечением прямых АВ и (Ь). Этим вершинам соответствует первоначальный базис, пока прямая (Ь) не пройдет через точку Аъ т. е. займет положение (Ь^. Этому моменту отвечает значение параметра Я = Ях. Если после этого продолжать увеличивать значение параметра Я1<Я<+оо, то вершина Аъ в которой 2 достигает минимального значения, находится как пересечение прямой АВ с осью Охх. В этот момент произойдет переход к другому базису, и значение 2 не будет зависеть от Я. Расширение многоугольника решений прекратится, когда прямая (Ь) пройдет через точку Е2. Для определения других возможных интервалов изменения параметра, исходя из первоначального положения прямой (Е) положим, что Я < б. При этом прямая (Ь) начнет перемещаться в направлении, противоположном вектору Ыь и многоугольник решений начнет сжиматься. Моменту, когда (Ь) пройдет через вершину 5, т. е. займет положение A2), соответствует значение Я = Я2. Если продолжать уменьшение Я < Я2, то вершины, в которых 2 достигает минимального значения, будут образованы пересечениями прямых ВС и (Ь2). Значит, при Я < Я2 произойдет замена базиса, который и соответствует оптимальным планам, пока (Ь2) не пройдет через вершину С, т . е. не достиг- пет положения (Ез). Этому моменту соответствует значение Я = Яз. Если параметру придать значение Я < Яз, то граничная прямая (/.з) с остальными граничными прямыми АВ, ВС, СИ, ЭЕ не образуют многоугольника решений и система ограничений превратится в несовместную, т. е. при Я < Яз задача не имеет решений. Таким образом, интервалами оптимальности плана для различных значений параметра являются: оо < X < Я3 — планы не существуют; Яд ¦< Я <; Я2 — координаты точек ребра СВ; ^2 ¦< Я <; Ях — координаты точек ребра ВАг\ Ях < X < + оо — координаты точки Лх. Рис. 1.19 159
Глава I. Линейное программирование Пример. Для каждого значения —оо < X < + со найти неотрицательное решение, минимизирующее линейную функцию 2 = хх + 2а-2 при ограничениях 2*! + *2 > 6, —х1 + 3*2 <С 11, *1 > 0; х2 > 0. 3*! + 2*2 < 2А,, Решение. Вводя дополнительные и искусственную переменную, получаем расширенную задачу 2т{п = х\ + 2*2 + Л4л'в при ограничениях 12*1+ *2 — *3 +*6 = 6 —Х1 + Зх2 + *4 =11, X] > 0, /= 1, 2,..., 6. 3*1 — 2ха +*б =2Аг, Для определения интервалов изменения X записываем расширенную задачу в табл. 1.67, и, пользуясь методом Жордана — Гаусса, находим первоначальный базис, при котором все 2$ — С^ •< 0. Он получен в третьей итерации Таблица 1.67 / 1 1 2 1 3 1 1 2 1 3 1 1 2 1 3 т+\ 1 1 2 1 3 | т+\ Базис — — — — — А! А, А4 А! С базиса — — — — — 1 2 0 1 2]-С1 А6 А4 Ах 0 0 1 Ъ-С] А0 6 11 2Х —4/ЗА,+6 2/ЗХ+И 2/3). —4/37.+ 18/7 2^+5 2/7Л.+ 12/7 —6/7^+48/7 2А,—9 14 3 3 1 А' 2, — 1 РП 0 0 1 0 0 1 0 0 0 1 0 2 1 Д2 | 1 3 —2 \Т/з\ 7/3 —2/3 1 0 0 0 —7/2 7/2 1/2 —3/2 о 1 Аз | — 1 0 0 —1 0 0 —3/7 1 —2/7 —8/7 3/2 -1/2 -1/2 -1/2 о 1 А4 0 1 0 0 1 0 0 1 0 0 0 1 0 о о 7 А5 | 0 0 1 —2/3 1/3 1/3 \=Щ 1 1/7 —3/7 1 0 0 0 ЛГ | А(, 1 0 0 1 0 0 3/7 —1 2/7 8/7—м — ¦ "" ~~ | — 160
§11. Параметрическое линейное программирование таблицы. В столбце А0 этой итерации записаны значения компонент опорного плана задачи, все они зависят от X и по условию задачи должны быть неотрицательными, поэтому решаем систему неравенств —4/7 + A8/7)А, > О, 2Х + 5 > О, B/7)А, + 12/7 > О, откуда —5/2 > X > 9/2. Найдем опорные планы, соответствующие критическим значениям параметра. Имеем: Хх = A; 4) и Х2 = C; 0). Исследуем задачу при уменьшении параметра. При X < —5/2 компоненте лг4 == 2Х + 5 первой становится отрицательной, значит, вектор А4 подлежит исключению из базиса. Просматриваем элементы х2р стоящие во второй строке, все они неотрицательные, за исключением х2& — —1, но это компонента искусственного вектора Таким образом, при X < —5/2 задача планов не имеет, ее система ограничений становится несовместной Исследуем задачу при увеличении параметра. Положим, что X > 9/2, тогда первой отрицательной компонентой становится х2 = 18/7 — D/7)А«, значит, вектор А2 подлежит исключению из базиса. В первой строке имеются два отрицательных элемента: #18 = —3/7 и х1Ь = —2/7, находим *1,<° Н1 *ц<П-3/7' -2/7/ т"Чз' *) 2 Вектор А5 включается в базис. Выполнив одно полное исключение с помощью первой строки, получаем новый план в столбце А0 четвертой итерации. Только одна компонента этого плана зависит от X, линейная функция от параметра уже не зависит. Решаем неравенство 2Х — 9 > 0; X > 9/2; 9/2 < X < + оо. Таким образом, если значение параметра, начиная с X = 9/2, неограниченно увеличивать, то оптимальный план Х2 = C; 0) Интервалами оптимальности планов для различных значений параметра являются: — оо< X < —5/2 — планы не существуют; —5/2^ X < 9/2 — любая выпуклая линейная комбинация точек ХгA; 4), Х2C; 0); 9/2 <[ Я < +<х> — компоненты вектора Х2 = C; 0), Вопросы для самопроверки 1. Что составляет предмет параметрического линейного программирования? 2 Дайте математическую постановку задачи с параметром в целевой функции. 3 В чем состоит геометрическая интерпретация задачи с параметром в целевой функции? 4. Дайте математическую постановку задачи с параметром в свободных членах системы ограничений. 5. В чем состоит геометрическая интерпретация задачи с параметром в свободных членах системы ограничений? Упражнения 1. Для каждого значения параметра X в интервале (—оо; + оо) найти неотрицательное решение, максимизирующее линейную функцию, и дать геометрическую интерпретацию решения задачи. 6 Зак. 1428 161
Глава I. Линейное программирование 1) ^тах — 4*1 + ЗЯ*2 при ограничениях хх-\~3х2 > 10, 2*! +3*2 < 26, -хх~3х2 < 2, ^>(); ^>0< ^*] — оХ2 ~^> ^» 2) ^тах = 4*1 + '3*2 при ограничениях *! 4-3*2 > 10, 2*! + 3*2<26, —*х + *2<2, 2*!— 3*2 <2А,, *х > 0; *2 > 0
Глава II НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ § 1. Общая задача нелинейного программирования Как известно, общая задача математического программирования формулируется следующим образом: найти вектор X = (х1у х2, ...» хп), удовлетворяющий системе ограничений, §1 (*ь х29 ..., хп) = Ьь I = 1, 2, ..., ку B-0 РА (хъ *2> .... хп) < &*, * = к + 1, Н2,н.,« и доставляющий экстремум функции B 2) 2 = /.(*ь *2, ...,*п). При этом предполагается, что известны функции §ь (хъ х2, ..., хп) и / (хъ х2> ..., л'л). Обычно на некоторые переменные хъ х2, ..., хп накладывается условие неотрицательности. Кроме того, ограничением может служить условие целочисленности решения для ряда переменных. Если п B.3) #*(*1» *2» •••! хп) = 2 а*./*Л / = 1, 2,..., ш, И п B.4) г = Цх1$хъ *п)= 2 О/*/, /=1 где а^ и С7- — известные константы, то при условии неотрицательности решения получаем задачу линейного программирования. Любую другую задачу математического программирования, не удовлетворяющую условиям B.3) и B.4), условимся считать нелинейной. Класс задач нелинейного программирования значительно шире класса задач линейного программирования. Основные результаты в нелинейном программировании получены при рассмотрении задач, в которых система ограничений линейная, а целевая функция нелинейная. Даже в таких задачах оптимальное решение может быть найдено только для узкого класса целевых функций. Рассмотрим частные случаи, когда целевая функция сепарабельная (является суммой п функций /_/ (х^) или квадратичная. 6* 163
Глава II, Нелинейное программирование Если в задачах линейного программирования точки экстремума являются вершинами многогранников решений, то, как следует из рассмотренных ниже примеров, в задачах с нелинейной целевой функцией они могут лежать внутри области, на ребре (грани) или в вершине многогранника. Таким образом, с помощью методов линейного программирования, позволяющих осуществить переход из одной вершины многогранника в другую, можно получить оптимальное решение нелинейных задач при условии, что целевая функция удовлетворяет добавочным ограничениям. Еще большие трудности возникают при решении задач с нелинейными ограничениями. В § 4 настоящей главы рассмотрены приближенные методы решения задач, в которых ограничения и целевая функция — сепарабельные. И здесь найти отимальное решение возможно только при условии, что целевая функция и функции, образующие систему ограничений, удовлетворяют подходящим свойствам. Рассмотрение задач нелинейного программирования начинают с классической задачи оптимизации. Задачи такого рода имеют место, если система B.1) содержит только уравнения, отсутствуют условия неотрицательности и целочисленности переменных, а функции ёг (хъ х2> • ••> х-п) и / {Хъ х2, ..., хп) непрерывны и имеют частные производные не ниже второго порядка. Классические методы оптимизации при этом являются теоретическим аппаратом, позволяющим в ряде случаев обосновать разработку соответствующего вычислительного метода. Рассмотрим примеры решения задач нелинейного программирования с двумя переменными. Так же как и в линейном программировании, они могут быть решены графически. Пример 1. Найти минимальное и максимальное значения сепарабельной функции 7. = (*1 — 4J + (х2 — бJ при ограничениях Решение. Область допустимых решений представляет собой много угольник АВСЕ (рис. 2.1). Если положить I = B (<2 > 0), то получим уравнение окружности (хг — 4J + (х2 — бJ = ф« С уменьшением (увеличением) <2 (квадрата радиуса) значения функции 2 соответственно уменьшаются (увеличиваются). Проводя из точки М как из центра окружности различных радиусов, получаем: минимальное значение функция 2 (/)) = 196/13 принимает в точке ^ B4/13; 36/13), в которой окружность касается области решений. Точка йяе является угловой, ее координаты находят в результате решения системы уравнений, соответствующих прямым МП и СЕ. 164
§ 1. Общая задача нелинейного программирования Функция 2 имеет два локальных максимума: в вершине А A; 0) функция 2 (А) = 45, в вершине Е F; 0) функция 2 (Е) = 40. Так как 2 (А) > 1 (Е), то вершина А — точка глобального максимума. Пример 2. Пусть область допустимых решений останется прежней, а 1 = = (#1 — 4J + (х2 — IJ. Найти минимальное и максимальное значения этой функции. Решение. Минимальное значение функция принимает в точке М D; 1) (рис. 2.2): 2 (М) = 0. Функция 2 имеет два локальных максимума: в вершине Е F; 0) функция 2 (Е) = 5, в вершине С @; 4) функция 2 (С) = 25, причем глобальный максимум достигается в вершине С. Рис. 2 2 Рис. 2.3 Пример 3. Найти минимальное и максимальное значения функции 2 — Л1 И" к\ ПРИ снраничениях х1 -\-х2 > 5, *., <6, ХгХ > О, Х2 > 0. Решение. В этом случае (рис. 2.3) область допустимых решений не является выпуклой и состоит из двух отдельных частей. Минимальное значение с) ункции 2 = 17 достигается в точках А A; 4) и ^ D; 1). Функция 2 имеет два локальных максимума: в точке О B/3; 6) функция 2 (И) = 328/9 и в точке М G; 4/7) функция 2 (М) == 2417/49. Точка М является точкой глобального максимума. Вопросы для самопроверки 1. При каких условиях общая задача математического программирования является: а) задачей линейного программирования и б) задачей нелинейного программирования? 2. Для какого класса задач нелинейного программирования разработаны методы решения? 3. В чем состоит отличие оптимального решения задачи нелинейного программирования от оптимального решения задачи линейного программирования? Упражнения Используя графический метод, найти наибольшее и наименьшее значения следующих функций: 16»
Глава II. Нелинейное программирование 1.2= (*! — бJ + (х2 — 2J при ограничениях ( х^ + 2*2 < 8, I 3*! + х2 < 15, хх > 0, х2 > 0. 1 *! + *2 > I, Отв. тт 2 = 2,5, *! = 4,5, х2 — 1,5; тах 2 = 40, #х = 0, х2 = 4. 2. 2 = 2 (*! — 7J + 4 (х2 — ЗJ при ограничениях !хх + 2х2 > 2, *1 + *2 < 6, хг > 0, #2 > 0. 2*1 + *а < 11, Отв. ппп 2 = 64/3, *х = 13/3, х2 = 5/3; тах 2 = 134, ^ = 0, х2 = 6. 3, 2 = 4 (*х — 2J + 2 (*2 — 2J при ограничениях 2*1-*2<8, Х1>°> *2>°* Отв. тт 2 = 0, Хг = 2, д:2 = 2, тах 2 = 66, х± = 0, #2 = 6. Найти максимальное значение следующих функций: 1. 2 = л:1-л:2 при ограничениях < хх + 2л:2 > 2, | *1 + *2 < 6» I 2*х + х2 < 10, Отв. тах 2 = 9, *х = 3, *2 = 3. 2. 2 = 3*! + #2 ПРИ ограничениях Хх'Х2 > 2, *? + *!< 16. Отв, тах 2 = 4/Т0, ^ = бУТо/5, х2 = 21/16/5. { § 2. Метод множителей Лагранжа Пусть задана задача математического программирования: максимизировать функцию B 5) 2 = / (хъ х2, ..., *п) при ограничениях B 6) ^ (хъ хъ ..., хп) = 0, I = 1, 2, ..., т. Ограничения в задаче заданы уравнениями, поэтому для ее решения можно воспользоваться классическим методом отыскания условного экстремума функций нескольких переменных. При этом полагаем, что функции / (хъ х2У ..., хп) и & {хъ х2, ..., хп) (/ = I, 2, ..., т) непрерывны вместе со своими первыми частными производными. Для решения задачи составим функцию B.7) Р(х, х2,..., хп, Хи ?12,..., Ят)=1 т ==/(^1э Х2, .. ., *п) + ^ Аг <?г (^1, Х2, .. ., ЛГП), /=1 166
§ 2. Метод множителей Лангранжа определим частные производные^-(/= 1,2, ..., п), -*г- (I = 1, 2, ..., т) и приравняем их нулю. В результате получим систему уравнений B.8) дР дР д! дх] ь2^ /=1 длг7- = 0, /=1,2, л, ., хп) = 0, /=1, 2,.. /72. Функция B.7) называется функцией Лагранжа, а числа А^ — л*ж*' жителями Лагранжа. Если функция 2 = / (хъ х2> ..., #п) в точке Х<0) = (хA0), хB), ..., я*!!*) имеет экстремум, то существует такой вектор Л<о> = (Я(?\ Х@2\ ..., Я(,°Д что точка (х\°\ Л°\ ..., 40), Я(!°>, А,<2\ ..., Я(т) является решением системы B.8). Следовательно, решая систему B.8), получаем множество точек, в которых функция 2 может иметь экстремальные значения. При этом неизвестен способ определения точек глобального минимума или максимума. Однако если решения системы найдены, то для определения глобального максимума (минимума) достаточно найти значения функции в соответствующих точках. Если для функций 2 =/ (хъ х2У ..., хп) и %г (хъ х2> ..., хп) (/ = 1, 2, ..., т) существуют вторые частные производные и они непрерывны, то можно вывести достаточное условие существования локального экстремума функции в точке, являющейся решением системы B.8). Однако практическое значение этого условия невелико. Метод множителей Лагранжа имеет ограниченное применение, так как система B.8), как правило, имеет несколько решений. Рассмотрим примеры применения метода множителей Лагранжа. Пример 1. Найти точку условного экстремума функции 2 = х±х2 + х%хз при ограничениях ( Х\ + х2 = 2, I. %2 ~Г #3 = 2. Р е ш о н и е. Составим функцию Лагранжа Р (хъ х2, х3, Хь Х2) = ххх2 + + х2х3 + %г (хг + х2 — 2) + Х2 (х2 + х3 — 2) и продифференцируем ее по переменным х1у х2, х3, %1 и Я2. Приравнивая полученные выражения нулю, получаем следующую систему уравнений: Ч +К = °> Х2 -Ь- А>2 ==3 01 *1+*2 ~2 =0. *2+*3 — 2 — °> Из первого и третьего уравнения следует, что Х± = Х2 = — х2\ тогда '1 """"" ^2 "Т~ "^3 === ^ » *1+*2 = 0. ¦^2 Т" Х3~— ^ • Решая данную систему, находим: хг = х2 = хв = I, 7. = 2. 167
Глава II. Нелинейное программирование Пример 2. Для обеспечения нормальной работы оборудования необходимо закупить п видов запасных частей на сумму й рублей. Стоимость некоторой детали равна Ь}. Потребность в ней есть случайная величина Уу, имеющая показательный закон распределения с параметром а/. Использование /-й детали позволяет получить прибыль, равную С/. Отсутствие детали в случае необходимости приводит к убыткам, равным г у Если деталь не используют в данном Периоде, то убыток составляет Цу Как распределить имеющиеся средства, чтобы общая прибыль была максимальной? Решение. Обозначим через х$ сумму, выделяемую на закупку /-й детали. Тогда будет куплено Х}1Ъ} деталей /-го типа. Условимся считать все переменные непрерывными. Определим получаемую прибыль: при У $ > #/&7 прибыль равна С^х^Ьр при х$1Ь$ > У) прибыль равна С;Ур Величина убытков, имеющих место в результате отсутствия /-й детали (при наличии потребности на нее), равна нулю, если У^ < х^Ър и составляет г1 (У] — Х}1Ь)), если У] > х^/Ьр Потери, вызванные тем, что имеющиеся детали не использовались, равны нулю при У $ > х^Ь( и составляют величину </7- (х]1Ь] — У ^ при Х}1Ь$ > У у Определим суммарную прибыль по ]-& детали: Ъ~С,^- \ а,е~а*у*йул + С, | у,а,е~а1у'*у,- Х./Ь. * о 00 00 =С, | -^-а, е~°/  &У1+С; |у, а3 е ~^  йУ)- х]/Ь. ' О оо со —С] I У}а]^~а,"}^У)—Г) / (У]—х3{Ь})а]&~а1Уиу3~ Х]1Ь1 ХIЬ} ОО ~Я^[-^—у^а^Пу} + х./Ь. ь, Х}1Ь1 ' Х}1Ь] ' ОО +с, | (Л._в).,.-ч*„,_.й._.й2.+ Х./Ь} 168
§ 2. Метод множителей Лангранжа Ж. сю ХIЬ1 Суммарная прибыль по п деталям составляет *-2 [^--^-•-2-+«.-к>+"> I (¦^-.^.-'"*] Величины *у должны быть найдены так, чтобы Е ^ = й. Таким образом, рассматриваемая задача имеет следующую математическую модель. Найти максимальное значение функции п при ограничении 2 д:7- = й. /=1 Для решения составляем функцию Лагранжа: /=1 \/^1 / ох х./Ь. ог VI /=1,2,...,/г, -^-«^ *' ' если Примечание. При дифференцировании была использована формула: РA/) а (г/) Приравнивая частные производные нулю, получаем е-а7 х11Ь1^я.цд; + а + Г;)-%1 /==1,2,..., я, 2 *; = *• Решая данную систему, находим значения x^^ 169
Глава И. Нелинейное программирование Пусть с1 = 820, п = 3, а значения а, 6, с, /• и <? заданы в табл. 2.1, Таблица 2.1 ( 1 2 3 а . 7 0,25 0,15 0,1 6. 1 20 25 30 с. 7 30 22 25 г. 7 18 18 15 я • 12 10 10 Тогда система уравнений имеет следующий вид: | е-°'0125^ = 0,2-X, е-о,ооб х2 = 0>2 _ ^ е-*з/зоо = 0>2 __ ^ I хх + х2 + х3 = 820. Решениями системы являются значения хг ~ 120, х2 = 250 и х3 = 450» т. е. необходимо закупить 6 деталей первого типа, 10 — второго и 15 — третьего. з Найдем суммарную прибыль 2 = 2 2у, 1=1 ?1-- 30 12-120 0,25 ' 0,25 20 60 -60 оо |F^1H,25е-°'25^ё(/1 = : 120 + 48 — 72 22 -0,25 !^° 20  0,15 ^ 0,15 = 213,33 — Л00- 0,25 10 10.25 25 50 25 10 0,15 10.450 0,1 ' 0,1 30 50 :96—240е~1'5 =42,45; 00 + 50 Г A0-г/2H,15е-ол5^2 = 10 1~иь «113,33 — 74,38 = 38,95; оо -+50 | A5—у8H,1е-ол^ау8 = = 250+100—150 —-уу- е" '5 «200-111,57 = 88,43; 2 = 42,45 + 38,95 + 88,43 = 169,83 (ед. стоимости). Примечание. При вычислении 1Ъ 12 и 23 использовано значение интеграла оо *}1Ь) 170
§ 2. Метод множителей Лангранжа Следует отметить, что если не учитывать условие x^ + х2 + х3 = А, то сум- з марная прибыль 2 принимает большее значение и при этом значение 2 *,• пре- л /=1 вышает а. Метод Лагранжа теоретически можно использовать и когда некоторые ограничения имеют вид неравенств и их решения должны быть неотрицательными. Вводя дополнительные переменные, ограничения-неравенства можно преобразовать в уравнения, причем на дополнительные переменные накладывается условие неотрицательности. Функция 1 = / (*1, *2, ...,*„) может принимать экстремальное значение как на границе области, так и во внутренней точке неотрицательного октанта. На первом этапе находят неотрицательные решения системы B.8) и определяют значения 1 для решений, которые принадлежат области изменения переменных. Для исследования границ неотрицательного октанта последовательно рассматривают случаи, когда одна из переменных обращается в нуль. Затем решают аналогичную задачу, но с числом переменных п — 1. Для этой задачи составляют систему уравнений B.8), находят все решения и значения 2, соответствующие им. Решив п таких задач, приравнивают нулю две переменные и рассматривают задачу с п — 2 переменными (число таких задач равно 2|, _2I') и т* д# ^а послеДнем этапе приравнивают нулю п — т переменных, тем самым однозначно определяют оставшиеся т переменных. Для этих решений также вычисляют значения I. Абсолютный экстремум определяют, сравнивая между собой все полученные значения 2. При достаточно большом числе переменных трудности в вычислениях могут оказаться непреодолимыми. Если в задаче нахождения экстремума функции т = 0, т. е. на переменные не наложены никакие ограничения, то задача решается аналогично. При этом функция Лагранжа Р совпадает с функцией 2. Вопросы для самопроверки 1. Каким условиям должны удовлетворять функции / (хъ хъ ..., хп) и Ц1 (хь *2» •••» Хп)> чтобы можно было применить метод Лагранжа? 2. Пусть в задаче математического программирования некоторые функции 8^ (хъ х2, ..., хп) < 0. Какие ограничения следует наложить на дополнительные переменные, чтобы было можно применить метод Лагранжа? 3. Почему метод Лагранжа практически неприменим для решения задач линейного программирования? Упражнения Используя метод множителей Лагранжа, решить следующие задачи: 1. Найти максимальное значение следующих функций: а) 2 = хх-х2 при ограничении я, + х2 = 1; б) 2 — хх — 2*2 + 2х3 при ограничении х\ + х\ + + *! = 1. 2. Рассмотреть задачу об обеспечении оборудования запасными частями при условии, что потребностью /-й детали представляет собой нормально распределенную случайную величину МУ7- = а/, ИУ7- — а/, причем п = 3. Значения й/ъ,с,гъц те же, что и в рассмотренной выше задаче; МУ± = 4; ЭУх = 1; МУ2 = 6; ВУ2 = 1,2; МУа = 10; ЭУ8 = 2. 171
Глава II. Нелинейное программирование § 3. Выпуклые и вогнутые функции В дальнейшем часто используются так называемые выпуклые и вогнутые функции. Приведем ряд определений. Пусть задано /г-мер- ное линейное пространство Еп. Функция / (X), заданная на выпуклом множестве X а Еп, называется выпуклой, если для любых двух точек ХA) и ХB) из X и любого 0 ^ X < 1 выполняется соотношение B.9) /[Ш2> + A - Я)ХA)] <^/(Х<2>) + A ~ А,)/(ХA>)- Часто множество X совпадает с Еп или является неотрицательным октантом. Функция / (X), заданная на выпуклом множестве X, называется вогнутой, если для любых двух точек ХA) и ХB) из X и любого О ^ X ^ 1 выполняется соотношение B.10) /№Х<2> + A — Щ<!>] >Я/(Х<2>) + A — А,)/(X*1)). Если / (X) — выпуклая функция, то —/ (X) — вогнутая функция, и наоборот. Геометрически это означает, что если 1 = / (X) — выпуклая поверхность (п ^ 2), то отрезок, соединяющий любые две се точки, лежит на поверхности или выше нее (рис. 2.4). Следует отметить, что выпуклость и вогнутость функций определяется только относительно выпуклых множеств в Еп, так как, по определению, вместе с любыми точками ХA) и ХB) множеству принадлежат точки А,ХB) + A — X) ХA) при всех 0 ^ X ^ 1. Последнее справедливо только тогда, когда множества выпуклые. Если неравенства B.9) и B.10) считать строгими и они выполняются при 0 < X < 1, то функция / (X) — строго выпуклая (строго вогнутая). Геометрически это означает, что отрезок, сое- Рис. 2.4 диняющий любые две точки поверхности, лежит выше (ниже) этой поверхности. Фукнция, строго выпуклая для значений х ^ х0, но не строго выпуклая для х < х0; изображена на рис. 2.4. к Если / (X) = Д] |^ (X), где ^ (X) — выпуклые функции на некотором выпуклом множестве X а Еп, то' функция / (X) также выпуклая на X. Справедливым является также утверждение, что сумма вогнутых функций есть вогнутая функция. Если / (X) — выпуклая функция, заданная на неотрицательном октанте пространства Еп, то множество V всех точек, удовлетворяющих условиям / (X) ^ Ъ, X ^ 0, выпукло (если оно не пусто). Для доказательства этого утверждения покажем, что множество V вместе с точками ХA^ и ХB) при любом 0 ^ X ^ 1 содержит точку г. 0 ху \ \ 1 > ! Х0 X* 172
§ 3. Выпуклые и вогнутые функции Х<о> = ЯХ<2> + A — Я)Х<Х), при этом Х<°> > 0. Так как / (X) - выпуклая функция, то /(Х(о)) = /[яхB> + A - Я)Х<1)] < Я/ (Х<2>) + A - Я) / (Х^1)). Для точек Х<х> и Х<2> выполняются условия / (Х<х>) <6и/ (Х<2>) < 6. Тогда для всех 0 < Я < 1 Я/ (Х<*>) < Я6, A - Я)/ (ХA>) < A - Я) ь Следовательно, Я/ (Х<2>) + A — Я) / (Х<1>) < Я6 + A — Я) & = Ь и / (Х«») < &, что и требовалось доказать. Пересечение выпуклых множеств выпукло, поэтому множество всех точек УР (в предположении, что Ц7 не пусто), удовлетворяющих условиям Д (X) {О} Ьи I = 1, 2, ..., т; X > 0, выпукло, если в неравенствах со знаком «<»Д — выпуклые функции, а в неравенствах со знаком «^»/г — вогнутые функции для X ^ 0. При определении выпуклости и вогнутости функции не требовалось, чтобы функция была непрерывной или дифференцируемой. Если же / (X) непрерывна и дифференцируема, по крайней мере, один раз во внутренних точках множества X, и выпукла на нем, то можно получить следующий результат. Из B.9) для 0<Я< 1 находим /1х">+Мх<«>-хи>I-/(ха>) <,(ХA))_,(ХA>). Я Так как существуют частные производные, по крайней мере первого порядка, то можно записать функцию / [ХA)-+ Я (ХB) — ХA>)] по формуле Тейлора: ^[Х<1)+Я(Х<2> — ХA))]=/:(Х 1)) + У/[Х<1)+Я6(Х<2) —ХA))] Я(ХB>— \И))9 где V / [Х<« + КО (Х<2> _.ХЮ)] = (|-, ^ , ..., ^) - градиент функции/, вычисленный в точке [Х<х> + Я6 (Х<2> — X*1)) ], 0 < 9 < 1. Тогда /[хи)+Мхс»)---х»))]-/(ха)) аУ/[ХA)+М(ХA)_хA))] х х (ХB)-ХA))</(Х(е))-/(ХA)). Переходя к пределу при Я-> 0, получаем ?/(Х1))(Х<2)-Х<1))</(ХB))-.ДХA)). Это условие выполняется для любых внутренних точек ХA) и ХB) и является необходимым и достаточным условием выпуклости / (X). Если функция / непрерывна вместе с частными производными первого порядка и вогнута на X, то B.11) V/(хи>) (ХB) _х<1>) > I (Х<а>)-/ (ХA)Ь 173
Глава II. Нелинейное программирование Рассмотрим некоторые свойства выпуклых и вогнутых функций. Теорема 2.1. Пусть / (X) — выпуклая функция, заданная на замкнутом выпуклом мноэюестве X а Еп\ тогда любой локальный минимум I (X) на X является и глобальным. Доказательство. Предположим, что в точке Х@) функция / (X) имеет локальный минимум, в то время как глобальный минимум достигается в точке X*, причем / (Х<°>) > / (X*). Так как / (X)— выпуклая функция, то для любого 0 ^ А, ^ 1 справедливо соотношение BЛ2) /[^Х*+A~Я)Х(о)]<^(Х*) + A-А)/(Х(°)). Множество X выпукло, поэтому точка ЯХ* + A — Я)Х@) при 0<Я< 1 принадлежит ему. Неравенство B.12) можно усилить, если вместо /(X*) подставить /(Х<°>). Имеем ?[%Х* + A-К)Х°]<ПХ@))- Значение Я можно выбрать так, чтобы точка ЯХ* + A — А,)Х@> была расположена как угодно близко к Х<0). Тогда полученное неравенство противоречит тому, что Х@) — точка локального минимума, так как в этом случае в близкой в Х@) точке функция принимает значение меньшее, чем в точке Х@). Теорема доказана. Следствие. 1. Если глобальный минимум достигается в двух различных точках, то он достигается и в любой точке отрезка, сое- диняюшего данные точки. Следствие 2. Если / (X) — строго выпуклая функция, то ее глобальный Минимум на выпуклом множестве X достигается в единственной точке. Теорема 2.2. Пусть / (X) — выпуклая функция, заданная на выпуклом множестве X, и, кроме того, она непрерывна вместе со своими частными производными первого порядка во всех внутренних точках X. Пусть Х@) —точка, в которой V/ (Х@)) = 0. Тогда в точке Х@) достигается локальный минимум, совпадающий с глобальным минимумом. Доказательство. Пусть X — произвольная точка множества X. Из B.11), полагая Х<°> = Х<х\ а X = Х<2>, получаем / (X) ^ / (Х@)), что и следовало доказать. Таким образом, выпуклая функция / (X) достигает своего глобального минимума на множестве X в каждой точке, где V/ (X) = 0. Можно показать, что если X — замкнутое, ограниченное снизу, выпуклое множество, то глобальный максимум выпуклой функции / (X) достигается на нем в одной или нескольких крайних точках [при этом предполагается, что в точке X значение функции / (X) конечно]. Применяя при решении таких задач процедуру перебора крайних точек, можно получить точку локального максимума (см. рис. 2.2), но нельзя установить, является ли эта точка точкой глобального максимума. Для вогнутых функций рассмотренные результаты можно сформулировать следующим образом. Пусть / (X) — вогнутая функция, 174
§ 4. Прибл. методы реш. задачи с сепараб. функц. заданная на замкнутом выпуклом множестве X а Еп. Тогда любой локальный максимум / (X) на X является глобальным. Если глобальный максимум достигается в двух различных точках множества, то он достигается и на бесконечном множестве точек, лежащих на отрезке, соединяющем эти точки. Для строго вогнутой функции существует единственная точка, в которой она достигает глобального максимума. Градиент вогнутой функции / (X) в точках максимума равен нулю, если / (X) — дифференцируемая функция. Глобальный минимум вогнутой функции, если он конечен, на замкнутом ограниченном снизу множестве должен достигаться в одной или нескольких его крайних точках, если функция / (X) конечна в каждой точке этого множества. Упражнения 1. Функция у — / (х) определена на всей числовой оси и монотонно возрастает. Можно ли утверждать, то эта функция: а) выпуклая; б) вогнутая? 2. Доказать, что функция у = е* выпуклая. 3. Доказать, что множество допустимых решений задачи линейного программирования выпукло, 4. На выпуклом множестве X максимизируется функция I = — х± ~\- 2ххх2 — —2х\ Имеет ли эта задача единственное решение? § 4. Приближенные методы решения задач с сепарабельными функциями Рассмотрим один из методов приближенного решения задачи нелинейного программирования. п Найти максимальное значение функции 1 = ^]/7- (х^ при ограни- чениях п B.13) 2 Яц{*1) = Ьи / = 1.2 от, X; > О, /=1, 2,..., п. Все функции в системе ограничений и целевая функция сепарабель- ные*. Приближенный метод основан на кусочно-линейной аппроксимации функций §и (Ху) и /^ (X/). При этом имеет место приближенная задача, решение которой может быть найдено с помощью симплексного метода. В общем случае определяется локальный максимум приближенной задачи, следовательно, и приближенный локальный максимум для задачи B.13). Если множество допустимых решений X выпукло, а /7- (*7-) — вогнутые функции, то локальный максимум является одновременно и глобальным. В этом случае может быть найден * Метод подробно рассмотрен в кн. Дж. X е д л и. Нелинейное и динамическое программирование. М., 1967, 175
Глава II. Нелинейное программирование глобальный максимум приближенной задачи, являющийся приближением для решения задачи B.13). Рассмотрим построение приближенной задачи для B.13). Пусть задана произвольная непрерывная функция одной переменной к(х), определенная на отрезке [0, а] (рис. 2.5). Выберем на этом отрезке г + 1 точек хк так, чтобы х0 = 0, х± < х2 < ... хт = а. Для всех значений хк найдем кк =к (хк). Соединим попарно точки (хк\ Нк) и (хк+г\ кк+1), (к=0у 1, 2, ..., г— 1) отрезками прямых. Полученная кусочно-линейная функция к (х) аппроксимирует функцию к (х) на отрезке [0, а]. Точность аппроксимации можно регулировать соответ- вующим выбором точек хк. Предположим, что в задаче B.13) все функции /, и §ц непрерывны. Разобьем интервал, в котором может изменяться переменная X] (/ = 1, 2, ..., л), точками хц и, используя только что описанный способ, построим кусочно-линейные аппроксимации §и (лгу) и / (х;) функций §и (х] ) и /у (лгу). Тогда вместо задачи B.13) рассмотрим приближенную задачу п тах2 = 2 //<*/)» /==1 \щ ' Л} л 1 ! ! ! | и1 \ ! ! ! ! 1 ! ! ! ! ! , 1 X/ Х2 Х3 Х$ Х$ Х$ Х7 Х$ Хд=0 X Рис. 2.5 B-14) 2 %ц1*1)Ь1, /=1,2,..., я, /=1 *у>0, /=1, 2,...,/г. Найдем аналитическое выражение для кусочно-линейных функций в B.14). Рассмотрим рис. 2.5. Если точка х лежит на отрезке 1#л» А-ыК то к (х) аппроксимируется следующей функцией: B.15) 1(х) = кк+ Нк+1~Ик {х-Хк). *к+\ —Хк При этом значения х, лежащие на отрезке [хк, хк+х]у можно представить в виде х = кхк+1 + A — Х)хк, выбирая некоторое X из условия О < Я ^ 1. Имеем х — хк = Х (хк+1 — хк). Подставляя в B.15) вместо х — хк последнее выражение, получаем Я(х) = Мк+1+A-Х)Нк. Если обозначить X = Хк+ъ I —X =ХкУ то можно утверждать, что при фиксированном х $ 1хк9 хк+1] существуют такие единственные значения Хк и Хк+Ъ что Х = Хк ^ + ^Л+1 *к+1, BЛб) Я(ДР)=ЯЛЛЛ + ХЛ+1Лй+1, **+**+! = *• Хк > 0» Хк^ > 0. 176
§ 4. Прибл. методы реш. задачи с сепараб. функц. Используя принятые обозначения, можно записать: BЛ7) *^2 Ч*ъ\ 6 = 0 B.18) П(х)= 2 ****; /г = 0 г 2 %к = 1> Ч>° (Ь = °> К..., О- /г=0 При этом отличными от нуля могут быть только одно или два соседних Хк. Такой способ .позволяет однозначно определить кк, причем функция B.18) представляет собой аналитическое выражение для ломаной к (х). Вернемся к задаче B.13). Пусть определено максимальное значение й]У которое может принимать переменная Ху Разбивая отрезок [0, а,]] на Г) подынтервалов с помощью г7- + 1 точек хщ так, чтобы х0; = 0 и хгр = а,}, функции ^ (х$ и §а (*/) мржно соответствен но записать в виде: Ч B-19) /,(*/)= 2 ЬиГкЦ Ы1=Ъ(*Ы)\ B.20) ц1} (г-) =- 2 ^-йЫ1\ Ше^Ви&и), « = 1,2,...,т, где B.21) ^,= 2 **,*«; й = 0 о B.22) 2 **/ = '• Здесь %м^0 при всех &, /. При определении функций §и (х7) и /7- (л'7) используют одинаковое разбиение отрезка [0, о,-]. Подставляя в B.14) выражения этих функций, получаем: тах2 = 2 2 Й^Ч/» /=1 6 = 0 2 2 *ъцЬы=Ьи / = 1,2,.. /=1 А> = о B-23) 2 Чу = 1. /^^2,, где А,^ > 0 при всех 6, /. ,., т, ...» я» 177
Глава II. Нелинейное программирование 2-/&Л) Л? й / *С Рис. 2.6 Отличие полученной задачи от обычной задачи линейного программирования состоит в том, что для каждого х^ должно быть не более двух соседних положительных А&7-. В B.23) не включено соотношение B.21), которое можно использовать для определения приближенных значений х$ после решения задачи B.23). Задачу решают симплексным методом, учитывая ограничения на выбор базиса, заключающиеся в том, что в базис нельзя включать два вектора, которые соответствуют двум несоседним ЯЛу. В процессе решения задачи может оказаться, что 2^ — /^ ^ О для всех векторов либо некоторые из разностей Ъъ) — /ьу < 0, однако ограничение, накладываемое на выбор базиса, не позволяет выполнить следующую итерацию. Тогда Х@) — значение X, соответствующее последнему базисному решению Л@> задачи B.23), и есть локальный максимум приближенной задачи. Следует отметить, что даже для небольшой размерности задача B.13) может привести к задаче B.23) с очень большой размерностью. Однако если некоторая переменная X] входит в задачу линейно, т. е. ^/(^) = ^^ и /7- (х^ =С^x^у то нет необходимости выражать х^ через %к]. Можно просто использовать X] в качестве переменной, что позволяет значительно уменьшить размерность приближенной задачи. Для решения вопроса, является ли локальный максимум приближенной задачи достаточно хорошей аппроксимацией локального максимума задачи B.13), уточняют полученный результат, используя мелкие разбиения в окрестности полученного ранее решения. Пример. Найти максимальное значение функции I = хг — х\ + х2 при ограничениях х{ + 2хг + Зл:| < 3, хг > О, х2 > 0. Решение. Используя обозначение B.13), запишем: #1 (*1) = 2ХХ + Х\\ §2 Ы = 3 Х%\ /х (хД = Хг — х\\ /а (х2) = Х2. Так как §1 (хх) и §2 (х2) — выпуклые функции, то множество допустимых решений §± (хх) + ^2 (х2) <; 3, х1 > 0, х2 > 0 — выпуклое. Поскольку /х (хх) и /2 (*г) — вогнутые функции, любой локальной максимум задачи является одновременно и глобальным. Поэтому, решая приближенную задачу, приближаемся к глобальному максимуму. Задача содержит две переменные. Поэтому точное решение может быть найдено графически. Множество допустимых решений приведено на рис. 2.6 Уравнению хх —х\ + х2 = С геометрически соответствует парабола. Глобальный максимум задачи достигается в точке, где ограничение имеет вид равенства и касательная к кривой х\ + 2 хх + 3 х\ = 3 совпадает с касательной к кривой — х\ + хх + х2 = С. Координаты точки касания х\ и х\ найдем в результате решения системы уравнений: [—2(х1 + 1)]/Зх. X х — {- ЛХХ -|- оХп — «3» = 2^ — 1. 178
§ 4. Прибл. методы реш. задачи с сепараб. функц. Левая часть последнего уравнения представляет собой выражение производной х'2, полученное из уравнения х% + 2 хг + 3 х\ = 3, правая — выражение #2, найденное из уравнения — х\ + хл + х2 — С. Решая систему, получаем: х1 = 0,11323; а:* = 0,96694; 1* = 1,06735 Составим приближенную задачу. Из ограничений следует, что лл и х2 должны принимать значения, не превышающие единицу. Выберем точки х^ так, чтобы интервал между ними был равен 0,2. Тогда для каждого / = 1,2, имеем шесть значений К^р Найдем значения функций в соответствующих точках разбиения Результаты приведены в табл. 2.2. Таблица 2.2 к \ о 1 2 3 4 5 Х\\ Х2 0 0,2 0,4 0,6 0,8 1 * (*ы> 0 0,44 0,96 1,56 2,24 3 2* (хк2) 0 0,12 0,48 1,08 1,92 3 ^ (**ц) 0 0,16 0,24 0,24 0,16 0 М*ы> 0 0,2 0,4 0,6 0,8 1 В соответствии с формулой B.23) запишем приближенную задачу: найти максимальное значение функции 2= 0 • Х01 + 0,16 Ян + 0,24 Х21 + 0,24 Я31 + 0,16 Кг + 0 . К\ + +0 г Х02 + 0,2 Х12 + 0,4 А-22 + 0,6 %32 + 0,8 Я,42 + ^52 ПРИ ограничениях 0 * Х01 + 0,44А,П + 0,96А,21 + 1,56А,31 + 2,24А,41 + ЗХб1 + 0 . Х02 + 0,12 Х12 + + 0,48 Х22+ 1,08Я32+ 1,92Х42+ЗЯб2 + *з = 3, ^01 + ^" + ^21 + ^31 + ^41 + ^51 == Ь ^02 "Т" ^12 "Т" ^22 "Г" ^32 "Т" ^42 "Г ^62 = Ь Я&7- > 0 при всех & и /. Значения функций §^ и /^ приведены в табл. 2.2, х3 — дополнительная переменная. Так как х3 входит в задачу линейно, то через Я^з ее не выражаем. Введем следующие обозначения: /0\ /0,44\ /0,96\ /1,56\ МУ; А"-D); А»=Ч;); А"=(^); /2,24\ /3\ /0\ /0,12\ /0,48\ А«=( I ); А., = [1); А02^о]; А12 = ^0 ); А.,-^0 ]5 А32=A*08); А42=A,02); А..-(?); А,-D); А.~(?) и запишем систему ограничений задачи в некоторой форме: 2 5 /=х1 & = 0 179
- 0,8 0.6 о 0,2 о о 0,16 0,24 0,24 0,16 о о < 1 ¦* < < < < о < < < < < < < <^ ! < ° 1й о о—< | оо о 1 1 ^ О) —< о-^ 1 1 ^ ю см" о —« 00 оо N 0« 1 1 00 0*-< 1 СО —« О см см" —• о СО ю СО о" ~н о 10,441 ~-, о о —о —• о о о — О О-н СО О Ю < « О см о" о" СО. © 00 1 - ° СО О 1 см о" 1 см^ ° 1 1 со 1 о о - л 1 ч~- 1 1 - 0.8 1 ° 1 ° 0,4 0,2 1 ° 1 ° 0,16 0,24 0,24 0, 16 о о < < < < < О < < < < < < < < < о из СО О |-н см -ч О —' оо О ^ о — 00 о"о —< см о"о ~ о о ^ СО —* О см ю СО о—* о о~—< о 0*-н О —• о о со т-. »-« о о о со о о 1 " оо о" 1 ' СО 1 ' 1 ' см о" 1 1 о 1 о СО 1 1 см 1 см 1 1 СО 1 1 о 1 о о ч~> 1 1 л? 1
г 00 о 0,6 0,4 0,2 1 ° 1 ° 0,16 0,24 0,24 0,16 | 1 ° 1 ° < ¦* < < < 1 < о < < 4 < < < о < < < из О О —. О *-« О 1 1 1 "Ф со О N КО | Ю СО О 00 СО 1 о^о,^ ^ 1 ь- 1 СО 1 СМ т*« Г- 1 СО СМ Ю СО 1 -и I Ю СО 1 ' оо I г- | __. <М ' СМ СО N 1 СМ О* СО , Г^ I . «-< <М 00 Г"- 1 -1" '-'О О т-н 1>. »-• 1сМ Ю|^ 1 _. СМ1СМ Ю 1*- ° 1 СМ СМ . т-1 И^ СО 1 Г- —* _< СМ —.СМ 1 <о ' 00 О О !-• 1 гЧ <М С4 «< < < О О ¦^ 1 <м|й "* ~ ^М О» 428 675 1-1» I СО 00 | - 676 675 О СО ю 675 4 й 1,0785 4— 1 1 - 0,8 1 со 1 ° О 0,2 о о 0,16 0,24 0,24 1 *° о 1 ° 1 ° <'¦ < < < м < • < и» < < < < < < < < а о 851=' 1 31 = 1 21 = 1 Й1 = 1 К1= 1 ф «| = ф СМ т-« - о СМ -* о со о" < о см ^ «1= з|= к|= 31= 1 §1= 1 §51 = 1 21 = 1 О ~ см | ^ 1 - о о < ~ т—1 ~ - ^-4 - о о о о о о о - - ©1 ю < о 8|§ 1 1 1 8|В 1 «1 = 1 1 СМ т-н 1 ^42 1 со ил | оо ю I *18 о I о тн - - **"> 1 ^ 1 N3 181
Глава II. Нелинейное программирование Векторы А3, А01 и А02 образуют положительный единичный базис. Составим первую симплексную таблицу (табл. 2.3). Используя данные табл. 2,3, находим гшп {1щ—к]) = %Ь2—/52= — * • Следовательно в базис нужно включить вектор А52- При этом из базиса следует исключить не вектор А3, а вектор А02, так как Я02 и ЯГJ не являются соседними. По правилам симплексного метода это возможно. В табл. 2.4 приведены результаты пересчета. Используя данные этой таблицы, определяем гшп D/— !к]) = 221—}21=%з1—/з^—°>24- В соответствии с ограничением, наложенным на выбор базиса, векторы А21 и А31 не могут быть включены в базис, поэтому включим вектор Аи, который также имеет отрицательную оценку, и исключим вектор А3. В результате получим табл. 2.5. В базис можно включить вектор А42, одновременно исключая вектор Ащ. В результате все разности 2^— /^ неотрицательные, что свидетельствует об оптимальности плана. Решение приведено в табл. 2.6. В соответствии с решением полученным в этой таблице, имеем: Х1г = 1; Я42 = 11/27; А,52= 16/27; 2 = 1,0785. На основании B.21) хг = 0,2, х2 = 0,9185. Сопоставим найденное решение с оптимальным: х\ = 0,11323, х\ = 0,96694; 2* == 1,06735. Приближенное решение мало отличается (особенно по значению 2) от оптимального. Следует отметить, что данную задачу можно решать, не учитывая ограничения на выбор базиса. Последнее возможно, так как множество допустимых решений выпукло, а /7-(#7-) — вогнутые функции. Рассмотренный способ приближенного нахождения локального максимума весьма полезен, так как не зависит от аналитических свойств функций, входящих в условие задачи. Однако его нужно применять с большой осторожностью, так как локальные экстремумы приближенной задачи могут существенно отличаться от глобального экстремума. Вопросы для самопроверки 1. Почему в выражении B.21) не более двух %^ могут быть отличными от нуля? 2. Как определить, является ли решение задачи, приведенное в симплексной таблице, оптимальным? 3. При решении каких задач можно не учитывать ограничения на выбор базиса? Упражнения Используя приближенную задачу, найти оптимальное решение следующих задач: 1. тах 2 = Зхх-{-2х2 при ограничениях 4\х-\~х\ < 16; Л'х > 0, х2 > 0. 2. тах 2 = — (хг — 4J —- (х2 — ЗJ при ограничениях *!+*! <6*> *1 > 0> Х2 > 0- 3. тт 2 = Цх1 — 1J-\-Щх2 — 5J при ограничениях Ч + *2 <^ 2; XI > 0, х2> 0. 4. пи'п 2 = \х\ + 3*| при ограничениях ] ^1 + 3*2 > 5, 1*1+ 4*2 > 4. 182
§ 5. Теорема Куна — Таккера § 5. Теорема Куна — Таккера Центральное место в теории нелинейного программирования занимает теорема Куна—Таккера. Пусть дана задача нелинейного программирования: найти максимальное значение функции 1 = / \хъ х2> •••> %п) ПРИ ограничениях #*(*и *2» •••» хп) > 0, * = 1,2, ..., т% B.24) *ь *8, ..., хп > 0. Составим функцию Лагранжа для данной задачи: т B.25) /?(Х, Л)=/(Х) + ^ ^г^(Х). /=1 Если выполняется условие регулярности [существует по крайней мере одна точка X, для которой §( (X) > 0 (для всех /) ], то имеет место следующая теорема. Теорема 2.3. Вектор Х@) тогда и только тогда является оптимальным решением задачи B.24), когда существует такой вектор Л@), что при Х<°> > 0 и Л<°> > 0 для всех X > 0 и Л ^ 0 B.26) /? (X, А<°>) < ^(Х*0), Л<°>) < Т7 (Х<°>) Л). Точка (Х@), Л@)) называется седловой точкой для функции Р (X, Л), а теорема называется теоремой о седловой точке. Докажем достаточность условий B.26). Доказательство. Пусть Х@) > 0 и Л@> > 0 — седловая точка функции Р (X, Л). Если в B.26) вместо Р (X, Л) подставить ее значение B.25), то получим т т ДХ)+ 2 М0>ЫХ)</(Х<о>)+ 2 Ь|0)*!(Х<в>)< (=1 !=\ т </(Х«»)+2^(Х@)) 1=1 при X > 0, Л > 0. Правое неравенство справедливо при любом Л ^ 0, поэтому т **(Х)>о, 2М0)^(Х@))=°- /=>1 Тогда из левого неравенства получим т /(Х<о))>/(Х)+ ^ М0)^(Х) при Х>0. га Так как при этом 2^?ЫХ)>0, то / (Х<°>) > / (X). *=1 Таким образом, точка Х@) удовлетворяет ограничениям B.24) и во всех других точках функция принимает значение меньшее, чем в 183
Глава II. Нелинейное программирование Х@). Это утверждение приводит решение задачи к отысканию седло- вых точек функции Лагранжа Р (X, Л). Доказательство необходимости условий B.26) ввиду его сложности не рассматривается. Если / (X) и §1 (X) —дифференцируемые функции, то B.26) эквивалентны следующим локальным условиям- Куна—Таккера: B-27) '—КЛ<о, <°- нт. С—) \ дх] /х (о) = 0, х<о)>0, /=1,2,..., в; B'28) (•^)х<о>,л<«>>°' [ дР \ Выражение 1-^-1 означает, что значение частной производной функции Лагранжа берется в точке (Х@), Л@>), где Х@) = (х{\ , х{1\ ..., *<»>), Л<°> = (М0), ^20), ..., М^)- Эти условия можно записать в векторной форме: B.27') № <0;Х'<о>№ в0; \ах /х«> Л@) I ах/х<о>.л@) B.28') № >0; АМо(а «0; ил/х@ л.@) V алух@),л@) л<«> >о. В дальнейшем при рассмотрении задачи квадратичного программирования используются условия B.27) и B.28). Пример. Найти тах 2 — — х\ — х\ при ограничениях Г 2*! + х2 > 2, | 2*! + *2 < 8, *! > 0, *2 > 0. I *1 + х2 < 6. Решение. С помощью графического метода легко решить данную задачу: хх = 0,8, х2 = 0,4, 2 = — 0,8. Покажем, что существует Л<°) ^ 0, при котором в точке оптимума выполняются условия Куна— Таккера B.27), B.28) для функции Т7 (X, Л): Р (X, Л) = - х\ - х\ + \х B*! + х2 - 2) +Я2 (8—2дгх — *2)+ +^з F — *1 — *г)' Находим: дР дР —-= _2ж1+2Х1—Х8> — ох, д#9 — =—2^+2^—^ -^7" = —2^+^—^—^; ат7 о о дР дР -— = 2х1+х2-2; —^-2Х1-х2; — = 6-*^ 184
§ 6. Квадратичное программирование Согласно условиям B.28) Х2 и ^з должны принимать нулевые значения, так как, дР дР подставляя хг = 0,8 и х2 = 0,4 в выражения -— и —, имеем значения, боль- д%2 дХ3 шие нуля, а по условию, А,/ ( — I = 0. Согласно условию Ал может '/дР\ принимать ненулевое значение, так как —— 1 = 0. {дР \ В соответствии с B.27) производная — . , /п. (/ = 1,2) должна при- \дА] /Х@), Л@) пимать нулевые значения, так как координаты вектора Х(°) отличны от нуля Находим кг =0,8. Следовательно, в точке (Х<°), Л(°>) выполняются условия Куна — Таккера и она действительно является точкой экстремума. Упражнения !. Сформулировать условия Куна — Таккера, соответствующие условиям B.27) и B.28), для задачи минимизации. Проверить, выполняются ли эти условия в точках минимума в примерах 1 и 2 (см. § 1). 2. Рассмотреть задачу отыскания минимального расстояния от начала координат до выпуклого множества: ( Хг + х2 > 4; \ 2*! + х2 > 5. Решить эту задачу графически и показать, что необходимые условия Куна — Таккера в точке минимума выполняются. § 6. Квадратичное программирование Частным случаем задачи нелинейного программирования является задача квадратичного программирования, в которой ограничения п #*(*1,*2.---> *п)=^ — ^ аИхЗ («с=1»2---. т) /=1 являются линейными функциями, а функция 1 представляет собой сумму линейной и квадратичной функции: -Ни х\ +й22 *! + -.. +Лпп х2п + +2Л12 хх х2 + 2й1г хг х3 + .. • +2Лп-т хп-х хп. Квадратичная функция п переменных называется квадратичной формой и может быть представлена в следующем виде: 2 2 <*у*у = Х'ОХ, 1 = 1/-1 где X .— (д:1, дг2,..., #7г/» <*11 ^12 • • • <*1: ^21 ^22 • ' * ^2 185
Глава II, Нелинейное программирование При этом предполагается, что О — симметричная матрица (матрица называется симметричной, если &%$ = й^). Запишем задачу квадратичного программирования в матричной форме: шах 2 = С X + Х'ОХ при B.29) АХ = В, X > О, Как и в общем случае решения задач нелинейного программирования, для определения глобального экстремума задачи квадратичного программирования не существует эффективного вычислительного метода, если не известно, что любой локальный экстремум одновременно и глобальный. Так как в задаче B.29) множество допустимых решений выпукло, то, если целевая фукнция вогнута, любой локальный максимум глобальный. Если.же целевая функция выпуклая, то любой локальный минимум также и глобальный. Функция 1 представляет собой сумму линейной функции (которая является и выпуклой , и вогнутой) и квадратичной формы. Если квадратичная форма вогнутая (выпуклая), то задачи отыскания максимума (минимума) целевой функции могут быть решены успешно. Вопрос о том, будет ли квадратичная форма вогнутой или выпуклой, зависит от того, является ли она отрицательно определенной, отрицательно полуопределенной, положительно определенной, положительно полуопределениой или вообще неопределенной. Квадратичная форма Х'ОХ называется отрицательно определенной, если Х'ОХ < 0 для всех X, кроме X, = 0. Квадратичная форма Х'ОХ называется отрицательно полуопределенной, если Х'ОХ < 0 для всех X и существует X Ф 0, для которого Х'ОХ = 0. Квадратичная форма Х'ОХ называется положительно определенной {положительно полу определенной), если квадратичная форма —Х'ОХ отрицательно определенная (отрицательно полуопределенная). Квадратичная форма Х'ОХ называется неопределенной, если она положительна для одних значений X и отрицательна для других. С помощью линейного преобразования квадратичную форму можно привести к каноническому виду, содержащему только квадраты переменных. В результате такого преобразования можно определить вид формы. Очевидно, что если в результате преобразования получе- п на форма B {хъ х2, ..., хп) = Д]Л7-л:/2 и при этом все Х] > 0, то она положительна определенная, а при Я,- < 0 — отрицательно определенная. Если среди значений X] есть как отрицательные, так и положительные, то квадратичная форма неопределенная. Пример. Задана квадратичная форма С? (хъ лг2, х3) = —3*5 + 2 хгх2 — — 6/4 х\ — х2х3 + 1/2 х±хг — 5/4 х\. Привести эту форму к каноническому виду. 186
§ 6. Квадратичное программирование 4 *** Решение. Запишем матрицу О, соответствующую данной квадратичной форме: /-3 1 1/4> 0 = 1 1 —5/4 — 1/2 \ 1/4 -1/2 —5/4^ Перепишем форму <?, выделяя члены, содержащие хг: <2 = — з \х\ —2хх (— х2+— х3) — — х2 —*2 *3- Дополняя стоящее в скобках выражение до полного квадрата, получаем ,/ 4*2+*3 V Л 2 А 59 2 Т1"" 12 / ~ 12 *2~~ 6 *2*3~ 48 *3' Полагая B 30) х{ — хг — Dд;2 + #3)/12, #{ = дг2, #з = *з> запишем квадратичную форму в следующем виде: где ?1:=!— |9 ^2 — /. «^2*3— дл *3 Из соотношений B.30) имеем B.01) Х\ = #1 -|- 1 /о#2 "Т" /1^%3 » ¦^2:=:''^2> •^3==,^3" Преобразуем BХ: 41 ~~ 12 *2 ~ 6 *2*3~~ 48 Хз ==— 12 Г2 "" 11 Ч Ч) 59 /2__ 11 / , , 5 \» ~~ 48 Хз 12 Г2+ И *3У = "2"Р+1Г^)"" 176 "*' Пусть B.32) х'х~х\, ^2+5/11х3=^2, х'^ — х'^ откуда B.33) д:^^, #2 =^2—5/1 \х%, х'ъ=х"ь% Тогда <32 = 11/12Д-?2—183/176 х%*. Окончательно имеем а{*х, хш, х3)=~3^2~11/122'2-~183/17б^2. 25 /2 _59_ ,2_ ' 132 Хз ~ 48 *3 ^" 183 . 187
Глава II. Нелинейное программирование Для непосредственного выражения хъ х2, х9 через х'[, х2> х% можно воспользоваться произведением преобразований B.31) и B.33), определив соответствующую матрицу преобразований. Преобразованию B.31) соответствует матрица Ч: Преобразованию B.33) — матрица Найдем матрицу С = С]С2г Найдем матрицу 01=С'ОС: 0! = | 1/3 Матрица Ог соответствует квадратичной форме <3 (*;, х2\ х%). Окончательно получаем 2 II 2 1О0 о С} {х'{, х\, х\) =» — Ъх\ —-— х% — х9 • При линейном преобразовании, если матрица преобразования С неособенная, положительно (отрицательно) определенная форма остается положительно (отрицательно) определенной. Так как коэффициенты квадратичной формы С) (хъ хъ х3) отрицательны, и матрица С не вырождена (|С1 = 1), то Ф (*ъ х21 х3) — отрицательно определенная. Естественно, что возникает вопрос о признаках, которые позволили бы, не приводя квадратичную форму к каноническому виду, судить о том, принадлежит ли эта форма к одному из перечисленных выше типов и к какому именно. Теорема 2.4. Если для квадратичной формы п п (Мхг, дг2,..., хп)= 2 2 йИх1*1 все определители Эъ Д2, ..., Бп отличны от нуля, то эту форму можно треугольным преобразованием привести к виду 188
§ 6. Квадратичное программирование 1Де B-34) Я,- = - 1, 2,...,п), о,=аг ап а12 1 ^22 оп = ап1 ... апп Доказательство. Так как с1п *= Ог ^= 0, то, выделяя первый квадрат, получаем С^яп^+'ад х'п). Известно, что 02 Ф О, поэтому коэффициент при *2 отличен от нуля и, применяя еще раз треугольное преобразование, можно выделить второй квадрат. Пусть уже удалось выделить к квадратов, т. е. форма с? приведена к виду 0.=К и\ +Аз«! + ••• +4и%+Aн («л+1, • • •, "п). Поскольку 0^4-1 =7^ 0, то можно выделить еще один квадрат. Таким образом, процесс последовательного выделения квадратов с помощью треугольных преобразований можно продолжать до тех пор, пока форма не будет приведена к каноническому виду. Исходя пз того, что определители B.34) инвариантны относительно треугольных преобразований, получаем соотношение Хь =0|/Л^г. Матрица О приводится к диагональному виду, при этом кг = йп: Кг 0 0 А,! 0 0 Х2 0 0 А* 0 о К 0 0 ^2 0 0 Х3 = 0 ... 0 0 ... 0 0... Кп ап а12 1 ^22 йХ1 &ц ^13 ^21 2 3 ^31 ^32 ^33 = ^11 <*М •¦ 1 ^22 •• "П1 12 .. • • <*1П • П * «7171 гли Хг =с11Ъ %^кг = 02> М^з =Оз; ...; КК ••• ^п = Д|. Так как Ку К> •••, ^?г отличны от нуля, то Ях == с1п, К12 = 1УАь ^з = -=Оз/Д2, ..., Яп = #7г/Г>71_1. Теорема доказана. Таким образом, знаки коэффициентов А,г определяются знаками определителей Ог. Случай 1. Если все определители Оъ Л2, •••» Е>п положительны, то и все коэффициенты %ь положительны, следовательно, квадратичная форма положительно определенная. С л у ч а й 2. Если в ряду 1, Оъ /J, ..., Оп знаки чередуются, то все коэффициенты Кг отрицательны, в этом случае форма является отрицательно определенной. Ш
Глава II. Нелинейное программирование Случай 3. Если ранг матрицы Ь равен г <.п, то она будет положительно полуопределенной, если первые г определителей ее поло- жительны, а остальные равны нулю. При этом возможна перестановка одноименных строк и столбцов. Положительно полуопределенная форма равна нулю, если переменные иъ и2, ..., иг принимают нулевые значения, а переменные иг+ъ иг+ъ, ..., ип — ненулевые. С л у ч а й 4. Если ранг матрицы В равен г </г, в ряду 1, Эъ .., ..., Иг знаки чередуются и Рг+1 =Дг+2 = ••• = Аг =0» то квадратичная форма отрицательно полу определенная. С л у ч а й 5. Если в ряду чисел 1, Г>ъ Въ ..., Вп нет чередования знаков, причем имеются отрицательные О(,то соответствующая квадратичная форма является неопределенной. Пример. Определить вид квадратичной формы <2 (хъ х2, х3) = — 2х| + 2*3*2 • Решение. Имеем: ¦ ох±х§ ^х2х3 4*з« 0 = 01=-2, 02 -2 1 1 -1 = 2-1 = 1, Аз- = —8 —3/2 —3/2-1-9/4 + 2 + 4=—11/4. Ряд I, #1, #2, Р3 — знакочередующийся, следовательно, квадратичная форма (! (XI, х2> х3) — отрицательно определенная Вернемся к задаче B.29), в которой полагаем, что Х'БХ — вогнутая функция. Ограничения в задаче линейные, поэтому можно использовать условия Куна—Таккера B.27') и B.28') для получения необходимых и достаточных условий оптимальности решения. Составим функцию Лагранжа для задачи B.29): B.35) Р(Х, А) = С'Х + Х'ЭХ + Л' (В - АХ), Так как то дР дх7- Аналогично имеем = с7-+2 ^ *л *ы + ^ ^ аи > /г=1 /= 1 дР дХ • = С'+20Х—А'Л. дР дА = В—АХ. 190
§ 6, Квадратичное программирование Сформулируем условие B.27') для задачи B.29). Если X* — оптимальный план задачи квадратичного программирования, то должен существовать такой вектор Л*, что X*, Л* удовлетворяет условию С + 20Х* — А'Л < 0. Введем вспомогательный вектор V1, = АЛ* — 2вх* — с > о. Тогда условие B.27) можно записать так: B.36) (У + 20Х* — А'Л* + V* = 0; (Х*)'У* = 0; X* > 0; V* > 0. Условие B.28') в данном случае имеет вид АХ* = В. Так как ограничения в задаче представлены в виде уравнений, тона вектор Л не на- ' 1йр \ кладывается условие неотрицательности, условие А{0) 1^1 @) @)=0 выполняется при любом допустимом решении и его можно исключить. Следовательно, если существуют X > 0, V > 0 и Л, удовлетворяющие условиям B.37) АХ = В, 20Х — А'Л + V = — С, Х'У = 0, то вектор X — оптимальное решение задачи квадратичного программирования B.29). Рассмотрим методы решения задач квадратичного программирования. 1 | Метод Била Метод Била представляет собой обобщение симплексного метода линейного программирования. При решении задач этим методом исходным является какое-либо базисное допустимое решение системы ограничений^ Пусть задана задача квадратичного программирования: тах 1 = С'Х + Х'ОХ, АХ = В, X > 0, где квадратичная форма отрицательно определена, т. е. функция 2 вогнутая. Предположим, что систему уравнений удалось решить относительно т первых переменных: B.38) *« = Ч01}+ 2 а^х;,1=>\,2, ...тя !=т+\ Ь\10}>0. Выражение B.38) позволяет представить 2 как функцию только свободных переменных: ]=т+1 Н=т-\-\ /= т-Ь 1 B.38') =(сй>+ 2 си>*Лц- 2 (од+ 2 С/,}^Ц = \ /=т+1 / Л=т+1 \ / = т + 1 / 191
Глава II. Нелинейное программирование = (СЙ) + ЭД)т + 1 *т+1+... + ОД *п)-1+(<ЗД-1. 0+^1, «+1 *™+1 + + ... + С{#*п)*т+^^ где С^/) = С$ Для всех Ли/. 1 д2 Выражение, стоящее в скобках при хк, не что иное, как 2"~^Г~- В частности, в исходной точке (полагая, что свободные переменные равны нулю) имеем ^-^— = СЦК Значение функции 2 в этой точке равно п С(оо- При таком представлении функции 2 условия Куна—Таккера имеют очень простой вид. Если все производные -^— ^ 0, то исходная точка является оптимальным решением, так как увеличение любой из независимых переменных приводит лишь к уменьшению значения 2, более того, в силу вогнутости функции 2 одновременное увеличение нескольких свободных переменных также приводит к увеличению значения функции. Если же некоторые из^—>0, т. е. С(но > 0, то можно увеличить значение 2, увеличивая одну из этих переменных, например хт+1у оставляя остальные независимые переменные равными нулю. Изменение хт+г ведет к изменению базисных переменных. При некотором значении хт+1 одна из зависимых переменных обращается в нуль и дальнейшее увеличение переменной хтЛХ невозможно. Это имеет место для линейной функции, так как ее частные производные — постоянные величины. Для квадратичной функции произ- годная может обратиться в нуль раньше, чем одна из ЗаВИСИ- мых переменных. Тогда дальнейшее увеличение хт+г не имеет смысла, так как значение функции 2 снова начинает уменьшаться. Рассмотрим случай, когда зависимая переменная, например хъ об- ращается в нуль раньше, чем ^ -. В качестве второго решения вы- Охт+1 бираем точку, в которой обращается в нуль переменная хъ т. е. независимыми переменными являются хъ хт+г, хт+3, ..., хп. Значения переменных х29 х», ..., хт+1 определяются однозначно: АA/ B.39) х __|А_+ Ж1_ V _ _ ^A) 11 / = /72+2 1Х = Ь[*> + а[\>х1+ ^ "\Т*1- /=т+2 Используя выражение B.39), исключим из остальных уравнений B.38) переменную хт+1. В результате получим вместе с B.39) новую систему п B.40) Х1 = Ь№+аЦ*х1+ ^ а1ГхР « = 2.3, ...,ет,т+1. 192
§ 6. Квадратичное программирование Это преобразование аналогично преобразованию, выполняемому в симплексном методе. С помощью формулы B.39) преобразуем выражение для 2: 2=(с1у + сй>*х+ 2 сьгх\1+(сц> + с[\>Х1+ 2 с\уХ] \ 1=т + 2 I \ /=т + 2 ХДГ1+...+(сс») + С«»^+ 2 ^>ху)хп. \ / = т + 2 У Таким образом, отличие полученного решения от первоначального состоит в том, что переменные хг и хт+1 поменялись местами. Рассмотрим теперь случай, когда производная ^ обращается в нуль внутри допустимой области. Введем новую, не ограниченную по знаку переменную % = ^-^ , которая связана со свободными ^ ахт+1 переменными соотношением В качестве второй точки в данном случае берем точку, в которой щ, а также старые независимые переменные, кроме хт+ъ равны нулю. На основании соотношения B.41) хт+1 можно представить в следующем виде: B.42) Жт+1=_ +_В1_ 2 -Ш-*!- 11 1Х / = т + 2 1х /г С помощью формулы B.42) преобразуем выражения для 1 и остальных зависимых переменных. В' результате число базисных переменных возросло на единицу. От второй точки переходим к третьей и т. д. При этом последний случай существенно изменяется. Для не ограниченных по знаку переменных условие Куна—Таккера имеет вид ^— = 0. Так как значение ик не ограничено по знаку, то X можно увеличивать, изменяя ик (если ^— > 0, то увеличивается значение ик, если ^— < 0, — то уменьшается). Если не ограниченная по знаку переменная при этом отлична от нуля, то ее следует исключить из выражения для 2 и из равенств для базисных переменных и в дальнейшем не принимать во внимание. При переходе к последующей точке в первую очередь рассматривают возможность изменения не ограниченных по знаку переменных. 7 Зак. 1428 193
Глава II. Нелинейное программирование { Если же все ^— = 0, то в базис включают независимую ограниченную по знаку переменную. В результате преобразований находят оптимальное решение задачи. Пример. Найти тах 2 = Юхг — х\ + 2хгх2 — 2x1 при ограничениях ( х1 + 2х2 < 10, | *!>(), х2 > 0. I хх + х2 < 6. Решение. Вводя вспомогательные переменные, запишем систему ограничений в виде хг + 2х2 + х3 = 10, лс-1 > 0, л*2 > 0, . хх + #2 + *4 = 6, #д ^ 0, #4 ;> 0. Решим относительно базисных переменных х3 и х4 систему ограничений: ( х3 = 10 — л:! — 2х2, \ *4 = 6 — *х — х2, 2 == E*0 . 1 + E—л^ + *2) хг + (*, — 2 *2)*а. Полагая свободные переменные равными нулю, получим первоначальное решение: хг =- 0; х2 = 0; Л = 105 х4 = 6, 2=0. Так как о-^— = 5, то значение 1 может возрастать при увеличении хг. Определим возможные границы возрастания хъ полагая, что переменная х2 остается равной нулю. Переменная х3 обращается в нуль при хг = 10, переменная х4 обращается в нуль при хг = 6, при хг = = 5, ^ з— = 5 — *! + х2 =0. Поэтому введем новую свободную переменную, которая имеет произвольный знак: % =5 — хх -\- х2. Включим в число базисных переменных х1у тогда для второй точки решения получим:. XI = 5 — щ + х2> х$ = о ~т~ и-± — ох2) дс4 = 1 + иг — 2 х2, 7, — B5 + 5х2) .1+(—И1)И1 + E—#2)л:2 Вторая точка решения задачи: иг = 0; хх = 5, лг2 = 0, я3 = 5, х4 = = 1; 2 =25. Так как 2"^— = 5,.то включаем в базис переменную х2 и определяем возможное ее изменение. С ростом х2 значение хх может только увеличиваться; хв обращается в нуль при х2 = 5/3, переменная л:4 обращается в нуль при х2 = 1/2; при х2 = 5, ^ §^- =5 — х2 = 0. Поэтому исключаем из базиса хА и вводим переменную х2. 194
§ 6. Квадратичное программирование Для третьей точки имеем: ^1=11/2—A/2)/«! - A/2)*4, 1/2+A/2)и1—A/2)^41 аг3=7/2—A/2)«х + C/2)*4; /91 1 \ Третья точка решения задачи такова: иг = 0; хг = п/2, #2 = ^2» Теперь увеличим значение функции 2, увеличивая иг и— > О). Переменная х± обращается в нуль при их = 11; хз = 0 при % =7; лг2 при увеличении % увеличивается; ^— обращается в нуль при иг = = 9/5. Следовательно, вместо % вводим новую переменную и2. Определим координаты четвертой точки: 9 4 1 7 2 2 23 _2_ _3_ 13 2 7 *1== 5 + 5 ~~ 5 *4' *3~ 5 + 5 а* + Т*4; 2=Aвв/в-»/б^)-1+(-4/5«2)И2 + (-в/5-1/5*4)^. Четвертая точка решения задачи такова: % =9/5, */2 =0; #2 = 23/5, х2 = 7/5, *з = 13/5, #4 = 0; 2 = 169/5. Производная ^— = 0, а ^- = —г- < 0, поэтому четвертая точка дает оптимальное решецие задачи. Равенство для и± в четвертой точке необходимо только для исключения его из других соотношений. Если бы потребовался еще один итерационный шаг, то переменную их и соответствующее ей равенство не следовало бы учитывать. Для упрощения вычислений значения Ь$, а$ и С$ для каждой итерационной точки целесообразно представить в виде таблицы. В верхней части таблицы записывают коэффициенты системы B.38). К ним добавляют строки, соответствующие ограниченным по знаку переменным, не входящим в базис. Для хн эта строка содержит единицу на пересечении с /г-м стоблцом и нули на пересечении с остальными столбцами. В нижней части таблицы записывают коэффициенты функции 2, представленные в виде B.38). Эта таблица приведена на с 196 (см. табл. 2.7). Сформулируем правила перехода от одной таблицы к другой. 1. Рассматривают первую строку нижней части таблицы без первого элемента. Если элементы этой строки, стоящие на пересечении 7* 195
Глава II. Нелинейное программирование Таблица 2.7 *\ х2 : хт+\ хт+2 1 °\0 °20 ; °т+1,0 0 хп 0 1 «1 хт+2 \ хп г(/г) Чо ьт+2,0 ; 4*0 «1 а11 а21 : ат-Ы,1 0 *7П+2 а1, т+2 а2, т+2 ; ат+1, т+2 1 0 0 ф с® Ст+2,1 : и0, т+2 Ч, т+2 ьт+2, т+2 ; г(к) 1 С(Л) ьл1 °п. т+2 ... ... ••- ... ... \ ... : ... хп а2п \ „(к) ат+1, п 0 • 1 ь0п ьт+2, /г ' С(к) с и-ми столбцами, равны нулю, а элементы, стоящие на пересечении с *-ми столбцами, неположительны, то решение оптимальное. Если элемент этой строки, стоящий на пересечении с и-м столбцом, отличен от нуля, то берут столбец в качестве направляющего. Если и-е столбцы отсутствуют или в первой строке нижней части на пересечении с ними стоят нули, то в качестве направляющего выбирают столбец, имеющий на пересечении с данной строкой положительный элемент. 196
§ 6. Квадратичное программирование 2. Делят элемент Сор\ выбранный в соответствии с правилом 1, на модуль соответствующего диагонального элемента нижней части таблицы (С{ркр < 0). Сравнивают полученное число с частными от деления Ьш] на модуль а\р\ знак которых совпадает со знаком Сркр\ Строка, дающая минимум этих отношений, является направляющей. Элемент, находящийся на пересечении направляющей строки направляющего столбца, называется разрешающим. Если направляющая строка находится в верхней половине таблицы, то в промежуточной таблице на место переменной хру которой соответствует направляющий столбец, записывают переменную, которой соответствует направляющая строка. Если последняя переменная находится в нижней части таблицы, то хр заменяют новой переменной иг. 3. Чтобы получить элементы столбца промежуточной таблицы, соответствующего направляющему, элементы последнего делят на разрешающий элемент. 4. Элементы строки соответствующей направляющей в промежуточной таблице равны нулю, кроме элемента, соответствующего разрешающему (он равен единице и получен при делении элементов направляющего столбца на разрешающий элемент). 5. Остальные элементы промежуточной таблицы получают по правилу, аналогичному правилу симплексного метода. Пусть а$ — разрешающий элемент, тогда B 43) «<*+'>д- " " я. гР {гфд98фр)щ аяр Элементы Ъ{к%1) и С{кн}1) вычисляют по аналогичным формулам. 6. Верхнюю часть окончательной таблицы переписывают без изменения из промежуточной. Второй направляющей строкой является строка, пересекающаяся с направляющим столбцом по главной диагонали нижней таблицы. Если первая направляющая строка находится в нижней половине таблицы, то вторая направляющая строка совпадает с первой. Разделив каждый элемент второй направляющей строки промежуточной таблицы на разрешающий элемент, получают соответствующую строку окончательной таблицы (вместо переменной, которой соответствует вторая направляющая строка, записывают переменную, которой соответствует направляющий столбец промежуточной таблицы). Чтобы получить /г-ю строку нижней части окончательной таблицы, от элементов этой строки в промежуточной таблице вычитают элементы второй направляющей строки, умноженные на элемент исходной таблицы, находящийся на пересечении первой направляющей строки и /г-го столбца. В табл. 2.8—2.14 приведено решение задачи. 197
Таблица 2.8 менные Хз х& Х\ Х<ь 1 XI Х<1 1 10 6 0 0 0 5 0 *, —1 1 —1 1 0 5 |-11 1 1 х2 —2 —1 0 1 0 1 —2 Промежуто чная таблица 2.9 Таблица 2.10 Таблица 2.12 менные Хз х$ XI х* 1 1 5 1 5 0 25 0 5 «1 1 1 —1 0 0 — 1 0 *2 -3 Ы1 1 1 5 0 —1 менные хз ДГ4 Х\ Х2 1 «1 *4 1 7/2 0 11/2 1/2 119/4 9/4 —9/4 «1 -1/2 0 -1/2 1/2 9/4 |-5/4| 1/4 х* 3/2 1 -1/2 -1/2 —9/4 1/4 -1/4 менные Хз х4 XI х2 1 XI \ х% 1 5 1 5 0 25 0 5 ' «1 1 1 —1 0 -5 1 —1 *¦-, —3 -2 1 1 5 -1 Промежуточная таблица 2,11 1 Перемен ные *з х* Х\ х2 1 их 1 х% 1 7/2 0 11/2 1/2 55/2 0 9/2 «1 -1/2 0 -1/2 1/2 5/2 —1 -1/2 х' 3/2 1 -1/2 -1/2 —5/2 1/2 Промежуто чная таблица 2.13 Перемен- 1 ные *з *4 *1 1 ^2 1 их *4 1 13/5 0 23/5 7/5 169/5 0 —9/5 «* 2/5 0 2/5 ^-2/5 I —9/5 1 -1/5 *4 7/5 1 —3/5 —2/5 —9/5 -1/5 198
§ 6. Квадратичное программирование Таблица 2.14 Переменные х3 Х% 1 «2 1 13/5 0 23/5 7/5 169/5 0 -9/5 и? 2/5 0 2/5 —2/5 0 -4/5 0 *4 7/5 1 —3/5 —2/5 —9/5 -1/3 Метод Баранкина Дорфмана Квадратичная форма X деленная). Как обыло отмечено Рассмотрим задачу квадратичного программирования: B.44) шах I = С'Х + Х'ЭХ, АХ = В, X > О ОХ отрицательно определенная (полуопре- выше, условие Куна—Таккера B.37) для данной задачи можно представить в следующем виде: B.45) АХ = В, 2ЭХ — А'А + V = — С; B 46) Х'У = 0; X > 0, V > 0 и сформулировать задачу так: среди допустимых базисных решений системы B.45) найти такое, которое обращает в нуль величину Х'У. Метод Баранкина—Дорфмана состоит в том, что на основании некоторого допустимого базисного решения для B.45) производят ряд симплексных преобразований, в результате которых функцию Х'У уменьшают до тех пор, пока не получено базисное решение с Х'У = = 0. Симплексные преобразования производят, учитывая ограничения на выбор переменных, включаемых в базис. Пусть имеется некоторое допустимое базисное решение B.45). Соответствующая симплексная таблица задает переменные, входящие в базис, как функции от п независимых переменных. Для удобства обозначим переменные лг7-, Яг-, V^, включенные в базис, через у у (причем V} = #у4-п)» а свободные переменные — через 1К% Тогда получим равенство B.47) 6=1 которое можно записать и для независимых переменных. Для этого симплексную таблицу дополняют строкой, в которой все элементы, кроме одного, равного единице — нули (как и в методе Била). Тогда все переменные в симплексной таблице расположены в последовательности, задаваемой их индексами: хг, х29 ..., хП9 уъ у2> •••> ^п» ^1> К> — 199
Глава II. Нелинейное программирование ..., Хт. Для базисного решения, в котором независимые переменные равны нулю, B.47') у^Ь^ и Г = Х' V- 2 ^о^о. /==1 Если включить в базис некоторую переменную 1к = 9, 6 > 0, сохраняя за остальными переменными 1Н (к Ф к) их нулевые значения, то B.48) у, = Ьн + ва;к. Переменную 1к можно увеличивать до тех пор, пока какая-нибудь из базисных переменных не обратится в нуль. Это имеет место при B.49) 0Ь= тш( ^-1 , а7-ь< 0. Полагая 1к = 9&, получим новое базисное решение. При этом Т — = Х'У принимает следующее значение: а Тк = Х'У = 2 (&/о + вьа/ь (Ьп+^^+^кап+^1 к) = п / п п = 21 Ь^оЬп+^,о+ йк[ 2 Ь]Ъап+3, к+®к 2 а7&ап-К/Ь + + 2 аМ^Н,о =^+0й 2 ^оап4-.Л Л+ 2 аА^п+/. о] + /г + 6| 2 «/*<**+/, А 5 /= 1 B.50) ^-Г+вл/гь, где B.51) Лл = аЛ + вАрЛ, п п B.52) а& = 2 Ъ^Яп+зк + 2 аА&п+уо. B.53) Рь=6ь 2 а/ьап+А- /-1 Значение Т при симплексных, преобразованиях должно уменьшаться, поэтому в базис включают такую переменную 1к, для которой Нк < 0. Это и есть новое правило выбора переменной, включаемой в базис. Если несколько чисел Як отрицательны, то из них выбирают то, которому соответствует наименьшее отрицательное произведение вкКк. Величины $к являются, по существу, вторыми производными от Т по 1к и в силу выпуклости Т всегда неотрицательны. Поэтому #к может быть отрицательным только при ак < 0. Нет необходимости вычислять рь 6А, #к, если ак ^ 0. Может случиться, что Г>0 и 200
§ 6. Квадратичное программирование Кк > О для всех 1ку тогда рассматриваемый метод неприменим. Рассмотрим такой случай (рис. 2.7). Пусть многоугольник Р1Р2Р3Р±РЬ — область, задаваемая условиями B.45). Точки кривых, изображенных пунктиром, имеют значения, равные Т. Вершины соответствуют базисным решениям, симплексное преобразование — переходу к ближайшей вершине. Пусть полученное решение соответствует вершине Рг; тогда алгоритм Баранкина—Дорфмана применим, если Т (Р2) < Т (Рх) и Т (Рь) < Т (Рг). Как следует из рис. 2.7, эти неравенства не выполняются, поэтому рассмотренный алгоритм не позволяет задачу. Пример. Рассмотрим решение задачи методом Баранкина- мана (эта задача ранее была решена методом Била). Найти тах 2 = = К)*! — х\ + 2хгх2 — 2*1 при ограничениях Рис. 2.7 решить -Дорф- хк + 2*2 + х3 = 10, *1 + *2 + *4 = 6 XI, Х2, Х$у Х± ^> 0 , Выпишем соответствующие матрицы и векторы: -с А'с Х = л = У = Система B.45) в данном случае имеет вид *1+2*2+ *8= 10- Х1 + *2 + *4 = 6. —2хг + 2х2 — }л _ Яа + 01 = — ш, 2х± — 4 х2 — 2 %г — %2 + V2 = 0> 4 х2 —XI + Уд —Я2 + У4 */ > 0, / Ух > 0, / = : 1, 2, 3, 4, 1, 2, 3, 4, 0, 0. Найдем первоначальное базисное решение данной системы. Из первого уравнения определяем х& из второго — лг4, из четвертого — ^2> из пятого — г/8, и из шестого — у4. Третье уравнение решим отно- 201
Глава II. Нелинейное программирование сительно к2. В выражения для р2 и р4 подставим полученное значение Х2. В результате получим: х3 — 10—л*! — 2лг2, х4 = 6 — хх — дг2, А,2 == 10—2*, + 2*2 — ^ + &ь у2 = 10—4 хг + 6л:2 + А* + Vъ и3 = А,ь у4 = 10—2*1 + 2л:2 — Хг + &!• Запишем решение задачи в виде таблицы (табл. 2.15). К симплексной таблице добавлена вспомогательная таблица, составленная для определения переменной, которая должна быть включена в базис. Элементы этой таблицы вычислим по формулам B.47), B.49), B.51)— B.53). Имеем: а0 = Г0 = 0 . 0+0 . 10 + 10 • 0 + 6 . 10=60, ах = 0 . 0+0 . (-4)+10 . 0+6 . (—2)+ + 1 . 0+0 . 10+(-1) . 0+(—1) • 10=—22, а2 = 0 - 0+0 • 6+ 10 . 0+6 . 2+0 . 0+1 . 10+(-2) . 0+(-1) . 10= 12, а3 = 0 • 1+0 . 1+10 . 0+6 . 1+0 . 0+0 . 10+0 . 0 + 0 . 10=6, ак = 0 • 0+0 • 1+10 • 1+6 . (—1)+0 . 0+0 . 10+0-0 + 0 . 0=4. Имеется только одно отрицательное значение аг = —22 для аку следовательно, значение Т уменьшается только при включении хх в базисные переменные. Поэтому вспомогательные величины C^, дк и #к вычисляем только для данного столбца: Р1= 1 . 0+0 . (-4)+(-1) . 0+(-1) . (-2)=2; ©! = гшп {10/1; 6/1; 10/4; 10/2; 10/2}=2,5; /?х = аг + РА = - 22+5=-17. Таблица 2.15 Переменные *! ^2 ¦^3 *4 Ч V* уз Ч 1 ^2 «А Ра 0а Кк 1 0 0 10 6 0 10 0 10 10 60 — — —~ х1 1 0 —1 —1 0 Р1 0 —2 —2 -22 2 2,5 -17 х? 0 1 —2 —1 0 6 0 2 2 12 — — —- С'1 0 0 0 0 1 1 0 1 1 6 — — "-— ь, 0 0 0 0 0 1 1 —1 —1 4 — — —"* 202
§ 6. Квадратичное программирование Таблица 2.16 Переменные ^0 хз VI V* ^3 Ч ^2 1 5/2 0 15/2 7/2 0 0 0 5 5 35/2 *>2 -1/4 0 1/4 1/4 0 1 0 1/2 1/2 3 *2 3/2 1 —7/2 | —5/21 0 0 0 -1 —1 —16 5/2 7/5 —25/2 Щ 1/4 0 -1/4 -1/4 1 0 ! 1/2 1/2 3 1 1 К 1/4 -1/4 -1/4 0 1 1 —3/2 —3/2 1 По формуле B.50) находим 7\ =60 — 2,5-17 = 17,5, Г^Ои включаем в базис переменную хг. Разрешающий элемент заключим в квадрат. Преобразование выполняем аналогично правилам 2—5 алгоритма, рассмотренного в методе Била. Результаты преобразований приведены в табл. 2.16. Найдем элементы вспомогательной таблицы: с^ = E/2). 0+0 . 0+A5/2) . 0 +G/2) » 5=35/2, а{ = E/2) • 0+0 . Ц- A5/2) . 0+G/2) - A/2)+(—1/4) . 0+0 . 0+ +A/4) , 0+A/4) « 5=3. а'2 = E/2) , 0+0 * 0+ A5/2) 1 0+G/2) (—1)+ C/2) . 0+1 » 0+ + (—7/2) . 0+(—5/2) г 5=—16, а^ =4E/2) • 1+0 г 0+A5/2) . 0+G/2) - A/2) + A/4) - 0+0 . 0 + + (—1/4) , 0+(—1/4) . 5=3, с^ = E/2) . 0+0 . 0+A5/2) . 1 + G/2).( — 3/2)+A/4) • 0+0 . 0+ + (—1/4) . 0+ (—1/4) . 5=1; Р$ = C/2) - 0+1 ¦ 0+(—7/2) . 0+(—5/2) (—1)=5/2; . Г 15/2 7/2 5 5\ 7 /?2 = —16+-5/2.7/5 = —25/2. Имеем Т2 = Тг + /?2.02=35/2-25/2.7/5=0, 203
Глава II. Нелинейное программирование поэтому найдем только значения базисных переменных: хг = 23/5; х2 = 7/5; х8 = 13/5; #4 = 0; ух = у2 = ^з = 0: у4 = К = 18/5. Значения хъ х2, х3 и л;4 совпадают с решением, полученным методом Била. При этом функция 2 принимает максимальное значение: тах 1 — = 169/5. Метод Дальнейшее развитие метод Баранкина — Франка — Вольфа Дорфмана получил в работах Франка и Вольфа. Предложенный ими алгоритм универсален. Пусть задана задача квадратичного программирования: найти B 54) тах 1 = С'Х + ХМ при ограничениях АХ ^ В, X ^ 0. Здесь Х'БХ —отрицательно определенная (полуопределенная) форма. Запишем условия Куна—Таккера для этой задачи: АХ + V = В, B.55) 2ЭХ — А' Л + V = — С; X > 0, V > 0, V > 0, Л > 0, B.56) Х'У + V Л= 0 Алгоритм Франка—Вольфа применим, если известно некоторое допустимое базисное решение, удовлетворяющее условиям B.55). Функция п-\-т B.57) Т = Х' У + У Л= 2 ^о^+п+те, о /«= 1 соответствует данному базисному решению. При этом Ь^ (/ — 1,2,... ..., п) соответствуют переменным хъ х2> ..., хп\ Ь^0 (/ =п + 1, п + 2, ..., п + пг) — у19 у2,-.;Утп', Ытг+т.о (/= 1, 2,...,п) — уъ Щ, ..., 0П; Ып+т, о (/ = я + 1, /г + 2, ..., л + пг) — Ах, Я2, ..., Хт. Для переменных, не входящих в базис, соответствующее &у0 равно нулю. Если Т = 0, то базисное решение является оптимальным. Если Г > 0, то минимизацию Т проводим в следующем порядке: в результате к-го шага имеем допустимое базисное решение Р(^, удовлетворяющее условиям B.55) вместе с соответствующей симплексной таблицей, а также решение \У<*> (не обязательно базисное), удовлетворяющее условиям B.55), которому соответствует положительное значение функции Т (на первом этапе полагаем \У<*> = Р@>). Исходя из базисного решения Р(*>, симплексным методом минимизируем форму Р'1У<*>, линейную относительно Р при ограничениях B.55). Векторы Р\ \У и \У, Р' зададим, следующим образом: Р' = (X', V, V, А'), Р' = - (V, А', X', V); \У' = (X', V, V, А'), V' = (V, Л', X', V). В результате процесса минимизации получаем последовательность базисных решений Р<% Р<*>, Р<2), ..., причем Р'<°> \У<*> > Р/<1>#*) > 204
§ 6. Квадратичное программирование > Р'B) \У(/?) > ... . Такую последовательность составляют до тех пор, пока для некоторого базисного решения не будет выполнено одно из условий: B.58) р'<А>р<Л>:=0, т.е. Г = 0; B.58') р/(Л) ™{к) < A/2) \У'(А:> ^(*>. 3 первом случае Р<Л) — окончательное решение задачи. Во втором случае полагаем Р(Л) =Р<*+1), тогда B.59) \у<Н-1> = ^Л) + |а(Р(Л+1) + \У(Л)), где B'б0) ^ Ш[П A; (РС*+1>_^С*>у (РС*+И_^<*)) }• Здесь УУ(й+,) —точка отрезка прямой между №к) и Р<*+п, в которой значение функции Т (Р) минимально. Линеаризуем функцию Т (Р) в точке \У^+1), исходя из базисного решения Р<к+1\ и снова минимизируем полученную линейную форму симплексным методом. Франк и Вольф показали, что на каждом этапе возможны только два случая — B.58) или B.58'), и что через конечное число этапов обязательно имеет место случай B.58'). Рис. 2.8 Следует отметить, что если найдено допустимое решение системы B.55), то задача B.54) имеет конечное оптимальное решение. Если для B.55) не удается найти допустимое решение, а система АХ + V = В имеет допустимое решение, не удовлетворяющее B.55), то у задачи нет ограниченного решения. На рис. 2.8 приведена графическая иллюстрация особенностей метода Франка—Вольфа. Допустимой областью является многоугольник Р^^У^Ре^- Предположим, что начальной точкой была вершина Р1# Линеаризуем Т в точке Рг и полученную функцию минимизируем. При этом \У@> = Рх. Выполняя преобразования, переходим Ш
Глава II. Нелинейное программирование Таблица Переменные Ух У* °2 кг Р'№@> 2.17 1 9 12 9 5 90 *, —1 —3 —7 —2 | -23 1 *2 —3 —2 5 1 \ -6 VI 0 0 3 1 9 ^3 0 0 1 -7 1 —3 -27 1 в точку Р3, в которой выполняется условие B.58'). Затем выбираем точку, лежащую на прямой Р^з, в которой Т минимальна. Это точка Р8, следовательно, \УA) = Р8. Линеаризуя Т в точке Р8 и выполняя два шага преобразований, переходим последовательно в Р4, а затем в Р5. В точке Р5 снова имеет место случай, предусмотренный B.58'). На отрезке Р8Р5 минимум Т достигается в точке Р5, поэтому \У<2> = Р5. На следующем этапе переходим в точку Р6, которая дает решение задачи, так как в ней выполняются условия B.58). На рисунке отражено также изменение линейных функций цели при переходе из одной вершины в другую. Рассмотрим применение метода Франка—Вольфа для следующей задачи: найти тах 2 =5хх + 6л:2 — х\ + хххг решения при х\ х±> 0, х2 > 0 . ограничениях С ^ + 3д:а<9, \гх1 + 2х2< 12, Решение. Запишем условия Куна—Таккера; XI + Зл:2 + уг = 9, 3*1 + 2лг2 + #2= 12, 2Хх — Х2 + &1 + 3^2 — 0]. = 5, —*1 + 2х2 + ЗЯХ + 2Хг — у2 = б, X > 0, V > 0, Л>0, X', V + Г Л = 0. Находим следующее базисное решение данной системы ограничений: у± = 9—хг — Зл:2, у = 12—Злгх — 2*2, кг = б—2х± + х2 -— ЗЯ-2 + VI, у21 = 9—7 хх + 5л:2—-7К2 + 3^. Следовательно, Р'<°> = \У'«» = @; 0; 9; 12; 0; 9; 5; 0); Т = 45. Представим решение задачи в виде симплексной табл. 2.17, в которую запишем значения коэффициентов Р'\ЙЛ°>. Элементы последней строки симп- плексной таблицы вычислены по формуле п + т. п-\-т У = 1 / » ' еоа
§ 6. Квадратичное программирование При этом, если переменная не входит в базис, то Ъ3о = 0. Включаем в базис переменную Я2 и исключаем переменную у2 (правило выбора разрешающего элемента такое же, как й в методе Баранкина—- Дорфмана). Симплексные таблицы преобразуют по следующим правилам: 1) меняют местами переменные, исключаемые и включаемые в базис; 2) на место разрешающего элемента ставят обратное ему число: 3) элементы направляющего столбца делят на разрешающий элемент; 4) элементы направляющей строки делят на разрешающий элемент и результат берут с противоположным знаком; 5) остальные элементы определяют так же, как и в рассмотренном выше алгоритме. Выполняя преобразования, получаем табл. 2.18. Так как Р'С1)^0* = 387/7 > 45 и Т = (№)?'&№ ф 0, то продолжаем решение задачи. Исключая из базиса переменную Хг и включая переменную х2, получаем табл. 2.19. Так как Т = A/2)Р/B) РB) Ф 0 и при этом Р'<2> \У<°> = 30 < 1/аР'<°> #°> = 45, то имеет место случай 2). Поэтому найдем \У<*> = \У@> + [л (Р<2> — \У<°>). Для определения \л воспользуемся соотношением B.60). Имеем: п-\-т (^10>_рB>Гй<0>= 2 (^°0)~^02)N/+П10 + / = 1 п-\-т п-\-т (р(»)«^@))/(рB)_^@))=з2 ^ (Ь№-Ь№)(Ь^п>0-Ь^Пг0); /— I (\у@)_рB))' ^@)==0.0+@—1).9 + (9—6).5+A2 —10).0 + +0.0 + (9—0).0+E — 0).9 + @—2).12 =—9+15 + 45—24 = 27; (рB)_^<°>)'(РB)—$'@)) =2 [0-0+1 (_9) + (— 3).(—5) + (—2)-2] = 2.2 = 4; ц = 1шп{1; 27/4} = 1. Следовательно, Т принимает наименьшее значение на отрезке Р<2>\У@) в точке РB>. Линеаризуем функцию в точке РB), \УA) = РB). Решение приведено в табл. 2.20. Включаем в базисные переменные х± и исключаем уг. В результате получаем табл. 2.21. Так как Р'*1) • Р<х> ^0и Р'A>^<1)<-1-Р,(о) ^'<х>, То имеем случай 2). Для того чтобы найти значение \УB) = \УA) + \х (РA) — А^A)), необходимо определить [г=пипП; -—-—^тТТг | (РA)-1УA))'(Р<1>_^A)| 207
Глава II. Нелинейное программирование Таблица 2.18 Перемени ые Уг ^2 Р'A)\у@) 1 9 12 9/7 8/7 387/7 «1 —1 —3 —1 1 4 *2 —3 —2 5/7 1-8/7| —177/7 VI 0 0 3/7 —2/7 —18/7 у2 0 0 -1/7 —3/7 27/7 Таблица 2.19 Переменные | У\ \ Уг ^-2 Р'B)\^<0} 1 6 10 2 1 30 *1 -29/8 —19/4 —3/8 7/8 —209/8 ** 21/8 7/4 —5/8 —7/8 177/8 о, 3/4 1/2 1/4 -1/4 15/ «2 —9/8 —1/4 1/8 3/8 -45/8 Таблица 2.20 Переменные *2 02 ^2 р'@)\уA) 1 1 6 10 2 40 Х\ 7/8 |-29/8| -19/4 -3/8 -53/4 "°\ -1/4 3/4 1/2 1/4 7/2 02 3/8 -9/8 -3/4 1/8 -1/4 X. 1 —7/8 1 21/8 7/4 —5/8 -П/4 Таблица 2.21 Переменные *2 Х\ У2 ^2 р'A)\уA) 1 71/29 48/29 62/29 40/29 56/29 У\ —7/29 —8/29 38/29 3/29 106/29 щ —2/29 6/29 —14/29 5/29 22/29 щ 3/29 —9/29 21/29 7/29 112/29 К —7/29 21/29 —49/29 -26/29 -358/29 208
§ 6. Квадратичное программирование Таблица ' Переменные Ч У2 | ^2 Р'<0»)\уB) 2.22 I 48/29 71/29 , 62/29 40/29 5040/841 Уг —8/29 —7/29 38/29 3/29 1706/841 »1 6/29 —2/29 —14/29 5/29 250/841 #2 —9/29 3/29 21/29 7/29 1274/841 *,! 21/29 —7/29 1 —49/29 [ —26/29 —3572/841 Имеем: (\уA>_р<1>)' \УA) = 636/29; (рA>_1уи>)' (р<1)~ШA)) = 7208/841; 636/29 Г 636/29 ^ ^т|п|1;йоШГГ :1. Следовательно; \УB) = РA). Минимизируем функцию Р'ШB) (табл. 2.22). Включаем в базис Хг и исключаем у2. В результате функция Т принимает значение, равное нулю. Поэтому не будем пересчитывать всю таблицу, а найдем только значения следующих переменных: хг = = 18/7; х2 = 15/7; Кг = 62/49; Я2 = 12/49. При этом тах 2 - 981/49 Двойственность В разделе «Линейное программирование». в квадратичном изложен принцип двойственности, кото- программировании рый имеет место и для задач квадратичного программирования. Если исходная задача формулируется так: найти тах 2 =С'Х + Х'ОХ при ограничениях АХ = В, X > 0, то двойственная задача имеет вид: найти гшп ЦР=—Х'ОХ + А'В при ограничениях 20Х — А'Л < — С, X > 0. Для двойственных задач имеют место следующие утверждения. Если допустимая область одной задачи пуста, то допустимая область другой задачи либо пуста, либо функция цели на допустимой области не ограничена. Если для одной из задач целевая функция не ограничена на заданной области решений, то для другой область решений пустая. Если одна из задач имеет оптимальное решение, то оптимальное решение имеет и вторая задача, причем тах г = т!п Г, 209
Глава II. Нелинейное программирование Если Х@) — решение прямой задачи, то компоненты Х@) совпадают с соответствующими компонентами решения двойственной задачи. Если матрица О строго определена, то верным является и обратное утверждение. Кроме того, используя условия Куна—Такке- ра, в этом случае можно исключить X из двойственной задачи с помощью ограничений равенств. Если в основной задаче матрица А является, например, матрицей расхода ресурсов, затрачиваемых на производство продукции, то, как и в двойственной задаче линейного программирования, переменные К( определяют неявную цену /-го вида ресурсов. Вопросы для самопроверки 1. Сформулируйте задачу квадратичного программирования. 2. Почему произвольную квадратичную форму можно представить в виде Х'ЭХ, где О — симметричная матрица? 3. При каких условиях может быть найден глобальный оптимум задачи квадратичного программирования? 4. При каких условиях квадратичная форма является отрицательно определенной (полуопределенной), положительно определенной (полуопределенной), неопределенной? Упражнения 1. Определить вид следующих квадратичных форм: а) <2 (*!, х2, хв) ==*! +2*! х2 + 2х* + 4х2 хг+х%\ б) ([(Хх, х2, х3)=> — х1-\-2ххх2—2*!л:з—2*§ — 4х2х3+х^ в) (Цх19 х2, х3)=*—2х1—4х1х2+2х1х3 — 4х1+ 2х2х3; г) <2(#1, х2, х3) — —х\-{-2х1х2-\-2х1 х3—4л:| — 14лг^х3 —13л:|; Д) Ф (*1. *2> *з) =*1 —2*1 *2 + 4*1 *8 +^\ + 6*§ . 2. Решить, используя один из рассмотренных методов, следующие задачи квадратичного программирования: а) шах 2 = 2%+ Зх2 — 2 х\ при ограничениях |'#1 + 4х2<4, 1*1+ Х2<2, *1>0, х2>0; б) шах Е = 2 Хх + 3 х2 — х\ — 2 х\ при ограничениях 1*1 — *2 > О, —хг + 2х2 < 2, хг > 0, х2 > 0; Н + х2 < 4, в) тах I = хг~\- Ь х2 — 2 х\ + 2 ххх2 — *§ при ограничениях [ 2 *1 + х2 > 2, < 3 *х + д:2 < 6, XI > 0, л:2 > 0, I #2 < 4, Отв. хх = 1, лг2 = 3| 210
§ 7. Градиентные методы реш. задач нелин. програм. г) тах 1 = - 10 * + 12 х2 + 11 х3 - х\ + 2 хгхш + хгх3 -2 *¦ + х2х3 - — I х% при ограничениях ( 2 х1 + х2 + 5 х3 < 20, | —д^ + 3 *2 + 2 х3 < 15, 1 *1 > 0, л:2 > 0, х > 0. Отв. #х = 0, х2 = 3; л;3 = 3; д) тах 2 = 13^ — 9*2 + 11*3 —- ** + 2*1*2 — 2*| — 1,5*2*3 — *1 при ограничениях ( х1--2х2+3хг<18у {з,1+4,;-,з<1б,д;1>о,дс2>о'хз>0' Отв *! = 6, х2 = 0, дс3 = 4; е) тах 2 = 9 л^ — 8 х2 — 0,5 л^ — 2 д^ — 5 х? при ограничениях х14-2х2+х3<\2, {* Отв. л:г = 10, х2 = 1, *з = О- § 7. Градиентные методы решения задач нелинейного программирования В общем случае под градиентными методами понимают методы, в которых направления движения к точке оптимума функции совпадают с направлением градиента этой функции. Использование градиентных методов для решения задач нелинейного программирования в общем случае позволяет найти точку локального экстремума. Глобальный экстремум можно найти только в задачах минимизации (максимизации), целевая функция которых является выпуклой (вогнутой), а область допустимых решений выпукла. Сходимость метода достаточно медленная, а конечное число итераций возможно лишь для узкого класса задач. Решение задач начинают с произвольной допустимой точки Х@), Для перехода в результате итераций от точки Х(й) к точке Х^+!) в Х<А) определяют такое направление 8<А), чтобы при достаточно малом Я > 0 луч Х(й) + №к)&к) принадлежал области допустимых значений X. Затем находят величину Я<А), равную пип {Я', Я",} где Я' —значение параметра, при котором луч пересекает область допустимых значений; Я" — такое допустимое значение Я, при котором функция достигает максимума на луче \{к) + Я<йM(й). Если значение №к> бесконечно, то функция цели не ограничена. В противном случае определяют следующую точку итерационного процесса: B.61) Х(/г-И> = Х<*>+^>5(*>. Если Х(к) — внутренняя точка области допустимых решений, то 8(й) = = V/ (Х<Л)) — градиент функции в точке Х(Л). Как известно, градиент функции определяет направление быстрейшего возрастания функции. Поэтому при перемещении функции по направлению градиента ее значение возрастает. Если же точка Х(к) находится на границе 211
Глава II. Нелинейное программирование области и градиент направлен от допустимой области, то направление 8(&) должно быть выбрано так, чтобы обеспечивалось возрастание функции / (X) и луч Х(А;) + %(к)&к) находился в области допустимых значений. Различие градиентных методов состоит в способе определения направления 8(*\ Рассмотрим некоторые градиентные методы решения задач нелинейного программирования. 1 I Метод Метод Розена применяют для решения проектируемых задач квадратичного программирования с I градиентов Розена определенной (полуопределенной) квадратичной формой. Если точка Х@) — граничная, то градиент проектируют на границу допустимой области и движение осуществляют по направлению его проекции. В этом случае траектория движения все время остается на границе допустимой области, не покидая последнюю. Точнее, градиент проектируют на некоторое граничное линейное многообразие, содержащее Х@), в частности, на многообразие с наименьшим числом измерений. Например, в случае пространства трех измерений допустимая область представляет собой многогранник и ее граница состоит из многообразий размерности 2 (боковые поверхности), размерности 1 (ребра) и размерности 0 (вершины). Если точка Х@) принадлежит грани, но не принадлежит ребру, то градиент проектируют на грань; если же Х@) принадлежит ребру, — то на ребро. Для внутренней точки Х<0) метод Розена аналогичен обычному градиентному методу. Проектирование градиента на некоторое многообразие осуществляется с помощью матрицы проектирования. Введем понятие матрицы проектирования. Для этого рассмотрим я-мерное пространство, базис которого образуют векторы Аь Аа, ..., Ап. В нем произвольный вектор представляется линейной комбинацией. п Из множества векторов А* выбираем ц векторов, например Ах, А2, ... ..., Ад. Для них существует линейное подпространство (многообразие) размерностью #> образуемое этими векторами: Х=2 "*А* ИЛИ Х==Аа,1,> где А<5 — матрица, образованная векторами А1э А2, ..., Ад. Обозначим это подпространство через М. Уравнения А/Х =0 задают в я-мерном пространстве гиперплоскости И1. При пересечении ц гиперплоскостей образуется линейное подпространство размерностью п — ц. Обозначим его через М. Векторы Аъ А2, ..., Ад перпендикулярны М7 следовательно, М и М взаимно перпендикулярны и произвольный «-мерный вектор V можно раз- 212
§ 7. Градиентные методы реш. задач нелин. програм. ложить: У == У^ + Ум. При этом 4% $ М, а \м € М . Так как М и М перпендикулярны, то Уя - Ум = 0. Назовем У^ и Ум проекциями вектора V соответственно на М и М. Чтобы спроектировать V на М$ используем матрицу #-го порядка Рду которая получается в результате выполнения следующих операций: B.62) Рд = Е-А,(АдА^)-1 Ад. При этом матрица Ад • А' является симметричной и, кроме того, в силу линейной независимости векторов Аь А2, ..., Ад она не вырождена, следовательно, для нее существует обратная матрица. Матрица проектирования обладает следующими свойствами: 1) ?^Рд; 2) ?я.?я^?я. При доказательстве первого свойства исходим из того, что (А + В)' = А' + В' и (АВ)' = В'А'. Действительно, Р;=[Е-А;(А^А^А9Г = Е-А^А^(Ад.А;)]' = = е-а; [(Ад-А^)-1 Аяу =е~а; (А,.а;)-1 ая ввиду симметричности матрицы Ад • А^ и обратной для нее матрицы. Доказательство второго свойства основано на том, что операция умножения матриц удовлетворяет дистрибутивному и ассоциативному законам: А (В + С) = АВ + АС, А (ВС) = (АВ)С. Поэтому Р<гРд = 1Е-А; (А^А;)-1 А*] [Е-А; (А^А^ А,] = Е-ЕА; (Ад-А;)-1 А,- -"-А^А^А^) —* Ад Е + А^ (Ад-Ад)~х А^ А^ (Ад,- А^)-1 Ад = -Е-А^(Ав.А^А9-А;(Ад.А^)-1А9+А^Е(А^А;)-» Ад = = е-а^(АG.а;)-1а(?. Покажем, что при умножении матрицы Рд на произвольный вектор У его проекция Ум =РдУ принадлежит М и перпендикулярна Уд|. Умножим матрицу Ад на Ум АгУм-кд^ У-А^Е-А; (А^А^ А,] У=А9 ЕУ-А, А^ (Ад.А^)-1 А, У = = АдЕУ-ЕАдУ = 0. Аналогично получаем *м-*я=*м(*-*м)=Ря у)' (у~р* *> = *' р« у~у' р« ра у== <=У'РдУ—У Рд У = 0, так как ранее было показано, что Рд • Рд = Рд. Таким образом, умножая матрицу проектирования Рд на произвольный вектор V п-мерного пространства, получаем его проекцию, принадлежащую М. Пусть поставлена задача максимизировать функцию 2 = С X + + Х'ОХ, АХ<В? где Х'БХ — отрицательно полуопределенная 213
Глава II. Нелинейное программирование форма; А — матрица порядка т X п. При этом предполагается, что возможные ограничения по знаку переменных х$ уже включены в систему ограничений. Многообразие размерности п — 1, которое определяется равенством п 2 ацХ} — Ьг = О, т. е. является гиперплоскостью, обозначим через Нь. Граница допустимой области состоит из всех допустимых точек, п для которых 2^7*7 — Ъ% = 0 хотя бы для одного и Вектор-градиент 7=1 Аг- = (аЬъ аB, ..., щпУ перпендикулярен поверхности Нг и направлен от допустимой области. Несколько гиперплоскостей называются линейно независимыми, если соответствующие векторы А* линейно независимы. Под пересечением к гиперпласкостеи понимают множество точек, принадлежащих всем к гиперплоскостям. Пересечение к гиперплоскостей образует (п — &)-мерное линейное многообразие в /г-мер- ном пространстве переменных х}-. Например, пересечением п — 1 независимых гиперплоскостей является прямая, пересечением п независимых гиперплоскостей —точка. Выделим из общего множества Нь гиперплоскостей д линейно независимых , например, Нъ Я2, ..., Ня. Обозначим (п —^-мерное пересечение этих гиперплоскостей через М. Градиенты Аъ А2, ..., А^ перпендикулярны линейному многообразию М.Линейное многообразие размерности #, «натянутое» на линейно независимые векторы Ах, А2,... п ..., А0, обозначим через М. Тогда множество точек X = 2««Аг (щ — _ ~ 1=1 скаляры) принадлежит М. Многообразия М и М взаимно перпендикулярны и всякий л-мерный вектор V допускает однозначное разложение: причем вектор У^ лежит в М9 а Уд* параллелен многообразию М. Кроме того, У^ Ум = 0; Ум называют проекцией У на линейное многообразие М. Если вектор У задан, то его проекция получается умножением вектора У слева на матрицу проектирования: Вернемся к задаче максимизации функции Ъ\ / дг дг дг у \дх1 ' дх2 ' дхп) (в нашем случае VI = С + 20Х). Пусть граничная точка к№ ' принадлежит <7@^<7^#) линейно независимым гиперплоскостям Ни причем пусть это первые ц гиперплоскостей. Тогда справедлив еле- 214
§ 7. Градиентные методы реш. задач нелин. програм. дующий критерий оптимальности. Точка Х^ тогда и только тогда является решением задачи, когда B.63) Р«(у2)х(Л)=0; B.64) (А*А;)-1Аз(у2)х(Л)>0. В соответствии с условием B.63) VI перпендикулярен многообразию М, т. е. лежит в М. В силу линейной независимости векторов Ах, А2,... ..., Ад допускается однозначное разложение: B.65) (у2) (Л)= 2"*Аг- = А^и, х / = 1 где II = (иъ и2, ..., ид)\ Левая часть B.64) не что иное, как Ц, поэтому можно сделать вывод, что коэффициенты разложения B.65) не могут быть отрицательными. Если точка Х<** лежит внутри области, то критерий оптимальности имеет вид B.66) Ро(у2)х(А) = 0, где Р0 = Е. Если условия оптимальности не выполняются, то можно найти точку Х^+!) с большим значением функции 2. При этом возможны два случая, на каждом из которых остановимся отдельно. Введем обозначение $и = (У2) Х<*>. Случай 1. Пусть Рд$к Ф О, тогда точка Х</г) не является вершиной допустимой области, т. е. # < п и М имеет самое меньшее размерность прямой. В дальнейшем условимся считать 8^} = Р98а- Так как точка Х(к) лежит в М, а вектор 8(^ параллелен М9 то точки X = Х<*} + Л,8<Л) при любом X лежат в М, т. е. 2 ац^р+Кв^-Ьг^О, / = 1,2, ...,я. Так как точка Х{к) принадлежит допустимой области, то для I = ц + + 1, ц + 2, ..., т /«1 Если из точки Х(/г) перемещаться вдоль луча X = Х(/г> + Л8<л) (А, > 0), то при некотором значении Я можно увеличить значения 2> не выходя за пределы допустимой области. Для всех / = д + 1, ^-|-2,... ..., т должно выполняться условие 2 ^(^)+ц^))^<о, 215
Глава И. Нелинейное программирование или п п 2 «у */—*!+* 2 аа^к) «ь Прямая Х(/г> + А,8(/г) пересекает гиперплоскость Нг при 2 аИХ~Ь1 B.67) а,|==-1^ 2^5Г Луч Х<*> + Я8(/г) выходит за границы допустимой области при B.68) Г = гшп{^Лг>0, / = ?+1, ..-, т}. Пусть Х(/г) = Х(/г) + Я'8(/е). Тогда, исследуя вопрос об определении значения X, при котором 1 принимает экстремальное значение, приходим к выводу: если 8'(/г) § (Х(/г)) ^ 0, то наибольшее значение 2 принимает при Я = X'; если 8/(/г). §" (Х(/г)) < 0, то при 0 < < X" < А/. Тогда в качестве второй итерационной точки выбирают точку B.69) Х(* + ,) = Х(А>+^8<Л).= рХ<Л> + A—р)Х(Л), где р определяется из соотношения 8'<Л)*(х(Л>) B.70) р= ^ * . 8'<Л>*(Х<Л>)--8'<*>*(Х<Л>) Случай 2. Пусть Р^ь = 0, но щ < 0 хотя бы для одного /. Тогда следует выбрать одно из щ, например такое, для которого произведение | Аг-1 щ наименьшее, и отбросить соответствующую гиперплоскость Н(. Если ид < 0, то отбрасывают гиперплоскость Яд. В дальнейшем условимся считать, что точка Х<й) принадлежит пересечению гиперплоскостей Нъ Н2> •••> #д-ъ т- е- размерность пространства М увеличивается на единицу. Ниже рассматривается матрица проектирования Рд-1у для которой Рд_! §\ Ф 0. В новом пространстве имеет место первый случай, для которого применимы рассмотренные преобразования при 8(/г) = Рд-гёк- Рассмотренные случаи позволяют построить общий алгоритм. Начальной точкой Х<0) можно считать любую точку внутри или на границе области. Это, например, может быть вершина допустимой области, найденная с помощью симплексного метода. Затем по следующему рекуррентному правилу вычисляют последовательность точек Х(/н_1) (к = 0, 1,2, ...). Пусть Х(А:) принадлежит ц @ ^ # < п) ограничивающим гиперплоскостям, которые линейно независимы. *<(х<*>) А/ 8<*> где Л|(Х(*>) п 2 ьцх^—Н 216
§ 7. Градиентные методы реш. задач нелин. програм. 1. Вычисляем: а = §(Х(Л)) = С + 20Х<*>; Р* = Е-А; (А^)-* Ад; ^ = (АдАд)^Адёк и РЯЁк. Если Ря (гк = 0 и II > 0, то Х<*> — решение. 2. Если РдЦ-ь =^= 0, то полагаем 8(/г> = Рд&ь. 3. Если Ря8ь = О и щ < 0 хотя бы для одного /, то выбираем какое-нибудь отрицательное ^-,отбрасываем соответствующую гиперплоскость и полагаем 8(Л)=Р9_1#А. При этом предполагается, что для всех г (I =.ц + 1, ц + 2, ..., т) выполняется условие А/ х X Рд-1 §*ь ^ 0. Невыполнение этого условия приводит к дополнительным вычислениям при определении 8(/г) или при установлении, что точка Х(/г} является решением задачи. 4. По соответствующему 8(Лг) согласно B.68) определяем А/, а затем вычисляем Х<*> = Х<*> + А/8<*>. 5. Вычисляем #(Х<*>) и 8'<*> § (Х<*>). Если 8'<*> #(Х<*>) > 0, то Х(/г+1) = Х(к). Для выполнения следующего итерационного этапа к матрице А^ прибавляем вектор Ад+1 и получаем матрицу Ад+1, которая играет ту же роль, что и Ая. Если тт Я' (см. п. 4) достигается одновременно для нескольких индексов, например, для ; = </ + 1» <7 + 2, ..., ? + Р> то из векторов Аь А2, ..., Ад+Р выбираем наибольшее число линейно независимых. При проведении новой итерации все соответствующие А* войдут в матрицу Ав. 6. Если 8'(*> §• (Х(й>) < 0, то полагаем Х<*+1>«Х(*)+Я,,г8(Л>=рХ(*>+A-р)Х<*), где р=$'<*> § (Х<*>)/[5'<*> $ (Х<*>)-8'<*> & (Х<*>)]. При этом в новой итерации Ад не меняется. Пример. Решить методом Розена следующую задачу: найти гпах 2 = 10*! — х\ + 2хгх2 — 2x1 при ограничениях \ . ^.л *1> 0, х2>0. I *1 + *2 <6, Решение. Перепишем систему ограничений так, чтобы все неравенства были со знаком «О: { . - —^!<0, — *2<0. В данной задаче С = A0; 0); А! = A; 2); к'2 - A; 1); А^ = (—1; 0); А{ = @; - 1); В' = A0; 6; 0; 0). В качестве начального значения Х@) возьмем точку: ({), лежащую внутри области допустимых решений. В соответствии с алгоритмом вычисляем #(Х<°>) = С + 20Х<°> ш
Глава II. Нелинейное программирование Так как точка Х@) лежит внутри области, то Р0 = Е2 и Р0 §-(Х@)) = = Е2 8*(Х@>) = & (Х@)) = A°2) ф 0. Условие оптимальности не выполняется, поэтому в качестве 8@) возьмем ^(Х*0)), т. е. 8@) = = (_1§). Для определения Х@> = Х@) + У8@) найдем значения V = тт {К1К > 0, / = 1, 2, 3, 4}. Имеем: ^ = -(А/х<°>--&|) А/8<°\ Ях= —A+2—10)/A0—4) = 7/6; Л,2 = —A + 1_6)/A0—2)== 1/2; Хв = —«— 1/—Ю)= —A/10); Ь4= — (- 1/2)= 1/2, Находим: *<*<ч:м1:)(:м>AШ' 8<°>'^(Х@)) = A0; —2)( ) = —20—24= — 44. Так как 5<°>' § (Х<°>) < 0, то Х<х> = Х<°> + Г$<°> =р Х*<°> +A— р) X X Х<°> и 8'(о>«.(Х(о)) A0; ~2)(—2] --— — ' -=26/37; 8'«о.в.(х«в>Ь8"в)у(Х@)) (Ш; _/ 10\ 37 \о/ 37 \\) \ и/37) Точка ХA) по-прежнему является внутренней. Начинаем новый итерационный этап. Определяем „,.,„. /Ю\ /-2 2\/167/37\ / 58/37\ Точка ХA) — внутренняя, поэтому Находим значение А/: х 167/37 + 22/37- 10 181 167/37 + 11/37-6 11 1_" 58/37 + 500/37 ~~ 638 " 2"" 58/37 + 290/37 ~~ 87 ' _167/37—0 167 —11/37—0 И Л3 — —- 77Г7777. !== "~" —777— • Ал == —58/37 58 * —290/37 290 * ^'=^2= И/87; ХA)==/167/37\ И/ 58/37\ /523/1114 \ 11/37/"^ 87 \290/37/ \Ш/П\)т 218
§ 7. Градиентные методы реш. задач нелин. програм. Затем вычисляем: ^">-(>(Ц)Кш)-Кш)- 8'<ь*(ХA>)>0, поэтому Х<2)==хA)=E23/1П]. Точка ХB) лежит на границе области. Начинаем следующий, итерационный этап: Точка Х<2) принадлежит прямой (пространство двумерное, поэтому гиперплоскость является прямой). Находим V и матрицу проектирования Рд: (А,А^1=^; 1 , /350/1 Ц\ 412 и=Т 1:1) D74/11,)=ТГГ>0: V Определяем проекцию §"(ХB>) на границу области: / 1/2 —1/2\ /350/1114 /—62/1114 р^(х-) = (_]/2 1/2)D74/1И)=( 62/ш)- Так как Рд ^(Х<2>) Ф 0, $<2> = Рд#(Х<2>) = СбТ/ш), то Х<2) = Х<2>+Г 8<2>; А,' = тш {Кг/%1 > 0; (= 1, 3, 4}; 523/111+286/111-10 1 —62/111+124/111 -523/111-0 глпоп %3 = — = 523/62} 3 62/111 К = ~ ""!^11117° --143/62> ^'=301/62; 9?^/523/111\ 301 /-62/1114 /24 \Ш/\ПГ 62 \ 62/1 И/ \4/* ^=(о)Ч1 -зо-иэ' З'<а,в-(ХB>) = ( — 62/111; 62/111) ^) =-1612/111 . 219
Глава II. Нелинейное программирование Поскольку 5'B> #(Х<2>) < 0, то Х<3> = рХ<2> + A — р) Х<2>. Имеем §'B ^(Х<2)) Р = 8/(8)^ (Х<2)) — 8'<2> ^(ХB)) /360/1Щ -62/111; 62/111) 4 ' =62/1505, /350/111\ (-62/111; 62/111)(_ч1^+1612/11 474/1 62 /2\ 1443 /523/111 1505 \4)+ 1505 \143/111 Проверяем оптимальность полученного решения ^'•'-(>(Ц)-С:Э-(!:Э- Точка ХC) лежит на той же прямой, что и ХB), следовательно, значения А0 и Рд не изменились:- р^(х->)=( 1/2 ,2).C-би°); я* \-\/2 1/2Дз,6/ {О)' и = (АGА;)-1Л^(Х^>)= ~(\; О(з'б)==:3*6>0- Полученная точка удовлетворяет условиям оптимальности и решеино ХC) является оптимальным: хх = 4,6; х2 = 1,4; гпах 2 = 33,8. Аналогичное решение было получено и другими методами. Рассмотрим геометрическую интерпретацию решения данной задачи. На рис. 2.9 приведена последовательность точек решения задачи. Из точки Х@) движение осуществлялось по направлению градиента функции до точки ХA). Затем снова перемещались по направлению градиента до пересечения с границей области в точке ХB). В точке ХB) градиент направлен во внешнюю часть области. Поэтому, спроектировав его на границу области, переагли в точку ХC). В ней вектор градиент направлен во внешнюю часть области. Проектируя его на границу области, получаем нуль. В точке ХC) функция 2 достигает максимального значения. Метод Как и в других градиентных методах, на- допустимых чальной является произвольная точка Х@). направлений Переход из точки Х(/г) в Х(/г+1) осу- Зойтендейка ществляют по такому направлению 5(*>, чтобы при Я > 0 луч Х(/г> + Я8Ш принадлежал области допустимых решений. Для этого необходимо соблюдение условия А/8(/г) < 0, где для всех / в точке Х(л) выполняется соотношение А/Х(/г) = Ьг. Такое направление называется допустимым. При этом если вдоль луча происходит увеличение функции по крайней 220
§ 7. Градиентные методы реш. задач нелин. програм. мере для малых значений X,, то такое направление называется подходящим. Зойтендейк рассмотрел всевозможные методы допустимых направлений и проанализировал некоторые частные способы нормализации; обеспечивающие получение оптимального направления 8(А;) (для этого используются вспомогательные задачи линейного или нелинейного программирования). Метод Зойтендейка может быть применен не только для задач квадратичного программирования, но и в случае, когда ограничения нелинейные и максимизируемая функция не является квадратичной. В общем случае этот метод не позволяет получить решение за конечное число этапов. Однако применение принципа сопряженности для квадратичных функций цели обеспечивает получение решения за конечное число этапов. При определении лучшего направления 8<й) формулируют следующую Рис. 2.9 вспомогательную задачу: для точки Х(/г) и определенного в ней градиента ^"(Х^) = §ь = С + 20Х(/г) максимизировать линейную форму §'ь 8(/г) при ограничениях (*-69) А/8<А><0, /б У, где ^ — множество индексов, для которых А/ Х(*> = Ьи и при одном из дополнительных условий нормализации: B 70) 8'8 < 1, B 70') — 1 < 8Ь < 1 для всех / = 1, 2, .... п; B.70") 5; < 1 для ё1 > 0, 5* > — 1 для #г < 0; B 70-) ^5 < 1; B 701У) А/(8 + Х{к)) < Ьг для всех I = 1, 2, .... т. В последнем случае B.69) уже содержится в B.701У). Если некоторые ограничения задачи квадратичного программирования должны выполняться как равенства, т. е. А/Х = Ьи то А/8 = 0. Метод дает оптимальное решение, как только тах §"8 =0. Условия B.70')—B.701У) — линейные, поэтому вспомогательная задача является задачей линейного программирования. Если условие нормализации задано в виде B.70'), то ограничения содержат квадратичное неравенство. Исходя из условий Куна—Так- кера, эту задачу можно привести к задаче квадратичного программирования: найти гшп 8'8 при B.71) Р5 + V = 0, V > 0, #'5 = 1, где Р — матрица, состоящая из строк А/, / ^ /. 121
Глава И. Нелинейное программирование Рассмотрим принцип сопряженности. Если Х(й) — внутренняя точка, т. е. Хк-г = к", то для нового направления 8(й> должно выполняться условие B.72) $'(*-1) |>з<*)=:0. Если при определении 8(/г-х) условие B.72) уже использовалось, то кроме него включают условие B.72') 5'(*> 08(Л) = 0, к = к — 1, к — 2, ... . Условия B.72) и B.72') исключают, как только точка Х<^ окажется на границе области, т. е. при Хк = V. Если точка Х<й) — внутренняя, то находят точку, в которой функция 1 = С'Х + Х'ЭХ имеет безусловный экстремум. Задача состоит в решении системы линейных уравнений 2БХ = — С, которое проводится методом сопряженных направлений. Точка безусловного экстремума для 2 может лежать и вне области, поэтому метод используют до тех пор, пока Х(й) не окажется на границе области. При решении системы уравнений 20Х = — С произвольно выбирают некоторую точку Х@) и направление 8@) Ф 0. Затем осуществляют переход в точку ХA) = Х@) + А,08@), где К0 — определяется из соотношения При выборе направления 8A) учитывают условие сопряженности 8'A) О8@) =0. Для всех последующих точек Х(/г), к = 2, 3, ..., направления 8(/г) сопряжены с 8@), 8A), ..., 8(/н1), т. е. для / =0, 1, ..., к — \ $/<*) о§(/)=о. В конечном итоге получают точку Х(й>, в которой нельзя найти новое направление 8(,г). Эта точка и является решением системы уравнений. Соответствующая последовательность векторов 8@), 8A), ..., ..., 8(/г_1) линейно независима, а направления 8^ сопряженные. При решении системы уравнений направления 8(/) определяются неоднозначно. В методе Зойтендейка однозначность направления 8(/) обеспечивается наличием дополнительных ограничений. Пример 1. Используя условия нормализации B.70'"), решить задачу; найти тах 1 = Юх± — х\ + 2х±х2 — 2х\ при ограничениях ( хк + 2х2 < 10, I *1 + Х2 < б, Хх > 0, Х2 > 0. Решение. Ограничение B.69) приводим к виду B-73) А/(Х<*> + 5</г->) < ЬЬ I 6 /. Для определения Х&, Н и %к воспользуемся формулами B.74) Ц = ^8^)/B8'^) 05(*>), 222
§ 7. Градиентные методы реш. задач нелин. програм. где ёк = «Г(Х<») = С + 2БХ<«. Имеем: B.75) Ц= тт{^Дг > 0}, Хг= - (А/ Х(А>-6г)/А/ §<*>; B.76) Ял = тш{^; ЭД. В качестве начальной точки возьмем точку Х@) = (°0), тогда 2 (Х@)) = §*0 .= (о0). Так как ] — пустое множество, то рассмотрим вспомогательную задачу: найти тах ЦоЗ = Ю5Х при ограничении 108! < 1. Находим 8<°> = (Ч1 ). Если во 8<°> = A0; 0) (V) = 1, и -8'<°> 08<°> =-@,1; 0) (-| ^)(°^)=0,01, то Х2 = 1/0,02Г50. В соответствии с B.75) имеем: %о = гп1п {^1, Я2}; Хг = — (-10)/ 0,1 = 100, Х2 = — (-6O0,1 = 60; К1 = Ш1п {100, 60}=60. Согласно B.76), Я0 = тш (Яо, Яо) = тт {60, 50} = 50, следовательно, ХA)=Х<о)+Х05@)=50^1)= (*). Точка ХA) = (о) лежит на границе области допустимых решений. Определяем &г: И,0о)+A-!КоЬ» Снова ] — пустое множество, поэтому рассмотрим вспомогательную задачу: найти тах %[ 8 = 1052 при ограничении 105а ^ 1. Решение имеет вид 8A> = (°0л). Если Л'3A>=@;10)^1) = 1; ^с1)О8а>в@;0. 1) (_| ^)@^)-0,02; М'= ^ ==25; ( 5—10 5 — 61 ,л то Кг = тт {к'и М} = тт {10, 25} = 10 и х««'=х<»+*18«»=(;)+1о@«1)-(;). Точка ХB) лежит на границе области и обращает в равенство ограничение хг + х2 ^ 6. Определяем &2: 'XI 4Ю-Ю- 22»
Глава II. Нелинейное программирование Для нахождения 8<2> выполним следующие преобразования. I) в B.73) положим Х<2> + 8<2> = Т; тогда *х + *а < 6; 2) в B.7СГ) вместо 8<2> подставим Т — Х<2>; тогда & 8=^2 (Т-Х«>)=^ Т-5-2 Х<2>, В результате для определения 8B) получаем следующую вспомогательную задачу: найти тах ц^Т == 21х + 6*2 — 16 при ограничениях 12/1 + 6/а< 17, Решим эту задаччу (табл. 2.23—2.25). /х > О, *2 > О, Таблица 2.23 Таблица 2.24 я о» 2 О) ^ 3 С х Уг У2 1 6 17 — 16 и р| —2 2 *2 —1 -6 6 к <и % О) ^2 ч Уг 1 6 5 —4 01 — 1 2 —2 02 — 1 !~41 4 Табл 1 ^ Переи ные *1 к |^т и ц а 1 19/4 5/4 1 2.25 Ух —3/2 1/2 0 У2 1/4 -1/4 —1 Согласно табл. 2.25, Т = [ ). Далее имеем: 1)'' 5<2) _у ХB) = 1/4У «*8<«'=^Т=1; —5/BH5<2)=( —1/4; 1/4)' ~ *¦ ~ 5/8 -1 = 1,6; -1/4 1/4 = 5/16; Ц = ^-=-(_3)/A/4) = 12; Ь8=гшп{Я,', Л,»} = 1,6; /5\ /—0,25\ /4,6\ Х«.»=Х«» + Я,8<.)-A) + 1.в( 0J5)=A;4); лиП+( ^(мНз.'б6)- В следующей вспомогательной задаче максимизируем функцию §<з8<3> = ёъ Т — #з Х<3> = 3,6*1 — 3,6/а — 21,6 при ограничениях \3,6/1+3,6/2<22,6, где Т = Х<3> + 8<3>. Решение приведено в табл. 2.26—2.27. 224
§ 7. Градиентные методы реш. задач нелин. програм. Таблица 2.26 1 Переменные У\ У2 1 л'т ' 6 22,6 —21,6 *1 -3,6 3,6 (, —1 —3.6 3,6 Таблица 2.27 Переменные У2 1 а т 1 6 1 0 Ух —1 3,6 —3,6 и —1 0 0 В табл. 2.27 тах §з §C) = 0, поэтому ХC) — оптимальное решение задачи: хг =-4,6; х2 = 1,4; тах 1 =33,8. В процесс решения все точки были на границе области допустимых решений, поэтому принцип сопряженности не использовался. Рассмотрим задачу, в которой для выбора наилучшего направления 8(/г) используется условие нормализации B.701^). В этом случае %' = 1 всегда, а V определяется из соотношения B.74). Пример 2. Найти тах 1 = хх + Зх2 — х3 + л4 — х\ + х±хв — — 1/2*1 — х1 — х3х± — 1/2x1 при ограничениях {л лг< > 0; / = 1, 2, 3, 4 . 13*1+ *2+2*3—*4<4, ' Решение. В качестве начальной возьмем точку х<°> = тогда §-о=^(Х@))= На первом этапе необходимо найти тах §о 8 = 5Х + 352 — 5з + $4> при этом в соответствии с B.701У) система ограничений имеет вид $1 + 252+ 53 + 54 <5» 1351+ 52 + 253—54<4. Введем вспомогательные переменные уг и у2, относительно которых решим уравнения. Решение представим в виде таблиц (табл. 2.28 и 2.29). {з 8;>0; /=1,2,3,4. Таблица 2.28 Переменные У\ У* 1 #о« 1 5 4 0 §1 —1 -3 1 §2 —2 —1 3 5* —1 —2 —1 84 —1 1 1 | Таблица Переменные $2 Уг |#о $ 1 5/2 3/2 15/2 2.29 §1 -1/2 —5/2 -1/2 VI -1/2 1/2 -3/2 $3 -1/2 —3/2 -5/2 §4 -1/2 3/2 -1/2 8 Зак. 1428 225
Глава II. Нелинейное программирование В табл. 2.29 приведено оптимальное решение: ^8со) = 15/2. 8<0,= Для определения ко найдем -I О 8'<°>О5«»=@; 5/2; 0; 0) 1/2 0 1 —1/2 0 О 1/2 0 —1 —1/2 О 0 -1/2 -1/2 = -25/8. Согласно B.74), %Ъ = (— 15/2)/(— 25/4) = 1,2 > 1. Следовательно, %0 =А/ = 1; далее имеем: Х<1>с=Х'<» + *,05«»= ; л = *<х<1>) = Если во второй вспомогательной задаче подставить вместо 8A) + + Х<х> = Т, то 5<х> = Т — Х<!>; е[ &" = #1 Т - $[ Х<*> = = 1г + A/2) /2 — *з + /4—5/4 и задача принимает следующий вид: найти тах #(Т = 1Х + A/2) /2 — /з + /4 — E/4) при ограничениях { '1 + 2*.+ /3 + *4<5, 3*1+ *2+2г3-/4<4, 0>°. /=1,2,3,4 Введем дополнительные переменные уг и у2 и представим решение в виде таблиц (табл. 2.30 и 2.31). Можно воспользоваться и табл.2.29, пересчитав в ней только последнюю строку. Таблица 2.30 Переменные Ух У* ' 5 4 —5/4 и —1 —3 1 и —2 —1 1/2 и — 1 —2 —1 '4 1 1 1 Табл ица 2 Переменные к У* ЙТ 1 5 9 15/4 .31 и —1 —4 0 и —2 —3 —3/2 *• —1 —3 —2 #1 —1 —1 —1 226
§ 7. Градиентные методы рещ. задач нелин. програм. Так как Т = [ ° ), то 8<1> = Т-Х<1'=| ^ I; §-;5A)=-Т- г—1 ^09. = ((); -|;0;5) ^ /2 О 125/8; 15/4 ^'=-~--3/25; ^ = ^-3/25, Х(»'=х^+^8«1^| П^5 |;а = *(Х<»>)=| _^ 3/5/ \ 2/5у В третьей вспомогательной задаче положим 8B) + ХB) = Т; 5<2> = Т - ХB), & 5B) = ЯГ2 Т — вг5 Х<2> - к + 4/5 *2 - (8/5) *3 + + B/5) *4 — 2. Точка Х<2) — внутренняя, поэтому необходимо добавить условие 8'<2) 08<п =0. Учитывая замену переменных, получаем: V 05<1'=Х'B) 05A), -1 0 1/2 О О —1/2 О О ('ь'в.'в. <4)| 1/2 0 _1 _,/2 О 0 —1/2 — 1/2, -1 0 1/2 0 \ / О О —1/2 0 0 \| —5/2 1/2 О —1 —1/2 II О О 0 —1/2 —1/2/ \ 5 E/4) /,—E/2) *а-E/2) ^4= (Ь/4). 8* 227 -("т
Г л а р а II Нелинейное программирование Задача принимает следующий вид: найти тах ^ Т= к +D/5) /а — — (8/5) и + B/5) /4 — 2 при ограничениях г /1 + 2 *2 + *3 + 4 < 5, { 3^ + 4 + 2/3 ~ и < 4, *, < 0, / = 1, 2, 3, 4, Введем дополнительные переменные уг и у2 и исключим /2 из первого и второго уравнений. Решение представим в виде таблиц (табл. 2.32—2.34). Таблица 2.32 Таблица 2.33 Переменные У\ У* Н #2Т 1 3 3 1 —6/5 к —1 1—з| 0 1 '3 —5 —4 2 0 и —5 —1 2 2 Переменные Уг к к *;т ¦ 2 1 1 -1/5 #2 1/3 -1/3 0 -1/3 *» — 11/3 -4/3 2 -4/3 '4 \=М\ -1/3 2 5/3 Таблица 2.34 Переменные к ь ** ^т 1 3/7 6/7 13/7 18/35 Уг 1/14 -5/14 1/7 —2/7 '* -11/14 —15/14 3/7 -13/7 г/1 —3/14 1/14 —3/7 -5/14 Найдем окончательное решение: 6/7> 6/7 Т=| 13^7 |, 8<2)==Т-Х<2)=1 12^35 |; ^8<*> = 18/35; 3/7, §'BIMB)= F/7; —12/35; 0; 6/35) Ло = 18/35 2 . 198/245 -6/35, —1 0 1/2 0 О —1/2 0 0 1/2 0 —1 —1/2 0 0-1/2 —1/2, -198/245; ¦ = 7/22; Яа = Я; = 7/22; 228
§ 7. Градиентные методы рент, задач нелин. програм. В = $(Х<8>) = Х<3)=Х<2> + ^25B) = Так как ХC) — внутренняя точка, то воспользуемся условием сопряженности 8'C) 08B) =0. Произведем замену переменных: 8C) = = Т — ХC). Четвертая вспомогательная задача имеет вид: найти тах & Т = 5/11 ^ + 10/11 /2 — 14/11 /3 + 5/11 /4 — 25/11 при ограничениях с 2 — ^'з — 2(^= 1 г —10^ + 2/2 + 6/3+ /4 = 2. /! + 2/2+ 'з + /4<5, 3/х+ /2 + 2/3— /4<4, 0 > °> / = !• 2, 3, 4 Поскольку ХB)—также внутренняя точка, то в соответствии с B.72') ограничения содержат уравнение 8'C) 08A), в котором произведена замена переменных 8C) = Т — ХC). Прибавим к левой части неравенств соответственно ух и у2 и решим систему ограничений относительно переменных 1г, 1^У\ и у2. Полученное решение запишем в табличной форме (табл. 2.35 и 2.36). Таблица 2.35 Переменные У\ 1 Уз Т I 1 0 3 3 —15/11 и 4 2 1—11 | —5 5 ** —2 —2 5 —2 —4 | Таблица 2.3.6 Переменные к и <1 Уг е'»ч 23/11 6/11 3/11 18/11 0 У\ —4/11 -2/11 -1/11 5/11 -5/11 - 2/11 -12/11 5/11 -47/11 -19/11 В табл. 2.36 §•; 8<3> = 0, 8<3) - Т<8> — Х<3> = следовательно, Х<3> = C/11; 23/11; 0; 6/11)' является решением задачи. Функция I достигает максимального значения:' тах 2 = 103/22. 229
Глава II. Нелинейное программирование Вопросы для самопроверки 1. В чем сущность градиентных методов решения задач нелинейного программирования? 2. В чем сущность метода проектируемых градиентов Розена? 3. В чем состоит метод допустимых направлений Зойтендейка, каковы его особенности? Упражнения 1. Решить задачи квадратичного программирования одним из рассмотренных градиентных методов (см. упражнения к § 6).
ГлаваШ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ § 1. Основные понятия и постановка задачи динамического программирования 1 I Понятие В задачах линейного и нелинейного про | динамического граммирования, рассмотренных в предыду I программирования щих главах, экономический процесс считал ся статическим, т. е. не зависящим от вре мени, поэтому оптимальное решение находилось только на один этап планирования. Такие задачи получили название одноэтапных или одношаговых. В задачах динамического программирования экономический процесс зависит от времени [от нескольких периодов (этапов) времени], поэтому находится ряд оптимальных решений (последовательно для каждого этапа), обеспечивающих оптимальное развитие всего процесса в целом. Задачи динамического программирования называются многоэтапными или многошаговыми. Динамическое программирование представляет собой математический аппарат, позволяющий осуществлять оптимальное планирование многошаговых управляемых процессов и процессов, зависящих от времени. Экономический процесс называется управляемым, если можно влиять на ход его развития. Управлением называется совокупность решений, принимаемых на каждом этапе для влияния на ход процесса. В экономических процессах управление заключается в распределении и перераспределении средств на каждом этапе. Например, выпуск продукции любым предприятием — управляемый процесс, так как он определяется изменением состава оборудования, объемом поставок сырья, величиной финансирования и т. д. Совокупность решений, принимаемых в начале каждого года планируемого периода по обеспечению предприятия сырьем, замене оборудования, размерам финансирования и т. д., является управлением. Казалось бы, для получения максимального объема выпускаемой продукции проще всего вложить максимально возможное количество средств и использовать на полную мощность оборудование. Но это привело бы к быстрому изнашиванию оборудования и, как следствие, к уменьшению выпуска продукции. Следовательно, выпуск продукции надо спланировать так, чтобы избежать нежелательных эффектов. Необходимо предусмотреть мероприятия, обеспечивающие пополнение оборудования по мере изнашивания, т. е. по периодам 231
Глава III. Динамическое программирование времени. Последнее хотя и приводит к уменьшению первоначального объема выпускаемой продукции, но обеспечивает в дальнейшем возможность расширения производства. Таким образом, экономический процесс выпуска продукции можно считать состоящим из нескольких этапов (шагов), на каждом из которых осуществляется влияние на его развитие. Началом этапа (шага) управляемого процесса считается момент принятия решения (о величине капитальных вложений, о замене оборудования определенного вида и т. д.). Под этапом обычно понимают хозяйственный год. Планируя многоэтапный процесс, исходят из интересов всего процесса в целом, т. е. при принятии решения на отдельном этапе всегда необходимо иметь в виду конечную цель. Пример. Пусть планируется деятельность некоторой системы 5 промышленных предприятий Ръ Р2, ..,, Рп на некоторый период времени Г, состоящий из к хозяйственных лет 1г (/ = 1, 2, ..¦, к), причем к Т =2 и- В начале периода Т на развитие предприятий выделены ос- новные средства О. В начале каждого хозяйственного года производится финансирование всей системы предприятий, т. е. выделяется доля основных средств. Известны первоначальное состояние системы 50, характеризуемое количеством средств, уже вложенных в предприятия, и конечное состояние 8к, характеризуемое всей дополнительно вложенной суммой Б. Как следует распределить по предприятиям и годам основные средства О, чтобы к концу периода Т суммарный доход Й7 от всей системы предприятий был максимальными Решение. Обозначим через хц сумму, выделяемую з начале /-го года /-му предприятию (/ == 1, 2, ,,., к\ / = 1, 2, ..., п). Предположим, что средства на 1-м этапе распределены, т. е. выбрано опое* деленное \ правление 11г, которое состоит в том, что в гачале 1-ю года предприятию Рг выделены средства Хц> предприятию Р2 —средства Хг2 и т. д. Тогда ьектор Ь1г = (хцу хг-2, ..., х;и) определяет распределение средств на 1-м этапе. Совокупность выделенных средств (управлений) на к шагах выразится системой векторов л-мерпого векторного пространства Суммарный доход за к лет зависит от совокупности управлений, т. & является функцией от 11х, 112, ..., IIл: V = № (Уь и2> .,„ ик). 232
§ 1. Постановка задачи динамического програм. Задача состоит в следующем: на каждом этапе необходимо выбрать такое управление, чтобы суммарный доход от всей системы предприятий был максимальным. Примечание. В общем случае начальное 50 и конечное 5& состояния системы точно не задаются, а указывается целая область начальных <§^> и конечных §& состояний. Сформулированную задачу, на первый взгляд, можно решить непосредственно, объединив все этапы. Действительно, ЧР можно рассматривать как функцию от элементов управлений на каждом этапе: IV =(#111 #12, • • •» #171» «*2Ь #22» • • • » #271* • • •» Хк1» Хк2» • • • » Хкп) > т. е. как функцию многих переменных. Теперь решение задачи заключается в нахождении такой совокупности значений аргументов Хц, при которой функция И? достигает максимального значения. Казалось бы, найдя частные производные функции Щ7 по всем аргументам, приравняв их к нулю и решив систему уравнений *— = 0, получим значения хц, при которых функция ЧУ имеет локальный максимум. Однако этот метод имеет существенные недостатки: во-первых, при большом количестве этапов решение полученной системы довольно громоздко; во-вторых, с его помощью можно найти критические точки только внутри области, так как метод не позволяет исследовать граничные точки; в-третьих, метод вообще неприменим, если хи — дискретные величины. Таким образом, для большинства задач динамического программирования классические методы анализа или вариационного исчисления оказываются неэффективными, поскольку приводят первоначально поставленную задачу отыскания максимального значения функции к задаче, которая не проще, а сложнее исходной. Динамическое программирование, используя поэтапное планирование, позволяет не только упростить решение задач, но и решить те из них, к которым нельзя применить методы математического анализа. Упрощение решения достигается за счет значительного уменьшения количества исследуемых вариантов, так как вместо того, чтобы один раз решать сложную многовариантную задачу, метод поэтапного планирования предполагает многократное решение относительно простых задач. Однако динамическое программирование имеет и свои недостатки. В отличие от линейного программирования, в котором симплексный метод является универсальным, в динамическом программировании такого метода не существует. Каждая задача имеет свои трудности, и в каждом случае необходимо найти наиболее подходящую методику решения. Недостаток динамического программирования заключается также в трудоемкости решения многомерных задач. При очень большом числе переменных решение задачи даже на современных ЭВМ ограничивается памятью и быстродействием машины. Например, если для ис- 233
Глава III. Динамическое программирование следования каждой переменной одномерной задачи требуется 10 шагов, то в двумерной задаче их количество увеличивается до 100, в трехмерной — до 1000 и т. д. Общая постановка задачи динамического программирования Пусть некоторая физическая управляемая система 5 находится в первоначальном состоянии 50 € 50. С течением времени ее состояние меняется и система приходит в конечное состояние 5& ^ 5&. С процессом изменения состояния системы связан некоторый численный критерий №. Необходимо так организовать процесс, чтобы критерий достиг оптимального значения. Обозначим множество возможных управлений через II. Тогда задача состоит в том, чтобы из множества возможных управлений II найти такое управление I]*, которое позволит перевести систему 5 из начального состояния 50 € ^5о в конечное 5& € 5Ь так, что критерий № (II) принимает оптимальное значение ИР*. Геометрическая интерпретация задачи динамического Состояние физической системы 5 можно описать числовыми параметрами, например расходом горючего и скоростью, количеством вложенных средств и т. д. Назовем программирования эти параметры координатами системы; тогда состояние системы можно изобразить точкой 5, а переход из одного состояния 5Х в другое 52 — траекторией точки 5. Управление II означает выбор определенной траектории перемещения точки 5 из 5Х в 52, т. е. установление определенного закона движения точки 5. Рис. 3.1 Совокупность состояний, в которые может переходить система, называется областью возможных состояний. В зависимости от числа параметров, характеризующих состояние системы, область возможных состояний системы может быть различной. Пусть, например, состояние системы 5 характеризуется одним параметром, — координатой х. В этом случае изменение координаты, если на нее наложены некоторые ограничения, изобразится перемещением точки 5 по оси Ох или по ее участку. Следовательно, областью возможных состояний системы явля- 234
§ 1. Постановка задачи динамического програм. ется совокупность значений х, а управлением — закон движения точки 5 из начального состояния 50б30 в конечное 3& ^ 5& по оси Ох или ее части (рис. 3.1). Если состояние системы 5 характеризуется двумя параметрами (*! и х2), то областью возможных состояний системы служит плоскость ххОхг или ее часть, а управление изобразится линией на плоскости, по которой точка 5 перемещается из 50 6 50 в 5^ 5& (рис. 3.2). В общем случае, когда состояние системы описывается п параметрами хг (/ = 1, 2, ..., п), областью возможных состояний служит ы 0 1 -- ^ *7 Рис. 3.2 п-мерное пространство, а управление изображается перемещением точки 5 из какой-то начальной области 50 в конечную 8к по некоторой «траектории» этого пространства. Таким образом, задаче динамического программирования можно дать следующую геометрическую интерпретацию. Из всех траекторий, принадлежащих области возможных состояний системы и соединяющих области 50 и 5^, необходимо выбрать такую, на которой критерий Ц? принимает оптимальное значение. Принцип поэтапного построения оптимального управления 4 | Поинпип Динамическое программирование представляет собой поэтапное планирование многошагового процесса, при котором на каждом этапе, учитывая развитие всего процесса, оптимизируют только один шаг, т. е. при принятии решения учитывается будущее. Однако в каждом процессе имеется последний к-й шаг, принятие решения на котором не зависит от будущего. Поэтому на этом шаге выбирают управление, позволяющее получить наибольший эффект. Спланировав этот шаг, к нему можно присоединить предпоследний 235
Глава III. Динамическое программирование (к — 1)-й шаг, к которому, в свою очередь, (к — 2)-й и т. д. В конечном итоге приходят в начальное состояние системы 50. Процесс динамического программирования как бы «разворачивается» от конца к началу. Для того чтобы спланировать к-й шаг, надо знать состояние системы на (к — 1)-м шаге. Если состояние системы на (к — 1)-м шаге неизвестно, то, исходя из характера данного процесса, делают различные предположения о возможных состояниях системы на этом шаге. Для каждого предположения выбирают оптимальное управление на последнем, &-м, шаге. Такое оптимальное управление называется условно оптимальным. Пусть планируется 6-шаговый процесс. Сделаем ряд предположений о возможных состояниях системы на (к — 1)-м шаге. Обозначим эти состояния через 5А«.1> 1, 5й-1, 2» •••> ^-1, г- На последнем шаге найдем для каждого из них условно оптимальное управление G|л EА.1,1), 1Я.2 EЛ.1§2), ..., Щ.г(8к-1шГ). Таким образом, к-й шаг спланирован. Действительно, какое бы состояние ни имела система на предпоследнем шаге, уже известно, какое управление следует применить на последнем шаге. Аналогично поступаем на (к — 1)-м шаге, только условно оптимальные управления необходимо выбирать, учитывая уже выбранные условно оптимальные управления на /г-м шаге, и т. д. В итоге приходим к первоначальному состоянию 50 6 50 системы. Для первого шага (в отличие от всех остальных) предположений о возможном состоянии системы не делаем, так как: состояние 50 известно, а находим оптимальное управление, учитывая все условно оптимальные управления, найденные для второго шага. Проходя от 50 к $ь, получаем искомое оптимальное управление для всего процесса. Пример. Пусть необходимо найти управление, позволяющее за минимальное время №* переместить точку 5 из 50 в 5Й в полосе, ограниченной линиями у = Д (х) и у = ^2 (х)> если координаты точки 5 могут принимать только целочисленные значения и известно время перемещения из любой целочисленной точки в любую другую, лежащую— на соседней прямой (к — I) (рис. 3.3). Для решения задачи методом динамического программирования разобьем проекцию отрезка 505ь на ось Ох на к частей таким образом, чтобы прямые, перпендикулярные оси в точках деления, проходили через целочисленные точки. На основании условий задачи делаем вывод, что на (к — 1)-м шаге точка может оказаться в одной из четырех целочисленных точек А] (/ = 1, 2, 3, 4), лежащих на прямой (к — 1). Для каждой из них строим условно оптимальные управления \]]ь (они изображены на рис. 3.3 пунктирными линиями со стрелками)* заключающиеся в том, что точка 5, попадая в одну из точек А^ должна переместиться в точку 5&. При этом минимальные затраты времени соответствуют № ((У/*). Шаг к спланирован. 236
§ I. Постановка задачи динамического програм, На (к — 2)-м шаге точка 5 может оказаться в одной из точек В] (/ = 1, 2, ..., 6), лежащих на (к — 2)-й прямой. Для каждой из них строим условно оптимальные управления Щ, к_-\ таким образом, чтобы время Ш (#/,а_1) + №(*//*)] было минимальным. На (к — I )-м шаге условно оптимальные управления Щ, к-1 должны быть выбраны так, чтобы для каждой целочисленной точки, лежащей на прямой [к — (I + 1)], через которую точка 5 может перемещаться в 5Л, время Ш (Щ, *-*) + ... + № A# д-0 + ЧГ {Щн) было минимальным. Процесс продолжаем до тех пор, пока не придем к первому шагу, на котором выбираем оптимальное управление 1]\, Рис. 3.3 которому соответствует минимальное значение И7* = [Ц7 (II \) + + ... + Г («7/, к-г) + . .. + Я7 (|/; *_,) + у? ф1,)]. На рис. 3.3 оптимальное управление для всего процесса изображено сплошными линиями со стрелками. Из принципа поэтапного построения оптимального управления следует, что критерий И? должен обладать свойством аддитивности, п т. е. № = 2«>*» где Щ — значение критерия на им этапе. Принцип, в котором оптимальное продолжение процесса отыскивается относительно состояния, достигнутого в данный момент, называется принципом оптимальности Р. Беллмана. 237
Глава III. Динамическое программирование Вопросы для самопроверки 1. Сформулируйте задачу динамического программирования. 2. Дайте геометрическую интерпретацию задачи динамического программирования. 3. В чем состоит сущность принципа поэтапного построения оптимального управления? § 2. Простейшие экономические задачи, решаемые методом динамического программирования 1 I Задача Пусть самолет, находящийся на высоте о минимизации Я0 и имеющий скорость У0, должен под- расхода горючего. няться на высоту Нк и иметь скорость Ук. самолетом Известен расход горючего при подъеме са- при наборе молета с любой высоты Ях на любую высо- высоты и скорости, ту #2 > #х при постоянной скорости, I Постановки задачи, а также расход горючего при увеличении скорости от любого значения Ух до любого значения У2 > У\ при неизменной высоте. Найти оптимальное управление набором высоты и скорости, при котором общий расход горючего минимален. Решение, Из условия следует, что состояние физической системы 5 (самолета) характеризуется двумя параметрами: скоростью У и высотой Я. Поэтому решение будем искать на плоскости УОН, а точнее на ограниченном прямыми У = У01У = Ук и Я = Я0, Я = = Нк прямоугольнике, который и является областью допустимых состояний. Начальное 50 (У0У Я0) и конечное 5& (Ук,Нк) состояния вполне определены, как две точки 50 и 5Л на плоскости (рис. 3.4). Чтобы построить решение методом динамического программирования, разобьем отрезок (Нк — Я0) на пъ а отрезок (Ук — У0) — на п2 равных частей (этапов) и условимся считать, что за один этап (шаг) самолет может увеличить либо высоту на величину АЯ = = {Нк — Н0)/п1у либо скорость на Рис. 3.4 величину АУ = (Ук — У0)/п2. Очевидно, существует множество траекторий (управлений), представляющих собой ломаные линии, по которым точка 5 может переместиться из 50 в 5А. Решение задачи состоит в том, чтобы из множества управлений выбрать такое, которое позволит минимизировать расход горючего ХУ, равный сумме расходов горючего на каждом этапе соответствующей ломаной линии. Можно рассмотреть все возможные траектории от 50 к 5/г, определить расход горючего для каждой из них и выбрать наилучшую. Но если пг «с Но 0 \ 5о , к ,< 1 1 1 йс ^ Ил У 238
§ 2. Экон. задачи, реш. методом динам, програм. и п2 велики, то непосредственный перебор всех вариантов требует значительных затрат времени даже при использовании ЭВМ. Гораздо проще и быстрее задача решается методом динамического программирования. Рассмотрим решение задачи, условия которой приведены на рис. 3.5. Числа на вертикальных линиях означают расход горючего при наборе высоты с постоянной скоростью на данном этапе, а числа на горизонтальных линиях — расход горючего при увеличении скорости без изменения высоты. Как следует из рис. 3.5, весь процесс разбит на Н\ С/ В1 А1 Рис. 3.5 к = пг + п2 = 4 + 6 = 10 шагов. Точки пересечения линий разбиения изображены кружками, в которые записан расход горючего. Оптимизацию начинаем с последнего шага. Рассмотрим отдельно правый верхний угол прямоугольной сетки (рис. 3.6) с конечной точкой 5&. В точку $ь можно прийти либо из точки А1у либо из Л 2, т. е. для каждой точки управление единственное. Если на предпоследнем шаге самолет перешел в состояние Аъ то, чтобы перейти в состояние 5Й, самолет должен увеличивать только скорость и расходовать при этом 8 ед. горючего; если самолет перешел в состояние Л2,то набирать высоту и затрачивать И ед. горючего. Эти расходы горючего, являющиеся одновременно и минимальными, записываем в кружки возле точек Ах и Л2. Условно оптимальные управления, приводящие к этому расходу, отмечаем стрелкой, выходящей из кружка и указывающей, как управлять самолетом на последнем шаге, если в результате преды дущего шага он окажется в одном из рассмотренных состояний. Таким образом, последний шаг спланирован, поскольку найдены условно оптимальные управления для предполагаемых состояний 239
Глава III. Динамическое программирование системы на (п — 1)-м шаге и известны значения функции ХР для каждого из этих состояний. Переходим к планированию девятого шага. Чтобы выбрать условно оптимальные управления на этом шаге, нужно рассмотреть возможные состояния, в которые может прийти система на восьмом шаге. На восьмом шаге состоянию самолета может соответствовать одна из трех точек: Въ В2 или В3 (рис. 3.7). Найдем условно оптимальное управление для этих состояний и соответствующий этому управлению минимальный расход горючего. Для точки Вг выбора нет. Возможное единственное управление проходит через точку Аг при расходе горю- АЙЬ*^-®^*-^ V С,' 8,(^9-Ф%^ 8-\1 \ I * *А-7-^/и|м, о—6—Щь-п-&в3 ю // | I „ I I I Ь О О Рис. 3.6 Рис. 3.7 Рис. 3.8 чего 17 ед., а условно оптимальное управление изображено стрелкой, выходящей из точки В±. Из точки В2 возможны два пути: через точки Аг и А2. В первом случае расход горючего составляет 18 ед., во втором—24 ед. Выбираем управление через точку Лх. Минимальный расход горючего A8 ед.) записываем в кружок, путь отмечаем стрелкой. Для точки В3 путь в 5& также единственный (через точку Л2). Расход горючего, составляющий 22 ед., записываем в кружок, а управление отмечаем стрелкой. Для точек Въ Вг и В3 выбраны условно оптимальные управления, следовательно, девятый шаг спланирован. Переходим к планированию восьмого шага. В результате седьмого шага состоянию самолета может соответствовать одна из точек Съ С2, С3, С4 (рис. 3.8). Для точек Сг и С4 пути в 5&, единственные и расход горючего соответственно составляет 27 и 34 ед. Для точки С2 расход горючего при движении через точки Вг и В2 составляет 25 ед., поэтому условно оптимальное управление показываем как через точку Въ так и через точку В2. Наконец, для точки С3 расход горючего при движении через точку В2 составляет 28 ед., а через точку В3— 34 ед. Минимальный расход горючего B8 ед.) записываем в кружок. 240
§ 2. Экон. задачи, реш. методом динам, програм. Продолжая процесс для оставшихся шагов, приходим в точку 50. Выбирая для этого состояния уже не условно оптимальное, а оптимальное управление, получаем оптимальное управление для всего процесса, которому соответствует минимальный расход горючего, равный 88 ед. Оптимальное управление на рис. 3.5 изображено дополнительными стрелками. Как следует из рисунка, оптимальное управление не является единственным, так как имеют место условно оптимальные управления, приводящие к одинаковому расходу горючего. Рис. 3.9 Найденные оптимальные управления процессом набора высоты и скорости самолета состоят в следующем: на первом шаге следует увеличить скорость до значения У0 + А V; на втором — высоту до значения Я0 + ДЯ; на третьем четвертом и пятом шагах — скорость до величины У0 + 4АК; на шестом и седьмом шагах увеличить высоту до значения Я0 + ЗЛЯ. На восьмом шаге можно либо увеличить высоту до значения Яь тогда на девятом и десятом шагах следует набирать скорость до величины Ук9 либо увеличить скорость до величины У0 + 5А1/, тогда на девятом шаге необходимо набирать высоту до значения Я&, а на десятом— увеличить скорость до величины Ук. В рассмотренной задаче значительно упрощен процесс, так как не учитывается возможность одновременного набора высоты и увеличения скорости. Рассмотрим модель, учитывающую этот факт (рис. 3.9). Очевидно, что одновременному увеличению высоты и скорости на рис. 3.9 соответствует движение по диагонали, идущей в направлении 5А. Проведем 241
Глава III. Динамическое программирование такие диагонали в каждом прямоугольнике и запишем над ними расход горючего. Теперь каждая узловая точка области возможных состояний, за исключением точек, лежащих на прямых Н = Нк и У =* = Ук, связана в направлении 3/г с тремя другими. Поэтому ранее использованный метод нумерации узловых точек по числу шагов, оставшихся до конца процесса, неприемлем, так как он не учитывает дополнительную связь по диагонали. Нумерацию узловых точек удобнее всего провести по признаку их координат, например по величине остатка скорости, которую должен «добрать» самолет за оставшиеся шаги. При такой нумерации последним шагом является тот, который переводит точку 5 с вертикальной прямой к — 1 на вертикальную прямую к\ предпоследним — переводящий точку 5 с прямой к — 2 на прямую к — 1 и т. д. Построим оптимальное управление процессом, изображенным на рис. 3.9. Условно оптимальные управления, как и раньше, будем изображать стрелками, выходящими из кружков, а минимальный расход горючего записывать в кружках. Если точка 5 оказалась на прямой к, проходящей через 5А, то в точку 5& можно попасть перемещаясь, только вертикально вверх. Это управление единственно возможное и оптимальное. В нашем случае на прямой к имеются четыре точки (Аъ А2, А3, у44), для которых путь движения в 5& по вертикали единствен, а расход горючего соответственно равен 11, 22, 34 и 48 ед. На прямую к точка 5 может попасть из точек В] (/ = 1, 2, 3, 4, 5) прямой к — 1. Рассматривая эти точки, для каждой из них выбираем условно оптимальное управление, учитывая условно оптимальные управления, найденные для точек А]Ц = I, 2, 3, 4). Если точка 5 в результате предыдущего шага оказалась в точке Въ то путь в точку 5& единственный (по горизонтали) и расход горючего равен 8 ед. Из точки В2 в точку 5& возможны три пути: через точку Вь причем расход горючего составляет 18 ед.; через точку Аъ расход горючего при этом равен 24 ед.; по диагонали (расход горючего 17 ед.). В данном случае условно оптимальное управление проходит по диагонали. Аналогично находим условно оптимальные управления для точек 53, Б4 и В5. Затем последовательно находим условно оптимальные управления для точек, лежащих на остальных прямых, пока не окажемся в точке 50, для которой устанавливаем оптимальное управление, следовательно, и оптимальное управление всем процессом. Если для некоторой узловой точки имеется несколько условно оптимальных управлений, то все они отмечаются стрелками, а затем выбирается одно из них. Окончательное решение изображено на рис. 3.9 дополнительными стрелками. Число 86, стоящее у точки 50, означает минимальный расход горючего И?*. В соответствии с решением оптимальное управление процессом набора высоты и скорости самолета состоит в следующем: на первом шаге следует увеличивать скорость до величины У0 + АУ; на втором — увеличить высоту до значения Н0 + Д#; на третьем — 242
§ 2. Экон. задачи, реш. методом динам, програм. увеличить высоту до значения Я0 + 2АЯ и скорость до значения V + 2ДУ; на четвертом — увеличить высоту до значения #0 + ЗАЯ; на пятом — увеличить высоту до значения Нк и скорость до величины У0 + ЗАУ; на шестом, седьмом и восьмом шагах увеличить скорость до величины Ук. В рассмотренной модели нумерация шагов проводилась по абсциссе, что не обязательно. В задачах, где нет естественного деления на шаги, принцип деления выбирают удобным для вычислений, а также в зависимости от требуемой точности. Задача определения кратчайших расстояний по заданной сети Анализируя окончательные решения задач, приведенных на рис. 3.5 и 3.9, можно сделать вывод, что найдены оптимальные управления не только для случая, когда состояние системы характеризуется точкой 50, но и для случая, когда оно определяется любой другой узловой точкой. Полученное свойство можно использовать для решения задачи по отысканию кратчайших расстояний от каждой точки до любой другой по некоторой сети. Эта задача нашла широкое применение для определения значений стоимости С^ (I — номер поставщика, / — номер потребителя), которые входят в критерий оптимальности при решении транспортной задачи линейного программирования. Решение задачи по определению кратчайших расстояний между поставщиками, и потребителями по существующей транспортной сети является исходным этапом при решении таких экономических задач, как оптимальное закрепление потребителей за поставщиками, повышение производительности транспорта за счет сокращения непроизводительного пробега и др. Пусть на некоторой поверхности взято конечное число точек Р19 Р2, ..., Рг-, ..., Р/, ..., Рп, соединенных всевозможными непересекающимися отрезками линий [РгР]), называемых звеньями или связями. Тогда совокупность точек и их связей называется сетью (рис. 3.10). Сеть называется достаточно связанной, если существует путь, состоящий из звеньев и соединяющий любые две точки сети из Ръ Р2, ..., Рп. Постановка задачи. Пусть задана достаточно связанная сеть, на которой каждому звену (Р1у Р;) поставлено в соответствие некоторое действительное неотрицательное число /г-7- — его длина. Необходимо определить кратчайшие расстояния по сети от каждой точки до сех остальных и соответствующие пути, по которым они проходят. Пронумеруем точки сети в любом порядке (слева направо, сверху вниз) и укажем длину каждого звена. Две точки назовем соседними^ Рис, 3.10 243
Глава III. Динамическое программирование если они непосредственно соединены связью. Это, например, точки Рг и Р2, Рг и Р3 и т. д. на рис. ЗЛО. Положим, что 1и = 1п. Необходимо найти кратчайшие расстояния по сети от каждой точки до всех остальных, поэтому разобьем процесс на п этапов, а каждый этап — на п — 1 шагов. Этап заключается в отыскании кратчайших расстояний и маршрутов, по которым они проходят, от какой-нибудь одной точки, заранее зафиксированной, до всех остальных. Шаг состоит в отыскании кратчайшего расстояния от фиксированной точки до каждой из остальных через соседние, кратчайшие расстояния до которых уже определены. Для решения задачи используем метод динамического программирования и отыскиваем кратчайшие расстояния не от фиксированной точки до всех остальных, а расстояние от всех остальных точек до фиксированной через соседние точки. Связь, через которую проходит кратчайшее расстояние, после каждого шага отмечаем стрелкой. Для удобства точки сети обозначим кружками. Алгоритм решения задачи. 1. Фиксируем точку Ри до которой необходимо рассчитать кратчайшее расстояние от всех остальных, и в кружке, обозначающем эту точку, записываем нуль, так как расстояние от точки Р% до нее самой равно нулю. Это число, которое для других точек отлично от нуля, назовем характеристикой точки. 2. Определяем соседние точки по отношению к фиксированной. В кружках, обозначающих эти точки, записываем их характеристики Си = 0 + 1и и на связях ставим стрелки, направленные в сторону точки Рг. 3. Отмечаем точку Рг символом V» обозначающим, что операции над ней закончены. 4. Переходим к любой соседней с Рх точке, для которой характеристика уже найдена. Пусть это точка Р}. Определяем соседние с ней точки и рассчитываем для них характеристики как сумму Сц + //* = = с;{. 5. Точку Р} отмечаем знаком V и переходим к п. 4 алгоритма. 6. При определении С/* для соседних точек с Р\ может оказаться, что для некоторых из них Сц уже рассчитаны. В этом случае С/* сравниваем с Сц. Если С/* ^ Си для всех таких точек, то С^ остаются без изменения; точку Р\ отмечаем знаком V и переходим к п. 4 алгоритма. Если для некоторой точки С^ < Сц> то С^ заменяем на С/*, соответственно изменяется связь, через которую проходит кратчайшее расстояние. Точку Р\ отмечаем знаком V только в том случае, если точка, у которой изменилась характеристика, не была ранее отмечена. 7. Если изменилась характеристика отмеченной точки, то пересчитываем характеристики точек, соседних с ней, а затем отмечаем точку Р\ и переходим к п. 4 алгоритма. 8. Процесс продолжаем до тех пор, пока не будут отмечены все точки. После этого выписываем кратчайшие расстояния (характери- 244
§ 2. Экон. задачи, реш. методом динам, програм. стики точек) и маршруты, по которым они проходят. На этом первый этап заканчивается. 9. Переходим к следующему этапу, начиная с п. 1 алгоритма. Расчет продолжаем до тех пор, пока не будут определены кратчайшие расстояния от всех точек до каждой из них. Применим рассмотренный алгоритм к примеру, изображенному на рис. 3.11, где кружки означают точки; цифры, стоящие в кружках, — их номера; прямолинейные отрезки — связи; числа, стоящие над связями, — их длину; числа, стоящие возле точек, — их характеристики, а стрелки указывают маршрут, по которому проходит кратчайшее расстояние. Пусть необходимо найти кратчайшее расстояние от всех точек до точки 8, Записываем возле нее ее характеристику — нуль. Определим характеристики точек 4, 6 и 7, соседних с ней, и стрелкой возле каждой точки указываем направление кратчайшей связи. Точку 8 отмечаем знаком V- Рассмотрим точку 7. Определим характеристики точек 5, 6 и 5, соседних с ней. Характеристику точки 5, равную 39,запишем около нее и укажем стрелкой направление. Для точек 6 и 8 новые характеристики соответственно равны 39 > 18, 54 > 0. Следовательно, ранее определенные для них характеристики оставляем без изменения. Точку 7 отмечаем знаком V- Рассмотрим точку 6. Соседними являются точки 2, 4У 5, 7 и 8. Характеристику точки 2, равную 23, запишем около нее и укажем направление. Для точки 4 новая характеристика 26 > 9, для точки 5 характеристика 26 < 39. Поэтому запишем новую характеристику и изменим направление кратчайшей связи. Для точек 7 и 8 новые характеристики соответственно равны 30 > 27 и 36 > 0, т. е. характеристики оставим без изменения. Точку 6 отмечаем знаком \Л Рассмотрим точку 4 и ее соседние точки У, 6 и 8. Характеристику точки и равную 11, запишем около нее и укажем направление. Для точки 6 новая характеристика 17 < 18. Изменяем характеристику и направление для точки 6. Так как точка 6 отмечена знаком V, то пересчитываем характеристики точек 2, 5, 7, 8, соседних с ней, и в случае необходимости изменяем направление. Для точки 2 новая характеристика 22 < 23, следовательно, изменяем характеристику; характеристика точки 5 25 < 26 — изменяем характеристику; для точек 7 и 8 соответственно имеем: 29 > 27 и 35 > 0 — характеристики не меняем. Точку 4 отмечаем знаком V- Рассмотрим точку 5 и соседние точки 3, 6 и 7. Характеристику точки 3, равную 31, запишем около нее и укажем направление. Ха- 245
Глава III. Динамическое программирование рактеристики точек 6 и 7 остаются без изменения. Точку 5 отмечаем знаком V. Характеристики точки 3 и соседних точек 2 и 5 остаются без изменения. Отмечаем точку 3 знаком V- Рассмотрим точку 2 и соседние с ней точки /, 3 и 6. Характеристики точек 1 и 6 остаются без изменения. Для точки 3 новая характеристика 26 < 31, следовательно, изменяем характеристику и направление, а так как эта точка уже отмечена, то пересчитываем характеристику соседней с ней точки 5. Характеристика точки 5 осталась без изменения. Отмечаем точку 2 знаком V. Рассмотрим точку 1 и соседние точки 2 и 4. Для точки 2 новая характеристика 13 < 22 — изменяем характеристику и направление. Точка 2 ранее отмечена, поэтому пересчитываем характеристики соседних с ней точек 3 и 6. Для точки 3 новая характеристика 17 < 26 — изменяем характеристику и пересчитываем характеристику точки 5. Так как новая характеристика этой точки 23 < 25, то изменяем характеристику и направление точки и пересчитываем характеристики точек 6 и 7. Они остались без изменения. Характеристика точки 6 остается без изменения и при пересчете ее со стороны точки 2. Для точки 4 характеристика не изменяется. Точку 1 отмечаем знаком V . Все точки отмечены, поэтому первый этап закончен. Получено оптимальное решение: величина окончательной характеристики соответствует кратчайшему расстоянию до точки 8, стрелка указывает соседнюю точку, через которую это расстояние проходит. Записываем оптимальное решение в табл. 3.1 и переходим к очередному этапу. Процесс продолжаем до тех пор, пока не будут рассчитаны кратчайшие расстояния от всех точек до каждой из них. Вычисления значительно упрощаются, если длины отрезков, изображающих связи, задавать в одном и том же масштабе (что обычно имеет место при решении конкретных экономических задач). Если задача содержит более 50 точек, то ее следует решать с помощью ЭВМ. Та блица 3.1 Номера точек, между которыми рассчитывается расстояние 1-8 2- 9 3-8 4-8 5-8 6-8 7-8 8—8 Кратчайшее расстояние И 13 17 9 23 17 27 0 Маршрут, по которому проходит кратчайшее расстояние 1—4—8 2—1—4—8 3—2—1—4—8 4—8 5-3-2—1—4-8 6—4—8 7—8 1 8 246
§ 2. Экон. задачи, реш. методом динам, програм. Необходимо отметить, что числа 1и можно интерпретировать по- разному. Они могут означать (в зависимости от рассматриваемого экономического процесса) расстояние, стоимость, себестоимость, время и т. д. Вопросы для самопроверки 1. Сформулируйте задачу минимизации расхода горючего самолетом при наборе высоты и скорости. 2. Что необходимо учитывать при выборе способа нумерации узловых точек? 3. В каких случаях оптимальное решение задачи не является единственным? 4. Приведите понятие сети. Какая сеть называется достаточно связанной? 5. Сформулируйте задачу определения кратчайших расстояний по заданной сети. На сколько этапов разбивается задача? Сколько шагов содержится в каждом этапе и в чем суть этапа и шага? 6. Расскажите алгоритм решения задачи определения кратчайших расстояний по заданной сети. Упражнения 1. Найти оптимальное управление процессом набора высоты и скорости самолетом, позволяющее минимизировать общий расход горючего при условиях, приведенных на рис. 3.12 и 3.13. 2. Составить самостоятельно две подобные задачи, разбив приращение высоты на 6, а скорости — на 8 частей. ц Нк Но 1 и-Г/5-т-/2- 14 12 \-Ю-\-8- 15 и \—12—[—75- 11 13 |—18—\~19- 10 10 \—10—\—10- 9 10 _5?4—/5—I—;5- У» "Г 12 + 13 -\- 12 + 13 + 12 _!_ -70—-р-75- 15 -9—|— /7- 12 -/4—|—75- т -20—\—27- 11 -12—\—12- 15 -10—1—14- -т-'°- 13 -Н*- 11 -Н- 13 -}—18- 12 +¦"- 13 -1-*- -|— 8—[5Л 11 Ю -ИЧ 10 9 -нч 15 10 -нч 1 14 11 | -НЧ 16 19 1 -1-/7-1 1 ^г. Ук У Рис. 3.12 247
Глава III. Динамическое программирование О 15 20 П .18 13 17 12 16 11 1Ь 10 13 77 П 20 12 18 13 21 16 19 Ю 8 25 16 24- Ш 18 12 19 13 № 9 Ю 20 12 18 16 16 13 25 18 21 19 Рис. 3.13 Рис. 3.14 3. Найти кратчайшие расстояния от всех точек до точек 1, 5, 5, 5, 12 сети, изображенной на рис. 3 14 4. Составить самостоятельно задачу по определению кратчайших расстояний для 16 точек и выполнить упражнение 3. § 3. Метод функциональных уравнений Как показал Р. Беллман, нахождение оптимального решения многоэтапного (многошагового) процесса сводится к решению некоторого функционального уравнения. 248
§ 3, Метод функциональных уравнений Рассмотрим простой пример многоэтапного процесса распределения. Пусть имеется некоторое количество средств х, которые надо вложить в развитие двух неоднородных предприятий. Известно, что если в первое предприятие вложить у, а во второе — (х — у) средств, то доход соответственно составит § (у) и к (х — у). Необходимо так выбрать величину у (распределить средства *), чтобы общий доход И? Сыл максимальным. Поставленная цель приводит к аналитической задаче определения максимального значения функции C.1) У1(х,у) =ё(у) + Ь(х-у) но всем у ^ [0, х]. Пусть функции §• и к непрерывны при всех конечных х ^ 0. Тогда максимальное значение функции C.1) всегда существует. Таким образом, максимальное значение функции №± (х, у) определяет величину возможного максимального дохода в одноэтапном процессе. Необходимо заметить, что единицы измерения дохода могут отличаться от единиц измерения средств х. Например, х может представлять собой денежную сумму, а § (у) — количество человеко-часов, сэкономленное в результате применения машин, приобретенных на сумму у, и т. д. Рассмотрим двухэтапный процесс. Предположим, что за счет издержек, необходимых для получения дохода § (у)у первоначальное количество средств у уменьшается до величины ау, где а — некоторая постоянная @ ^ а < 1). Аналогично, первоначальное количество средств (х — у) уменьшается до величины Ь (х — у), О < Ь < 1, за счет издержек, требующихся для получения дохода к (х — у). Таким образом, после осуществления одноэтапного процесса остаток средств составляет ау + Ь (х — у). Повторим процесс распределения суммарного остатка, полагая, что ау + Ь (х — у) = *х = ух + (*1 — уд, где 0 <; уг <| хх. В результате этого распределения на втором этапе получим доход § {ух) + к (хг — ух). Полный доход в данном случае составляет №2 (*» У, У\) = 8 (У) + Ь (* — У) + 8 (Ух) + Л (*1 — ух). Максимальный суммарный доход получается при максимизации этой функции относительно у и ух в двумерной области, определенной неравенствами 0 ^ # <^ х и О^^/х^*!. Рассмотрим М-этапный процесс, в котором операция распределения повторяется последовательно N раз. Определим полный доход от этого процесса: C.2) №„(*, */, у2,..., ун^1)=8(у)+Н(х-у)+ё(у1) + 249
Глава III. Динамическое программирование где величины, подлежащие дальнейшему распределению после первого, второго, ..., (Ы— 1)-го этапов, определяются следующими соотношениями: Х1=Щ+Ь(х—у), 0<у<лг, *2 = ш/1 + & (^—Ух), 0 < У1 < Хи C.3) ХЫ— 1 ^Щи — 2 +^ (хЫ — 2~~ УМ— 2), Максимальный суммарный доход получаем, максимизируя функцию C.2) в пространстве переменных по у, уъ ..., ум— \ по ^-мерной области, в которой значения переменных должны удовлетворять соотношениям C.3). Таким образом, имеем аналитическую задачу определения максимального значения функции N переменных в некоторой области. Как было отмечено в § 1, п. 1, решение такой задачи связано с большими трудностями. Решим задачу поэтапно, следуя принципу оптимальности в АЛэтапном процессе. Прежде всего заметим, что максимальное значение полного дохода в Л^-этапном процессе зависит только от Л? и от начальной величины х. Поэтому определим функцию ^ (х) как максимум дохода, полученного от Л^-этапного процесса, который начинается с величины х, для N = 1, 2, ..., и х ^ 0, т. е. Ы*)=тах №ы(х>У>У1'---> Уы-г). Тогда, исходя из условия задачи, для одноэтапного процесса получаем функциональное уравнение C.4) Ь(д)= тах [е(у)+Н(х-у)]. о <#<* При составлении функционального уравнения, характеризующего двухэтапный процесс, необходимо получить уравнение, выражающее /2 (х) через /х (х). Рассматривая двухэтапный процесс, замечаем, что полный доход состоит из доходов от первого этапа и второго, на котором для распределения остается сумма ау + Ъ (х — у). Необходимо получить максимальный доход, поэтому, какой бы ни была первоначально выбранная величина у, оставшаяся к следующему этапу сумма ау + Ъ (х — у) должна быть использована наивыгоднейшим образом. Следовательно, если уг выбрано оптимальным, то в результате начального распределения у от второго этапа двухэтапного процесса получим доход Д [ау + Ь (х — у)], а полный доход от двухэтапного процесса выразится рекуррентным соотношением C.5) /,(*) = тах {8(у)+к(х-у)+Мау+Ь(х-у)]}9 О ^<л: связывающим функции Д (л;) и /2 (х). Рассуждая аналогично, в случае М-этапного процесса получаем основное функциональное уравнение C-6) Ы*) = тах {§(у) + Н {х—у)+!ы_х [ау+Ь(х—у)]}9 О < у ^х 250
§ 3. Метод функциональных уравнений где N ^ 2, а функция /х (х) определяется соотношением C.4). Используя функцию /х (х), вычислим /2 (х) согласно уравнению C.6), с помощью которого, если процесс повторить снова, можно получить значение /з (х) и т. д. При этом на каждом этапе вычисления получаем не только /& (х) A ^ к ^ Л/), но и ук (х), так как распределение исходной величины х в начале 6-этапного процесса было оптимальным. Применение рассмотренного метода функциональных уравнений к решению задач динамического программирования позволяет привести одну ЛЛмерную задачу к последовательности из N одномерных задач. Таким образом, в многоэтапных процессах с последовательным принятием решений переход системы от этапа к этапу и от состояния к состоянию описывается функциональными уравнениями. Если учесть, что в динамическом программировании процесс рассматривается от конца к началу, то типичное функциональное уравнение, описывающее дискретный процесс, имеет вид C.7) Ы*)= тах [8ы(уы)+Гм-1 (Х—Ум)]> где / — цель процесса, его критерий (доход, прибыль и т. д.); N — число этапов, которое еще предстоит пройти в процессе; х — переменная, характеризующая состояние системы на ЛЛм этапе; /^ (х) — результирующее значение критерия, которое может быть получено за N оставшихся этапов процесса, начиная с состояния х, если следовать принципу оптимальности; ум— управляющая переменная, от выбора которой зависит результирующее значение критерия; Цм (уы) — величина критерия, полученная на АЛм этапе при оптимальном выборе ум в пределах от 0 до х\ /лг—1 (х — ум) — результирующее оптимальное значение критерия, достигаемое после прохождения (Л/" — 1) оставшихся этапов, начиная с состояния х — ум- Пусть на Ы-м этапе выбрано оптимальное управление ум = Ум. Тогда состояние системы на (М — 1)-м этапе описывается функциональным уравнением C.8) /лг-1^-^)^ тах \8м-\ (Ум-\) + 0<#дг_1 <х — У*м + Гм-2(Х—У*М — УМ-1)], где выбор #л/-1 ограничен интервалом значений от 0 до х — ум, так как исходная величина х уменьшилась до х — ум в силу выбора величины ум на Л^-м этапе. Вопросы для самопроверки 1. В чем суть метода функциональных уравнений? 2. Составьте функциональное уравнение для многоэтапного пронесся распределения. 3. Напишите функциональное уравнение общего вида для дискретного процесса и объясните входящие в него величины. 251
Глава III. Динамическое программирование § 4. Экономические задачи, решаемые методом функциональных уравнений 1 I Задача В задаче распределения средств, рассмот- распределения репной в § 3, предполагалось, что полный I ресурсов доход зависит только от начального количества средств х и числа этапов N и не зависит от времени начала процесса. Допустим, что в результате деления средств х на величины у и х — у на к-м году получен доход §к (х, у) и для дальнейшего распределения осталось количество средств гк (х> у). Необходимо определить управление, позволяющее максимизировать полный доход Л/'-этапного процесса. Предположим, что функции §к (х, у) и гк (х, у) непрерывны как функции от х и у для х ^ 0 и 0 < у < х, а гк (л, у) в этой области удовлетворяет двойному неравенству 0 < гк (х, у) ^ ах, а ^ 1 для к = = 1, 2, ... Пусть [кы (х) — полный доход от /У-этапного процесса, начинающегося с величины ху на к-м году, если соблюдался принцип оптимальности. Тогда для одноэтапного процесса при N = 1 //п (*)= тах §к (х, у); О <</<* при N ^ 2, рассуждая аналогично, получаем Гьм(х)= тах {ёк(*, У)+1к+г ^-1 1ги(х, у)]}> Двойные индексы значительно усложняют вычисления, поэтому при записи функциональных уравнений будем использовать один индекс. Положим, что каждому этапу соответствуют значения к = 1, 2, ..., N. и определим функцию [к (х) как полный доход от процесса, начинающегося с величины х на к-м этапе и заканчивающегося на М-м этапе, если соблюдается принцип оптимальности. Тогда имеем следующие функциональные уравнения: при к = N C.9) /д, (х)= тах §м(х, у)% при к = N — 1, N — 2, ..., 2,1 (ЗЛО) Ы*)= тах {§к(х, у)+?к+1\Гк(х, У)]}' Пример. Для развития двух отраслей производства, / и //, на 5 лет выделено х средств. Количество средств у, вложенных в отрасль /, позволяет получить за один год доход ф (у) = у2 и уменьшается до величины г|) (у) = 0,75#. Количество средств х — уу вложенных в отрасль //, позволяет получить за один год доход I (х — у) =2 (х — уJ и уменьшается до величины р (х — у) = 0,3 (х — у). Необходимо так распределить выделенные ресурсы между отраслями по годам планируемого периода, чтобы полный доход был максимальным. 252
§ 4, Эконом, задачи, реш. методом функц. ур-й Решение. Период времени продолжительностью 5 лет разобьем на 5 этапов, поставив в соответствие каждому году один этап, т. е. N = 5, к = 1, 2, 3, 4, 5. Хотя рассматривается непрерывный процесс, величины х и у для наглядности на каждом этапе будем отмечать индексами. Отыскание оптимального решения начинаем с 5-го этапа, в начале которого необходимо распределить остаток средств лг4. Для этого следует определить оптимальное значение уъ. Составим выражения для функций, входящих в уравнение C.9): #5 (*4> Уь) =Ч> Ы +^ (Х4—уь) = */| +2 (*4 — уьJ; М**) = тах [й+2(*4-ув)яЬ О < уъ < х4 Используя метод дифференциального исчисления, находим значение */б, при котором функция, заключенная в квадратные скобки, на отрезке [0, х4] принимает наибольшее значение. Учитывая, что х4 для 5 го этапа есть величина постоянная, получаем: й 2 >(хл, П)=0; 2Уъ — 4(л;4 — уь)=0; уь = ^г **\ с!2 / 2 \ 2 '2б.(*4. ^/5) = 6>0; Ы*4> — хА=-—х\ Точка уь = B/3) *4 является точкой минимума. Определим значение функции на концах отрезка [0, хА]: Ых*> Уь) = 2*| при #б= О, Ы*4. 0б) = А ПРИ #5 = *4- Так как 2*2 > х\ > B/3) *1, то функция ^5 (хА9 #5) принимает максимальное значение на отрезке [0, х4] при уъ = 0, следовательно, /5 (х4) = = 24. Таким образом, максимальный доход на последнем этапе достигается в том случае, если в начале его все оставшиеся средства вложить в развитие отрасли //. Используя уравнение C.10), последовательно определим оптимальные распределения средств на 4, 3, 2 и 1-м этапах. Для 4-го этапа Ы*з)= тах {Ы*3> ^)+/б^)}= тах {у\ + 2(хъ—уь)*-\-2х1}. О < ул < хя 0 < у4 < х? Здесь х4 — сумма оставшихся средств, если на 4-м этапе было израсходовано //4 средств в отрасли / и ха — у4 — в отрасли //, т. е. *4 = 0,75 уА + 0,3 (*3 - уд- Заменяя х4 его выражением через хъ и #4, окончательно получаем функциональное уравнение для 4-го этапа: /4(х3)- шах {у1 + 2(хд-уь)* + 2[0,7Ьуй-\-0,3(х3-у*)]*}. О < Уь < *з 263
Глава III. Динамическое программирование Находим значение #4, при котором функция, заключенная в фигурные скобки, на отрезке [0, хз] достигает наибольшего значения (для простоты обозначим ее через 24): Л7 —— = 2у4--4(*8--у|) + 4 [0,75у4+0,3*3—0,3у«] @,75-0,3); 6,81^-3,46*3=0; #4«0,5х8; ¦^-=6,81 >0; 24@,5*8)«1,3*?. Ы Точка #4 = 0,5хз является точкой минимума. Находим значение функции на концах отрезка [0, хз]: 24==2х|+0,18^1 =2,18ж| при */4 = 0; 24 = х§ + 1,125х|= 2,125а;* при #4=х3- Так как 2,18x1 > 2,125л:! > 1,3х|, то функция 24 принимает максимальное значение на отрезке [0, хз] при */4 =0, поэтому /4 (хз) = = 2,18x1. Следовательно, максимальный доход на 4-м этапе будет достигнут в том случае, если в начале его все оставшиеся средства вложить в развитие отрасли //. Запишем функциональное уравнение для 3-го этапа: /з(*2)= тах {Ы*2> 08> + М*з)}= тах {у§+2(*2—у8) + 2,18х*}. 0 < ^з < х2 0 < #8 < х2 Здесь хз — сумма оставшихся средств, если на 3-м этапе было израсходовано уз средств в отрасли / и х2 — уз — в отрасли //, т. е. *3 = 0,75 у3 + 0,3 (х2 — у3) Заменяя хз его выражением через х2 и уз, получаем окончательное функциональное уравнение для 3-го этапа: М*«)= тах {у23-\-2(х2+уд)* + 2Л8[0,75у3+0,3(х2--у3)\*} Решая его, получаем: в точке минимума уз ж 0,5х2, 1з « 1,35x1; при уз = 0 функция Ъз = 2,20x1; при #з = х2 функция 2з = 2,23х|. Так как 2,23х| > 2,20x1 > 1,35x1, то функция 2з принимает максимальное значение на отрезке [0, х2] при уз = х2, поэтому /з (х2) = *= 2,23x1. Следовательно, максимальный доход на 3-м этапе имеет место в случае, если в начале его все оставшиеся средства вложить в развитие отрасли /. Запишем функциональное уравнение для второго этапа: М*х)= ™х Ы+2(*!--у2)в + 2,23*1}. Так как х2 *= 0,75г/2 + 0,3 (хг — у2)> то 12{хг)~ тах {й +2 (^-^« + 2,23 [0,75^ + 0,3 (^-.у,)]»}. 0 < #« < *! Решая это уравнение, получаем: в точке минимума у2 « 0,5х! 22 = = 1,36а:?; при у2 = 0 функция 22 « 2,21х*; 22 = 2,25х? при #2 = хь следовательно, /2 (хх) = 2,25х|. Таким образом, для получения мак- 254
§ 4. Эконом, задачи, реш. методом функц. ур-й симального дохода на 2-м этапе необходимо все оставшиеся после 1-го этапа средства вложить в отрасль /, Составляем функциональное уравнение для 1-го этапа: &(*)- гаах {у1+2(х-у1)* + 2925х1}9 ИЛИ П(х) = тах {у* +2(дг-иР + 2,25 [0,75^ +0,3(х-У1)]Ч. 0 < УХ < х Имеем: в точке минимума уг & 0,5*, 22 = 1,38л:2; при уг = 0 функция 2Х « 2,2(к2; 2г = 2,27*2 при ух = *; /х (*) = 2,27*2. Итак, для получения максимального дохода на 1-м этапе все выделенные средства необходимо вложить в отрасль /. На основании полученного решения можно сделать вывод, что оптимальное управление процессом распределения выделенных средств состоит в следующем: в течение первых трех лет средства следует вкладывать только в отрасль /, ав течение двух последних —только в отрасль /7. Найденное оптимальное управление справедливо для любого * > 0, поэтому, не придавая л: определенного значения, определим величину средств, подлежащих перераспределению на каждом году планируемого периода. В начале первого года все средства * вкладывают в отрасль / и их количество уменьшается до 0,75 х. В начале второго года остаток средств 0,75* вкладывают в эту же отрасль и их количество уменьшается до величины 0,75 • 0,75 х = 0,56*. В начале третьего года остаток средств 0,56* вкладывают снова в отрасль / и их количество уменьшается до 0,75-0,56* = 0,42 *. В начале четвертого года остаток средств 0,42* вкладывают в отрасль // и их количество уменьшается до 0,3 X X 0,42* =0,126*. В начале пятого года остаток средств 0,126* снова вкладывают в отрасль //. Остаток средств в конце пятого года составляет 0,3-0,126*^0,038*. При таком распределении средств за пятилетку будет получен максимальный доход, равный / (*) = 2,27*2. Методом функциональных уравнений могут быть решены и более сложные задачи распределения ресурсов. Рассмотрим одну из них. Задача. Имеется некоторое количество средств *, которое можно использовать N различными способами. Пусть *;—количество средств, используемое при /-м способе распределения (I = 1, 2, ..., Ы)\ §г (**) — доход, получаемый в этом случае. Необходимо определить, какое количество средств и каким способом следует использовать, чтобы получить максимальный общий доход. Решение. Запишем математическую модель задачи: найти N максимальное значение функции Р (хъ *2, ..., хм) = 2^г (**) при огра- 1=1 ничениях *х + *2 + ... + *лг — *, ** ^ 0 (ь = 1, 2, ..., Щ 255
Глава III. Динамическое программирование Максимальный общий доход зависит только от величины средств л: и от числа способов Ы> поэтому можно определить последовательность функций *лг(*)= та? 2 81 (*г) {*Л/}/=1 для х^ 0 и N — 1,2, .... Тогда (см. § 3), получаем следующие функциональные уравнения: для одноэтапного процесса C.11) М*)= П1аХ §1(Х1)=81(*У> О < хх < х для УУ-этапного процесса C.12) Ы*)= тах {8ы(хы)+ГЫятт1(х^хы)}9 N = 2, 3,... О < л;^ < * Используя уравнения C.11) и C.12), решим задачу о загрузке самолета. Пусть имеется самолет грузоподъемностью 47 и его следует загрузить предметами N различных типов и различной ценности. Необходимо загрузить самолет предметами максимальной ценности, если известно, что Рг —вес одного предмета /-го типа (г = 1, 2, ..., Ы); С( — стоимость предмета 1-го типа; хь — число предметов 1-го типа. Составим математическую модель задачи: найти максимальное зна- чение функции Р (хъ х2у ..., хм) = 2С*х* (ценность груза) при огра- N ничениях ^РгХЬ < 47, Х( = 0, 1, 2, ... (вес груза не должен превышать грузоподъемности самолета). Если (ы не условие целочисленности, то полученную задачу можно было бы отнести к задачам линейного программирования. Решим задачу, считая грузоподъемность 47 величиной про швольной. Если загрузить самолет только предметами первого типа, то максимальная стоимость груза /х (И?) = тах {С^} при ограничениях Рххх ^ 47 (х± = = 0, 1, 2, ...). Число предметов первого типа х± ^ 471РЪ погруженных в самолет, должно быть целым. Пусть [47/Рг] — наибольшее целое число, которое не превосходит 471Рг\ тогда для нахождения максимума х± нужно взять как можно большим, т. е. хх — [47/Р±], следовательно, /1 (Г) = [471 Р^С^ Таким образом, максимальная стоимость груза в первом случае найдена. Пусть теперь самолет загружают предметами первого и второго типов. Обозначим в этом случае максимальную стоимость через /2 D7). Если было загружено х2 предметов второго типа, то вес предметов первого типа не должен превышать 47 — Р2х2у стоимость их соответственно равна С2х2 и Д D7 — Р2х2). Максимальная стоимость груза [2 D7) - тах {С2 *а + /х D7 ~-Ра *.)}, О < *2 < [1^/Р*] 256
§ 4. Эконом, задачи, реш. методом функц. ур-й Продолжая процесс, т. е. добавляя предметы новых типов, через N шагов приходим к соотношению Г„т= тах {Сых14+Гы^1(^^Рыхы)}$ где рн (ИР) — максимальная стоимость груза, состоящего из предметов N типов; Сыхы — стоимость предметов Л/"-го типа; }м_{ (ИР — — Л\Л/) — максимальная стоимость груза, состоящего из предметов /V — 1 типов, общий вес которых не более ПР — Ры хы. Полученное функциональное уравнение аналогично уравнению C.12), причем грузоподъемность ПР соответствует количеству всех средств х; количество предметов Х( {ь = 1, 2, ..., Щ% подлежащих загрузке в самолет, — количеству средств, выделенных для использования г-м способом; функция дохода #л/ (хы) — функции стоимости Сы хы* Пусть ЦР = 83 ед., а вес и стоимость предметов соответственно равны: Рг = 24; Р2 = 22; Рг = 16; Р± = 10; Сх = 96; С2 = 85; С8 = = 50; С4 = 20. Так как для нахождения значения функции />/ (ИР) необходимо знать значение ^-1 (ИР— Ры хы)> то при решении потребуются значения функции / (ИР) для всех значений ИР @ ^ ИР ^ <83). Пусть самолет загружают только предметами первого типа A-й этап). Их можно погрузить в количестве [№7/Р1] = [83/241 =3, поэтому хг =0; 1; 2; 3. Так как вес груза Рх == 24 ед., то при 0 < ИР < <! 23 в самолет нельзя погрузить ни одного предмета первого типа. Один предмет можно погрузить при 24 ^ ИР < 47, два предмета — при 48 < ИР ^ 71 и три предмета — при 72 ^ ИР ^ 83. Найденные значения ИР, 1г (ИР) и хг запишем в табл. 3.2. Пусть теперь самолет загружают предметами первого и второго типов B-й этап). Так как Р2 = 22 ед., то хг может принимать значения 0, 1,2, 3, поскольку [ЙР/Р2' = 83/22 = 3- Величину грузоподъемности разбиваем на интервалы, учитывая значения Рг и Р2 (табл. 3.3). Таблица 3.2 Таблица 3.3 № 0—21 22—23 24—45 46—47 48—69 70—71 72—83 ит 0 85 96 181 192 277 288 хг 0 1 0 1 0 1 0 х\ о 0 1 1 1 1 2 1 2 ! 3 № 0-23 24-47 48-71 72—83 /1 0*0 0 96 192 283 ч 0 1 2 3 9 Зак, 1428
Глава III. Динамическое программирование При 0 ^ № ^ 21 в самолет нельзя погрузить предметы ни первого, ни второго типов. На остальных интервалах количество предметов находим с помощью табл. 3.2 и функционального уравнения !2(Ю= тах, {С2*2+Ы№-Р2х2)}, *а = 0, 1,2, 3. 0^А-2<[\*7//>2] При 22 < № < 23 имеем /2 B2)= тах {85*2+/! B2 —22*2)}, *2 = 0, 1. О < х2 < [22 /22] Последовательно придавая х2 эти значения, находим * /ооч / 85-0 + /1 B2-22.0)| ( 0+/гB2Д Г 0| ^2B2) = тахч ^ г лл Л^ л } = тах •{ ЛК г Лч > тах { > =85. 21 \ 85-1+/! B2—22.1)/ \85+/1@)/ \в51 Максимальное значение достигается при х2 = 1, т. е. самолет целесообразно загрузить одним предметом второго типа. При грузоподъемности самолета 24 ^ И? ^ 45 получим /яB4)= тах {85*, + М24-22*2)}, где*а = 0, 1, 0<д:2^[24/22] откуда М24)-тах !85-0+/1B4-22-0Н~тах/ ^24> 1-тах/961-9в /2 (^4)-тах | 85 л +/1 B4__22.1) / ~тах \85+[г B) / ~тах {85/ ~96- Максимальное значение достигается при х2 = 0, т. е. самолет следует загрузить одним предметом первого типа. При грузоподъемности самолета 46 ^ И? ^ 47 имеем /2D6)= тах {85х2 + /1D6 —22д:2)} , 0 <х2< [46/22] где х2 = 0, 1, 2. Находим (85-0+/! D6-22-0) }2D6) -тах ШЛ-Ь/г D6-22.1) (85.2+/! D6—22-2) = тах /1D6) ) ( 961 85+/!B4)| = тах| 1811 = 181, 170+^B) 170 Максимальное значение достигается при х2 = 1, т. е. самолет целесообразно загрузить одним предметом второго типа, который весит 22 ед. Тогда останется 46 — 22 — 24 ед. неиспользованной грузоподъемности. Так как в табл. 3.2 грузоподъемности 24 < И? ^ 47 соответствует хг = 1, то самолет следует загрузить одним предметом первого и одним предметом второго типа. Полученные результаты запишем в табл. 3.3. Рассчитав количество предметов для оставшихся интервалов грузоподъемности, приведенных в табл. 3.3, переходим к 3-му и 4-му этапам, заключающимся соответственно в последовательной загрузке самолета предметами первого, второго и третьего типа и первого, второго, третьего и четвертого типа. На 3-м этапе, используя табл. 3.3, составляем табл. 3.4, а на 4-м, используя табл.3.4, составляем табл. 3.5. На основании табл. 3.5 можно сделать вывод, что максимальная стоимость груза, который можно погрузить в самолет, составляет 258
§ 4. Эконом, задачи, реш. методом фуцкц. ур-й Таблиц Ч! 0—15 16-21 22—23 24—37 38—39 40—45 46—47 48—63 64—69 70—71 72—83 а 3.4 !ш(Ю 0 50 85 96 135 146 181 192 242 277 288 х* 0 1 0 0 1 1 0 0 1 0 0 хг 0 0 1 0 1 0 1 0 0 1 0 хх 0 ! 0 1 о 1 1 0 1 1 ! 2 2 2 3 Таблица 3.5 № 0-9 10—15 16—21 22—23 24—33 34—37 38—39 | 40—45 46—47 48—57 1 58—63 | 64—69 I 70—71 72—81 81—83 МЮ 0 20 50 85 96 116 135 146 181 192 212 242 277 288 308 х4 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 х* 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 х% 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 *1 0 0 0 0 1 1 0 1 1 2 2 ! 2 2 3 3 308 ед., при этом должно быть погружено три предмета первого типа и один — четвертого. Анализ результатов вычислений, приведенных в табл. 3.5, показывает, что найдены оптимальные решения не только для самолета грузоподъемностью ИР = 83 ед., но и для самолетов любой грузоподъемности 0 <; ИР ^ 83 , т. е. решено целое семейство сходных задач. Это характерная черта метода динамического программирования. Рассмотренная задача может быть дана в другой интерпретации: стержень длиной ИР требуется раскроить на заготовки длиной 1Ъ /2, /8 и /4 с оценками, соответственно равными С1у С2, С3 и С4> так, чтобы суммарная оценка полученных заготовок была наибольшей. Таким образом, метод динамического программирования можно успешно применять и для решения задач раскроя материалов. Задачи замены оборудования Решение о замене некоторого конкретного оборудования определяется производительностью этого оборудования, эксплуатационными расходами, остаточной стоимостью оборудования, которая зависит от его возраста, и стоимостью нового оборудования. Постановка задачи. Пусть г (I) — стоимость продукции, производимой за год на единице оборудования, возраст которого (лет; I {{) — ежегодные затраты на обслуживание этого оборудования; 5 @ — остаточная стоимость оборудования; р — стоимость нового оборудования. Определить оптимальный цикл замены оборудования в период времени длительностью /V лет, причем за оставшиеся /V лет прибыль /дг (Г) от использования оборудования, возраст которого I лет, должна быть максимальной. 9* 259
Глава III. Динамическое программирование о 1 2 з—*: н—I—I—I 1—I—Н В рассматриваемом процессе возраст оборудования отсчитывается в прямом направлении, а этапы, на которые разбит процесс, — в обратном. Таким образом, возраст I = О соответствует началу использования нового оборудования (рис. 3.15). Составим функциональное уравнение. Для этого найдем зависимость между величинами, входящими в условие задачи, на двух смежных этапах. Если сохранить оборудование, возраст которого / лет, то прибыль предприятия от его использования состоит из прибыли на УУ-м этапе, полученной как разность [г (/) — — I ({)] между стоимостью произведенной продукции и эксплуатационных издержек и прибылью, полученной за N — 1 оставшихся этапов при работе на оборудовании, возраст которого I + 1 лет, т. е. Рис' ЗЛ5 C-13) /„(/) =, г @ - / </) + /„_! а + 1). Если на М-м этапе оборудование, возраст которого / лет, заменить новым, то прибыль после такой замены состоит из прибыли, полученной как разность суммарных стоимостей [5 (I) + г @)] — {/? + / @I, где г @) — стоимость продукции, произведенной на оборудовании, возраст которого 0 лет, а / @) — эксплуатационные издержки, и прибыли, полученной за N — 1 оставшихся этапов при работе на оборудовании, возраст которого 0 + 1 лет, т. е. (З.Н) /„ (/) = 5 (о - р + г @) - / @) + /„_, A). Таким образом, если величина прибыли C.13) больше или равна величине прибыли C.14),то нужно работать на старом оборудовании, в противном случае оборудование следует заменить. Объединяя C.13) и C.14), запишем основное функциональное у[аг нение /лМ; Ь@-Р+г @)^/@)+/^, A) У где верхняя строка определяет прибыль, которая может быть получена при работе на старом оборудовании, нижняя — при его замене. При этом предполагается, что переход к работе на новом оборудовании происходит за один этап. Полагая в C.15) N = 1, получаем функциональное уравнение одно- этапного процесса, для которого слагаемое /лг-1 (/ + 1) и /л-1 A) не имеют смысла, и поэтому из уравнения исключаются: C,6) Л(/>"ш"{'.(й-р(+г@)^(а,}- Уравнения C.15) и C.16) позволяют определить величину /^(/) в зависимости от /^_1 (/ + 1), где при переходе от одного этапа к другому возраст оборудования увеличивается от I до / + 1, а число оставшихся этапов уменьшается от N до N — 1 260
§ 4. Эконом, задачи, реш. методом функц. ур-й Пример. Пусть р = 10, а 5 (/) = 0, т. е. оборудование полностью себя окупило; г (/) — / (I) = ф (/), причем зависимость ф (/) задана табл. 3.6. Таблица 3.6 1 1 ф@ 0 10 1 9 2 8 3 7 4 6 5 5 6 4 7 3 8 2 9 1 10 0 И 0 12 0 Уравнения C.15) и C.16) принимают следующий вид: (ЗЛ8) ^@=тах(^)+ф@)}. Последовательно вычислим максимальные значения />/ (С) для N =\> 2, ..., 12 при / = 0, 1, 2, ..., 12, используя табл. 3.6 значений функции Ф (/). При N = 1 процесс одноэтапный, поэтому значения /х (I) находим с помощью уравнения C.18): М0 = тах{^+ф@^ и т. д. Результаты вычислений запишем в табл. 3.7. Величину функции }н (() при N > 2 находим с помощью уравнения C.17), используя ранее найденные значения /^ (/)• При N = 2 и I = 0, 1, ..., 12 последовательно получаем: /.(ч—(_»<{.ийЯ1-" и++'.о+.) --" гя -,? - * •• Для нахождения величины /2 @ необходимо найденные значения [а @ сложить в следующем порядке: /, @) = /х @) + /г A), /, A) = /1 @ + к B),/»<2) = Ь B) + /1 C) ит. Д., затем каждое полученное значение сравнить с /х (/) (в данном случае с числом 9). Вычисления продолжаем до тех пор, пока не будет выполняться условие /х A) > /а @- В этот момент оборудование необходимо заменить, так как величина прибыли, получаемая в результате замены оборудования, больше, чем в случае использования старого. Отмечаем в табл. 3.7 этот момент знаком V и дальнейшие вычисления прекращаем, 261
Глава III. Динамическое программирование Таблица 3.7 МО МО и а) 1 /з @ МО /5 @ МО МО ^8 @ /в @ МО МО ЫО 1 ° N 10 19 27 34 40 45 51 58 64 70 75 82 1 \ы—\ 9 17 24 30 35 41 48 54 60 65 72 78 2 8 15 21 26 32 39 45 51 56 63 69 75 3 7 13 18 24 31 37 43 48 55 61 67 73 4 6 11 V 17 V 24 30 36 41 V 48 54 60 66 V 72 5 5 9 V 30 35 1 V 41 1 V 1 54 60 V 65 6 4 V 9 1 V 35 V 65 7 3 9 8 2 9 10 3 1 1 0 1 11 2 0 12 1 1 0 При N = 3 находим значения /з @ в трехэтапном процессе: /,A) = тах {_*<!>, @)+^(?|}=тах {^ЦЦ^ 17 }=тах {^=24 и т. д. Таким образом, чтобы получить величину /з @, необходимо значения /х @ сложить со значениями /2 (() в следующем порядке: /з @) = /1 @)+/2A),/3 0)=Ы1Ж2 B),/8 B)=/1 B)+/2 C) и т. д., 262
§ 4. Эконом, задачи, реш. методом функц, ур-й затем каждое полученное значение сравнить с /2 A) (в данном случае с числом 17). Вычисления прекращаем при выполнении условия /2 A) > /з (/), так как в этот момент принимается решение о замене оборудования. Обобщим полученные результаты. Начиная с двухэтапного процесса, вычисления проводим в следующем порядке: значения функции /^ (I) определяем по формуле /»+п@ = /1 @ + Л+п С +1), п = 0, 1, 2, ...; / = 0, 1, 2, ...; полученные значения сравниваем соответственно со значением /1+п A). Решение о замене принимаем при выполнении условия Л+п A) > /г+п @- Поэтому можно не решать каждый раз функциональное уравнение, а проводить вычисления непосредственно в"" табл. 3.7. Вычислим, например, по таблице значения для /4 (I): /4@) = /, @) + /з A)= 10+24=34 > /, A)=24 /4A) = /х @ + /з B)=9+21=30 > /3 A), /4B) = и B) + /3 C)=8+18=26 > /3 A), ЛC) = /хC) + и D) = 7+17=24=/3 A), и D) = /1 D) + и E)^6+17 = 23 < /3 A). Отмечаем в табл. 3.7 момент замены оборудования знаком V и переходим к вычислению значений /л/ (/) в пятиэтапном процессе и т. д. По условию, длина этапа совпадает с годом, поэтому решение заканчиваем на двенадцатиэтапном процессе. По результатам вычислений, приведенным в табл. 3.7, и линии, разграничивающей области решений сохранения и замены оборудования, находим оптимальный цикл замены оборудования. В двенадцатиэтапном процессе оборудование должно быть заменено через четыре года, т. е. на 8-м этапе; в восьмиэтапном процессе — через четыре года, т. е. на 4-м этапе; в четырехэтапном процессе оборудование должно быть заменено также через четыре года. Таким образом, для получения максимальной прибыли от использования оборудования в двенадцатиэтапном процессе оптимальный цикл состоит в замене оборудования через каждые четыре года. Если в задаче замены оборудования положить, что возраст оборудования / и этапы N отсчитываются в прямом направлении, то функциональное уравнение принимает следующий вид: Г ^@-М0 + /дЧ-1('+1) (ЗЛ9) Ш==таХ {^(°)-^@)-^@+/,+ 1A). где верхняя строка определяет прибыль при сохранении оборудования, нижняя — при его замене. Здесь т (I) — стоимость продукции, произведенной на Ы-ы этапе на единице оборудования, возраст которого / лет; 1м @—затраты на обслуживание единицы оборудования возраста I лет на #-м этапе; /N+1 {I + 1) — прибыль, полученная на N + 1)-м этапе, считая от конца процесса, при работе на оборудова- 263
Глава III. Динамическое программирование нии, возраст которого I + 1 лет; гы @) — стоимость продукции, произведенной на единице нового оборудования, возраст которого 0 лет; /л/ @) — затраты на обслуживание единицы нового оборудования, возраст которого 0 лет; иы @ = ры — 5л/ @ — издержки по замене на /У-м этапе оборудования, возраст которого I лет. С помощью функционального уравнения C.19) решим задачу замены оборудования, условия которой заданы табл. 3.8 и 3.9. Необходимо в десятиэтапном процессе длительностью 10 лет найти цикл замены оборудования, возраст которого три года, если известны оценки эффективности использования старого (табл. 3.8) и нового (табл. 3.9) оборудования, начиная с момента его изготовления и до конца рассматриваемого периода. Таблица 3.8 Во?ргст оборудования г{() МО иЦ) 1 80 20 220 2 80 35 240 1 3 60 55 250 4 60 55 260 5 50 55 270 6 50 60 280 7 50 60 280 8 40 60 290 9 40 60 290 10 40 65 300 11 30 65 300 12 30 70 310 Время изготовления оборудования отсчитывается от начала процесса, т. е. если новое оборудование изготовлено в 1-й год, то старое оборудование имеет возраст три года, если во 2-й год—четыре года, и т. д. Решение начинаем с конца процесса, т. е. определяем /10 (I) на 10-м этапе. Для этого составляем функциональное уравнение C.20) /10@ = тах 1/10 @)-/ Кю@-Ы0 -/10@)- -«10 @ }¦ В уравнении исключены функции /и (I + 1) и /и (/), так как рассматриваемый период разбит на 10 этапов. Последовательно придавая значения ^=1,2, ..., 10 и учитывая, что оборудование, возраст которого I лет, изготовлено в A0 — /)-й год от начала процесса, на основании данных табл. 3.9 получаем: с /10A) = тах«{ V »10@- '10@)- ¦/ю0) -/10@)-«10A) }-=тах-! 140 — 10 155—5—225 = тах ш- 130 (используем оценки оборудования, изготовленного в 9-й и 10-й годы); /10B) = тах С '1оB)-/10B) Ло@)-ЫО)-«юB) }- 1125 — 10 :\^155 —5 —240 НЧ-шН15 264
§ 4. Эконом, задачи, реш. методом функц. ур-й Та блица Время изготовления оборудования В 1-й год Во 2-й год В 3-й год В 4-й год В 5-й год В б-й год В 7-й год В 8-й год 3.9 Возраст оборулова ни 1 гA) /@ и Ц) гA) 1Ц) иA) г(() /(/) иA) гA) 1A) и{() г И) Щ) и И) г@ Ш) и{1) г® Ш) и а) г (Я | /(/) 1 иA) | 0 90 20 1 200 100 15 200 но 15 200 11Ь 15 210 120 10 210 125 10 210 135 10 210 140 | 5 | 220 | 1 85 20 1 220 90 1 20 1 220 105 15 220 НО 15 215 ПО 15 215 120 10 220 125 10 220 135 | 10 | 230 | 2 80 25 240 85 20 240 100 20 240 100 20 220 105 20 220 ПО 10 230 ПО 10 230 125 | 10 | 240 | 3 75 25 250 80 25 250 95 20 250 90 20 225 100 20 225 105 | 15 240 105 10 240 4 70 30 255 70 25 255 90 25 255 80 25 230 90 25 230 100 15 250 -1 5 70 30 260 65 30 260 80 25 260 70 25 235 80 25 235 1 6 I 7° 35 265 65 30 265 70 30 265 60 30 240 — — — 7 60 40 ! 270 65 35 270 60 30 270 — — — — — — | 1 8 1 60 45 270 65 35 270 — — — — — — — — — 9 1 6° 50 270 1 — — — — — — — — — — — — 265
Глава III. Динамическое программирование Продолжение табл. 3.9 Время ' изготовления оборудования В 9-й год В 10-й гсд Возраст оборудования '(') /@ и а) гA) Щ) «1@ 0 150 5 220 155 5 220 1 140 10 225 2 3 4 5 6 - 7 8 9 (используем оценки оборудования, изготовленного в 8-й и 10-й годы) и т. д.; Ло @)-/10 @)-ию (9) I таХ\155—5 —270 /ю(9)-=тах4 V >! , F0 — 50 ^ г 10"! )П"таХ\155--5-270ГтаХ1~-120[ = 10 (используем оценки оборудования, изготовленного в 1-й и 10-й годы). При / = 10, 11, 12 для определения величин г10 (/), /10 (/), и1() (/) используем оценки старого оборудования, приведенные в табл. 3.8: # мт |^1о(Ю) —/10A0) | D0-65 \ /10A0) = тахч У = тах<[ >=> * \гю @) —/10 @) — «10 (Ю) / \155—5—300/ 25 -та*{_15оЬ- 25 и т. д. Результаты вычислений записываем в табл. 3.10. Для нахождения последующих значений/^ @ при ./V = 9,8,..., 1 используем уравнение C.19) и значения /N@, заданные в табл. 3.10. При N = 9 и I =* 1, 2, ..., 12 получаем , ,п Гг.A)-/,A) + /юA) \ /135-10 + 115 \ М1)==таХ{го@)-/о@)-«9A)+/1йA)} втМ1 150-5-230 _ 13о| =24° и т. д. При / = 9, 10, 11, 12 используем оценки, приведенные в табл. 3.8! D0 — 60—25 /й (9) =тах X Л - /{М ; \150 — 5-290 + 13о}втаХ{-к}в",бв Результаты вычислений записываем в табл. 3.10, причем значение /9 (9) = — 15 отмечаем знаком V, так как оно соответствует принятию решения о замене оборудования. Результаты окончательных вычисле- 266
§ 4. Эконом, задачи, реш. методом функц. ур-й Таблица 3.10 ГлМО /ю @ МО Ь (/) Ь @ /6 (*) /• (*) и И) и (о к A) МО - - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 Л/ | 1 | 2 | 3 130 240 310 385 380 390 435 435 460 485 115 195 275 285 295 345 365 395 325 320 95 175 200 215 265 300 330 V 280 275 V 280 85 120 1 V 145 190 V 245 280 V 230 , VI 270 VI 260 55 75 V 125 V 175 V 240 220 V 220 V 250 4 30 70 V ПО V 170 V 225 V 210 V 210 5 30 60 V 105 V 55 V 215 V 210 6 30 25 V 85 V 145 V 210 7 8 10 1 —25 1 V -15 V 85 V 145 V —25 V 75 11 | 12 | 9 —35 V —25 10 —40 ний приведены в табл. 3.10, в ней также проведена линия, разграничивающая области решений, заключающиеся в сохранении и замене оборудования. Таким образом, для получения максимальной прибыли от использования оборудования в десятиэтапном процессе оптимальный цикл замены оборудования должен состоять в замене на 1-м этапе оборудования, возраст которого три года; новое оборудование используется до 5-го этапа, на котором оно снова заменяется, работа на этом оборудовании продолжается до 10-го этапа, затем оно снова должно быть заменено. Рекомендуется все вычисления рассмотренной задачи провести самостоятельно. С помощью функциональных уравнений можно решать задачи замены оборудования^ учитывая различные ограничения (возраст поку- 267
Глава III. Динамическое программирование паемого оборудования, ремонт старого оборудования, ограниченность суммы на приобретение оборудования и т. д.). Пусть §лг (х, 0 — покупная цена оборудования, возраст которого х лет, приобретаемого для замены оборудования возраста / лет. В этом случае имеются три возможности: сохранить старое оборудование, купить новое, купить оборудование, возраст которого х лет. Разобьем рассматриваемый промежуток времени на N этапов; тогда функцион- нальное уравнение имеет вид C.21) /дг(/) = тах тах[^(л:)~/^(л:) — <Ы*. *)+/*+! (* + *) где первая строка определяет прибыль при сохранении оборудования, вторая — при замене новым оборудованием, третья — при замене оборудованием, возраст которого х лет. Пусть /л (/1э /2) — величины прибыли, которая может быть получена при работе на оборудовании возраста /х лет, последний ремонт которого производился, когда его возраст составлял /2 лет. В этом случае возможны следующие случаи: сохранить, заменить и ремонтировать оборудование. Эти случаи описываются с помощью следующего функционального уравнения: C.22) ^N(^^> /2) = тах где 6д/ (/ь /2) — стоимость ремонта на ЛЛм этапе оборудования возраста ^ лет, последний ремонт которого производился в момент, когда оно прослужило /2 лет- Остальные обозначения имеют тот же смысл, что и в ранее рассмотренных задачах. В C.22) первая строка определяет прибыль при сохранении оборудования, вторая — при замене его новым оборудованием, третья — при ремонте. Предположим, что капитальные затраты на покупку оборудования ограничены некоторой суммой М = С — С™, где С — сумма, имеющаяся в начале процесса; Сы = сумма, затраченная на #-м этапе. Тогда задача замены оборудования описывается функциональным уравнением C.23) /АГ(/,С)втахГ^(/)"^(,)+^+1^ + 1'. ^'N@ + ^@] ,}• в котором верхняя строка определяет величину прибыли при сохранении, а нижняя — при замене оборудования. 268
§ 4, Эконом, задачи, реш. методом функд. ур-й Вопросы для самопроверки 1. Составьте функциональные уравнения для задачи распределения ресурсов, если величина дохода зависит не только от количества ресурсов и этапов, но и от времени начала процесса. 2. Сформулируйте задачу загрузки самолета, запишите ее математическую модель и составьте функциональные уравнения для ее решения. 3. Как интерпретировать задачу загрузки самолета, чтобы с ее помощью можно было решить задачу раскроя материалов? 4. Сформулируйте задачу замены оборудования и составьте функциональные уравнения, если возраст оборудования отсчитывается, в прямом, а этапы — в обратном направлении. 5. Составьте функциональные уравнения задачи замены оборудования, если возраст оборудования и этапы отсчитываются в одном направлении. Упражнения 1. По истечении каждого месяца некоторое количество биомассы у сдается потребителю, причем предприятие получает доходе/, а оставшееся количество биомассы г за месяц вновь увеличивается до величины аг (а > 1). Производственные затраты зависят от г и определяются функцией ф (г) = ег2, где е— заданное число. Определить такие объемы поставок, чтобы в течение N месяцев предприятие получило максимальный суммарный доход. Построить математическую модель, составить функциональные уравнения и решить задачу при следующих значениях параметров: к — 10, 8 = 0,1, а = 2, N = 12; количество биомассы к концу первого месяца х = 150. 2. Стержень длиной 167 ед. раскроить на заготовки длиной 1г = 48, /2 = 44, /3 = 32, /4 = 20, стоимость которых соответственно равна Сг — 96, С2 — 85, С3 = 64, С4= 35, так, чтобы суммарная стоимость полученных заготовок была наибольшей. 3. Для производства определенного продукта предлагается построить несколько предприятий. При этом известны: суммарная производственная мощность этих предприятий; наибольшая и наименьшая производственные мощности каждого из них; зависимость себестоимости продукции на каждом предприятии от его производственной мощности Выбрать производственные мощности предприятий так, чтобы суммарная себестоимость продукции была минимальной. Построить математическую модель задачи и убедиться в возможности решения ее методом динамического программирования. 4. Определить- оптимальный цикл замены оборудования для получения максимальной прибыли при условиях, заданных в табл. 3.11; известно, что 5 (/) = 0. б. Решить задачу 4, учитывая остаточную стоимость оборудования, изменяющуюся по закону, который приведен в табл. 3.12. Таблица 3.11 / Ф0) рщ 0 1° 10 1 9 10 2 8 11 3 7 11 4 6 12 I б 5 12 6 4 13 7 3 13 8 2 14 9 1 14 10 0 15 11 0 15 12 0 15 269
Глава III. Динамическое программирование Таблица 3.12 1 5@ 0 5 1 4 2 3 3 2 4 1 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 § 5. Детерминированные процессы Многоэтапные процессы, рассмотренные в § 1—4 настоящей главы, характеризовались свойством, согласно которому результат любого решения определялся однозначно выбором этого решения. Процессы такого типа называются детерминированными. Для детерминированной модели М-этапного процесса состояние системы 5* (* = 1, 2, ..., Л/) на каждом этапе задается вектором с одной или несколькими компонентами. Преобразование вектора состояния от этапа к этапу осуществляется воздействием на него вектором управления 11,. Преобразование V* (8;, Мг) —функция вектора состояния и вектора управления на каждом этапе. Последовательность преобразований, начиная с Л^-го этапа и кончая первым, можно записать следующим образом: Если предыдущее равенство C.24) поставить в последующее, то получим конечное состояние 8&, выраженное через начальное состояние 8лг: C.25) 8А = VI (У2(У3 (... 0М5„, иы))...))). Таким образом, существует последовательность векторов Ц^г, 11лг—ь... ..., 1)ъ соответствующих последовательности преобразований C.24), называемая поведением или стратегией. Если преобразования выбраны в соответствии с какими-то определенными критериями, то множество оптимизирующих векторов управления называется оптимальной стратегией или оптимальным поведением. Теперь задачу максимизации общего дохода в АЛэтапном процессе можно записать в следующем виде: найти максимальное значение функции ;=1 где ^ (8Ь II,-) — доход от /-го этапа, являющийся функцией вектора состояния 8; и вектора управления II; V? — общий доход. 270
§ 6. Стохастические задачи динамич. програм. Определив функцию /м(8лг) как максимальный доход в N -этапном процессе, начиная с состояния 8лг (# = 1, 2, ...), при использовании оптимальной стратегии получаем N Раскрывая это выражение, следуя принципу оптимальности, приходим к уже рассмотренным ранее фукциональным уравнениям или C.26) /^Ы=="?ах{^(^,^)+/дг-1 П^E„,1^)]}, C.27) ЫЗ^тах^ф,^)]. и, Необходимо отметить, что во всех рассмотренных задачах критерий ЦР обладает свойством аддитивности, так как значение этого критерия, достигнутое за весь процесс, получали суммированием его частных значений на определенных этапах. В большинстве практических задач, решаемых методом динамического программирования, критерий является аддитивным. Если в первоначальной постановке задачи он не обладает этим свойством, то видоизменяют либо постановку задачи, либо сам критерий. Вопросы для самопроверки 1. Какие процессы называются детерминированными? 2. Запишите задачу максимизации общего дохода в М-этапном процессе через вектор состояния системы и вектор управления. § 6. Простейшие стохастические задачи динамического программирования В практике планирования довольно часто встречаются задачи, в которых на состояние системы и на значение критерия заметное влияние оказывают случайные факторы. В таких задачах управляемый процесс не полностью определяется начальным состоянием системы и выбранным управлением, а в какой-то мере зависит от случая. Такие задачи называются стохастическими и вероятностными. Стохастические задачи имеют место, например, если нельзя точно определить состояние системы на каждом этапе; если переменные, характеризующие состояние системы, — случайные величины с известной функцией распределения; если меняется цель задачи; при планировании на длительный период, поскольку в этом случае невозможно точно указать значения всех нормативов и коэффициентов, так как они могут измениться под влиянием непредвиденных причин, и т. д. 271
Глава III. Динамическое программирование Для нахождения оптимального решения многоэтапных экстремальных стохастических задач с аддитивным критерием можно использовать метод динамического программирования. В стохастической модели преобразование от г-го этапа к (/ — 1)-му содержит некоторую неопределенность. В результате преобразования V* (8Ь О/) известный вектор состояния 8г- переходит в случайный вектор состояния Ъь_х с функцией распределения С E/, 2Ь_Ъ 1^), которая зависит от известного состояния 8г-, случайного состояния 2^_а и управления II/. Поэтому, прежде чем принять решение на (I — 1)-м этапе, необходимо положить, что действительное значение вектора состояния 8г-_х наблюдалось и известно. Для стохастического процесса, как и для детерминированного, можно схематично записать последовательность преобразований: 2д7 —2 —^Л/~ 1 (^ЛГ— 1 I ^N—1 )> но нельзя с помощью обратной подстановки, как это было в случае детерминированного процесса, выразить конечное состояние как функцию начального.. Это обусловлено тем, что результаты преобразований известны только после непосредственных наблюдений. Величины Ъь — случайные, поэтому векторы управления 1^ также случайны в том смысле, что их применение дает неопределенный результат для величины критерия. Критерий IV = 2}^. (8,-, II;) как функция случайных величин так- 1=1 же величина случайная, поэтому говорить о его оптимальном значении не имеет смысла. В связи с этим в роли меры качества проведения используют некоторую среднюю характеристику возможных результатов. Такой характеристикой является среднее арифметическое, т. е. математическое ожидание. Свойство линейности М (Хг + х2+ ...+хы) = М (Хг) + М% (Х2) + .. + м (Хы) позволяет упростить функциональные уравнения, описывающие процесс, а свойство инвариантности М [М (X,) + М (Х2)+ ... +М (Х1У)] = М (X,) + М (Х2)+ ...+М (Хм) показывает, что будущие решения основываются только на состоянии системы в данный момент и не зависят от ее предыстории. Пусть [м (8м) — максимум математического ожидания величины критерия по 1ы~\ в /У-этапном процессе, начинающемся с состояния 8^, при использовании оптимальной стратегии; тогда C.28) /л($*) = тахм{2 Ям^ф,^), ^]|=тах М { 2 Я* B*-1. и:)| . 272
§ 6. Стохастические задачи динамич. програм. откуда для дискретного случая имеем {т где /^ (/ = 1, 2, ..., т) — вероятности т возможных дискретных состояний, которые может принимать случайный вектор 2л—ь 0^ т /=1 Задача распределения ресурсов в стохастическом варианте Пусть в результате деления средств х на величины у и х — у величина § (у) принимает одно из двух значений: §г (у) с вероятностью рг при уменьшении величины у до значения аху и §2 (у) с вероятностью р2 = 1 —ръ при уменьшении величины у до значения а2у. Функция к (х — у) принимает значение Нг (х — у) с вероятностью ^ при уменьшении величины х — у до значения Ьг(х — у) и значение й2 (лг — у) с вероятностью 92= 1—?1 ПРИ уменьшении величины х — у до значения Ь2 (х — у). Так как эти события, происходящие соответственно с вероятностями р19 р2у цъ ц2, независимы, то закон распределения можно записать в следующем виде: Количества средств Вероятности + Ьг(х—у) Р\Я\ «20 + + &! (X— у) РчЙ1 <*1У + + Ь2(х—у) РьЯ* я2</ + + Ь2(х—у) РгЯъ Если положить Рг = рхцъ Р2 = /?!^2, Рз = рф, Р4 = Р2?2» то 4 2Л = 1, 0 ^ Рь ^ 1. Таким образом, имеет место дискретный закон 1=1 распределения случайной величины. Определим [ы (х) как математическое ожидание полного дохода от М-этапного процесса, если соблюдается принцип оптимальности. Тогда получаем следующие функциональные уравнения: [ы(х)=> гпах {р1Я1[ёх(у)+1г1(х~у)+Гм__{ (я^+М* —у))] + +Р± Яг \Е1 (У) +А2 (х—У) + ?ы-1 (а1 У + Ь* (х—У))) +Р* Яг. \8г (У) + к\ (х—у) + + /л/-1 (<**У + Ь1(х—У))]+Р*<Г21ё*(У) + Ь2(х—У) + 1м-1 (а*У-\ Ь2(х—У))\}> C.30) и М*)=» тах {^<71 [^1(^L-^1 (а:—У)]+Р1 ЯъЫг (у) + &в (* + </)] + C.31) +р2 91 [Ы#) + М*+#)]+/>2ЫЫ#)+М*--</)]}. Ю Зак. 1428 273
Глава III. Динамическое программирование где 0 < аъ а2, Ьъ Ъ2 < 1; 0 < ръ р2, цъ ц2 < 1; рг + р2 = 1, дг + + д* = 1. Если вероятности ръ р2, цх и #2 известны, то уравнения C.30) и C.31) аналогичны уравнениям C.26) и C.27) для детерминированного процесса. Однако количество вычислений на каждом этапе значительно возрастает, поскольку необходимо рассматривать все четыре возможности. Таким образом, считая математическое ожидание мерой качества поведения, мы, тем самым > исключаем стохастические особенности процесса, по крайней мере настолько, чтобы было можно провести анализ решения. Задача добычи Пусть имеются два месторождения А и В полезного полезного ископаемого, запасы которых ископаемого соответственно равны х и у ед. Для добычи ископаемого используется одна машина, которая либо с определенной вероятностью добывает часть запаса, либо выходит из строя и в дальнейшем не используется. Если машина работает на месторождении Л, то с вероятностью рх она добывает часть гх имеющегося запаса и с вероятностью 1 — рг выходит из строя. Если машина работает на месторождении В, то с вероятностью /?2 она добывает часть г2 имеющегося запаса и с вероятностью 1 — р2 выходит из строя. В какой последовательности следует использовать машину на месторождениях, чтобы общее количество полезного ископаемого, добытого до выхода машины из строя, было максимальным? Решение. Разобьем период работы машины на этапы. Процесс использования машины можно начать либо с месторождения Л, либо с месторождения В. Если машина не вышла из строя на предыдущем этапе, то необходимо решить, на каком из месторождений ее следует использовать на последующем этапе. Исходя из критерия задачи, определим функцию /# (х, у) как ожидаемое количество полезного ископаемого, добытого до выхода машины из строя. В одноэтапном процессе в случае первоначального выбора для разработки месторождения А среднее количество добытого запаса составляет р±гхх и р2г2у при выборе месторождения В, следовательно, C.32) /1 (*, у) = шах [р^х, р2г2у1 Рассмотрим (Ы + 1)-этапный процесс. Каким бы ни был первоначальный выбор, его продолжение на оставшихся N этапах должно быть оптимально. Ожидаемое количество добытого полезного ископаемого в (Ы + 1)-этапном процессе при первоначальном выборе месторождения А C.33) 1А(х% у) = Р1 [ггх -Ь /„(A - гг) *, у)]ш 274
§ 6. Стохастические задачи динамич. програм. а при выборе месторождения В C.34) /в(*, у) = р2 [г2у + /„ (л:, A - г2)у)]. По условию необходимо максимизировать общее количество добытого полезного ископаемого, поэтому, объединяя C.33) и C.34), получаем основное функциональное уравнение для (Ы + 1)-этапного процесса: [Рг 1а* + /дКA - г^ х> УЩ C.35) !ы+1 (Х, „)-„„ [/л (,,„). /в (», ^шах [рЛг2!/ + шл1_Г2)у)]\ • Используя функциональные уравнения C.33) и C.34), определим оптимальное поведение в трехэтапном процессе, если х = 400, у = = 200, рг = 0,7, гг *= 0,6, р2 = 0,8, г2 = 0,8. Рассмотрим одноэтапный процесс [при этом используем уравнение C.32)]. На 1-м этапе работу можно начать либо на месторождении Л, либо на месторождении В. В случае выбора месторождения А добыча полезного ископаемого составит в среднем /1 (х, у) = руггх = 0,7 . 0,6 . 400 = 168 (ед.). Если в течение 1-го этапа машина не вышла из строя, то в начале 2-го этапа необходимо сделать выбор: продолжать работу на месторождении А или начать работу на месторождении В. На месторождении А добыто гхх ед. полезного ископаемого и его остаток составляет х — гхх A —гх) х ед.; на месторождении В запас остался прежним, Решая функциональное уравнение, получаем , г/1 , , [Р1Гг{1-гдх\ /0,7.0,6.0,4.4001 Ш-'Л*.У1=™[р%ГшУ } = таХ10,8.0,8.200 Г Г67.2) ^шах^'^128 (ед.). Следовательно, на 2-м этапе машина должна работать на месторождении В. В начале 3-го этапа следует сделать выбор: продолжать работу на месторождении В или на месторождении А. На месторождении В добыто г2у ед. полезного ископаемого, его остаток составляет у — г2у = ~ A — гг) У еД- Имеем (РгГгП—гДх] /0,7.0,6.0,4.400] Г67,2] =™*{25,бН7'2ед* Следовательно, на 3-м этапе машина должна работать на месторождении Л. Таким образом, если на 1-м этапе работа начата на месторождении Л, то оптимальное поведение состоит в том, что на 2-м этапе надо 10* 275
Глава III. Динамическое программирование начать работу на месторождении В, а на 3-м — продолжать работу на месторождении А. Пусть работа начата на месторождении В; тогда на 1-м этапе добыча полезного ископаемого составляет в среднем /х (х, у) = р2г*У = 0,8 • 0,8 • 200=128 (ед.). В начале 2-го этапа производим выбор: (РхПХ Л ( 1681 Ы*,A — г2)у\=тах<{ Г = тах<{ }>= 168 (ед.), 1Р2^2 A—г2) У) 125,6) т. е. работу следует начинать на месторождении А. В начале 3-го этапа также производим выбор: Г 67,2^ ЫA-^)*.A-га)у1=тах|25б| = 67>2(ед.), т. е. следует продолжать работу на месторождении А. Таким образом, если на 1-м этапе работа начата на месторождении В, то оптимальное поведение состоит в том, что на 2-м и 3-м этапах добыча ведется на месторождении А. Рассмотрим двухэталный и трехэтапный процессы. Полагая последовательно Л/= 1,2, из уравнения C.35) определяем вид функций, необходимых для решения задачи. При N = 1 <З.Зо) 12{х,у) = )пах\ \ . При Л/ - 2 C.37) /3 (х, ы)=тах < > . где C.38) /2 (A—гх)л;, у)=тах\ \ 1Р2[г2У+к(A — г1)х,(\—г2)у)]) 3.39 ^2 х, 1~г2)у) = тах -{ >. {Р2[г2^—г2)у+11(х1A-г2Jу)\) Таким образом, кроме значений /, (A — г2) *, у)> /х (к, A — г2) у) и /1 (С — 'Ч) *> О — гг) #)> необходимо вычислить количество добытого полезного ископаемого в одноэтапном процессе для следующих случаев: ч , „. ,а , 1Р1Г1(\-г1)*х\ ГО,7.0,6-0,16.400) а) и(A~г0*х, у)=тах\ \ = тах\ } = Ур2г2у ) I 0,8-0,8-200 B6,88* ,Л 276
§ 6. Стохастические задачи динамич. програм. если на 1-ми 2-м этапах машина работала на месторождении Л, а на 3-м — на месторожении В; *ч « / м * ъ (р*г*х \ ( 0,7.0,6.400 ^ Г 168 1 , ==ШаХ 15 12) (еДв)' если на 1-м и 2-м этапах машина работала на месторождении В, а на 3-м — на месторождении А. Подставляя найденные значения функций в уравнения C.36)—C.39), окончательно получаем: для двухэтапного процесса Г0,7 @,6-400+ 128П B57,6^ М*.*> = тах |м (() 8т+ 168)} = ™х ^^[ = 262,4 (ед.): @,7@,6-0,4-400+128П Г 156,8^ ,_ п К((\—г1)х,у) = тах\ ' л „ _ ' У = тах^ Л1 У = 181,76 (ед.); ,2и ; У \ 0,8@,8-200 + 67,2 / \181,76) ( 0,7@,6-400 + 67,2) ^ Г 215,04^1 К(х,A—г2)у)=тах< У = тах^ , У = 215,04 (ед.), /2* '* 2/'/; \ 0,8 @,8-0,2-200+168) ) \ 160 / т. е. работу на 1-м этапе надо начинать на месторождении В; для трехэтапного процесса Г 0,7 @,6-400+181,76^ B95,262^| к(х,у) = тах1 ^ У-тах^ V-300,032 (ед.), т У' \0,8@,8-200 + 215,04| \300,032/ 1 " т. е. работу на 1-м этапе надо начинать на месторождении В. Таким образом, чтобы в трехэтапном процессе добыть максимальное количество полезного ископаемого C00,032 ед.), необходимо: на 1-м этапе вести работу на месторождении В, а на 2-м и 3-м этапах — на месторождении А. В заключение отметим, что кроме рассмотренных к стохастическим относятся также следующие задачи: планирования производства с учетом спроса и потребления; управления запасами; комплектования станочного парка, если заказы заранее не известны; планирования сельскохозяйственного производства и урожайности культур на различных участках; планирования развития транспорта, пассажирских и грузовых перевозок и др. Все задачи замены оборудования, рассмотренные в § 4, могут быть сформулированы как стохастические. Вопросы для самопроверки 1. Какие задачи называются стохастическими? 2. В каком случае имеют место стохастические задачи? 3. Какой критерий является мерой качества поведения при решении стохастических задач динамического программирования? 4. Сформулировать и вывести функциональные уравнения задачи распределения ресурсов в стохастическом варианте. 5. Составить функциональные уравнения для задачи добычи полезного ископаемого на трех месторождениях. в. Найти оптимальное поведение в пятиэтапном процессе для задачи добычи полезного ископаемого при условиях, приведенных в § 6, п. 2,
Глава IV ЭЛЕМЕНТЫ ТЕОРИИ МАТРИЧНЫХ ИГР § 1. Предмет теории игр, основные понятия Одна из задач теории оптимальных решений — принятие решения в условиях неопределенности. Для обоснования решений разработаны специальные математические методы, которые рассматриваются в теории игр. Теория игр принадлежит к наиболее молодым математическим дисциплинам. Ее возникновение относится к 1944 г., когда вышла в свет монография Неймана и Моргенштерна «Теория игр и экономического поведения». В дальнейшем теория игр превратилась в самостоятельное математическое направление, имеющее практическое приложение. Теория игр — это теория математических моделей, интересы участников которых различны, причем они достигают своей цели различными путями. Столкновение противоположных интересов участников приводит к возникновению конфликтных ситуаций. Необходимость анализировать такие ситуации, в свою очередь, привела к возникновению теории игр, задачей которой является выработка рекомендаций по рациональному образу действия участников конфликта. Чтобы исключить трудности, возникающие при анализе практических конфликтных ситуаций в результате наличия многих несущественных факторов, строится упрощенная модель ситуации. Такая модель называется игрой. Конфликтная ситуация в игровой модели развивается по определенным правилам. Естественной базой для анализа конфликтных ситуаций служат широко распространенные игры — шахматы, шашки, карточные игры. Поэтому теории игр свойственна следующая терминология: «игроки» (стороны, участвующие в конфликте), «.выигрыш» (исход конфликта) и т. д. Неопределенность результата игры вызывается различными причинами, которые можно разбить на три группы. 1. Особенности правил игры вызывают такое разнообразие в ее развитии, что предсказать результат игры заранее невозможно. Источники неопределенности такого вида называются комбинаторными, а соответствующие игры — также комбинаторными. Примером может служить шахматная игра. Однако комбинаторная сложность игр носит исторически преходящий характер благодаря использованию соответствующего математического аппарата и вычислительной техники. 278
§ 1. Предмет теории игр, основные понятия Для целого ряда комбинаторных игр найдены выигрышные комбинации путем решения логических задач не слишком большого объема. 2. Другим источником неопределенности является влияние случайных факторов. Игры, в которых исход оказывается неопределенным исключительно в результате случайных причин, называются азартными (игры в кости, игра, состоящая в отгадывании, какой стороной выпадет монета; рулетка). 3. Третий источник неопределенности состоит в отсутствии информации о действиях противника, о его стратегии. Игры такого рода называются стратегическими. Рассмотрим эти игры более подробно. В игре могут сталкиваться интересы двух или более противников. В первом случае игра называется парной, во втором — множественной. Так как наибольшее практическое значение имеют парные игры, то рассмотрим только их. Участников игры обозначим через Л и В. При этом под игрой условимся понимать некоторую последовательность действий (ходов) игроков А и В, которая осуществляется в соответствии с четко сформулированными правилами. Правила определяют возможные варианты действий игроков, объем информации каждой стороны о действиях другой, результат игры, к которому приводит соответствующая последовательность ходов. В большинстве игр предполагается, что интересы участников поддаются количественному описанию, т. е. результат игры (выигрыш) определяется некоторым числом. Ходом в теории игр называется выбор одного из предположенных правилами игры действий и его осуществление. Стратегией игрока называется план, по которому он совершает выбор в любой возможной ситуации и при любой возможной фактической информации. Естественно, что игрок принимает решения по ходу игры. Однако теоретически можно предположить, что все эти решения приняты игроком заранее. Тогда совокупность этих решений составляет его стратегию. В зависимости от числа возможных стратегий игры делятся на конечные и бесконечные. Задачей теории игр является выработка рекомендаций для игроков, т. е. определение для них оптимальной стратегии. Оптимальной называется стратегия, которая при многократном повторении игры обеспечивает данному игроку максимально возможный средний выигрыш. Простейший вид стратегической игры — игра двух лиц с нулевой суммой (сумма выигрышей сторон равна нулю). Игра состоит из двух ходов: игрок А выбирает одну из своих возможных стратегий А г (ь = = 1, 2, ,.., т), а игрок В выбирает стратегию В^ (/ = 1, 2, ..., п), причем каждый выбор производится при полном незнании выбора другого игрока. В результате выигрыши фх (Лг-, В7) и ф2 (Л*, В7) каждого из игроков удовлетворяют соотношению D!1) Ф1 (Аи В,) + Фя (А и В$ = О, откуда, если фх (Ль В;) = ф (Лг-, 5/), имеем ф2 {Аи Я/) = — ф (Ли ВЦ. 279
Глава IV. Элементы теории матричных игр Цель игрока Л —максимизировать функцию ср (Лг«, 57), в свою очередь, цель игрока В — минимизировать эту же функцию. Каждый из игроков может выбирать одну из переменных, от которых зависит значение функции. Если игрок А выбирает некоторую из стратегий Аи то это само по себе не может влиять на значение функции ф (А*, В^. Влияние АI на величину значения ср (Л*, В/} является неопределенным; определенность имеет место только после выбора, исходя из принципа минимизации ср (Аи ВД другим игроком переменной В^. При этом В^ определяется другим игроком. Пусть ср (Лг-, В^) = а^. Составим матрицу А: (ап а12 ... я1п\ °21 #22 • • • а2П I # г ат1 аш2 * • • атп/ Строки матрицы соответствуют стратегиям Л*, столбцы — стратегиям В]. Матрица А называется платежной или матрицей игры. Элемент а%} матрицы — выигрыш игрока Л, если он выбрал стратегию А и а игрок В выбрал стратегию В$. Пусть игрок Л выбирает некоторую стратегию Л*; тогда в наихудшем случае (например, если выбор станет известным игроку В) он получит выигрыш, равный тта^. Предвидя такую возможность, иг- / рок Л должен выбрать такую стратегию, чтобы -максимизировать свой минимальный выигрыш а: D.2) а = тахггнп а.-.-. Величина а — гарантированный выигрыш игрока Л — называется нижней ценой игры. Стратегия Л/0, обеспечивающая получение а, называется максиминной. Игрок В, выбирая стратегию, исходит из следующего принципа: при выборе некоторой стратегии В; его проигрыш не превысит максимального из значений элементов /-го столбца матрицы, т. е. меньше или равен шах ах^ Рассматривая множество тах а^ для различных зна- чений /, игрок В, естественно, выберет такое значение /, при котором его максимальный проигрыш |3 минимизируется: D.3) Р = Ш1птаха^-. / 1 Величина р называется верхней ценой игры, а соответствующая выигрышу |5 стратегия В]0 — минимаксной. Фактический выигрыш игрока Л при разумных действиях партнеров ограничен нижней и верхней ценой игры. Если же эти выражения равны, т. е. D.4) п\аx1^^)'та^^~т^птэxа^^~V^ 280
§ 1. Предмет теории игр, основные понятия то выигрыш игрока А — вполне определенное число, игра называется вполне определенной, а выигрыш D.4) называется значением игры и равен элементу матрицы а/о/о. Вполне определенные игры иногда называют играми с седловой точкой. Элемент ш0?0 в матрице такой игры является одновременно минимальным в строке /0, максимальным в столбце /0 и называется седловой точкой. Седловой точке соответствуют оптимальные стратегии игроков, их совокупность — это решение игры, которое обладает следующим свойством: если один из игроков придерживается своей оптимальной стратегии, то для другого отклонение от его оптимальной стратегии не может быть выгодно. Пример. Определить нижнюю и верхнюю цены для игр, заданных платежными матрицами Ах и А2: /4 3 4 2\ /10 3 5\ А1= I 3 4 6 5 I , А2= 32 4 3 ] . \2 5 1 3/ \0 1 — 1 4/ Решение. Минимальные значения ац в строках матрицы Ах равны соответственно 2,3, 1. Максимальное значение из них равно 3. Следовательно, аг — нижняя цена игры, которой соответствует матрица Ах, равна 3. Для определения рх (верхней цены данной игры) найдем максимальные значения элементов в столбцах матрицы. По столбцам соответственно имеем: 4, 5, 6, 5. Следовательно, р = 4. Для матрицы А2 а2-тах{0;2; —1} = 2, р2 = тт {3; 2; 4; 5} =2. Таким образом, а2 = р2 = V — цена игры. Решение данной игры состоит в выборе игроком А стратегии Л2, при этом его выигрыш не меньше 2; для игрока В оптимальной является стратегия В2, позволяющая ограничить его проигрыш этим же числом. Легко видеть,что отклонение одного из игроков от оптимальной стратегии приводит к уменьшению выигрыша (для игрока А) и увеличению проигрыша (для игрока В). Итак, если игровая матрица содержит седловую точку, то решение игры известно. Каждый из игроков применяет свою оптимальную стратегию. Возникает вопрос нахождения решения для игр, матрицы которых не содержат седловой точки. В этих играх а < |5. Применение минимаксных стратегий для каждого из игроков обеспечивает выигрыш, не превышающий а, и проигрыш, не меньший р. Для каждого игрока естествен вопрос увеличения выигрыша (уменьшения проигрыша). Поиски такого решения состоят в том, что игроки применяют не одну, а несколько стратегий. Выбор стратегий осуществляется случайным образом. Случайный выбор игроком своих стратегий называется смешанной стратегией. В игре, матрица которой имеет размерность т X п, стратегии игрока А задаются наборами вероятностей X = (х19 х2, ..., хт), с которыми игрок применяет свои первоначальные чистые стратегии. Эти 281
Глава IV. Элементы теории матричных игр наборы можно рассматривать как т-мерные векторы, для компонент которых выполняются условия т D.5) 2 ^ = 1' **>°> ^ = 1»2» ...,/и. Аналогично для игрока В определяют /г-мерные векторы V = (уи У*> •••> Уп)у соответствующие его смешанным стратегиям. Стратегии игроков Л и В, для которых вероятности хь и уг отличны от нуля, называются активными. Выигрыш игрока А при использовании смешанных стратегий определяется как математическое ожидание выигрыша, т. е. равен т п 2 2 о>ц ХъУз или (в векторно-матричной записи) ХАУ, Существует так называемая основная теорема теории игр, состоящая в следующем: каждая конечная игра имеет, по крайней мере, одно решение, возможно, в области смешанных стратегий. Применение оптимальной стратегии позволяет получить выигрыш, равный цене игры: Для оптимальных стратегий игроков имеет место соотношение D.6) тахппп ХАУ'=гшп тах ХАУ» XV УХ Применение игроком А оптимальной стратегии X* должно обеспечивать ему при любых действиях игрока В выигрыш не меньше цены игры а Поэтому выполняются следующие соотношения: т D.7) ^х*(аи>ь, / = 1,2, ..., п. Аналогично, для игрока В оптимальная стратегия V* должна обеспечить при любых стратегиях игрока А проигрыш, не превышающий величину V, т. е. справедливо соотношение п D.8) 2 **/У/<°. '=1' 2' •••> т- / = 1 В дальнейшем соотношения D.7) и D.8) используются для решения игры. Вообще, задача решения игры, если ее матрица не содержит седло- вой точки, тем сложней, чем больше значения тип. Поэтому в теории матричных игр рассматриваются способы, с помощью которых решение одних игр сводится к решению других, более простых (в частности, с помощью сокращения размерности матрицы). Сократить размерность матрицы можно, исключая дублирующие и заведомо невыгодные доминирующие стр атегии. Дублирующими называются стратегии, которым соответствуют одинаковые значения элементов в платежной матрице, т, е. матрица со- 282
§ 1. Предмет теории игр, основные понятия держит одинаковые строки (столбцы). Если все элементы /-й строки матрицы меньше соответствующих элементов к-й строки, то 1-я стратегия для игрока А называется доминирующей. Если же элементы г-го столбца матрицы больше соответствующих элементов /-го столбца, то для игрока В стратегия Вг — доминирующая. Например, в матрице А2 для игрока В заведомо невыгодна четвертая стратегия, так как все значения аи превышают соответствующие значения первого и второго столбца. Четвертый столбец матрицы можно исключить (игрок В никогда не воспользуется этой стратегией). Можно сократить размер матрицы, разбив ее на подматрицы, в которых суммы элементов по столбцам и строкам равны. Тогда вместо чистых стратегий в матрицу включаются смешанные. Элементы матрицы, соответствующие смешанным стратегиям, получаются делением соответствующих сумм элементов на число чистых стратегий, объединяемых в смешанную. Если смешанные стратегии входят в число оптимальных, то вероятности использования входящих в них чистых стратегий равны между собой. Рассмотрим матрицу А2, разбитую на четыре подматрицы, для которых выполняется условие равенства сумм элементов по строкам и столбцам: /2 0 | 4 —2 /О 2 » —2 4 а3= 1_.1!__1_.1 \ 1 1 I 3 5 \1 —1 } 5 3 Объединяя стратегии Ах, А2 и Л3, Л4 и Л5, Вх и Въ Вд и Б4, приводим матрицу к виду "•-AЭ- Полученная матрица содержит седловую точку. Поэтому решение первоначальной игры, заданной матрицей А2, таково: X* = A/3; 1/3; 1/3; 0; 0), V* = A/2, 1/2; 0; 0). Цена игры равна единице. В результате упрощения игры решение ее стало очевидным. Оптимальной для игрока А является комбинация стратегий Аъ А2 и Л3> а для игрока В — комбинация стратегий В^ и В2- Вероятности применения стратегий Аи А2 и Л3 равны между собой, сумма их равна 1, поэтому X* = A/3; 1/3; 1/3; 0; 0). Аналогично, оптимальная стратегия игрока В имеет вид V* == A/2; 1/2; 0; 0). Таким образом, при решении игры т X п следует: а) проверить, не содержит ли матрица седловой точки; б) если седловой точки нет, то нужно сравнить между собой элементы строк и столбцов для исключения дублирующих и доминирующих стратегий; в) рассмотреть возможность разбиения матрицы на подматрицы для замены некоторых групп чистых стратегий смешанными. 283
Глава IV. Элементы теории матричных игр Наиболее простая матричная игра — это игра, в которой каждый из игроков имеет две стратегии. Матрица А игры имеет вид д __ / яц «121 \а21 а22/ Если седловой точки нет, то решением игры являются смешанные стратегии X = {хъ х2), V = {уъ у2). Согласно основной теореме теории игр, применение оптимальной стратегии X — (хъ х2) обеспечивает для игрока А получение выигрыша V при любых стратегиях игрока В. Оптимальная стратегия для игрока В также смешанная. Поэтому, если игрок А применяет свою оптимальную стратегию, то при этом игрок В может использовать одну из чистых стратегий, величина выигрыша игрока А останется неизменной. Запишем систему уравнений D.9) ( апХ1 + а21х2 = V, \ а12хх + а22х2 = V Так как хх + х2 = 1, то решение таково: ,. 1ЛЧ #22—^21 а11—#12 DЛ0) Хг = ; , АГ2 = I ' а I #11+^22— #12 а21 #11 ~Г #22— #12—#21 Подставляя значения хг и х2 в одно из уравнений D.8), получаем ,, «.V #11 #22— #12 #21 #11 + #22 — «12— #21 Составляя аналогичную систему уравнений, можно найти оптимальную стратегию для игрока В: /л 10ч а22~Д12 #11 ~ #21 D.12) уг= , у2 = . «11 + «22 — «12— «21 «И + «г?- «12 ~аМ А4 Гример. Найти решение игры, заданной матрицей Решение. Имеем а = 1, Р = 2; матрица не имеет седловой точки По формулам D.10)—D.12) находим оптимальные стратегии и цену игры: X = A/3; 2/3), V = B/3; 1/3), V = 5/3. Решение игры с матрицей B X 2) можно найти графически с помощью следующих построений. На оси абсцисс отложим отрезок, длина которого равна единице. Левый конец отрезка (точка х = 0) соответствует стратегии Аъ правый—стратегии А2. Промежуточные точки х соответствуют некоторым смешанным стратегиям (хъ х2), где хх = 1 — х9 х2 = х. На концах выбранного отрезка проведем прямые, перпендикулярные оси абсцисс, на них будем откладывать выигрыш при соответствующих чистых стратегиях. Если игрок В применяет стратегию Въ то выигрыш при использовании чистых стратегий Аг и Ла составляет соответственно ап и а21. Отложим эти точки на прямых и 284
§ 1. Предмет теории игр, основные понятия соединим полученные точки прямой Вф^ Если игрок А применяет смешанную стратегию, то его выигрышу соответствует некоторая точка М, лежащая на этой прямой (рис. 4.1). Аналогично можно построить прямую В2В2У соответствующую стратегии В2 игрока В (рис. 4.2). Ломаная ВгКВ2 — нижняя граница 1 I 0 1 — 1 1 - Лг -А < х> ± X 1 | X 1 Рис. 4.1 Рис. 4.2 выигрыша, получаемого игроком Л .Точка /(, в которой он максимален, определяет цену игры и ее решение. Для нахождения оптимальной стратегии игрока В воспользуемся формулами 1Во У1 = 1В94-ЬВ. #2 = 1Вх 1В2 + ^1 В справедливости этих соотношений можно убедиться, если в формулы, выражающие уг и у2 , подставить вместо ЬВ2 и ЬВ± их значения. Имеем: 1В2 = V — а22\ 1Вг = а21 — V. Выражая V из D.11), получаем значения уг и у2У совпадающие с D.12). Можно рассмотреть задачу минимизации верхней границы выигрыша для игрока Ву поменяв местами при решении игроков. А и В. Используя геометрическую интерпретацию, можно найти решение игр, заданных матрицей 2 X п. Каждой из п стратегий игрока В соответствует прямая. Построив эти прямые, находят нижнюю границу вы-< игрыша. Точка/С, лежащая на нижней границе, для которой величина выигрыша наибольшая, определяет цену игры и ее решение. При этом определяются активные стратегии игрока В (соответствующие им прямые пересекаются в точке К): из геометрических соображений можно найти значения у^ соответствующие активным стратегиям игрока В. Аналогично может быть решена игра с матрицей т х 2, только в этом случае строят верхнюю границу выигрыша и на ней определяют минимум. Следует отметить, что геометрические построения имеет смысл использовать для определения активных стратегий игроков. Затем решение игры можно получить с помощью формул D.10)—D.12) или соответствующие значения X, V и V находят из геометрических соображений. Формулы D.10)—D,12) можно использовать, так как из соот- 285
Глава IV. Элементы теории матричных игр ветствующей матрицы исключаются все стратегий, кроме активных, и она содержит две строки и два столбца. Решение игр с матрицей т X п, если гшп {/п, п) > 2, рассмотрено в следующем параграфе. Пример !. Найти решение игры, заданной матрицей 2 3 1 4 2 3 Решение. Прямые на рис. 4.3 соответствуют стратегиям игрока 5. Ломаная 53/С54 соответствует нижней границе выигрыша. Оптимальные стратегии игрока В — третья и четвертая. По формулам ( \в4 \В2 \в, к С к ^^*"^ \*** \У 1 1 1 N -^Г в, в, Вг в, / 'X Рис. 4.3 Рис. 4.4 D,10)—D.12) находим решение игры: X =@,4; 0,6); V =@; 0; 0,6; 0,4), V = 2,2. Следовательно, игрок А применяет стратегию А± с вероятностью 0,4, а стратегию Л2 — с вероятностью 0,6. При этом его выигрыш в среднем составит 2,2 ед. Пример 2. Найти решение игры, заданной матрицей Аб = Решение, Матрица имеет размерность 2X4, поэтому решение задачи находим для игрока В. На рис. 4.4 построены прямые, соответствующие стратегиям игрока Л. Жирной линией на рис. 4.4 изображена верхняя граница выигрыша игрока А. Отрезок ЫК определяет цену игры. Активными стратегиями для игрока А являются первая и четвертая. Решение игры таково: Х= G/8; 0} 0; 1/8), V = C/8; 5/8), V = 27/8, 286
§ 2. Сведен, матричной игры к задаче лин. програм. § 2. Сведение матричной игры к задаче линейного программирования Рассмотрим игру, матрица А которой имеет размерность т X п: #п #12 ••' ат #21 #22 * • • #2 \атх ат2.. -С1тп/ Матрица не содержит седловой точки, поэтому решение игры представлено в смешанных стратегиях: X = (х19 х2, ...»*т)> V = (#1,#2» •••> Уп)- При оптимальной стратегии игрока А выполняется условие D.7), а оптимальной стратегии игрока В удовлетворяет условие D.8). Таким образом, можно рассмотреть задачу отыскания оптимальной стратегии игрока Л, для которой имеют место следующие ограничения: ( а11х1 + а21х2 + ...-\-ат1хт>о, #12 *1+#22 Х2~\~ •• »Н~#т2 ХГП ^ У» D.13) #т ^ + #2/1 #2~Ь •• •~\~атпхт ^ Х}' Величина V (цена игры) неизвестна, однако можно считать, что V > 0. Последнее условие выполняется всегда, если элементы матрицы неотрицательны, а этого можно достигнуть, прибавляя ко всем элементам матрицы некоторое положительное число. Преобразуем систему ограничений, разделив все члены неравенств на V. В результате получаем D.14) (#11^1 + #21 '2+"-+#т1*т > 1» #12 *1 + #22 *2 ~Ь • • • + #ГП2 ?т > 1 , #т ^1 + #2П ^2+ • •• + #ттг^т^1» где ^ = хг1юу I = 1, 2, ..., т. Из условия х± + х2 + ... + хт = 1, следует, что D.15) *!+*«+ ...+/т = 1/о. Решение игры должно максимизировать значение V, значит, функция т 2 = 2*г должна принимать минимальное значение. Таким образом, получена задача линейного программирования: гшп 1 — 2^- ПРИ ограничениях D.14) и дополнительных условиях неотрицательности переменных 1г (I =1,2,..., т). Решая ее, находим значение ^ и величину 1/и, затем отыскиваем значения ^ = 1^. 287
Глава IV. Элементы теории матричных игр Для определения стратегии игрока В запишем следующие условия: ( ЯП У1 + а12 У2+- .-+«171 Уп < V* |АЧ аыУ1 + аъъУ9+ •** + а*пУп <». 10) < \ат1у1 + агту2 + ...-\-аптУп<ъ. Разделив все члены неравенств на у, получим [«и «1 + в12 "а+ •••+атИп < 1, D у?) \а21и1+а22и2+...+а9Пип<.1, I ат1 и>1-\-ат2 «2+ •• + атп "л ^> где и7- = у/у, / =г 1, 2, ..., д. Переменные иъ иъ ..., аЛ должны быть выбраны так, чтобы выполнялись условия D.17) и достигался максимум функции D.18) Г = их + и2 + .. +ип = XIV. Таким образом, для решения игры имеем пару двойственных симметричных задач линейного программирования. Используя свойство симметричности, можно решить одну из них, требующую меньших вычислений, а решение второй задачл найти на основании оптимального плана двойственной. Покажем теперь, что существуют решения заданных двойственных задач, а значит, и решение игры. Рассмотрим задачу, ограничения которой заданы в системе D.14), дополнив их условием неотрицательности переменных ^. При заданных ограничениях необходимо миними- т зировать функцию 1 = 2^. 1=1 Докажем, что задача имеет решение, т. е. существуют опорные планы задачи и минимизируемая функция ограничена снизу. При построении системы D.13), из которой получена система D.14), предполагалось, что платежная матрица преобразована так, что все ее элементы положительны. Обозначим наименьший элемент матрицы через ;л, тогда |л = гтпп гшп а^. Покажем, что план Т = (^ = 1/\л; /2 = 0; •...; 1Ш = 0) является опорным. Действительно, подставив указанные значения переменных в D.14), убеждаемся в том, что они удовлетворяют заданной системе ограничений. Ограниченность целевой функции снизу следует из неотрицательности переменных 1% и положительности коэффициентов при них в выражении 2. Следовательно, значение фукции 2 ограничено снизу нулем. 288
§ 2. Сведен, матричной игры к задаче лин. програм. Таким образом, существует решение рассмотренной задачи линейного программирования, а значит, имеют решение двойственная ей задача и соответствующая им матричная игра. Пример. Найти решение игры, заданной матрицей /4 3 4 2>\ А1 = | 3 4 6 5 \2 5 1 Ъ) Решение. Для определения оптимальной стратегии игрока А имеем следующую задачу линейного программирования: найти пип 2 = 1г + 1% + 1ъ при ограничениях ( 4^+3^ + 2/э >1, 3^ + 4^ + 5*3 > 1, 4/,+6/2 + C> 1, B^ + 5^ + 3^ > 1, Двойственная задача для определения оптимальной стратегии игрока В формулируется так: найти тах Н^г=а1 + ^2 + из + а4 при ограничениях 14иг + Зи2 + 4«3 + 2«4 •< I» 3«! + 4и2 + биа + 5«4 < 1, иу > 0, / =. 1, 2, 3, 4. 2иг + 5и2 + и3 + Зм4 < 1» В табл. 4.1 приведено решение задачи для игрока В. Предварительно, с помощью дополнительных неотрицательных переменных и^ ив Таблица 4.1 D.19) *,>0, * = 1, 2, 3. 1 1 2 3 т+1 1 1 2 3 т+1 1 2 3 т+1 Базис в5 в6 в7 с базиса 0 0 0 ^у-О вв 1 в7 1 0 0 ^—Су В1 в4 в7 1 1 0 И^--С/ в, 1 1 1 0 1/4 1/4 1/2 1/4 3/14 1/14 5/14 > в, Й1 3 2 —1 1 0 0 0 1 0 0 2/7 | 0 1 в2 3 4 5 — 1 3/4 7М 7/2 -1/4 1/2 1/2 5/2 0 1 в, 4 6 1 — 1 1 3 —1 0 4/7 6/7 — 19/7 3/7 1 в« ! 2 5 3 -1 1/2 ш 2 -1/2 0 1 0 0 в* 1 0 0 0 1/4 -3/4 -1/2 -1/4 5/14 —3/14 —1/14 0 __|_177 0 в8 0 1 0 0 0 1 0 0 -1/7 1 2/7 -4/7 ._ш__ 0 В; 0 0 1 0 0 0 1 0 0 0 1 0 289
Глава IV. Элементы теории матричных игр и щ неравенства были преобразованы в уравнения. Первоначальный базис образуют единичные векторы В5, В6 и В7. Оптимальный план задачи имеет вид V = C/14; 0; 0; 1/14), тах Г = \Ь = 2/7, V = 7/2, Учитывая соотношения между щ и у^ получаем оптимальную стратегию игрока В: V = C/4; 0; 0; 1/4). Оптимальный план задачи D.19) получим, используя оценки (га + 1)-й строки последней итерации, находящиеся в столбцах В5, Вб и В7: *х = 1/7 + 0 = 1/7, *2 = 1/7 + 0 = 1/7, и = 0 + 0 = 0. Та- ким образом, Т =A/7; 1/7; 0), следовательно, X = A/2; 1/2; 0). § 3. Игры с природой В рассмотренных задачах теории игр предполагалось, что в них принимают участие два участника, интересы которых противоположны. Поэтому действия каждого игрока направлены на увеличение выигрыша (уменьшение проигрыша). Однако во многих задачах, приводящихся к игровым, неопределенность вызвана отсутствием информации об условиях, в которых осуществляется действие. Эти условия зависят не от сознательных действий другого игрока, а от объективной действительности, которую принято называть природой.Такие игры называются играми с природой. Человек Л в играх с природой старается действовать осмотрительно, используя, например, минимаксную стратегию, позволяющую получить наименьший проигрыш. Второй игрок В (природа) действует совершенно случайно, возможные стратегии определяются как ее состояния (например, условия погоды в данном районе, спрос на определенную продукцию, объем перевозок, некоторое сочетание производственных факторов и т. д.). В некоторых задачах для состояний природы может быть задано распределение вероятностей, в других — оно неизвестно. Условия игры, как и в рассмотренных выше задачах, задаются в виде матрицы / аПа12 • • • #1п\ А I #21 а22 • • • #2тг I \ат1 ат2 • • • атп/ Элемент ац равен выигрышу игрока Л, если он использует стратегию Аи а состояние природы — Р^ В ряде случаев при решении игры рассматривают матрицу рисков К. Элементы матрицы Гц представляют собой разность между выигрышем, который получил бы игрок Л, если бы знал состояние Я7-, и выигрышем, который он получит в тех же условиях, применяя стратегию А и т. е. где §з = гпах ац 290
§ 3, Игры с природой Рассмотрим ряд критериев, используемых при решении игр с природой. При известном распределении вероятностей различных состояний природы критерием принятия решения является максимум математического ожидания выигрыша (минимум математического ожидания риска). Если вероятности состояния природы Р7- равны ^ (/=« п = 1,2, ..., я), ^] = 1, то выбор 1-й стратегии обеспечивает математи» п ческое ожидание выигрыша, равное ^а^а*. Принимается решение об п использовании стратегии, для которой имеет место тах 2^о'^- В ряде случаев, когда вероятности состояний природы неизвестны, для их оценки используют принцип недостаточного основания Лапласа, согласно которому все состояния природы полагаются равновероятными. Используют также и другие методы оценки вероятности для отдельных состояний природы. Однако во всех случаях нельзя утверждать, что принятое решение оптимальное, оптимальным оно является только относительно принятого распределения вероятностей состояний природы. Если вопрос распределения вероятностей состояний природы не решен, то используют следующие критерии. Максиминный критерий Вальда, который совпадает с критерием выбора стратегии, позволяющим получить нижнюю цену игры для двух лиц с нулевой суммой. Согласно этому критерию выбирается стратегия, гарантирующая при любых условиях выигрыши, не меньше чем тах тт аг*. Критерий минимального риска Севиджа, рекомендующий выбирать стратегию, при которой величина риска принимает наименьшее значение в самой неблагоприятной ситуации, т. е. пип тах г^. Как критерий Вальда, так и критерий Севиджа основаны на самой пессимистической оценке обстановки. В отличие от них критерий Гурвица учитывает как пессимистический, так и оптимистический подход к ситуации. Принимается решение о выборе стратегии, прк которой имеет место тах {К тт а^ + A — X) тах а*;}, где 0 ^ А, ^ 1. ' / / Значение X выбирают на основании субъективных соображений. Чем больше желание подстраховаться в данной ситуации, тем ближе к единице значение Я. Пример. Возможно строительство четырех типов электростанций; Ах (тепловых), Л2 (приплотинных), Аз (бесшлюзовых) и Л4 (шлюзовых). Эффективность каждого из типов зависит от различных факторов: режима рек, стоимости топлива и его перевозки и т. п. Предположим, что выделено четыре различных состояния, каждое из которых означает определенное сочетание факторов, влияющих на эффективность энергетических объектов. Состояния природы обозначим через 291
Глава IV. Элементы теории матричных игр Ри Р2, Рз и Р4. Экономическая эффективность строительства отдельных типов электростанций изменяется в зависимости от состояний природы и задана матрицей А7 = Согласно критерию Вальда тах тт а^ = тах {2; 2; 3; 1} = 3, I У следует предусмотреть строительство бесшлюзового ГЭС. Воспользуемся критерием Севиджа. Построим матрицу рисков: Покажем, например, как были получены элементы первого столбца матрицы К. Имеем тах ац = а31 = 8, поэтому гп = аз1 — ап = *= 3, Г21 = аз1 #21 — 6, Г31 = а31 Д31 ~ 0, ^41 = #31 #41 = 7. Согласно критерию Севиджа определяем гтп тах ги = тт (8; 6; Б; 7} = 5. В соответствии с этим критерием также предполагается решение А3. Воспользуемся критерием Гурвица. Положим X = 0,5; тогда тах {X тт аи + A — Я) тах аи) = тах {5; 7; 6; 5; 4,5} = 7, т. е. * у следует принять решение о строительстве приплотинных ГЭС. Если предположить известным распределение вероятностей для различных состояний природы, например считать эти состояния равновероятными (дх = д2 = д3 = дА = 1/4), то для принятия решения следует найти математические ожидания выигрыша: 11113 111 11 ^-2-Т+3*Т+4'Т+12*Т=5Т' М3 = 8.—+5.—+3. —+ Ю.—= 6—, 11113 4^4^ 4 ^ 4 4 Так как максимальное значение имеет УИ3, то следует выбрать решение Л8. 292
§ 3. Игры с природой Вопросы для самопроверки 1. Какие причины вызывают неопределенность результатов игры? 2. Как определить нижнюю и верхнюю цену матричной игры и какое соотношение существует между ними? 3. Сформулируйте основную теорему теории матричных игр. 4. Какие существуют методы упрощения игр? 5. Геометрические методы решения игр с матрицами 2ХяитХ2иих применение. 6. На чем основана связь матричной игры и задачи линейного программирования? 7. В чем состоит отлилие игры с природой от стратегических игр? 8. Перечислите основные критерии решения игр с природой,
Л ИТЕРАТУРА 1. Бакаев А. А., Ермольев 10. М.> Кузнецов Ю. Я., Кузубов В. Я. Математические методы в планировании и экономических расчетах. Киев, 1968. 2. Беллман Р. Динамическое программирование. М., 1960. 3. Беллман Р., Дрейфус С. Прикладные задачи динамического программирования. М., 1966. 4. Вентцель Е. С. Исследование операций. М., 1972, б. Гасс С. Линейное программирование. М., 1961. 6. Зухоеицкий С. Я., Авдеева Л. Я. Линейное и выпуклое программирование. М., 1964. 7. Калихман Я. Л. Линейная алгебра и программирование. М., 1967. 8. Канторович Л. В., Горстко А. Б. Математическое оптимальное программирование в экономике. М., 1968. 9. Карр Ч., Хоув Ч. Количественные методы принятия решений в управле- лении и экономике. М-, 1966. 10. Курош А. Г. Курс высшей алгебры. М., 1963. 11. Кюнци Г. П., Крелле В. Нелинейное программирование. М., 1965. 12. Роберте С. Динамическое программирование в процессах химической технологии и методы управления. М., 1965. 18. Терехов Л. Л. Экономо-математические методы. М., 1968. 14. Хеджи Дою. Нелинейное и динамическое программирование. М., 1967. 15. Эрроу К. Дж., Гурвиц Л., Удзава X. Исследования по линейному и нелинейному программированию. М., 1962. 16. Юдин Д. В., Гольштейн Е. Г. Задачи и методы линейного программирования. М., 1961. 17. Матричные игры /Под ред. Воробьева Н. И./М., 1961,
90 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Алгоритм симплексного метода 57 Ацикличность плана 109 Базис 21 — искусственный 67 Базисное решение 27 вырожденное 27 невырожденное 28 Базисный минор 27 Вектор нулевой 15 — состояния системы 270 — п-мерный 15 Векторное пространство двумерное 14 одномерное 14 . трехмерное 14 п-мерное 14 Векторы пропорциональные 16 Величина перераспределения 126 Выигрыш 278 Выпуклая линейная комбинация точек 35 Дельта-метод 124 Детерминированный процесс 270 Длина вектора 16 Дополнительное ограничение 99 Задача вероятностная 271 — двойственная 84, 85 — добычи полезного ископаемого 274 — замены оборудования 289 — использования ресурсов 76 сырья 8 — исходная 67, 84 — минимизация, расхода горячего 238 — многошаговая 231 — многоэтапная 231 — об оптимальных назначениях 138 — одношаговая 231 — одноэтапная 231 — определения кратчайших расстояний 243 — оптимального закрепления операций за станками 136 — оптимального использования оборудования 104 — оптимального раскроя материалов 101 — размещения предприятий 141 — распределения ресурсов 252, 273 — расширенная 66 — со смешанными ограничениями 72 — составления диеты 78 рациона 9 — стохастическая 271 ¦— увеличения производительности автотранспорта 134 Задачи двойственные несимметричные 85 симметричные 90 Зацикливание 74 Звено 243 295
Игра 278 — азартная 279 — вполне определенная 281 — множественная 279 — парная 279 — с природой 290 — стратегическая 279 Игроки 278 Интерпретация геометрическая 74, 234 — экономическая 84 Клетка занятая 109 — незанятая 109 — фиктивно занятая 116 Координаты системы 234 Коэффициенты разложения 21 Критерий Гурвица 291 — максиминный Вальда 291 — минимального риска Севиджа 291 Линейная зависимость 17) — комбинация 16 — независимость 17 Максимально линейно-независимая подсистема 18 Матрица игры 280 — проектирования 213 — рисков 291 — симметричная 186 Метод Баранкина — Дорфмана 199 — Била 191 — градиентный 211 Зойтендейка 280 Розена 212 — графический 44 — Гомори 98 — двойного предпочтения 112 — двойственный симплексный 93 — Жордапа — Гаусса 24 — запрещения перевозок 145 — искусственного базиса 66 — минимальной стоимости 111 — множителей Лагранжа 166 — полного исключения 24 — потенциалов 113 — северо-западного угла 109 — симплексный 51 — Франка — Вольфа 204 — функциональных уравнений 248 Многогранник выпуклый 37 — решений 39 Многогранника вершина 37 — грань 37 — ребро 37 Многоугольник выпуклый 37 — решений 39 Многоугольника вершина 37 — сторона 37 Множество выпуклое 35 — замкнутое 35 — неограниченное 36 — ограниченное 36 Множители Лагранжа 167 Модель математическая 9 Модуль вектора 17 Направление допустимое 220 — подходящее 221 — сопряженное 222 Направляющая строка 60, 197 Направляющий столбец 60, 196 Неопределенность 278 Область возможных состояний 234 — конечных состояний 233 — начальных состояний 233 Общая задача линейного программи* рования 33 векторная форма 33 матричная форма 33 Однородные грузы 134 Опорная плоскость 37 — прямая 36 Переменная базисная 27 — дополнительная II — искусственная 66 — свободная 27 Пересечение множеств 36 План задачи линейного программирования 34 опорный 34 вырожденный 34 296
невырожденный 34 оптимальный 34 Поведение 270 — оптимальное 270 Порожний пробег 134 Потенциалы поставщиков и потребителей 113 Программирование динамическое 131 — квадратичное 185 — линейное 7 — нелинейное 163 — целочисленное 97 Принцип Лапласа 291 — оптимальности Р. Беллмана 237 — поэтапного построения управления 235 — сопряженности 222 Разрешающий элемент 24, 60, 197 Ранг системы 19 Решение системы ограничений 38 Свойство аддитивности 231 Связь 243 Седловая точка матрицы 281 Сеть 243 — достаточно связанная 243 Система единичных векторов 23 — ограничений 8 несовместная 38 совместная 38 Скалярное произведение 15 Соседние угловые точки 74 Состояние конечное 232 — первоначальное 232 Столбец отмеченный 128 Стратегия 270 — активная 282 — максиминная 280 — минимаксная 280 — оптимальная 270, 279 — смешанная 281 Строка избыточная 126 — недостаточная 126 — нулевая 126 Теорема Куна —Танкера 183 Точка граничная 35 — крайняя 35 — седловая 183 -— угловая 35, 36 Точки соседние 243 Транспортная задача 106 закрытая модель 107 • открытая модель 121 Управление 231 — условно-оптимальное 236 Управляемый процесс 231 Условия Куна —Таккера 183 — оптимальности плана 57, 115 Фиктивный поставщик 122 — потребитель 122 Форма квадратичная 185 неопределенная 186 отрицательно определенная 186 положительно определенная 186 Формула Тейлора 173 Функция вогнутая 172 — выпуклая 172 — Лагранжа 167 — цели 9, 163 Цена игры 280 верхняя 280 нцжняя 280 Цены учетные, неявные 85 Цепочка перераспределения 127 Цикл 109 Экстремум глобальный 164 — локальный 164 Элементарные преобразования 23
ОГЛАВЛЕНИЕ Стр. Предисловие 3 Введение 4 Глава I Линейное программирование § 1. Общие понятия 7 1. Построение математических моделей простейших экономических задач (8). 2. Замена неравенств уравнениями A1) § 2. Линейные векторные пространства 14 1. Понятие /г-мерного пространства A4). 2. Линейная зависимость векторов A6). 3. Базис /г-мерного векторного пространства B1). 4. Система единичных векторов я-мерного векторного пространства B2). б. Решение системы линейных уравнений методом Жордана— Гаусса B4). 6. Разложение векторов по базису, переход от одного базиса к другому C0)- § 3. Общая задача линейного программирования 33 1. Формулировка задачи C3). 2. Выпуклые множества C4). 3. Геометрическая интерпретация задачи линейного программирования C8). 4. Свойства решений задачи линейного программирования D0) § 4. Графический метод решения задачи линейного программирования 44 1. Область применения D4). 2. Примеры задач, решаемых графическим методом D6) § 5. Симплексный метод решения задачи линейного программирования 51 1. Построение опорных планов E2). 2. Отыскание оптимального плана. Условия оптимальности E6). 3. Алгоритм симплексного метода E7). 4. Метод искусственного базиса F6). 5. Задача со смешанными ограничениями G2). 6. Геометрическая интерпретация симплексного метода G4) § 6. Применение общей задачи линейного программирования к решению некоторых экономических задач . 76 1. Задача использования ресурсов G6). 2. Задача составления диеты G8) § 7. Двойственность в линейном программировании ...... 84 1. Понятие двойственности (84). 2. Несимметричные двойственные задачи (85). 3. Симметричные двойственные задачи (90). 4. Виды математических моделей двойственных задач (92). 5. Двойственный симплексный метод (93) 298
§ 8. Целочисленное программирование 97 1. Постановка задачи и метод решения (98), 2. Составление дополнительного ограничения (99). 3. Некоторые экономические задачи целочисленного программирования A01) § 9. Транспортная задача линейного программирования 106 1. Постановка задачи и ее математическая модель A06). 2. Построение первоначального опорного плана A08). 3. Метод потенциалов A13). 4. Открытая модель транспортной задачи A21). 5. Дельта-метод решения транспортной задачи A24) § 10. Приложения транспортной задачи к решению некоторых экономических задач 133 1. Увеличение производительности автомобильного транспорта за счет минимизации порожнего пробега A34). 2. Оптимальное закрепление за станком операций по обработке деталей A36). 3. Оптимальные назначения, или проблема выбора A38). 4. Задачи размещения с учетом транспортных и производственных затрат A41). 5. Решение задач с помощью метода запрещения перевозок A45) § 11. Параметрическое линейное программирование . , » 150 1. Задача с параметром в целевой функции A50). 2. Задача с параметром в свободных членах системы ограничений A56). Глава II Нелинейное программирование § 1. Общая задача нелинейного программирования ,.,..,, 163 § 2. Метод множителей Ла^ранжа 166 § 3. Выпуклые и вогнутые функции 172 § 4. Приближенные методы решения задач с сепарабельными функциями 175 § 5. Теорема Куна — Таккера 183 § 6. Квадратичное программирование 185 1. Метод Била A91). 2. Метод Баранкина — Дорфмаиа A99). 3. Метод Франка — Вольфа B04). 4. Двойственность в квадратичном программировании B09) § 7. Градиентные методы решения задач нелинейного программирования 211 1. Метод проектируемых градиентов Розена B12). 2. Метод допустимых направлений Зойтендейка B20) Глава III Динамическое программирование § 1. Основные понятия и постановка задачи динамического программирования -. . . , 231 1. Понятие динамического программирования B31). 2. Общая постановка задачи динамического программирования B34). 3. Геометрическая интерпретация задачи динамического программирования B34) 4 4. Принцип поэтапного построения оптимального управления B35) § 2. Простейшие экономические задачи, решаемые методом динамического программирования 235 1. Задача о минимизации расхода горючего самолетом при наборе высоты и скорости. Постановка задачи B38). 2. Задача определения кратчайших расстояний по заданной сети B43) § 3. Метод функциональных уравнений * и* 248 § 4. Экономические задачи, решаемые методом функциональных уравнений 252 1. Задача распределения ресурсов B52). 2. Задачи замены оборудования B59) 299
§ 5. Детерминированные процессы . . ...... 270 § 6. Простейшие стохастические задачи динамического программирования 271 1. Задача распределения ресурсов в стохастическом варианте B73). 2. Задача добычи полезного ископаемого B74) Глава IV Элементы теории матричных игр § 1. Предмет теории игр, основные понятия » « » 278 § 2. Сведение матричной игры к задаче линейного программирования 287 § 3. Игры с природой 290 Литература 294 Предметный указатель 295
Кузнецов Юрий Николаевич, Кузубов Владимир Илларионович, Волощенко Анатолий Борисович МАТЕМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Зав. редакцией литературы по физике и математике Гридасова Е. С. Редактор Яковлева Ж. И. Младший редактор Майкова Н. П. Художественный редактор Пономаренко В. И. Художник Рокамболь С. М. Технический редактор Гарина Т. Д. Корректор Косинова Р. К. ИБ № 2159 Изд. № ФМ-659. Сдано в набор 26.10.79. Подп. в печать 29.04 80 Формат 60Х90!/1б. Бум. тип. № 3. Гарнитура литературная. Печать высокая. Объем 19 усл. печ. л. 16,81 уч.-изд. л. Тираж 75 000 экз. Зак. № 1428. Цена 70 коп. Издательство «Высшая школа», Москва, К-51, Неглинная ул., д. 29/14 Московская типография № 4 Союзполиграфпрома Государственного комитета СССР по делам издательств, полиграфии и книжной торговли Москва 129041, Б. Переяславская ул., 46