При этом считается, что
* |
= |
1, |
если |
/ + |
1 = k, |
П |
|
|
|
(5.77) |
г= І+ 1 |
|
О, |
если |
/ + |
\ > k . |
В ходе расчетов удобно иметь текущее значение вектора %t = {Xjt}. Пересчет его компонент от шага к шагу на первом цикле (/^ т ) нужно производить в соответствии с оператором (это следует из анали за табл. 36):
|
|
|
если |
/ < |
/ , |
|
|
%jt = l |
6(, |
если |
/ = |
/, |
(5.78) |
|
I |
0 , |
если |
/>■/. |
|
При этом |
все %}1 —0, |
кроме |
= |
б)1’ = 1. В последующих |
циклах (Т) на |
множитель Х(Р = Xt |
умножаются все коэффициенты |
üß/r_1>, так как |
все ограничения уже вошли в /-свертку, |
кроме того, |
к полученному множителю для k-ro ограничения, с которым комбини
руется /-свертка, еще добавляется величина б*Г) (см. столбцы m + 1, т + 2). В столбце / = 2m приведена формула для множителей Х}г) (второй цикл). На основании этой формулы можно по аналогии запи сать рекуррентное соотношение для линейных множителей любых двух смежных циклов:
Формула (5.79) достаточно обща и включает в себя выражение (5.76), если положить, что SS/0> = 0 (/ = \,...,т). Такая общность дос тигнута за счет введения 0-свертки. Удобно пользоваться рекуррент ным соотношением, которое теперь можно получить на основе анализа табл. 36:
у ( Г ) |
если |
/=/={& = t — (T— 1 )m), |
&jt-i Л* (/), |
\%п-і М Г > + в І г \ |
|
(5.80) |
если |
j —k. |
Оператор (5.80) также обладает необходимой общностью и вклю чает в себя первый цикл [см. оператор (5.78)1, однако при этом нужно помнить, что
Xj0= 5?/0) = 0 и б(1І) = 1, / = 1,... ,m. |
(5.81) |
Таким образом, в ходе оптимизации по методу СО целевая функ ция стремится к своему экстремальному значению и одновременно уточняются компоненты вектора решения.
Остается наГти формальный признак, который говорил бы о том, что /-свертку усилить больше нельзя, или, по крайней мере, трудно (ГОФ практически уже совмещена с ГЦФ). Таким признаком может быть степень несовпадения коэффициентов а\1) /-свертки с соответству-
ющими коэффициентами с* целевой функции при невырожденных пе
ременных (і £ / н), т. |
е. степень выполнения |
условий |
оптимальности |
(5.57). |
процесс можно тогда, |
когда |
оценка |
погрешности, |
Прекращать |
обусловливаемая |
разбросом коэффициентов |
а\() |
при невырожденных |
(базисных) переменных, не будет превышать |
допустимой |
вели |
чины ßH: |
|
|
ш а х а (О _ |
|
|
|
|
|
|
|
L<H_L<n |
m i n а \ б |
|
|
|
|
ß = |
і |
|
І |
|
K ß « , |
t e / H: |
(5.82) |
|
|
|
|
|
|
m a x |
-f m i n a ( ^ |
|
|
|
|
|
|
|
Верхняя — ІвГ) — и нижняя — L„r) — оценки |
определяются |
в конце каждого цикла по формулам: |
|
|
|
|
|
|
|
( Т ) |
сЪ |
|
I ( Т ) |
_ |
Cb |
|
|
|
|
|
L В |
m i n |
’ |
|
— m a x |
а )( t )’ |
|
|
(5.83) |
|
|
‘ е /н |
|
|
‘е/н |
|
|
|
|
Рассмотрим пример, иллюстрирующий метод СО и позволяющий выяснить некоторые детали, которые необходимы для формулировки алгоритма.
Имеем гв-нормированную задачу:
10x1 + |
10x2 + |
10x3+ 1 0 x 4->m ax, |
|
xi~h |
х2~\~ |
|
X |
|
9лг3 + |
Зх4 <[11, |
|
9х4+ |
+ |
2х3+ |
Зх4< 1 1 , |
(5.84) |
|
9лг2+ 2х3+ 7х4< 1 1 , |
|
Хі > 0, |
і = 1, ..., 4. |
|
Согласно (5.44) наиболее сильным |
является |
ограничение j — 1. |
Начиная процесс решения, на первом шаге 0-свертку сложим с огра
ничением / |
= 1 |
при Хг = |
0 и получим |
^-свертку, |
совпадающую с |
ограничением / |
= 1. |
|
|
|
|
|
|
Оценка |
решения при |
этом |
равна: |
|
|
|
|
|
L(1) |
c b |
c b |
10-11 |
ПО. |
(5.85) |
|
|
70) |
7U) |
|
1 |
|
|
|
|
|
|
Переменные, которые на данном шаге определяют оценку решения, будем называть ведущими (хх и х2). Рассматривая коэффициенты а}“’ в столбцах ведущих переменных [см. (5.84)], можно видеть, что любая линейная комбинация с любым из двух оставшихся ограничений не способна увеличить одновременно оба коэффициента а\1) и а^1’ при ведущих переменных. Следовательно, на каждом из последующих шагов будем получать Xt = 1 и оценка решения больше не может быть улучшена. Однако если одну из ведущих переменных «заморозить» на
* с і = с = const, т а к к а к з а д а ч а г в - н о р м и р о в а н а .
очередном шаге [т. е. не включать в процедуру, соответствующую (5.64)], то уже на следующем шаге достигается ожидаемый эффект
иоценка улучшается.
Втабл. 37 записаны значения всех параметров, получаемые в хо де итерационного процесса по методу СО с «замораживанием» перемен ной. «Замораживаемые» переменные в таблице взяты в круглые скоб
ки, а ведущие переменные выделены жирным шрифтом. В гра фе 5 записаны вычисленные сбгласно (5.80) компоненты вектора линей ных множителей
В графах 6 и 7 приводятся оценки оптимального значения целевой функции, оценки точности текущего решения и точное значение по грешности ß„ (в %).
В последних строках записано полученное и точное решение.
От вектора {X\D)} легко перейти к вектору {t/j} двойственной задачи ЛП, так как они связаны соотношением (5.74), а нормализующий коэф
фициент і] равен 30 |
: 11 |
= 2,724. Согласно (5.74) имеем: |
|
|
|
= |
{0,665; 1,030; |
1,030}т . |
|
Осуществляя |
процесс (5.64), |
нужно |
найти |
оптимальное значе |
ние |
на интервале [0-f-l]. |
Это |
можно |
сделать |
методом дихотомии |
или с помощью чисел |
Фибоначчи, однако полезно иметь в виду еще |
один |
метод, удобный |
для |
расчетов |
без |
ЭВМ — графоаналити |
ческий*. |
|
|
|
|
|
|
|
Рассмотрим задачу (5.84), предварительно объединив два послед
них ограничения в одно с коэффициентом X' = |
0,5, |
получим: |
4 , 5 x j ~f- 4 ,5 ^ 2 |
- j - |
1 1 . |
(5.86) |
Итак, имеем задачу с двумя ограничениями, которая методом СО решается за один шаг. Запишем векторы коэффициентов ограничений:
(5.87)
{<$’} = {4,5; { 4,5; 2,0; j 5,0}.
Далее на осях графика, приведенного на рис. 18, откладываются и соединяются значения соответствующих компонент векторов (5.87). Полученные линии являются уравнениями (5.61) для всех значений индексов і. Процесс определения оптимального значения линейного множителя Xt (5.64) сводится к определению максимального значения ординаты в заштрихованной области. Этому максимуму соответствует точка В, Она определяет значение множителя Xt и ведущие перемен
ные, которые соответствуют номерам коэффициентов a\t} для пересе кающихся в точке В линий (г = 1, 2, 3), при этом
Xt = 0,238, |
=a</> =a<0 = шах |
min а[Д (Я,) = 3,67. |
|
О |
i I i n |
* По существу, это модификация графического метода решения игр 2 X п
(см. [54], стр. 261).
Ш
Чтобы свести роль графика только к определению ведущих перемен ных, для величины Kt нужно получить формулу. Приравняем значения
двух ведущих переменных. Воспользовавшись формулой (5.61), после несложных преобразований получим:
К = -------(f-D1 V |
n |
' |
= --------- ! ö— = 0-238. |
(5.88) |
а) ‘' — ау |
|
1- |
|
1- |
|
|
|
, ( |
0 ) |
|
4 ,5 —2,0 |
|
4 r
Формулу легко запомнить, если сравнить ее знаменатель с выде ленной частью выражения (5.87).
Коэффициенты (-свертки получаются по формуле (5.61), например:
1 |
=(1— 4,5)0,238 + 4,5 — 3,68, |
при этом L = ^ |
r |
= ІІАІ°==зо. |
|
ѵ |
' |
> - |
н |
a (d) |
Зі68 |
|
Так получено точное |
решение, записанное в |
последней строке |
табл. |
37. |
|
|
|
|
|
|
|
Графоаналитический метод может быть применен и при «замора |
живании» |
ведущей переменной. |
В этом случае линия на графике, со |
ответствующая «замороженной» переменной, просто не берется во вни мание после того, как решится вопрос (с помощью того же графика), какую из двух ведущих переменных «заморозить».
А теперь сформулируем алгоритм.
Алгоритм 5.1а.
Г. Произвести гв-нормировку задачи согласно (5.17).
2°. Записать начальные значения текущих |
величин: |
« } 0)= 0 , |
/ = |
1, |
.. . , |
т, |
|
|
|
|
(5-89) |
а1°) = 0, |
і = |
1, |
.. • , |
п. |
3°. |
Присвоить индекс / |
= 1 наиболее сильному ограничению (см. (5.44)). |
4°. |
Согласно |
(5.64), определить линейный множитель |
для t - го шага |
процесса |
(Ях = 0), |
оставляя |
«замороженной» ту из ведущих |
переменных, ко |
эффициент а^Р при которой не может быть усилен присоединяемым к (-свертке k-м ограничением.
5°. Пересчитать текущие значения величин а Р , SSjt по формулам (5.61)
и (5.80).
6°. Проверить условие — = |
— |
(конец цикла): |
|
|
т |
L |
1-е, см. (5.60)] |
ограничение и перейти |
|
нет — выбрать очередное [k + |
|
к п. 4° |
(( заменяем на (+ 1); |
|
7°. |
да — перейти |
к п. 7°. |
|
|
формулам (5.82), (5.83) |
Вычислить оценку погрешности решения по |
и проверить условие ß < ßK: |
|
|
|
|
да — перейти |
к п. 8°, |
|
|
|
8°. |
нет — выбрать очередное ограничение и перейти к п. 4°. |
Вычислить значение целевой функции по формуле |
|
и- |
сЬ |
асР= ~ 2 a<id) |
|
■*Ср |
|
|
|
где Н — количество невырожденных |
|
переменных. |
|
9°. Вычислить компоненты вектора решения двойственной задачи |
|
„о _ ™ (d )± P [Ä |
/= 1 ......... .... |
10°. Отпечатать результат (L(Y0), {yj}m), прекратить вычисления.
Чтобы оценить алг. 5.1а с точки зрения возможности решения за дач больших размерностей, будем иметь в виду, что это определяется одним из двух факторов: требуемым расходом объема ОЗУ под програм му и хранение информации или требуемым объемом вычислений. Рас смотрим каждый из факторов.
Поскольку алг. 5.1а достаточно прост, пренебрежем расходом па мяти под программу и будем считать, что весь ее объем Q используется для хранения исходной информации. Максимальная размерность за дачи будет обеспечена при таком размещении исходной информации в оперативной (ОЗУ) и внешней памяти ЭВМ, при котором не потре буется многократно обращаться к ней, но в то же время основной объем информации будет размещен именно там.
Для проведения расчетов на каждом шаге процесса в ОЗУ необ ходимо иметь 2п ячеек для двух векторов ((-свертки и k-e ограничение)
и т ячеек для текущего вектора |
откуда следует, что мак |
симальное число переменных равно |
|
nmax = °M Q —т)- |
(5-92) |
Такая размерность близка к предельной теоретически возмож ной для данной ЭЦВМ*. Если не вычислять текущий вектор {£ц)т> а выдавать на печать компоненты вектора {ht}d, то лтах = 0,5Q, а раз-
* В качестве предельной теоретически возможной размерности для дан ной ЭЦВМ рассматривается величина пцр = Q.
Мерность по т будет практически ограничена только общим временем решения, т. е. средним временем одного цикла Т0.
Время Т0 будет складываться из машинного времени за цикл (Тм) и времени поиска и m-кратного считывания информации с барабана
(T'), т. е. |
\ |
|
|
= Ты+ Т' = А Б + гиm [с], |
(5.93) |
\
где А — число элементарных операций при однократном выполнении процедуры (5.64); Б — среднее ожидаемое количество раз выполнения
процедуры (5.64) за цикл (ожидаемое число ограничений, способное усиливать /-свертку); R — быстродействие ЭВМ (опер/сек)] тя — полное время одного обращения к внешней памяти; m X п — размеры
задачи.
Число элементарных операций за шаг, исходя из (5.64), можно получить по формуле
где N — число элементарных операций при вычислении по формуле (5.61); / (у)* — количество проб величины А,, требуемое для обеспечения заданной точности определения ее оптимального значения. В худшем случае / (у) = 1/у (см. рис. 18), однако, учитывая унимодальность ломаной АВС, выгодно применить алгоритм половинного деления (ди хотомии), что даст
f (ѵ)= 2 logjj - i- |
= 2 j log2 у |. |
(5.95) |
У |
|
|
Ожидаемое число ограничений (Б), способных усиливать /-сверт
ку, определится на основании вероятностного подхода, подробно из ложенного в приложении III. Для первого цикла имеем:
Б = тРх= m ^ 1 — ^1----- г”) 2) Ä |
0,75 /я, |
(5.96) |
где Рі — вероятность возможности усиления |
произвольно |
взятым |
ограничением хотя бы одного из двух ведущих коэффициентов а\1) /-свертки.
Для последующих циклов величина Б уменьшается, так что к кон цу процесса /-свертку усилить практически невозможно (Б 0),
поэтому без существенной погрешности можно принять
С учетом полученных соотношений формула (5.93) примет оконча тельный вид:
Г0= ^ ? |1 о §2у |+ т ит . |
(5.98) |
К
Шаг дискретности (см. рис. 18).
Рассмотрим числовой пример, который позволит оценить порядок времени решения крупноразмерных задач ЛП с помощью алг. 5.1а. Пусть
<2 = |
3-104, |
N = |
3 (для (5.61) |
п = |
ІО4, |
у = 0,001, |
т = 103, |
ти = |
(5.99) |
0,5с, |
R =10® 1/сек. |
|
|
Общее |
ожидаемое |
время |
одного |
цикла |
согласно |
(5.98) |
составит |
величину: |
|
|
|
|
|
|
Т0 = |
3'-1°-3; 104 log2 1000 + 0 ,5 -103 » 3 0 0 + 500 = 800с (13,3 |
мин), |
причем |
большая |
часть |
времени |
(63%) |
идет на |
транспортировку |
информации. Однако сценка времени одного цикла еще не дает достаточно полного представления об общем времени решения задачи — это будет определяться сходимостью процесса оптимизации по алг. 5.1а.
В приложении IV показано существование эквивалентной формы задачи ЛП, а следовательно, и принципиальная возможность решения задачи ЛП иными методами. Доказано, что условия (5.57), (5.58) — условия оптимальности. Но также показано на примере (и этого дос таточно), что в общем случае процесс (5.64) может не привести к выпол нению условий оптимальности, о, значит, сходимость не гарантирует ся.* Как одна из мер ее улучшения в алг. 5.1а применяется «заморажи вание» ведущей переменной. Но достаточно ли этого?
Несмотря на отмеченный недостаток, алг. 5.1а уже теперь может быть полезен при решении крупноразмерных задач, так как после од ного-двух циклов решения размеры исходной задачи могут быть замет но уменьшены за счет явного и неявного доминирования. Смысл не явного доминирования понятен из рис. 17. (Ограничение III может быть удалено из системы (5.43), и это не повлияет на решение, потому что ограничение III никакого отношения к точке С не имеет). После одно го-двух циклов в задаче следует оставить ограничения, вошедшие в
af-свертку с ненулевыми коэффициентами Ä/ü>, и те из переменных, ко торые хотя бы один раз были в качестве ведущих:
/ и= и |
/в°, |
[(5.100) |
t= 1 |
|
|
где /в °—множество (пара) ведущих |
на t-м шаге процесса переменных. |
После решения должен быть обеспечен контроль (попытка уточ |
нить решение за счет отсеченных ограничений и т.д.). |
|
Однако следует указать обещающие, на наш взгляд, |
направления |
поисков приемов, улучшающих сходимость и сокращающих объем рас
* Сходимость ухудшится, если a j i > 0 не для всех і, /.
четов. Эти направления можно выяснить, анализируя алгоритм в его динамике.
Из рис. 18 видно, что ведущие переменные определяются точкой пересечения двух отрезков, поэтому и число ведущих переменных на каждой шаге процесса в общем случае также равно двум. Попарное уравнивание на каждом шаге процесса только двух «ведущих» коэф
фициентов аі( \ в то время как при оптимальном решении должны быть
равны коэффициенты a\d) для всего подмножества / н [см. (5.57)], может обеспечить достижение такого полного уравнивания только при беско нечно-шаговом (d->oo) процессе. На практике количество шагов будет определяться допустимой точностью решения задачи (ßH) и порядком
формирования £-свертки.
|
|
|
|
|
|
Порядок формирования свертки в |
алг. 5.1а является наиболее |
простым. Единственным мероприятием, |
которое |
было предпринято с |
целью сокращения объема вычислений, |
является |
присвоение |
индекса |
j = 1 наиболее сильному ограничению. |
Это исключает |
возможность |
получения на некотором шаге процесса (і > |
1) линейного |
множителя |
kt, равного нулю, а следовательно, и исключает возможность |
ликви |
дации проведенных до этого шага расчетов. |
|
|
|
|
Но, по-видимому, более существенного выигрыша следует ожидать |
за счет улучшения способов формирования |
t-свертки. Можно указать, |
по меньшей мере, два целесообразных |
направления поиска способов |
повышения сходимости алгоритма:
увеличение числа ограничений (Ат), присоединяемых на каждом шаге процесса;
присоединение к ^-свертке других сверток, предварительно сфор мированных из подгрупп исходной системы ограничений.
Иллюстрацией второго направления может служить прием, ис пользованный при решении рассмотренного примера (5.86).
Первое направление возникает как следствие интуитивного стрем
ления увеличить одновременно коэффициенты аР при обеих ведущих переменных, подключая сразу два (А т = 2) ограничения [второе и третье — применительно к примеру (5.84)]. Количество шагов в цик ле уменьшается при этом в А т раз, однако объем вычислений для вы полнения процедуры, аналогичной (5.64), возрастает. С увеличением А т улучшится сходимость за цикл, тем не менее процесс останется бесконечношаговым, а количество ведущих переменных (пв) на каждом шаге процесса увеличится. В общем случае количество ведущих переменных на каждом шаге процесса равно числу ограничений, участвующих в линейной комбинации, включая и ^-свертку:
Специфичным является случай, когда к первому ограничению при соединяются все остальные (Ат = т — 1). Только в этом случае про цесс усиления свертки будет конечным (одношаговым), так как общее количество ведущих переменных всегда будет равно числу базисных и условия (5.57), (5.58) могут быть выполнены за один цикл.