Основная задача линейного программирования

ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ

Основная задача линейного программирования

Линейное программирование - это раздел прикладной математики о методах исследования и отыскания наибольших или наименьших значений линейной функции, на неизвестные которой наложены линейные ограничения.

В общем виде задача линейного программирования может быть сформулирована следующим образом.

Даны линейная функция

Ф = с1·х1 + с2·х2 + . . . +cj·xj+ . . . + сn·хn (3.1)

система линейных ограничений

a11· x1 + a12·x2 + . . . + a1j·xj + . . . + a1n·xn = b1,

a21· x1 + a22·x2 + . . . + a2j·xj + . . . + a2n·xn = b2,

. . . . . . . . (3.2)

a i1 · x1+ a i2·x2 + . . . + aij·xj + . . . + a in·xn = bi,

. . . . . . . .

am1· x1 + am2·x2 + . . .+ amj·xj + . . .+ amn ·xn = bm,

и условия неотрицательности переменных

xj ≥ 0, j = 1, n (3.3)

где aij, bi и cj - заданные постоянные величины.

Задача: найти такие значения x1, x2, ..., xn, удовлетворяющие системе ограничений (3.2), условиям неотрицательности (3.3) и обеспечивающие минимум (максимум) линейной функции (3.1).

Задача в такой постановке называется основной задачей линейного программирования (ОЗЛП). В системе ограничений (3.2) все bi можно считать неотрицательными. Линейная функция (3.1) называется функцией цели или целевой функцией и совместно с системой ограничений образует математическую модельрассматриваемой задачи.

К задаче линейного программирования сводится большой класс задач, встречающихся в практической деятельности человека. Особенно широкое распространение линейное программирование получило в экономике, так как зависимости между величинами, встречающимися в экономических задачах, зачастую приводят к линейной функции с линейными ограничениями, наложенными на неизвестные.

В качестве примеров простейших экономических задач можно привести:

а) задача об использовании сырья при изготовлении разнородной продукции, где в роли целевой функции выступает суммарная стоимость изготовленной продукции, которую требуется максимизировать, а в качестве ограничений - имеющееся в наличии количество сырья разного типа, необходимого для изготовления продукции. Здесь xj – требуемый объем выпуска продукции j‑го типа, aij – объем ресурса i-го типа, необходимого для выпуска единицы продукции j-го типа, bi –имеющийся запас ресурса i-го типа;

б) задача о разработке дневного рациона, например, при откорме животных, либо при составлении меню на предприятии питания. Цель задачи -добиться минимальных затрат на дневной рацион при условии, что количество питательных веществ каждого типа в составе применяемых видов кормов (продуктов) должно быть не менее заданной величины. Здесь xj – количество продуктов j-го типа в составе меню, aij – количество питательного вещества i-го типа в единице продукта j-го типа, bi – потребный объем питательного вещества i-го типа;

Подробнее с примерами математических моделей некоторых задач линейного программирования ознакомимся в следующих разделах.

Термин «линейное программирование» появился в 1951 году в работах американских ученых Дж. Б. Данцига, Тьяллинга Купманса (Koopmans). Слово «программирование» объясняется тем, что набор искомых переменных определяет программу (план) работы некоторого экономического объекта.

Первые исследования по линейному программированию (основные задачи и приложения, критерии оптимальности, геометрическая интерпретация и экономическая трактовка задачи ЛП) были проведены в 30-е годы в Ленинградском университете (Л.В.Канторович). Наиболее интенсивно линейное программирование развивалось в 1955-1965 гг. в СССР и США, когда оно было одним из наиболее «модных» разделов прикладной математики.

-----------------------------------------------------------------------------------------------------------

Канторович Леонид Витальевич (6.01.1912-1986), академик, лауреат Государственной и Ленинской премий, Нобелевской премии в 1975 г. вместе с Купмансом.

-----------------------------------------------------------------------------------------------------------

Приведенная выше в виде линейной функции (3.1) и системы ограничений (3.2), (3.3) запись называется развернутойформой записи основной задачи линейного программирования. Эта форма может быть представлена в компактном виде: минимизировать линейную функцию Ф = cj ·xj

при ограничениях aij·xj = bi, i = 1,m (3.4)

xj ³0 j = 1,n.

Основная задача линейного программирования, кроме вышеприведенной развернутой (3.1¸3.3) или компактной (3.4), имеет еще несколько форм записи.

Векторная форма записи. Минимизировать линейную функцию Ф = С·Х при ограничениях A1·x1 + A2·x2 + ... + An·xn = В, X ³ 0, (3.5)

где X = (х1, х2, ..., xn), C = (с1, c2, ..., сn) – векторы-строки, которые состоят, соответственно, из неизвестных переменных и коэффициентов при них в целевой функции, С·Х - скалярное произведение этих векторов, а векторы

a11 a12 a1n b1

A1 = a21 A2 = a22 … An = a2n B = b2

. . . . . . . . . . . .

am1 am2 amn bm

состоят, соответственно, из коэффициентов при неизвестных переменных в системе ограничений и свободных членов.

Матричная форма записи. Минимизировать линейную функцию Ф = С·Х при ограничениях A·X = В, Х ³ О, (3.6)

где А = {аij} - матрица коэффициентов при неизвестных переменных в системе ограничений размерности m x n; С = (с1, с2, ..., cn) - матрица – строка коэффициентов при неизвестных переменных в целевой функции,

x1 b1

x2 b2

Х = . - матрица-столбец B = . - матрица-столбец . неизвестных . свободных xn переменных bm членов.

в системе ограничений,

В зависимости от конкретной задачи система ограничений ОЗЛП могут быть представлены как уравнениями вида (3.2), так и неравенствами. ОЗЛП в этом случае формулируется в следующем виде:

минимизировать линейную функцию Ф = cj · xj

при ограничениях aij·xj ≥ bi, i = 1, m

или aij·xj ≤ bi, i = 1, m (3.7)

xj ³ 0 j = 1, n. (3.8)

Если при условии, что все неизвестные переменные неотрицательны (то есть, хj ³ 0, j =1,n), система ограничений состоит лишь из одних уравнений, задача линейного программирования называется канонической, если система ограничений состоит лишь из одних неравенств, то задача называется стандартной. Если система ограничений имеет смешанный вид, то имеем дело с общейзадачей ЛП.

Любая задача ЛП может быть сведена к стандартной, канонической или общей задаче. Однако, при решении систем линейных неравенств с n неизвестными приходится сталкиваться с большими трудностями, поэтому при решении задач на практике от неравенств переходят равенствам путем введения в левые части неравенств некоторых неотрицательных величин zi ≥ 0 (либо xn+i ≥ 0), называемых дополнительными или фиктивнымипеременными. Знаки при этих переменных могут быть как положительными, так и отрицательными в зависимости от вида неравенства (³ или £ ).

Например, в неравенстве a i1·x1+ a i2·x2 + . . . + aij·xj + . . . + a in·xn £ bi,

достаточно добавить к левой части некоторую величину zi ³ 0 и получим

равенство a i1·x1+ a i2·x2 + . . . + aij·xj + . . . + a in·xn + zi = bi,

А в неравенстве a i1·x1+ a i2·x2 + . . . + aij·xj + . . . + a in·xn ³ bi, нужно из левой части вычесть величину zi ³ 0, чтобы получить равенство

a i1·x1+ a i2·x2 + . . . + aij·xj + . . . + a in·xn - zi = bi,

В результате получим систему линейных уравнений, содержащих n+m неизвестных: aij·xj + zi = bi, i = 1,m

или aij·xj - zi = bi, i = 1,m (3.9)

при условии xj ³ 0 , zi ³ 0 (3.10) Существует теорема:

Теорема 3.1. Каждому решению X* = (x*1, x*2, ..., x*n) систем неравенств (3.7) и (3.8) соответствует единственное решение Y* = (x*1, x*2, ..., x*n, z*1, ..., z*m) системы уравнений (3.9) и неравенства (3.10) и, наоборот, каждому решению Y* системы уравнений (3.9) и неравенства (3.10) соответствует единственное решение Х* систем неравенств (3.7) и (3.8).

В задачах ЛП представляют интерес системы, в которых ранг матрицы системы А = {aij}, (i =1, m; j =1, n,) или, что то же самое, максимальное число независимых уравнений системы R меньше числа переменных, то есть, R < n. Будем полагать, что в системе (3.2) все m уравнений системы независимы, то есть, R = m. Тогда, соответственно, m < n.

Любые m переменных системы m линейных уравнений с n переменными (m < n) называются базисными (или основными), если определитель матрицы коэффициентов при них отличен от нуля. Тогда остальные r = n- m переменных называются свободными (или неосновными).

Выше показали, как от задачи линейного программирования с ограничениями-неравенствами можно перейти к задаче ограничениями-равенствами (ОЗЛП). Всегда возможен и обратный переход – от ОЗЛП к задаче с ограничениями-неравенствами. Для этого базисные переменные выразим через свободные, затем, исходя из условия неотрицательности базисных переменных, запишем условия неотрицательности полученных выражений, в результате чего получим систему неравенств. Если в первом случае мы увеличивали число переменных, введя дополнительные переменные, то во втором случае будем его уменьшать, устраняя базисные переменные и оставляя только свободные. Однако, при этом существенно усложняется решение задачи.