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

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

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

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

Решение.

Шаг I. Вводим добавочные неотрицательные переменные Пример решения задачи линейного программирования симплекс-методом - 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 в неосновные переменные. Поэтому в приведённой выше системе уравнений выделенным оказалось первое уравнение.

Шаг II.

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

Выразим новые основные переменные через новые неосновные, начиная с выделенного на шаге I уравнения. В результате получим

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

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

От полученного базисного решения необходимо перейти к другому. Рассмотрим уравнение с отрицательным свободным членом, т. е. второе уравнение. Оно показывает, что в основные переменные можно перевести Пример решения задачи линейного программирования симплекс-методом - student2.ru и Пример решения задачи линейного программирования симплекс-методом - student2.ru . Переведём в основные переменные Пример решения задачи линейного программирования симплекс-методом - student2.ru . Найдём наименьшее из абсолютных величин отношений свободных членов системы к коэффициентам при Пример решения задачи линейного программирования симплекс-методом - student2.ru . Имеем Пример решения задачи линейного программирования симплекс-методом - student2.ru . Значит, в неосновные переменные нужно перенести Пример решения задачи линейного программирования симплекс-методом - student2.ru . Так как наименьшее отношение получено из второго уравнения, то его выделяем. В новом базисном решении уже не окажется отрицательных компонент, т. е. оно является допустимым.

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

Шаг III.

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

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

Новое базисное решение имеет вид Пример решения задачи линейного программирования симплекс-методом - student2.ru . Является ли оно оптимальным, можно установить, если выразить линейную форму через неосновные переменные рассматриваемого базисного решения. Сделав это, получим Пример решения задачи линейного программирования симплекс-методом - student2.ru . Так как мы ищем максимум линейной формы, а нашли лишь одно допустимое решение, то продолжим перебор.

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

В некотором особом случае решение завершается на III шаге: это случай, когда оптимальное решение - не единственное.

Шаг IV.

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

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

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

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

Шаг V.

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

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

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

Пример решения

Решить задачу линейного программирования с помощью программы «Поиск решения» в MS Excel.

Формулировка задачи: Рацион для питания животных на ферме состоит из двух видов кормов I и II. Один кг корма I стоит 80 д.е. и содержит: 1 ед. жиров, 3 ед. белков, 1 ед. углеводов, 2 ед. нитратов. Один кг корма II стоит 10 д.е. и содержит: 3 ед. жиров, 1 ед. белков, 8 ед. углеводов, 4 ед. нитратов. Составить наиболее дешевый рацион питания, обеспечивающий жиров не менее 6 ед., белков не менее 9 ед., углеводов не менее 8 ед., нитратов не более 16 ед.

  содержание пит.веществ норма содержания
Химические вещества I II
       
жиры
белки
углеводы
нитраты
Стоимость 1 кг  

Экономико-математическая модель задачи:

Пусть Х1 – количество корма I , X2 – количество корма II, тогда суммарная стоимость будет равна:

Z=80X1+10X2 → min (1)

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

(2)
X1, X2 ≥ 0.

Найти решение системы ограничений (2) Х = (х1, х2), такое, что целевая функция (2) будет принимать максимальное значение.

Ход решения задачи:

Для решения задачи на ПК с использованием Excel необходимо:

1. Ввести исходные данные в ячейки рабочего листа Excel.

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

3. Сформировать на рабочем листе Excel элементы математической модели и целевую функцию.

4. Настроить программу «Поиск решения» и выполнить ее.

Вводим исходные данные:

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

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

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

Пример решения задачи линейного программирования симплекс-методом - student2.ru Выделяем блок ячеек «Оптимальный выпуск» (B12:C12) и заполняем их значениями 0,01

Выделяем первую ячейку «Фактически использовано» (E4), нажимаем на кнопку Автосуммирование, далее нажимаем на кнопку DELETE и выделяем блок B12:C12, нажимаем на кнопку * и выделаем блок B4:C4 (содержание питательных веществ). Нажимаем CTRL+SHIFT+ENTER.

Проделываем эту же операцию с ячейками E5:E7 соответственно.

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

Выделяем первую ячейку блока «Затраты» (ячейка B14). Вводим с клавиатуры формулу =B8*МАКС(B12;0), нажимаем CTRL+SHIFT+ENTER.

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

Пример решения задачи линейного программирования симплекс-методом - student2.ru Выделить ячейку «Итоговая стоимость» (ячейка Е16), нажать кнопку Автосуммирование, затем DELETE. И выделить блок B14:С14, нажать кнопку ENTER.

Далее переходим к настройке «Поиск решения»

Выделяем ячейку E16 нажимаем сервис, далее поиск решения.

Далее устанавливаем целевую ячейку Е16, ставим точку равной минимальному значению, изменяя ячейки В12:С12

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

далее ставим ограничения: нажимаем кнопку «добавить»

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

Далее добавляем следующие ограничения:

В12:С12≥0;

D4≤E4;

D5≤E5;

D6≤E6;

D7≥E7.

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

Нажимаем выполнить,

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

далее сохранить найденное решение.

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

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