На этом шаге мы рассмотрим реализацию графического метода решения задачи линейного программирования для случая максимизиции целевой функции.
Мы используем модель, построенную для компании "Русские краски", чтобы показать метод графического решения задачи ЛП.
Этап 1. Построение пространства допустимых решений.
Сначала проведем оси: на горизонтальной будут указываться значения переменной х1, а на вертикальной — х2. Далее рассмотрим условие неотрицательности переменных: х1 ≥ 0 и х2 ≥ 0. Эти два ограничения показывают, что пространство допустимых решений будет лежать в первом квадранте.
Чтобы учесть оставшиеся ограничения заменим неравенства на равенства, в результате чего получим уравнения прямых, а затем на плоскости проведем эти прямые.
Теперь рассмотрим, как графически интерпретируются неравенства. Каждое неравенство делит плоскость (х1 , х2) на два полупространства, которые располагаются по обе стороны прямой, которая соответствует данному неравенству. Точки плоскости, расположенные по одну сторону прямой, удовлетворяют неравенству (допустимое полупространство), а точки, лежащие по другую сторону, — нет. "Тестовой" точкой, проверяющей, точки какого полупространства удовлетворяют неравенству, а какого — нет, может служить точка (0, 0). Например, эта точка удовлетворяет первому неравенству 6х1 + 4х2 < 24 (здесь 6*0 + 4*0 = 0 < 24). Это означает, что точки полупространства, содержащего начальную точку (0,0), удовлетворяют этому неравенству. На рис. 1 допустимые полупространства показаны стрелочками.
Рис. 1 Допустимое полупространство решений
В том случае, когда точка (0,0) не удовлетворяет неравенству, допустимым полупространством будет то, которое не содержит эту точку. Если же прямая проходит через эту точку, следует в качестве "тестовой" взять какую-либо другую точку.
Этап 2. Нахождение оптимального решения.
Точки пространства допустимых решений, показанного на рис. 1, удовлетворяют одновременно всем ограничениям. Это пространство ограничено отрезками прямых, которые соединяются в угловых точках А, В, С, D, Е и F. Любая точка, расположенная внутри или на границе области, ограниченной ломаной ABCDEF, является допустимым решением, т.е. удовлетворяет всем ограничениям.
Поскольку пространство допустимых решений содержит бесконечное число точек, необходима некая процедура поиска оптимального решения. Нахождение оптимального решения требует определения направления возрастания целевой функции z = 5х1 + 4х2. Мы можем приравнять z к нескольким возрастающим значениям, например 10 и 15. Эти значения, подставленные вместо z в выражение целевой функции, порождают уравнения прямых; для значений 10 и 15 получаем уравнения прямых 5х1 + 4х2= 10 и 5х1 + 4х2= 15. На рис. 2 эти прямые показаны штриховыми линиями, а направление возрастания целевой функции — толстой стрелкой.
Рис. 2. Возрастание целевой функции
Целевая функция может возрастать до тех пор, пока прямые, соответствующие возрастающим значениям этой функции, пересекают область допустимых решений. Точка пересечения области допустимых решений и прямой, соответствующей максимально возможному значению целевой функции, и будет точкой оптимума.
На рис. 2 видно, что оптимальное решение соответствует точке С. Эта точка является местом пересечения прямых (1) и (2), поэтому ее координаты x1 и х2 находятся как решение системы уравнений, задающих эти прямые:
6x1 + 4x2 = 24,
x1 + 2x2 = 6
Решением этой системы будет х1 = 3 и х2 = 1.5, при этом значение целевой функции равно z = 21. Полученное решение означает, что для компании "Русские краски" оптимальным выбором будет ежедневное производство 3 т краски для наружных работ и 1.5 т — для внутренних работ с ежедневным доходом в 21000.
Не случайно, что оптимальное решение расположено в угловой точке пространства допустимых решений, где пересекаются две прямые. Если мы изменим наклон функции z (путем изменения ее коэффициентов), то обнаружим, что в любом случае решение достигается в одной из угловых точек (или одновременно в нескольких угловых точках). В этом и состоит основная идея построения общего симплексного алгоритма.
На следующем шаге рассмотрим графический метод решения задачи линейного программирования для случая минимизации целевой функции.