
- •Млта: Математическая логика и теория алгоритмов
- •Комплект трех вариантов структурной формулы
- •Базисные структуры параллельных алгоритмов
- •1.2 Исходные структурные формулы параллельных алгоритмов
- •Стандартная форма формулы алгоритма
- •Контроль результатов
- •1. 2 Автоматизация построений основной схемы алгоритма Исходные условия
- •Вариант 1 структурной схемы. Автоматизация построений
- •Анализ структурной схемы Общие данные структуры алгоритма
- •Проверочная нумерация оболочек формул и схем
- •Вложенность формульных оболочек
- •Явная операция разделения (вилки) потоков
- •Работа с тренажером схемных построений
- •Мозаичный набор схем
- •Временные диаграммы параллельных алгоритмов
- •Графический расчет длительности алгоритма
- •Расчет длительности алгоритма
- •Вербальные тексты параллельных алгоритмов базисных структур
- •ИнФ: Инфиксная форма вербального текста
- •Ги: Горизонтальное исполнение
- •Алг a401: нач z1; нач нач нач z3; z1 кон и z5 кон и нач z2; нач нач z4; нач z2 и z8 кон кон и нач z7; z5 кон кон кон кон кон ви: Вертикальное исполнение
- •Автоматизация построений
- •НИнФ: Неявная инфиксная форма вербального текста
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •КоФ: Комбинированная форма вербального текста: ИнПрПоФ
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений: Алгол (Паскаль)-подобный текст
- •ПрФ: Префиксная форма
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •Автоматизация построений
Вариант 1 структурной схемы. Автоматизация построений
СФА: Структурная формула алгоритма / У: Поток управления
// Замена обозначений: "" на "–"
A401 = (Z1(((Z3Z1) &Z5) & (Z2((Z4(Z2 &Z8)) & (Z7Z5)))))
A401 = (Z1 - (((Z3 - Z1) & Z5) & (Z2 - ((Z4 - (Z2 & Z8)) & (Z7 - Z5)))))
Набор формулы:
Настройки программы: ИнФ / ГИ / БСА / БФ
БСА: Блок-схема алгоритма / ГИ: Горизонтальное исполнение
Настройки: ИнФ / ГИ / ШСА / БФ
ШСА: Штрих-схема алгоритма / ГИ: Горизонтальное исполнение
Вариант 2 структурной схемы. Автоматизация построений
СФА: Структурная формула алгоритма / У: Поток управления
A402 = (Z1(((Z3Z1) VZ5) & (Z2((Z4(Z2 &Z8)) & (Z7Z5)))))
A402 = (Z1 - (((Z3 - Z1) V Z5) & (Z2 - ((Z4 - (Z2 & Z8)) & (Z7 - Z5)))))
Набор формулы
Настройки: ИнФ / ГИ / БСА / БФ
БСА: Блок-схема алгоритма / ГИ: Горизонтальное исполнение
Настройки: ИнФ / ГИ / ШСА / БФ
ШСА: Штрих-схема алгоритма / ГИ: Горизонтальное исполнение
Анализ структурной схемы Общие данные структуры алгоритма
а) Структурный класс алгоритма:
двухполюсный постоянный ациклический алгоритм;
постоянная структура – это алгоритмическая структура с отсутствие переключательных элементов типа "если ... то", циклов с предусловием и т.п.
б) Общие структурные показатели
Показатели |
Значения |
Примечания |
Общее число команд |
10 |
|
Число разных команд |
8 |
Нет повторных вхождений команд |
Общее число элементов |
18 |
Включая узлы вилки и сборки |
Число пар операций распараллеливания |
4 |
#&, #V |
Степень параллелизма |
5 |
Три параллельные ветви алгоритма |
Наличие дизъюнктивных сборок |
вариант 1 – нет вариант 2 – есть |
Нет особенностей Есть 1 особый узел |
Проверочная нумерация оболочек формул и схем
Вложенность формульных оболочек
Для контроля правильности построений используются различные способы нумерации формульных оболочек – пар скобок " (i… )i" = " (i … )i"
СФА 0.2: Структурная формула алгоритма – нумерация оболочек:
а) Внешняя (пристроенная) нумерация оболочек формулы
Первая строка нумерации – уровень вложенности блоков
A402 = (Z1 - ( ( (Z3 - Z1) V Z5) & (Z2 - ( (Z4 - (Z2 & Z8) ) & (Z7 - Z5) ) ) ) )
1 234 4 3 5 67 8 87 9 96521
Вторая строка нумерации – разные блоки одного уровня
A402 = (Z1 - ( ( (Z3 - Z1) V Z5) & (Z2 - ( (Z4 - (Z2 & Z8) ) & (Z7 - Z5) ) ) ) )
1 234 4 3 3 45 6 65 5 54321
12 2 1 3 45 5 6 643
б) Внутренняя (встроенная) нумерация оболочек формулы
A402 = (1Z1-(2(3(4Z3 - Z14)VZ53)&(5Z2-(6(7Z4-(8Z2&Z88)7)&(9Z7 - Z59)6)5)2)1) =
= (1Z1-(2(3(4Z3-Z14)VZ53)&( 5Z2-(6(7Z4-(8Z2&Z88)7)&( 9Z7-Z59) 6)5) 2) 1) Вложенность схемных оболочек
Соответственно нумерации формульных оболочек выполняется нумерация
схемных оболочек. Целесообразна двухсторонняя нумерация схемных блоков.
ССА 0.1: Структурная схема алгоритма
Явная операция разделения (вилки) потоков
В сопоставлении СФА со ССА выявляется неявная операция разделения (вилки) потоков – распараллеливания алгоритмических цепей:
СФА 0.3: Структурная формула алгоритма / У: Поток управления
ИнФ: Инфиксная форма записи формулы
ПИнФ: Полная инфиксная форма // пошаговое построение
Неявная операция разделения (подразумевается)
A402 = (Z1 (((Z3 Z1) V Z5) & (Z2 ((Z4 (Z2 & Z8)) & (Z7 Z5))))) =
Явная простановка операции разделения (вилки)
= (Z1(((Z3Z1) #VZ5)#& (Z2((Z4(Z2#&Z8))#& (Z7Z5))))) =
= (Z1(((Z3Z1) #VZ5) #& (Z2((Z4(Z2 #&Z8)) #& (Z7Z5))))) Основная стандартная форма записи СФА:
Строчная индексация:
A402 = (Z1(((Z3Z1) #VZ5)#& (Z2((Z4(Z2#&Z8))#& (Z7Z5))))) Подстрочная индексация (нижние индексы) и упрощения записи:
A402 = (Z1 - (((Z3 - Z1) #V Z5) #& (Z2 - ((Z4 - (Z2 #& Z8)) #& (Z7 - Z5))))) =
= Z1 - (((Z3 - Z1) #V Z5) #& (Z2 - ((Z4 - (Z2 #& Z8)) #& (Z7 - Z5)))) =
= Z1 - ((Z3 - Z1 #V Z5) #& (Z2 - ((Z4 - (Z2 #& Z8)) #& (Z7 - Z5)))) =
= Z1 - ((Z3 - Z1 #V Z5) #& (Z2 - ((Z4 - (Z2 #& Z8)) #& Z7 - Z5))) =
= Z1 - ((Z3 - Z1 #V Z5) #& Z2 - (Z4 - (Z2 #& Z8) #& Z7 - Z5))
Разделение парных операций
// Выполняется только Вариант 2
Выше все три операции представлены в инфиксной форме.
Вводится комбинированные способы записи разных операций.
СФА 0.4: Структурная формула алгоритма / У: Поток управления
КоФ: Комбинированная форма записи формулы
ИнПрПоФ: Инфиксно-префиксно-постфиксная форма
// Пошаговое построение
Исходная формула:
A402 = (Z1 - (((Z3 - Z1) #V Z5) #& (Z2 - ((Z4 - (Z2 #& Z8)) #& (Z7 - Z5))))) =
Разносится более глубоко вложенная пара операций #&:
= (Z1 - (#((Z3 -Z1) #VZ5),(Z2 - (#(Z4 - #(Z2,Z8)&),(Z7 -Z5))&))&) =
Разносится менее глубоко вложенная пара операций #V:
= (Z1 - # (#((Z3 -Z1), Z5)V,(Z2 - #((Z4 - #(Z2,Z8)&),(Z7 -Z5))&))&)
// Суперпозиция () сохраняется в инфиксе.
// Разделение (# – вилка) потоков выносится в префикс (влево).
// Соединение (сборка) по конъюнкции (&) и дизъюнкции (V)
// выносятся в постфикс (вправо).
Конечные результаты:
Строчная индексация:
A402 = (Z1 # (#((Z3 Z1), Z5)V,(Z2 #((Z4 #(Z2,Z8)&),(Z7 Z5))&))&)
Подстрочная индексация (нижние индексы) и упрощения записи:
A402 = (Z1 - # (#((Z3 - Z1), Z5)V,(Z2 - #((Z4 - #(Z2,Z8)&),(Z7 - Z5))&))&)
A402 = (Z1#(#((Z3Z1), Z5)V,(Z2#((Z4#(Z2,Z8)&),(Z7Z5))&))&)
A402 = (Z1#(#((Z3Z1), Z5)V,(Z2#((Z4#(Z2,Z8)&),Z7Z5)&))&)
A402 = (Z1#(#(Z3Z1, Z5)V,(Z2#((Z4#(Z2,Z8)&),Z7Z5)&))&)
A402 = Z1#(#(Z3Z1, Z5)V,(Z2#(Z4#(Z2,Z8)&,Z7Z5)&))&