Лекции Методы оптимальных решений. Методы оптимальных решений
Скачать 466.5 Kb.
|
5. МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 5.1. Общая и основная задачи линейного программирования К математическим задачам линейного программирования приводят исследования конкретных производственно-хозяйственных ситуаций, которые в том или ином виде интерпретируются как задачи об оптимальном использовании ограниченных ресурсов (задача о раскрое, смесях и т.д.). Во всех этих задачах требуется найти максимум или минимум линейной функции при условии, что ее переменные принимают неотрицательные значения и удовлетворяют некоторой системе линейных уравнений или линейных неравенств либо системе, содержащей как линейные неравенства, так и линейные уравнения. Каждая из этиx задач является частным случаем общей задачи линейного программирования. Oбщей задачей линейного программирования называется задача, которая coстоит в определении максимального (минимального) значения функции: (5.1) при условии: (5.2) (5.3) Xj 0 (j=1, 1; 1 n) (5.4) где aij, bi, сj - заданные постоянные величины и k m. Функция (5.1) называется целевой функцией (или линейной формой) задачи (5.1)-(5.4), а условия (5.2)-(5.4) - ограничениями данной задачи. Стандартной (или симметричной) задачей линейного программирования называется задача, которая состоит в определении максимального значения функции (5.1) при выполнении условий (5.2) и (5.4), где k=m и 1=n. Канонической (или основной) задачей линейного программирования называется задача, которая состоит в определении максимального значения функции (5.1) при выполнении условий (5.3) и (5.4), где k=0 и 1=n. Совокупность чисел Х = (x1, x2, ..., xn), удовлетворяющих ограничениям задачи (5.2)-(5.4), называется допустимым решением (или планом). План Х = (x1, x2, ..., xn), при котором целевая функция задачи (5.1) принимает свое максимальное (минимальное) значение, называется оптимальным. значение целевой функции (5.1) при плане X будем обозначать через F(X). Следовательно, Х - оптимальный план задачи, если для любого X выполняется неравенство F(X) F(Х) (соответственно F(X) F(Х)). 5.2. Геометрический метод решения задач линейного программирования Перепишем основную задачу линейного программирования в векторной форме: найти максимум функции F=CX (5.5) при условиях: x1P1+x2P2+ ... +xnPn = P0 (5.6) Х 0 (5.7) где C = (с1, с2, ..., сn), Х = (х1, х2, ..., хn); СХ - скалярное произведение; Р1, Р2, ..., Рn и Р0 - m-мерные вектор-столбцы, составленные из коэффициентов при неизвестных и свободных членах системы уравнений задачи. План X = (х1, х2, ..., хn) называется опорным планом основной задачи линейного программирования, если система векторов Pj, входящих в разложение (5.6) с положительными коэффициентами xj, линейно независима. Непустое множество планов основной задачи линейного программирования образует выпуклый многогранник. Каждая вершина этого многогранника определяет опорный план. В одной из вершин многогранника решений (т.е. для одного из опорных планов) значение целевой функции является максимальным (при условии, что функция ограничена сверху на множестве планов). Если максимальное значение функция принимает более чем в одной вершине, то это же значение она принимает в любой точке, являющейся выпуклой линейной комбинацией данных вершин. Вершину многогранника решений, в которой целевая функция принимает максимальное значение, найти сравнительно просто, если задача, записанная в форме стандартной, содержит не более двух переменных или задача, записанная в форме основной, содержит не более двух свободных переменных. Haйдем решение задачи, состоящей в определении максимального значения функции: F=c1x1 + с2х2 (5.8) при условиях: ai1x1+ai2x2 bi (i=1, k) (5.9) xj 0 (i=1,2) (5.10) Каждое из неравенств (5.9), (5.10) системы ограничений задачи геометрически определяет полуплоскость соответственно с граничными прямыми ai1+ai2=bi (i=1, k), x1=0 и x2=0. В этом случае, если система неравенств (5.9), (5.10) совместна, область ее решений есть множество точек, принадлежащих всем указанным полуплоскостям. Так как множество точек пересечения данных полуплоскостей выпуклое, то областью допустимых решений (ОДР) задачи (5.8)-(5.10) является выпуклое множество, которое называется многоугольником решений. Стороны этого многоугольника лежат на прямых, уравнения которых получаются из исходной системы ограничений заменой знаков неравенств на знаки точных равенств. Таким образом, исходная задача линейного программирования состоит в нахождении такой точки области допустимых решений, в которой целевая функция F принимает максимальное значение. Эта точка существует тогда, когда многоугольник решений не пуст и на нем целевая функция ограничена сверху. При указанных условиях в одной из вершин ОДР целевая функция принимает максимальное значение. Для определения данной вершины построим линию уровня c1x1+c2x2=h (где h - некоторая постоянная), проходящую через ОДР, и будем ее передвигать в направлении вектора C=(с1; с2) до тех пор, пока она не пройдет через последнюю ее общую точку с многоугольником ОДР. Координаты указанной точки и определяю оптимальный план данной задачи. При нахождении решения задачи могут встретиться случаи, изображенные на рис. 5.1-5.4. Рис. 5.1 характеризует такой случай, когда целевая функция принимает максимальное значение в единственной точке А. Из рис. 5.2 видно, что максимальное значение целевая функция принимает в любой точке отрезка АВ. На рис. 5.3 изображен случай, когда целевая функция не ограничена сверху на множестве допустимых решений, а на рис. 5.4 - случай, когда система ограничений задачи несовместна. Oтметим, что нахождение минимального значения линейной функции при данной системе ограничений отличается от нахождения ее максимального значения при тex же ограничениях лишь тем, что линия уровня c1x1+c2x2=h передвигается не в направлении вектора С, а в противоположном направлении. Таким образом, отмеченные выше случаи, встречающиеся при нахождении максимального значения целевой функции, имеют место и при определении ее минимального значения. Тот факт, что оптимальное решение находится в одной из вершин многоугольника ОДР, позволяет сделать еще два важных вывода: если оптимальным решением являются координаты вершины многоугольника ОДР, значит, сколько вершин имеет ОДР, столько существует целевых функций и столько оптимальных решений по этим функциям может иметь задача. поскольку, чем больше ограничений имеет задача, тем больше вершин, тo, следовательно, чем больше целевых функций и, следовательно, тем больше оптимальных решений по этим функциям. Из рисунков можно сделать вывод, что вершина, координаты которой являются оптимальным решением, определяются углом наклона прямой, описывающей целевую функцию. Значит, каждая вершина будет соответствовать оптимальному решению для некоторой целевой функции. Итак, нахождение решения задачи линейного программирования (5.8)-(5.10) на основе ее геометрической интерпретации включает следующие этапы. этапы нахождения решения задачи линейного программирования: Строят прямые, уравнения которых получаются в результате замены в ограничениях (5.9) и (5.10) знаков неравенств на знаки точных равенств. Находят полуплоскости, определяемые каждым из ограничений задачи. Находят многоугольник решений (ОДР). Строят вектор C=(с1; с2). Строят прямую c1x1+c2x2=h, проходящую через многоугольник решений. Передвигают прямую c1x1+c2x2=h в направлении вектора С, в результате чего-либо находят точку (точки), в которой целевая функция принимает максимальное значение, либо устанавливают неограниченность сверху функции на множестве планов. Определяют координаты точки максимума функции и вычисляют значение целевой функции в этой точке. 5.3. Графическое решение задачи распределения ресурсов Пусть для двух видов продукции П1и П2 требуются трудовые, материальные и финансовые ресурсы. Наличие ресурсов каждого вида и их нормы расхода, необходимые для выпуска единицы продукции, приведены в табл. 5.1. Таблица 5.1
составим математическую модель задачи. x1+4x2 14 x1+4x2 18 (5.11) x1+2x2 27 x1 0, x2 математическая модель представляет собой систему линейных неравенств. Значит ОДР нашей задачи выпуклый многоугольник. Для удобства построения неравенства можно записать в форме, аналогичной уравнениям в отрезках: x1/14+x2/7/2 1 x1/6+x2/9/2 1 (5.12) x1/9/2+x2/27/2 1 x1 0, x2 Если мы хотим найти оптимальное решение, то должны принять целевую функцию. Допустим, мы хотим, чтобы решение было оптимальным в смысле максимизации суммарного выпуска. Тогда целевая функция: F=x1+x2 max (5.13) Эту зависимость представим в виде x2= F-x1. Из графика данного уравнения (Рис. 5.1) следует, что tg= 1, при этом =135о, а величина F равна отрезку, отсекаемому прямой функции цели на оси координат. Если прямую перемещать параллельно самой себе в направлении, указанном стрелками, то эта величина будет возрастать. Очевидно, что оптимальным решением будут координаты точки С (x1; x2). При этом F=F. На основании рассмотренного, можно сделать исключительно важный вывод: оптимальным решением являются координаты вершин ОДР. А из этого вывода следует метод решения задачи линейного программирования. метод решения задачи линейного программирования: Найти вершины ОДР, как точки пересечения ограничений. Определить последовательно значения целевой функции в вершинах. Вершина, в которой целевая функция приобретает оптимальное значение, является оптимальной вершиной. Координаты оптимальной вершины являются оптимальными значениями искомых переменных. Если направление целевой функции совпадает с направлением одной из сторон, то у задачи будет, по крайней мере, два решения. В таком случае говорят, что задача имеет альтернативные решения. А это значит, что одно и то же оптимальное значение целевой функции может быть получено при различных значениях переменных. Тот факт, что оптимальное решение находится на вершине ОДР, дает еще два очень важных вывода: если оптимальным решением являются координаты вершин ОДР, значит, сколько вершин имеет ОДР, столько оптимальных решений может иметь задача. поскольку чем больше ограничений, тем больше вершин, то, следовательно, чем больше ограничений, тем больше оптимальных решений. Как видно на Рис. 5.1, вершина, координаты которой являются оптимальным решением, определяется углом наклона прямой, описывающей целевую функцию. Значит, каждая вершина будет соответствовать оптимальному решению для некоторой целевой функции. Поясним это на рассмотренном ранее примере. Раньше мы находили оптимальное решение по максимизации суммарного выпуска F1=x1+x2max. Найдем оптимальные решения еще для четырех целевых функций: F2=x2max (максимизация выпуска продукции П2) F3=x1max (максимизация выпуска продукции П1) F4=4x1+8,5x2max (максимизация прибыли) F5=(1+3+6)x1 + (4+4+2)x2 = 10х1+10х2 max (минимизация используемых ресурсов). Для каждой целевой функции, так же как и для F1, можно построить линию целевой функции и определить вершину, в которой целевая функция будет иметь оптимальное значение. Результаты решения задачи по пяти целевым функциям сведем в таблицу 5.2, из анализа которой можно сделать вывод: координаты каждой вершины могут быть оптимальным решением в некотором смысле. |