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

1. Задачи линейного программирования и их свойства

Во многих областях практики возникают своеобразные задачи исследования операций отмеченными особенностями:

· показатель эффективности W есть линейная функция от элементарного решения Линейное программирование - student2.ru ;

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

Запишем формулировки основных задач линейного программирования.

Задача о пищевом рационе:

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

· белков, не менее Линейное программирование - student2.ru единиц;

· углеводов, не менее Линейное программирование - student2.ru единиц;

· жиров, не менее Линейное программирование - student2.ru единиц.

Для продуктов Линейное программирование - student2.ru содержание жиров, белков, углеводов приведены в таблице:

Продукты Элементы
Белки Углеводы Жиры
Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru

Пищевой рацион состоит таким образом что бы его стоимость была минимальной.

Решение:

1. Составить математическую модель:

Пусть Линейное программирование - student2.ru - количество продуктов Линейное программирование - student2.ru , входящих в рацион. Тогда стоимость рационального питания (показатель эффективности) равен:

Линейное программирование - student2.ru

Запишем ограничения по белкам, углеводам и жирам

Линейное программирование - student2.ru Линейное программирование - student2.ru

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

Задача о загрузке оборудования

Каждая ткацкая фабрика имеет в наличии 2 вида станков; среди них Линейное программирование - student2.ru - станков типа І, Линейное программирование - student2.ru - станков II типа. Станки производят 3 типа тканей Линейное программирование - student2.ru , но с разной производительностью. Станок типа І производит в месяц Линейное программирование - student2.ru метров ткани Линейное программирование - student2.ru , Линейное программирование - student2.ru метров ткани Линейное программирование - student2.ru , Линейное программирование - student2.ru метров ткани Линейное программирование - student2.ru . Можно составить таблицу для Линейное программирование - student2.ru и Линейное программирование - student2.ru

Станок Тип ткани
Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru
Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru
Прибыль Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru

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

Решения:

Математическая модель такой задачи:

Пусть Линейное программирование - student2.ru - число станков типа Линейное программирование - student2.ru занятых производством ткани Линейное программирование - student2.ru . Таким образом получаем 6 переменных Линейное программирование - student2.ru (необходимо выбрать таким образом, что бы прибыль была максимальной)

Линейное программирование - student2.ru

Станки не должны простаивать, поэтому

Линейное программирование - student2.ru

Кроме того, должны быть выполнено задание по ассортименту с учетом производительности станков

Линейное программирование - student2.ru

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

Задача о перевозках

Имеется 4 пункта отправления: Линейное программирование - student2.ru в которых сосредоточенные запасы определенного вида груза в количествах Линейное программирование - student2.ru Кроме того, имеется 3 пункта назначения Линейное программирование - student2.ru Пункты подали заявки на Линейное программирование - student2.ru единиц груза. Сума заявок равна суме имеющихся запасов, Линейное программирование - student2.ru . Известна стоимость перевозки груза из пункта А в пункт В. Стоимость каждой перевозки будет начисляться: Линейное программирование - student2.ru Линейное программирование - student2.ru ; Линейное программирование - student2.ru

Требуется составить такой план перевозок (какое количество груза откуда и куда отправить) при котором суммарные перевозки обращаются в минимум.

Математическая модель задачи:

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

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

Линейное программирование - student2.ru

Так, как все запасы должны быть исчерпаны, то:

Линейное программирование - student2.ru

Требуется выбрать такие неотрицательные значения переменных Линейное программирование - student2.ru что бы выполнялись все заданные выше ограничения и при этом целевая функция обращалась в минимум. Основными особенностями ограничительных условий записанных в задаче является то, что в первуй задаче ограничения имели вид линейных неравенств, во второй – линейных неравенств и равенств, а в третей – только равенств.

Однако любую задачу линейного программирования с условиями - неравенства можно свести к задаче с условными равенствами путем введения остаточных или избыточных переменных.

Формула записи задачи ЛП, которая ограниченная только равенствами называется стандартной формой, а сама задача называется задачей ЛП (ОЗЛП).

Симплекс метод

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

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

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

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

· все ограничения преобразовываются в равенства с неотрицательной правой частью;

· все переменные неотрицательные;

· целевую функцию нужно либо максимизировать либо минимизировать.

Преобразование неравенства в равенства

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

Пример 1:

Линейное программирование - student2.ru

Линейное программирование - student2.ru - остаточная переменная

Линейное программирование - student2.ru

Пример 2:

Линейное программирование - student2.ru

Преобразование свободных переменных в неотрицательные:

Линейное программирование - student2.ru

Свободную переменную, которая может быть больше нуля, либо меньше нуля, можно представить как разницу двух неотрицательных переменных

Линейное программирование - student2.ru

Линейное программирование - student2.ru

Линейное программирование - student2.ru

Линейное программирование - student2.ru

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

Редимикс

Линейное программирование - student2.ru

Задачу ЛП в стандартной форме можно представить в виде следующей таблицы (симплекс таблицы)

Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru -5 -4  
Линейное программирование - student2.ru
Линейное программирование - student2.ru
Линейное программирование - student2.ru -1 -1
Линейное программирование - student2.ru Линейное программирование - student2.ru

Для решения задачи симплекс методом лежит 2 условия

Условие оптимальности – вводимой переменной в задачи максимизации (минимизации является небазисная переменная имеющая наибольший отряд (положительный) коэффициент в z – строке.

Если в z строке есть несколько таких коэффициентов, то выбор вводимой переменной делается произвольно.

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

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

Если базисных переменных с такими свойствами несколько, то выбирается один из них произвольно:

Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru -5 -4
Линейное программирование - student2.ru 0/6 2/3 1/5
Линейное программирование - student2.ru - - - - - - - -
Линейное программирование - student2.ru - - - - - - - -
Линейное программирование - student2.ru - - - - - - - -
Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru -2/3 5/6
Линейное программирование - student2.ru 2/3 1/6
Линейное программирование - student2.ru 4/3 -1/6
Линейное программирование - student2.ru - 5/3 - - - -
Линейное программирование - student2.ru - - - - - - -
Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru -5 -4 -
Линейное программирование - student2.ru
Линейное программирование - student2.ru
Линейное программирование - student2.ru -1 -1
Линейное программирование - student2.ru Линейное программирование - student2.ru

Линейное программирование - student2.ru вводим в базис Линейное программирование - student2.ru выводим

Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru -2/3 5/6 -
Линейное программирование - student2.ru 2/3 1/6
Линейное программирование - student2.ru 4/3 -1/6 3/2
Линейное программирование - student2.ru 5/3 1/6
Линейное программирование - student2.ru

Опять выбираем ведущую строку, теперь это Линейное программирование - student2.ru

Базис Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Линейное программирование - student2.ru Решения
Линейное программирование - student2.ru 9/12 1/2
Линейное программирование - student2.ru ¼ -1/2
Линейное программирование - student2.ru -1/8 5/4 3/2
Линейное программирование - student2.ru 9/24 -5/4 5/2
Линейное программирование - student2.ru 1/8 -3/4 ½

Линейное программирование - student2.ru

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

Вырожденность

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

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