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

Основы компьютерной математики. Задачи системного анализа и управления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
3. Решение задач оптимизации
71
Из рисунка видно, что опорная прямая пересекается с областью допу-
стимых значений не в одной точке, а по стороне полученного треуголь­ника D. Таким образом, оптимальное решение не единственно. Найдем остальные.
Значения целевой функции в точках пересечения a и b соответственно
прямых (I) и (II), (II) и (III) совпадает с ее значением в оптимальном плане,
т. е. 󰇛󰇜 󰇛󰇜 󰇛

󰇜. Это означает, что a и b также являются опти-
мальными решениями.
Поскольку функция f(x) достигает максимума на отрезке [a; b], то мно-
жество всех оптимальных планов имеет вид

   󰇛  󰇜   󰇟 󰇠
При этом
󰇛󰇜
Пример 3.8. Решить задачу линейного программирования:
󰇛󰇜    
   
   
   

Решение представлено на рисунке 3.10.
Рис. 3.10. Решение задачи линейного программирования
ORIGIN 1=
f x( ) x1x2+ 3x3+=
x11=
x21=
x31=
Given
2x1x2+ 3x3+ 3
x12x2− x3− 1
x1x2− 2x3− 2−
x 0
x
opt
Maximize f x( )00
1
 
 
==
f x
opt
( )
3=
72
3. Решение задач оптимизации
Пример 3.9. Решить транспортные задачи, исходные данные которых за- даны таблицами 2 и 3.
Таблица 2
Классическая (закрытая) модель транспортной задачи
a b
140
160
100
120
180
250
11 7 20 9 15
300
12 3 14
12
20
150
18
15
25
16
19
Таблица 3
Открытая модель транспортной задачи
a b
16
18
12
15
20 2 3 9 7
16 3 4 6 1
14 5 1 2 2
22 4 5 8 1
Решение задачи с правильным балансом: запишем математическую мо­дель транспортной задачи:
󰇛󰇜   



 
 


    
 


    
      
где  и

– соответственно стоимость перевозки единицы груза и объем
перевозок от i-го поставщика j-му потребителю,
– запас груза у i-го по-
ставщика,
– потребность j-го потребителя. Данная задача с правильным
балансом, т. к.
 

  

3. Решение задач оптимизации
73
Построим двойственную задачу:
󰇛 󰇜  

  

 
        
В системе Mathcad задаем r – число поставщиков, c – число потребите-
лей, матрицы C, a и bв табличной виде, целевую функцию F(x) (рис. 3.11).
Функция 
󰇛󰇜
возвращает вектор значений
 


   
функция 󰇛󰇜 – матрицу-строку значений
 


   
Далее задаем начальное приближение переменной x и в блоке Given –
Minimize задаем систему ограничений. Результатом действия функции
Minimize будет оптимальный план 

. Находим 󰇛

󰇜.
Проверим, что найденное решение

является оптимальным
(рис. 3.12). Зададим целевую функцию двойственной задачи g(u, v). Функ-
ция M(u, v) возвращает матрицу с элементами  ,   ,   
; функ-
ция Pot(u, v, x) возвращает матрицу двойственных оценок ненулевых эле-
ментов решения x. Находим значения потенциалов

и

решения 

.
Проверяем, что найденные значения потенциалов удовлетворяют системе
ограничений двойственной задачи: 

 

 , и находим в них зна-
чение целевой функции g(u, v). В связи с этим можем сделать вывод, что по-
лученное решение 

является оптимальным.
74
3. Решение задач оптимизации
Рис. 3.11. Решение транспортной задачи с правильным балансом
ORIGIN 1=
r 3=
c 5=
C
117209151231412
20
1815251619
=
a
250
300
150
=
b
140
160
100
120
180
=
i 1 r=
j 1 c=
F x( )
i j
C
i jxi j
( )
=
Sumrx( )
y
i
x
T
( )
i
 
i 1 rfor
y
=
Sumcx( )
y
j
x
j
 
j 1 cfor
y
T
=
x
i j
1=
Given
x 0
x
opt
Minimize F x( )=
x
opt
100
40
0
0
160
0
0
100
0
120
0 0
30
0
150
 
 
=
F x
opt
( )
7840=
3. Решение задач оптимизации
75
Рис. 3.12. Проверка правильности решения транспортной задачи
Решение открытой модели транспортной задачи: в данной задаче
нарушено условие баланса, т. к.
 

  

Поэтому вводим фиктивного потребителя с потребностью
g u v( ) a u bTv+=
M u v( )
y
i j
uivj+
j 1 cfor
i 1 rfor
y
=
Pot u v x( )
y
i j
M u v( )
i j
C
i j
−
( )
x
i j
0if
y
i j
0 otherwise
j 1 cfor
i 1 rfor
y
=
ur1=
vc1=
Given
u
opt
v
opt
 
 
Find u v( )=
u
opt
0 1 4
 
 
=
v
opt
11
2
13
9
15
    
    
=
M u
optvopt
( )
C
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
 
 
=
g u
optvopt
( )
7840=
76
3. Решение задач оптимизации

  

  

 
Стоимости перевозок в фиктивный пункт полагаем равными 0.
Решение задачи в системе Mathcad представлено на рисунке 3.13. За-
даем r – число поставщиков; c – число потребителей; матрицы C, a и в
табличном виде, добавляя дополнительного фиктивного потребителя и нулевой c + 1 столбец у матрицы C; целевую функцию F(x). Функции
󰇛󰇜 и 󰇛󰇜 возвращают соответственно матрицы-строки значе-
ний
 

 
   


   
Так же, как и в случае решения транспортной задачи с правильным ба­лансом, задаем начальное приближение переменной x и систему ограниче­ний и в результате действия блока Given – Minimize получаем оптимальное
решение . Вычислим затраты на перевозку грузов 󰇛󰇜. Исключая фик-
тивные перевозки, получаем оптимальный план

 





Пример 3.10. Решить транспортную задачу, исходные данные которой заданы таблицей 4.
Таблица 4
Транспортная задача с вырожденным опорным планом
a b
4 5 4
7
5 3 4 5 5 8 1 3 2
3
7 2 2 5 1
3. Решение задач оптимизации
77
Рис. 3.13. Решение транспортной задачи с неправильным балансом
ORIGIN 1=
c 4=
r 4=
C
239703461051220
45810
=
a
201614
22
=
b
1618121511
=
i 1 r=
j 1 c 1+=
F x( )
i j
C
i jxi j
( )
=
Sumrx( )
y
i
x
T
( )
i
 
i 1 rfor
y
T
=
Sumcx( )
y
j
x
j
 
j 1 c 1+for
y
T
=
x
i j
1=
Given
x 0
xoMinimize F x( )=
F x
o
( )
133=
x
o
16
0 0 0
4
12
2 0
0 0
12
0
0 4 0
11
0 0 0
11
  
  
=
x
opt
submatrix xo1r 1 c
( )
16
0 0 0
4
12
2 0
0 0
12
0
0 4 0
11
  
==
78
3. Решение задач оптимизации
Решение: находим начальный опорный план методом северо-запад-
ного угла, тогда
 
 
 
 

который является вырожденным, поскольку базисная переменная

 .
Поскольку для данной задачи выполняется условие баланса, задача разре­шима.
Решение задачи в системе Mathcad представлено на рисунке 3.14.
Рис. 3.14. Решение транспортной задачи с вырожденным опорным планом
ORIGIN 1=
r 3=
c 4=
b
454
7
=
a
5
8
7
=
C
3455132
3
225
1
=
i 1 r=
j 1 c=
F x( )
i j
C
i jxi j
( )
=
Sumrx( )
y
i
x
T
( )
i
 
i 1 rfor
y
=
Sumcx( )
y
j
x
j
 
j 1 cfor
y
T
=
x
i j
1=
Given
x 0
x
opt
Minimize F x( )=
x
opt
0 4 0
5 0 0
0 4 0
0 0 7
 
 
=
F x
opt
( )
39=
3. Решение задач оптимизации
79
Пример 3.11. Решить транспортную задачу, исходные данные которой
заданы таблицей 5, при этом объем перевозки груза от 1-го поставщика
5-му потребителю должен быть не более 90 единиц, а от 3-го поставщика 2-му потребителю должен быть не менее 50 единиц.
Таблица 5
Транспортная задача с ограничениями на пропускную способность
a b
140
160
100
120
180
250
11 7 20 9 15
300
12 3 14
12
20
150
18
15
25
16
19
Решение: данная задача является задачей с правильным балансом, реше-
ние которой описано в примере 3.9, и с ограничениями на пропускную спо-
собность  и  , которые помимо системы ограничений вклю-
чаются в блок Given – Minimize. Решение приведено на рисунке 3.15.
80
3. Решение задач оптимизации
Рис. 3.15. Решение транспортной задачи с ограничениями на пропускную способность
ORIGIN 1=
r 3=
c 5=
C
117209151231412
20
1815251619
=
a
250
300
150
=
b
140
160
100
120
180
=
i 1 r=
j 1 c=
F x( )
i j
C
i jxi j
( )
=
Sumrx( )
y
i
x
T
( )
i
 
i 1 rfor
y
=
Sumcx( )
y
j
x
j
 
j 1 cfor
y
T
=
x
i j
1=
Given
x 0
x
3 2
50
x
1 5
90
x
opt
Minimize F x( )=
x
opt
50 90
0
0
110
50
0
100
0
120
0 0
80
0
100
 
 
=
F x
opt
( )
8290=
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]