
- •Млта: Математическая логика и теория алгоритмов
- •Комплект трех вариантов структурной формулы
- •Базисные структуры параллельных алгоритмов
- •1.2 Исходные структурные формулы параллельных алгоритмов
- •Стандартная форма формулы алгоритма
- •Контроль результатов
- •1. 2 Автоматизация построений основной схемы алгоритма Исходные условия
- •Вариант 1 структурной схемы. Автоматизация построений
- •Анализ структурной схемы Общие данные структуры алгоритма
- •Проверочная нумерация оболочек формул и схем
- •Вложенность формульных оболочек
- •Явная операция разделения (вилки) потоков
- •Работа с тренажером схемных построений
- •Мозаичный набор схем
- •Временные диаграммы параллельных алгоритмов
- •Графический расчет длительности алгоритма
- •Расчет длительности алгоритма
- •Вербальные тексты параллельных алгоритмов базисных структур
- •ИнФ: Инфиксная форма вербального текста
- •Ги: Горизонтальное исполнение
- •Алг a021: нач z2; нач нач нач z3 и нач z1; нач z5 и z4 кон кон кон; z1 кон и нач z2; нач z6 и нач z7; z2 кон кон кон кон кон ви: Вертикальное исполнение
- •Автоматизация построений
- •НИнФ: Неявная инфиксная форма вербального текста
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •КоФ: Комбинированная форма вербального текста: ИнПрПоФ
- •Ги: Горизонтальное исполнение
- •Alg a022: begin z2; cobegin begin cobegin z3, begin z1; cobegin z5, z4 coend end coend; z1 end, begin z2; cobegin z6, begin z7; z2 end coend end coend_or end
- •Ви: Вертикальное исполнение
- •Автоматизация построений: Алгол (Паскаль)-подобный текст
- •ПрФ: Префиксная форма
- •Исходные условия
- •Ги: Горизонтальное исполнение
- •Ви: Вертикальное исполнение
- •Автоматизация построений
Явная операция разделения (вилки) потоков
В сопоставлении СФА со ССА выявляется неявная операция разделения (вилки) потоков – распараллеливания алгоритмических цепей:
СФА 0.3: Структурная формула алгоритма / У: Поток управления
ИнФ: Инфиксная форма записи формулы
ПИнФ: Полная инфиксная форма // пошаговое построение
Неявная операция разделения (подразумевается)
A022 = (Z2 (((Z3 & (Z1 (Z5 & Z4))) Z1) V (Z2 (Z6 & (Z7 Z2))))) =
Явная простановка операции разделения (вилки)
= (Z2(((Z3#& (Z1(Z5#&Z4)))Z1)#V(Z2(Z6#& (Z7Z2))))) =
= (Z2(((Z3 #& (Z1(Z5 #&Z4)))Z1) #V(Z2(Z6 #& (Z7Z2)))))
Основная стандартная форма записи СФА:
Строчная индексация:
A022 = (Z2(((Z3#& (Z1(Z5#&Z4)))Z1)#V(Z2(Z6#& (Z7Z2))))) Подстрочная индексация (нижние индексы) и упрощения записи:
A602 = (Z2 - (((Z3 #& (Z1 - (Z5 #& Z4))) - Z1) #V (Z2 - (Z6 #& (Z7 - Z2))))) =
= Z2 - (((Z3 #& (Z1 - (Z5 #& Z4))) - Z1) #V (Z2 - (Z6 #& (Z7 - Z2)))) =
= Z2(((Z3 #& (Z1(Z5 #& Z4)))Z1) #V (Z2(Z6 #& Z7Z2))) =
= Z2(((Z3 #& Z1(Z5 #& Z4))Z1) #V (Z2(Z6 #& Z7Z2))) =
= Z2((Z3 #& Z1(Z5 #& Z4))Z1 #V (Z2(Z6 #& Z7Z2))) =
= Z2((Z3 #& Z1(Z5 #& Z4))Z1 #V Z2(Z6 #& Z7Z2))
Разделение парных операций
// Выполняется только Вариант 2
Выше все три операции представлены в инфиксной форме.
Вводится комбинированные способы записи разных операций.
СФА 0.4: Структурная формула алгоритма / У: Поток управления
КоФ: Комбинированная форма записи формулы
ИнПрПоФ: Инфиксно-префиксно-постфиксная форма
// Пошаговое построение
Исходная формула:
A022 = (Z2 - (((Z3 #& (Z1 - (Z5 #& Z4))) - Z1) #V (Z2 - (Z6 #& (Z7 - Z2))))) =
Разносится более глубоко вложенная пара операций #&:
= (Z2 - ((#(Z3,(Z1 - #(Z5,Z4)&))& -Z1) #V(Z2 - #(Z6,(Z7 -Z2))&))) =
Разносится менее глубоко вложенная пара операций #V:
= (Z2-#((#(Z3,(Z1-#(Z5,Z4)&))&-Z1),(Z2-#(Z6,(Z7-Z2))&))V)
// Суперпозиция () сохраняется в инфиксе.
// Разделение (# – вилка) потоков выносится в префикс (влево).
// Соединение (сборка) по конъюнкции (&) и дизъюнкции (V)
// выносятся в постфикс (вправо).
Конечные результаты:
Строчная индексация:
A022 = (Z2-#((#(Z3,(Z1-#(Z5,Z4)&))&-Z1),(Z2-#(Z6,(Z7-Z2))&))V)
Подстрочная индексация (нижние индексы) и упрощения записи:
A022 = (Z2-#((#(Z3,(Z1-#(Z5,Z4)&))&-Z1),(Z2-#(Z6,(Z7-Z2))&))V)
A022 = (Z2#((#(Z3,(Z1#(Z5,Z4)&))&Z1),(Z2#(Z6,(Z7Z2))&))V)
A022 = (Z2#((#(Z3,(Z1#(Z5,Z4)&))&Z1),(Z2#(Z6,Z7Z2)&))V)
A022 = (Z2#((#(Z3,Z1#(Z5,Z4)&)&Z1),(Z2#(Z6,Z7Z2)&))V)
A022 = (Z2#((#(Z3,Z1#(Z5,Z4)&)&Z1),Z2#(Z6,Z7Z2)&)V)
A022 = (Z2#(#(Z3,Z1#(Z5,Z4)&)&Z1,Z2#(Z6,Z7Z2)&)V)
A022 = Z2#(#(Z3,Z1#(Z5,Z4)&)&Z1,Z2#(Z6,Z7Z2)&)V
Работа с тренажером схемных построений
Мозаичный набор схем
Используется программа TRENTEST– графический тренажер-тестер.
Выполняется мозаичный набор структурных схем.
Вариант 1
СФА 0.5: Структурная формула алгоритма
A021 = (Z2 - (((Z3 & (Z1 - (Z5 & Z4))) - Z1) & (Z2 - (Z6 & (Z7 - Z2)))))
A021 = (Z2 (((Z3 & (Z1 (Z5 & Z4))) Z1) & (Z2 (Z6 & (Z7 Z2)))))
ССА0.2: Структурная схема алгоритма
ШСА 0.1: Штрих-схема алгоритма
Вариант 2
СФА 0.6: Структурная формула алгоритма
A022 = (Z2 - (((Z3 & (Z1 - (Z5 & Z4))) - Z1) V (Z2 - (Z6 & (Z7 - Z2)))))
A022 = (Z2 (((Z3 & (Z1 (Z5 & Z4))) Z1) V (Z2 (Z6 & (Z7 Z2)))))
ССА0.3: Структурная схема алгоритма
ШСА 0.2: Штрих-схема алгоритма
РМУ 0.2Однозначность графических построений:
1) В изложенной технике структурных построений обеспечивается возможность однозначного построения ССА по заданной СФА.
2) Данное обстоятельство обеспечивает возможность контроля правильности учебных схемных построений на основе сравнения с эталоном.