Ильченко Эдуард писал(а):
Учитывая, что дракон-схема представляет собой достаточно упорядоченную структуру, представляется возможным организовать сравнение двух таких схем.
Я сделал попытку определить, каким образом проводить сравнение, и столкнулся с некоторыми трудностями. Надеюсь сообщество укажет верный путь.
.................
Все иконы, находящиеся внутри простого цикла, сравниваются только с внутренними иконами другого простого цикла. Выборка для сравнения внутренних икон простого цикла происходит по актуальному маршруту цикла (показан зелёной стрелкой).
Вложение:
рис3.png
Нюансы начинаются когда у простого цикла появляется дополнительный выход. Например, как на рисунке ниже (синей стрелкой показан актуальный маршрут после выхода из цикла).
Вложение:
рис4.png
Какой маршрут выбрать актуальным после выхода из простого цикла?
Интересная теоретическая (теоретико-алгоритмическая) задача:
на выявление сходных и отличных компонент двух алгоритмов
(в наглядной и обозримой визуальной Дракон-форме представления).
В теории алгоритмов такие задачи пока не попадалась на глаза.
Правда пока не ясна конечная цель (или возможные конечные цели).
В этом отношении полезна информация, как автор дошел до жизни такой - просто так на ум пришло, или ..., или ... .
Например:
в технологии групповой обработки формируются комплексные детали,
содержащие все элементы формы всех деталей из заданной группы деталей (или группы классов деталей)
(с параметрическими размерными различиями).
На этой основе разрабатывается универсальный групповой технологический процесс,
на основе которого определяется выборками конкретные процессы обработки конкретных деталей.
Так и в данном случае:
по результатам сравнения двух или более (графических) текстов алгоритмов (или классов алгоритмов)
можно "механически" (формально) компоновать обобщенные алгоритмы для заданной группы алгоритмов.
Поскольку я пока дракон-беспомощный
(пока "руки не доходят" до освоения программной поддержки:
то ли одной из многих, то ли всех - для полноты ощущений дракон-автоматизации),
пока ограничусь предварительными постановочными замечаниями.
1) Исходные данные:
1.1) Левая схема - двухполюсная (последовательное соединение двухполюсников),
и она соответствует требованиям (т.наз.) структурного программирования (для последовательного программирования).
1.2) Правая схема - многополюсная - выходит за рамки требований структурного программирования.
1.3) В структурном программировании (по непроверенным слухам) доказывается,
что любую многополюсную структуру можно привести (эквивалентными преобразованиями) к двухполюсной:
введением дополнительных одинаковых элементов и развязки многополюсных цепей - с потерей компактности
(сам не видел и не проверял, но допустим).
2) Появляется
промежуточная задача:
2.1) Сначала привести
многополюсные структуры к эквивалентным
двухполюсным.
2.2) Провести
сравнение двухполюсных структур - это, кажется, можно без проблем:
судя по первым выкладкам автора задачи (Задача Ильиченко).
3) Затем
вернуться к исходным многополюсным структурам - за счет совмещения повторных элементов:
разница должна (предположительно) сохраниться - в некотором сокращенном виде.
После этого можно получить, например,
интегрированную общую структуру(включением в нее всех различных элементов в соответствующих позициях).
---------------------
Такая задача на сравнение структур может быть обобщена на
параллельные алгоритмы.