logo
задачи лин прогр

Решение задачи линейного программирования графическим методом.

Трудность построения математической модели заключается в идентификации переменных и последующем представлении цели и ограничений в виде математических функций этих переменных. Если модель содержит только две переменные, то задачу линейного программирования можно решить графически. В случае трёх переменных графическое решение становится менее наглядным, а при большем значении переменных – даже невозможным. Однако графическое решение позволяет сделать выводы, которые служат основой для разработки общего метода решения задачи линейного программирования.

Первый шаг при использовании графического метода заключается в геометрическом представлении допустимых решений, т.е. построении области допустимых решений (ОДР.), в которой одновременно удовлетворяются все ограничения модели. При получении графического решения переменная откладывается по горизонтальной оси, а – по вертикальной. При формировании ОДР необходимо предотвратить получение недопустимых решений, которые связаны с необходимостью выполнения условия неотрицательности переменных. Перед построением необходимо определить квадранты, в которых будет располагаться ОДР. Квадранты определяются знаками переменных и . Условия неотрицательности переменных и ограничивают область их допустимых значений первым квадрантом. Если переменная не ограниченна в знаке, то область ограничивается первым и вторым квадрантом, если , то – первым и четвёртым квадрантом. Другие границы пространства решений на плоскости , изображены прямыми линиями, построенными по уравнениям ограничений при условии замены знака на знак "=". При этом необходимо учитывать следующее: правые части всех ограничений должны быть неотрицательными . Если какое-нибудь ограничение < 0, то необходимо коэффициенты соответствующего ограничения слева и справа домножить на "-1" и изменить знак неравенства данного ограничения на противоположный. Области, в которых выполняются соответствующие ограничения в виде неравенств, указываются стрелками, направленными в сторону допустимых значений переменных.

В результате построений получается многоугольник, который определяет пространство решений. Если одно из ограничений имеет знак "=", то ОДР вырождается в отрезок.

В каждой точке, принадлежащей области или границам многоугольника решений, все ограничения выполняются, поэтому все решения, соответствующие этим точкам, являются допустимыми. Пространство решений содержит бесконечное число таких точек, несмотря на это, можно найти оптимальное решение. Для этого необходимо построить в плоскости переменных , градиент целевой функции. Определение оптимальной точки зависит от той задачи, которую необходимо решить.

Если в целевой функции определена задача максимизации, то оптимальная точка будет располагаться в направлении увеличения градиента, если задача минимизации – то в направлении уменьшения градиента целевой функции. Для определения оптимальной точки будем перемещать целевую функцию в направлении увеличения (уменьшения) градиента до тех пор, пока она не сместится в область недопустимых решений.

После нахождения оптимальной точки пространства решений определяют её координаты , и значение целевой функции в ней. Правильность выбора оптимальной точки можно проверить расчётом целевой функции в вершинах многогранника решений. В ЗЛП область допустимых решений всегда является выпуклым множеством, т.е. таким множеством, что наряду с любыми двумя точками, принадлежащими этому множеству, этому же множеству принадлежит и отрезок, соединяющий эти две точки. Любая функция наискорейшим образом увеличивается в направлении своего градиента.

Для практического решения задачи линейного программирования на основе ее геометрической интерпретации необходимо следующее:

  1. Построить прямые, уравнения которых получаются в результате замены в ограничениях(2),(4) знаков неравенств на знаки равенств.

  2. Найти полуплоскости, определяемые каждым из ограничений задачи.

  3. Определить многоугольник решений.

  4. Построить вектор С=(с12)

  5. Построить прямую Z=c1x1+c2x2=0, проходящую через начало координат и перпендикулярную вектору С.

  6. Передвигать прямую в направлении вектора С, в результате чего либо находят точку(точки), в которой целевая функция принимает максимальное значение, либо устанавливают неограниченность функции сверху на множестве планов

  7. Определить координаты точки максимума функции и вычислить значение целевой функции в этой точке.

Рассмотрим решение задачи на примере.

Дана следующая задача линейного программирования (ЗЛП).

3X1+4X2 MAX

Построить на плоскости область решений системы линейных неравенств и найти наибольшее значение линейной функции в этой области.

Решение

Построим многоугольник решений (рис.1). Для этого в системе координат X1OX2 на плоскости изобразим граничные прямые:

Взяв какую-либо точку, например начало координат, установим, какую полуплоскость определяет соответствующее неравенство. Полуплоскости, определяемые неравенствами, на рис.1 показаны стрелками. Областью решений является многоугольник OABCD.

А

В

С

D

Z=0

Рис.1

Для построения прямой строим вектор градиент и через точку O проводим прямую, перпендикулярную ему. Построенную прямую Z=0 перемещаем параллельно самой себе в направлении вектора . Из рис.1 следует, что по отношению к многоугольнику решений опорной эта прямая становится в точке С, где функция принимает максимальное значение. Точка С лежит на пересечении прямых и . Для определения ее координат решим систему уравнений:

Оптимальный план задачи Подставляя значения и в линейную функцию получим:

Полученное решение означает, что объем производства продукции П1 должен быть равен 2,4 ед., а продукции П2-1,4 ед. Доход получаемый в этом случае составит: Z=12,8 д.е.

Геометрическим способом можно также решать задачи линейного программирования с числом переменных более двух. Для этого исходную задачу преобразуют методом Жордана-Гаусса. Используя этот метод, исключают переменные , получают задачу, выраженную только через две свободные переменные, решают по описанному алгоритму.