
Задачи ЛП и методы их решения
.pdf
59
Потенциалы:
U1 = 0,
V2 = C1,2 − U1 = 14,
V3 = C1,3 − U1 = 16,
V5 = C1,5 − U1 = 0,
U2 = C3,2 − V3 = 10,
U3 = C5,3 − V5 = 0,
V1 = C2,1 − U 2 = 9,
V4 = C3,4 − U3 = 39.
Определяем значения оценок, для всех свободных клеток:
|
Si, j = Ci, j − (V j − Ui ). |
|
|
||
|
|
Значения оценок |
|
|
|
|
В1 |
В2 |
В3 |
В4 |
В5 |
A1 |
13 |
|
|
-11 |
|
A2 |
|
-7 |
|
-13 |
-10 |
A3 |
28 |
16 |
15 |
|
|
Выделенные оценки не являются оптимальными, а именно:
S1,4 = C1,4 − (V4 |
− U1 )= −11, |
|||
S2,2 |
= C2,2 |
− (V2 |
− U |
2 )= −7, |
S2,4 |
= C2,4 |
− (V4 |
− U |
2 )= −13, |
S2,5 |
= C2,5 |
− (V5 |
− U 2 )= −10. |
Выберем из этих трех оценку S2,4 = −13, как максимальную по модулю.
Строим для этой клетки цикл, помечая клетки цикла знаками "плюс" и "минус".
План грузоперевозок
|
|
|
|
Потребитель |
|
|
|
|
|
Потенциалы |
|||||
Поставщик |
|
|
|
|
|
|
|
|
|
|
|
|
|
Ui |
|
В1 |
|
В2 |
|
|
В3 |
|
|
В4 |
|
В5 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||||
A1 |
|
22 |
|
14 |
|
+ |
16 |
|
|
28 |
– |
0 |
|
0 |
|
|
|
140 |
|
170 |
|
|
|
|
40 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||
A2 |
|
19 |
|
17 |
|
– |
26 |
|
+ |
36 |
|
0 |
|
10 |
|
170 |
|
|
|
30 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
37 |
|
30 |
|
|
31 |
|
– |
39 |
+ |
0 |
|
|
|
A3 |
|
|
|
|
|
|
0 |
|
|||||||
|
|
|
|
|
|
|
|
195 |
|
105 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потенциалы |
9 |
14 |
16 |
39 |
0 |
|
Vj |
||||||
|
|
|
|
|
Перемещаем по циклу груз величиной в 30 единиц. В результате перемещения по циклу получим новый план.

60
|
Новый план грузоперевозок |
|
|
|||
|
|
Потребитель |
|
|
|
|
Поставщик |
В1 |
В2 |
В3 |
В4 |
В5 |
Запасы |
|
|
|||||
A1 |
22 |
14 |
16 |
28 |
0 |
350 |
|
140 |
200 |
|
10 |
||
|
|
|
|
|||
A2 |
19 |
17 |
26 |
36 |
0 |
200 |
170 |
|
|
30 |
|
||
|
|
|
|
|
||
A3 |
37 |
30 |
31 |
39 |
0 |
300 |
|
|
|
165 |
135 |
||
|
|
|
|
|
||
Потребность |
170 |
140 |
200 |
195 |
145 |
|
Стоимость перевозок при этом = 15905.
Значение стоимости перевозок изменилось на 390 единиц, по сравнению с предыдущей стоимостью.
3 этап.
Полагая потенциал U1 = 0, определяем остальные потенциалы из соотношения
U j + Vi = Ci, j (i = 1..m, j = 1..n),
просматривая все занятые клетки. Потенциалы:
U1 |
= 0, |
|
|
V2 |
= C1,2 |
− U1 |
= 14, |
V3 |
= C1,3 |
− U1 |
= 16, |
V5 |
= C1,5 |
− U1 |
= 0, |
U3 |
= C5,3 |
− V5 |
= 0, |
V4 |
= C3,4 |
− U3 |
= 39, |
U 2 |
= C4,2 − V4 |
= −3, |
|
V1 |
= C2,1 |
− U 2 |
= 22. |
Определяем значения оценок, для всех свободных клеток:
Si, j = Ci, j − (V j − Ui ).

61
|
|
Значения оценок |
|
|
|
|
В1 |
В2 |
В3 |
В4 |
В5 |
A1 |
0 |
|
|
-11 |
|
A2 |
|
6 |
13 |
|
3 |
A3 |
15 |
16 |
15 |
|
|
Выделенные оценки не являются оптимальными, а именно:
S1,4 = C1,4 − (V4 − U1 )= −11.
Выбираем оценку S1,4 = −11 .
Строим для этой клетки цикл, помечая клетки цикла знаками "плюс" и "минус".
План грузоперевозок
|
|
|
|
Потребитель |
|
|
|
|
|
Потенциалы |
|
|||
Поставщик |
|
|
|
|
|
|
|
|
|
|
|
Ui |
|
|
В1 |
|
В2 |
|
В3 |
В4 |
|
В5 |
|
||||||
|
|
|
|
|
|
|
|
|
||||||
A1 |
|
22 |
|
14 |
16 |
|
+ |
28 |
– |
0 |
|
0 |
|
|
|
|
140 |
|
200 |
|
|
|
10 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
A2 |
170 |
19 |
|
17 |
26 |
|
30 |
36 |
|
0 |
|
-3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
A3 |
|
37 |
|
30 |
31 |
|
– |
39 |
+ |
0 |
|
0 |
|
|
|
|
|
|
|
|
165 |
|
135 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Потенциалы |
22 |
14 |
16 |
39 |
0 |
|
Vj |
||||||
|
|
|
|
|
Перемещаем по циклу груз величиной в 10 единиц. В результате перемещения по циклу получим новый план.

62
Новый план грузоперевозок
|
|
|
Потребитель |
|
|
|
|
Поставщик |
|
|
|
|
|
|
Запасы |
В1 |
В2 |
В3 |
В4 |
В5 |
|
||
|
|||||||
|
|
|
A1 |
22 |
14 |
16 |
28 |
0 |
350 |
|
140 |
200 |
10 |
|
||
|
|
|
|
|||
A2 |
19 |
17 |
26 |
36 |
0 |
200 |
170 |
|
|
30 |
|
||
|
|
|
|
|
||
A3 |
37 |
30 |
31 |
39 |
0 |
300 |
|
|
|
155 |
145 |
||
|
|
|
|
|
||
Потребность |
170 |
140 |
200 |
195 |
145 |
|
Стоимость перевозок при этом = 15795.
Значение стоимости перевозок изменилось на 110 единиц, по сравнению с предыдущей стоимостью.
4 этап.
Полагая потенциал U1 = 0, определяем остальные потенциалы из соотношения
U j + Vi = Ci, j (i = 1..m, j = 1..n),
просматривая все занятые клетки. Потенциалы:
U1 = 0,
V2 = C1,2 − U1 = 14,
V3 = C1,3 − U1 = 16,
V4 = C1,4 − U1 = 28,
U2 = C4,2 − V4 = 8,
U3 = C4,3 − V4 = 11,
V1 = C2,1 − U 2 = 11,
V5 = C3,5 − U3 = −11.
Определяем значения оценок, для всех свободных клеток:
Si, j = Ci, j − (V j − Ui ).

63
|
|
Значения оценок |
|
|
|
|
В1 |
В2 |
В3 |
В4 |
В5 |
A1 |
11 |
|
|
|
11 |
A2 |
|
-5 |
2 |
|
3 |
A3 |
15 |
5 |
4 |
|
|
Выделенные оценки не являются оптимальными, а именно:
S2,2 = C2,2 − (V2 − U 2 )= −5.
Выбираем оценку S2,2 = −5 .
Строим для этой клетки цикл, помечая клетки цикла знаками "плюс" и "минус".
План грузоперевозок
|
|
|
Потребитель |
|
|
|
Потенциалы |
|
Поставщик |
В1 |
В2 |
|
В3 |
В4 |
|
В5 |
Ui |
|
|
|
|
|||||
A1 |
22 |
– |
14 |
16 |
+ |
28 |
0 |
0 |
|
140 |
|
200 |
10 |
|
|
||
|
|
|
|
|
|
|||
A2 |
19 |
+ |
17 |
26 |
– |
36 |
0 |
8 |
170 |
|
|
|
30 |
|
|
||
|
|
|
|
|
|
|
||
A3 |
37 |
|
30 |
31 |
|
39 |
0 |
11 |
|
|
|
|
155 |
|
145 |
||
|
|
|
|
|
|
|
||
Потенциалы |
11 |
14 |
|
16 |
28 |
|
-11 |
|
Vj |
|
|
|
|||||
|
|
|
|
|
|
|
|
Перемещаем по циклу груз величиной в 30 единиц. В результате перемещения по циклу получим новый план.
|
Новый план грузоперевозок |
|
|
|||
|
|
Потребитель |
|
|
|
|
Поставщик |
В1 |
В2 |
В3 |
В4 |
В5 |
Запасы |
|
|
|||||
A1 |
22 |
14 |
16 |
28 |
0 |
350 |
|
110 |
200 |
40 |
|
||
|
|
|
|
|||
A2 |
19 |
17 |
26 |
36 |
0 |
200 |
170 |
30 |
|
|
|
||
|
|
|
|
|
||
A3 |
37 |
30 |
31 |
39 |
0 |
300 |
|
|
|
155 |
145 |
||
|
|
|
|
|
||
Потребность |
170 |
140 |
200 |
195 |
145 |
|
Стоимость перевозок при этом = 15645.

64
Значение стоимости перевозок изменилось на 150 единиц, по сравнению с предыдущей
стоимостью.
5 этап.
Полагая потенциал U1 = 0, определяем остальные потенциалы из соотношения
U j + Vi = Ci, j (i = 1..m, j = 1..n),
просматривая все занятые клетки.
Потенциалы:
U1 |
= 0, |
|
|
V2 |
= C1,2 |
− U1 |
= 14, |
V3 |
= C1,3 |
− U1 |
= 16, |
V4 |
= C1,4 |
− U1 |
= 28, |
U2 = C2,2 − V2 = 3,
U3 = C4,3 − V3 = 11,
V1 = C2,1 − V2 = 16,
V5 = C3,5 − U3 = −11.
Определяем значения оценок, для всех свободных клеток:
|
Si, j = Ci, j − (V j − Ui ). |
|
|
||
|
|
Значения оценок |
|
|
|
|
В1 |
В2 |
В3 |
В4 |
В5 |
A1 |
6 |
|
|
|
11 |
A2 |
|
|
7 |
5 |
8 |
A3 |
10 |
5 |
4 |
|
|
Так как все оценки неотрицательны, то полученный план является оптимальным.
Транспортная задача решена.

65
|
Оптимальный план грузоперевозок |
|
|
|||
|
|
Потребитель |
|
|
|
|
Поставщик |
В1 |
|
В3 |
В4 |
В5 |
Запасы |
|
|
|
||||
A1 |
22 |
14 |
16 |
28 |
0 |
350 |
|
110 |
200 |
40 |
|
||
|
|
|
|
|||
A2 |
19 |
17 |
26 |
36 |
0 |
200 |
170 |
30 |
|
|
|
||
|
|
|
|
|
||
A3 |
37 |
30 |
31 |
39 |
0 |
300 |
|
|
|
155 |
145 |
||
|
|
|
|
|
||
Потребность |
170 |
140 |
200 |
195 |
145 |
|
Стоимость перевозок при этом = 15645.
145 единиц груза из хранилища A3 осталось нераспределенным.
Графически оптимальный план грузоперевозок можно представить в виде графа со значения перевозок на дугах.
145

66
5. ЗАДАЧА ОБ АРЕНДЕ ОБОРУДОВАНИЯ
5.1. Предварительные сведения. Бесконтурные сети
Сети являются частным случаем графов. Ограничимся случаем бесконтурных сетей, используемых в задачах контрольных заданий.
Граф является математическим, формальным представлением объектов, между которыми попарно установлены некоторые связи [9,18,19]. Объекты называются вершинами и графически изображаются кружками. Связи считаются установленными между некоторыми парами из различных вершин и считаются односторонними. Графически связь изображается линией со стрелкой, или дугой, соединяющей две вершины. Согласно направлению связи, т.е. направлению стрелки, соединяемые вершины являются началом и концом дуги, или, другими словами, начальной и конечной вершинами дуги.
Будем считать, что между двумя вершинами есть не более одной дуги (нет "параллельных" дуг). Формально этого можно добиться, разбив дугу на две с помощью промежуточной вершины. В дальнейшем дугу будем записать в виде упорядоченной пары (a, b), где a – начало дуги, b – конец дуги.
Путём из вершины v0 в вершину vk , или путём, начинающимся в v0 и заканчивающимся в vk , называется последовательность различных (возможен только случай v0 = vk ) вершин
(v0 ,v1,...,vk−1,vk ) , где пары (v0 ,v1) , (v1,v2 ) , …, (vk−1,vk ) различны и являются дугами. Графически путь представляет непрерывную направленную линию из дуг, согласованную с направлениями стрелок ("движения по стрелкам"). Если v0 = vk , т.е. если начало пути совпадает с концом пути, то путь называется контуром. Цепочкой из вершины v0 в вершину vk называется последовательность (v0 ,v1,...,vk−1,vk ) из различных вершин, в которой дугами являются (v0 ,v1) или (v1,v0 ) , (v1,v2 ) или (v2 ,v1) , и т.д. Таким образом, цепочка соответствует линии из v0 в vk без учёта направления стрелок. Замкнутая цепочка называется циклом.
Будем предполагать, что любые две вершины можно соединить цепочкой (соответствующий граф называется связным).
b |
|
d |
f |
( a, c, b, d, f ) – |
|
||||
|
|
|
|
|
a |
|
|
|
путь |
|
|
|
|
|
|
|
|
|
( b, d, f, c, b ) – |
|
|
|
c |
контур |
|
|
|
|
|
|
|
|
|
( a, b, c, f ) – |
Рис. 1 |
|
|
|
цепочка |
|
|
|
|
( a, b, c, a ) – цикл |
Определение. Конечная совокупность вершин и дуг (и их графическое изображение) называется сетью, если выполняются условия:
а) связности; б) отсутствия петель (начало и конец дуги различны);
в) отсутствие параллельных дуг. ♦

67
Определение. Сеть называется бесконтурной, или упорядоченной сетью, если в ней нет контуров. ♦
Замечание. В литературе встречается также термин ациклическая сеть.
Сеть на рис.1 не является бесконтурной, т.к. есть контур (b, d, f, c, b).
Н у м е р а ц и я вершин сети – это сопоставление вершинам номеров – натуральных чисел, при этом различным вершинам сопоставляются различные номера.
Определение. Нумерация называется правильной, если:
а) номера идут подряд: 1, 2, …, m, где m – число вершин;
б) номер начала дуги меньше номера конца дуги, т.е. все дуги записываются в виде (i, j) , где i < j . ♦
В сетях, имеющих контур, правильной нумерации не может быть, так как для вершины контура с номером n получаем противоречивое неравенство n < ... < n .
В бесконтурных сетях правильная нумерация возможна и может быть проставлена по следующей процедуре (алгоритм Форда).
1.Найдём вершину, которая не является началом никакой дуги, т.е. из которой дуги не выходят. Такая вершина легко может быть найдена, если, начиная с любой вершины, двигаться по стрелкам дуг, переходя из вершины в вершину.
2.Присвоим найденной вершине текущий номер. Первый раз таким номером является m – число вершин сети.
3.Уменьшим текущий номер на одну единицу. Вычеркнем или пометим как-либо дуги, заканчивающиеся в вершине, только что пронумерованной. В дальнейшем считаем, что этих дуг нет в сети. Возвращаемся к шагу 1, т.е. все повторяем с начала.
Замечание. 1. Если не удаётся найти вершину в шаге 1, то в сети есть контур и правильная нумерация невозможна, так что алгоритм Форда является также и проверкой, будет ли сеть бесконтурной.
2. Правильных нумераций в сети может быть несколько.
1 |
2 |
1 |
4 |
|
|
||
|
5 |
|
3 |
6 |
7 |
2 |
5 |
Неправильная нумерация |
|
Правильная нумерация |
(1 и 2, 4 и 5 можно поменять местами)
5.2. Планы аренды. Постановка задачи
Некоторая фирма (пункт проката) предоставляет в аренду ценное оборудование. Предположим, что другая фирма планирует иметь это оборудование в течение времени [T нач ,T кон ] и может брать в аренду (оформлять аренду) в определенные моменты
t1 ,t2 ,…,tN ,tN+1 , где t1 =Tнач <t2 <…<tN <tN+1 =Tкон. Таким образом, имеются N отрезков времени [t1 ,t2 ],[t2 ,t3 ],…,[tN ,tN +1 ], в начале которых можно брать оборудование в аренду

68
(в другой трактовке – покупать новое оборудование), пользоваться им в течение некоторого целого числа отрезков, а в конце какого-либо отрезка возвращать (в другой трактовке – списывать). Отрезками времени могут быть месяцы, дни, недели, часы и т.п., причем один отрезок может состоять, например, из двух недель, другой – из целого квартала, третий – из
четырех дней и так далее. В дальнейшем отрезки [ti ,ti +1 ] для определенности будем
называть месяцами , а момент ti начала отрезка (начала i-го месяца) будем обозначать
просто через i . Таким образом, в аренду оборудование можно брать в моменты i=1,2,…,N и возвращать в моменты j=2,3,…,N+1.
Планом аренды называется последовательность очередных моментов оформления аренды (и возврата оборудования). В наших обозначениях – это возрастающая последовательность натуральных чисел (1,i1 ,i2 ,…,ik ,N +1). Общее количество планов аренды на N месяцев
совпадает с числом всех подмножеств {2, 3, ,N} и равно 2N - 1 . Примеры планов аренды:
1.(1,2,3,…,7) - план аренды на 6 месяцев, состоящий в том, аренда оформляется 6 раз – каждый раз на 1 месяц;
2.(1, 3, 5, 7) - план аренды на 6 месяцев, состоящий в том, аренда оформляется 3 раза – каждый раз на 2 месяца;
3.(1, 3, 7) - план аренды на 6 месяцев, состоящий в том, аренда оформляется 2 раза – первый раз на 2=3-1 месяца (первый и второй), второй раз на 4 месяца (третий, четвертый, пятый и шестой);
4.(1, 15) план аренды на 14 месяцев, состоящий в том, аренда оформляется 1 раз – с начала
1-го месяца на весь срок – до конца 14 -го месяца.
Предположим теперь , что фирма, предлагающая оборудование в аренду, установила заранее значения арендной платы (стоимости аренды) на все возможные отрезки времени. Пусть Cij
– стоимости аренды от начала i-го месяца до начала j-го месяца в некоторых единицах (у.е.), где 1 ≤ i < j ≤ N+1. Тогда несложно видеть, что число C1i1 + Ci1i2 +…+ Cik N+1 является суммарной арендной платой за весь период [T нач ,T кон ], то есть стоимостью плана аренды.
Простейшая задача об аренде (замене) оборудования состоит в нахождении при заданной таблице стоимостей аренды самого дешевого (самых дешевых, если их несколько) плана аренды, то есть оптимального плана аренды.
Пример. Пусть при N=3 cтоимости аренды Cij заданы в таблице
Из 4 планов аренды
j |
2 |
3 |
4 |
1) |
(1,2,3,4), С=4+6+6=16; |
|
|
|
i |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
1 |
4 |
9 |
15 |
2) |
(1,2,4), С=4+10=14; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3) |
(1,3,4), С=9+6=15; |
|
|
|
2 |
– |
6 |
10 |
|
|
|
||
|
|
|
|
|
|
|
|
|
3 |
– |
– |
6 |
4) |
(1,4), С=15 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
план (1,2,4), то есть план "взять в аренду на |
||||
|
|
|
|
1мес. + 2 мес." является оптимальным планом |
||||
|
|
|
|
со |
стоимостью |
Сmin |
=14 |
у.е. |