Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исследование операций и методы оптимизации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
Табл. 3.21. Этап 2
25
41
0 0 0 0
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
1
19
200
+ 15
0
40
0
220
B
2
B
3
B
4
B
5
отправления)
21
170
30
12
60
28
150
32
21
27
+ 20
41
22
140
10
Потребность 200 220 170 210 150
Перемещаем по циклу груз величиной в 140 единиц, прибавляя эту величину к грузу в клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус». В результате перемещения по циклу получим новый план.
Табл. 3.22. Результат этапа 2
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
60
140
1
19
40
15
0
220
B
2
B
3
B
4
B
5
отправления)
25
21
170
41
0
30
12
28
32
140
21
60
27
150
0
0
10
20
41
22
0
Потребность 200 220 170 210 150
Целевая функция F= 18010
Значение целевой функции изменилось на 840 единиц по сравнению с предыдущим этапом.
Запасы
(объемы
200
450
290
10
Запасы
(объемы
200
450
290
10
Этап 3
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=C
(i=1..m, j=1..n), просматривая все занятые клетки.
i,j
Потенциалы Ui: U1=0 V1=C V5=C U3=C V4=C U4=C U2=C V
2=C2,2-U2
V3=C
1,1-U1 1,5-U1 3,1-V1 3,4-U3 4,5-V5 2,4-V4
2,3-U2
= 19 = 20 =-4 = 31 =-20 =-10 = 31 = 22
61
Определяем значения оценок S
25
12
41
60
41
22
0 0
S
= c
1,2
1,2
S
= c
1,3
1,3
S
= c
1,4
1,4
S
= c
2,1
2,1
S
= c
2,5
2,5
S
= c
3,2
3,2
S
= c
3,3
3,3
S
= c
3,5
3,5
S
= c
4,1
4,1
S
= c
4,2
4,2
S
= c
4,3
4,3
S
= c
4,4
4,4
Наиболее перспективной является клетка (4,2). Для нее оценка равна -11. Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.23. Этап 3
- (u1 + v2) = -6.
- (u1 + v3) = 8.
- (u1 + v4) = 1.
- (u2 + v1) = 31.
- (u2 + v5) = 31.
- (u3 + v2) = 14.
- (u3 + v3) = 10.
- (u3 + v5) = 6.
- (u4 + v1) = 1.
- (u4 + v2) = -11.
- (u4 + v3) = -2.
- (u4 + v4) = -11.
-(Ui+Vj) для всех свободных клеток:
i,j=Ci,j
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
1
19
60
+ 15
140
40
0 + 0
B
2
21
220
B
3
B
4
B
5
отправления)
30
32
+ 20
140
+ 21
170
28
27
150
0
10
Потребность 200 220 170 210 150
Перемещаем по циклу груз величиной в 10 единиц, прибавляя эту величину к грузу в клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус». В результате перемещения по циклу получим новый план
Табл. 3.24. Результат этапа 3
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
50
150
1
19
40
15
0
210
10
B
2
B
3
B
4
B
5
отправления)
25
21
170
41
0
30
12
28
32
150
21
70
27
140
0
0
20
41
22
0
Потребность 200 220 170 210 150
Целевая функция F= 17900
Запасы
(объемы
200
450
290
10
Запасы
(объемы
200
450
290
10
62
Значение целевой функции изменилось на 110 единиц по сравнению с предыдущим
12
41
70
41
22
0
0 0
этапом.
Этап 4
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=C
(i=1..m, j=1..n), просматривая все занятые клетки.
i,j
Потенциалы Ui: U1=0 V1=C V5=C U3=C V4=C U2=C V2=C V3=C U4=C
1,1-U1 1,5-U1 3,1-V1 3,4-U3 2,4-V4 2,2-U2 2,3-U2 4,2-V2
= 19 = 20 =-4 = 31 =-10 = 31 = 22 =-31
Определяем значения оценок S S
= c
1,2
S
1,3
S
1,4
S
2,1
S
2,5
S
3,2
S
3,3
S
3,5
S
4,1
S
4,3
S
4,4
S
4,5
- (u1 + v2) = -6.
1,2
= c
- (u1 + v3) = 8.
1,3
= c
- (u1 + v4) = 1.
1,4
= c
- (u2 + v1) = 31.
2,1
= c
- (u2 + v5) = 31.
2,5
= c
- (u3 + v2) = 14.
3,2
= c
- (u3 + v3) = 10.
3,3
= c
- (u3 + v5) = 6.
3,5
= c
- (u4 + v1) = 12.
4,1
= c
- (u4 + v3) = 9.
4,3
= c
- (u4 + v4) = 0.
4,4
= c
- (u4 + v5) = 11.
4,5
-(Ui+Vj) для всех свободных клеток:
i,j=Ci,j
Наиболее перспективной является клетка (1,2). Для нее оценка равна -6. Строим для нее цикл, помечая клетки цикла знаками «плюс» и «минус».
Табл. 3.25. Этап 4
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
1
19 + 25 30
50
40
+ 15
150
0
B
2
21
210
10
B
3
B
4
B
5
отправления)
32
150
20
+ 21
170
28
27
140
0
Потребность 200 220 170 210 150
Перемещаем по циклу груз величиной в 50 единиц, прибавляя эту величину к грузу в клетках со знаком «плюс» и отнимая ее от груза в клетках со знаком «минус». В результате перемещения по циклу получим новый план.
63
Запасы
(объемы
200
450
290
10
Табл. 3.26. Результат этапа 4
Потребители
B
Поставщики
A
1
A
2
A
3
A
4
200
1
19
40
15
0
50
160
10
B
2
B
3
B
4
B
5
отправления)
25
21
170
41
0
30
12
28
32
150
21
120
27
90
0
0
20
41
22
0
Потребность 200 220 170 210 150
Целевая функция F= 17600
Значение целевой функции изменилось на 300 единиц по сравнению с предыдущим этапом.
Этап 5
Полагая потенциал U1=0, определяем остальные потенциалы из соотношения
Ui+Vj=C
(i=1..m, j=1..n), просматривая все занятые клетки.
i,j
Потенциалы Ui: U1=0 V2=C V5=C U2=C V3=C V4=C U3=C U4=C V1=C
1,2-U1 1,5-U1 2,2-V2 2,3-U2 2,4-U2 3,4-V4 4,2-V2 3,1-U3
= 25 = 20 =-4 = 16 = 25 =2 =-25 = 13
Определяем значения оценок S S
= c
1,1
S
1,3
S
1,4
S
2,1
S
2,5
S
3,2
S
3,3
S
3,5
S
4,1
S
4,3
S
4,4
S
4,5
- (u1 + v1) = 6.
1,1
= c
- (u1 + v3) = 14.
1,3
= c
- (u1 + v4) = 7.
1,4
= c
- (u2 + v1) = 31.
2,1
= c
- (u2 + v5) = 25.
2,5
= c
- (u3 + v2) = 14.
3,2
= c
- (u3 + v3) = 10.
3,3
= c
- (u3 + v5) = 0.
3,5
= c
- (u4 + v1) = 12.
4,1
= c
- (u4 + v3) = 9.
4,3
= c
- (u4 + v4) = 0.
4,4
= c
- (u4 + v5) = 5.
4,5
-(Ui+Vj) для всех свободных клеток:
i,j=Ci,j
Так как все оценки S
>=0, то полученный план является оптимальным.
i,j
Транспортная задача решена.
Запасы
(объемы
200
450
290
10
64
Табл. 3.27. Решенная транспортная задача
Потребители
B
1
Поставщики
A
1
A
2
A
3
A
4
Потребность 200 220 170 210 150
Целевая функция F= 17600
10 единиц груза потребителю B2 не поставлено
200
19
40
15
0
50
160
10
B
2
25
21
41
0
170
B
3
30
12
28
0
120
90
B
4
32
21
27
0
150
B
5
20
41
22
0
Запасы
(объемы
отправления)
200
450
290
10
3.3 Транспортная задача в сетевой постановке
Если условия транспортной задачи заданы в виде схемы, на которой условно изображены поставщики, потребители и связывающие их дороги, указаны величины запасов груза и потребности в нем, а также числа
c
ij
являющиеся показателями принятого в задаче критерия оптимальности
,
(тарифы, расстояния и т. п.), то говорят, что транспортная задача поставлена в сетевой форме (рис. 3.2).
I
+100
2
II
-60 4
3
III
-85
3
IV
-35
3
V
-20 5
61
2
VI
+70
VII
+30
7
Рис. 3.2. Транспортная задача в сетевой форме
Пункты расположения поставщиков и потребителей будем изображать кружками и называть вершинами (узлами) сети, запасы груза будем записывать в кружках положительными, а потребности -–отрицательными числами. Дороги, связывающие пункты расположения и потребления груза, будем изображать линиями и называть ребрами (дугами, звеньями) сети. На сети могут быть изображены вершины, в которых нет ни поставщиков, ни потребителей. Наличие таких вершин не повлияет на способ решения, если считать, что запасы (потребности) груза в них равны нулю.
65
Различия между транспортными задачами в матричной и сетевой формах весьма незначительны, так как методы их решения основаны на одних и тех же идеях (метод потенциалов).
Решение задачи на сети начинается с построения начального опорного плана. Последовательность решения задачи рассмотрена на конкретном примере (см. рис. 3.2). Поставку груза из вершины в вершину будем обозначать стрелками с указанием величины поставок.
Опорный план должен удовлетворять следующим требованиям:
1) все запасы должны быть распределены, а потребности удовлетворены;
2) к каждой вершине должна подходить или выходить из нее хотя бы одна
стрелка;
3) общее количество стрелок должно быть на единицу меньше числа
вершин (n + m – 1);
4) стрелки не должны образовывать замкнутый контур.
План распределения груза, отвечающий этим требованиям, представлен на рис. 3.3.
13
V
-20 5
61
2
VI
+70
14
VII
+30
7
15
7
80
12
-2 ρ
-60
10
I
+100
2
II
3
III
-85
20 15
4
17
20
3
13
IV
-35
85
3
Рис. 3.3. Пример опорного план распределения груза
при решении задачи на сети
Далее следует проверить план на оптимальность. Для этого вычисляем потенциалы. Одной из вершин (например, вершине 1) присвоим некоторое значение потенциала (например, равное 10). Для наглядности потенциалы будем заключать в рамки. После этого, двигаясь по стрелкам, определяем потенциалы остальных вершин, руководствуясь правилом: если стрелка выходит из вершины, то к потенциалу этой вершины прибавляем показатель
критерия оптимальности, если же направление стрелки противоположно,
c
ij
c
ij
вычитаем (см. рис. 3.3).
66
После вычисления потенциалов находят характеристики ребер без стрелок
−=−−=
=
=
=
по правилу: из большего потенциала вычитается меньший, а разность вычитается из показателя
c
, отвечающего данному ребру.
ij
Если все ребра без стрелок имеют неотрицательные характеристики, то составленный план является оптимальным.
Вычислим характеристики ребер без стрелок
S ; 1
7,5
1)713(5
S ; 0
6,4
S ; 2
3,4
S
3,2
Два ребра имеют отрицательные характеристики, в этом случае выбирается ребро с наименьшей отрицательной характеристикой и к нему подрисовывается новая стрелка, при этом образуется замкнутый контур из стрелок. Новая стрелка направляется от вершины с меньшим потенциалом к вершине с большим потенциалом.
В нашем примере новая стрелка направлена от вершины II к вершине III
(штриховая линия (см. рис. 3.3).
Для определения величины поставки (ρ) для ребра
S рассматриваются
3,2
все стрелки образовавшегося замкнутого контура, имеющие направление, противоположное новой стрелке (участок
с наименьшей поставкой λ (в нашем примере λ = 15 на ребре
S ), и среди них находится стрелка
3,2
S ), Выбранная
7,6
таким образом величина прибавляется ко всем поставкам в стрелках, имеющих то же направление, что и новая стрелка, и вычитается из поставок в стрелках, имеющих противоположное направление. Поставки в стрелках, не входящих в контур, сохраняются неизменными. Стрелка, на которой выбрано число λ, ликвидируется и общее число стрелок остается прежним. Новый опорный план представлен на рис. 3.4.
13
V
-20 5
61
2
VI
+70
ρ
VII
+30
7
7
12
80
-60
15
70
I
+100
2
II
3
III
-85
5 30
4
20
3
13
IV
-35
70
3
15
12
Рис. 3.4. Новый опорный план распределения груза
67
Полученный план исследуется на оптимальность, подобно предыдущему.
=⋅+⋅+⋅+⋅+⋅+⋅=
Сделав еще шаг, получим оптимальный план (рис. 3.5), когда все характеристики
100
12
II
-60
3
15
S
на участках без стрелок неотрицательны.
ij
10
I
+100
2
III
-85
25 10
4
15
3
13
IV
-35
70
3
12
V
-20 5
61
2
7
VI
+70
12
Рис. 3.5. Оптимальный план распределения груза
20
VII
+30
7
Определим значение целевой функции:
Z .
min
6405206103703151252100
Вырождение плана транспортной задачи в сетевой постановке проявляется в том, что при полном использовании запасов и полном удовлетворении потребностей количество стрелок оказывается меньше чем n поставщики
, a m –
потребители
.
+ m – 1,
где n
Для преодоления вырождения вводится нужное количество стрелок с нулевыми поставками, направление стрелок выбирается произвольно, однако они не должны образовывать замкнутый контур
.
В случае открытой модели вводят фиктивного потребителя (поставщика со спросом, равным небалансу. Фиктивный потребитель соединяется дугами непосредственно со всеми поставщиками (потребителями при этом показатели
(
поставщика) с реальными поставщиками
c
ij
ребер, соединяющих фиктивного потребителя
(
потребителями
(
поставщик
),
следует брать
),
одинаковыми и сравнительно большими. Это делается для того, чтобы исключить возможность использования фиктивной вершины в качестве
) )
промежуточного пункта
.
68
Резюме
aaa
,...,
,
bbb
,...,
,
Из материала, изложенного в данной лекции, можно сделать следующие выводы.
Транспортная задача является представителем класса задач линейного
программирования и поэтому обладает всеми качествами линейных оптимизационных задач, но одновременно она имеет и ряд дополнительных полезных свойств, которые позволили разработать специальные методы ее решения.
Экономико-математическая модель: имеются m пунктов отправления
груза и объемы отправления по каждому пункту потребность в грузах
21
по
n
каждому из
n
21
пунктов назначения
.
Известна
m
.
Задана матрица стоимостей доставки по каждому варианту
nj ,1=
.
Необходимо рассчитать оптимальный план перевозок, т.е
определить, сколько груза должно быть отправлено из каждого отправления потребителя
Решение
(от
)
транспортной задачи включает два этапа: определение опорного
поставщика) в каждый
x
с
минимальными транспортными издержками
ij
j-ый
пункт назначения
с
i-го
.
,
ij
плана; нахождение оптимального решения, путем последовательных операций
Для
начального плана (опорного решения
.
транспортной задачи существует несколько методов отыскания
):
метод северо-западного угла; метод минимальной стоимости; метод Фогеля; метод двойного предпочтения Существует
два
метода
нахождения
оптимального
решения
транспортной задачи: распределительный метод; метод потенциалов
Вопросы для самоконтроля
1.
Что такое «транспортная задача»?
2.
Какие задачи относятся к транспортным?
3.
Приведите классификацию транспортных задач.
4.
Перечислите особенности транспортной задачи.
5.
Приведите математическую модель транспортной задачи.
6.
Приведите пример транспортной таблицы.
7.
Когда транспортная задача называется закрытой? Открытой?
8.
Дайте характеристику метода северо-западного угла.
9.
Дайте характеристику метода минимальной стоимости.
10.
Дайте характеристику метода Фогеля
11.
Дайте характеристику метода двойного предпочтения.
12.
Поясните алгоритм распределительного метода
13.
Поясните алгоритм потенциалов.
mi ,1=
пункта
(до
.
, .
.
69
4 ЦЕЛОЧИСЛЕННЫЕ МОДЕЛИ ИССЛЕДОВАНИЯ
ОПЕРАЦИЙ
4.1 Назначение методов целочисленного программирования
Целочисленное программирование ориентировано на решение задач математического программирования, в которых все или некоторые переменные должны принимать только целочисленные значения.
Задача называется полностью целочисленной, если условие целочисленности наложено на все ее переменные; когда это условие относится лишь к некоторым переменным, задача называется частично целочисленной. Если при этом целевая функция и функции, входящие в ограничения, линейные, то задача является линейной целочисленной.
Несмотря на то, что к настоящему времени разработан ряд методов решения целочисленных задач, ни один из них не обеспечивает желаемой эффективности соответствующих вычислительных процедур, что особенно проявляется при увеличении размерности задачи. Таким образом, в отличие от задач линейного программирования, время решения которых относительно невелико, реализация целочисленных алгоритмов в ряде случаев весьма затруднительна.
Одна из основных трудностей в целочисленном программировании связана с эффектом ошибки округления, возникающим при использовании цифровых ЭВМ. Даже наличие алгоритмов, применимых для решения задач с целочисленными коэффициентами и позволяющих обойтись без оперирования дробями (и, следовательно, избежать влияния ошибок округления), не упрощает ситуации, поскольку такие алгоритмы (в ряде случаев) сходятся чрезвычайно медленно.
Принцип работы всех методов линейного целочисленного программирования следующий: сначала задача решается симплекс-методом без учета требований целочисленности. Если все переменные, которые по своему смыслу должны быть целочисленными, принимают в оптимальном решении целочисленные значения, то решение задачи на этом завершается. Если хотя бы одна из этих переменных принимает дробное значение, то в задачу вводятся дополнительные ограничения, исключающие полученное оптимальное (но нецелочисленное) решение из области допустимых решений. Новые задачи (одна или несколько), включающие дополнительные ограничения, также решаются симплекс-методом. Процесс продолжается до получения оптимального целочисленного решения.
Методы решения задач целочисленного программирования можно классифицировать как (1) методы отсечений и (2) комбинаторные методы.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]