Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимизации алгоритмические основы задач оптимизации. Курс лекций
.pdf
Таблица 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
=
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
