Рассмотрим 1-й пример автора данной темы
Шилин Александр писал(а):
Пример:
Для достижения результата нужно выполнить несколько проверок.
Причём проверки можно выполнять в любом порядке, но их нужно выполнить все.
Если вытянуть действия проверок в цепочку, то мы как бы задаём обязательность порядка их выполнения.
Каких-то особых условий нет.
Просто нужно выполнить несколько действий в любом удобном для исполнителя порядке.
Имеется в виду:
-- в любом удобном порядке в условиях некоторой текущей конкретной ситуации;
-- в разных ситуациях условия могут меняться, и могут быть удобными другие порядки.
1
Первый способ решения задачи:
явно задать алгоритмом (блок-схемой алгоритма)
альтернативный перечень вариантов последовательности действий.
Практически это приемлемо для комплекса n=2 действий.
Возможны m=2 варианта последвательности действий:
действие1 -> действие2,
действие2 -> действие1.
В крайнем случае его можно применить для комплекса n=3 действий:
(предполжительно) будет m=6 вариантов - уже досаточно громоздко.
Но в общем случае такой способ практически неприменим в виду его большой громозкости:
лавинообдразно нарастает число вариантов последовательности действий
(в некоторой комбинаторной зависимости m = f(n)).
Тем не менее:
-- это есть исходная опорная
теоретическая и методологическая база решения задачи;
-- его (такой способ) можно практически применять для малых n=2,3 комплексов действий;
-- представляет интерес поиск и анализ образцов и условий его применения.
2
Второй способ уже формируется в данной теме - в постах выше.
Если действия некоторого комплекса действий могут выполняться в любом порядке
(в любой последовательности действий),
то они являются
независимыми друг от друга и могут выполняться
не только в любом последовательном, но и в
любом параллельном порядке,
включая:
--
полный параллелизм комплекса действий - 1 вариант;
--
частичный параллелизм - много вариантов
(в некоторой комбинаторной зависимости m' = f'(n)).
Существует
потенциальный параллелизм выполнения комплекса действий,
который может быть
реализован или
не реализован.
Параллельное выполнение действий не предполагается по условию задачи.
Однако можно:
1) Отобразить для исполнителя обозримую
схему потенциального параллелизма,
как источник вариативности последовательного выполнения действий.
2) Представить в некоторой форме
дополниетльное указание типа:
"Выполнять в любой удобной последовательности действий".
В условиях применения Дракона:
1) Отобразить
схему потенциального параллелизма комплекса действий можно без проблем.
2) Целесообразно как-то регламентировать
способ (или способы) отображения дополнительного условия.
Возможно, целесообразно предусмотреть
некоторую
модификацию условного графического обозначения (потенциального) параллелизма комплекса действий.
------------------------------------
У автора данного поста возможен такой подход по 2-му способу.
Структурная формула алгоритма - потенциальный пораллелизм
(пример - проверка на 5 условий):
A100 = Ab->(A1 || A2 || A3 || A4 || A5)->Ae,
где
Ab, Ae - начальный (begin) и конечный (end) блок;
|| = #& - составная структурная операция распараллеливания:
в данном случае параллельная конъюнкция потоков;
# - входной узел разделения (дивергенции) потоков;
& - выходной узел соединения (конвергенции) потоков по конъюнкции.
Откуда:
A100 = Ab-(A1 #& A2 #& A3 #& A4 #& A5)-Ae = Ab-#(A1, A2, A3, A4, A5)&-Ae
Указание произвольного порядка выполнения действий A1, .. A5
можно задать подчеркиванием символов структурных операций:
A200 = Ab-(A1
|| A2
|| A3
|| A4
|| A5)-Ae =
= Ab-(A1
#& A2
#& A3
#& A4
#& A5)-Ae = Ab-
#(A1, A2, A3, A4, A5)&-Ae
-----------------------
Заключение:
1) Специфика 2-го способа:
он ориентирован на "сообразительного" исполнителя,
который может выбрать удобный порядок дейтсвий,
то есть только на человека.
2) Выражение:
(A1, A2, A3, A4, A5) - это есть контрольный список (чек-лист) задачи.
Это есть основа для теоретического обобщения задачи.