Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Матем.моделир.2007 редакция1.doc
Скачиваний:
6
Добавлен:
18.04.2019
Размер:
1.35 Mб
Скачать

Раздел 5 Решение задачи об оптимальной диете: симплекс-метод в случае задачи на минимум

Решение задач линейного программирования, связанных с минимизацией целевой функции, имеет некоторые особенности, которые мы рассмотрим здесь на примере задачи об оптимальной диете. Пусть в некоторой упрощённой ситуации фермеру-животноводу необходимо спланировать закупку кормов, и при этом на рынке имеется два вида подходящих ему кормов и по цене соответственно 3 и 4 денежные единицы за единицу веса. Фермер проконсультировался со специалистом по питанию животных и получил следующие рекомендации: в сутки каждое животное должно получать не менее 5 единиц углеводов, 3 единиц белков и 4 единиц витаминов (в некоторых соответствующих единицах). После этого фермер изучил состав питательных веществ кормов и , и выписал результат в виде таблицы (в тех же единицах):

Кол-во в одной единице веса

Углеводы

3

1

Белки

1

1

Витамины

1

2

Перед фермером возникла задача: в каком объёме закупать корма и , чтобы реализовать рекомендации специалиста и при этом потратить минимум денег?

Экономическое описание задачи у нас имеется, составим математическую модель. Обозначим ( , ) – объёмы закупок кормов и в сутки на каждое животное. Аналогично предыдущему разделу мы получаем задачу линейного программирования: найти пару чисел ( , ), удовлетворяющую ограничениям

(5.1)

и минимизирующую целевую функцию

. (5.2)

В этой задаче – только две неизвестные, поэтому имеется графический способ решения. Он проводится по схеме, объяснённой выше, и разобран здесь не будет.

Решение симплекс-методом осуществляется примерно так же, как и в предыдущем примере, поэтому разъясняться будут только его особенности для данного примера.

Итак, вначале мы заменяем все неравенства равенствами (теперь нам надо вычитать переменные, т.к. знак неравенств – другой):

(5.3)

, ,

Тем самым, от задачи (5.1)-(5.2) мы переходим к равносильной ей задаче (5.3)-(5.2).

Начинаем аналогичные шаги нашей игры. Выражение базисных переменных , , первого шага через свободные , будет следующим:

(5.4)

Значит, базисное решение на первом шаге имеет вид (0, 0, -5, -3, -4) и не является допустимым! Не имеет никакого смысла вычислять значение целевой функции на нём и рассуждать, можно ли его улучшить (как мы это делали раньше). Для начала нам нужно добиться, чтобы базисное решение стало допустимым, т.е. чтобы все его компоненты стали неотрицательными. Из рассмотрения правых частей (5.4) ясно, что для этого можно увеличивать или (или оба одновременно, но мы опять будем изменять лишь одну переменную). В данном случае имеет смысл увеличивать , т.к. коэффициент при в целевой функции (5.2) меньше (не будем забывать, что в нынешнем примере мы минимизируем целевую функцию). Итак, пусть и . Тогда условия допустимости примут вид . Естественно, мы возьмём самое наименьшее из возможных значений = . Далее становится новой базисной переменной, а на замену ей выходит переменная (значение 4 возникло из уравнения для в (5.4)). Итак, базисные переменные второго шага – , , ; а свободные переменные – , . Выражаем базисные переменные через свободные (сначала − из последнего равенства в (5.4), а затем подставляем в остальные равенства этой системы):

(5.5)

И вот уже базисное решение второго шага получается допустимым – (4, 0, 7, 1, 0), и мы можем изучать его на оптимальность. Для этого выразим целевую функцию через свободные переменные второго шага (подставив в (5.2) выражение для из первого уравнения системы (5.5)):

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

У нас сейчас имеется коэффициент (-2) при , поэтому положим и =0. Аналогично изложенному выше, мы, с одной стороны, стремимся как можно сильнее увеличить (тем самым, как можно сильнее уменьшить Z ), но, с другой, нас ограничивают условия допустимости . Значит, берём .

Опуская детали, укажем, что на следующем шаге имеем следующее выражение базисных переменных этого шага , , через свободные переменные , :

При этом выражение для целевой функции будет таким: . Теперь очевидно, что базисное решение (2, 1, 2, 0, 0) даёт самое наименьшее возможное значение целевой функции . (В самом деле, для данного базисного решения и любое его изменение означает изменение , в сторону увеличения (т.к. они неотрицательны!) и увеличение целевой функции .) Окончательно, в исходной формулировке решение даёт пара чисел ; таким образом, нашему фермеру целесообразно закупать ежесуточно для каждого животного две единицы веса корма и одну единицу веса корма . Задача решена.