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

Введение

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

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

В экономике задачи оптимизации часто удаётся свести к тому или иному классу экономико-математических моделей.

Выделяются три основных типа моделей: детерминированные, модели принятия решений в условиях неполной информации и модели принятия решений в условиях конфликта.

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

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

Модели принятия решений в условиях конфликта являются объектом изучения теории игр.

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

Глава 1. Линейное программирование

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

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

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

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

(1) Постановка задач линейного программирования - student2.ru

(2) Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru

(3) Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.1)

(4) Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru .

Здесь Постановка задач линейного программирования - student2.ru — целевая функция, линейная относительно своих аргументов, Постановка задач линейного программирования - student2.ru — число переменных, Постановка задач линейного программирования - student2.ru — число ограничений задачи. Условия (2), (3) задают линейные ограничения на ресурсы в виде неравенств и равенств, условия (4) определяют ограничения на знак переменных.

Целевая функция Постановка задач линейного программирования - student2.ru , где Постановка задач линейного программирования - student2.ru выражает критерий оптимизации, отражающий основную цель преследуемую субъектом управления — повышение эффективности использования ресурсов. В производственной сфере показателями эффективности являются обычно выручка или прибыль, что приводит к задачам максимизации. Именно (1.1) представляет собой формулировку задачи максимизации целевой функции.

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

Условия (2) могут выражать ограниченность ресурсов. Например, затраты материалов, труда и времени, необходимые для реализации плана производства, не должны превышать имеющиеся запасы. Ограничения могут также отражать спрос на продукцию. Так в задачах о диете и суточном рационе, условия (2), задают необходимый минимум потребности в ингредиентах (витаминах, кормовых единицах и т.п.).

Переменные Постановка задач линейного программирования - student2.ru называют управляемыми. На эти переменные обычно накладывают условия неотрицательности (4), что соответствует их экономическому смыслу. Допустимо и наличие свободных переменных, на которые не накладываются условия на знак.

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

Любой упорядоченный набор чисел Постановка задач линейного программирования - student2.ru , называется планом задачи или альтернативой. В ЗЛП Постановка задач линейного программирования - student2.ru трактуют как вектор из пространства Постановка задач линейного программирования - student2.ru .

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

В случае задачи максимизации (минимизации) допустимый план, доставляющий максимум (минимум) целевой функции, называется оптимальным планом.

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

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

Постановка задач линейного программирования - student2.ru

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.2)

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

Обратите внимание на знак неравенств в ограничениях.

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

Постановка задач линейного программирования - student2.ru

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.3)

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

При записи в каноническом (или классическом) виде, ограничения формулируются в виде равенств.

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

Постановка задач линейного программирования - student2.ru

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.4)

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

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

Постановка задач линейного программирования - student2.ru

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.5)

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

ЗЛП можно записывать в матричном виде.

Стандартная задача максимизации в матричном виде:

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru . (1.6)

Стандартная задача минимизации в матричном виде:

Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , (1.7)

где

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

Постановка задач линейного программирования - student2.ru (1.8)

Иногда используют другую форму записи ограничений, вводя обозначение Постановка задач линейного программирования - student2.ru для множества допустимых планов.

Постановка задач линейного программирования - student2.ru , (1.9)

Таким образом, задача линейного программирования (1.2) с использованием обозначения (1.9), заключается в нахождении неотрицательных значений управляемых переменных Постановка задач линейного программирования - student2.ru , максимизирующих заданную целевую функцию Постановка задач линейного программирования - student2.ru .

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

При решении ЗЛП обычно нужно перейти от словесной формулировки к математическому описанию. Для этого нужно:

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

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

3. Сформулировать критерий для оценки альтернатив. То есть построить целевую функцию.

Задача А1.41. Для изготовления различных изделий А, В, С предприятие использует три различных вида сырья. Нормы расхода сырья на производство одного изделия каждого вида, цена одного изделия А, В и С, а также общее количество сырья каждого вида, которое может быть использовано предприятием, приведены в табл. 1.1. Изделия А, В и С могут производиться в любых соотношениях (сбыт обеспечен), но производство ограничено выделенным предприятию сырьем каждого вида. Составьте план производства изделий, при котором общая стоимость всей произведенной предприятием продукции является максимальной.

    Таблица 1.1
Виды сырья Нормы затрат сырья на одно изделие Общее количество сырья
  А В С  
I
II
III
Цена одного изделия (руб.)  

Построим математическую модель задачи.

1). Укажем искомые переменные задачи:

Постановка задач линейного программирования - student2.ru — суточный объем производства изделия А (шт.);

Постановка задач линейного программирования - student2.ru — суточный объем производства изделия B (шт.);

Постановка задач линейного программирования - student2.ru — суточный объем производства изделия C (шт.).

2). Зададим ограничения задачи.

а). Ограничения на ресурсы. Расход используемых ресурсов не должен превышать их запас.

Постановка задач линейного программирования - student2.ru (ресурс I)

Постановка задач линейного программирования - student2.ru (ресурс II)

Постановка задач линейного программирования - student2.ru (ресурс III)

б). Ограничения на знак. Объемы производства изделий не могут быть отрицательными.

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

3). Построим целевую функцию.

Постановка задач линейного программирования - student2.ru максимизирует общую стоимость произведенной продукции.

Запишем окончательно математическую постановку задачи максимизации в стандартном виде:

Постановка задач линейного программирования - student2.ru (1.10)

Задача. Требуется составить диету, содержащую, по крайней мере, 20 единиц белков, 30 единиц углеводов, 10 единиц жиров и 40 единиц витаминов. Как дешевле всего составить диету из 5 имеющихся продуктов: хлеба, сои, сушеной рыбы, фруктов молока? В табл. 1.2 указаны цены продуктов за 1 кг (или л) в денежных единицах и содержание в продуктах компонентов диеты в условных единицах.

  Таблица 1.2.
Питательные вещества Продукты
Хлеб Соя Сушеная рыба Фрукты Молоко
Белки
Углеводы
Жиры
Витамины
Цена

Построим математическую модель задачи.

1). Искомые переменные задачи – количество каждого из 5 ингредиентов, входящих в диету.

Постановка задач линейного программирования - student2.ru — количество Постановка задач линейного программирования - student2.ru -го ингредиента (кг или л), Постановка задач линейного программирования - student2.ru .

2). Ограничения задачи.

а) Ограничения на ресурсы. Диета должна содержать,

не менее, 20 единиц белков: Постановка задач линейного программирования - student2.ru ,

не менее, 30 единиц углеводов: Постановка задач линейного программирования - student2.ru ,

не менее, 10 единиц жиров: Постановка задач линейного программирования - student2.ru ,

не менее, 40 ед. витаминов: Постановка задач линейного программирования - student2.ru .

b) Ограничения на знак.

Искомые переменные по условию не могут быть отрицательными: Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru , Постановка задач линейного программирования - student2.ru .

3). Целевая функция

Постановка задач линейного программирования - student2.ru

минимизирует общую сумму, потраченную на продукты.

Запишем математическую постановку задачи минимизации в стандартном виде:

Постановка задач линейного программирования - student2.ru

Постановка задач линейного программирования - student2.ru (1.11)

Наши рекомендации