Российский государственный гуманитарный университет (филиал г. Киров) ЭКОНОМИКО-МАТЕМАТИЧЕСКИЕ МОДЕЛИ Методические указания и задания к типовой работе УТЁМОВ ВЯЧЕСЛАВ ВИКТОРОВИЧ 1 Российский государственный гуманитарный университет (филиал г. Киров) Введение КОНТРОЛЬНАЯ РАБОТА СОСТОИТ ИЗ 3 ЗАДАЧ ПРИВЕДЕННЫХ В КОНЦЕ МЕТОДИЧЕСКИХ УКАЗАНИЙ. ВАРИАНТ ВЫБИРАЕТСЯ В СООТВЕТСТВИИ С ДВУМЯ ПОСЛЕДНИМИ ЦИФРАМИ НОМЕРА ЗАЧЕТНОЙ КНИЖКИ. Линейные модели являются одним из наиболее активно используемых классов математических моделей. Они сравнительно просты, хорошо разработаны, допускают полное исследование и достаточно эффективны в целом ряде стандартных ситуаций. Линейное программирование – это математический метод решения задачи оптимального распределения имеющихся ресурсов (денег, материалов, времени) для достижения определённой цели (наибольшего дохода или наименьших издержек). Программирование в данном термине имеет смысл планирования. Линейное означает, что ищется экстремум линейной целевой функции при линейных ограничениях (линейных уравнениях или линейных неравенствах). Общие ситуации, в которых линейное программирование применяется часто и эффективно: задачи о составлении смеси, цель которых заключается в выборе наиболее экономичной смеси ингредиентов (руды, нефти, пищевых продуктов и др.) при учёте ограничений на физический или химический состав смеси и на наличие необходимых материалов; задачи производства, целью которых является подбор наиболее выгодной производственной программы выпуска одного или нескольких видов продукции при использовании некоторого числа ограниченных источников сырья; задачи распределения, цель которых состоит в том, чтобы организовать доставку материалов от некоторого числа источников к некоторому числу потребителей так, чтобы оказались минимальными либо расходы по этой доставке, либо время затрачиваемое на неё, либо некоторая комбинация того и другого. В простейшем виде это задача о перевозках (транспортная задача). Наиболее распространённым методом решения задачи линейного программирования является симплекс-метод. В простейшем случае, когда число переменных равно двум, удобен простой и наглядный графический метод. 2 Российский государственный гуманитарный университет (филиал г. Киров) 1. Общая задача линейного программирования Задача линейного программирования состоит в составлении плана максимизирующего или минимизирующего некую линейную функцию при ограничениях в виде линейных уравнений или линейных неравенств: найти вектор X ( x1 , x2 ,..., xn ) , максимизирующий (минимизирующий) функцию n f (X ) c j x j , (1) j 1 и удовлетворяющий условиям n a j 1 ij x j bi , (2) x j 0, j 1, n Линейная функция f (X ) называется целевой функцией задачи. Условия (2) называются ограничениями задачи. Любое решение системы ограничений ЗЛП называется допустимым планом. Допустимый план, максимизирующий или минимизирующий целевую функцию называется оптимальным. План, у которого отличным от нуля компонентам соответствует система линейно независимых векторов, называется опорным планом. Теорема. Множество планов задачи линейного программирования является выпуклым множеством. Теорема. Оптимальный план задачи линейного программирования находится в крайней точке выпуклого множества планов. Если оптимальный план находится в двух крайних точках выпуклого множества планов, то он находится также и в любой точке, являющейся выпуклой комбинацией этих крайних точек. Формы ЗЛП Форма задачи линейного программирования, у которой ограничения заданы в виде неравенств, называется стандартной, а форма задачи, у которой ограничения заданы в виде уравнений – канонической. Если же система ограничений содержит и уравнения и неравенства, то такая форма называется смешанной. Стандартная n f ( X ) c j x j max j 1 n a j 1 ij x j bi , x j 0. Каноническая n f ( X ) c j x j max j 1 n a j 1 ij Смешанная n f ( X ) c j x j max j 1 n a x j bi , x j 0. j 1 n a j 1 ij ij x j bi (i 1,k ) , x j bi (i k 1, m) , x j 0. 3 Российский государственный гуманитарный университет (филиал г. Киров) 2. Графический метод решения задачи линейного программирования Если задача содержит только две переменные, а система ограничений задана в виде неравенств, то её можно решить графическим методом. Графический метод решения ЗЛП состоит из следующих этапов. 1. Строится область допустимых решений (ОДР) ЗЛП. 2. Строится вектор-градиент целевой функции (вектор, координатами которого являются частные производные функции) с приложением в начале координат – (C1 , C2 ) . 3. Линия уровня C1x1+C2x2 = а (а – постоянная величина) - прямая, перпендикулярная вектору–градиенту – передвигается в направлении этого вектора в случае максимизации f(x1,x2) до тех пор, пока не покинет пределов ОДР. Предельная точка (или точки) области при этом движении и является точкой максимума f(x1,x2). 4. Для нахождения ее координат достаточно решить систему из двух уравнений прямых, получаемых из соответствующих ограничений и дающих в пересечении точку максимума. Значение f(x1,x2), найденное в полученной точке, является максимальным. При минимизации f(x1,x2) линия уровня перемещается в направлении, противоположном вектору-градиенту. Если прямая при своем движении не покидает ОДР, то целевая функция f(x1,x2) не ограничена на максимум (в задаче максимизации) или минимум (в задаче минимизации). Если линия уровня параллельна какой-либо прямой из ограничений задачи, то оптимальное значение целевой функции будет достигаться в любой точке этой прямой. Пример. Найти максимальное значение функции f=2x1 + 3x2 при условиях x1 3 x 2 18, 2 x1 x 2 16, x 5, 2 x , 1 x 2 0. Построим область допустимых значений: 1) первое ограничение x+3x18; прямая x+3x=18 пересекает оси координат в точках 06180; неравенству соответствует полуплоскость, содержащая данную прямую и лежащая ниже неё (контрольная точка 000+3*0<18 принадлежит полуплоскости); 2) второе ограничение 2x+x16: прямая 2x+x=16 пересекает оси координат в точках 01680; неравенству соответствует полуплоскость, содержащая данную прямую и лежащая ниже неё (контрольная точка 002*0+ 0<16 принадлежит полуплоскости); 3) неравенству x5 соответствует полуплоскость, содержащая прямую x=5 и лежащая ниже неё. 4) x10правее ОX; 5) x20выше ОX1. Вектор-градиент имеет координаты (2;3) . Построим линии уровня 2x+ 3x = а. При а =0 получим прямую 2x+3x =0, проходящую через начало координат, перпендикулярно вектору-градиенту. Так как задача на максимум, то передвигаем линию уровня в направлении градиента. Предельной точкой (последней из области допустимых решений, с которой соприкасается линия уровня) является точка С. Значит, в ней достигается максимум функции f (рис. 1). Найдём её координаты. Для этого решим систему, составленную из уравнений прямых пересекающихся в точке С (I и II): x1 3 x 2 18, x1 6, 2 x x 16; x 4; 2 1 2 Таким образом, получим x6, x24, fmax 2*6+3*4=24. 4 Российский государственный гуманитарный университет (филиал г. Киров) Рис. 1. 3. Нахождение решения задачи линейного программирования Для решения ЗЛП существует универсальный метод – метод последовательного улучшения плана или симплекс-метод, который состоит из двух вычислительных процедур: симплекс-метода с естественным базисом и симплекс-метода с искусственным базисом (Мметод). Выбор конкретной вычислительной процедуры осуществляется после приведения исходной ЗЛП к каноническому виду. Для применения симплекс-метода с естественным базисом ЗЛП должна содержать единичную подматрицу размером mxm – в этом случае очевиден начальный опорный план. Исследование опорного плана на оптимальность, а также дальнейший вычислительный процесс удобнее вести, если условия задачи и первоначальные данные записать в таблицу: Базис Сб Р0 Р1 Р2 ... Рm с1 с2 ... сm b1 b2 ... bm F0 с1 Р1 1 0 ... 0 0 с2 Р2 0 1 ... 0 0 ... ... ... ... ... сm Рm 0 0 ... 1 0 cm+1 Рm+1 a1m+1 a2m+1 ... amm+1 Δm+1 ... ... ... ... ... ... cn Рn a1n a2n amn Δn В первом столбце таблицы "Базис" записывают базисные векторы данного опорного плана. Во втором столбце - коэффициенты целевой функции (с1, с2,…, сm) при базисных переменных (напомним, что в базис входят только векторы, образующую единичную подматрицу). В третьем столбце Р0 - правая часть ограничений задачи (базисные компоненты плана). Таким образом, перемножая элементы второго столбца таблицы со столбцом Р0, и суммируя эти произведения, мы получаем значение целевой функции (F0=с1*b1 + с2*b2+…+ сm*bm). Первая строка симплексной таблицы содержит коэффициенты целевой функции нашей задачи и остается неизменной на протяжении всего решения (с1, с2,…, сm). В центральной части таблицы записывают коэффициенты при неизвестных в ограничениях исходной задачи. При этом следует заметить, что коэффициенты при базисных пере5 Российский государственный гуманитарный университет (филиал г. Киров) менных в ограничениях задачи составляют единичную подматрицу. Последнюю оценочную m строку рассчитывают по формуле j ci aij c j . i 1 После заполнения таблицы исходный опорный план проверяют на оптимальность. Для этого просматривают элементы последней (оценочной) строки. Возможны три варианта: 1. Все оценки j 0 , значит на основании признака оптимальности получен оптимальный план. 2. j 0 для некоторого j, и все соответствующие этому индексу величины aij 0 , значит целевая функция не ограничена сверху на множестве планов. 3. j 0 для некоторых индексов j, и для каждого такого j по крайней мере одно из чисел a ij 0 , значит можно перейти к новому опорному плану, при котором значение целевой функции увеличится. Переход от одного опорного плана к другому осуществляется исключением из исходного базиса какого-нибудь из векторов и введением в него нового вектора. В качестве вводимого в базис вектора берётся один из векторов, для которых j 0 . Пусть это будет вектор Рk. Для определения вектора, подлежащего исключению из базиса находят min( bi / aik ), aik 0, i 1,2,, m . Тогда выполняется условие неотрицательности значений опорного плана. Пусть этот минимум достигается при i=r. Тогда из базиса исключают вектор Рr, а число a rk называют разрешающим элементом. Элементы новой симплекс-таблицы получают методом Жордана-Гаусса по формулам: a1rj arj / ark , j 1,2,n для i = r; aij1 aij (arj / ark )aik ) при i r . Значения нового опорного плана рассчитываются по формулам: br1 br / a rk для i = r; bi1 bi (br / a rk )aik при i r . Процесс решения продолжают либо до получения оптимального плана, либо до установления неограниченности целевой функции. Если среди оценок оптимального плана нулевые только оценки, соответствующие базисным векторам, то это говорит о единственности оптимального плана. Если же нулевая оценка соответствует вектору, не входящему в базис, то в общем случае это означает, что оптимальный план не единственный. Если единичной подматрицы не обнаруживается, то либо придется перебирать все подсистемы m уравнений с m неизвестными в надежде обнаружить неотрицательные решения, либо прибегнуть к методу искусственного базиса. Метод искусственного базиса заключается в том, что для получения единичной подматрицы коэффициентов мы вводим в исходную задачу неотрицательные так называемые искусственные переменные и включаем их в целевую функцию с коэффициентом +М для задачи минимизации и с коэффициентом -М для задачи максимизации, где М>0 - сколь угодно большое число. Полученная задача называется расширенной по отношению к исходной. Искусственные переменные образуют начальное базисное решение. Применив симплекс-метод, необходимо вывести из базиса все искусственные переменные. Если удается доказать (или показать), что искусственные переменные полностью вывести из базиса невозможно, то это означает, что задача не имеет решения, то есть ее ограничения противоречивы. Если на текущей итерации из базиса выводится искусственная переменная, то в следующей симплекс-таблице соответствующий ей столбец можно удалить, в дальнейших итерациях он не будет участвовать. 6 Российский государственный гуманитарный университет (филиал г. Киров) 4. Двойственность в задачах линейного программирования С каждой задачей линейного программирования тесно связана другая линейная задача, называемая двойственной; первоначальная задача называется исходной или прямой. Исходная задача Двойственная задача m n g ( y1 , y 2 ,..., y m ) bi y i min f ( x1 , x2 ,..., xn ) c j x j max i 1 j 1 m n a j 1 ij a x j bi , i 1, m, x j 0, i 1 ij yi c j , j 1, n, y i 0, i 1, m. j 1, n. Две приведенные задачи образуют двойственную пару. Двойственная задача по отношению к исходной составляется согласно следующим правилам: 1) целевая функция исходной задачи формулируется на максимум, а целевая функция двойственной задачи — на минимум, при этом в задаче на максимум все неравенства в функциональных ограничениях имеют вид "", в задаче на минимум — вид ""; 2) матрица А, составленная из коэффициентов при неизвестных в системе ограничений исходной задачи и аналогичная матрица Ат в двойственной задаче получаются друг из друга транспонированием; 3) число переменных в двойственной задаче равно числу функциональных ограничений исходной задачи, а число ограничений в системе двойственной задачи — числу переменных в исходной задаче; 4) коэффициентами при неизвестных в целевой функции двойственной задачи являются свободные члены в системе ограничений исходной задачи, а правыми частями в ограничениях двойственной задачи — коэффициенты при неизвестных в целевой функции исходной задачи; 5) если переменная xj исходной задачи может принимать только положительные значения, то j-ое условие в системе ограничений двойственной задачи является неравенством вида "≥". Если же переменная может принимать как положительные, так и отрицательные значения, то j-ое условие представляет собой уравнение. И наоборот, если i-ое соотношение в системе ограничений исходной задачи является неравенством, то i-ая переменная двойственной задачи yi. В противном случае переменная yi может принимать как положительные, так и отрицательные значения. В теории двойственности используются четыре пары двойственных задач (приведем их в матричной форме записи): Исходная задача Двойственная задача Симметричные пары F ( X ) CX max, g (Y ) YB min, 1. AX B, 1. YA C , X 0; Y 0. F ( X ) CX min, g (Y ) YB max, 2. YA C , 2. AX B, Y 0. X 0; F ( X ) CX max, 3. AX B, X 0; Несимметричные пары 7 3. g (Y ) YB min, YA C. Российский государственный гуманитарный университет (филиал г. Киров) F ( X ) CX min, 4. AX B, X 0; 4. g (Y ) YB max, YA C. Первая теорема двойственности. Если одна из пары двойственных задач имеет оптимальный план, то и другая имеет оптимальный план и значения целевых функций задач при их оптимальных планах равны между собой, т. е. Fmax g min . Если же целевая функция одной из пары двойственных задач не ограничена (для исходной – сверху, для двойственной – снизу), то другая задача вообще не имеет планов. Вторая теорема двойственности. План X * ( x1* , x2* ,..., xn* ) исходной задачи и план Y * ( y1* , y 2* ,..., y n* ) двойственной задачи являются оптимальными планами этих задач тогда и только тогда, когда для любых i и j выполняются равенства: * x j 0, * * x j ( aij y i c j ) 0 i 1 x *j 0, * y i 0, n * * y i ( a ij x j bi ) = 0 j 1 x *j 0, m m a i 1 m a i 1 ij y i* c j , ij y i* c j , n a ij x *j bi , a ij x *j bi . j 1 n j 1 Если в оптимальном плане одной из задач соответствующая переменная отлична от нуля, то ограничение другой задачи в оптимальном плане выполняются в виде равенства. Если в оптимальном плане одной из задач какое-либо ограничение выполняется в виде строгого неравенства, то соответствующая переменная другой задачи в оптимальном плане равна нулю. Эти условия позволяют, зная оптимальное решение одной из взаимно двойственных задач, найти оптимальное решение другой задачи. Пример. Решить задачу линейного программирования симплексным методом. Составить для данной задачи линейного программирования двойственную задачу и по решению прямой задачи найти решение двойственной, используя теоремы двойственности. z 2x1 3x2 max x1 2 x 2 1, 2 x1 x 2 8, 2 x x 3, 1 2 x1 , x 2 0. Приведем задачу к каноническому виду. Для этого к левой часть первого неравенства прибавим дополнительную неотрицательную переменную x3 , к левой части второго - x 4 . А вот из левой части третьего неравенства вычтем переменную x5 . В целевую функцию каждая из этих переменных входит с коэффициентом 0 (т. е. не входят). Получаем z 2 x1 3x2 0 x3 0 x4 0 x5 max x1 2 x 2 x3 1, 2 x1 x 2 x 4 8, 2 x x x 3, 1 2 5 x1 , x 2 , x3 , x 4 , x5 0. Преобразованную систему уравнений запишем в векторной форме: 8 Российский государственный гуманитарный университет (филиал г. Киров) x1 P1 x2 P2 x3 P3 x4 P4 x5 P5 P0 , 1 2 1 0 0 1 где P1 2 ; P2 1 ; P3 0 ; P4 1 ; P5 0 ; P0 8 . 2 1 3 1 0 0 Среди векторов P1, P2, P3, P4, P5, только два единичных вектора (P3 и P4), т.е. единичного базиса нет. Поэтому составим расширенную задачу. Для этого в левую часть третьего уравнения системы ограничений добавим искусственную переменную x 6 . Её нужно как можно быстрее вывести из базиса. Поэтому в целевую функцию в задаче максимизации новая переменная войдёт с очень большим отрицательным коэффициентом –М. Расширенная задача имеет опорный план X (0, 0, 1, 8, 0, 3) , определяемый системой трёх единичных векторов: P3 , P4 , P6 . Составим симплексную таблицу для I итерации: 1 2 P1 -1 3 P2 2 0 P3 1 0 P4 0 0 P5 0 -М P6 0 0 8 2 1 0 1 0 0 -М 3 1 0 0 -1 1 0 2 -2 -3 0 0 0 0 -3 -2 -1 0 0 1 0 Базис СБ P0 1 P3 0 2 P4 3 P6 4 j 5 j F0 Вычислим оценки разложений векторов по базису опорного решения по формуле j z j c j , где zj находится как скалярное произведение вектора Pj (j=1,m) на вектор Сб=(с1, с2, ...,сm): m z j ci aij ( j 1, m) . i 1 1 C б P1 с1 (0,0, M ) (1,2,2) 2 2 2M ; 2 C б P2 с 2 (0,0, M ) (2,1,1) 3 3 M ; 3 C б P3 с3 (0,0, M ) (1,0,0) 0 0; 4 C б P4 с 4 (0,0, M ) (0,1,0) 0 0; 5 C б P5 с5 (0,0, M ) (0,0,1) 0 M ; 6 C б P6 с6 (0,0, M ) (0,0,1) ( M ) 0. Оценки векторов, входящих в базис, всегда равны нулю. Значение F0 равно скалярному произведению вектора P0 на вектор Сб: F0=1*0+8*0+3*(-М) = -3М. Значения F0 и z j c j состоят из двух слагаемых M j j . Слагаемое, которое не содержит М, записываем в 4-й строке, а число, стоящее при М – в 5-й. Начальное опорное решение не является оптимальным, так как в 5-й строке имеется два отрицательных числа 1 2 и 2 1 . Для оптимальности опорного решения в задаче на максимум требуется неотрицательность оценок для всех векторов. Чтобы перейти к новому опорному решению в базис можно ввести любой из векторов P1 и P2. Выберем P1, так как ему соответствует наибольшая по модулю оценка. Для определения вектора, подлежащего вывоb ду из базиса, находят j min( i ) для всех aij>0. Для вектора P1 получим aij 1 min( b2 b3 b 8 3 3 ; ) min( ; ) ( a11 1 0 , поэтому отношение 1 не рассматриваем). a21 a31 2 2 2 a11 9 Российский государственный гуманитарный университет (филиал г. Киров) Минимум достигается при i=3. В третьей строке столбца «Базис» находится вектор Р6. Следовательно, его из базиса исключаем. Далее выполним преобразование Жордана с разрешающим элементом a 31 =2: 1) разделим всю третью строку на 2 и запишем результат в новую симплексную таблицу; 2) остальные элементы первого столбца нужно занулить, для этого полученную 3-ю строку сложим с первой, результат запишем в первую строку новой симплексной таблицы; 3) умножим 3-ю строку на -2 и сложим со второй строкой, результат запишем во вторую строку новой симплексной таблицы. Получим симплексную таблицу для II итерации: Базис СБ P0 2 P1 3 P2 0 P3 0 P4 0 P5 -М P6 1 P3 0 5/2 0 5/2 1 0 -1/2 1/2 2 3 4 P4 0 2 5 3/2 3 0 1 0 0 1/2 -2 0 0 0 1 0 0 1 -1/2 -1 -1 1/2 1 P1 Она содержит только четыре строки, так как искусственный вектор из базиса исключён и оценки больше не содержат слагаемого с М. Этот вектор не имеет смысла вводить ни в один из последующих базисов, поэтому в дальнейшем столбец данного вектора можно не заполнять. Но так как от нас требуется найти решение двойственно задачи, то мы его оставим. 3 5 Получили новый опорный план X ( , 0, , 5, 0, 0) и значение целевой функции F0 = 3. 2 2 Рассмотрим элементы 4-й строки. В столбце векторов P2 и P5 имеются отрицательные числа, значит, найденный план не является оптимальным. Вводить в базис будем вектор P2 , исключать P3 . Получим симплексную таблицу для III итерации. 1 2 P1 0 3 P2 1 0 P3 2/5 0 P4 0 0 P5 -1/5 -М P6 1/5 0 5 0 0 0 1 1 -1 2 1 5 1 0 0 0 -1/5 4/5 0 0 -2/5 -7/5 2/5 7/5 Базис СБ P0 1 P2 3 2 P4 3 4 P1 Последняя строка снова содержит отрицательное число. В базис вводим вектор P5 , исключаем P4 . 2 5 2 P1 0 0 3 P2 1 0 0 P3 2/5 0 0 P4 1/5 1 0 P5 0 1 -М P6 0 -1 3 12 1 0 0 0 -1/5 4/5 2/5 7/5 0 0 0 0 Базис СБ P0 1 2 P2 P5 3 0 3 4 P1 2 10 Российский государственный гуманитарный университет (филиал г. Киров) В 4-й строке последней симплексной таблицы нет отрицательных чисел. Значит найденный опорный план X * (3, 2, 0, 0, 5, 0) является оптимальным. Значение целевой функции z max 12 . Составим двойственную задачу. Умножим третье ограничение на -1, тогда все неравенства будут содержать знак «≤». Задача примет вид исходной задачи симметричной пары 1: z 2x1 3x2 max x1 2 x 2 1, y1 2 x1 x 2 8, y 2 2 x1 x 2 3, y 3 x1 , x 2 0. Число переменных в двойственной задаче равно числу ограничений в исходной задаче, т.е. трём: y1 , y 2 , y3 . Умножим правые части ограничений на соответствующие переменные двойственной задачи и сложим их, получим целевую функцию: g y1 8 y 2 3 y3 . Целевая функция исходной задачи исследуется на максимум, следовательно, целевая функция двойственной задачи исследуется на минимум. 1 2 Матрица системы ограничений исходной задачи имеет вид: A 2 1 . Транспони 2 1 1 2 2 . Правыми руем её и получим аналогичную матрицу двойственной задачи - AT 2 1 1 частями в ограничениях двойственной задачи являются коэффициенты при неизвестных в целевой функции исходной задачи. Окончательно двойственная задача имеет следующий вид: g y1 8 y 2 3 y3 min . y1 2 y 2 2 y 3 2, 2 y1 y 2 y 3 3, y1 , y 2 , y 3 0. Найдём её решение, используя теоремы двойственности. По первой теореме двойственности оптимальные решения исходной и двойственной задач равны, следовательно, g min z max 12 . Из соотношений второй теоремы двойственности следует, что если какое-то ограничение исходной задачи выполняется в виде строгого неравенства, то соответствующая двойственная оценка равна нулю. Подставим найденное оптимальное решение в систему ограничений исходной задачи: 1 * 3 2 * 2 1 1, 2 * 3 1 * 2 8 8, 2 * 3 1 * 2 7 3. Третье ограничение выполняется в виде строгого неравенства, следовательно, y 3* 0 . Если некоторая компонента x i* оптимального плана исходной задачи отлична от нуля, то соответствующее ограничение двойственной задачи выполняется в виде равенства. В нашем примере и x1* 3 0 , и x2* 2 0 , следовательно, оба ограничения двойственной задачи выполняются в виде равенства. 11 Российский государственный гуманитарный университет (филиал г. Киров) y1 2 y 2 2 y 3 2, y 2 y 2, * 2 y y y 3. Учитывая, что y 3 0 , получим: 2 y1 y 2 3. 1 2 3 2 1 Решив систему, получим y1 4 / 5, y2 7 / 5. Окончательно Y * (4 / 5, 7 / 5, 0), g min 12. Решение двойственной задачи можно получить другим способом, используя формулу * Y C Б P 1 . Матрица P 1 находится в последней симплексной таблице. Ее столбцы расположены под столбцами единичной матрицы, образующими базис начального опорного решения, т. е. под векторами P3 , P4 , P6 (именно для этой цели мы продолжали вычислять вектор P6 ): 2 / 5 1 / 5 0 3 * 2 / 5 0 * 0 2 * (1 / 5) Y * (3 0 2) 0 1 1 3 *1 / 5 0 *1 2 * 2 / 5 4 / 5 7 / 5 0. 1 / 5 2 / 5 0 3 * 0 0 * (1) 2 * 0 Ответ: X * (3, 2) , z max 12 ; Y * (4 / 5, 7 / 5, 0), g min 12. 5. Транспортная задача Пусть имеется m поставщиков А1, А2, ..., Аm однородного груза в количествах соответственно а1, а2, .., .аm единиц и n потребителей В1, В2, ..., Вn этого груза, потребность которых составляет соответственно b1, b2 ..., bn единиц. Известны стоимости перевозок (тариф) единицы груза от i-го поставщика к j-му потребителю - сij (i=1,m; j=1,n). Требуется составить такой план перевозок, который обеспечит минимальные транспортные расходы. Возможны три ситуации: 1) количество груза у всех поставщиков равно потребности в данном грузе всех потребителей: a1 a2 ... am b1 b2 ... bn или m n i 1 j 1 ai b j . 2) количество груза у всех поставщиков больше потребности в данном грузе всех потребителей: a1 a2 ... am b1 b2 ... bn или m n a b i i 1 j 1 j . 3) количество груза у всех поставщиков меньше потребности в данном грузе всех потребителей: a1 a2 ... am b1 b2 ... bn или m n i 1 j 1 ai b j . В первом случае модель задачи называется закрытой, во втором и третьем – открытой. Теорема. Для разрешимости транспортной задачи необходимо и достаточно, чтобы запасы груза в пунктах отправления были равны потребностям в грузе в пунктах назначения, т. е. чтобы выполнялось равенство m n i 1 j 1 ai b j . 12 Российский государственный гуманитарный университет (филиал г. Киров) В случае превышения запаса над потребностью вводится фиктивный (n + 1)-й пункт m n i 1 j 1 назначения с потребностью bn1 ai b j и соответствующие тарифы считаются равными нулю. Аналогично вводится фиктивный (m + 1)-й пункт отправления с запасом груза n m j 1 i 1 a m1 b j ai и тарифы полагаются равными нулю. Этим задача сводится к закрытой транспортной задаче, из оптимального плана которой получается оптимальный план исходной задачи. Решение транспортной задачи включает следующие этапы: 1. Нахождение первоначального опорного плана (метод северо-западного угла, метод минимальной стоимости). При этом число заполненных клеток должно быть равно m+n-1. При нахождении опорного плана методом северо-западного угла запасы очередного поставщика используются для обеспечения запросов очередных потребителей до тех пор, пока не будут исчерпаны полностью, после чего используются запасы следующего по номеру поставщика. Заполнение начинается с левой верхней клетки (северо-западный угол). На каждом шаге, исходя из запасов очередного поставщика и запросов очередного потребителя, заполняется только одна клетка и исключается из рассмотрения один поставщик или потребитель. Если в очередную клетку таблицы требуется поставить перевозку, а поставщик или потребитель имеют нулевые запасы или запросы, то в клетку ставится перевозка, равная нулю (базисный нуль), и после этого исключается из рассмотрения поставщик или потребитель. Метод минимальной стоимости позволяет построить решение, близкое к оптимальному, так как использует матрицу стоимостей транспортной задачи. На каждом шаге заполняется только одна клетка, соответствующая минимальной стоимости, и исключается из рассмотрения только один поставщик или один потребитель. Очередную клетку, соответствующую минимальной стоимости, заполняют по тем же правилам, что и в методе северозападного угла. Поставщик исключается из рассмотрения, если его запасы исчерпаны полностью. Потребитель исключается из рассмотрения, если его запросы удовлетворены полностью. При этом если поставщик еще не исключен, но его запасы равны нулю, то на том шаге, когда от поставщика требуется поставить груз, в соответствующую клетку таблицы заносится базисный нуль и лишь затем поставщик исключается из рассмотрения. 2. Проверка опорного плана на оптимальность, например, методом потенциалов. Пример. Четыре предприятия используют три вида сырья. Потребности в сырье каждого из предприятий соответственно равны 100, 90, 170 и 30 ед. Сырьё сосредоточено в трёх пунктах, а запасы соответственно равны 200, 160, и 140 ед. Тарифы перевозок заданы матрицей 12 15 21 14 С 13 8 15 10 . 19 16 26 12 Составить такой план перевозок, при котором общая стоимость перевозок является минимальной? Данная задача является открытой, так как потребности в сырье 100+90+170+30=390 меньше запасов 200+160+140=500. Введём 5-го фиктивного потребителя с потребностью b5 500 390 110 . Теперь исходные данные задачи запишем в виде таблицы, а опорный план получим методом северо-западного угла. Заполнение таблицы начинаем с клетки (1,1). х11 = min(a1=200,b1=100)=b1=100 – запасы А1 позволяют полностью удовлетворить потребности пункта В1, значит исключаем этого 13 Российский государственный гуманитарный университет (филиал г. Киров) потребителя из рассмотрения. Теперь запасы пункта A1 считаем равными a1=200-100=100 ед. В оставшейся части таблицы левой верхней клеткой является (1,2): х12 = min(a1,b2)=b2=90 – снова запасы удовлетворяют потребность полностью. Внесём значение в соответствующую клетку и исключим из рассмотрения столбец В2. Запасы пункта А1 считаем равными a1=10090=10 ед. Теперь «северо-западным углом» является клетка (1,3). х13 = min(a1,b3)=a1=10 – запасы могут удовлетворить потребность пункта B3 частично. Заполняем клетку (1,3) и исключаем из рассмотрения строку A1. Потребности пункта B3 считаем равными b3=17010=160. х23 = min(a2,b3)=a2=b3=160 – запасы A2 исчерпаны, потребность B3 удовлетворена. Но по правилам мы не можем вычеркнуть и строку и столбец одновременно. Поэтому исключим из рассмотрения сначала столбец B3, а в клетку (2,4) запишем х24 =0 (так как запасы А2 уже исчерпаны) и только теперь вычеркнем строку А2. И так далее. Получим следующую таблицу. Потребности Запасы a1=200 a2=160 a3=140 α1=0 α2=-6 α3=-4 b1=100 b2=90 b3=170 b4=30 b5=110 β1=12 β2=15 β3=21 β4=16 β 5=4 0 100 15 90 21 10 14 8 15 160 10 0 0 16 26 12 30 0 110 12 13 19 Число заполненных клеток равно 7 и m+n-1=3+5-1=7 – план невырожденный. Оптимальный план найдём методом потенциалов. Теорема. В оптимальном плане транспортной задачи заполненным клеткам отвечают равенства αi β j cij , а пустым неравенства αi β j cij . Расставим потенциалы: α1 0 α1 β1 с11 12 α 2 6 α1 β 2 с12 15 α -4 α β с 21 3 1 3 13 β 12 α 2 β3 с 23 15 , положим α1 0 , тогда β 1 15 . 2 α 2 β 4 с 24 10 β 3 21 α β с 12 3 4 34 β 4 16 α β с 0 5 35 3 β 5 0 (Обычно равным нулю принимают потенциал строки или столбца с наибольшим числом заполненных клеток.) Теперь проверим пустые клетки на выполнение неравенства α i β j c ij . α1 β 4 0 16 16 14; Δ14 16 14 2 α1 β5 0 4 4 0; Δ15 4 0 4 α β 6 12 6 13 1 2 α 2 β 2 6 15 9 8; Δ22 9 8 1 . α 2 β5 6 4 2 0 α3 β1 -4 12 8 19 α3 β 2 -4 15 11 16 α3 β3 -4 21 17 26 Для клеток (1,4), (1,5), (2,2) неравенство не выполняется, значит опорный план не является оптимальным. В одну из этих клеток нужно "ввезти" груз. Выбираем ту, для которой разница ij максимальна, т. е. в (1,5). Строим цикл. Цикл перерасчёта таблицы - это последовательность ячеек, начинающаяся и заканчивающаяся в одной и той же клетке, с вершинами, лежащими в занятых клетках, кроме одной. Вершина цикла – клетка, в которой происходит поворот под прямым углом. "Перемещаем" груз по следующим правилам: 14 Российский государственный гуманитарный университет (филиал г. Киров) 1. каждой из клеток, связанных циклом присваивается знак: пустой ячейке "+", остальным - поочерёдно знаки "-" и "+" . 2. среди минусовых клеток находим число x min( xij ) и прибавляем его к числам, стоящим в плюсовых клетках, и вычитаем из чисел, стоящих в минусовых клетках; остальные клетки вне цикла остаются без изменения. В нашем примере цикл образуют шесть ячеек: (1,5) – пустая, для которой не выполняется неравенство, и (3,5), (3,4), (2,4), (2,3), (1,3) – заполненные. х = min(10,0,110)=0. Значит в плюсовые клетки "завозим" 0 ед. груза, из минусовых "вывозим". Получим новый опорный план: Потребности Запасы a1=200 a2=160 a3=140 α1=0 α2=-6 α3=0 b1=100 b2=90 b4=30 b5=110 β1=12 β2=15 β3=21 β4=12 14 12 100 15 90 21 10 β 5=0 0 0 13 19 10 0 12 30 0 8 16 b3=170 15 26 160 110 Расставим потенциалы и проверим пустые клетки на выполнение неравенства αi β j cij . Для клетки (2,2) неравенство не выполняется. Строим новый цикл. х = min(90,160)=90. Значит в плюсовые клетки "завозим" 90 ед. груза, из минусовых "вывозим". Получим новый опорный план: Потребности Запасы a1=200 a2=160 a3=140 α1=0 α2=-6 α3=0 b1=100 b2=90 b3=170 b4=30 b5=110 β1=12 β2=15 β3=21 β4=12 β 5=0 15 14 12 100 21 100 0 0 13 0 8 90 15 70 10 19 16 26 12 30 0 110 Расставим потенциалы и проверим пустые клетки на выполнение неравенства αi β j cij . Полученный план является оптимальным. 100 0 100 0 0 Ответ: X 0 90 70 0 0 , 0 0 0 30 110 zmin x11c11 x13c13 x22c22 x23c23 x32c32 x34c34 =100*12+100*21+90*8+70*15+30*12=5430. Так как пятый потребитель является фиктивным, то 110 ед. груза у третьего поставщика останутся невостребованными. 15 Российский государственный гуманитарный университет (филиал г. Киров) Задачи для самостоятельного решения Задание 1 Построить на плоскости область решений системы линейных неравенств a11x1 a12 x2 b1 a21x1 a22 x2 b2 a31x1 a32 x2 b3 и геометрически найти наименьшее и наибольшее значения линейной функции f c1 x1 c2 x2 в этой области. x1 x 2 3, 1. 5 x1 3x 2 97, x1 7 x 2 77; f 3x1 4x2 . 3x1 x 2 9, 2. 2 x1 3x 2 50, x1 4 x 2 19; f x1 5x2 . x1 4 x 2 53, 3. x1 x 2 3, 7 x1 3x 2 71; f 9x1 2x2 . 6 x1 5 x2 17, 4. x1 2 x2 34, 4 x1 9 x2 17; f 5x1 3x2 . 3x1 14 x 2 78, 5. 5 x1 6 x 2 26, x1 4 x 2 26; f 5x1 7 x2 . 11x1 3x 2 24, 6. 9 x1 4 x 2 110, 2 x1 7 x 2 15; f 9x1 2 x2 . 4 x1 5 x2 29, 7. 3x1 x2 14, 5 x1 2 x2 38; f 3x1 2x2 . 2 x1 x2 4, 8. x1 3x2 37, 4 x1 9 x2 20; 10 x1 x 2 57, 9. 2 x1 3x 2 53, 6 x1 7 x 2 15; 4 x1 x 2 6, 10. 9 x1 8 x 2 157, 3x1 11x 2 16; f x1 x2 . x1 x 2 3, 11. 5 x1 3x 2 97, x1 7 x 2 77; f 7 x1 2 x2 . 3x1 x 2 9, 12. 2 x1 3x 2 50, x1 4 x 2 19; f 6 x1 x2 . x1 4 x 2 53, 13. x1 x 2 3, 7 x1 3x 2 71; f x1 7 x2 . 6 x1 5 x2 17, 14. x1 2 x2 34, 4 x1 9 x2 17; f x1 9x2 . 3x1 14 x 2 78, 15. 5 x1 6 x 2 26, x1 4 x 2 26; f x1 8x2 . 11x1 3x 2 24, 16. 9 x1 4 x 2 110, 2 x1 7 x 2 15; f 7 x1 x2 . 4 x1 5 x2 29, 17. 3x1 x2 14, 5 x1 2 x2 38; f 3x1 x2 . 2 x1 x2 4, 18. x1 3x2 37, 4 x1 9 x2 20; f x1 3x2 . 10 x1 x 2 57, 19. 2 x1 3x 2 53, 6 x1 7 x 2 15; f 2x1 3x2 . 4 x1 x 2 6, 20. 9 x1 8 x 2 157, 3x1 11x 2 16; f 8x1 5x2 . 4 x1 5 x2 29, 21. 3x1 x2 14, 5 x1 2 x2 38; f x1 x2 . f 4x1 3x2 . 16 f 5x1 x2 . Российский государственный гуманитарный университет (филиал г. Киров) 6 x1 5 x2 17, 22. x1 2 x2 34, 4 x1 9 x2 17; f 4x1 3x2 . x1 x 2 3, 23. 5 x1 3x 2 97, x1 7 x 2 77; f 3x1 4x2 . 2 x1 x2 4, 24. x1 3x2 37, 4 x1 9 x2 20; f x1 3x2 . 10 x1 x 2 57, 25. 2 x1 3x 2 53, 6 x1 7 x 2 15; x1 2 x 2 6, 26. x1 x 2 9, 3x1 x 2 15; 3x1 2 x 2 6, 27. x1 4 x 2 2, x1 x2 5; f 2x1 3x2 . f 5x1 x2 . 4 x1 x 2 6, 28. 9 x1 8 x 2 157, 3x1 11x 2 16; f x1 4x2 . f 4x1 2 x2 . x1 4 x 2 53, 29. x1 x 2 3, 7 x1 3x 2 71; f 3x1 x2 . 11x1 3x 2 24, 30. 9 x1 4 x 2 110, 2 x1 7 x 2 15; f x1 7 x2 . Задание 2 а) Решить задачу линейного программирования графическим и симплексным методом. б) Составить для данной задачи линейного программирования двойственную задачу и по решению прямой задачи найти решение двойственной, используя теоремы двойственности. x1 x 2 3, x1 2 x 2 8, x1 4 x2 12, 2 x1 x 2 6, 2 x1 x 2 2, 4 x 7 x2 30, 1. 2. 3. 1 2 x 5 x 2 10, x 2 x 2 2, x x2 1, 1 1 1 x , x 0 ; x , x 0 ; x1 , x2 0; 1 2 1 2 z x1 2 x2 min . z 4x1 5x2 max . z x1 2x2 min . 2 x1 x 2 14, 4 x x 2 16, 4. 1 3 x x 2 6, 1 x1 , x 2 0; z 5x1 x2 max . 3x1 5 x2 15, 3x1 x2 9, 5. 4 x1 5 x2 20, x1 , x2 0; z x1 3x2 min . 5 x1 2 x2 18, x 2 x2 10, 6. 1 4 x 5 x2 20, 1 x1 , x2 0; z 2x1 3x2 max . 5 x1 2 x2 x 2 x2 7. 1 4 x 3x2 1 x1 , x2 2 x1 3x2 12, 7 x 3x2 9, 8. 1 x1 1, x1 , x2 0; x1 2 x2 3x 2 x2 9. 1 x 2 x2 1 x1 , x2 7, 5, 12, 0; z 4 x1 6 x2 max . x1 2 x2 2, 2 x1 x2 2, 10. x1 x2 2, x1 , x2 0; z 3x1 5x2 max . z x1 3x2 max . x1 x2 1, x x2 7, 11. 1 8 x 3x2 24, 1 x1 , x2 0; z 4x1 x2 min . 17 8, 12, 2, 0; z 3x1 4x2 min . 7 x1 4 x2 26, x 2 x2 8, 12. 1 x1 1, x , x 1 2 0; z 2x1 3x2 max . Российский государственный гуманитарный университет (филиал г. Киров) 3x1 4 x2 0, x1 x2 7, 13. 3x1 7 x2 21, x1 , x2 0; z 3x1 4x2 min . 9 x1 7 x2 64, x 4 x2 20, 14. 1 9 x 4 x2 36, 1 x1 , x2 0; z 3x1 5x2 max . x1 x2 1, x x2 7, 15. 1 x x2 3, 1 x1 , x2 0; z 2 x1 3x2 min . 2 x1 3x2 7, 4 x 9 x2 36, 16. 1 2 x 3x2 6, 1 x1 , x2 0; z 3x1 2x2 max . 4 x1 2 x 2 3, 8 x1 9 x 2 72, 17. 3x1 2 x 2 6, x1 , x 2 0; z 2 x1 3x2 min . x1 2 x 2 15, 3x 5 x 2 12, 18. 1 5 x 3x 2 26, 1 x1 , x 2 0; z 4x1 3x2 max . 3x1 2 x2 5, 7 x1 2 x2 7, 19. 4 x1 5 x2 20, x1 , x2 0; z 2x1 6x2 min . x1 2 x 2 7, x1 x 2 1, 20. x1 x 2 1, x1 , x 2 0; z 5x1 7 x2 max . x1 x 2 3, 2 x x 2 6, 21. 1 2 x 5 x 2 10, 1 x1 , x 2 0; z x1 2 x2 max . 2 x1 x 2 14, 4 x x 2 16, 22. 1 3 x x 2 6, 1 x1 , x 2 0; z 5x1 x2 max . 5 x1 2 x2 7, x 2 x2 5, 23. 1 4 x 3x2 12, 1 x1 , x2 0; z 4 x1 6 x2 max . x1 2 x2 2, 2 x1 x2 2, 24. x1 x2 2, x1 , x2 0; z 3x1 5x2 max . 7 x1 4 x2 26, x 2 x2 8, 25. 1 x1 1, x , x 1 2 0; z 2x1 3x2 max . x1 2 x 2 8, 2 x1 x 2 2, 26. x 2 x 2 2, 1 x1 , x 2 0; z 2x1 x2 min . x1 4 x2 12, 4 x 7 x2 30, 27. 1 x x2 1, 1 x1 , x2 0; z 2x1 x2 max . 3x1 5 x2 3x1 x2 28. 4 x1 5 x2 x1 , x2 5 x1 2 x2 x 2 x2 29. 1 4 x 5 x2 1 x1 , x2 2 x1 3x2 12, 7 x 3x2 9, 30. 1 x1 1, x1 , x2 0; 15, 9, 20, 0; z 4x1 x2 max . 18, 10, 20, 0; z x1 x2 max . 18 z 3x1 x2 min . Российский государственный гуманитарный университет (филиал г. Киров) Задание 3 На базах Ai имеется однородный груз в количестве a i тонн. Этот груз требуется перевезти в пункты B j , имеющие потребности b j тонн. Расстояние между пунктами отправления и пунктами назначения заданы матрицей расстояний D . Стоимость перевозки пропорциональна количеству груза и расстоянию, на которое этот груз перевозится. Спланировать перевозки так, чтобы их общая стоимость была минимальной (ввиду пропорциональности затрат количеству груза и расстоянию, для решения задачи достаточно минимизировть общий объём плана, выраженный в тонно-километрах). Задачу решить методом потенциалов, первоначальный опорный план составить методом северо-западного угла. b1 90 a1 200 12 15 21 14 b2 100 1. a 2 150 D 14 8 15 11 . b3 160 19 16 26 12 a3 150 b4 40 a1 300 a 2 280 a3 220 b1 180 b2 140 b3 260 b4 120 12 21 10 10 D 13 15 11 13 . 19 26 12 17 3. a1 250 a 2 220 b1 180 b2 120 b3 90 b4 80 b5 105 D 12 8 21 10 15 . 13 4 15 13 21 4. a1 400 a 2 250 a3 280 b1 200 b2 200 b3 230 b4 220 13 9 5 15 D 14 5 12 14 . 20 17 13 18 5. a1 150 a 2 250 b1 160 b2 70 b3 90 b4 80 b5 100 D 8 20 7 11 16 . 4 14 12 15 17 6. a1 280 a 2 300 a3 220 b1 170 b2 110 b3 190 b4 140 28 12 7 18 D 35 14 12 15 . 35 15 11 25 7. a1 150 a 2 240 b1 180 b2 120 b3 90 b4 100 b5 80 D 14 18 17 19 4 . 7 10 5 11 5 8. a1 250 a 2 400 a3 550 b1 300 b2 350 b3 200 b4 150 9 15 35 20 D 15 35 12 11 . 20 19 40 15 2. 19 Российский государственный гуманитарный университет (филиал г. Киров) 9. a1 170 a 2 150 b1 100 b2 70 b3 130 b4 110 b5 90 10. a1 280 a 2 220 a3 300 b1 190 b2 140 b3 170 b4 120 7 3 9 15 D 3 10 12 20 . 15 11 16 19 11. a1 200 a 2 250 b1 120 b2 80 b3 205 b4 90 b5 105 D 9 6 17 11 9 . 13 4 9 5 7 12. a1 350 a 2 400 a3 250 b1 170 b2 180 b3 230 b4 270 5 13 18 17 D 6 10 15 6 . 24 21 9 16 13. a1 250 a 2 250 b1 120 b2 130 b3 80 b4 270 b5 50 D 13 7 16 4 15 . 20 9 6 10 19 14. a1 250 a 2 180 a3 370 b1 160 b2 170 b3 100 b4 220 4 11 9 13 D 6 5 4 4 . 4 9 11 6 15. a1 350 a 2 360 a3 350 b1 160 b2 190 b3 300 b4 250 6 9 10 14 D 17 6 4 1 . 12 8 9 8 16. a1 250 a 2 350 b1 150 b2 100 b3 250 b4 210 b5 190 D 7 9 16 8 16 . 13 12 18 12 20 17. a1 100 a 2 150 a3 150 b1 100 b2 50 b3 100 b4 100 2 3 5 7 D 1 3 0 4 . 3 1 2 1 18. a1 200 a 2 200 b1 100 b2 100 b3 80 b4 50 D 3 2 5 1 . 2 2 4 2 D 20 3 9 15 35 . 14 10 12 20 45 20 Российский государственный гуманитарный университет (филиал г. Киров) 19. a1 200 a 2 300 b1 100 b2 150 b3 250 b4 100 D 2 2 3 1 . 4 2 1 4 20. a1 180 a 2 120 a3 200 b1 90 b2 100 b3 110 b4 100 2 1 2 5 D 3 1 1 4 . 2 4 2 1 21. a1 200 a 2 150 a3 150 b1 90 b2 100 b3 160 b4 40 12 15 21 14 D 14 8 15 11 . 19 16 26 12 a1 250 a 2 220 b1 180 b2 120 b3 90 b4 80 b5 105 D 12 8 21 10 15 . 13 4 15 13 21 a1 140 a 2 260 b1 150 b2 80 b3 90 b4 80 b5 100 D 8 18 7 11 16 . 4 14 12 13 17 a1 160 a 2 230 b1 190 b2 110 b3 100 b4 90 b5 80 D 14 16 17 15 4 . 7 10 5 11 5 25. a1 180 a 2 140 b1 90 b2 80 b3 130 b4 110 b5 90 D 18 3 9 15 35 . 14 10 12 20 25 26. a1 260 a 2 240 a3 300 b1 200 b2 140 b3 160 b4 120 7 4 9 15 D 3 10 12 14 . 17 11 16 12 27. a1 150 a 2 210 a3 190 b1 100 b2 140 b3 160 b4 90 7 4 9 11 D 6 10 12 14 . 17 11 15 12 22. 23. 24. 21 Российский государственный гуманитарный университет (филиал г. Киров) 28. a1 240 a 2 160 29. a1 300 a 2 240 a3 260 30. a1 220 a 2 180 b1 130 b2 100 b3 90 b4 80 b5 100 b1 160 b2 140 b3 200 b4 120 b1 120 b2 110 b3 90 b4 70 b5 110 D 8 15 7 11 16 . 6 14 12 13 17 7 6 9 16 D 3 10 12 14 . 13 11 15 12 D 8 12 7 11 16 . 4 14 12 13 15 ЛИТЕРАТУРА 1. Акулич И. Л.. Математическое программирование в примерах и задачах. – М.: Высшая школа, 1986. 2. Высшая математика для экономистов / Под ред. Н. Ш. Кремера. – М.: Банки и биржи, ЮНИТИ, 1997. 3. Калихман И. Л. Сборник задач по математическому программированию. – М.: Высшая школа, 1979. 4. Кузнецов Ю. Н., Кузубов В. И., Волощенко А. Б. Математическое программирование. – М.: Высшая школа, 1986. 5. Руководство к решению задач с экономическим содержанием по курсу высшей математики / Под ред. А. И. Карасева и Н. Ш. Кремера. – М.: ВЗФЭИ, 1989. 22