Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ИВП_2015.doc
Скачиваний:
174
Добавлен:
03.03.2016
Размер:
940.03 Кб
Скачать

Тема №2. Математическое программирование Лабораторная работа №2. Линейное программирование

1. Теоретические основы

Линейное программирование один из важнейших инструментов оптимизации.

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

Каноническая форма задачи ЛП

где f и gi – заданные линейные функции, а bi – вещественные числа

На основании построенной модели ЛП для решения задачи можно применить один из следующих методов:

  1. Графический

  2. Симплекс-метод

  3. Метод искусственного базиса

  4. Программные (инструментальные) средства

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

Рассмотрим общее решение задачи.

Пусть поставлена задача

где aij, bi, cj – заданные константы, bi>0, m<n

Положим, что из n переменных n-m переменных равны нулю, оставшиеся m определяются как решение системы из m линейных уравнений.

Если это решение единственное, тогда существующие m переменных называются базисными, n-m переменных – небазисными.

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

Количество всех допустимых базисных решений дляm уравнений с n переменными не превышает

Для решения необходимо преобразовать ограничительные неравенства в равенства.

Для этого в левую часть неравенств добавляем дополнительные переменные – остаточные или избыточные.

Пример: неравенства типа <=

х1+2x2<=3 эквивалентно равенству х1+2x2+s1=3, где s1 –остаточная переменная; s1>=0;

Неравенство типа >=

3x1+x2>=5 эквивалентно равенству 3x1+x2+s1=5, где s1 – избыточная переменная, s1>=0.

Эти переменные вводятся и в строку целевой функции:

z=F(x1, x2,…,xn,s1, s2,…,sk)

Правую часть неравенства всегда можно сделать неотрицательной путем умножения всего равенства на -1.

Аналогично неравенства вида <= можно преобразовать в неравенство >=, умножением на -1.

Свободную переменнуюxj (т. е. переменную, которая может принимать как отрицательные, так и положительные значения) можно представить как разность двух неотрицательных переменных:

По определению базисного решения переменные

не могут одновременно входить в базисное решение

Алгоритм Симплекс-метода начинается с допустимого базисного решения, затем находим новое базисное решение, улучшающее значение целевой функции.

Для этого надо ввести в базис новую переменную (ВВОДИМАЯ) и удалить из базиса одну из входящих в текущий базис (ИСКЛЮЧАЕМАЯ).

Условие оптимальности:

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

Условие допустимости:

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