Развитие графовых и матричных способов представления алгоритмов

Развитие графовых и матричных способов представления алгоритмов

В.С. Поляков, С.В.Поляков, О.А. Авдеюк, В.Ю. Наумов,

Е.С. Павлова, М.Г. Скворцов

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

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

Ключевые слова: алгоритм, граф-схема, двудольный граф, множество, матрица, предикат, логический оператор.

Известно, что алгоритм - это конечный набор правил, позволяющий чисто механически решить поставленную задачу. Большинство алгоритмов, применяемых в настоящее время, являются последовательными. Запись алгоритма осуществляется в следующем виде: словесная или вербальная (языковая, формульно-словесная и т.д.); графическая (например, блок-схемы, ДРАКОН-схемы, диаграммы Насси- Шнейдермана); в виде псевдокодов, представляющие собой частично формализованные описания алгоритмов, которое состоит из отдельных фраз естественного языка и некоторых элементов языка программирования; - программная - тексты алгоритма записывается на языке программирования (программа). Разработка алгоритмов осуществляется, как правило, человеком и носит эвристический характер. Процессы разработки алгоритмов и формализации взаимодействия их между собой сложны и трудоёмки, поэтому плохо поддаются автоматизации. Поэтому актуальной задачей является разработки такой формы представления алгоритма, которая позволит автоматизировать эвристические методы их построения.

Организацию взаимодействия алгоритмов между собой (например, параллельную их работу) можно разбить на два этапа:

- представление алгоритма в виде удобном для обработки в ЭВМ,

- разработка операций над алгоритмами.

Рассмотрим произвольный алгоритм, заданный в виде граф-схемы (рис. 1). При таком задании выделяются два типа вершин:

- вершины, определяющие выполнение отдельных операций (множество А = { А0, А1, А2, А3, АА^+1, Ак } , операторы действия);

- вершины, определяющие логику (порядок) перемещения от выполнения одной операции к выполнению следующей

(а = { а1-1, а1-2 2-1, а2-2 },операторы логики).

Рис. 1. - Граф-схема произвольного алгоритма

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

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

1. Будем задавать конец выполнения каждого оператора действия Аj с помощью соответствующего оператора логики аj (рис. 2).

Рис. 2. - Доопределение оператора действия Аj оператором логики аj 2. Различные композиции операторов логики заменим на один многозначный оператор. На рис. 3 а приведены две логические функции а и в , а на рис. 3б реализующий аналогичную функцию многозначный оператор а-р.

Рис. 3. - Замена двух операторов логики одним многозначным оператором

3. Доопределяем каждый оператор действия исходного алгоритма Ах алгоритма А как показано на рисунках 4а, б, в, г, д.

4. Введем следующие обозначения:

Таблица № 1

Композиция и логические значения функций

Композиция функций Логические значения функций

«00 =Ц° Т 0 I- Ц 0 т 0 I- Ц 1

ол'а =Ц а01 =Ц10 а01 а1-1 =Ц11 а01 а1-1 а1-2 =Ц2 а01 а1-1 а1-2=Ц3

а 02"а2-1"а2-2=Ц2 а02 =Ц20 а02 а2-1 =Ц21 а02 а2-1 а2-2=Ц22 а02 а2-1 а2-2=Ц23

3 а з=Ц а3 =Ц30 3 а з=Ц 1

4 а 4 =ц «4 =Ц40 4 а 4 =Ц 1

Рис. 4. - Доопределение оператора действия Аi алгоритма А

5. Применим доопределённые операторы действия (рис.4) и новые обозначения (таблица 1) для исходного алгоритма (рис. 1) и получим новый доопределённый алгоритм (рис. 5).

Рис. 5 - Доопределённый алгоритма А с новыми обозначениями

6. Доопределённый алгоритм (рис. 5), можно представить двудольным графом, то есть ориентированным графом с двумя типами

непересекающихся вершин (рис. 6) [3]. При этом вводятся обозначения: ц\2

1 \/ 1 2 2 ,, 2

= Ц ^ Ц 2 и Ц 0,1 = Ц oV Ц 1

Рис. 6 - Двудольный граф алгоритма А

7. Двудольный граф (рис. 6) запишем оператором действия исходного

алгоритма Ор в матрично-предикатном виде :

ОрА =

ц

0 0 0 0

0 0 0 0 а

0 0 0 0

1 ц1 0 0 0

0 2 ц2 0 3 0

0 0 ц3 0

0 0 0 4 ц4

0 0 0 0

11 А1^ц 0 0 0

0 22 А2ц оц 0 33 0

0 0 А3ц оц 0

0 0 0 44 А4ц40ц4

0 0 0 0

0 0 0 0

ц V 0 А1 ц1ц1,2 А2 ц^ 3 Аз

0 ц 2ц М А2

0

0

22 Ц Ц 3 А4

0 0 0

0 0 0

0 А1ц|,А1 0

0 0 А2Ц^А2

0 0 0

0 0 0

0 0 0

Ц3Ц3аЗ

0 ц 4ц 0 А4 00 00 00

А3ц 3 А3 0

0 А4Ц 0 А4 00

0 0

ц 1ц 2 А ц 1ц3 Ак ц 4ц4 Ак --¡0 —

\0 0

0

0

I_

.Ак.^Ак.

00

0

0

0

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

Литература

1. Поляков В.С., Поляков С.В., Муха Ю.П. Представление транспортно-информационного потока взаимодействием операторов трассы и движущихся по ней объектов // Телекоммуникации. 2013. № 7. С. 3-7.

2. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая Линия - Телеком, 2007. 452 с.

3. Дворецкий С.И., Муромцев Ю.Л. и др. Моделирование систем. М.: Academia, 2009. 320 с.

4. Поляков С.В., Поляков В. С. Моделирование параллельно протекающих процессов блоками взаимодействующих компонентов. // Контроль. Диагностика. 2008. № 8. С. 70-72.

5. Астанин С.В., Драгныш Н.В., Жуковская Н.К. Вложенные метаграфы как модели сложных объектов // Инженерный вестник Дона, 2012, №4. URL: ivdon.ru/magazine/archive/n4p2y2012/1434/.

6. Поляков В.С., Поляков С.В., Муха Ю.П. Применение совокупности новых установок, представлений и терминов при моделировании информационных потоков в сложных системах // Телекоммуникации. 2013. № 1. С. 2-5.

7. Поляков В.С., Поляков С.В., Нефедьев А.И. Математическая модель подвески подвижной части электроизмерительного прибора.// Инженерный вестник Дона, 2013. №3. URL: ivdon.ru/magazine/archive/n3y2013/1788.

8. Лацис А.О. Параллельная обработка данных. М.: Academia, 2010. 336 с.

9. Voevodin V.V. Information structure of sequential programs // Russ. J. of Num. An. and Math. Modelling. 1995. V.10. №3. P. 279286.

10. Voevodin V.V. Mathematical foundations of parallel computing. World Scientific Publishing Co., Series in computer science. 1992. V.33. 343 p.

References

1. Poljakov V.S., Poljakov S.V., Muha Ju.P. Telekommunikacii. 2013. № 7. pp. 3-7.

2. Rutkovskaja D., Pilin'skij M., Rutkovskij L. Nejronnye seti, geneticheskie algoritmy i nechetkie sistemy [Neural networks, genetic algorithms and fuzzy systems]. M.: Gorjachaja Linija. Telekom, 2007. 452 p.

3. Dvoreckij S.I., Muromcev Ju.L. i dr. Modelirovanie system [Modeling systems]. M.: Academia, 2009. 320 p.

4. Poljakov S.V., Poljakov V.S. Kontrol'. Diagnostika. 2008. № 8. pp. 70-72.

5. Astanin S.V., Dragnysh N.V., Zhukovskaja N.K. Inzenernyj vestnik Dona (Rus), 2012, №4. URL: ivdon.ru/magazine/archive/n4p2y2012/1434.

6. Poljakov V.S., Poljakov S.V., Muha Ju.P. Telekommunikacii. 2013. № 1. pp. 2-5.

7. Poljakov V.S., Poljakov S.V., Nefed'ev A.I. Inzenernyj vestnik Dona (Rus), 2013. №3. URL: ivdon.ru/magazine/archive/n3y2013/1788.

8. Lacis A.O. Parallel'naja obrabotka dannyh [Parallel processing of data]. M.: Academia, 2010. 336 p.

9. Voevodin V.V. Information structure of sequential programs. Russ. J. of Num. An. and Math. Modelling. 1995. V.10. №3. pp. 279286.

10. Voevodin V.V. Mathematical foundations of parallel computing. World Scientific Publishing Co., Series in computer science. 1992. V.33. 343 p.