Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Линейное прог. (1).doc
Скачиваний:
40
Добавлен:
02.06.2015
Размер:
3 Мб
Скачать

68

Тема 4

Линейное программирование

Формы представления задач линейного программирования. Структура допустимого множества и типы решений. Прямая и двойственная задачи. Теоремы двойственности. Экономическая интерпретация двойственных задач. Графический метод решения задач линейного программирования. Анализ чувствительности оптимального решения к параметрам задачи линейного программирования. Принцип гарантированного результата в задачах линейного программирования. Решение задач линейного программирования симплекс-методом. Транспортные задачи линейного программирования. Компьютерная реализация решения задач линейного программирования

4.1. Формы представления задач линейного программирования

Задачи линейного программирования являются разновидностью задач математического программирования. В задачах линейного программирования допустимая область задается в виде системы неравенств и/или равенств, причем все функции в этих ограничениях, а также целевая функция линейны:

, или, в векторной форме: ,

где - матрица размера , а - вектор условий (равенств и/или неравенств).

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

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

Различают три основные формы представления (вида) задач линейного программирования:

Стандартный вид задачи на максимум:

, или, в векторной форме: , (4.1)

где , , , .

Стандартный вид задачи на минимум:

, или, в векторной форме: . (4.2)

Канонический вид задачи:

, или, в векторной форме: . (4.3)

Отметим, что любая задача линейного программирования может быть представлена в любом из видов (4.1) – (4.3).

Действительно, пусть какое-либо из ограничений имеет вид неравенства . Если его нужно представит в виде неравенства с противоположным знаком, достаточно умножить левую и правую части на "-1": . Если нужно иметь все ограничения в виде равенств, то к левой части неравенства достаточно прибавить некоторую неотрицательную переменную , так называемую невязку, уравнивающую левую и правую части: При этом размерность задачи увеличится на единицу.

Для неравенств вида манипуляции аналогичны (в частности, для превращения его в равенство невязка вычитается).

Если исходное ограничение представлено в виде равенства , то его можно представить в виде системы двух неравенств , или .

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

Если в задаче требуется максимизировать целевую функцию: , то умножением ее на "-1" можно свести данную задачу к задаче на минимум: , и наоборот.

4.2. Структура допустимого множества и типы решений

Каждое функциональное ограничение вида или представляет собой замкнутое полупространство размерности n, а ограничение вида гиперплоскость в n-мерном пространстве. Прямые ограничения также образуют замкнутые полупространства. Допустимое множество задачи нелинейного программирования задается системой ограничений описанного вида, т.е. представляет собой пересечение замкнутых полупространств и/или гиперплоскостей. Такое образование носит название многогранного множества.

Многогранное множество описанного вида всегда замкнуто и выпукло, однако, в частном случае, может быть пустым или неограниченным; может иметь размерность n или меньше n. Ниже приводятся примеры различных случаев для n = 2.

Пример 1

Данное множество пусто – см. рис.4.1.

Пример 2

Данное множество состоит из одной точки (0;3) – см. рис.4.2.

Пример 3

Данное множество представляет собой отрезок (одномерное множество) – см. рис.4.3.

Пример 4

Данное множество представляет собой четырехугольник – см. рис.4.4.

Пример 5

Данное множество является неограниченным – см. рис. 4.5.

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

Нетрудно понять, что возможны следующие случаи:

1 0. Задача не имеет решения. Это возможно, если допустимое множество пусто или не ограничено (в последнем случае задача может иметь, а может и не иметь решение – см. рис. 4.6).

20. Задача имеет единственное решение. В этом случае решение достигается в так называемой вершине многогранного множества. Если все ограничения задачи имеют вид неравенств, то обычно это точка, в которой являются активными не менее n ограничений, причем какие-либо n из них имеют линейно независимые градиенты – см. рис. 4.7.

30. Задача имеет бесконечное множество решений. В этом случае решение достигается на всем ребре или грани (некоторой размерности) допустимого множества – см. рис. 4.8.

Следует заметить, что:

  1. Если допустимое множество ограничено и не пусто, то решение всегда существует. Это следует из теоремы Вейерштрасса.

  2. Если решение достигается в каких-то двух точках, то оно достигается и во всех точках грани минимальной размерности, которая содержит эти точки.

  3. Если допустимое множество не ограничено, то это еще не означает отсутствия решения – все зависит от того, в какую сторону направлен градиент целевой функции.