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

Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Таблица 3.4
j
rj
c
a
;
r
r
aaa
6;
5;
20.
11
01 0;
20 20
c
j
x
ib
x2 1 1 0 0 0 0 20 x3 6/5 0 1 0 0 1/5 44 x
4
x
5
6 30 20 25 0 0
x
1
–6/5 0 0 1 0 –1/5 –4
9 0 0 0 1 2 240 5 – – – – 0 0
x
2
x
3
x
4
r = 4, s = 6
x
5
x
6
bi
Для строки i = r:
j
=
rj
s
b =
b
r
r
.
a
rs
Для остальных строк:
a
is
aa −=
ijij
;
a
rj
a
rs
a
is
bb −=
ii
b
r
a
rs
Для облегчения расчетов заметим, что элементы новой таблицы
(
см. далее табл. 3.5), находящиеся на пересечении строк и столбцов с одинаковыми индексами, заполняются единицами, так как базисная переменная входит в соответствующее уравнение с коэффициентом
1.
Элементы, находящиеся на пересечении строки со столбцом, соот­ветствующим другой базисной переменной, заполняются нулями, так как в любом уравнении присутствует только одна базисная перемен­ная. Таким образом, заполняя новую таблицу, будем рассчитывать коэффициенты только для столбцов, соответствующих свободным переменным.
Для строки r (после пересчета индекс строки 4 меняется на 6):
6/5
−
==
a
61
1/ 5
−
a
1
==−
64
1/ 5
−
4
−
==
b
6
1/ 5
−
Для остальных строк (коэффициенты в правых частях равенств
берутся из табл. 3.4):
()
=− =
a
21
6/5
b
2
0
1/ 5
−
=− =
−
0
1/ 5
;
=− =
a
24
()
−
4
−
0
1/ 5
;
71
1/ 5
6/5 0
01 1;
44 ( 4) 40;
93
01 10;
240 ( 4) 200.
j
fx c ca
=− =
a
31
=− =
a
51
()
6/5
b
()
6/5
b
5
1/ 5
−
=− −=
3
2
−
1/ 5
=− −=
1/ 5
−
−
1/ 5
2
1/ 5
;
a
;
a
54
=− =
34
=− =
−
1/ 5
−
2
1/ 5
1/ 5
В результате этого пересчета получим табл. 3.5.
Таблица 3.5
c
j
x2 1 1 0 0 0 0 20 x3 0 0 1 1 0 0 40 x
6
x
5
6 30 20 25 0 0
x
1
6 0 0 –5 0 1 20
–3 0 0 10 1 0 200
x
2
x
3
x
4
x
5
x
6
bi
Итак, ДБР получено, так как все правые части положительны.
Свободными переменными являются x
и x4.
1
Алгоритм симплекс-метода также удобно представить в виде по­добных таблиц, добавив в них дополнительную информацию для оп­ределения r и s, а именно строку для значений пробного приращения целевой функции Δf(x), столбец для расчета отношения b бец коэффициентов c
при базисных переменных, используемый для
ib
i/ais
и стол-
расчета приращения целевой функции. Тогда первая таблица с най­денным ДБР выглядит следующим образом (табл. 3.6).
Таблица 3.6
c
j
с
xib
ib
30 x2 1 1 0 0 0 0 20 20 20 x
0 x
0 x5 –3 0 0 10 1 0 200 –
Δfj (x) –24 0 0 5 0 0 f(x) = 1400
6 30 20 25 0 0
x
0 0 1 1 0 0 40 –
3
6 0 0 –5 0 1 20 20/6
4
x
1
2
x
s = 1, r = 6
x
3
x
4
x
5
b
i
6
bi/a
is
Нижняя строка таблицы вычислена в соответствии с формулой
72
()
Δ=−
jjii
∑
i
B
, (3.52)
где сумма есть скалярное произведение крайнего слева столбца табл. 3.6 и j-го столбца коэффициентов. Так как не все Δf
(x) положительны, то
j
нужна замена переменных. В соответствии с алгоритмом выбрано s = 1. В крайнем правом столбце пропущены два элемента, соответствую­щие делению на неположительное значение a
. В соответствии с ал-
is
горитмом выбрано r = 6. В правом нижнем углу записано значение целевой функции для данного ДБР, которое получается как скаляр­ное произведение столбца c
на столбец bi, поскольку по определе-
ib
нию ДБР базисные переменные равны соответствующим правым частям, а свободные равны нулю.
Следующая табл. 3.7 является результатом замены переменных x
x
с точно таким же расчетом, который показан выше при поиске ДБР.
6
Таблица 3.7
c
j
с
xib x
ib
30 x 20 x3 0 0 1 1 0 0 40 40
6 x 0 x
Δfj(x) 0 0 0 –15 0 4 f(x) = 1320
Заметим, что и здесь не все Δf
заменить переменные x
c
j
с
xib x
ib
25 x 20 x3 0 –6/5 1 0 0 1/5 20
6 x 0 x5 0 –9 0 0 1 2 60
Δfj (x) 0 18 0 5 0 1 f(x) = 1020
6 30 20 25 0 0
x
x
x
x
1
2
3
0 1 0 5/6 0 –1/6 50/3 20
2
1 0 0 –5/6 0 1/6 20/6 –
1
0 0 0 15/2 1 1/2 210 28
5
4
x
5
6
bi bi/ais
s = 4, r = 2
(x) положительны. Теперь нужно
j
и x4 и получить следующую табл. 3.8.
2
6 30 20 25 0 0
x
1
0 6/5 0 1 0 –1/5 20
4
1 1 0 0 0 0 20
1
x
2
x
3
x
4
x
5
6
Таблица 3.8
bi bi/ais
1
и
Теперь видно, что в нижней строке нет отрицательных элементов. Следовательно, содержащееся в этой таблице ДБР является решени­ем задачи, а минимальное значение целевой функции равно 1020. Значения исходных переменных задачи в соответствии с табл. 3.8 будут следующие: x ных переменных x
= 20, x2 = 0, x3 = 20, x4 = 20. Значения фиктив-
1
= 60, x6 = 0.
5
Графическое решение задачи
случае когда исходная задача ЛП имеет всего два неизвестных, ее
В графическое решение получают точно так же, как показано выше для
73
задачи нелинейного программирования. В противном случае графиче­ское решение может быть получено, если после введения фиктивных переменых (т.е. в стандартной форме) разность q = n – m между чис­лом переменных и числом уравнений-ограничений не больше двух.
(
Здесь не будет рассматриваться графическое решение задачи в трех-
мерном пространстве, хотя принципиально это возможно.)
Исходным пунктом для графического решения является канони­ческая форма уравнений-ограничений, причем это не обязательно должно быть ДБР. Запишем задачу (3.48) в канонической форме
(
здесь q = 6 – 4 = 2):
x x x
+ (6/5)x1 + (1/5)x6 = 44;
3
– (6/5)x1 – (1/5)x6 = –4;
4
x
+ x1 = 20;
2
+ 9x1 + 2x6 = 240.
5
Выразим базисные переменные через свободные переменные:
x x x
= 44 – (6/5)x1 – (1/5)x6; (3.53)
3
= –4 + (6/5)x1 + (1/5)x6;
4
x
Примем в качестве координат свободные переменные x
= 20 – x1;
2
= 240 – 9x1 – 2x6.
5
и x6.
1
Проведем в плоскости, определяемой этими координатами, четы­ре прямые, соответствующие нулевым значениям базисных переменныx. Уравнения этих прямых следующие:
1)
x
= 20; x2 = 0;
1
x
= 220 – 6x1; x3 = 0; (3.54)
2)
6
3)
x
= 20 – 6x1; x4 = 0;
6
4)
x
= 120 – (9/2)x1; x5 = 0.
6
Каждая из этих прямых разбивает множество точек плоскости x
1x6
на два подмножества, соответствующих положительным и отрица­тельным значениям базисной переменной. Пересечение «положи­тельных» подмножеств (если оно существует) дает область допусти­мых решений (ОДР).
Для получения решения нужно знать положение линий уровня целевой функции в выбранных координатах. Для вычисления ее гра­диента выразим f(x) через x
и x6, подставив уравнения (3.53) в фор-
1
мулу для целевой функции:
f(x) = 1380 – 18x
74
+ x6; grad f(x) = (–18, 1).
1
Изобразим теперь в координатах x
x
приведенные выше уравне-
1x6
ния (3.54) (рис. 3.8) и отметим штриховкой для каждого из них по­ложительное подмножество, соответствующее положительным зна­чениям x
, x3, x4, x5. Для определения указанного подмножества под-
2
ставляем точку (0, 0) начала координат в уравнения (3.50). Если при этом базисная переменная больше нуля, штрихуем линию со сторо­ны, обращенной к началу координат. Если базисная переменная меньше нуля, штрихуем линию с противоположной стороны.
40
20
6
x5 = 0
x4 = 0
x
= 0
2
x3 = 0
f(x) = c
x
1
40 0 20
– grad(f(x))
Рис. 3.8. Графическое решение задачи ЛП
Ориентация линий уровня показана пунктирными линиями (они пер-
пендикулярны градиенту). Перемещаясь по этим линиям в направлении –
g
rad f(x), получаем минимальное значение f(x) в точке (20, 0). Таким обра-
зом, имеем следующее решение: x уравнения (3.50), получим: x
= 20; x6 = 0. Подставив эти значения в
1
= 0; x3 = 20; x4 = 20; x5 = 60. Разумеется, это
2
то же самое решение, которое было представлено в табл. 3.8.
75
Контрольные вопросы
1. В какой форме задается допустимая область в задаче НЛП?
2.
Как используется поиск безусловного минимума в задачах НЛП?
3.
Как получить условия Куна – Таккера из классической задачи
Лагранжа?
4.
Почему в методе штрафных функций нельзя сразу задать боль-
шое значение параметра штрафа?
5.
Какие виды штрафных функций вы знаете?
6.
Что такое метод квадратичного штрафа?
В чем преимущество метода множителей перед методом
7.
штрафных функций?
8.
Являются ли условия Куна – Таккера достаточными условиями
условного минимума?
9.
Как используются условия минимума второго порядка в задаче
НЛП?
10.
Как найти графическое решение задачи НЛП?
11.
Имеет ли целевая функция в задаче ЛП безусловный минимум?
Что такое фиктивные переменные?
12.
13.
Что такое каноническая форма задачи ЛП?
14.
Как решить задачу ЛП методом перебора? Что такое симплекс-метод?
15.
16.
Как выбираются направляющие столбец и строка?
17.
Какие столбцы симплекс-таблицы можно заполнить без пере-
счета?
18.
Какие значения имеют свободные переменные в точке решения?
Как определить решение по симплекс-таблице?
19.
20.
Как вычислить значение целевой функции по симплекс-таблице?
21.
Что такое пробный шаг и как он производится? Каков признак того, что решение получено?
22.
23.
Как строится область допустимых решений в задаче ЛП при
размерности пространства переменных больше двух?
Как найти графическое решение задачи ЛП?
24.
76
4. АЛГОРИТМЫ ДИСКРЕТНОЙ
j
.
xB
ОПТИМИЗАЦИИ
4.1. Общие сведения о задачах
Термин «дискретная оптимизация» относится к задачам поиска минимума целевой функции, независимые переменные которой имеют дискретные значения.
Если дискрет изменения переменных намного меньше размеров области определения функции, то алгоритмы поиска безусловного минимума нулевого и первого порядка в принципе сохраняют свой вид. Они отличаются от своих непрерывных аналогов дополнитель­ными правилами вычисления очередной точки поиска, поскольку требуется округление с точностью до дискрета. По той же причине вводится понятие псевдопроизводной.
Если же дискрет сравним с размерами области определения функ­ции, структура алгоритмов поиска совершенно меняется. Примером может служить пространство булевых переменных.
Здесь не рассматриваются дискретные задачи безусловной опти­мизации в связи с ограниченным количеством приложений. Напро­тив, дискретные задачи условной оптимизации имеют множество приложений в различных технических проблемах.
Вот некоторые примеры постановки задач.
Пример 4.1. «Задача о рюкзаке».
Имеется n предметов разного вида, характеризуемых двумя пара­метрами: a
– масса и cj – ценность (j = 1, n). Рюкзак вмещает предме-
j
ты массой b. Требуется загрузить рюкзак с максимальной ценностью.
Введем переменную x
0 –
предмет не загружается, 1 – предмет загружается. Задача форма-
, которая принимает одно из двух значений:
j
лизуется следующим образом: найти максимум функции f(x):
()
fx cx=
∑
Заметим, что в принципе x
при ограничении
j
j
может принимать значения 1, 2, 3, …,
j
∑
(4.1)
≤
j
j
если исходное количество предметов j-го вида больше одного.
Пример 4.2. Размещение программных модулей в памяти компьютера.
Имеется m программных модулей, которые нужно разместить в вычислительной системе на разных уровнях, характеризующихся
77
различным временем доступа. Каждый модуль имеет следующие ха-
i
j
iij
ax
ν
ii
x
xm
рактеристики:
a
– требуемый объем памяти (в байтах), (i = 1, m);
i
p
– относительная частота (вероятность) использования для задач
i
определенного класса.
Система имеет n уровней, каждый из которых имеет объем памяти
b
байт и скорость выборки ν
j
байт/с (j = 1, n). Требуется найти раз-
j
мещение модулей, при котором суммарное потребное время выборки при решении типовой задачи будет минимальным.
Пусть переменная x
уровне, и равна 0 в противном случае. Обозначим через t
равна 1, если i-й модуль размещен на j-м
j
= ai/νj тре-
ij
буемое время выборки i-го модуля с j-го уровня. Тогда время выбор­ки θ
для i-го модуля будет составлять
i
n
θ=
∑
jtx=
.
ij i
1
Учитывая, что математическое ожидание времени на выборку i-го
модуля равно p
, запишем в качестве целевой функции среднее
iθi
время выборки всех модулей:
mmn
()
fx p p
=θ=
∑∑∑
ii i
111
===
iij
.
j
На значения переменных наложены следующие ограничения:
Σx
=1; i = 1, m; j = 1, n (каждый модуль размещен на одном уровне);
ij
Σai x
≤ b
; i =1, m; j = 1, n (ограничение объема памяти j-го уровня).
ij
j
Пример 4.3. Задача о распределении ресурсов.
Есть m единиц одного ресурса (товар, энергия, капитал). Единица ресурса неделима. Имеется также m доходных предприятий, каждое из которых приносит доход b
) при вложении xi единиц ресурса.
i(xi
Требуется распределить вложение ресурса так, чтобы получить мак­симальный суммарный доход.
Целевая функция очевидна:
()
fx b
=
∑
; i = 1, n.
j
Уравнение ограничения:
=
78
∑
i
i
; i = 1, n.
Пример 4.4. «Задача коммивояжера».
() (, )
fx cii
23 1 1
( , ) ... ( , ) ( , )
ci i ci i ci i
Имеется граф с n вершинами. На ребрах графа задана мера, которая обычно ассоциируется с некоторыми потерями. Классическое назва­ние задачи обязано следующей ее трактовке: вершины – города, реб­ра – соединяющие их дороги, по которым коммивояжер с товаром должен пройти, побывав в каждом городе ровно один раз при мини­мальных дорожных расходах. Обозначим меру потерь для пары вершин
(
i, j) через c(i, j). Введем переменную x, каждое из значений которой
равно последовательности индексов вершин графа, представляющей собой замкнутый маршрут: x= (i множестве маршрутов целевая функция имеет вид
+++ +.
nn n
−
, i2, … in, i1). Тогда минимизируемая на
1
=+
12
Алгоритмы дискретной оптимизации разрабатываются на основе некоторых классических методов, которые рассматриваются ниже.
1.
Динамическое программирование. Метод ветвей и границ.
2.
3.
Метод пометок.
4.2. Динамическое программирование (ДП)
4.2.1. Описание задачи ДП
Рассматривается
процесс изменения состояния Х некоторого объ-
екта или системы (переменная состояния Х может быть вектором). Множество состояний Х может быть непрерывным или дискретным.
Изменение состояния происходит под действием управления U. Принятие решения о том или ином значении переменной U происхо­дит в фиксированных точках пространства некоторой независимой переменной. Последовательность значений Х в этом пространстве называется траекторией объекта. В качестве указанного пространства могут быть приняты время, механическое пространство, множество фиксированных физических объектов. Точки этого пространства на­зываются моментами или слоями – в зависимости от физического содержания задачи. Интервал между двумя последовательными мо­ментами называется этапом.
Содержанием задачи определяется множество допустимых траек­торий. Для каждой траектории может быть вычислена некоторая це­левая функция F, имеющая смысл выигрыша или потерь. Функция F должна быть сепарабельной, т.е. представляемой в виде суммы (или произведения) ее приращений на отдельных этапах.
79
Расчет траектории и приращения целевой функции на очередном этапе должен зависеть только от состояния объекта (системы) на мо­мент начала этапа.
Этот расчет должен быть независимым от предыдущего отрезка траектории.
4.2.2. Постановка задачи ДП
На
множестве допустимых траекторий найти оптимальную траек-
торию, обеспечивающую экстремум целевой функции.
Замечание 4.1. Задача ДП по постановке кажется похожей на за­дачу вариационного исчисления. Однако отличие состоит в том, что для задачи ДП не требуется не только наличия производных в описа­нии траектории и целевой функции, но и вообще наличия аналитиче­ских выражений для этих функций. Автором методологии решения подобных задач является американский математик Р. Беллман. Ос­новным положением при решении подобных задач является так на­зываемый принцип оптимальности.
Введем следующие определения.
Принцип оптимальности Беллмана. Отрезок оптимальной тра­ектории от некоторого момента (слоя) до конца траектории сам явля­ется оптимальной траекторией (доказывается от противного).
Условно-оптимальная траектория. Условно
-оптимальной тра-
екторией называется оптимальный отрезок траектории от некоторого
сированной точке на множестве Х.
4.2.3. Формальная терминология задачи ДП
1. Момент (слой): j = 0, 1, 2, …, N.
2.
Состояние: x(j).
3.
Управление: U(j), (j = 0, N – 1)).
4.
Ограничения: X
5.
Уравнение движения: X(j + 1) = ϕ(X(j), U(j)).
6.
Приращение целевой функции на j-м этапе траектории (от j-го
(j) ≤ X(j) ≤ X
min
max
(j) ; U
(j) ≤ U(j) ≤ U
min
max
(j).
до (j + 1)-го момента): f(j) = Ψ(X(j), X(j + 1)); (j = 0, N – 1).
−
1
N
Значение целевой функции на всей траектории:
80
=
∑
j
)(
jfF .
0
=
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]