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

книги из ГПНТБ / Основы теории алгоритмов учеб. пособие

.pdf
Скачиваний:
9
Добавлен:
19.10.2023
Размер:
6.6 Mб
Скачать

 

 

 

 

 

 

-

70 -

 

 

 

 

 

 

 

4 .

Найти хотя бы одну подматрицу такую,

что

 

 

 

 

Nk Nkh^ O

,

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

L

A

kN

>0»

(5#6)

 

г д е

N к обозначает определитель

порядка

ty '-i

, полученный

 

из

&

 

отбрасыванием

ее

 

к -о й

отроки.

 

 

 

 

 

Так как в нашем случае

оЦ =

и только при h =р

,

то

условие

^

 

 

 

 

 

 

 

 

 

 

 

 

 

 

^ 7

cUfcl Мк1 >

О

 

 

 

 

 

 

 

 

 

К=1

 

 

 

 

 

В

строки р

 

справедливо лишь при наличии в матрице

 

Это обстоятельство позволяет уменьшить перебор матриц

 

при поиске условия несовместимости системы (3 .1 ). В случае

 

системы строгих однородных неравенств

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i-L

Qhi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

условие несовместимости будет

 

 

 

■*

 

 

 

 

 

N k Wk+1 < О ,

( 1 4 К 6 9 - П

 

 

 

 

 

Отсвда

следует,

что

задача определения условий выгодно'

го

применения

И -ей

машины есть

задача

отыскания области

 

А э

с

ее количественной характеристикой

$э . Рассмотрим

некоторые способы нахождения области

А э .

 

 

 

 

Простейшим способом является использование известных

 

при шов

при решении оиотем линейных неравенств.

В зависимости

от

конкретных условий

(число

переменных» число

неравенств)

в

.лучшем случае могут быть найдены верхние и нижние границы по каждой неизвестной % L , при этом решение может быть полу­ чено в виде

 

 

71

-

где О i и h i

-

соответственно верхний и нижний пределы

для переменной

X

I . Очевидно,

что такой метод может быть |

использован лишь при малом количестве переменных и малом чис­ ле неравенств.

При достаточно больших числах переменных и неравенств' иногда бывает удобным использование следующего способа. Каж­ дое из неравенств системы (3.1) разрешается относительно ка­ кой-либо из переменных . Выбор этой переменной зависит ; от типа анализируемой структуры и удобства оценки в конечном

виде. Обозначая

индекс

выбранной переменной через

|

, по­

лучим из системы

(3 .1)

соотношения вида

 

 

 

m

 

 

 

1 У? - ч!

для каждого из неравенств. Такой вид условий представляет некоторые удобства в случае определения убловий существования области А э через соотношения выбранной (определяющей) опе­ рации X) , которая для данной структуры Мк является наиболее характерной. Достоинством метода является возможность его применения в случае, когда число переменных больше числа неравенств. При этом условия существования решения формуляру-^

ются в виде

соотношений переменной Х^‘ и всех остальных пере­

менных

.

Особое значение для выделения области Дэимеют методы линейного программирования. Графические методы обладают тем

достоинством,

что о их помощью можно найти

не только

экстре- г

мальное значение критерия F ( A , M )

, но

и значения

S 9 .

При этом S э

можно выразить в виде

относительного значения,

представляющего собой отношение площади (или объема) выпуклой области с учетом конкретных ограничений (3.1) к значению пло­

щади

(объема)

области А э , когда ограничения (3 .1) не умень­

шают

облаоти,

заданной уоловием

 

 

- 72

 

 

2

# 1 - 1 .

 

 

В случае даух переменных обяаоть Аэ

представляется в

виде

отрезка прямой

X t+ Х а ,- 1 . При этом

ограничении (3.1)

есть

полуплоскости,

образованные прямыми, проходящими через

начало координат. Условия наличия отрезка, принадлежащего вдем

полуплоскостям одновременно,

выражаются соотношением (3 .6 ),

Относительная величина

5 э

вычисляется как отношение та­

кого отрезка к длине отрезка

прямой

<X)i + X z — 1

при

О ~ X т , Х г . ^ 1

 

,

 

 

Если число переменных равно трем, то максимально воз­

можная величина S э

есть

шющадь равнобедренного треуголь­

ника,

образованного перечислением плоскости 0С*.+ X z + Хз ~ А

с координатными плоскостями. 33 случае наличия ограничений в виде системы (3,1) величина 5 э есть площадь многоугольникаг образованного пересечением плоскости 3Ci + X z + ЭС-з =* 1

с многогранным углом, который является результатом пересече­ ния полуплоскостей, соответствующих неравенствам системы (3 .1 ), Случай трех переменных.можно представить.как случай двух пере­ менных, если исключить одну из них из систем: (3.1) с помощью, соотношения (3 .5 ). При этом область А э представится в виде плоского треугольника.

ВП -мерном случае исключение одной из переменных

приводит

" к (

Wl- I)-мерному пространству, в котором область

А э

представляется в виде ограниченного многомерного кону­

са . При этом определение количественной характеристики S э

конуса оказывается трудной задачей. Таким образом, в случае

 

использование графических методов не представляется

возможным. Для решения задачи нахождения экстремальных значе­ ний критерия F в области А э следует воспользоваться много­ шаговыми алгоритмами линейного программирования. Наиболее гибким и универсальным методом, щшменяемыгл для решения задач линей- ' ного программирования, является хорошо разработанный в насто­ ящее время симплексный метод.

-73 -

3 ,2 , Алгоритмы, состоящие из операций

сложения и умножения

Анализ вычислительных алгоритмов ■, встречающихся в систе­ мах управления с У8С, показывает, что большинство из них могут быть отнесены к одному из следующих классов:

1. Алгоритмы дискретно-разностной формы.

2. Алгоритмы в виде рядов и полиномов.

3. Логические алгоритмы.

Алгоритмы первого и второго класса состоят в основном из операций сложения и умножения. Наиболее сложными из этих (в смысле машинной реализации) являются алгоритмы, представлен­ ные в дискретно-разностной форме

= £ а ^ [ м - 1 ] - £ & < и Г > и ]

И>

i - i

а

о переменными коэффициентами Ос

,

Ь L и переменными входными

величинами X f H - i J » Поскольку эти

алгоритмы встречаются в

системах управления с УВС чаще других и требуют при управлении большой.частоты решений, остановимся более подробно на миними­ зации их о точки зрения времени реализации УВС.

В работе В.М.Глушкова [4о] показано, что любую опера­ цию можно записать в виде формальной микропрограммы. Больше то­ го, любая микропрограмма может быть представлена в регулярной форме и осуществляет алгоритмы для преобразования првизвольных микропрограмм, записанных в обычном виде, в регулярную форму.

Например, одна из возможных микропрограмм, представля­

ющая собой оператор умножения, может быть записана в

виде

 

 

 

Q -0 * { S a K ‘ J Q lQ . ,

 

о-в)

гд е {

}

-

<L -

итерация;

 

 

 

G

L

-

микрооперация установки

i - го регистра в

нуль;

р : 1

-

вычитание единицы из содержимого i -го

регистра;

З ц

-

прибавление содержимого

L-г о регистра

к

содер ­

 

 

 

жимому

^ -г о регистра.

 

 

 

- 74 -

Используя соотношения в соответствующей паре микропро­ граммных алгебр, можно преобразовать микропрограмму (3.8) к гораздо более экономичному виду.

Распространим подобную запись на программы, учитывая,' что операторы теперь будут соотоять из операций.

Рассмотрим алгоритм, состоящий только из операций сло­ жения и умножения, причем будем предполагать, что, кроме пер­ вой операции умножения, каждая следующая порождает одну.опе­

рацию сложения

(как, например, в дискретно-разностных алго­

ритмах), т .е .

только

операции умножения являются порождающи­

ми [5 l]

.

 

'

В

этом случае

одна из форм записи программы реализации

такого алгоритма может быть следующей:

 

 

 

 

с =•

1т К ,

 

 

 

где

fit

-

операция вызова числа из

t -ой ячейки;

 

 

-

операция вызова числа из

j -ой ячейки;

+

 

С

-

операция умножения;

 

 

 

 

Oft -

операция пересылки результата операции С в ячей­

 

И -

ку

с адресом

Ь ;

 

 

 

 

количество слагаемых в алгоритме;

 

 

 

S - операция слижения.

 

 

 

 

Фигурные скоски с индексами означают, что оператор

 

О л =* Oi'Sj C Cft'

является выполненным только в

случае,

когда ] ,

L

,

t

пробегают значения от I до

К .

После это­

го

раоотает

оператор

G U * {(&toi+i S X & m S j - - 3

 

 

Вели в

каком-лиоо

операторе отсутствует

операция Oft ,

то будем подразумевать, что результат действия этого

оператора

остаетоя в арифметическом устройстве (АУ). Например,

после вы­

полнения оператора Q.J *=■о* St+i 5 его результат

остается в аУ;

после этого вызывается содержимое ячейки

и складывает­

ся о оодержимым АУ (оумматора), что, в свою очередь, остается в АУ и т .д .

Нетрудно видеть, что запись программы (3.9) рассматри-

веемого алгоритма не является наилучшей. Целесообразно при­

вести исходный алгоритм к такому виду,

чтобы операции сложе­

ния и умножения порождали друг друга.

Это обстоятельство

по­

зволит исключить в выражении (3.9) операцию

.

 

Можно доказать, что всякий алгоритм,

состоящий из

опе­

раций сложения и умножения, в котором одна операция умноже­

ния порождает одну операцию сложения,

можно привести к виду

Q _ f(6c6j c)(fiw SJCbj-iCj - j ,

 

t - l - s K , j - J - i - K .

 

(3.10)

 

 

 

 

Рассмотрим алгоритм в

общем виде

 

 

 

У e X l Vi +ЭС-х % + - - + # К $ С -

(3 .II)

 

 

 

Для случая, когда # 1

, ¥ t , З&ь . V* . . . . . # К ,^ п р и ­

нимают все вещественные значения,

можно всегда найти такие чис­

ла, что

v

ry

v

OCk

7

_ w l

iVj

 

** s — »

 

>* ' • * C k-i

OCk-l

 

 

 

 

 

Подобное представление переменных позволяет записать

исходный алгоритм (3 .II) в виде

 

 

у « ( • • • ( V * г * л +

 

 

 

( 3Л2)

в котором одна операция ушожения порождает одну операцию сло­ жения и наоборот.

Разместив в ячейках

6 i

величины ¥ь

 

и в

ячейках

 

величины

 

, нетрудно убедиться, что запись

програшы

(3.10)

соответствует

реализации алгоритма (3 .12). Но алгоритм

(3.12)

является эквивалентным алгоритму ( З . П ) .

 

 

 

 

 

Точно так же можно найти

Jft

 

 

 

m i -

%

m

-

3 .

fflr-l

 

 

 

 

т г ~

 

 

Ук-i

 

 

 

 

v t

 

 

 

 

 

 

 

В этом случае в ячейках

 

 

размещаются величины

d6i

,

а в

ячейках

-

величины

 

 

.

 

 

 

 

 

Запись программы (3.10) алгоритма, состоящего из опера-

ояения и умножения,

является более экономичной, так как

 

 

-

76 -

здесь

исключается

операция

CLt .

 

На практике чаще всего встречаются алгоритмы, в кото­

рых

X i или

являются постоянными коэффициентами, В

этом случае удобно искать отношения именно этих коэффициентов, так как переменные могут быть наперед неизвестными.

Если записать алгоритм (3 .7 ), обозначая

ht «=С/(<п , &г = Q К42,

. . . ,

&к « Озк

то будем иметь

 

+-Q<X [h-K]~

U

* ЯоЭйМ +

+••

3

 

 

(3.13) ’ |

 

- O k h ^[H-i] ---------Cl2KLj[n-К].

На основании только что приведенных рассуждений алго­ ритм (3.13) можно записать следующим образом:

у [и ] - (••’ Н Си-кЗгаг-i. - { / [ П - К - Д г ^ - г -

~ y t n - i ] Z * - X [ n - K ] Z K - i +

<ЗЛ4>

+

гк- 2+■ *+ х [м -о 2о + л) Гн]) Оо,

где

 

си

 

k

 

Zi

 

 

 

cti

Clm-i

 

 

Количество

операций в

алгоритмах

(3.13) и (3,14) одно

и то же, однако машинного времени на реализацию алгоритма (3.14) будет затрачено меньше, так как здесь не теряется время на пе­ ресылку промежуточных результатов вычислений.

3,3, Масштабирование алгоритмов в дискретно­

разностной Форме Повышение точности вычислений при неизменной времени

реализации алгоритмов на УВС можно достичь применением соот­ ветствующих приемов масштабирования. Для этого масштабы на всех этапах работы УБ(; необходимо выбрать такими, чтобы изобра­

жения чисел в машине представлялись максимальным количеством разрядов.

Раосмотрим некоторые приемы масштабирования, исполь­

- 77

зующие автоматическое изменение масштаоа в зависимости от зна­ чений промежуточных результатов.

 

 

Пусть необходимо производить вычисления функции у=^(ас) ,

причем аргумент

X

есть

некоторая случайная величина. В та­

ких случаях, очевидно, масштабировать надо по максимальному

 

значению промежуточного результата

2

,

получаемого в процес­

се вычисления для данного X

 

,

 

 

 

 

 

 

 

 

 

Один из способов для определения

 

~ f ( X )

состоит

 

в исследовании функционального преобразования

у = £ (об)

 

и выражения

2 1

как функции не

только

от X

, но и от у ..

 

 

 

Рассмотрим эффективные приемы масштабирования алгорит­

мов типа (3.7) в олучае реализации их на УВС о фиксированной

 

запятой. Выберем масштабные коэффициенты в ввде (71 = 2 * ^

 

(

t

= 0 , 1 , 2 , . . . )

и.определим

 

 

 

 

 

 

 

 

 

 

H ( n T b J z ( ^ ( « ' 0 T ,

 

 

 

 

 

 

 

где

 

Z («T ). максимальное

значение суммы ( з . 7 ; .

 

 

 

 

 

Предположим,

что для

Qi

и

&L введены

постоянные мас­

штабы для всего

процесса вычислений от

 

( 1 = 1

до

И = N

Для входных переменных ОС

 

О ТJ

масштаб Щх (иТ)

будет

 

равен

 

 

 

 

 

 

^

 

 

 

 

 

 

 

 

и является постоянным для всех X [ ( n - L ) T ]

при вычислении

 

только одного

значения

y f n T ]

 

.

 

to входных пере­

 

 

 

Для нахождения коэффициента

сдвига

 

менных достаточно 2 ( п Т )

представить в

нормализованном виде

 

Z ( n T ) ^ c ( 2 C ,

тогда

порядок

t

и будет

искомым коэффици­

ентом сдвига. При этом,

если

t < 0

, осуществляем одвиг всех

 

# [ ( > Г - с ) Т ]

 

, (

I

=

0 , 1 , 2 , » . . , К

)

на

t

разрядов вле­

во,

в против;

ом случае -

на

t разрядjb вправо.

 

 

 

 

 

Исследуем алгоритм

(3 .?),

золи

Х ( ч -

ступенчатая функ­

ция,

 

и запишем аго в ваде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

Ц п **

£=0

 

 

 

" £

S t ^ w -ь •

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 78-

Тогда ^« будет описывать переходной процесс, а установивше­ еся значение его можно найти из выражения

У 5jcm =*■X < Е » ^ У

$c«t 2 ^ ^^

 

х £

о с

(3,15)

 

 

У и -

i + £&<

Для определения максимального значения в процессе вы­ числений рассмотрим процесс суммирования попарных произведе­ ний Cft0in-i , $L ^пЧ . Пусть суммирование происходит в следующем порядке:

5 0 = Qo Х п )

51 * Оо Хн + QiXn-1 =* So +CU0Ch-i ,

S z —S i +GzXtt-z ,

S k « S k-i + O k CCh-k ,

Sк+i— Sк— $1

«“I,

“ S k« “ б г ^ и - а ,

$ к + г * S k+i - I -

= н .

 

Промежуточная сумма S j ( j

i, 2 , . ••, K+ О

изменя­

ется

с изменением

j

и в некоторой точке принимает максималь­

ное

значение

 

, причем этот максимум будет либо при'

Q 4. J £: К

,

либо при

j 4 К 4 5

 

- 79 -

Промежуточная сумма примет свое максимальное значение при суммировании первой части алгоритма в случав

У уст <

ЗС

О £

 

 

 

 

 

 

ИЛИ

 

 

 

*Ч I4 Tj

 

 

> i •

l + Z & i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если же

У ^ 1

, то промежуточная сумма достигает

максимального значения

при K+

 

+

,

 

 

 

При выполнении алгоритма

(3.15)

S c

образуются сумми­

рованием коэффициентов. Обозначим максимальную промежуточную

сумму при сложении коэффициента

Cf через

S a

,

а при сложе­

нии коэффициентов

S

- через

S s

. Тогда

при

 

 

2 я 1

'*• ОС S

a ,

 

 

 

 

(3.16)

а при й* * 1

 

 

 

к.

 

 

 

 

 

 

 

 

 

^

 

 

 

 

*

 

(3.17)

Если X

 

 

£-о

 

 

 

 

 

 

- медленно изменяющийся процеоо,

то

 

И Mi

'*

ОС Mia* S o ,

 

 

 

 

(3.18)

 

 

=

OCn X

^ ~ < / у сЖ

 

,

 

(3.19)

 

 

 

 

i*o

 

 

 

 

 

где OC*m<jx_ максимальное по модулю из

значений Х п

,Х>м, . . . ,

ОС и-к J

 

 

 

 

 

 

 

 

 

 

У так - максимальное по модулю значение ^ и- i , . . . , ^ н - г .

Полученные таким образом величины 2 н

отражают только

процеоо оложе^ия попарных произведений. Учитываем, что произ­ ведш ие чиоел, меньших единицы, меньше любого из сомножителей,

поэтому для

того, чтобы не получить 2 и

меньше входных пере­

 

менных, необходимо n p a S a < l(u/,u S l * i )

вместо S a ( UJIUS bJ

 

в фррмулы (3.16, 3 .18), (3.17, 3.19) подставить единицу,

 

Еоли

ЭС (Ч) изменяется достаточно медленно, то

и

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