Задачи математического программирования делятся на задачи линейного и нелинейного программирования. Если все функции f и gi - линейные, то соответствующая задача является задачей линейного программирования. Если хотя бы одна из указанных функций - нелинейная, то соответствующая задача является задачей нелинейного программирования.
Линейное программирование - область математики, разрабатывающая теорию и численные методы решения задач нахождения экстремума (максимума или минимума) линейной функции многих переменных при наличии линейных ограничений, т.е. линейных равенств или неравенств, связывающих эти переменные. К задачам линейного программирования сводится широкий круг вопросов планирования экономических процессов, где ставится задача поиска наилучшего (оптимального) решения.
В общем виде задача линейного программирования (ЗЛП) ставится следующим образом: найти вектор Х = (хl, х2,..., хn), максимизирующий линейную форму
(1.1) и удовлетворяющий условиям: (1.2) xj ≥ 0, j = 1,..., n. (1.3)
|
|
Линейная функция f (Х) называется целевой функцией задачи. Условия (1.2) называются функциональными, а (1.3) - прямыми ограничениями задачи.
Вектор Х = (xl, х2,..., хn) компоненты которого удовлетворяют функциональным и прямым ограничениям задачи, будем называть планом, или допустимым решением ЗЛП.
Все допустимые решения образуют область определения задачи линейного программирования, или область допустимых решений. Допустимое решение, максимизирующее целевую функцию f (X), называется оптимальным планом задачи f (X*) = max f (X),
где Х* = (xl*, х2*,..., хn*) - оптимальное решение ЗЛП.
На практике хорошо зарекомендовали себя следующие модели, относящиеся к оптимизационным: определения оптимальной производственной программы; оптимального смешивания компонентов; оптимального раскроя; оптимального размещения предприятий некоторой отрасли на определенной территории; формирования оптимального портфеля ценных бумаг; транспортной задачи.
Для решения ЗЛП существует универсальный метод - метод последовательного улучшения плана, или симплекс-метод, который состоит из двух вычислительных процедур: симплекс-метода с естественным базисом и симплекс-метода с искусственным базисом (М-метод).
Рассмотрим пример задачи линейного программирования.