Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММвЭ- лекции.doc
Скачиваний:
24
Добавлен:
19.09.2019
Размер:
1.8 Mб
Скачать

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

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

Стандартная математическая формулировка общей задачи линейного программирования выглядит так: требуется найти экстремальное значение показателя эффективности (целевой функции)

(линейной функции элементов решения ) при линейных ограничительных условиях, накладываемых на элементы решения:

где - заданные числа.

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

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

Правило сокращенного суммирования. Для обозначения суммы чисел :

принята такая запись:

где ∑ - знак суммирования, а k - индекс суммирования.

Это обозначение очень удобно:

А вот как выглядит запись общей задачи линейного программирования:

2.2 Основная задача лп (озлп)

Любую задачу линейного программирования можно свести к стандартной форме, так называемой «основной задаче линейного программирования» (ОЗЛП), которая формируется так: найти неотрицательные значения переменных x1, x2, …, xn, которые удовлетворяли бы условиям – равенствам:

a11 x1 + a12 x2 + … +a1n xn = b1,

a21 x1 + a22 x2 + … +a2n xn = b2, (2.1)

………………………………..

am1 x1 +am2 x2 + … +amn xn = bm.

и обращали бы в максимум линейную функцию этих переменных:

(2.2)

Случай, когда L надо обратить не в максимум, а в минимум, легко сводится к простому: изменить знак L на обратный (максимизировать не L, а L`=-L). Кроме того, от любых условий – неравенств можно перейти к условиям – равенствам ценой введения некоторых новых «дополнительных» переменных. Пусть требуется найти неотрицательные значения переменных x1,x2,x3, удовлетворяющие ограничениям – неравенствам

(2.3)

и обращающие в максимум линейную функцию от этих переменных:

(2.4)

Начнём с того, что приведём условия (2.3) к стандартной форме, так, чтобы знак неравенства был , а справа стоял нуль. Получим:

(2.5)

А теперь обозначим левые части неравенств (2.5) соответственно через y1 и y2:

(2.6)

Из условий (2.5) и (2.6) видно, что новые переменные y1, y2 также должны быть неотрицательными.

Какая же теперь перед нами стоит задача? Найти неотрицательные значения переменных x1,x2,x3,y1,y2 такие, чтобы они удовлетворяли условиям – равенствам (2.6) и обращали в максимум линейную функцию этих переменных (то, что в L не входят дополнительные переменные y1, y2, неважно: можно считать, что они входят, но с нулевыми коэффициентами). Перед нами – основная задача линейного программирования (ОЗЛП). Переход к ней от первоначальной задачи с ограничениями – неравенствами (2.3) «куплен» ценой увеличения числа переменных на два (число неравенств).