Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Арутюнян А.Г. Применение математических методов и ЭВМ в народном хозяйстве

.pdf
Скачиваний:
32
Добавлен:
23.10.2023
Размер:
5.54 Mб
Скачать

ГЛОК-СХЕМА АЛГОРИТМА [’ПИГИПЯ 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

Соседние файлы в папке книги из ГПНТБ