ГЛАВА 8. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ 8.1. Задачи математического и линейного программирования Исследование различных процессов, в том числе и экономических, обычно начинается с их моделирования, т.е. представления реального процесса через математические соотношения. Для этого составляются уравнения и неравенства, которые связывают между собой различные переменные и постоянные показатели исследуемого процесса, образуя систему ограничений. Затем в составленных соотношениях выделяются такие переменные, меняя которые можно получить наибольшее или наименьшее значение основного показателя, характеризующего процесс, например, прибыли, дохода, затрат и т.п. Соответствующие методы, позволяющие решать указанные задачи, объединяются под общим названием «математическое программирование». Несмотря на разнообразие смыслового содержания задач математического программирования, все они с формальной точки зрения сводятся к одной общей постановке: требуется найти значения переменных x1, x2 ,..., xn , доставляющие максимум (минимум) заданной функции (8.1) Z ( X ) f ( x1 , x2 ,..., xn ) max (min) и удовлетворяющие в то же время системе условий вида (8.2) i ( x1 , x2 ,..., xn ) bi (или , или ), (i 1, 2,..., m) . Эти условия (8.2) называются ограничениями задачи. В каждом из них, естественно, должен сохраняться какой-либо один знак: или =, или , или . Множество значений переменных X ( x1 , x2 ,..., xn ) , удовлетворяющих всем ограничениям задачи, составляет её область определения. Функция Z ( X ) в формуле (8.1) называется целевой функцией. Основными предположениями, относящимися к рассматриваемой постановке задачи, являются следующие: вид функций Z ( X ) и i известен, постоянные bi заданы, величины m и n между собой, вообще говоря, не связаны и могут принимать произвольные целые значения m 0 , n 1 . Встречаются также ограничения иного вида, которые оговариваются специально. К ним относятся требования неотрицательности и целочисленности всех переменных x1, x2 ,..., xn или их части. В основу существующей классификации задач математического программирования положены различия в характере функций Z ( X ) и i , встречающиеся в практических приложениях. По характеру указанных функций все задачи делятся на задачи линейного программирования и задачи нелинейного программирования. 147 К задачам линейного программирования относятся такие, в которых и целевая функция Z ( X ) , и все функции i (i 1, 2, ..., m) являются линейными относительно переменных x j ( j 1, 2, ...,n) , т.е. имеют вид: n Z ( X ) c1 x1 c2 x2 ... cn xn c j x j , (8.3) j 1 n i ai 1 x1 ai 2 x2 ... ai n xn aij x j , (i 1, 2, ..., m) . (8.4) j 1 Здесь c j и aij – известные постоянные коэффициенты. Из дополнительных ограничений обычно присутствует требование x j 0 . Если же дополнительно поставлено условие, что все или некоторые x j целые числа, то возникает задача целочисленного (или дискретного) линейного программирования. Методы её решения имеют свои особенности, что не позволяет отождествлять «целочисленную» и «простую» задачи. Таким образом, задачи линейного программирования относятся к задачам на условный экстремум функции n переменных, которые, однако, не могут быть решены классическими методами математического анализа ввиду линейности рассматриваемых функций. Так как целевая функция Z ( X ) в формуле (8.3) – линейная функция, то в общем случае имеем Z 0, x j ( j 1, 2, ..., n) , (8.5) следовательно, внутри области определения функции Z ( X ) экстремальных точек нет, и наибольшие (наименьшие) значения линейной функции находятся на границе области, которая образована системой ограничений вида формул (8.2), где все i – линейные функции вида формул (8.4). Математическое программирование как наука возникло в 30-е годы XX века для решения экономических задач. Советским экономистом А.Н. Толстым в 1930 году впервые была сформулирована и решена задача по составлению оптимального плана перевозок, позволяющего минимизировать суммарный километраж. Слово «программирование» означает процедуру перебора переменных x j , определяющих оптимальный план решения экономической задачи. Термин «линейное программирование» впервые появился в 1951 году в работах американского экономиста Дж. Данцига, который разработал и опубликовал основной метод решения задач линейного программирования – симплексный метод. Наиболее интенсивно линейное программирование развивалось в СССР и в США в 1955-65 годах. В 1975 году советскому 148 математику академику Л.В. Канторовичу и американскому экономисту Т. Купмансу была присуждена Нобелевская премия по экономике за разработку теории оптимального использования ресурсов. Одновременно развивались методы решения задач нелинейного программирования, в которых либо целевая функция Z ( X ) , либо ограничения i , либо и то и другое нелинейны. В ряде задач линейного и нелинейного программирования экономический процесс зависит от времени и проходит в несколько этапов. Методы решения таких многоэтапных задач экономики представляют собой динамическое программирование. В современном понимании математическое программирование есть область прикладной математики, которая является теоретической основой решения задач оптимального планирования экономических процессов. 8.2. Экономико-математические модели простейших задач линейного программирования 1. З а д а ч а и с п о л ь з о в а н и я р е с у р с о в (п л а н и р о в ан и я п р о и з в о д с т в а). Производственная задача об оптимальном использовании ресурсов является одной из важнейших задач линейного программирования. Рассмотрим её экономическую постановку. Пусть предприятие выпускает n различных видов изделий P1, P2, …, Pn , для изготовления которых требуется m различных типов ресурсов S1, S2, …, Sm . Ресурсами могут быть различные виды сырья, вспомогательные материалы, полуфабрикаты, электроэнергия, запасы машинного времени, людские ресурсы и т.п. Объём каждого типа ресурсов всегда ограничен и в планируемый период составляет соответственно b1, b2, …, bm условных единиц. Считаются известными также технологические коэффициенты aij , показывающие, сколько единиц i-го ресурса Si требуется для производства единицы j-го вида изделия Pj (i 1, 2, ..., m ; j 1, 2, ..., n) . Кроме того, считается известной прибыль c j , получаемая от реализации (продажи) единицы изделия вида Pj , j 1, 2, ...,n . В планируемый период все экономические показатели bi , aij и c j предполагаются постоянными. Требуется составить такой оптимальный план выпуска продукции, при котором прибыль от её реализации будет наибольшей. Все данные производственной задачи представим для наглядности в виде таблицы 1. 149 Типы ресурсов S1 Технологические коэффициенты aij – число единиц ресурсов Si, затрачиваемых на изготовление единицы изделия Pj P1 P2 … Pn … a11 a12 a1n Таблица 1 Объёмы запасов ресурсов b1 S2 a21 a22 … a2 n b2 … Sm … am1 … am 2 … … … am n … bm Прибыль от реализации ед. изделия c1 c2 … cn – Составим математическую модель задачи, т.е. выразим экономические требования в виде соответствующих зависимостей – уравнений, неравенств и функций. Пусть предприятие предполагает изготовить и выпустить на реализацию x1 единиц изделий вида P1, x2 единиц изделий вида P2, …, xn единиц изделий вида Pn . Тогда на все изделия всех видов P1, P2, …, Pn израсходуется ресурсов первого типа S1 в количестве (8.6) a11x1 a12 x2 ... a1n xn b1 . Аналогичные неравенства должны выполняться и для остальных типов ресурсов S2, S3, …, Sm . Следует учитывать также, что все значения x j 0 , j 1, 2, ...,n , так как x j есть количество единиц выпускаемых изделий вида Pj . Общая прибыль, получаемая от реализации (продажи) всей продукции P1, P2, …, Pn , производимой соответственно в количестве x1, x2 ,..., xn единиц, представляется в виде линейной функции (8.7) Z ( X ) c1x1 c2 x2 ... cn xn . Требуется составить такой оптимальный план объёма выпускаемой продукции X ( x1 , x2 ,..., xn ) , при котором прибыль Z ( X ) будет наибольшей. Функция Z ( X ) выражает конечную цель производства – получение наибольшей прибыли. Поэтому её называют целевой или функцией цели. Таким образом, математическая модель производственной задачи использования ресурсов в общей постановке имеет следующую формулировку: требуется найти такой план объёма выпускаемой продукции X ( x1 , x2 ,..., xn ) , удовлетворяющий системе ограничений 150 a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 21 1 22 2 2n n 2 ................................... ......... am1 x1 am 2 x2 ... amn xn bm (8.8) и условиям (8.9) x1 0, x2 0, ..., xn 0 , при котором целевая функция (8.10) Z ( X ) c1x1 c2 x2 ... cn xn принимает наибольшее значение: Z ( X ) max . 2. З а д а ч а с о с т а в л е н и я р а ц и о н а (задача о диете, задача о смесях, задача о закупке ресурсов). Задача имеет следующее экономическое содержание. Требуется составить ежедневный рацион (план) питания на основе имеющихся видов продуктов так, чтобы количество необходимых для потребления питательных веществ, например, жиров, углеводов, белков, витаминов и т.п. было бы не менее установленного предела, и чтобы общая стоимость используемых продуктов была минимальной. Составим экономическую модель задачи. Пусть имеется n различных видов продуктов P1, P2, …, Pn и перечень из m питательных веществ S1, S2, …, Sm , необходимых для составления рациона. Обозначим через aij содержание в весовых единицах i-го питательного вещества Si в единице j-го продукта Pj , а через bi обозначим минимальную суточную потребность в i-м питательном веществе Si. Через xj обозначим количество каждого вида продуктов Pj в весовых единицах в ежедневном рационе, тогда x j 0 , j 1, 2, ...,n . Кроме того, будем считать известной стоимость c j весовой единицы j-го продукта Pj , j 1, 2, ...,n . Все данные задачи представим для наглядности в виде таблицы 2 Таблица 2 Питательные Коэффициенты aij – количество i-го Минимальвещества вещества в единице j-го продукта Pj ная суточная потребность P1 P2 … Pn S1 … a11 a12 b1 a1n S2 a21 a22 … a2 n b2 … Sm … am1 … am 2 … … … am n … bm Стоимость 1 кг продукта Pj c1 c2 … cn – 151 Для первого вида питательного вещества S1 неравенство – ограничение примет вид (8.11) a11x1 a1 2 x2 ... a1 n xn b1 . Аналогично запишутся неравенства и для остальных питательных веществ S2, S3, …, Sm . Общие затраты на весь рацион питания выражаются линейной функцией (8.12) Z ( X ) c1x1 c2 x2 ... cn xn , которую нужно минимизировать. В результате математическая модель задачи составления рациона питания имеет следующую формулировку: требуется составить дневной рацион X ( x1 , x2 ,..., xn ) , удовлетворяющий системе ограничений a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 21 1 22 2 2n n 2 (8.13) . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . ......... am1 x1 am 2 x2 ... amn xn bm и условиям (8.14) x1 0, x2 0, ..., xn 0 , при котором функция цели (8.15) Z ( X ) c1x1 c2 x2 ... cn xn , выражающая стоимость продуктов питания P1, P2, …, Pn, принимает наименьшее значение: Z ( X ) min . 8.3. Каноническая форма задачи линейного программирования При составлении математических моделей рассмотренных экономических задач ограничения на объёмы запасов ресурсов и на минимальную суточную потребность питательных веществ были получены в виде системы неравенств. Если же потребовать, чтобы в процессе производства какое-то сырьё или ресурс использовалось полностью, а в суточном рационе должно содержаться точное количество какогонибудь питательного вещества, то соответствующее им ограничение примет вид уравнения. При решении систем линейных неравенств с n неизвестными возникают большие математические трудности, поэтому от ограничений – неравенств переходят к ограничениям в форме уравнений. Рассмотрим линейное неравенство с n неизвестными (8.16) a1 x1 a2 x2 ... an xn b . 152 Прибавим к его левой части неотрицательную величину xn 1 0 такую, чтобы получилось равенство: (8.17) a1x1 a2 x2 ... an xn xn1 b , где xn1 b a1x1 a2 x2 ... an xn . Неотрицательная переменная xn1 0 называется дополнительной переменной. В задаче об использовании ресурсов она имеет экономический смысл остатка ресурса, не использованного в производстве. Если наоборот, исходное линейное неравенство имеет вид (8.18) a1x1 a2 x2 ... an xn b , то из левой части вычтем неотрицательную дополнительную переменную xn 1 0 и опять получим равенство a1x1 a2 x2 ... an xn xn1 b , (8.19) где xn1 a1x1 a2 x2 ... an xn b . В задаче о составлении рациона дополнительная переменная имеет экономический смысл избытка продукта, не использованного в рационе, а точнее – избытка питательного вещества определённого типа. Следовательно, если система ограничений задачи линейного программирования содержит неравенства, то, вводя в каждое из них свою неотрицательную дополнительную переменную xni 0 , получим систему уравнений, эквивалентную исходной системе неравенств. При этом целевая функция Z ( X ) c1x1 c2 x2 ... cn xn остаётся прежней, так как каждая дополнительная переменная xni войдёт в неё с коэффициентом, равным нулю. После введения дополнительных переменных xni 0 обе задачи, рассмотренные в п. 8.2, можно записать в виде одной основной задачи линейного программирования в канонической форме: (8.20) Z ( X ) c1x1 c2 x2 ... cn xn max (min) , a11 x1 a12 x2 ... a1n xn xn1 b1 , a x a x ... a x x b , 21 1 22 2 2n n n 2 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... am1 x1 am 2 x2 ... amn xn xnm bm , x j 0, j 1, 2, ..., n, n 1, n 2, ..., n m ; (8.21) (8.22) bi 0, i 1, 2, ..., m . Отметим, что правые части всех уравнений системы (8.21) всегда можно считать неотрицательными, т.е. bi 0 , так как в противном случае при bi 0 соответствующее уравнение можно умножить на (–1) и изменить знак правой части на противоположный. 153 Иногда возникает необходимость перейти в задаче от нахождения наименьшего значения (или min) к нахождению наибольшего значения (или max), или наоборот. Для этого достаточно изменить знаки всех коэффициентов cj целевой функции в формуле (8.20) на противоположные, а в остальном задачу оставить без изменения. Оптимальные решения полученных таким образом задач на максимум и минимум совпадают, а значения целевых функций при оптимальных решениях отличаются только знаком. Это позволяет решать задачи на максимум и на минимум целевой функции одним единым методом. 8.4. Выпуклые множества Свойства решений задачи линейного программирования тесно связаны со свойствами выпуклых множеств. Пусть на плоскости Ox1x2 заданы две точки A1(x11, x21) и A2(x12, x22), определяющие направленx2 A2 ( x12 , x22 ) ный отрезок A1 A2 . В записи координат xij первый индекс i – номер коорA( x1 , x2 ) динаты, а второй индекс j – номер точки. Найдём координаты произвольной A1 ( x11, x21) точки A(x1, x2) данного отрезка через 0 x1 координаты его концов A1 и A2. Введём Рис.64 два коллинеарных вектора A1 A и A1 A2 : (8.23) A1 A ( x1 x11, x2 x21) , A1 A2 ( x12 x11, x22 x21) . Эти векторы одинаково направлены, поэтому связаны равенством A1 A t A1 A2 , 0 t 1 . (8.24) В координатной форме векторное равенство (8.24) равносильно системе двух скалярных равенств: x1 x11 t ( x12 x11) , x (1 t ) x11 t x12 , (8.25) 1 x2 x21 t ( x22 x21) , x2 (1 t ) x21 t x22 . Полагая 1t 1 , t 2 , получим x1 1 x11 2 x12 , (8.26) x2 1 x21 2 x22 , 1 0, 2 0, 1 2 1 . (8.27) Учитывая, что в системе (8.26) координаты x1 и x2 точки A являются суммами одноимённых координат точек A1 и A2, умноженных соответственно на числа 1 и 2 , запишем систему (8.26) в виде одного буквенного равенства (8.28) A 1 A1 2 A2 , 154 (8.29) 1 0, 2 0, 1 2 1 . При этом подразумевается, что в равенстве (8.28) все операции выполняются покоординатно как в системе (8.26). О п р е д е л е н и е 1. Точка A, для которой выполняется равенство (8.28) при условиях (8.29), называется выпуклой линейной комбинацией точек A1 и A2. При 1 1 и 2 0 точка A совпадает с началом отрезка точкой A1. При 1 0 и 2 1 точка A совпадает с концом отрезка точкой A2. При иных значениях 1 и 2 , удовлетворяющих условиям (8.29), точка A задаёт все внутренние точки отрезка A1 A2 . Соотношения (8.28) и (8.29) верны независимо от размерности пространства и числа координат точек A, A1, A2. Точки A1 и A2 называются угловыми точками отрезка. Из определения 1 выпуклой линейной комбинации двух точек видно, что угловая точка не может быть представлена как выпуклая линейная комбинация двух других точек этого отрезка. Обобщением понятия выпуклой линейной комбинации двух точек, как отрезка их соединяющего, является понятие выпуклого множества как выпуклой линейной комбинации точек его составляющих. О п р е д е л е н и е 2. Пусть имеется n точек A1, A2, …, An. Произвольная точка A называется их выпуклой линейной комбинацией, если выполняются соотношения (8.30) A 1 A1 2 A2 ... n An , n j 0 ( j 1, 2, ..., n), j 1 . (8.31) j 1 Множество точек называется выпуклым, если оно содержит выпуклую линейную комбинацию любых своих точек. Г е о м е т р и ч е с к и й с м ы с л определения выпуклого множества состоит в том, что вместе с двумя любыми своими точками ему принадлежит и прямолинейный отрезок, их соединяющий. Покажем это на следующих рисунках. C B A M N D M M N N M N E Выпуклые множества Невыпуклые множества Рис.65 Рис.66 Примерами других выпуклых множеств являются прямолинейный отрезок, квадрат, круг, прямая, полуплоскость, куб, шар, полупространство и другие. 155 Угловыми точками выпуклого множества называются точки, не являющиеся выпуклой линейной комбинацией двух произвольных точек множества. Например, угловыми точками треугольника являются его вершины, угловыми точками круга – точки окружности. Таким образом, выпуклое множество может иметь конечное или бесконечное число угловых точек, но может не иметь их совсем. Например, прямая, плоскость, полуплоскость, пространство, полупространство угловых точек не имеют. Пусть F – пересечение, т.е. общая часть, двух выпуклых множеств F1 и F2. Возьмём в F две точки A1 и A2 и соединим их отрезком. F F1 A2 F2 A1 Рис.67 Так как отрезок A1 A2 принадлежит одновременно и множествам F1 и F2, которые являются по условию выпуклыми, то множество F есть также выпуклое множество. Отсюда следует, что пересечение (т.е. общая часть) любого числа выпуклых множеств есть также выпуклое множество. 8.5. Многоугольники и многогранники Одним из основных понятий теории линейного программирования является понятие выпуклого многогранника в n-мерном пространстве, частными случаями которого являются при n 1 отрезок на прямой, при n 2 выпуклый многоугольник на плоскости. О п р е д е л е н и е 1. Выпуклым многоугольником называется выпуклое замкнутое ограниченное множество точек на плоскости, имеющее конечное число угловых точек, называемых вершинами. Прямолинейные отрезки, соединяющие две вершины и образующие границу, называются сторонами многоугольника. Опорной прямой выпуклого многоугольника называется прямая, имеющая с многоугольником, расположенным по одну сторону от неё, хотя бы одну общую точку. Покажем на рис.68 некоторые опорные прямые многоугольника. Здесь пряM мые PQ и MN являются опорными для выпуB C клого многоугольника ABCDE. P N A О п р е д е л е н и е 2. Выпуклым многогранниD ком называется выпуклое замкнутое ограниченE ное множество точек пространства, имеющее Q конечное число угловых точек, называемых его Рис.6 8 вершинами. Многоугольники, ограничивающие 156 многогранник, называются его гранями, а отрезки, по которым пересекаются грани, называются рёбрами. Опорной плоскостью многогранника называется плоскость, имеющая с многогранником, расположенным по одну сторону от неё, хотя бы одну общую точку. Понятие выпуклого многогранника в n-мерном пространстве получают путём обобщения определения 2. Будем называть упорядоченный набор n чисел X ( x1 , x2 ,..., xn ) точкой n-мерного пространства, в котором числа x1 , x2 ,..., xn называются координатами точки X . Такое обобщение имеет смысл, так как для характеристики экономического объекта двух или трёх числовых показателей обычно не хватает и необходимо брать n чисел, где n 3 . Множество всех точек X ( x1 , x2 ,..., xn ) образует n-мерное точечное (векторное) пространство. При n 3 точки и фигуры n-мерного пространства не имеют реального геометрического смысла и все исследования объектов этого пространства необходимо проводить в аналитической форме. Тем не менее оказывается удобным и в этом случае использовать известные геометрические понятия для представления объектов n-мерного пространства. Рассмотрим теорему о представлении выпуклого многогранника в n-мерном пространстве. Т е о р е м а. Выпуклый n-мерный многогранник является выпуклой линейной комбинацией своих угловых точек. Д о к а з а т е л ь с т в о. Для случая n 1 , т.е. отрезка на плоскости, утверждение теоремы доказано формулой (8.28) при условиях (8.29) в п.8.4. Для случая n 2 , т.е. многоугольника на плоскости, предположим, что точка X есть внутренняя точка выпуклого многоугольника с вершинами X 1 , X 2 ,..., X n (рис.69). Из точки X 1 проведём отрезки, соединяющие её с остальными вершинами. ТоX2 гда многоугольник будет разбит на ( n 2 ) N X X 3 треугольников. Без ограничения общности X1 можно предположить, что точка X попала в X 1 X 2 X 3 . Проведём через точку X прямую Xn X N на сторону X X . Тогда точка X будет .... .. Xj Рис.6 9 . .. . 1 2 3 являться выпуклой линейной комбинацией точек X 1 и N , т.е. будет задаваться формулой (8.28) при условиях (8.29): (8.32) X t1 X1 t2 N , где t1 0, t2 0, t1 t2 1 . Точка N , в свою очередь, есть выпуклая линейная комбинация точек X 2 и X 3 : N t3 X 2 t4 X 3 , где t3 0, t4 0, t3 t4 1 . (8.33) 157 Подставляя N из равенства (8.33) в равенство (8.32), получаем X t1 X1 t 2 (t3 X 2 t 4 X 3 ) t1 X 1 t2t3 X 2 t2t4 X 3 . Обозначая t1 1 , t2t3 2 , t2t 4 3 , окончательно имеем X 1 X1 2 X 2 3 X 3 , (8.34) (8.35) где 1 0, 2 0, 3 0 ; 1 2 3 t1 t2 (t3 t4 ) t1 t2 1 . (8.36) Согласно определению 2 п.8.4 равенство (8.35) при условиях (8.36) означает, что точка X является выпуклой линейной комбинацией вершин X 1 , X 2 , X 3 треугольника. Если положить, например, 1 0 , то это означает, что точка X совпадает с точкой N и лежит на стороне X 2 X 3 . В этом случае X 2 X 2 3 X 3 , 1 0, 2 0, 3 0 ; 2 3 1 . (8.37) Добавляя к правой части равенства (8.35) остальные (n 3) вершины X 4 , X 5 ,..., X n , умноженные на нуль, окончательно получим n X 1 X 1 2 X 2 3 X 3 0 X 4 ... 0 X n j X j , (8.38) j 1 n j 0 ( j 1, 2, ..., n), j 1 . (8.39) j 1 Таким образом, точка X является выпуклой линейной комбинацией всех угловых точек многоугольника. Аналогичным образом, доказанная для выпуклого многоугольника, теорема обобщается на случай выпуклого n – мерного многогранника при n > 2. Теорема доказана. С л е д с т в и е. Из теоремы вытекает, что выпуклый многогранник порождается своими угловыми точками (вершинами): отрезок – двумя точками, треугольник – тремя точками, n – угольник на плоскости – n точками и т.д. В тоже время выпуклая многогранная область, содержащая бесконечно удалённую точку, являясь неограниченным множеством, не определяется однозначно своими угловыми точками: любую её точку нельзя представить в виде выпуклой линейной комбинации угловых точек. 8.6. Геометрическая интерпретация задачи линейного программирования Рассмотрим стандартную задачу линейного программирования, система ограничений которой задана в форме неравенств. Найти экстремум целевой функции Z ( X ) c1 x1 c2 x2 ... cn xn max (min) (8.40) при ограничениях 158 a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 21 1 22 2 2n n 2 .................................... .......... am1 x1 am 2 x2 ... amn xn bm , (8.41) x j 0 ( j 1, 2, ...,n) . (8.42) Допустимым решением (или допустимым планом) задачи линейного программирования называется любое решение X ( x1 , x2 ,..., xn ) , удовлетворяющее системе ограничений (8.41) и условиям неотрицательности (8.42). Множество допустимых решений (планов) задачи образует область допустимых решений – ОДР. Термины «решение» и «план» – синонимы. Термин «решение» используется, обычно, когда говорят о математическом решении задачи. Термин «план» используется, когда говорят о содержательной экономической интерпретации задачи. Если система (8.41) при условии (8.42) имеет хотя бы одно решение, она называется совместной, в противном случае – несовместной. Рассмотрим сначала частный случай совместной системы (8.41) при n 2 : a11 x1 a12 x2 b1 , a x a x b , 21 1 22 2 2 ........................... am1 x1 am 2 x2 bm , x1 0, x2 0 . (8.43) (8.44) Каждое неравенство системы (8.43) на плоскости Ox1x2 геометрически определяет полуплоскость с граничной прямой (8.45) ai1 x1 ai 2 x2 bi , (i 1, 2, ...,m) . Условия (8.44) определяют первый квадрант с граничными прямыми x1 0 и x2 0 , совпадающими с осями Ox1 и Ox2. Для совместной системы (8.43) указанx2 ai1 x1 ai 2 x2 bi ные полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть в IОДР м квадранте, которая является выпуклым мноx1 0 гоугольником решений – ОДР (рис.70). x2 0 0 x1 В частных случаях многоугольник может вырождаться в точку, отрезок, луч или Рис. 70 неограниченную многоугольную область. Если в совместной системе ограничений (8.41) и (8.42) n 3 , она принимает вид: 159 a11 x1 a12 x2 a13 x3 b1 , a x a x a x b , 21 1 22 2 23 3 2 ........................................ am1 x1 am 2 x2 am3 x3 bm ; (8.46) (8.47) x1 0, x2 0, x3 0 . Каждое неравенство системы (8.46) геометрически определяет полупространство трёхмерного пространства Ox1x2x3, граничная плоскость которого есть (8.48) ai1 x1 ai 2 x2 ai 3 x3 bi , (i 1, 2, ...,m) . Условия (8.47) определяют 1-й октант с граничными плоскостями x j 0 , j 1, 2, 3, совпадающими с координатными плоскостями. Если система ограничений (8.46) и (8.47) совместна, то эти полупространства, как выпуклые множества, пересекаясь, образуют в 1-м октанте общую часть, которая образует выпуклый многогранник решений – ОДР. В частных случаях многогранник решений может вырождаться в точку, отрезок, луч или в многогранную неограниченную область. Если в системе ограничений (8.41) имеем n 3 , то каждое её неравенство определяет полупространство n – мерного пространства с граничной гиперплоскостью (8.49) ai1 x1 ai 2 x2 ... ai n xn bi , (i 1, 2, ...,m) , а ограничения x j 0 ( j 1, 2, ...,n) определяют полупространства с граничными гиперплоскостями x j 0 ( j 1, 2,...,n) , совпадающими с координатными. Если система ограничений (8.41) и (8.42) совместна, то она образует общую часть n – мерного пространства, называемую выпуклым n – мерным многогранником. Таким образом, геометрически стандартная задача линейного программирования с ограничениями в виде неравенств заключается в отыскании такой точки многогранника решений, координаты которой доставляют линейной целевой функции Z ( X ) формулы (8.40) экстремальное значение. При этом все точки выпуклого многогранника являются допустимыми решениями. 8.7. Свойства задачи линейного программирования Рассмотрим теперь каноническую задачу линейного программирования, в которой система ограничений есть система уравнений: (8.50) Z ( X ) c1 x1 c2 x2 ... cn xn max (min) 160 a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 21 1 22 2 2n n 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. am1 x1 am 2 x2 ... amn xn bm ; x j 0 ( j 1, 2, ...,n) . (8.51) (8.52) Покажем аналитически, что и в случае канонической задачи ОДР есть выпуклый многогранник. Для этого будем использовать матричную форму записи. Введём матрицы: a11 a12 ... a1n x1 b1 0 a a ... a x b 21 22 2 2 0 2n A , X , B , O , C (c1 , c2 , ..., cn ). (8.53) ... ... ... ... ... ... ... ... ... 0 a a ... a x b mn m1 m 2 n m Здесь A – матрица системы, X – матрица-столбец неизвестных, B – матрица-столбец свободных членов, O – нулевая матрица-столбец, C – матрица-строка. Матричная форма записи канонической задачи имеет вид: (8.54) Z ( X ) CX max (min) при ограничениях (8.55) AX B , X 0 . Т е о р е м а 1. Множество всех допустимых решений канонической задачи линейного программирования является выпуклым. Д о к а з а т е л ь с т в о. Пусть X 1 и X 2 – два допустимых решения. Тогда (8.56) AX 1 B , AX 2 B , X1 0 , X 2 0 . Покажем, что их выпуклая линейная комбинация (8.57) X 1 X1 2 X 2 , 1 0, 2 0 , 1 2 1 также является допустимым решением. В самом деле, по свойству линейных операций над матрицами имеем AX A(1 X 1 2 X 2 ) 1 AX 1 2 AX 2 1B 2 B (1 2 ) B B. (8.58) Кроме того, из условий X 1 0 , X 2 0 , 1 0, 2 0 следует X 1 X 1 2 X 2 0 . Таким образом, X удовлетворяет ограничениям (8.55), т.е. является допустимым решением, представляющим выпуклое множество. Теорема доказана. З а м е ч а н и е. Итак, в случае стандартной задачи геометрически, а в случае канонической задачи аналитически, доказано, что ОДР задачи линейного программирования представляет выпуклый многогранник или выпуклую многогранную область, которые в дальнейшем бу161 дем называть одним термином – многогранником решений. Оптимальным решением (или оптимальным планом) задачи линейного программирования будем называть такое допустимое решение (план) задачи, при котором целевая функция Z ( X ) достигает экстремума. Ответ на вопрос, в какой точке многогранника решений достигается оптимальное решение задачи линейного программирования, даётся в следующей фундаментальной теореме. Т е о р е м а 2. Если задача линейного программирования имеет оптимальное решение, то оно достигается в одной из угловых точек многогранника решений. Если же оптимальное решение достигается сразу в нескольких угловых точках, то оно также достигается в точках любой их выпуклой линейной комбинации. Д о к а з а т е л ь с т в о. Для определённости будем считать, что решается задача на максимум целевой функции, т.е. (8.59) Z ( X ) CX max , AX B , X 0 . Будем полагать также, что многогранник решений является ограниченным. Обозначим его угловые точки через X1, X 2 , ..., X p , а оптимальное решение – через X . Тогда по определению оптимального решения неравенство (8.60) Z(X ) Z(X ) . будет выполняться для всех точек X многогранника решений. Если при этом X – одна из угловых точек, то первое утверждение теоремы уже доказано. Предположим теперь, что X не является угловой точкой, и покажем, что это приводит к противоречию. Рассмотрим рис.71 на плоскости для ограниченного многоугольника. По теореме п.8.5 каждая точка X являетx2 ся выпуклой линейной комбинацией углоX2 вых точек: X k X1 .. . ... . X .. 0 x1 Рис.71 p p j 1 j 1 X j X j , j 1 , Xp (8.61) j 0 ( j 1, 2, ..., p) . Найдём значение целевой функции p p p j 1 j 1 j 1 Z ( X ) CX C j X j j CX j j Z ( X j ) . (8.62) Среди значений Z ( X j ) выберем одно наибольшее, например, Z ( X k ) . Тогда заменяя им остальные значения в формуле (8.62), получим 162 p p j 1 j 1 Z ( X ) j Z ( X k ) Z ( X k ) j Z ( X k ) 1 Z ( X k ) . (8.63) Это неравенство противоречит предположению, что X – оптимальное решение в задаче на максимум целевой функции. Остаётся в нём принять знак равенства Z ( X ) Z ( X k ) , где X k угловая точка. Следовательно, X является угловой точкой всегда, когда задача имеет оптимальное решение. Предположим теперь, что оптимальное решение достигается сразу в нескольких угловых точках X 1 , X 2 ,..., X k , k p . Тогда для любого допустимого решения X выполняется условие (8.64) Z ( X ) Z ( X1 ) Z ( X 2 ) ... Z ( X k ) Z ( X j ) , j 1, 2, ...,k . Найдём для выпуклой линейной комбинации этих угловых точек X , где k k j 1 j 1 X j X j , j 0 ( j 1, 2, ..., k ) , j 1 , (8.65) значение целевой функции k k k k j 1 j 1 j 1 j 1 Z ( X )CX C j X j j CX j j Z ( X j )Z ( X 1 ) j Z ( X 1 ). (8.66) Так как решение X 1 по условию оптимальное, то X – тоже оптимальное решение, которое является выпуклой линейной комбинацией оптимальных угловых точек. Теорема доказана. В а ж н о е с л е д с т в и е. Согласно этой фундаментальной теореме для нахождения оптимального решения, доставляющего экстремум целевой функции Z ( X ) , необходимо исследовать лишь конечное число угловых точек многогранника решений, не исследуя бесконечное множество других допустимых решений. 8.8. Графический метод решения задачи линейного программирования 1. З а д а ч а с д в у м я п е р е м е н н ы м и. Графический метод основан на геометрической интерпретации стандартной задачи линейного программирования, рассмотренной в п.8.6, и на теореме 2 п.8.7. Пусть требуется найти оптимальное значение функции (8.67) Z ( X ) c1x1 c2 x2 max (min) при ограничениях 163 a11 x1 a12 x2 b1 , a x a x b , 21 1 22 2 2 ........................... am1 x1 am 2 x2 bm ; (8.68) (8.69) x1 0, x2 0 . Допустим, что система ограничений совместна и её многоугольник решений ограничен на плоскости Ox1x2. Каждое из неравенств системы (8.68) определяет полуплоскость с границей ai1 x1 ai 2 x2 bi (i 1, 2, ..., m) или x1 0 , x2 0 . Построим схематический многоугольник решений (рис.72). ЦелеB вая функция Z ( X ) при фиксироОДР A D n ванном значении Z ( X ) z0 являE c1x1 c2 x2 z AE ется уравнением прямой 0 x1 c1x1 c2 x2 z0 (8.70) c1 x1 c2 x2 z0 , c1x1 c2 x2 0 которая является линией уровня Рис. 72 целевой функции. При z0 0 линия уровня пройдёт через начало координат O, а другим x2 C c1x1 c2 x2 zc значениям z0 0 будут соответствовать параллельные ей прямые с бόльшим или меньшим уровнем значения Z ( X ) . Из дифференциального исчисления функций нескольких переменных известно, что вектор n grad Z ( X ) z x1 i z x 2 j c1 i c2 j (8.71) направлен по нормали к линии уровня в сторону наибольшего возрастания функции Z ( X ) . Отсюда поставленной задаче можно дать следующую геометрическую интерпретацию: требуется найти угловую точку многоугольника решений, в которой линия уровня целевой функции является опорной линией многоугольника и в которой Z ( X ) достигает экстремума. Для решения этой задачи будем перемещать линию уровня параллельно её начальному положению в направлении нормали n до совмещения её с какой-либо опорной линией многоугольника. Из рис.72 видно, что линия уровня становится опорной прямой в точках стороны AE и в угловой точке C. Следовательно, целевая функция будет принимать наименьшее значение в любой точке отрезка AE и наибольшее значение в точке C, координаты которой нужно найти из системы уравнений прямых BC и CD. Таким образом, алгоритм решения стандартной задачи линейного 164 программирования с двумя переменными графическим методом таков. 1. Строится ОДР – многоугольник. 2. Строится вектор n (c1, c2 ) с точкой приложения в начале координат. 3. Перпендикулярно вектору n проводится одна из линий уровня целевой функции Z ( X ) , соответствующая уравнению c1 x1 c2 x2 0 . 4. Линия уровня перемещается до положения опорной прямой многоугольника. На этой прямой и будет находиться экстремум функции Z ( X ) в угловой точке или в точках стороны многоугольника. З а м е ч а н и е. В зависимости от вида ОДР и целевой функции Z ( X ) задача может иметь единственное решение, бесконечное множество решений или не иметь ни одного оптимального решения. 2. З а д а ч а с n п е р е м е н н ы м и. С помощью графического метода может быть решена каноническая задача линейного программирования, система ограничений которой содержит n неизвестных и m линейно независимых уравнений, если n и m связаны соотношением n m 2 . Для этого её надо свести к стандартной задаче с двумя неизвестными следующим образом. Пусть требуется найти оптимальное значение функции (8.72) Z ( X ) c1 x1 c2 x2 ... cn xn max (min) при ограничениях a11 x1 a12 x2 ... a1, n1 xn1 a1 n xn b1 , a x a x ... a 2, n1 xn1 a2 n xn b2 , 21 1 22 2 (8.73) . . . . . . . . . . . . . . . . . . . . . . . . . . .......... .......... .......... ......... am1 x1 am 2 x2 ... am, n1 xn1 am n xn bm , x j 0 ( j 1, 2, ..., n) ; n m 2 . Используя метод Жордана – Гаусса, преобразуем систему (8.73) в систему m уравнений с базисом x1 , x2 ,..., xm и свободными неизвестными xm1 xn1 и xm2 xn . Тогда система ограничений (8.73) примет вид: x1 a1, n1 xn1 a1 n xn b1 , x2 a2, n1 xn1 a2 n xn b2 , ...................................... ... n xn bm , xm am , n1 xn1 am x j 0 ( j 1, 2, ..., n) . (8.74) С помощью уравнений преобразованной системы (8.74) выразим целевую линейную функцию Z ( X ) только через свободные неизвестные 165 xn1 , xn и, учитывая, что все базисные неизвестные x j 0 ( j 1, 2,...,m) , отбрасываем их, переходя к системе ограничений стандартной задачи, выраженных неравенствами. Таким образом, окончательно получаем стандартную задачу линейного программирования с двумя неизвестными: найти оптимальное значение линейной целевой функции Z ( X ) cn 1 xn1 cn xn max (min) (8.75) при ограничениях a1, n1 xn1 a1 n xn b1 , a2, n1 xn1 a2 n xn b2 , (8.76) ............................. ..... a m , n1 xn1 am n xn bm , xn1 0 , xn 0 . Преобразованная задача (8.75) – (8.76) содержит две неизвестных xn1 и xn . Решая её графическим методом, найдём оптимальные значения неизвестных xn1 , xn . Подставляя их затем в систему с базисом (8.74), легко найдём оптимальные значения остальных неизвестных x1, x2 ,..., xm . З а м е ч а н и е. Графический метода прост, нагляден, позволяет достаточно быстро и легко получить ответ, но не годится для решения практических экономических задач, так как не позволяет выявить экономический смысл величин, и непригоден при n m 2 . 8.9. Симплексный метод решения задачи линейного программирования. Критерий оптимальности решения Согласно теореме 2 п.8.7 оптимальное решение задачи линейного программирования достигается в одной из угловых точек многогранника решений. Следовательно, всякая процедура, позволяющая выполнить последовательный перебор угловых точек, должна привести к оптимальному решению. Эта идея заложена в так называемый симплексный метод решения задачи линейного программирования в канонической форме. Пусть требуется найти решение X ( x1 , x2 ,..., xn ) , доставляющее экстремум целевой функции (8.77) Z ( X ) c1 x1 c2 x2 ... cn xn при условиях 166 a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 2n n 2 21 1 22 2 (8.78) . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . ... am1 x1 am 2 x2 ... amn xn bm , x j 0 ( j 1, 2, ..., n) . Если система (8.78) не имеет решений, то задача теряет смысл. Если система (8.78) имеет единственное решение, то оно одновременно является и решением задачи, поскольку нет другого выбора. Наконец, если существует множество решений системы (8.78), что возможно при m n , то рассматриваемая задача становится объектом исследования. В последнем случае бесконечное множество решений может быть представлено в форме системы с базисом: x1 A1, m1 xm1 A1, m2 xm2 ... A1n xn B1 , x A 2 2, m1 xm1 A2, m2 xm2 ... A2 n xn B2 , ................................... ................... .............. xm Am, m1 xm1 Am, m2 xm2 ... Amn xn Bm , x j 0 ( j 1, 2, ..., n) . (8.79) Здесь коэффициенты Aij и свободные члены Bi определяются величинами aij и bi системы (8.78); неизвестные x1, x2 ,..., xm называются базисными, а неизвестные xm1, xm2 ,..., xn – свободными. Частное решение системы (8.79), в котором все свободные неизвестные равны нулю, называется базисным. Оно имеет вид: x1 B1, x2 B2 , ..., xm Bm , xm1 0, xm2 0,..., xn 0 . (8.80) Базисное решение (8.80) называется допустимым, если все базисные неизвестные x j 0 ( j 1, 2, ...,m) , и называется недопустимым, если хотя бы одна базисная неизвестная отрицательна. Допустимое базисное решение называется вырожденным, если хотя бы одна из базисных неизвестных равна нулю, и называется невырожденным, если все базисные неизвестные положительны, т.е. x j 0 ( j 1, 2, ...,m) . Невырожденное базисное решение называется опорным решением или опорным планом. Между опорными решениями и угловыми точками многогранника решений установлено взаимно однозначное соответствие следующей теоремой. Т е о р е м а. Каждому опорному решению системы с базисом соответствует угловая точка многогранника решений, и наоборот, каж167 дой угловой точке многогранника решений соответствует опорное решение системы с базисом. Симплексный метод представляет собой аналитический целенаправленный метод перебора опорных решений системы с базисом, позволяющий за конечное число шагов расчёта либо найти оптимальное решение, либо установить, что оптимального решения не существует. Возникает вопрос: как определить, является ли найденное опорное решение оптимальным? Предположим, что методами линейной алгебры одно из опорных решений найдено и имеет вид: (8.81) x1 B1, x2 B2 , ..., xm Bm , xm1 0, xm2 0,..., xn 0 , где B j 0 при j 1, 2, ...,m . Пусть требуется найти экстремум целевой функции Z ( X ) c1 x1 c2 x2 ... cm xm cm1 xm1 ... cn xn . (8.82) Обозначим через Z0 сумму первых m слагаемых функции Z ( X ) , тогда (8.83) Z ( X ) Z 0 cm1xm1 cm2 xm2 ... cn xn . Рассмотрим два случая. П е р в ы й с л у ч а й. Требуется найти наименьшее значение Z ( X ) . Если выполняются неравенства (8.84) cm1 0 , cm2 0 , ..., cn 0 , то при любом выборе свободных неизвестных x j 0 ( j m 1, ...,n) правая часть равенства (8.83) неотрицательна и, следовательно, примет наименьшее значение, равное нулю, при Z ( X ) Z 0 . Опорное решение (8.81) в этом случае будет оптимальным, так как доставляет наименьшее значение целевой функции (8.85) min Z ( X ) c1B1 c2 B2 ... cm Bm . В т о р о й с л у ч а й. Требуется найти наибольшее значение Z ( X ) . Если теперь выполняются неравенства (8.86) cm1 0 , cm2 0 , ..., cn 0 , то при любом выборе свободных неизвестных x j 0 ( j m 1, ...,n) правая часть равенства (8.83) неположительна и, следовательно, примет наибольшее значение, равное нулю, при Z ( X ) Z 0 . Опорное решение (8.81) и в этом случае будет оптимальным, так как доставляет наибольшее значение целевой функции max Z ( X ) c1B1 c2 B2 ... cm Bm . (8.87) Рассмотренные два случая позволяют сформулировать следующий критерий оптимальности опорного решения. Опорное решение 168 x1 B1, x2 B2 ,...,xm Bm , xm1 0,...,xn 0; B j 0 ( j 1, 2,...,m) (8.88) является оптимальным: 1) в задаче Z ( X ) min , если в равенстве Z ( X ) Z 0 cm1xm1 cm2 xm2 ... cn xn . нет отрицательных коэффициентов c j 0 ( j m 1, m 2, ...,n) ; (8.89) 2) в задаче Z ( X ) max , если в равенстве (8.89) нет положительных коэффициентов c j 0 ( j m 1, m 2, ...,n) . З а м е ч а н и е. В равенстве (8.89) в обоих случаях обозначено Z 0 c1B1 c2 B2 ... cm Bm . Таким образом, получен критерий оценки оптимальности решения задачи линейного программирования. Однако ясно, что с первой попытки найти такое решение удаётся далеко не всегда. Даже в тех случаях, когда система ограничений сведена к системе с базисом, очевидное базисное решение вида (8.88) чаще всего оказывается промежуточным. Поэтому необходимо рассмотреть процесс улучшения решения, заключающийся в поиске нового базисного решения, которому соответствует «лучшее», т.е. более близкое к оптимальному, значение Z ( X ) . Допустим, что базисное решение (8.88) не является оптимальным. Чтобы перейти от решения (8.88) к другому базисному решению, нужно сделать отличной от нуля (ввести базис) какую-то из свободных переменных xm1, xm2 ,..., xn , обратив в ноль одну из базисных переменных x1 , x2 ,..., xm . Имея в виду ограничение x j 0 , можно сказать, что при таком переходе: 1) Z ( X ) уменьшится в задаче на минимум Z ( X ) min только тогда, когда вводимая в базис переменная будет иметь в выражении Z ( X ) отрицательный коэффициент; 2) Z ( X ) увеличится в задаче на максимум Z ( X ) max только тогда, когда вводимая в базис переменная будет иметь в выражении Z ( X ) положительный коэффициент. Z ( X ) min . Тогда уменьшение Z ( X ) будет тем заметнее, чем больше по модулю соответствующий коэффициент c j 0 (m 1 j n) в равенстве (8.83). Для определённости рассмотрим задачу Обозначим через s тот номер j из m 1, m 2 ,..., n , для которого величина c j 0 и максимальна по модулю, т.е. сs min (c j 0) . Желая дать положительное приращение величине xs 0 , представим базисные переменные и Z ( X ) в виде (см. систему (8.79)): 169 x1 B1 A1s xs , x2 B2 A2 s xs , ..., xm Bm Ams xs , Z ( X ) Z 0 cs xs , (cs 0, m 1 s n) . (8.90) Поскольку cs 0 , нужно как можно больше увеличивать xs в стремлении минимизировать Z ( X ) . Однако возрастание xs будет продолжаться лишь до тех пор, пока какая-то из переменных x1 , x2 ,..., xm не обратится в ноль. Это произойдёт, если в равенствах (8.90) хотя бы один коэффициент Ais (i 1, 2, ..., m) положителен. Если же Ais 0 для нескольких номеров i из 1, 2, ...,m , то при возрастании xs в ноль обратится первой та базисная переменная в равенствах (8.90), которой отвечает наименьшая величина отношения Bi / Ais (i 1, 2, ..., m) . Чтобы выделить эту переменную xi (i 1, 2, ..., m) , положим для неё i r . Таким образом, наибольшее значение x , до которого можно увеличивать xs , определяется отношением B (8.91) xs r , (1 r m ; m 1 s n) . Ars При этом значении переменная xr станет равной нулю и перейдёт в свободные переменные, а переменная xs станет базисной, равной xs xs . Необходимо подчеркнуть, что равенство нулю хотя бы одного свободного члена Bi (i 1, 2,..., m) в равенствах (8.90) (случай вырожденного базисного решения) означает невозможность ввода xs в базис с соблюдением условия x j 0 . Указанная процедура перехода к новому опорному решению может быть повторена, если оно допускает дальнейшее улучшение, в данном случае – уменьшение, значения Z ( X ) . Симплекс – метод состоит в последовательных повторениях подобных операций до тех пор, пока не будет найдено либо оптимальное решение исходной задачи линейного программирования, либо множество допустимых её решений, для которых Z (X ) ∞. Процесс поиска оптимальных значений X и Z ( X ) закончится на конечном числе шагов, если ни на одном из них не возникнут вырожденные базисные решения. В настоящее время симплексный метод используется для компьютерных расчётов, но несложные задачи с его применением можно решать и вручную. Впервые симплексный метод, как основной метод решения задач линейного программирования, был предложен американским экономистом Дж. Данцигом в 1949 году, но идеи этого метода были разработаны в 1939 году советским математиком академиком Л.В. Канторовичем. 170 8.10. Алгоритм симплексного метода Рассмотрим алгоритм симплексного метода при решении производственной задачи об оптимальном использовании ресурсов. Согласно п.8.2 математическая модель задачи в общей постановке имеет следующую формулировку: требуется найти такой план объёма выпускаемой продукции X ( x1 , x2 ,..., xn ) , удовлетворяющий системе ограничений a11 x1 a12 x2 ... a1n xn b1 , a x a x ... a x b , 21 1 22 2 2n n 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . am1 x1 am 2 x2 ... amn xn bm и условиям x j 0 ( j 1, 2, ...,n) , bi 0 (i 1, 2, ...,m) , (8.92) (8.93) при котором целевая функция (8.94) Z ( X ) c1 x1 c2 x2 ... cn xn принимает наибольшее значение Z ( X ) max . С и м п л е к с – а л г о р и т м. 1. В системе ограничений в форме неравенств вида (8.92) все свободные члены bi 0 записывают в правых частях. 2. Вводят добавочные неотрицательные переменные xni 0 (i 1,2,..., m) и тем самым сводят систему неравенств к эквивалентной системе уравнений. Это действие называется сведением задачи линейного программирования к канонической форме: n Z ( X ) c j x j max , (8.95) j 1 n aij x j xni bi (i 1, 2, ..., m) , (8.96) j 1 x j 0 ( j 1, 2,...,n) ; xni 0 , bi 0 (i 1, 2,...,m). (8.97) 3. В полученной системе m уравнений с n m неизвестными вида (8.96) добавочные переменные xni 0 (i 1, 2,..., m) принимают за базисные и выражают их через свободные переменные x j ( j 1, 2, ...,n) формулами вида: n xni bi aij x j , (i 1, 2, ..., m) . (8.98) j 1 Затем свободные переменные полагают равными нулю и находят пер171 вое опорное решение X 1 : (8.99) x1 0, x2 0, ..., xn 0 , xn1 b1 , xn2 b2 , ..., xnm bm . Для этого опорного решения X 1 функция цели Z ( X ) имеет наименьшее значение Z ( X 1 ) 0 , так как продукция не производится. 4. Если в выражении функции Z ( X ) в равенстве (8.95) нет свободных переменных x j с положительными коэффициентами c j 0 ( j 1, 2, ...,n) , то критерий оптимальности выполнен и полученное опорное решение вида (8.99) является оптимальным. Решение задачи окончено. 5. Если же в равенстве (8.95) функция цели Z ( X ) имеет одну или несколько свободных переменных x j с положительными коэффициентами c j 0 ( j 1, 2, ...,n) , то переходят ко второму базисному решению. Для этого из свободных переменных x1, x2 ,..., xn , входящих в функцию цели, выбирают ту переменную xs , которой соответствует наибольший коэффициент cs 0 (1 s n) и систему (8.98) записывают в форме равенств (8.100) xn1 b1 a1s xs , xn2 b2 a2s xs , ..., xnm bm ams xs , считая остальные свободные переменные равными нулю. 6. Чтобы решить какую из базисных переменных xn1, xn2 , ..., xnm следует перевести в свободные, из равенств (8.100) находят абсолютные величины отношений bi (8.101) (i 1, 2, ..., m) ais свободных членов bi к коэффициентам ais при переменной x s , переводимой в базисные. При этом отношения (8.101) составляют только для тех равенств (8.100), в которых коэффициенты ais 0 (имеют знак «–»). Для тех равенств, в которых указанные коэффициенты ais 0 (имеют знак «+») или ais 0 , отношения (8.101) считают равными ∞. 7. Из найденных отношений вида (8.101) выбирают наименьшее значение b b min i r , (1 r m) . (8.102) 1im ais ars Для этого значения базисная переменная xn r в одном из равенств (8.100) станет равной нулю xnr 0 и перейдёт в свободные, а свободная переменная xs в том же равенстве (8.100) возрастёт и станет ба172 зисной, равной значению b xs r . ars 8. Уравнение, содержащее переменные xn r и xs , выделяют в системе (8.98). Затем выражают новые базисные переменные и функцию цели Z ( X ) через новые свободные переменные, начиная эти действия с выделенного уравнения. Из преобразованной таким образом системы (8.98) находят второе опорное решение X 2 и вычисляют величину функции цели Z ( X 2 ) 0 . 9. Повторяют пункты 5. – 8. до тех пор, пока не будет достигнут критерий оптимальности, указанный в пункте 4. После этого выписывают оптимальное решение и вычисляют для него наибольшее значение функции цели max Z ( X ) Z 0 . 8.11. Симметричные взаимно двойственные задачи Рассмотрим вновь математическую модель производственной задачи использования ресурсов (8.92) – (8.94). Экономический смысл задачи следующий: сколько и какой продукции X ( x1 , x2 ,..., xn ) необходимо производить, чтобы при заданной стоимости c j ( j 1, 2, ...,n) единицы продукции Pj и заданных количествах bi (i 1, 2, ..., m) имеющихся ресурсов S i прибыль от реализации выпускаемой продукции была максимальной: Z ( X ) max . Поставленной задаче линейного программирования соответствует другая задача, называемая двойственной по отношению к исходной. Предположим, что второй производитель хочет перекупить ресурсы S1, S2 ,..., Sm данного предприятия. Для этого необходимо установить на них новые оптимальные цены y1, y2 ,..., ym . Затраты второго производителя на приобретение i-го типа ресурса S i в количестве bi составят сумму, равную bi yi (i 1, 2, ..., m) . Второму производителю выгодно минимизировать суммарные затраты на приобретение всех типов ресурсов, поэтому его целевая функция имеет вид: F (Y ) b1 y1 b2 y2 ... bm ym min . Напротив, предприятию, продающему ресурсы, выгодно их продавать, если суммарная стоимость всех ресурсов, расходуемых на производство единицы j-го вида продукции Pj , окажется не меньше прибыли c j , получаемой от реализации этого вида продукции, т.е. если a1 j y1 a2 j y2 ... am j ym c j . 173 Математическая модель, получаемой таким образом двойственной задачи оценки продаваемых ресурсов, принимает вид: (8.103) F (Y ) b1 y1 b2 y2 ... bm ym min . a11 y1 a21 y2 ... am1 ym c1 , a y a y ... a y c , 12 1 22 2 m2 m 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . a1n y1 a2 n y2 ... amn ym cn , (8.104) (8.105) yi 0 (i 1, 2, ..., m) . Экономический смысл полученной двойственной задачи заключается в следующем: каков должен быть набор цен каждого типа ресурсов Y ( y1 , y2 ,..., ym ) , чтобы при заданных количествах ресурсов bi и заданной стоимости c j ( j 1, 2, ...,n) единицы продукции Pj суммарные затраты на приобретение ресурсов были минимальными F (Y ) min , но не менее прибыли от реализации произведённой из этих ресурсов продукции. Две рассмотренные задачи называются симметричными взаимно двойственными задачами. Любую из них можно рассматривать как исходную, тогда другая окажется двойственной первой. Теория двойственности оказалась полезной для проведения качественных исследований экономического содержания задач линейного программирования. При составлении двойственной задачи (8.103) – (8.105) для исходной задачи (8.92) – (8.94) используют следующий алгоритм. 1. Составляют расширенную матрицу A1 системы (8.92), в которую включают матрицу A коэффициентов aij при переменных x j , столбец B свободных членов bi системы ограничений и строку C коэффициентов c j при переменных x j целевой функции Z ( X ) : a11 a12 ... a1n a21 a22 ... a2 n .......... .......... . A1 a a ... a mn m1 m 2 ___________ c1 c2 ... cn b2 ... . bm _____ Z ( X ) b1 (8.106) 2. Находят матрицу A1T , транспонированную относительно матрицы A: 174 a11 a21 ... am1 c1 a12 a22 ... am 2 c2 T .......... .......... . ... . (8.107) A1 a1n a2 n ... amn cn ___________ ____ b b ... b F (Y ) m 1 2 3. Формулируют двойственную задачу на основании полученной матрицы A1T . Неравенства – ограничения двойственной задачи записывают противоположного смысла по сравнению с неравенствами (8.92) исходной задачи. Целевая функция двойственной задачи F (Y ) должна оптимизироваться противоположным образом по сравнению с Z ( X ) , т.е. если Z ( X ) max , то F (Y ) min . 4. Записывают условия неотрицательности переменных двойственной задачи yi 0 (i 1, 2, ..., m) . 8.12. Теоремы теории двойственности Теория двойственности в линейном программировании строится на теоремах двойственности, позволяющих установить взаимосвязь между оптимальными решениями пары двойственных задач. Решив одну из пары двойственных задач, можно или найти оптимальное решение другой задачи, не решая её, или установить его отсутствие. П е р в а я т е о р е м а д в о й с т в е н н о с т и. Если одна из взаимно двойственных задач имеет оптимальное решение, то его имеет и другая задача, причём оптимальные значения их целевых функций совпадают: (8.108) max Z ( X ) min F (Y ) . Если же целевая функция одной из задач не ограничена, то другая задача не имеет решения ввиду несовместности её системы ограничений. Экономический смысл первой теоремы двойственности состоит в следующем. План производства продукции X ( x1 , x2 ,...,xn ) и набор оценок ресурсов Y ( y1 , y2 ,...,ym ) оказываются оптимальными тогда и только тогда, когда прибыль от реализации изготовленной продукции по известным заранее «внешним» ценам c1 ,c2 ,..., cn равна затратам на ресурсы по «внутренним», т.е. определяемым только из решения двой ственной задачи, ценам y1 , y2 ,...,ym . Для всех же других планов X ( x1 , x2 ,..., xn ) и Y ( y1 , y2 ,..., ym ) обеих задач прибыль от реализации продукции всегда не превосходит затрат на ресурсы. Указанная в первой теореме тесная связь между двумя взаимно 175 двойственными задачами проявляется не только в равенстве оптимальных значений их целевых функций. Рассмотрим в общем виде две взаимно двойственные задачи: I – исходная задача и II – двойственная задача. I. И с х о д н а я з а д а ч а. n Z ( X ) c j x j max , (8.109) j 1 n aij x j bi , (i 1, 2, ..., m) , (8.110) x j 0, ( j 1, 2, ...,n) . (8.111) j 1 II. Д в о й с т в е н н а я з а д а ч а. m F (Y ) bi yi min , (8.112) i 1 m aij yi c j , ( j 1, 2, ..., n) , (8.113) i 1 (8.114) yi 0, (i 1, 2, ..., m) . Если каждую из этих задач решать симплексным методом, то необходимо привести их к каноническому виду. Для этого в систему ограничений (8.110) задачи I следует ввести m неотрицательных дополнительных переменных xn1, xn2 , ..., xnm , а в систему ограничений (8.113) задачи II следует ввести n неположительных дополнительных переменных ym1 , ym2 , ..., ymn . После этого системы ограничений каждой из задач примут вид: n I: aij x j xni bi , (i 1, 2, ..., m) , (8.115) j 1 m II: aij yi ym j c j , ( j 1, 2, ..., n) . (8.116) i 1 Соответствие между первоначальными переменными одной из взаимно двойственных задач и дополнительными переменными другой задачи вытекает из следующей теоремы. В т о р а я т е о р е м а д в о й с т в е н н о с т и. Положительным компонентам оптимального решения одной из взаимно двойственных задач соответствуют нулевые компоненты оптимального решения другой задачи (табл.3). Таблица 3 Переменные исходной задачи I Первоначальные Дополнительные 176 x1 0, x2 0 , ..., xj 0 , ..., xn 0 xn1 0, xn2 0 ,..., xni 0 ,..., xnm 0 y1 0, y2 0 , ym 1 0, ym 2 0 ,..., ym j 0 ,..., ym n 0 ..., yi 0 , ..., ym 0 Дополнительные Первоначальные Переменные двойственной задачи II Указанная теорема является следствием более общей теоремы двойственности. Т р е т ь я т е о р е м а д в о й с т в е н н о с т и. Компоненты оп тимального решения Y ( y1 , y2 ,...,ym ) двойственной задачи равны абсолютным значениям коэффициентов при соответствующих им, согласно соотношениям таблицы, дополнительных переменных целевой функции Z ( X ) исходной задачи после нахождения её оптимального решения. В а ж н о е с л е д с т в и е. Из теорем двойственности следует, что если решить одну из взаимно двойственных задач, т.е. найти её оптимальное решение и оптимальное значение целевой функции, то сразу можно записать оптимальное решение и оптимальное значение целевой функции другой задачи. П р и м е р. Исходная задача Z ( X ) 2 x1 3x2 max , x1 3 x2 18 , 2 x x 16 , 1 2 x 2 5 , 3 x1 21 , x1 0, x2 0 имеет оптимальное решение X (6; 4; 0; 0; 1; 3) и значение целевой функции Z ( X ) 24 4 x3 3 x4 , для которой max Z ( X ) 24 . Соста5 5 вить двойственную задачу и найти её оптимальное решение, целевую функцию оптимального решения и её минимум. Р е ш е н и е. Составим расширенную матрицу системы A1 и запишем матрицу A1T : 177 1 3 18 2 1 16 0 1 5 , A1 3 0 21 _____ ____ 2 3 Z (X ) 1 2 0 3 3 1 1 0 A1T ___________ 18 16 5 21 3 . ____ F (Y ) 2 Формулируем двойственную задачу: F (Y ) 18 y1 16 y2 5 y3 21 y4 min , y1 2 y2 3 y4 2 , 3 y1 y2 y3 3 , y1 0, y2 0 , y3 0, y4 0 . По второй теореме двойственности установим соответствие первоначальных и дополнительных переменных оптимальных решений обеих задач. Первоначальные переменные x1 6 , x2 4 , y5 y6 Дополнительные переменные x3 0, x4 0 , x5 1, x6 3 , 0, 0, 4 , y2 3 , y3 0 , y4 0 . 5 5 По третьей теореме двойственности оптимальное решение двойственной задачи принимает вид Y ( 4 ; 3 ; 0; 0; 0; 0) . Ему соответ5 5 ствует целевая функция F (Y ) 24 y3 3 y4 6 y5 4 y6 . По первой y1 теореме двойственности min F (Y ) max Z ( X ) 24 . 8.13. Анализ двойственных оценок ресурсов Компоненты yi (i 1,2,...,m) оптимального решения Y ( y1 , y2 ,...,ym ) двойственной задачи называются объективно обусловленными или двойственными оценками ресурсов. Такое название переменных yi связано с их следующим экономическим содержанием, вытекающим из теорем двойственности. 1. Согласно второй теореме двойственности, положительные оценки (значения) yi 0 могут иметь лишь те типы ресурсов 178 Si (i 1, 2, ..., m) , которые используются полностью при оптимальном плане производства, т.е. их остатки равны нулю. Напротив, оценки ресурсов, не полностью используемых в производстве, всегда равны нулю. 2. Если мы желаем увеличить производство каких-либо изделий Pj ( j 1, 2, ...,n) , то анализ полученных двойственных оценок позволяет выявить так называемые «узкие места», сдержиy1 , y2 ,...,ym вающие рост производства. А именно: а) если оценки yi 0 , то соответствующий тип сырья S i исходной задачи является дефицитным, так как его остаток равен нулю. Чем больше величина оценки yi 0 , тем более дефицитным является этот тип сырья; б) если оценка yi 0 , то соответствующий ей тип сырья S i является избыточным, т.е. на производстве имеется остаток этого сырья, который не используется в производстве и не приносит прибыль. Центральный вопрос, который рассматривает теория двойственности, – это вопрос о ценности ресурсов в сложившейся структуре производства. Обычно на практике экономическая информация об объёмах имеющихся на производстве ресурсов не является полной. Известны лишь пределы, в которых значения параметров bi (i 1, 2, ..., m) , равные объёмам ресурсов S i , могут изменяться. Поэтому очень важен анализ поведения оптимального плана производства X ( x1 , x2 ,...,xn ) и оптимального значения целевой функции Z ( X ) исходной задачи в пределах изменения параметров bi . Определение интервалов изменения объёмов ресурсов, в которых оптимальный план двойственной за дачи Y ( y1 , y2 ,...,ym ) не меняется, называется анализом устойчивости двойственных оценок ресурсов. Основополагающим показателем ценности ресурса Si (i 1, 2,..., m) в структуре производства является величина прироста прибыли Z ( X ) , которую может принести дополнительное использование в производстве ещё одной единицы объёма bi данного ресурса S i . Для вычисления указанного прироста прибыли Z ( X ) предположим, что запасы всех ресурсов bi увеличились на 1 единицу и стали равными bi 1 , а оптимальное решение Y ( y1 , y2 ,...,ym ) двойственной задачи не изме- нилось. Тогда целевая функция двойственной задачи F (Y ) получит положительное приращение следующего вида: 179 m m m m m m i 1 i 1 i 1 i 1 i 1 i 1 F (Y ) (bi 1) yi bi yi bi yi yi bi yi yi . (8.117) Согласно первой теореме двойственности и полученной формуле (8.117), увеличение целевой функции F (Y ) двойственной задачи на веm личину F (Y ) yi приводит к увеличению целевой функции Z ( X ) i 1 исходной задачи на эту же величину F (Y ) . Отсюда следует, что значения y1 , y2 ,...,ym двойственных оценок показывают для каждого типа ресурсов Si (i 1, 2, ..., m) , насколько возрастёт максимальная прибыль Z ( X ) от реализации готовой продукции исходного оптимального плана производства, если объём bi данного типа ресурсов S i увеличится на 1 единицу. Таким образом, именно двойственные оценки ресурсов yi (i 1, 2,...,m) и являются той мерой ценности ресурсов, от которой зависит величина прироста прибыли на данном производстве. Приведённый анализ показывает, что двойственные оценки ресурсов могут служить инструментом анализа принятия решений в условиях постоянно меняющейся структуры производства. С их помощью могут быть определены расчётные нормы заменяемости ресурсов, при соблюдении которых проводимые замены обеспечивают получение наибольшей прибыли на производстве. 180