
книги из ГПНТБ / Арутюнян А.Г. Применение математических методов и ЭВМ в народном хозяйстве
.pdfГЛОК-СХЕМА АЛГОРИТМА [’ПИГИПЯ IUT!ОМОГAI>>1 ШЙ КАНОНИЧЕСКОЙ ЗАДАЧИ
- ®
1 1 1 - j ■ м - р ~|
з | |
Г| |
4|хГ..,гВ| |
_ д а — --------" ” |
1 нет |
9 С р - о 7 ) |
elEHl |
« М - 1 1 |
© |
H - t a « DCiK I |
|
13 f i= m * I?)
14 |t* l—i[ -
продолжение блок-схемы
продолж ение ё л о к -с х е м ы
4Э|кДг- а Ь«---- ■ ~ т ------ |
~^{Ti"PP) |
& |
S ‘ |
173
п р о д о л ж е н и е б л о к - с х е м ы |
|
|
65)-------------- |
г ---------------- |
($) |
44 ( Н П +1Р )
© |
48 С j= rp ) |
,,9[ Ш З З |
5° | х ,-р х ;,-х .| |
|
51 (Ч = Ш? ) |
53 |
52| И —1| |
55^ nk £-nk |
|
174
продолжение Олон.-1хсщ
375
продолжение Влон-схемь!
176
Такое изображение блок-схемы упрощает ее топологи ческую структуру и избавляет от необходимости проведе ния пересекающихся стрелок. Знак -* в блоках означает операцию засылки. Обозначения „г" и означают счетчики изменения номеров строк и столбцов текущей симплексной таблицы.
В блок-схеме отождествлены понятия „число" и „место (или адрес) хранения числа", однако это не приводит к путанице при использовании блок-схемы. По приведенной блок-схеме легко составить рабочую программу для любой универсальной ЭВМ.
§ 4. Сравнительный анализ алгоритмов
Эффективность применения предложенного алгоритма по сравнению с общим алгоритмом для решения задачи Бг более наглядно чувствуется при решении задач больших размеров, требующих использования современных ЭВМ (так как задачи больших размеров решаются выполнением огромного количества арифметических и логических дейст вий).
При сравнении алгоритмов будем оперировать парамет рами задачи Б (т — количество неравенств, п — количество основных переменных), Очевидно, параметрами задачи Б' будут „ т “ и „/714- пи.
Так как сравнение будет проведено при предположении использования ЭВМ, то здесь вместо термина „место хра
нения" употребляется термин |
„ячейка". Итак, сравниваем |
в первую очередь количество |
необходимых ячеек для хра |
нения элементов текущей симплексной таблицы с допол нительными строками и столбцами. Для наглядности срав ниваемые величины приводятся в соответствии с обоими алгоритмами.
Общий алгоритм |
Рациональный алгоритм |
I. Основная |
симплексная таблица |
(т + 3)Х(/гс + л + 1 ) |
( m + l ) X ( « + t ) + ^ |
|
177 |
12— 644 |
|
II. Пополнительные стооки |
|
||
(/и 4 - я) — для нижних |
гра |
п — для верхних |
границ |
ниц (a j; |
|
№ ); |
|
(т 4 - я) — для верхних |
гра |
я — для номеров |
внебазис- |
ниц (fij); |
|
ных векторов |
(включая |
(m -f-n) — для «-шкалы. |
|
е-шкалу). |
|
'Ш. Дополнительные столбцы
(/я 4 1 ) — столбец |
А к'; |
|
|
(т -f-1) — столбец |
А\\ |
|
(т + 1 ) — столбец |
7 ; |
|
|
(/я -J-1) — столбец |
7; |
|
(т + 1) — столбец |
в; |
|
|
|
|
|
т — исходное значение искусст- |
т -номера базис- |
|||||
венных |
переменных; |
|
пых векторов. |
|||
/п — номера |
базисных |
векторов. |
|
|
||
|
Общее |
количество |
ячеек |
|
||
(т -f-6 ) (т 4- п + 1 ) 4 - 5т. |
( т + 1 ) (т 4 ) + 2 (я + 1 ). |
Сравнение показывает, что для решения задачи Б' общий алгоритм потребует на т2-\-Ът-\-5п ячеек больше, чем рациональный алгоритм. Из этого выражения видно, что на эффективность алгоритма более сильно влияет па раметр т. Так, например, если при увеличении я в два раза указанное выражение увеличивается на Зя, то при
увеличении т в |
два |
раза это |
выражение |
увеличивается |
на величину 3/я2 |
+ 8т . |
Ясно, что многие практические за |
||
дачи, входные данные которых |
помещаются |
в оперативном |
||
запоминающем устройстве при использовании |
приведенного |
алгоритма, в случае использования |
общего алгоритма тре |
|||
буют и внешних накопителей. Но |
ведь общеизвестно, что |
|||
использование |
внешних |
накопителей |
при решении задач |
|
в достаточной |
степени |
увеличивает |
необходимое машин |
ное время. С другой стороны, использование внешних на копителей снижает надежность работы ЭВМ.
На практике могут встречаться задачи, которые в смысле помещаемости текущей симплексной таблицы в па мяти ЭВМ в целом (с использованием всех возможностей внешних накопителей) будут разрешимыми при использова нии рационального алгоритма, а при использовании общего алгоритма будут в принципе неразрешимыми.
Конечные методы решения задач линейного програм мирования предполагают абсолютную точность результата каждой арифметической операции. Однако вследствие огра ниченности разрядной сетки ЭВМ, результаты арифмети ческих операций представляются с определенной точностью. Ясно, что на каждом шагу будут возникать и постепенно накапливаться неизбежные ошибки. Следовательно, с увели чением количества итераций уменьшается точность резуль татов. Эффективность рационального алгоритма в смысле точности объясняется тем, что при решении задачи общим алгоритмом для получения допустимого решения потре буется не меньше т шагов симплексной процедуры (в наи более удачном случае на каждом шагу из базиса исклю чается один искусственный вектор). Очевидно, полученное допустимое решение будет в некоторой степени искажен ным. А при использовании рационального алгоритма полу чается достаточно точное допустимое решение и точная симплексная таблица.
§ 5. Вычислительные аспекты алгоритма
По блок-схеме, приведенной в параграфе 3, составлена программа решения задачи Б на ЭВМ „Раздан-2“ . Програм ма предназначена для решения задачи, симплексная таб лица которой вместе с дополнительными строками и столб цами целиком помещается в оперативном запоминающем устройстве ЭВМ. Размеры задач вида Б, решаемые ука занной программой, определяются следующим образом. Пусть Т — объем свободной части оперативной памяти (т. е. разность общего объема оперативной памяти и объема рабочей программы вместе с программными константами и рабочими ячейками). Для решения задачи указанной программой параметры m a n должны удовлетворять условию
(т + 1 )(л + 4) + 2 ( п + 1 )« :Г .
Отсюда между m a n получаем соотношение
m < |
т — 2 (я-f 1) |
(25. J) |
|
и + 4 |
|||
|
|
179
Из (25.1) видно, что в |
первом приближении (m s=0) |
для п имеем |
|
n * s — |
- 2 . |
Но для того, чтобы имело место хотя бы одно нера венство вида (25.1) (m s* 1) величина п должна удовлет ворять условию
Г — 10
(25.2)
Как указывается ниже, программа решения основной задачи должна иметь специальную структуру. Она должна быть разбита на две части:
а) основная рабочая программа; б) программа организации рабочей части1.
В объеме Т учтен объем организационной части про граммы, однако эта часть используется и для подготовки исходной симплексной таблицы. Поэтому исходные данные не должны прикрыть организационную программу. Следо вательно, должно выполняться условие
( и + 1 ) ( я + 1 ) + H*ZT„
где Т — Тг— объем организационной |
программы. Из этого |
||
неравенства определим верхнюю границу т: |
|||
|
|
7\—2л —1 |
(25.3) |
|
|
Г 1 |
|
|
|
|
|
откуда для п получим ограничение |
|
||
п |
_ |
Г , — 2 |
(25.4) |
|
— Ц------. |
Для составленной программы Г— 1767, 7^=1637 (учтено 2048 ячеек оперативной памяти).
Нетрудно убедиться, что оценки (25.2) и (25.4) явля ются достаточными, поскольку на практике вряд ли встре тится задача, в которой на сотни (больше 400) перемен ных было бы наложено только одно ограничение.
Пользуясь условиями (25Л) и (25.3), приведем не сколько допустимых значений параметра п и соответствую щие верхние пределы для т.
1 Составленная для ЭВМ ,Раздан-2“ программа имеет именно та кую структуру.
180