книги из ГПНТБ / Большие системы и управление
..pdf80
Излагаемый ниже алгоритм поиска квазиоптимальных решений отличается наличием соображений» подтверждающих целесообраз ность выполняемых операций* Кроме того» данный алгоритм допу скает предельно простую реализацию для вычислений на ЦВМ и требует минимума операций*
Рассматриваемой задаче может быть дана следующая геометри ческая интерпретация*
Своими разложениями по координатным осям даны п векторов:
<*» = ап Ч + atzLz + •• • + <*,„ |
, |
|
— |
_ |
__ |
5г= °21 1)г+ ^22 ^2*^"* *• + 0,2Л6Л7
1!
° п , Ч + |
1 г + ’ + ^п п Ln • |
Пользуясь координатами данных векторов» требуется построить вектор Ъ{б7, 62 , . . . , 6^, проекция которого на ось, совпадаю щую с вектором с{/,...,/}» была бы наибольшей, т.е.
b С = Ьг+ Ьг+• |
• |
• |
+ Ьп = max |
|
При этом |
|
|
|
|
Ъ] ^ |
( о и 1 Q21 |
’ |
* |
• ' ^ Qт ) ’ |
^2 ^ |
( ° п ’ ^ 2 2 7**’ 7 апг) 1 |
|||
^ |
1п 7 Q 2 п ч • • • 9 Q п п ) 9 |
|||
и выбор должен быть произведен так, |
чтобы все выбранные коор |
|||
динаты принадлежали разным векторам* |
||||
Исходя из этой интерпретации, |
|
можно производить выбор про- |
екций |
b путем сравнения проекций векторов а7,а 2,...,а„на оси, |
||||
совпадающие с проекциями Ъ на плоскости ( Тк , |
I к + 1) |
, т.е. |
|||
на оси, |
совпадающие с векторами |
Ък ~ 1к+ Тк+1. |
Иначе говоря, |
||
представляется возможным производить выбор координат |
Ък и |
||||
путем сравнения суш вида |
|
|
|
||
где |
|
° h i * |
aj.m ’ |
|
|
I Ф /77 , |
U /77 е |
п ) . |
|
|
|
|
|
|
81
На этом и основан предложенный В.И. Чернецким алгоритм на хождения квазиоптималъного плана»
Данный алгоритм в применении к матрице
а п |
а п ' * |
• |
о,п |
a2j |
°22 * * |
■ |
°г П |
А||= |
|
|
|
а п, а Р2 ‘ * * ^пп
заключается в следующем.
П е р в ы й ша г а л г о р и т м а. С левого верхнего угла исходной матрица начинают подсчет и сравнение сумм вида
°11 + й 22 |
и |
а ,2 + azi |
Си + ^33 |
и |
а,ъ + аз< |
аП+ апп |
и |
ат + ° п , • |
Если |
а п + а кк ^ а }к + ак1, |
то матрицу |
А оставляют без |
|||
изменений* Если же ar1 + акк <г q 1k + ° к1 * |
то меняют местами |
|||||
первую и |
к -ю строки матрица* В результате конечного |
числа |
||||
преобразований имеем матрицу |
|
|
|
|
||
|
|
ап |
ап .. ■ а т |
|
||
|
I I |
7 |
О 22 • • • |
а 2„ |
|
|
|
а21 |
|
||||
|
- |
а м’ ' - • |
|
|
|
|
|
|
|
& п п |
|
||
полученную в результате перестановки строк матрицы || А|| |
, и та |
|||||
кую, что |
|
|
|
|
|
|
|
а , , + а г г & 0 1г+ а 27 f |
|
|
|||
|
а ’,г+ а 'зз *= |
aJ3+ а319 |
|
|
а'п + а'пп^ ат + а Pi *
После этого, считая, что в левом верхнем углу матрица ||л,| стоит число о\)9 представляющее компоненту искомого вектора 5 , вычеркиваем первую строку и первый столбец матрица ||Д?|| и рас сматриваем матрицу
82
ч = |
а гг |
а 2з • • |
• |
° 2 п |
°32 |
° з з * • |
• |
а зп |
|
|
а пг |
а пз * |
'' * в п п |
Второй шаг в точности повторяет первый шаг с той разницей, что все действия производятся над матрицей || Аг|| п -1-го по рядка*
Каждый следующий шаг представляет собой точную копию пре дыдущего над матрицей все более низкого порядка*
В результате /? - I шагов у нас определятся п чисел, пред ставляющих квазиоптимальное решение* Анализ показывает, что в наиболее благоприятном случае для отыскания квазиоптимального решения требуется ( п - I) п простых операций (сложения
двух чисел и сравнения двух чисел). Как показывает практика, для отыскания квазиоптимального решения в общем случае требу
ется произвести Сп2 таких операций, |
где 3/2 ^ |
С ^ 20. |
|||||
Проведем краткий анализ алгоритма* Если переставить строки |
|||||||
матрицы ||А || так, чтобы найденные нами |
п чисел разместились по |
||||||
главной диагонали, в том порядке, |
в котором они были найдены, |
||||||
то получим матрицу |
|
* |
* |
|
|
* |
|
|
|
|
■■• |
|
|||
|
а 11 |
а п |
а,„ |
|
|||
|
Q * |
Q21’ • |
|
|
|||
|
и 21 |
|
|
||||
|
|
* |
|
* |
|
* |
|
|
|
Ощ |
а п2 • ’ * |
^ПП |
|
||
Для этой матрицы, |
по способу ее получения, |
одновременно |
|||||
выполняются следующие |
/ 7 - 1 |
групп неравенств: |
|
||||
а» + а ? 2 |
М- |
+ |
|
М |
|
|
|
а п |
° 21 9 |
|
|
||||
а п + |
а зз |
а,*з + а 31 9 |
|
|
|||
|
|
°1п + |
|
м- |
|
|
|
а и + |
а * п п |
йп! 9 |
|
|
|||
а\г+ ° з з > |
Mr |
+ |
а *зг ’ |
|
|
||
°23 |
|
|
|||||
СГгг+ a U |
а гч- + |
а*г> |
|
|
83
Просуммировав неравенства, |
входящие в каждую грушу, |
поду |
|||||||
чим л - I новых неравенств: |
|
|
|
|
|
|
|||
(n-i)a*„+ £ |
а*кк ^ |
к -г |
|
+ а *,) , |
|
||||
к = г |
|
|
|
|
|
|
|
|
|
(л ~2) Or2 2 + S |
|
21 |
£ |
( ^ 2 /с + ®кг ) 9 |
|
||||
к=3 |
|
к=3 |
|
|
|
|
|
|
|
^ /7-7 л-7 + ®ПП ~ |
^ Л-7 п ^ ^ Л П~1 • |
|
|||||||
Просуммировав все |
л - I неравенств, получим |
|
|||||||
( * - / ; £ |
О ^ Е Е |
а*.- |
d |
. |
|
||||
|
к-1 |
|
к=1 j=7 |
|
|
|
|||
Из этого неравенства следует неравенство |
|
||||||||
|
п |
|
п |
|
п |
|
|
|
|
п £ а*кк ^ £ £ <г£ • |
|
|
|||||||
|
К=1 |
|
/с=7 |
^= 7 |
|
|
|
|
|
Деля обе части его на п г , |
получим |
|
|
|
|||||
7 |
п |
|
л |
|
п |
п |
|
|
|
' |
Г— * |
/72 |
k=7 |
J = 7 *<* |
|
||||
лЕал* |
|
||||||||
|
|
|
+Гг |
£ |
£ |
|
|
|
|
Итак, в результате применения алгоритма матрица ||д || |
была |
перестроена таким образом, что средняя величина диагонального члена полученной матрицы ||Д*|| больше или равна средней величи не общего члена матрицы*
В связи с тем, что каждый следующий шаг в точности повто ряет предыдущий с той только разницей, что действия произво дятся над матрицей меньшего порядка, высказанное утверждение справедливо и для любой матрицы
|
|
G p + i р + 1 |
Q p + i р + г |
Q p + i п |
А * |
II |
= |
|
|
п п - р у |
|
|
|
|
|
|
а п р + г |
а п р * г |
& п п |
порядка п - р 9 полученной из матрицы || А*\\ вычеркиванием первых р строк и столбцов.
84
Таким образом, средняя величина диагонального члена матри цы || А „- Р|| больше или равна средней величине общего члена этой
матрица* Аналитически это выражается так:
/ |
п |
а кк - |
Л |
|
|
е |
е . |
* |
— |
Е |
|
|
ki ' |
||||
Л-р |
к=р-1 |
(П-Р) |
k:p*1 j-p+1 |
|||||
Приведен пример применения алгоритма* |
|
|||||||
Пример I . Рассмотрим матрицу |
|
|
|
|||||
|
|
3 |
4 |
2 |
2 |
1 |
|
|
|
|
4 |
5 |
3 |
1 |
3 |
|
|
|
|
4 |
3 I |
I |
I . |
|
|
|
|
|
3 |
1 2 |
2 |
2 |
|
|
|
|
|
I |
3 |
I |
2 |
I |
|
|
Применим к ней алгоритм* |
|
|
|
|
|
|
||
П е р в ы й |
|
ша г . |
Так как |
|
|
|
||
|
|
3 |
+ 5 = 4 + 4, |
|
|
то никаких преобразований в матрице не делаем* Далее
3 + I < 4 + 2.
Поэтому переставляем местами первую и третго строки матрицы:
4 |
3 I |
I |
I |
4 |
5 3 |
1 |
3 |
3 |
4 2 |
2 |
1 . |
3 |
1 2 |
2 |
2 |
I |
3 I |
2 |
I |
Проводим все операции над этой матрицей:
4-1-5 |
> 4 + 3, |
|
4 |
+ 2 |
> 3 + 1 , |
4 |
+ 2 |
> 3 + 1 , |
4 + 1 |
> 1 + 1. |
На этом первый шаг кончился* Считаем, что число 4, стоящее в первом столбце второй строки исходной матрицы, является, компо нентой искомого решения. В соответствии с принятым алгоритмом вычеркиваем первую строку и первый столбец матрицы, полученной в результате первого шага, и рассматриваем матрицу:
85
|
5 |
3 |
1 3 |
|
|
4 |
2 |
2 |
1 |
|
1 |
2 |
2 |
2 * |
|
3 |
1 2 |
1 |
|
В т о р о й шаг* |
Действуя, |
как и прежде, получим нера |
||
венства |
|
|
|
|
5 |
+ 2 = 4 + 3, |
|||
5 |
+ 2 > I + X, |
|||
5 |
+ I « 3 + 3. |
|||
Второй шаг закончен. |
Считаем, |
что число 5, стоящее во вто |
ром столбце второй строки исходной матрица, является второй ком понентой искомого решения.
Т р е т и й шаг . Рассматриваем матрицу
2 |
2 |
1 |
2 |
2 |
2 . |
I |
2 |
I |
Снова, действуя, как и прежде, получим неравенства
2 + 2 = 2 + 2,
2+ I ^ I + I.
Врезультате третьего шага получим, что число 2, стоящее
втретьем столбце первой строки исходной матрица, является третьей компонентой искомого решения.
Ч е т в е р т ы й ша г . Рассматриваем матрицу
2 2
2 I
Для нее имеем
2 + I < 2 + 2 .
Поэтому меняем местами строчки и получаем матрицу
2 I
2 2 ‘
Имеем только одно неравенство
2 + 2 > 2 + 1 .
Таким образом, числа 2, стоящие в четвертом столбце пятой стро ки и в пятом столбце четвертой строки, являются недостающими компонентами искомого решения.
86
Перестроим исходную матрицу таким образом, чтобы найденное решение располагалось по главной диагонали:
2 |
4 |
3 |
1 |
2 |
3 |
5 |
4 |
3 |
1 |
1 |
3 |
4 |
I |
I . |
2 |
1 3 |
2 |
2 |
|
I |
|
3 I |
I |
2 |
Найденное решение
S = 2 + 5 + 4 + 2+ 2 = I 5
является оптимальным.
В результате анализа рассмотренного примера можно сделать следующие выводы:
1.Алгоритм весьма удобен для его реализации на вычисли тельных устройствах, Это обстоятельство является важным досто йнотсвом данного алгоритма, так как все известные алгоритмы решения рассматриваемой задачи встречают те или иные трудности при их машинной реализации. Сами операции достаточно просты: сложение и вычитание двух чисел.
2.Производя перестановку строк не только в случае, если суаиа диагональных элементов меньше суммы "антадиагональных", но и в случае равенства этих сумм, удается получить целый ряд оптимальных и квазиоптимальных решений. Так, для рассмотренно го примера было подучено еще два оптимальных решения, перестро енные матрицы которых имеют вид:
4 |
1 3 |
|
2 |
2 |
5 |
3 |
4 |
3 |
1 |
3 |
1 4 |
|
1 ! . . |
|
1 |
2 3 |
2 |
2 |
|
3 |
I |
I |
I |
2 |
5 = 4 + 3 + 4 + 2 + 2=15 .
4 |
2 |
|
3 |
1 |
2 |
5 |
3 |
I |
4 |
3 |
1 |
3 |
|
4 |
I |
I . |
|
1 |
|
2 3 |
2 |
2 |
|
3 |
|
I |
I |
I |
2 |
S = 4 + 3+ 4+ 2+ 2=15 .
87
Кроме того, было получено три квазиоптимальных решения, перестроенные матрицу которых имеют вид:
4 |
3 |
I |
I |
I |
I |
5 |
3 |
I |
3 |
3 |
I |
2 |
2 |
2 , |
3 |
4 |
2 |
2 |
I |
I |
3 |
I |
2 |
I |
S = 4 + 5 + 2 + 2 + I = 14.
4 |
3 |
I |
I |
I |
I |
3 |
I |
2 |
I |
3 |
4 |
2 |
2 |
I . |
3 |
I |
2 |
2 |
2 |
4 |
5 |
3 |
I |
3 |
S = 4 + 3 + 2 + 2 + 3 = 14.
3 |
I |
2 |
2 |
2 |
4 |
3 |
I |
I |
I |
3 |
4 |
2 |
2 |
I . |
I |
3 |
I |
2 |
I |
4 |
5 |
3 |
I |
3 |
S = з + 3 + 2 + 2 + 3 = 13.
Никаких других решений при применении данного алгоритма
получить не удается. То обстоятельство, что путем применения предложенного алгоритма удается получить целый ряд квазиопти мальных и оптимальных решений задачи, представляется весьма важным для его приложений к решению различных задач, в которых может присутствовать ряд ограничений специфического характера. Это обстоятельство может обеспечить в некоторых пределах до полнительную свободу маневра при решении таких задач.
3. После получения перестроенной матрицы, содержащей по главной диагонали оптимальное решение, в соответствии с идеями построения алгоритма мы можем получить все остальные оптималь ные решения. Поясним сказанное на уже рассмотренном примере.
Перестроенная матрица, содержащая по главной диагонали од но из оптимальных решений, имеет вид:
|
|
88 |
|
|
5 |
4 |
3 |
1 |
3 |
3 |
4 |
I |
I |
I |
1 |
3 |
2 |
2 |
2 . |
3 |
I |
I |
2 |
I |
4 |
3 |
1 2 |
|
2 |
Для нее, естественно, выполняются все неравенства, рассмот рение которых подразумевается предложенным алгоритмом* Рассмот рим нестрогие неравенства (равенства), которые содержит матри ца. Таких равенств только одно:
5 + 2 = 3 + 4.
Если теперь поменяем местами первую и последнюю строки, содержащие рассматриваемые числа, то получим другое оптималь ное решение, матрица которого имеет вцд:
|
4 |
3 |
|
1 2 |
|
2 |
|
3 |
|
4 |
I |
I |
I |
Аг |
1 |
|
3 |
2 |
2 |
2 |
|
3 |
4 |
I |
I |
2 |
I |
|
5 |
|
3 |
1 |
3 |
Эта матрица имеет два не строгих неравенства (равенства): - содержащее те же элементы, что и предыдущая матрица:
4+ 3 = 2 + 5;
-состоящее из элементов третьей и пятой строк
2+ 3 * 2 + 3.
Если мы поменяем местами эти строки, то подучим матрицу, содержащую последнее оптимальное решение:
|
4 |
3 |
1 2 |
|
2 |
|
|
3 |
4I . I |
|
I |
||
Лз |
5 |
4 |
3 |
1 2 . |
||
3 |
I |
I |
2 |
I |
||
|
||||||
|
1 |
3 |
2 |
2 |
2 |
Никаких других оптимальных или квазиоптимальных решений подоб ными перестановками получить невозможно*
Пр и м е ч а н и е I . То обстоятельство, что матрица
А2 , полученная из матрицы А 1 путем перестановки двух строк,
оказывается также удовлетворяющей условиям алгоритма (для |
|
Д2 это сразу устанавливается непосредственной проверкой), |
|
вероятно, является признаком |
того, что решения, стоящие на |
главных диагоналях Aj и Аг , |
являются оптимальными.Тоже самое |
89
относится и к матрице А39 пожученной из матрица Агтакже
перестановкой двух строк.
Высказанное предположение подтверждается, например» экспериментально установленным фактом» что если матрица является квазиоптимальной, то подобным переходом, с по еледущей проверкой для преобразованной матрицы выполне ния условий алгоритма, часто удается получить оптимальное
решение.
4. Два из трех полученных оптимальных решений: £ = 4 + 3 + 4 + 2 + 2 (Аг),
S = 4 + 3 + 4 + 2 +2 (А3)
очень интересны тем, что не содержат независимого элемента - числа 5,Таким образом, независимые элементы не являются обяза тельными компонентами оптимального решения.
5.Предложенный алгоритм может служить хорошим средством для построения опорного решения (плана), из которого можно по лучить оптимальное решение при помощи одного из методов, напри мер венгерского метода, за небольшое число итераций.
6.Как уже отмечалось, число операций, необходимых,для на хождения квазиоптималшого решения, невелико. Оно не превосхо
дит Спг (где 3/2 - С |
20), в то время как другие методы, |
например венгерский, |
требуют выполнения Ct п 3 (где 5< С1с 30) |
операций. В рассмотренном выше примере матрицы 5-го порядка |
пришлось сделать 39 арифметических действий, из которых 26 сло жений двух чисел и 13 сравнений двух чисел ( С =1,56).
При нахождении оптимального решения венгерским методом для данного примера потребовалось бы в 4 - 5 раз больше арифмети ческих действий.
7. В связи с относительно небольшим числом операций, тре буемых для отыскания квазиоптимальнсго решения, предложенный алгоритм может найти применение при нахождении оптимальных ре шений матриц высокого порядка на ЦВМ. Экспериментальная провер ка подтверждает высокую эффективность алгоритма для больших матриц. Так, для матрицы 50-го порядка при помощи данного алго ритма и разумно построенной программы удавалось найти квазноптимальное решение за время, не превосходящее 1 - 2 мин. При этом отличие найденного квазиоптимального решения от оптималь ного не превосходило 2 - 3 $ .
Данное обстоятельство может оказаться существенным аргумен том в пользу предложенного алгоритма в тех задачах, где время нахождения оптимального или квазиоптимального решения является решающим фактором.