Файл: Алферова, З. В. Математическое обеспечение экономических расчетов с использованием теории графов.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2024

Просмотров: 81

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Конкретные алгоритмы и программы получаются из схем в результате сопоставления формальным переменным и операциям некоторых конкретных переменных и операций.

Основные результаты, полученные в этой области, относятся к так называемым операторным схемам. Это обусловлено следую­ щими характерными особенностями операторных схем:

совокупность операторов, образующих схему алгоритма, изоб­

ражается

в схеме явно;

 

 

для каждого оператора

явно

указываются его

преемники и

предшественники

по выполнению

и его аргументы

и результаты

(входы и

выходы

оператора);

 

 

при построении реализаций преемник оператора обычно выби­ рается произвольно, без учета истории движения к данному опе­ ратору;

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

в частности, если аргументом или результатом оператора ока­ зывается некоторая компонента массива, указываемая индексом, то конкретное значение индекса обычно игнорируется и считается,

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

является

весь массив.

В качестве результатов выполнения

операторных

алгоритмов

А. П. Ершов предлагает использовать

S-представления тех пере­

менных, которые нас интересуют на выходе [27].

 

Тогда определение эквивалентности, базирующееся на исполь­

зовании S-представления в качестве выхода,

можно

сформулиро­

вать следующим образом. Два алгоритма эквивалентны по отно­

шению к

выделенным переменным в

том

случае,

если

соответст­

вующие

переменные при совпадающих

входах

вычисляются

по

одинаковым формулам. З-представление

переменного

есть

не

что иное, как явное выражение формулы,

по которой вычислялось

результирующее значение переменного для данных исходных зна­ чений функциональных переменных.

Как известно, в программировании важную роль играют имен­ но такие преобразования алгоритмов, которые оставляют расчет­ ные формулы неизменными..

Для определения эквивалентности операторных алгоритмов рассмотрим два алгоритма Ах и Л2 . Для каждого из алгоритмов выделим те переменные, которые нас интересуют в качестве ре­ зультатов выполнения этих алгоритмов. Выделяемые переменные могут быть различными у алгоритма А, и алгоритма Л2 , но число их должно быть одинаковым и между ними должно быть установ-

69



лено

взаимно однозначное

соответствие. То же самое

относится к

фукциональным

переменным алгоритмов Ах и А2 и к

параметрам

этих

алгоритмов, которые

могут входить в S-представления

выде­

ленных переменных.

Обозначим

функциональные

переменные,

параметры и выделенные

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

Ах

буквами

Х\,

хв, pi,

рг и у\,

уп- Соответствующие им переменные,

играющие

аналогичную роль в А2,

обозначим буквами

хъ

xs,

ри .... р2

и уи

у п.

 

 

 

 

 

 

Алгоритмы А\ и А2

эквивалентны по отношению к выделенным

переменным уи

уп

ных данных хи

xs

какой-либо из этих исходных данных хи ных имеют вид:

и уи —, Уп, если для любого набора исход­ имеет место следующее утверждение: если алгоритмов, например Аи имеет значение для xs и S-представления выделенных перемен­

 

51

(Xiu

Xilml

, phl

phli

) =>- -у, ;

 

52

(Xi-2i . • • •, Xhm2

,

phl , •..,

p i m

) => ~y2 ;

 

Sn(Xini>---,xinmn,

 

 

pjni,...,

pjnln

) =>*/„,

то другой

алгоритм — A2

также

имеет значение для исходных дан­

ных хи

xs и ^-представления

выделенных

переменных имеют

вид:

 

 

 

 

 

 

 

5,

(xilt

x i l m l

,

S2

(xi2i.....

x i 2 m 2

,

P i l l

pJM

)

=*у! ;

P h i

P h n

)

=*y2;

Sn(Xinl'• • • > x i v m n , pjni,..., P j n l n ) =$-yn

Можно также определить эквивалентность между двумя алго­

ритмами А\

и Л2 из разных классов А\(р\,

у{)

и А22,

у2). Соответ­

ствие между функциональными переменными,

параметрами и вы­

деленными

переменными

устанавливаются

так же, как и выше.

Однако

может

оказаться,

что списки

операций ух

и у2, а также

значения

функциональных

переменных

 

не совпадают

буквально.

В этом случае между операциями из списков у\ и у2

и возможными

значениями

функциональных

переменных из множеств рх и р2 не­

обходимо дополнительно

задать

определенные

изоморфизмы и

считать

алгоритмы Ах и А2 эквивалентными

с

точностью до изо­

морфизма

образующих их

операций.

 

 

 

 

 

 

Примером

изоморфизма

операций

могут

 

служить

следующие

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

арифметических

операций:

 

 

 

 

 

 

 

Ш

+ {Уг)

и

(У\) + {Уг)

 

 

 

 

 

 

Ш

~ Ш

и

{ух)~

Ы

 

 

 

 

 

 

 

( У 1 ) X 2)

и

(ух) X 2)

 

 

 

 

 

 

Ш

I Ы

и

(ух) I (уз)

 

 

 

 

70


Следует отметить, что если вводится понятие эквивалентности для алгоритмов из разных классов, то может оказаться, что алго­ ритмы, эквивалентные в смысле 5-представлений, будут неэкви­ валентны в смысле совпадения значений выделенных переменных. Это может произойти в том случае, если изоморфные операции не будут совпадать функционально. Например, в одном случае арифметические действия выполняются в двоичной системе, а в другом — в десятичной.

§ 3. 2. СИСТЕМА

ЭКВИВАЛЕНТНЫХ

ПРЕОБРАЗОВАНИЙ

ЯНОВА

 

 

 

 

 

Первой работой, посвященной общей

теории

преобразования

алгоритмов, явилась работа Ю. И. Янова

«О логических

схемах

алгоритмов»

[83]. В ней были сформулированы

основные

компо­

ненты теории

преобразования

алгоритмов.

Этими

компонентами

явились: формализация понятия схемы алгоритма; задание отно­ шения эквивалентности; нахождение алгоритма, распознающего

эквивалентность схем;

построение системы преобразований, пол­

ной в том смысле, что

любую пару эквивалентных алгоритмов

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

Для доказательства полноты преобразований Яновым был применен аппарат теории логических исчислений, при котором правило преобразования трактуется как аксиома, постулирующая сохранение эквивалентности при выполнении преобразования.

Всякий алгоритм при переработке конкретного объекта пред­ писывает однозначно определенную последовательность элемен­ тарных действий. Такая последовательность, вообще говоря, раз­ лична для различных объектов, к которым данный алгоритм мо­ жет быть применен. Однако всегда найдется такое конечное мно­ жество предикатов, характеризующих некоторые свойства пере­ рабатываемых объектов, что для данного алгоритма зависимость порядка выполнения элементарных операций от перерабатывае­ мых объектов будет однозначной функцией этих предикатов. Эта функция может быть записана при помощи конечной строки, со­ ставленной из символов элементарных действий Аь А2, Ап, называемых операторами, предикатов и некоторых вспомогатель­

ных

символов

(t'=l,2, ...), называемых соответственно

левой

и правой полускобками. При этом

строчка Aiu

A i

2 , A i

s

означа­

ет,

что

должны

быть

выполнены

последовательно

операторы

AiuAii,

Ais,

строчка Ana\-Ai2

...,J. A i 3 г д е

a —^некоторый

 

 

 

 

m

m

 

 

 

 

предикат, означает, что после выполнения оператора Ац

в

случае,

если а = 1 , должен быть выполнен оператор Л*2, стоящий

непосред­

ственно

правее

a L , а

если а = 0, — оператор

Ai3,

стоящий

справа

от

 

 

т

J .

 

 

 

 

 

правой полускобки

 

 

 

 

 

т

71


Строчки такого вида называются схемными записями алгорит­

мов.

 

 

 

 

 

 

 

 

 

Формулу

исчисления высказываний

а

со

стоящей

оправа

от

нее левой полускобкой

L с натуральным

индексом

i

называют

 

 

 

i

 

 

 

 

 

 

логическим

условием

al—.

 

 

 

 

 

 

Логической схемой

алгоритма называется

конечная

строчка,

составленная из символов операторов АЬА2,

,

логических усло­

вий a L ,

p L ,

... и правых полускобок J

, J

.... Для

каждой

ле-

i

i

 

 

i

j

 

 

 

 

вой полускобки с индексом i, входящей в эту строку, в ней найдет­ ся одна и только одна правая полускобка с тем же индексом i, и обратно, для каждой правой полускобки J найдется одна и толь-

ко одна левая с тем же индексом.

Логические условия и операторы называются элементарными выражениями.

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

вать извне с помощью так называемых

распределений

сдвигов,

т. е. соответствий между операторами

и множествами

логических

переменных.

 

 

 

 

 

Если

задано

какое-либо распределение сдвигов

Ai — Р{, где

Ai — операторы,

а

Pi — множество

логических

переменных

(/=1,2,

...), то будем

считать, что в момент выполнения

оператора

Ai могут изменяться значения только тех логических переменных,

которые входят в Р,-. Пусть имеется

некоторая схема. Зададим

для

нее

последовательность

Asv

As2,

Asm наборов значений логиче­

ских

переменных. Если

считать,

что

при выполнении схемы

зна­

чения логических переменных изменяются согласно этой последо­

вательности, т. е. после выполнения m-го

оператора логические

переменные принимают набор значений Asm+1

, то получим

опре­

деленную последовательность выполненных

операторов.

Такая

последовательность называется значением схемы для данной по­ следовательности наборов. Задание распределения сдвигов выде­ ляет для каждой схемы из всех возможных последовательностей наборов множество допустимых последовательностей. Таким обра­

зом,

допустимые

последовательности — это такие

последователь­

ности, у которых каждый набор может отличаться

от предыдуще­

го значениями только тех переменных, которые данным

распреде­

лением сдвигов

поставлены

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

выполнен­

ному

при

предыдущем наборе.

 

 

Понятие

равносильности

схем пр.и заданном

распределении

сдвигов требует совпадения значений равносильных схем для лю­ бой допустимой последовательности наборов. Это означает, что

72