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

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

I. Областью решений неравенства является полуплоскость, расположенная выше или ниже прямой, описываемой уравнением Графический метод решения задачи линейного программирования - student2.ru .

Если задана система линейных неравенств с двумя переменными:

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

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

Заметим, что область решений системы неравенств может быть и неограниченной; и пустой, когда система неравенств противоречива.

Пример 1. Найти область решений неравенства

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

Построим прямую

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

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

на плоскости оху. Для этого найдем точки пересечения прямой с осями: имеем при Графический метод решения задачи линейного программирования - student2.ru Графический метод решения задачи линейного программирования - student2.ru ; при Графический метод решения задачи линейного программирования - student2.ru Графический метод решения задачи линейного программирования - student2.ru .

Решением уравнения являются точки, принадлежащие этой прямой. Теперь рассмотрим строгое неравенство

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

Для того чтобы выяснить, какая полуплоскость служит областью решения этого неравенства, решим его относительно переменной у:

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

Отсюда следует, что областью решения неравенства является полуплоскость, расположенная ниже прямой (показано штрихами вниз).

Другой способ нахождения области решения неравенства заключается в использовании контрольной точки. Обычно за нее берется начало координат. Подставляя Графический метод решения задачи линейного программирования - student2.ru и Графический метод решения задачи линейного программирования - student2.ru в неравенство, получим Графический метод решения задачи линейного программирования - student2.ru . Так как полученное выражение справедливо, то точка с координатами (0,0) включается в область решения неравенства и, следовательно, искомой областью решения служит полуплоскость ниже прямой, включая и прямую.

II. Если задача линейного программирования имеет оптимальное решение, то целевая функция принимает оптимальное значение в одной из угловых точек многоугольника решений.

Каким образом найти эту точку покажем на примере 2.

Пример 2. Определить экстремумы функции

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

при системе ограничений:

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

Решение.

В системе координат Графический метод решения задачи линейного программирования - student2.ru построим прямые соответствующие уравнениям.

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

Найдем область решения каждого неравенства.

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

Многоугольник АВСDЕ, образованный пересечением всех полуплоскостей, образует область допустимых решений системы неравенств.

Далее на этой же плоскости построим вектор Графический метод решения задачи линейного программирования - student2.ru .

Координаты вектора равны коэффициентам при переменных в целевой функции Графический метод решения задачи линейного программирования - student2.ru . Полагая F=0, построим соответствующую прямую Графический метод решения задачи линейного программирования - student2.ru или Графический метод решения задачи линейного программирования - student2.ru .

Будем перемещать эту прямую параллельно самой себе в направлении вектора Графический метод решения задачи линейного программирования - student2.ru (т.е. снизу вверх) до тех пор, пока прямая не выйдет из ОДР. Зафиксируем ту вершину многоугольника АВСDЕ, через которую F = 0 выходит из ОДР. Такой вершиной является С.

Определим ее координаты. Для этого решим систему уравнений двух прямых, на пересечении которых находится точка С

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

Подставим координаты т. С (2; 4) в уравнение целевой функции F. Вычислим значение Графический метод решения задачи линейного программирования - student2.ru .

Чтобы определить минимум целевой функции F будем перемещать прямую F=0 параллельно самой себе в направлении противоположном вектору Графический метод решения задачи линейного программирования - student2.ru . Зафиксируем ту вершину многоугольника АВСDЕ, через которую F=0 выходит из ОДР. Такой вершиной является точка А(1; 2). Подставим ее координаты (1; 2) в уравнение целевой функции F и найдем Графический метод решения задачи линейного программирования - student2.ru .

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

Транспортная задача (ТЗ)

Простейшими ТЗ являются задачи о перевозках некоторого однородного груза из пунктов отправления в пункты назначения, или от поставщиков к потребителям, при обеспечении минимальных затрат на перевозки. Как правило, начальные условия таких задач записываются в таблицу. Для m поставщиков и n потребителей таблица имеет вид:

Мощность поставщиков Спрос потребителей
N1 N2 --- Nn
Графический метод решения задачи линейного программирования - student2.ru c11 x11 c12 x12 --- c1n x1n
Графический метод решения задачи линейного программирования - student2.ru c21 x21 c22 x22 --- c2n x2n
--- --- --- --- ---
Графический метод решения задачи линейного программирования - student2.ru cm1 xm1 cm2 xm2 --- cmn xmn

Показатели cij означают затраты на перевозку единицы груза от i-го поставщика к j-му потребителю ( i = 1; 2; ...; m; j = 1; 2; ...; n);

Mi - мощность (предложение) i- го поставщика;

Nj - спрос j - го потребителя;

xij - поставка (количество груза), от i-го поставщика к j-му потребителю.

Суммарные затраты на перевозку всего груза выражаются целевой функцией

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

Если суммарная мощность поставщиков (предложение) равна суммарному спросу потребителей, то соответствующая модель ТЗ называется закрытой.

Графический метод решения задачи линейного программирования - student2.ru ,

Если Графический метод решения задачи линейного программирования - student2.ru , то модель ТЗ называется открытой.

Алгоритм решения ТЗ

1. Определяют модель ТЗ.

Если модель ТЗ открытая, то в случае Графический метод решения задачи линейного программирования - student2.ru

(объем мощностей поставщиков превышает объем спроса потребителей) вводят фиктивного потребителя ФN со спросом равным разности Графический метод решения задачи линейного программирования - student2.ru

Если Графический метод решения задачи линейного программирования - student2.ru (объем спроса потребителей превышает объем мощностей поставщиков), то вводят фиктивного поставщика ФМ с мощностью равной разности Графический метод решения задачи линейного программирования - student2.ru

Затраты на перевозки к ФN или ФМ считают равными нулю (или произвольными, но одинаковыми).

2. Составляют первоначальный план распределения поставок по методу «северо-западного угла» или методу учета наименьших затрат.

При этом должно быть заполнено Графический метод решения задачи линейного программирования - student2.ru клеток.

Если число заполненных клеток окажется меньше этого числа, то недостающее число свободных клеток заполняют нулевыми поставками.

3. Полученное распределение поставок оценивают методом потенциалов.

При этом если все оценки клеток окажутся неотрицательные, то полученное распределение является оптимальным.

Тогда подсчитывают суммарные затраты на перевозки.

Если хотя бы одна оценка клетки окажется отрицательной, то полученное распределение не является оптимальным.

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

5. Полученное распределение поставок опять проверяют на оптимальность методом потенциалов.

6. Процесс улучшения распределения поставок продолжают до тех пор, пока получат оптимальное распределение поставок. Признаком оптимального распределения поставок служит наличие неотрицательных оценок всех клеток этого распределения.

7. Если среди оценок клеток последнего оптимального распределения есть хотя бы одна нулевая для свободной клетки, то оптимальное распределение поставок не является единственным.

8. Для полученного оптимального распределения вычисляют суммарные затраты на перевозки как сумму произведений затрат на соответствующие поставки.

Первоначальное распределение поставок методом «Северо–западного угла»

Заполнение начинается с первой верхней клетки (1.1), спускаясь ступеньками по диагонали вниз.

Сначала заполняют клетку (1.1): Графический метод решения задачи линейного программирования - student2.ru . Если M1 не полностью использована в (1.1), то заполняют клетку (1.2): Графический метод решения задачи линейного программирования - student2.ru и так далее пока не будет полностью использована мощность M1. Оставшиеся незаполненные клетки в первой строке мысленно вычеркиваются. Затем переходят ступенькой к распределению мощности M2 по второй горизонтали и так далее пока не дойдут до клетки Графический метод решения задачи линейного программирования - student2.ru в m-й строке.

После распределения поставок необходимо сделать проверку условий:

1) Графический метод решения задачи линейного программирования - student2.ru - весь объем продукции у поставщиков должен быть вывезен;

2) Графический метод решения задачи линейного программирования - student2.ru - все заказы удовлетворены;

3) Графический метод решения задачи линейного программирования - student2.ru - имеем закрытую модель ТЗ;

4) количество заполненных поставками клеток должно равняться Графический метод решения задачи линейного программирования - student2.ru , где m – число строк, n – число столбцов.

Пример 3. Распределить поставки по методу «Северо – западного угла» в транспортной задаче: Графический метод решения задачи линейного программирования - student2.ru - вектор поставщиков,

Графический метод решения задачи линейного программирования - student2.ru - вектор потребителей,

Графический метод решения задачи линейного программирования - student2.ru - матрица тарифов.

Решение.

1. Составим таблицу.

Потребители   Поставщики В1 В2 В3 В4
  А1 – 70 - -
  А2 – 80 - -
  А3 – 50 - -

2. Распределим поставки по методу «Северо–западного угла».

Для этого в клетку (1; 1) запишем груз Графический метод решения задачи линейного программирования - student2.ru . Так как спрос потребителя В1 выполнен, мысленно вычеркиваем клетки (2; 1) и (3;1). У первого поставщика осталось 20 единиц груза. В клетку (1; 2) запишем груз Графический метод решения задачи линейного программирования - student2.ru . Так как мощность первого поставщика выбрана вся, то клетки (1; 3) и (1; 4) мысленно вычеркиваем. Переходим на вторую горизонталь. Спрос второго потребителя не удовлетворен. В клетку (2; 2) запишем груз Графический метод решения задачи линейного программирования - student2.ru . Так как спрос второго потребителя выполнен, то мысленно вычеркнем клетку (3; 2). У второго поставщика осталось еще 30 единиц груза. В клетку (2; 3) запишем груз Графический метод решения задачи линейного программирования - student2.ru . Так как мощность второго поставщика выбрана полностью, то мысленно вычеркнем клетку (2; 4). Переходим на третью горизонталь. Спрос третьего потребителя не удовлетворен. В клетку (3; 3) запишем поставку: Графический метод решения задачи линейного программирования - student2.ru . Спрос третьего потребителя удовлетворен. Мысленно вычеркиваются клетки в третьем столбце под клеткой (3; 3). У третьего поставщика осталось 40 единиц груза. Четвертому потребителю требуется 40 единиц груза. В клетку (3; 4) запишем поставку Графический метод решения задачи линейного программирования - student2.ru . Спрос четвертого потребителя удовлетворен. Мысленно вычеркиваются клетки в четвертом столбце после клетки (3; 4). Вся мощность третьего потребителя выбрана – мысленно вычеркиваются клетки в третьей строке после клетки (3; 4).

Распределение поставок закончили. Сделаем проверку баланса по строкам и столбцам. Подсчитаем количество заполненных клеток Графический метод решения задачи линейного программирования - student2.ru .

Получили опорный план: Графический метод решения задачи линейного программирования - student2.ru

Вычислим суммарные затраты всех поставок:

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

Наши рекомендации