Задачи ЛП и методы их решения
.pdf249
3. ПРИМЕР ВЫПОЛНЕНИЯ КОНТРОЛЬНОЙ РАБОТЫ
СЫКТЫВКАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ
|
|
|
|
|
|
|
|
|
(ЗАОЧНОЕ ОТДЕЛЕНИЕ) |
|
|
Специальность |
|
|
|
Финансы и кредит |
. |
|
|||||
|
|
|
|
|
|
|
|
|
КОНТРОЛЬНАЯ РАБОТА |
|
|
по |
Математическому программированию и исследованию операций |
. |
|||||||||
|
|
|
|
|
|
|
|
|
наименование дисциплины |
|
|
на тему |
|
|
|
|
|
Вариант 9 |
. |
||||
|
|
|
|
|
|
|
|
|
полное наименование темы или номер варианта |
|
|
Студента |
I |
курса |
Кучер Галины Ивановны |
. |
|||||||
|
|
|
|
|
|
|
|
|
фамилия, имя, отчество полностью |
|
|
Место работы |
|
|
Вычислительный центр Сосногорского отделения Северной ж.д. |
|
. |
||||||
и занимаемая должность |
инженер АСУ |
. |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Шифр 20005339 домашний адрес г. Сосногорск, -й микрорайон, д. , корпус , кв. .
Дата отправки работы в университет |
|
|
. |
||
Дата регистрации работы факультетом |
|
. |
|||
Преподаватель |
|
|
Холопов А.А. |
. |
Сыктывкар 2000
251
Структура всех трех ограничений одинакова:
РАСХОД МАТЕРИАЛА |
≤ |
ЗАПАС МАТЕРИАЛА |
|
|
|
Теперь остается выразить полный расход материала через выбранные неизвестные
х1 и х2. Так, расход материала первого сорта на производство изделия А составит 8х1 единиц, а на производство изделия В – 7х2 соответственно (см. первую строку таблицы). В сумме это даст полный расход материала первого сорта, и ограничение примет вид линейного неравенства
8х1 + 7х2 ≤ 417
Аналогично запишутся ограничения по второму и третьему сорту материала
14х1 + 8х2 ≤ 580
7х1 + х2 ≤ 591
Объединяя их в систему, получим
8x1 + 7x2 |
≤ 417 |
||
|
|
+ 8x2 ≤ 580 |
|
14x1 |
|||
|
7x1 |
+ x2 |
≤ 591 |
|
Далее, исходя из смысла введенных переменных (производство продукции не может быть отрицательным), на них необходимо наложить ограничения неотрицательности.
х1 ≥ 0, х2 ≥ 0
Окончательно математическую модель задачи представим в форме задачи линейного программирования.
f (x1,x2) = 5x1 + 5 x2 → max
8x1 + 7x2 |
≤ 417 |
||
|
|
+ 8x2 ≤ 580 |
|
14x1 |
|||
|
7x1 |
+ x2 |
≤ 591 |
|
х1 ≥ 0, х2 ≥ 0
Решим задачу графическим способом.
Изобразим на плоскости систему координат и рассмотрим ограничения неотрицательности.
Неравенство х1 ≥ 0 – определяет полуплоскость, в которой все точки имеют неотрицательную первую координату. Неравенству х2 ≥ 0 соответствует полуплоскость, где вторая координата каждой точки неотрицательна. Таким образом, системе неравенств х1 ≥ 0, х2 ≥ 0
соответствует 1-я четверть.
252
Строим множество точек, соответствующее множеству решений системы ограничений, заменяя неравенства уравнениями и строя прямые, соответствующие этим уравнениям.
Решая первое уравнение, получим прямую (I) с точками пересечения осей А и В.
8х1 + 7х2 = 417
х1 = 0, х2 = 60 – точка А пересечения с осью ОХ2
х2 = 0, х1 = 52 – точка В пересечения с осью ОХ1
Построенная прямая разбивает плоскость на две полуплоскости. Для выбора плоскости, соответствующей нашему неравенству, возьмем на плоскости точку с известными координатами, не лежащую на прямой (пусть это будет точка (0,0) – начало координат). Подставим координаты этой точки в неравенство 8 0 + 7 0 ≤ 417, 0 ≤ 417. Получилось верное числовое неравенство. Значит, полуплоскость содержит выбранную для проверки точку.
Таким образом, в совокупности с первой четвертью текущее множество решений представляет собой треугольник ОАВ. Далее аналогично строятся полуплоскости, соответствующие остальным неравенствам, и пересекающиеся с текущим множеством решений.
Пересекая решение второго (точки С и D, прямая II) неравенства с предыдущим множеством, получаем четырехугольник OAMD.
Решив третье (точки E и F, прямая III) неравенство, приходим к выводу, что при пересечении с предыдущим множеством решений, четырехугольник OAMD целиком содержится в полуплоскости (III) 7x1 + x2 ≤ 591.
X2
E
C
A
M
O |
D B |
F |
X1 |
|
|||
|
(II) |
(I) |
(III) |
|
|
||
|
|
|
253
Окончательно множество решений ЗЛП представляет собой четырехугольник OAMD.
X2
A
M
X1
O D
Найдем в множестве решений точку, которая доставляет максимум целевой функции f (x1,x2) = 5x1 + 5 x2 . Эта точка будет соответствовать оптимальному решению.
Для этого построим нормальный вектор N = (5,5). Если придать f какое-либо конкретное значение f0, то прямая f (x1,x2) = f0 будет проходить перпендикулярно N.
Перемещая прямую в направлении N (задача на MAX), по которому значение целевой функции возрастает, находим последнюю точку пересечения прямой и множества решений. Эта точка (A) и будет искомым оптимальным решением. Определяем ее компоненты как координаты точки пересечения 1-й прямой и оси ox2 .
x2 |
|
|
|
|
|
|
|
|
|
X* |
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
x1 = 0 |
|
|
|
x1 = 0 |
|
|
|
N |
|
|
|
|
|
|
||
|
|
+ 7x2 = 417 |
|
= |
417 |
= 59 |
4 |
||
|
|
||||||||
|
|
8x1 |
|
x2 |
7 |
7 |
|||
M |
|
|
|
|
|
|
|
||
|
|
Х* = (0;59 4 ), |
f (X*) = 297 6 |
|
|||||
D |
|
x1 |
7 |
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
Максимальная прибыль от реализации всей продукции видов А и В составит 297 6 7
руб. Наиболее выгодно производить только 59 |
4 |
единиц изделия В. При этом материалы |
|
||
7 |
|
первого сорта будут израсходованы полностью (первое ограничение выполняется как ра-
венство), |
а |
|
остаток |
|
материалов |
|
второго |
и |
третьего |
сорта |
составит |
||||||||
580 −14x −8x |
|
= 580 − 0 − |
8 417 |
= |
724 |
=103 |
3 |
кг. |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
1 |
2 |
|
7 |
|
7 |
|
|
7 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
и 591− 7x − x |
|
= 591− 0 − |
417 |
= |
3720 |
= 531 |
3 |
|
кг. соответственно. |
|
|
||||||||
2 |
|
|
|
|
|
||||||||||||||
|
1 |
|
7 |
|
7 |
|
|
7 |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
254
ЗАДАНИЕ 2
УСЛОВИЕ.
Имеются три пункта поставки однородного груза A1 , A2 , A3 и пять пунктов B1 , B2 ,
B3 , B4 , B5 потребления этого груза. На пунктах поставки находится груз соответственно в количестве a1 , a2 и a3 т. В пункты потребления B1 , B2 , B3 , B4 и B5 требуется доставить соответственно b1 , b2 , b3 , b4 и b5 т. груза. Цены перевозок (стоимости провоза еди-
ницы груза) между пунктами поставки и пунктами потребления приведены в следующей матрице-таблице:
Пункты |
|
|
Пункты потребления |
|
|
||
поставки |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
B1 |
B2 |
|
B 3 |
|
B 4 |
B 5 |
|
|
|
|
|
|
|
|
A1 |
d11 |
d12 |
|
d13 |
|
d14 |
d15 |
A2 |
d21 |
d22 |
|
d23 |
|
d 24 |
d25 |
A3 |
d31 |
d32 |
|
d33 |
|
d34 |
d35 |
Найти такой план закрепления потребителей за поставщиками однородного груза, чтобы общие затраты по перевозкам были минимальными.
Изобразить оптимальный план перевозок в виде графа.
a1 |
= |
200 |
b2 |
= |
150 |
20 |
10 |
13 |
13 |
18 |
|
a2 |
= |
300 |
b3 |
= |
120 |
||||||
|
19 |
20 |
16 |
|
|||||||
a3 |
= |
|
b4 |
= |
D = |
27 |
22 |
||||
250 |
135 |
26 |
17 |
19 |
21 |
23 |
|||||
b1 |
= |
210 |
b5 |
= |
135 |
|
|
|
|
|
|
|
|
|
|
|
РЕШЕНИЕ.
Построим математическую модель транспортной задачи (ТЗ) в виде задачи линейного программирования. Исходя из того, что план перевозок определяется указанием количества перевозимого груза по каждой коммуникации, обозначим через неизвестные хij количество перевозимой продукции от поставщика с номером i к потребителю с номером j
(объем перевозки). В нашем случае таких неизвестных будет 3 × 5 = 15 (х11, х12, х13, х14, х15,
х21, х22, х23, х24, х25, х31, х32, х33, х34, х35).
Выразим через введенные неизвестные суммарную стоимость перевозок в виде линейной функции. Для этого необходимо объем перевозки по каждой коммуникации ум-
255
ножить на цену перевозки и просуммировать полученные величины по всем коммуника-
циям.
f = 20х11+10х12+13х13+13х14+18х15+27х21+19х22+20х23+16х24+22х25+26х31+17х32+19х33+21х34+32х35→min
Сформулируем ограничения.
1.Условия полного вывоза продукции от каждого поставщика (таких условий будет столько, сколько имеется поставщиков. У нас – 3).
2.Условия полного удовлетворения потребностей каждого потребителя (Число уравнений равно числу потребителей. У нас – 5). Таким образом, в ТЗ будет (m+n) ограничений (у нас 3+5=8).
Запишем ограничения первой группы:
х11 + х12 + х13 + х14 + х15 = 200
х21 + х22 + х23 + х24 + х25 = 300
х31 + х32 + х33 + х34 + х35 = 250
Ограничения второй группы можно сформулировать в виде:
х11 + х21 + х31 = 210
х12 + х22 + х32 = 150
х13 + х23 + х33 |
= 120 |
х14 + х24 + х34 |
= 135 |
х15 + х25 + х35 |
= 135 |
Окончательно, учитывая ограничения неотрицательности
xij ≥ 0, i = 1,2,3 |
j = 1,2,3,4,5 |
Запишем математическую постановку ТЗ в виде задачи линейного программирова-
ния:
f = 20х11+10х12+13х13+13х14+18х15+27х21+19х22+20х23+16х24+22х25+26х31+17х32+19х33+21х34+32х35→min
х11 + х12 + х13 + х14 + х15 |
|
|
= 200 |
|
|
х21 + х22 + х23 + х24 + х25 |
|
= 300 |
|
|
|
х31 + х32 + х33 + х34 + х35 = 250 |
||
х11 |
+ х21 |
+ х31 |
|
= 210 |
|
х12 |
+ х22 |
+ х32 |
= 150 |
|
х13 |
+ х23 |
+ х33 |
= 120 |
|
х14 |
+ х24 |
+ х34 |
= 135 |
|
х15 |
+ х25 |
+ х35 |
= 135 |
|
|
xij ≥ 0, i = 1,2,3 |
j = 1,2,3,4,5 |
|
Для решения ТЗ используем метод потенциалов.
|
|
|
256 |
|
|
Шаг 0. Построение начального плана перевозок. |
|
|
|||
Заметим, что ТЗ – закрытая, т.к. суммарный запас (200+300+250=750) равен сум- |
|||||
марной потребности (210+150+120+135+135=750). |
|
|
|||
Построение начального решения проведем в таблице, имеющей следующий вид: |
|||||
|
|
Цены |
|
|
|
|
перевозок |
|
|
|
|
|
20 |
10 |
13 |
13 |
18 |
200 |
|
|
|
|
|
|
27 |
19 |
20 |
16 |
22 |
300 |
|
|
|
|
|
|
26 |
17 |
19 |
21 |
23 |
250 |
|
|
|
|
|
запасы |
210 |
150 |
120 |
135 |
135 |
|
|||||
|
|
|
потребности |
|
|
Начальное решение построим, например, способом северо-западного угла. Получим |
|||||
начальную таблицу. |
|
|
|
|
|
200 |
20 |
|
|
|
|
200 |
|
|
|
|
|
|
|
|
|
|
|
300 |
27 |
19 |
20 |
16 |
|
10 |
150 |
120 |
20 |
|
|
|
|
||||
250 |
|
|
|
21 |
23 |
|
|
|
115 |
135 |
|
|
|
|
|
||
|
210 |
150 |
120 |
135 |
135 |
Подсчитаем стоимость полученного плана. Для этого умножим объем перевозок в заполненных клетках на цены перевозок в них:
f0СЗУ = 200 20 + 10 27 + 150 19 + 120 20 + 20 16 + 115 21 + 135 23 = 15360
Шаг 1. Проверка текущего плана на оптимальность
Признаком того, что текущий план перевозок является оптимальным, служит усло-
вие
(Y1) ui + vj – cij ≤ 0,
257
Которое должно выполняться для всех клеток таблицы. Неизвестные здесь величи-
ны ui и vj (называемые потенциалами) определяются из условий
(Y2) |
ui + vj = cij |
|
|
(для заполненных клеток таблицы). |
|
|
|
Найдем потенциалы для начального плана, построенного методом северо-западного |
|||
угла. |
|
|
|
Заполненные клетки |
Уравнения |
||
(1,1) |
u1 + v1 = 20 |
||
(2,1) |
u2 + v1 = 27 |
||
(2,2) |
u2 + v2 = 19 |
||
(2,3) |
u2 + v3 |
= 20 |
|
(2,4) |
u2 |
+ v4 |
= 16 |
(3,4) |
u3 |
+ v4 |
= 21 |
(3,5) |
u3 |
+ v5 |
= 23 |
Положим, например, неизвестное u1 = 0. Последовательно имеем: |
|||||
u2 = 7, u3 = 12, v1 = 20, v2 = 12, v3 = 13, v4 = 9, v5 = 11. |
|||||
u1 = 0 |
20 |
|
|
|
|
u2 = 7 |
27 |
19 |
20 |
16 |
|
u3 = 12 |
|
|
|
21 |
23 |
|
v1 = 20 |
v2 = 12 |
v3 = 13 |
v4 = 9 |
v5 = 11 |
Переходим к проверке условий оптимальности (Y2). Достаточно проверять их для незаполненных клеток, так как из (Y1) следует, что для клеток заполненных эти условия выполняются как равенства. Для проверки берется незаполненная клетка, складываются соответствующие ей потенциалы и из них вычитается цена перевозки в данной клетке. Если полученное число отрицательное (или ноль), то оптимальность в данной клетке не нарушается. Если же в таблице встретилась хотя бы одна клетка, для которой это число положительное, тогда решение не является оптимальным и может быть улучшено. Прове-
рим на оптимальность имеющееся решение. |
|
|
|
|
|
|
|
Клетки |
|
Условия оптимальности |
|||||
(1,2) |
u1 + v2 – с12 = 0 + 12 – 10 = 2 > 0 |
||||||
(1,3) |
u1 |
+ v3 |
– с13 |
= 0 |
+ 13 |
– 13 |
= 0 = 0 |
(1,4) |
u1 |
+ v4 |
– с14 |
= 0 |
+ 9 – 16 = -7 < 0 |
||
(1,5) |
u1 |
+ v5 |
– с15 |
= 0 |
+ 11 |
– 18 |
= -7 < 0 |
(2,5) |
u2 |
+ v5 |
– с25 |
= 7 |
+ 11 |
– 22 |
= -4 < 0 |
(3,1) |
u3 + v1 – с31 = 12 + 20 – 26 = 6 > 0 |
|
258 |
|
|
|
(3,2) |
u3 |
+ v2 |
– с32 |
= 12 + 12 – 17 = 7 > 0 |
(3,3) |
u3 |
+ v3 |
– с33 |
= 12 + 13 – 19 = 6 > 0 |
Условие оптимальности нарушено в клетках (1,2), (3,1), (3,2) и (3,3). Следовательно,
имеющийся план перевозок можно улучшить.
Шаг 3. Улучшение плана перевозок |
Таблица 1 |
200 |
200 |
|
|
|
|
|
300 |
10 + |
- |
150 |
120 |
20 |
|
|
|
|
|
|||
250 |
|
|
|
|
115 |
135 |
|
210 |
|
150 |
120 |
135 |
135 |
Улучшение плана происходит путем назначения перевозки θ > 0 в ту клетку (i,j)
таблицы 1, в которой нарушилось условие оптимальности. Но назначение ненулевой перевозки нарушает условия баланса вывоза продукции от поставщика к i (вывозит весь запас и еще плюс θ > 0) и условия баланса привоза продукции к потребителю j (получает все что можно и еще плюс θ > 0 ). Условия баланса восстанавливают путем уменьшения вывоза от i-поставщика к какому-то другому потребителю j (уменьшают на θ перевозку в какой-то заполненной клетке (i,j) строки i). При этом нарушается баланс привоза продукции к потребителю j (получает на θ меньше, чем ему требуется). Восстанавливают баланс в столбце j, тогда он нарушается в некоторой строке i и т.д. до тех пор, пока цикл перемещения перевозок не замкнется на клетке, в которой нарушилось условие оптимальности.
Внашем примере нарушена оптимальность в клетке (1,2). Назначим в нее перевозку
θ=150. Уменьшаем на θ перевозку в заполненной клетке (1,1). В заполненной клетке (2,1) увеличиваем перевозку на θ и уменьшаем на θ перевозку в клетке (2,2). Цикл пере-
возок построен. Новый (улучшенный) план перевозок представлен в таблице 2.
|
|
|
|
|
Таблица 2 |
200 |
50 |
150 |
|
|
|
|
|
|
|
||
300 |
160 |
|
120 - |
+ 20 |
|
250 |
|
|
+ |
- 115 |
135 |
|
|
|
|||
|
210 |
150 |
120 |
135 |
135 |
f1СЗУ = 50 20 + 150 10 + 160 27 + 120 20 + 20 16 + 115 21 + 135 23 = 15060