Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование экономических систем(пособие).doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4.27 Mб
Скачать

Часть 5 линейное программирование в решении оптимизационных задач

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

В самом общем виде задача математически записывается так:

. (5.1)

где ;

W область допустимых значений переменных х1, х2, ..., хn;

f(Х) – целевая функция.

Для того чтобы решить задачу оптимизации, достаточно найти ее оптимальное решение, т. е. указать такое, что при любом , или для случая минимизации – при любом .

Оптимизационная задача является неразрешимой, если она не имеет оптимального решения. В частности, задача максимизации будет неразрешима, если целевая функция f(X) не ограничена свер­ху на допустимом множестве W.

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

В математическом программировании принято выделять следую­щие основные задачи в зависимости от вида целевой функции f(X) и от области W:

  • задачи линейного программирования, если f(X) и W линейны;

  • задачи целочисленного программирования, если ставится усло­вие целочисленности переменных xt, х2, ..., хп;

  • задачи нелинейного программирования, если форма f(X) носит нелинейный характер.

5.1. Задачи линейного программирования

Задачей линейного программирования называется задача исследования операций, математическая модель которой имеет вид:

; (5.2)

; (5.3)

; (5.4)

. (5.5)

При этом система линейных уравнений (5.3) и неравенств (5.4), (5.5), определяющая допустимое множество решений задачи W, на­зывается системой ограничений задачи линейного программирования, а линейная функция f(X) называется целевой функцией или критери­ем оптимальности.

В частном случае, если , то система (5.3) - (5.4) состоит только из линейных неравенств, а если I=M, то – из линейных уравнений.

Если математическая модель задачи линейного программирова­ния имеет вид:

; (5.6)

; (5.7)

, (5.8)

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

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

Правило приведения задачи линейного программирования к канони­ческому виду состоит в следующем:

  1. если в исходной задаче требуется определить максимум ли­нейной функции, то следует изменить знак и искать минимум этой функции;

  2. если в ограничениях правая часть отрицательна, то следует умножить это ограничение на –1;

  3. если среди ограничений имеются неравенства, то путем введения дополнительных неотрицательных переменных они преобра­зуются в равенства;

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

, где l – свободный индекс, .

Пример 5.1. Приведение к канонической форме задачи линейного программирования:

Решение. Введем в каждое уравнение системы ограничений выравниваю­щие переменные х4, х5, x6. Система запишется в виде равенств, причем в первое и третье уравнения системы ограничений пере­менные х4, x6 вводятся в левую часть со знаком «+», а во второе уравнение вводится х5 со знаком «–».

Итак:

Свободные члены в канонической форме должны быть поло­жительными, для этого два последних уравнения умножим на – 1:

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

где .

Подставляя данное выражение в систему ограничений и в целе­вую функцию и записывая переменные в порядке возрастания ин­декса, получим задачу линейного программирования, представлен­ную в канонической форме: