Постановка задачи линейного программирования и двойственная задача линейного программирования. Линейное программирование является составной частью раздела математики, который изучает методы нахождения условного экстремума функции многих переменных и называется математическим программированием. В классическом математическом анализе рассматривается задача отыскания условного экстремума функции. Тем не менее, время показало, что для многих задач, возникающих под влиянием запросов практики, классические методы недостаточны. В связи с развитием техники, ростом промышленного производства и с появлением ЭВМ все большую роль начали играть задачи отыскания оптимальных решений в различных сферах человеческой деятельности. Основным инструментом при решении этих задач стало математическое моделирование — формальное описание изучаемого явления и исследование с помощью математического аппарата. Искусство математического моделирования состоит в том, чтобы учесть как можно больше факторов по возможности простыми средствами. Именно в силу этого процесс моделирования часто носит итеративный характер. На первой стадии строится относительно простая модель и проводится ее исследование, позволяющее понять, какие из существенных свойств изучаемого объекта не улавливаются данной формальной схемой. Затем происходит уточнение, усложнение модели. В большинстве случаев первой степенью приближения к реальности является модель, в которой все зависимости между переменными, характеризующими состояние объекта, предполагаются линейными. Здесь имеется полная аналогия с тем, как весьма важна и зачастую исчерпывающая информация о поведении произвольной функции получается на основе изучения ее производной — происходит замена этой функции в окрестности каждой точки линейной зависимостью. Значительное количество экономических, технических и других процессов достаточно хорошо и полно описывается линейными моделями. 1 Основные формы задачи ЛП. Различают три основные формы задач линейного программирование в зависимости от наличия ограничений разного типа. Стандартная задача ЛП. max( c1 x1 c 2 x 2 ... c n x n ) a11 x1 a12 x 2 ... a1n x n b1 , a 21 x1 a 22 x 2 ... a 2 n x n b2 , ... a m1 x1 a m 2 x 2 ... a mn x n bm , x1 0, x 2 0,..., x n 0, или, в матричной записи, max c, x Ax b, x 0, где x ( x1 , x2 ,..., xn ), c (c1 , c2 ,..., cn ), b (b1 , b2 ,..., bm ), A (aij ) — матрица коэффициентов. Вектор c называется вектором коэффициентов линейной формы, b — вектором ограничений. Стандартная задача важна ввиду наличия большого числа прикладных моделей, сводящихся наиболее естественным образом к этому классу задач ЛП. Каноническая задача ЛП. max( c1 x1 c 2 x 2 ... c n x n ) a11 x1 a12 x 2 ... a1n x n b1 , a 21 x1 a 22 x 2 ... a 2 n x n b2 , ... a m1 x1 a m 2 x 2 ... a mn x n bm , x1 0, x 2 0,..., x n 0, или, в матричной записи, max c, x Ax b, x 0, Основные вычислительные схемы решения задач ЛП разработаны именно для канонической задачи. Общая задача ЛП. 1 В этой задачи часть ограничений носит характер неравенств, а часть является уравнениями. Кроме того, не на все переменные наложено условие неотрицательности: max( c1 x1 c2 x2 ... cn xn ) a11 x1 a12 x2 ... a1n xn b1 , a21 x1 a22 x2 ... a2 n xn b2 , ... ak1 x1 ak 2 x2 ... akn xn bk , ak 1,1 x1 ak 1, 2 x2 ... ak 1,n xn bk 1 , ak 2,1 x1 ak 2, 2 x2 ... ak 2,n xn bk 2 , ... am1 x1 am 2 x2 ... amn xn bm , x1 0, x2 0,..., xr 0, Здесь k m, r n . Ясно, что стандартная задача получается как частный случай общей при k m, r n ; каноническая — при k 0, r n . Все три перечисленные задачи эквивалентны в том смысле, что каждую из них можно простыми преобразованиями привести к любой из двух остальных. При изучении задач ЛП сложилась определенная терминалогия. Линейная форма c, x c1 x1 c2 x2 ... cn xn , подлежащая максимизации (или минимизации) , называется целевой функцией. Вектор x ( x1 , x2 ,..., xn ) , удовлетворяющий всем ограничениям задачи ЛП, называется допустимым вектором, или планом. Задача ЛП, для которой существуют допустимые векторы, называется допустимой задачей. Допустимый вектор x * , доставляющий наибольшее значение целевой функции по сравнению с любым другим допустимым вектором x , т.е. c, x * c, x , называется решением задачи, или оптимальным планом. Максимальное значение d c, x * целевой функции называется значением задачи. Двойственная задача линейного программирования. Рассмотрим задачу ЛП 1 max( c1 x1 c2 x2 ... cn xn ) a11x1 a12 x2 ... a1n xn b1 , a21x1 a22 x2 ... a2 n xn b2 , (1) ... am1 x1 am 2 x2 ... amn xn bm , или, в матричной записи, max c, x Ax b. (2) Задачей, двойственной к (1) (двойственной задачей), называется задача ЛП от m переменных p1, p2 ,..., pm вида min( b1 p1 b2 p2 ... bm pm ) a11 p1 a21 p2 ... am1 pm c1 , a12 p1 a22 p2 ... am 2 pm c2 , (3) ... a1n p1 a2 n p2 ... amn pm cn , или, в матричной записи, min b, p (4) A' p c, p 0, где p ( p1, p2 ,..., pm ) . Правила построения задачи (3) по форме записи задачи (1) таковы: в задаче (3) переменных pi столько же, сколько строк в матрице A задачи (1). Матрица ограничений в (3) — транспортированная матрица A . Вектор правой части ограничений в (3) служит вектором коэффициентов максимизируемой линейной форме в (1), при этом знаки неравенств меняются на равенство. Наоборот, в качестве целевой функции в (3) выступает линейная форма, коэффициентами которой задаются вектором правой части ограничений задачи (1), при этом максимизация меняется на минимизацию. На двойственные переменные pi накладывается условие неотрицательности. Задача (1), в отличии от двойственной задачи (3) называется прямой. Теорема двойственности. Если взаимодвойственные задачи (2), (4) допустимы, то они обе имеют решение и одинаковое значение. 1 Теорема равновесия. Пусть x* ( x1* , x2* ,..., xn* ), p* ( p1* , p2* ,..., pm* ) — оптимальные планы прямой (1) и двойственной (3) задач соответственно. Тогда если pi* 0, то ai1 x1* ai 2 x2* ... ain xn* bi 1