Методы оптимизации в автоматизированных системах. Белецкая С.Ю
.pdf
Не всегда можно заранее определить, сколько раз придется вычислять функцию. В методе Фибоначчи это нужно знать для определения L2, т.е. положения начальной точки.
В методе «золотого сечения» не требуется знать n – количество вычислений функции, определяемое вначале. После того как выполнено j вычислений, исходя из тех же соображений, что и ранее, записываем Lj 1 Lj Lj 1.
Однако если n неизвестно, то мы не можем использовать условие Ln 1 2Ln . Если отношение последующих интервалов будет постоянным, т.е.
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	Lj 1  | 
	
  | 
	
  | 
	Lj  | 
	
  | 
	
  | 
	Lj 1  | 
	... ,  | 
	(2.5)  | 
||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	Lj  | 
	Lj 1  | 
	Lj 2  | 
||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||||
то  | 
	Lj 1  | 
	1  | 
	
  | 
	Lj 1  | 
	, т.е.  | 
	1 1 .  | 
	
  | 
	
  | 
	
  | 
||||||||||||
  | 
	Lj  | 
	
  | 
	Lj  | 
	
  | 
	
  | 
	
  | 
|||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	Таким образом,  | 
	2 1 0 .  | 
	
  | 
	
  | 
|||||||||||||||
  | 
	
  | 
	
  | 
	Получим (1  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||||||||||
  | 
	
  | 
	
  | 
	
  | 
	5)/2 1.618033989. Тогда  | 
|||||||||||||||||
  | 
	Lj 1  | 
	2,  | 
	Lj 2  | 
	3  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	L  | 
|||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	и т.д.  | 
	Следовательно, Ln  | 
	1  | 
	.  | 
|||||||||||
  | 
	Lj 1  | 
	
  | 
	
  | 
	Lj 1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	n 1  | 
|||||
В результате анализа двух рассмотренных значений функций будет определен тот интервал, который должен исследоваться в дальнейшем. Этот интервал будет содержать одну из предыдущих точек и следующую точку, помещаемую симметрично ей. Первая точка находится на расстоянии L1 / от одного конца интервала, вторая – на таком же расстоянии
от другого. Поскольку lim Fn 1 1 , то поиск методом
n Fn n
«золотого сечения» является предельной формой поиска методом Фибоначчи. Название «золотое сечение» произошло от названия отношения в уравнении (2.5). Видно, что Lj 1
20
делится на две части так, что отношение целого к большей части равно отношению большей части к меньшей, т.е. равно так называемому «золотому отношению».
Таким образом, если ищется интервал (x0;x3) и имеются два значения функции f1 и f2 в точках x1 и x2, то следует рассмотреть два случая (рис. 2.4).
a) f1 < f2
новый интервал (x0, x2)
x0 x1 x2 x3
б) f1 > f2
новый интервал (x1, x3)
x0 x1 x2 x3
Рис. 2.4
Основные шаги алгоритма:
Шаг 1. Задать интервал (А;В), точность .
Шаг 2. Положить х0=А и х3=В. Определить первую
точку x  | 
	B  | 
	L1  | 
	, где L  | 
	(x  | 
	0  | 
	x  | 
	3  | 
	);  | 
	x  | 
	2  | 
	x  | 
	0  | 
	x  | 
	3  | 
	x  | 
	1  | 
	.  | 
  | 
|||||||||||||||||
1  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
Шаг 3. Вычислить значения функции в точках х1 и х2 –
f1 и f2.
Шаг 4. Установить новые значения координат точек в зависимости от соотношения f1 и f2:
I а) если f1<f2, то I = x2 – x0; x3 = x2; x2 = x1; x1 x0 ;
f2 = f1.
I б) если f1>f2, то I = x3 – x1; x0 = x1; x1 = x2; x2 x0 ;
f1 = f2.
Шаг 5. Если I , возврат к шагу 3. Иначе, конечным результатом поиска считается точка x1.
21
3.ЛИНЕЙНАЯ ОПТИМИЗАЦИЯ
3.1.Форма записи задач линейной оптимизации
Задачи линейной оптимизации заключаются в определении оптимального (максимального или минимального) значения линейной целевой функции при линейных ограничениях. Ограничения в задачах линейной оптимизации представлены в виде системы линейных равенств и неравенств. Задачи линейной оптимизации называются еще задачами линейного программирования (ЗЛП). Эту терминологию будем использовать в дальнейшем.
Модель задачи линейного программирования (ЗЛП) может быть записана в одной из следующих форм:
Общая ЗЛП:
n
F cjxj max(min) ,
j 1  | 
	
  | 
||
n  | 
	
  | 
	
  | 
	
  | 
aijxj ( , )bi,i  | 
	1,m  | 
	,  | 
	(3.1)  | 
j 1  | 
	
  | 
||
xk 0,k 1,s, s n .
Здесь x1,...,xn – варьируемые параметры модели. Бу-
дем предполагать, что переменные xj неотрицательны.
Стандартная ЗЛП:
n
F cjxj max(min) ,
j 1  | 
	
  | 
n  | 
	
  | 
aijxj bi,i 1,m ,  | 
	(3.2)  | 
j 1
xi 0,i 1,n
22
Каноническая ЗЛП:
n
F cjxj min ,
j 1  | 
	
  | 
||
n  | 
	
  | 
	
  | 
	
  | 
aijxj bi,i  | 
	1,m  | 
	,  | 
	(3.3)  | 
j 1  | 
	
  | 
||
xi 0,i 1,n .
Все формы записи ЗЛП являются эквивалентными и могут быть приведены друг к другу с помощью равносильных преобразований.
При разработке вычислительных методов решения ЗЛП особое значение имеет каноническая форма задачи (3.3). Перед решением ЗЛП ее необходимо привести к канонической форме. Каноническая форма записи ЗЛП характеризуется следующими условиями:
1.Целевая функция подлежит минимизации.
2.Все переменные должны быть неотрицательны.
3.Правые части всех ограничений задачи должны быть неотрицательны.
4.Все ограничения задачи должны быть записаны в виде равенств.
При приведении ЗЛП к канонической форме использу-
ются следующие основные приемы:
1.Для перехода от задачи максимизации к задаче минимизации целевую функцию необходимо умножить на (–1).
2.Переменные, на которые не наложено ограничение неотрицательности, представляются в виде разности двух неотрицательных переменных
xj = uj - wj , где uj , wj 0.
Такая подстановка делается во всех ограничениях, где есть xj, а также в выражении для целевой функции.
3. Переход к ограничениям с неотрицательными правыми частями осуществляется умножением левой и правой
23
частей ограничений с отрицательными правыми частями на (–1). При этом знаки соответствующих неравенств меняются на противоположные.
4. Переход от ограничений-неравенств к ограничениямравенствам осуществляется путем введения дополнительных неотрицательных переменных. При этом, если знак неравенства , дополнительная переменная прибавляется к левой части ограничения, а если , то вычитается. Таким образом, ограничение-неравенство
ai1x1 + ai2x2 +…+ ainxn bi
преобразуется в ограничение-равенство
ai1x1 + ai2x2 +…+ ainxn + xn+1 = bi (xn+1 0),
а ограничение-неравенство
ai1x1 + ai2x2 +…+ ainxn bi ,
в ограничение-равенство
ai1x1 + ai2x2 +…+ ainxn - xn+1 = bi (xn+1 0).
В каждое неравенство вводится своя дополнительная переменная. Число вводимых дополнительных неотрицательных переменных равно числу преобразуемых неравенств.
ЗЛП в векторной форме:
n
F cjxj min;
j 1
n
Ajxj B
j 1
xj 0, j 1,n,
где A1,…,An – m-мерные вектор-столбцы, составленные из коэффициентов при переменных в системе ограничений:
24
  | 
	a  | 
	11  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	a  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1n  | 
	
  | 
	
  | 
	
  | 
|
A  | 
	a21  | 
	A  | 
	n  | 
	
  | 
	a2n  | 
	,  | 
	
  | 
|||||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	am1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	amn  | 
	
  | 
	
  | 
|||
B – вектор-столбец свободных членов системы  | 
	ог-  | 
|||||||||||||
раничений:  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	b  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	B  | 
	b2  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	.  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	bm  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
ЗЛП в матричной форме:
CTX min
AX B ,
X 0
где X – вектор-столбец варьируемых параметров оптимизационной модели:
  | 
	x  | 
	
  | 
	
  | 
|
  | 
	
  | 
	1  | 
	
  | 
	
  | 
X  | 
	x2  | 
	
  | 
	,  | 
|
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	xn  | 
	
  | 
	
  | 
|
C – вектор-столбец коэффициентов при переменных в целевой функции:
25
  | 
	c  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
C  | 
	c2  | 
	
  | 
	,  | 
	CT (c ,...,c  | 
	n  | 
	),  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	cn  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
A – матрица, составленная из коэффициентов при переменных в системе ограничений:
a11  | 
	...  | 
	a1n  | 
	
  | 
  | 
	...  | 
	...  | 
	
  | 
A ...  | 
	
  | 
||
  | 
	...  | 
	
  | 
	
  | 
am1  | 
	amn  | 
||
3.2. Решение задач линейной оптимизации симплекс-методом
Рассмотрим ЗЛП в канонической форме:
n
F cjxj min
j 1
n
aijxj bi, i 1,m
j 1  | 
	
  | 
xj 0,  | 
	j 1,n  | 
Вектор X = (x1,…, xn), удовлетворяющий системе ограничений ЗЛП, называется допустимым решением или пла-
ном.
План x* (x1*, ,x*n) , при котором целевая функция принимает оптимальное значение, называется оптимальным.
Перепишем ЗЛП в векторной форме:
26
n
F cjxj min,
j 1
n
Ajxj B,
j 1  | 
	
  | 
xj 0,  | 
	j 1,n,  | 
где A1,…,An – m-мерные вектор-столбцы, составленные из коэффициентов при переменных в системе ограничений;
  | 
	a  | 
	11  | 
	
  | 
	
  | 
	
  | 
	
  | 
	a  | 
	1n  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
A  | 
	a21  | 
	A  | 
	n  | 
	
  | 
	a2n  | 
	,  | 
||||
1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	am1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	amn  | 
	
  | 
|||
В – вектор-столбец свободных членов системы ограничений:
  | 
	
  | 
	b  | 
	
  | 
  | 
	
  | 
	1  | 
	
  | 
B  | 
	b2  | 
	
  | 
|
  | 
	
  | 
	.  | 
|
  | 
	
  | 
	
  | 
|
  | 
	
  | 
||
  | 
	
  | 
	
  | 
	
  | 
  | 
	bm  | 
||
План X = (x1,…, xn) называется опорным планом ЗЛП,
n
если система векторов Аj, входящих в разложение Ajxj B
j 1
с положительными коэффициентами xj , линейно независима. Так как векторы Аj являются m-мерными, то число положительных компонент опорного плана не может быть больше m.
Симплексный метод решения ЗЛП основан на переходе от одного опорного плана к другому, при котором значение целевой функции убывает. Указанный переход возможен, ес-
27
ли известен какой-нибудь исходный опорный план. Такой план можно легко указать, если ЗЛП имеет следующий вид:
F c1x1 c2x2 cnxn min
x1 a1m 1xm 1 a1nxn b1 x2 a2m 1xm 1 a2nxn b2
xm amm 1xm 1 amnxn bm
xj 0, j 1,n
Векторная форма данной задачи имеет вид:
n
F cjxj min j 1
A1x1 A2x2 Am 1xm 1 Anxn B xj 0, j 1,n
где
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	a  | 
	1m 1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	a  | 
	1n  | 
	
  | 
|||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||
A 0  | 
	, A  | 
	2  | 
	
  | 
	1  | 
	, A  | 
	m  | 
	
  | 
	0  | 
	, A  | 
	m 1  | 
	
  | 
	a2m 1  | 
	, A  | 
	n  | 
	
  | 
	a2n  | 
|||||||||||
1  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
||||
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|||||
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	0  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	amm 1  | 
	
  | 
	
  | 
	
  | 
	
  | 
	amn  | 
||||||
Переменные, которые входят только в одно уравнение системы ограничений с коэффициентом 1, называют базисными переменными (в рассматриваемом примере это переменные x1… xm). Остальные переменные называются свободными. Тогда приравнивая базисные переменные соответствующим правым частям ограничений, а свободные переменные нулю, получим опорный план X = (b1, b2,…, bm,0 ,…,0), опреде-
28
ляемый системой единичных векторов, А1,…, Аn, которые образуют базис n-мерного пространства.
Для удобства расчетов в симплексном методе все исходные данные задачи заносят в симплекс-таблицу:
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	Таблица 3.1  | 
|
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
xБ  | 
	cБ  | 
	B  | 
	c1  | 
	…  | 
	cn  | 
|
x1  | 
	…  | 
	xn  | 
	
  | 
|||
xБ1  | 
	cБ1  | 
	b1  | 
	a11  | 
	…  | 
	a1n  | 
	
  | 
…  | 
	…  | 
	…  | 
	…  | 
	…  | 
	…  | 
	
  | 
xБm  | 
	cБm  | 
	bm  | 
	am1  | 
	…  | 
	amn  | 
	
  | 
F  | 
	
  | 
	
  | 
	1  | 
	…  | 
	n  | 
	
  | 
  | 
	
  | 
	
  | 
	
  | 
	
  | 
	
  | 
|
В верхней строке таблицы записываются коэффициенты при всех переменных в целевой функции. В первом столбце таблицы записываются базисные переменные в той последовательности, в которой они входят в систему ограничений, во втором – коэффициенты целевой функции при базисных переменных, в третьем – правые части всех ограничений, в последующих столбцах – коэффициенты при соответствующих переменных в системе ограничений. В нижней строке таблицы записываются оценки по каждой переменной, опре-
m
деляемые следующим образом: j cБiaij cj . Под столб-
i 1
цом правых частей обычно записывается текущее значение целевой функции.
На каждой итерации симплекс-метода осуществляется вывод из базиса какой-либо переменной и включение в него другой переменной с соответствующим пересчетом элементов таблицы. Перед решением задачи ее необходимо привести к канонической форме.
Основные шаги симплекс - метода:
29
