Реферат: Компьютерное математическое моделирование в экономике
Требуется найти такое неотрицательное решение
(7.82)
системы (7.80), чтобы функция/принимала наименьшее (или наибольшее) значение.
Условия (7.80) называют ограничениями данной задачи, а функцию f - целевой функцией (или линейной формой). В приведенных выше примерах ограничения имели вид не уравнений, а неравенств. Заметим, что ограничения в виде неравенств, всегда можно свести к системе в виде равенств (способом введения добавочных неизвестных).
Так, для неравенства
(7.83)
вводя добавочное неизвестное хn+1 , получаем
(7.84)
Потребовав его неотрицательности наряду с остальными неизвестными, получим, что условие хn+1 ³ 0 превращает (7.84) в (7.83). Введя по отдельному дополнительному неизвестному для каждого из неравенств, получим систему уравнений, равносильную исходной системе неравенств.
Пример . Дана система неравенств
Сведем ее к системе уравнений. Получим
После оптимизации значениями дополнительных неизвестных следует пренебречь.
СИМПЛЕКС-МЕТОД
Для решения ряда задач линейного программирования существуют специальные методы. Есть, однако, общий метод решения всех таких задач. Он носит название симплекс-метода и состоит из алгоритма отыскания какого-нибудь произвольного допустимого решения и алгоритма последовательного перехода от этого решения к новому допустимому решению, для которого функция f изменяется в нужном направлении (для получения оптимального решения).
Пусть система ограничений состоит лишь из уравнений
(7.85)
и требуется отыскать минимум линейной функции (7.81). Для отыскания произвольного опорного решения приведем (7.85) к виду, в котором некоторые r неизвестных выражены через остальные, а свободные члены неотрицательны (как это сделать - обсудим позднее):
(7.86)
Неизвестные х1 , х2 , ..., хr - базисные неизвестные, набор {х1 , х2 , ..., хr } называется базисом, а остальные неизвестные {xr +1 , хr+2 , …, хn } - свободные. Подставляя (7.86) в (7.81), выразим функцию f через свободные неизвестные:
(7.87)
Положим все свободные неизвестные равными нулю:
(7.88)
Найдем из системы (7.86) значения базисных неизвестных
(7.89)
Полученное таким образом допустимое решение
отвечает базису x1 , x2 , ..., хr , т.е. является базисным решением. Допустим для определенности, что мы ищем минимум f . Теперь нужно отданного базиса перейти к другому с таким расчетом, чтобы значение линейной функции f при этом уменьшилось. Проследим идею симплекс-метода на примере.
Пример 1 . Дана система ограничений
Требуется минимизировать линейную функцию f = х2 – х3 . В качестве свободных переменных выберем х2 и x3 . Тогда данная система ограничений преобразуется к виду
Таким образом, базисное решение (3, О, О, 1). Так как линейная функция уже записана в свободных неизвестных, то ее значение для данного базисного решения f = 0. Для уменьшения этого значения можно уменьшить х2 или увеличить х3 . Но х2 в данном базисе равно нулю и потому его уменьшать нельзя. Попробуем увеличить x3 . Первое из уравнений имеет ограничение х3 = 1 (из условия х1 ³ 0), второе - не дает ограничений. Далее, берем х3 = 1, х2 не меняем и получаем новое допустимое решение (О, О, 1, 3), для которого f = -1 - уменьшилось. Найдем базис, которому соответствует это решение (он состоит, очевидно, из переменных x3 , х4 ). От предыдущей системы ограничений переходим к новой:
а форма в новых свободных переменных имеет вид
Теперь попробуем повторить предыдущую процедуру. Для уменьшения f надо уменьшить либо x1, либо х2 , но это невозможно, так как в этом базисе