Линейное программирование
Линейное программирование -математическая дисциплина, посвященная теории и методам решения задач об экстремумах линейных функций на множествах n-мерного векторного пространства, задаваемых системами линейных уравнений и неравенств.
Линейное программирование является частным случаем математического программирования. Одновременно оно - основа нескольких методов решения задач целочисленного и нелинейного программирования.
Математическое программирование
, математическая дисциплина, посвященная теории и методам решения задач о нахождении экстремумов функций на множествах, определяемых линейными и нелинейными ограничениями (равенствами и неравенствами). Математическое программирование
- раздел науки об исследовании операций , охватывающий широкий класс задач управления, математическими моделями которых являются конечномерные экстремальные задачи. Задачи Математическое программирование
находят применение в различных областях человеческой деятельности, где необходим выбор одного из возможных образов действий, например, при решении многочисленных проблем управления и планирования производственных процессов, в задачах проектирования и перспективного планирования. Наименование «Математическое программирование
» связано с тем, что целью решения задач является выбор программы действий. Математическая формулировка задачи Математическое программирование
: минимизировать скалярную функцию j(x) векторного аргумента х на множестве X = {x: gi(x) ³ 0, hi(x) = 0, <http://I-Iodine.info/> = 1, 2, ., k}, где gi(x) и hi(x) - также скалярные функции; функцию j(x) называют целевой функцией, или функцией цели, множество X - допустимым множеством, решение х* задачи Математическое программирование
- оптимальной точкой (вектором). В Математическое программирование
принято выделять следующие разделы. Линейное программирование <http://bse.sci-lib.com/article070426.html>: целевая функция j(x) и ограничения gi(x) и hi (х) линейны; выпуклое программирование: целевая функция и допустимое множество выпуклы; квадратичное программирование: целевая функция квадратична и выпукла, допустимое множество определяется линейными равенствами и неравенствами; дискретное программирование: решение ищется лишь в дискретных, например целочисленных, точках множества X; стохастическое программирование: в отличие от детерминированных задач, здесь входная информация носит элементы неопределённости; например, в стохастических задачах о минимизации линейной функции при линейных ограничениях , i = 1, 2, …, m, либо все величины cj, aij, bi, либо часть из них случайны. Задачи перечисленных разделов обладают общим свойством: всякая точка локального минимума является оптимальной точкой. Несколько в стороне находятся так называемые многоэкстремальные задачи - задачи, для которых указанное свойство не выполняется. В основе теории выпуклого программирования и, в частности, линейного и квадратичного, лежит теорема Куна - Таккера о необходимых и достаточных условиях существования оптимальной точки x*: для того чтобы точка х* была оптимальной, то есть , X = {x: gi(x) ³ 0, i = 1, 2, ., k}, необходимо и достаточно, чтобы существовала такая точка у* = (у*1, у*2, ., у*k), чтобы пара точек х*, у* образовывала седло функции Лагранжа Последнее означает, что L(x*, y) £ L(x*, y*) £ L(x, у*) для любых х и всех у ³ 0. Если ограничения gi(x) нелинейны, то теорема справедлива при некоторых дополнительных предположениях о допустимом множестве. Если функции j(x) и gi(x) дифференцируемы, то следующие соотношения определяют седловую точку , j = 1, 2, …, n; ; ; i = 1, 2, …, k; , yi ³ 0, i = 1, 2, …, k. Таким образом, задача выпуклого программирования сводится к решению системы уравнений и неравенств. На основе теоремы Куна - Таккера разработаны различные итерационные методы минимизации, сводящиеся к поиску седловой точки функции Лагранжа. В Математическое программирование