КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Линейное программирование. Под линейным программированием понимается раздел теории экстремальных задач, в котором изучаются задач и минимизации (или максимизации) линейных функций наПод линейным программированием понимается раздел теории экстремальных задач, в котором изучаются задач и минимизации (или максимизации) линейных функций на множествах, задаваемых системами линейных равенств и неравенств. В общем случае задача линейного программирования формулируется следующим образом. Найти вектор х* (x*1, ..., х*n), определяющий максимум (минимум) линейной форме f(x) с1x1 + с2x2+...+сnxn (7.17) при ограничениях (7.18) : a11x1 + … a1nxn b1; . . . . . . . . . . . . . . . . . . . am1x1 + … amnxn bm; am+1x1+… am+1,nxn bm+1; . . . . . . . . . . . . . . . . . . . (7.18) akx1 + … aknxn bm; ak+1 x1 + … ak+1nxn bm; am+1x1 + … am+1,nxn bm+1; . . . . . . . . . . . . . . . . . . alx1 + … alnxn bl; xi 0; i 1, …, n. Каждое из условий-неравенств определяет полупространство, ограниченное гиперплоскостью. Пересечение полупространств образует выпуклый п-мерный многогранник Q. Условия равенства выделяют из n-мерного пространства (п-l) -мерную плоскость, пересечение которой с областью Q дает выпуклый (n-l) -мерный многогранник G. Экстремальное значение линейной формы (если оно существует) достигается в некоторой вершине многогранника. При вырождении оно может достигаться во всех точках ребра или грани многогранника. В силу изложенного для решения задачу линейного программирования теоретически достаточно вычислить значения функции в вершинах многогранника и найти среди этих значений наибольшее или наименьшее. Однако в практических задачах количество вершин области G настолько велико, что просмотр их даже с использованием ЭВМ невозможен. Поэтому разработаны специальные численные методы решения задач линейного программирования, которые ориентируются в основном на две формы записи задач. Каноническая форма задачи линейного программирования: f(x) с1х1 + ...+ сnxn > ?max(min);(7.19) a11x1 +… a1nxn b1; . . . . . . . . . . . . . . . . . .(7.20) amx1 +… amnxn bm; xi 0; i 1, …, n. или в матричной форме: (с, х) ? > max(min);(7.21) Ax b, х 0. Здесь А (аij) - (mхn) - матрица условий. Ее столбцы (a1j, ..., аmj)T , j 1, ..., п, называются векторами условий. Вектор b (b1, ..., bm)T носит название вектора правых частей, а с (с1, …, сn) - вектора коэффициентов линейной формы. Задача линейного программирования с однотипными условиями f(x) с1х1 + ...+ сnxn ? > max(min);(7.22) a11x1 +… a1nxn b1; . . . . . . . . . . . . . . . . . . amx1 +…amnxn bm; или в матричной форме: (с, х) ? > max(min);(7.23) Ax b, Любую задачу можно привести к каждой из приведенных форм с помощью приемов, описанных ниже. Переход к эквивалентной системе неравенств. Знак неравенства можно поменять на обратный, меняя знаки свободного члена и коэффициентов. Например, ограничение a11x1 +…a1nxn b1; можно заменить условием ‑a11x1 +…‑a1nxn -b1. Переход от ограничения - неравенства к равенству Для этого необходимо ввести дополнительную неотрицательную переменную. Так, условие a1x1 +…anxn b. эквивалентно двум ограничениям: ‑a11x1+…‑a1nxn+xn+1 b; xn+1 b1. Представление ограничения-равенства парой неравенств. Ограничение alx1 +… anxn b; можно представить парой условий: a11x1 +… a1nxn b1. a11x1 +…-a1nxn -b1. Переход к неотрицательным переменным Если на знак переменной хi не наложено ограничений, можно заменить ее разностью двух неотрицательных переменных: xi xn+2 - xn+1, xn+1 0; xn+2 0. Переход от переменных, ограниченных снизу, к неотрицательным переменным Если переменная ограничена снизу хi bi то, заменив ее по формуле хi уi + bi переходим к задаче с неотрицательной переменной уi 0. Наиболее употребительным численным методом решения задач линейного программирования является симплекс-метод. Идея этого метода состоит в следующем. Отыскиваются некоторая вершина многогранника G и все ребра, выходящие из этой вершины. Далее перемещаются вдоль того из ребер, по которому функция убывает (при поиске минимума), и попадают в следующую вершину. Находят выходящие из нее ребра и повторяют процесс. Когда приходят в такую вершину, в которой вдоль всех выходящих из нее ребер функция возрастает, то минимум найден. Отметим, что, выбирая одно ребро, исключают из рассмотрения вершины, лежащие на остальных траекториях. В результате количество рассматриваемых вершин резко сокращается и оказывается посильным для ЭВМ. Симплекс-метод весьма эффективен и широко применяется для решения задач линейного программирования.
|