Геометрический способ решения задачи в случае 2 переменных |
||
Для линейных уравнений геометрическим образом его является прямая линия на плоскости в случае двух переменных. Ее уравнение можно записать в виде y=ax +b, где a- тангенс угла наклона прямой, а b- отрезок, отсекаемый на оси y. Прямая делит плоскость на 2 полуплоскости. Рассмотрим какая зависимость между ординатами у1,y,у2, точек М1,м,М2, расположенных над прямой, на прямой и под прямой для одного и того же х. Видно, что для всех точек полуплоскости, расположенной над прямой у1>у, а для всех точек полуплоскости под прямой у2< у, таком образом полуплоскости задаются неравенствами у> ax+b и y<ax+b.Если считать прямую принадлежащей полуплоскости, то получим неравенства y>=ax+b и y<=ax+b. Смотри рисунок 1. Рисунок 1. Графическое представление
В общем случае уравнение прямой записывается в виде ax+by+c=0. Тогда точки полуплоскостей, получающихся в результате рассечения плоскости прямой описываются неравенствами ax1+bx2+c>=0 ax1+bx2+c<=0, где обозначение у заменено на х2, а х на х1. Координаты точек, удовлетворяющие заданному неравенству являются решением неравенства. В случае системы из m неравенств из двух неизвестных каждое неравенство определяет некоторую полуплоскость. Так как полуплоскость вместе со своими двумя точками А и В содержит и весь отрезок АВ, то она является выпуклой фигурой. Фигура, состоящая из всех точек, каждая их которых принадлежит всем данным фигурам называется пересечением и в геометрии доказано, что пересечение выпуклых фигур является выпуклой фигурой-многоугольником, который и определяет область допустимых решений системы неравенств. В нашем примере условия неотрицательности ограничивают область первым квадрантом. Другие границы пространства решений изображаются на плоскости прямыми линиями, построенными по уравнениям, которые получаются при замене знаков неравенства на равенство. Области, в которых выполняются соответствующие ограничения в виде неравенств указываются стрелками, направленными в сторону допустимых значений. Геометрическая суть решения сводится к поиску среди множества линий Z=C1+C2 такой, которая бы соответствовала бы наибольшему значению Z и проходила бы через прямоугольник OABC. Чтобы сформулировать правило решения задачи геометрическим способом введем понятие опорной прямой и прямой уровня. Опорной прямой называется прямой, которая имеет с многоугольником решений хотя бы одну общую точку, а все остальные точки многоугольника лежат по одну сторону от нее. Прямой уровня называется прямая, для которой функция Z приобретает одинаковое значение. Вершины многоугольника, через которые проходят опорные прямые, будут искомыми точками. Если задавать Z разные значения, мы получим семейство прямых уровня. Если С1>0 и C2>0 то линия уровня С1x1+С2x2 =0 пройдет через начало координат. Будем перемещать ее параллельно самой себе и следить в какой точке она последней покинет многоугольник. Эта точка ( или линия) и будет оптимальным решением задачи. Смотри рисунок.2.
Рисунок 2. Графический способ нахождения решения
В нашем примере для нахождения значений х1 и х2 в точке В нужно решить систему из двух уравнений пересекающихся линий, т.е. 3х1+4х2=1700 2х1+5х2=1600 Вектор с компонентами dZ/dx1,dZ/dx2 (2,4) указывает направление возрастания функции Z, он перпендикулярен линиям уровня и направлен в сторону, противоположную началу координат, так как угловой коэффициент вектора n с координатами (с1,с2) к2=с2/с1, а угловой коэффициент функции Z равен к1=-с1/с2 и следовательно линии уровня Z и вектора n перпендикулярны. Два свойства решения для двумерного случая сохраняются и при переходе к m-мерному случаю: 1) допустимая область решения всегда является выпуклым многогранником, 2) оптимальное решение всегда достигается в вершинах или на гранях допустимой области.
Таким образом, можно сформулировать алгоритм геометрического решения 1.Строим многоугольник решений системы ограничений. 2.Стрoим одну из прямых уровня для произвольного Z и вектора n(c1,c2). 3.Находим опорные прямые, параллельные прямой уровня. 4.Находим координаты х1,х2 точек, через которые проходят линии уровня. 5.Находим в этой точке Z. В общем случае задача линейного программирования состоит в максимизации или минимизации линейной формы Z=c1x1+c2x2+...cnxn от n переменных, удовлетворяющих системе m ограничений a11x1+a12x2+...a1nxn<=b1 a21x1+a22x2+...a2nxN<=b2 ........................ am1x1+am2x2+...amnxn<=bm и ограничениям положительности x1>=0, x2>=0, .....xn>=0. В векторном представлении это можно записать в виде Z=CTX0,X0>=0,A0X0<=(=,>=)b. Для решения задачу необходимо привести к стандартному виду 1)целевая функция минимизируется 2)все ограничения должны быть записаны в виде равенств с неотрицательными переменными( т.е. все знаки <= заменить на =) и все переменные должны быть >=0. x1,x2,...xn>=0 Привести произвольную задачу к стандартному виду можно используя следующие правила: Для ограничений 1)когда неравенство<=0, то вводится дополнительная переменная х1+х2<=0 -> х1+х2+х3=0 2)если неравенство >=0, то вводим дополнительную переменную с минусом х1+х2>=0 -> х1+х2-х3=0 3)для получения неотрицательных переменных обе части неравенства можно умножить на -1 4)при этом направление знака неравенства меняется на противоположное. Для переменных Чтобы х>= 0 было делают замену переменных xi=xi'-xi'', при этом xi',xi''>=0. Подстановка делается во все ограничения и в целевую функцию. Для целевой функции 1) max F= min(-F) Пример z=2x1+4x2 3x1+4x2<=1700 2x1+5x2<=1600 Будем минимизировать Z=-2x1-4x2 с измененной системой согласно указанных выше правил 3х1+4х2+х3=1700 2х1+5х2+х4=1600 Для решения возникающей системы уравнений можно использовать симплекс- метод . |
||