Система рассмотренных выше предпосылок или условий формулировки экономических проблем как задач на оптимум при всей её кажущейся естественности и универсальности обладает существенной неполнотой. Даже если в системе выбора экономического решения объективно существует единая цель деятельности, ограниченность и взаимозаменяемость средств её достижения, такая система может быть сведена к задаче оптимизации лишь при выполнении ещё трёх важных условий:
- условие полной рационализации – цель деятельности осознаётся с высокой степенью конкретности как единая количественно измеримая категория;
- условие всестороннего знания – все альтернативные возможности достижения целей заранее известны и хорошо описаны, остаётся лишь сравнить и оценить их;
- условие безграничности вычислительных возможностей – ресурсы, предназначенные для реализации самого процесса исследования по отысканию наилучшего решения (мощность ЭВМ, численность групп специалистов, срок выдачи рекомендаций и др.), не лимитируют возможности получения этого решения.
Очевидно, далеко не все экономические проблемы, для которых выполняются первые три предпосылки, формулируются в условиях выполнения последних трёх предпосылок. Эти дополнительные требования выполняются лишь для хорошо стуктуризованных проблем, не испытывающих существенного влияния неполноты информации. Именно этот класс проблем может быть сведён к задачам математического программирования.
Применительно к общей модели математического программирования функция gi(x) должна быть известна, то есть зависимость расхода или выпуска ресурса i-го вида от переменных должна быть известна. Величина bi есть наличие или возможность получения ресурса i-го вида и должна быть задана. В каждом из ограничений вида gi(x) £ bi может иметь место в принципе любой из знаков £, =, ³. Ограничение вида gi(x) ³.bi может быть приведено к каноническому (классическому) виду следующим образом: -gi(x) £ -bi. Различные ограничения могут иметь различные знаки. Соотношение между числом неизвестных n и числом ограничений m может быть любым: m < n; m = n; m > n. Когда m = 0, то ищется максимум или минимум целевой функции без ограничений, т. е. решается задача на нахождение безусловного экстремума.
На переменные могут дополнительно накладываться следующие ограничения:
а) некоторые или все переменные должны быть неотрицательными, то есть xj ³0 (j = 1,2, …, n1), где n1£ n;
б) некоторые или все переменные могут принимать лишь дискретные (например, целочисленные) значения.
Эти дополнительные ограничения довольно типичны для экономических ситуаций (раскройная задача, станковая задача, причём в последней число станков может быть только целым числом).
В зависимости от конкретизации общей задачи математического программирования вычислительные методы поиска оптимальных решений зависят от того, в какую основную группу экономических задач оптимизации попадёт соответствующая задача.
Ранее мы уже привели классификацию этих задач на линейные и нелинейные задачи.
Если принять, что
f(x1,x2,…,xn) =
(4.1)
gi (x1,x2,…,xn) = { £, =, ³}bi , i=1,…,m.
(4.2)
xj³0 (i=1,2,…,n),
(4.3)
где аij и cj – заданные величины, то получим общую задачу линейного программирования, которая формулируется следующим образом.
Необходимо найти n неотрицательных переменных xj, максимизирующих (или минимизирующих) линейную целевую функцию (4.1) и удовлетворяющих ограничениям (4.2), (4.3).
Для этих задач разработан целый ряд эффективных методов, алгоритмов и программ, основным из которых является симплекс-метод.
Все другие задачи, имеющие целевую функцию и ограничения, отличающиеся от (4.1), (4.2) и (4.3), кроме задач, в которых предполагается целочисленность переменных, принято считать нелинейными.