DRAKON.SU https://forum.drakon.su/ |
|
Сравнение двух дракон-схем https://forum.drakon.su/viewtopic.php?f=172&t=5277 |
Страница 1 из 2 |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 00:16 ] |
Заголовок сообщения: | Сравнение двух дракон-схем |
Учитывая, что дракон-схема представляет собой достаточно упорядоченную структуру, представляется возможным организовать сравнение двух таких схем. Я сделал попытку определить, каким образом проводить сравнение, и столкнулся с некоторыми трудностями. Надеюсь сообщество укажет верный путь. Начну с простого примера. Имеем два слепыша типа примитив (см. рис1 ниже). Начиная с икон Начало попарно сравниваем иконы из разных схем, перемещаясь по маршруту. Для целей данного сообщения, такой маршрут назову «актуальный». Т.е. всегда сравниваются иконы, рассположенные на соответствующих актуальных маршрутах. Результат сравнения показан там же. Красным цветом выделены иконы, отсутствующие на противостоящей схеме. Вложение: рис1.png [ 19.5 КБ | Просмотров: 23775 ] Для схем с простыми циклами имеются нюансы : ) Цикл представляет собой как бы одну икону и может сравниваться только с другим циклом. Вложение: рис2.png [ 10.02 КБ | Просмотров: 23775 ] У каждого цикла есть икона Вопрос, из которой выходит стрелка цикла (или опирается на неё). Такую икону Вопрос назову «опорный вопрос». Опорный вопрос в любом простом цикле всегда располагается в самом низу и правее любой другой иконы Вопрос, принадлежащей этому циклу. Все иконы, находящиеся внутри простого цикла, сравниваются только с внутренними иконами другого простого цикла. Выборка для сравнения внутренних икон простого цикла происходит по актуальному маршруту цикла (показан зелёной стрелкой). Вложение: рис3.png [ 20.73 КБ | Просмотров: 23775 ] Нюансы начинаются когда у простого цикла появляется дополнительный выход. Например, как на рисунке ниже (синей стрелкой показан актуальный маршрут после выхода из цикла). Вложение: рис4.png [ 33.54 КБ | Просмотров: 23775 ] Какой маршрут выбрать актуальным после выхода из простого цикла? |
Автор: | andr [ Четверг, 11 Декабрь, 2014 07:24 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Ильченко Эдуард писал(а): Учитывая, что дракон-схема представляет собой достаточно упорядоченную структуру, представляется возможным организовать сравнение двух таких схем. Я сделал попытку определить, каким образом проводить сравнение, и столкнулся с некоторыми трудностями. Надеюсь сообщество укажет верный путь. ................. Все иконы, находящиеся внутри простого цикла, сравниваются только с внутренними иконами другого простого цикла. Выборка для сравнения внутренних икон простого цикла происходит по актуальному маршруту цикла (показан зелёной стрелкой). Вложение: рис3.png Нюансы начинаются когда у простого цикла появляется дополнительный выход. Например, как на рисунке ниже (синей стрелкой показан актуальный маршрут после выхода из цикла). Вложение: рис4.png Какой маршрут выбрать актуальным после выхода из простого цикла? Интересная теоретическая (теоретико-алгоритмическая) задача: на выявление сходных и отличных компонент двух алгоритмов (в наглядной и обозримой визуальной Дракон-форме представления). В теории алгоритмов такие задачи пока не попадалась на глаза. Правда пока не ясна конечная цель (или возможные конечные цели). В этом отношении полезна информация, как автор дошел до жизни такой - просто так на ум пришло, или ..., или ... . Например: в технологии групповой обработки формируются комплексные детали, содержащие все элементы формы всех деталей из заданной группы деталей (или группы классов деталей) (с параметрическими размерными различиями). На этой основе разрабатывается универсальный групповой технологический процесс, на основе которого определяется выборками конкретные процессы обработки конкретных деталей. Так и в данном случае: по результатам сравнения двух или более (графических) текстов алгоритмов (или классов алгоритмов) можно "механически" (формально) компоновать обобщенные алгоритмы для заданной группы алгоритмов. Поскольку я пока дракон-беспомощный (пока "руки не доходят" до освоения программной поддержки: то ли одной из многих, то ли всех - для полноты ощущений дракон-автоматизации), пока ограничусь предварительными постановочными замечаниями. 1) Исходные данные: 1.1) Левая схема - двухполюсная (последовательное соединение двухполюсников), и она соответствует требованиям (т.наз.) структурного программирования (для последовательного программирования). 1.2) Правая схема - многополюсная - выходит за рамки требований структурного программирования. 1.3) В структурном программировании (по непроверенным слухам) доказывается, что любую многополюсную структуру можно привести (эквивалентными преобразованиями) к двухполюсной: введением дополнительных одинаковых элементов и развязки многополюсных цепей - с потерей компактности (сам не видел и не проверял, но допустим). 2) Появляется промежуточная задача: 2.1) Сначала привести многополюсные структуры к эквивалентным двухполюсным. 2.2) Провести сравнение двухполюсных структур - это, кажется, можно без проблем: судя по первым выкладкам автора задачи (Задача Ильиченко). 3) Затем вернуться к исходным многополюсным структурам - за счет совмещения повторных элементов: разница должна (предположительно) сохраниться - в некотором сокращенном виде. После этого можно получить, например, интегрированную общую структуру (включением в нее всех различных элементов в соответствующих позициях). --------------------- Такая задача на сравнение структур может быть обобщена на параллельные алгоритмы. |
Автор: | Владимир Паронджанов [ Четверг, 11 Декабрь, 2014 10:46 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Эдуард Владимирович, спасибо. Вы подняли очень важную тему. Я рассматриваю ее в свете фундаментальных задач VCS (Система управления версиями).. Ее взволнованно обсуждают применительно к ИС Дракон: http://forum.easyelectronics.ru/viewtop ... 96#p372196 http://forum.easyelectronics.ru/viewtop ... 23#p372223 Цитата: Всё печально.
Единственное, что оставляет тень надежды - что это всего лишь одна реализация дракон-схем, сделанная одним человеком не лучшим образом. [Имеется в виду программа "ИС Дракон" Геннадия Тышова]. Возможно, когда-нибудь их реализует кто-нибудь, кто не поленится изучить теорию и реальные практики программирования (простите, но полноценная работа с VCS перебивает все возможные плюсы дракона по сравнению с текстовыми языками). |
Автор: | Роман М. [ Четверг, 11 Декабрь, 2014 16:13 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Наверно нужно начать с создания формального описания языка ДРАКОН. Если предположить, что каждая икона является буквой ограниченного алфавита языка ДРАКОН, то тогда язык ДРАКОН можно попытаться описать однозначным текстовым способом. Одна из существенных задач, на мой взгляд, является описание связей между иконами. Существует язык описания связей графа под названием DOT language, относящийся к программному продукту GraphViz . Он был разработан в AT&T Labs Research. Цитата: For example, the specification A -> {B C} is equivalent to A -> B A -> C In the second role, a subgraph can provide a context for setting attributes. For example, a subgraph could specify that blue is the default color for all nodes defined in it. In the context of graph drawing, a more interesting example is: subgraph { rank = same; A; B; C; } Так, из текстового описания автоматически создаётся изображение графа. На примеры можно посмотреть в галерее. Насколько адекватно сравнивать текстовое описание графа при помощи VCS - не знаю. Возможно, нынешнее ПО (типа https://ru.wikipedia.org/wiki/Kompare) подходит для текста, но не для графического сравнения, поскольку текст представляет собой линейную последовательность литер. |
Автор: | ==== [ Четверг, 11 Декабрь, 2014 17:01 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
В ИС Дракон проблема - "Сравнение двух дракон-схем" решена. Для версии Дракон-листа формируется листинг и сохраняется в текстовом файле. Текстовые файлы версий сравниваются соответствующими программными средствами. |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 21:09 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
andr писал(а): Правда пока не ясна конечная цель (или возможные конечные цели). 1. Найти отличия в разных версиях одного и того же алгоритма (в т.ч. при многопользовательском редактировании).В этом отношении полезна информация, как автор дошел до жизни такой - просто так на ум пришло, или ..., или ... . 2. Любопытство. andr писал(а): 1.3) В структурном программировании (по непроверенным слухам) доказывается, Пока не понимаю как привести цикл с дополнительными выходами к двухполюсникам.что любую многополюсную структуру можно привести (эквивалентными преобразованиями) к двухполюсной: введением дополнительных одинаковых элементов и развязки многополюсных цепей - с потерей компактности (сам не видел и не проверял, но допустим). … 2.2) Провести сравнение двухполюсных структур - это, кажется, можно без проблем: … Такая задача на сравнение структур может быть обобщена на параллельные алгоритмы. Проблема не в сравнении двухполюсных структур друг с другом, а в выборе маршрута, из которого будут браться структуры для сравнения. Проблема выбора маршрута актуальна и для параллельных алгоритмов. Вложение: рис5.png [ 9.8 КБ | Просмотров: 23711 ] Однако, если сравнение производится по маршрутам, которые просто перебираются друг за другом слева направо, то получим разные алгоритмы. Вложение: рис6.png [ 9.82 КБ | Просмотров: 23711 ] |
Автор: | ==== [ Четверг, 11 Декабрь, 2014 22:02 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Ильченко Эдуард У вас пустое занятие, нельзя сравнивать картинки. Если графика картинок одинаковая, а тексты икон в картинках различный, то и алгоритмы различные. Если параллельные действия переставлены местами, то и алгоритмы разные. Разные по той причине, что по Паронджанову должна быть упорядоченность по выбранному критерию, вправо менее или более значимые. Здесь: картинка - Дракон-схема. |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 22:19 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Владимир Паронджанов писал(а): Ее взволнованно обсуждают применительно к ИС Дракон: Обсуждения сравнения дракон-схем друг с другом, по указанным ссылкам, не нашёл.
http://forum.easyelectronics.ru/viewtop ... 96#p372196 http://forum.easyelectronics.ru/viewtop ... 23#p372223 |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 22:27 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Роман М. писал(а): Наверно нужно начать с создания формального описания языка ДРАКОН. Формальное описание языка ДРАКОН существует. Оно представлено в книгах Владимира Паронджанова.Пока не вижу необходимости описывать графический язык текстовым способом. |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 22:40 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Геннадий Тышов писал(а): Для версии Дракон-листа формируется листинг и сохраняется в текстовом файле. Текстовый файл суть линейная схема, в которой символы (слова, иконы, блоки) расположены на одном единственном маршруте. В этом случае сравнение производится элементарно (см. рис1 в начале топика). Ваша программа в каком-то порядке обходит все маршруты схемы и выводит линейный текст. Почему Вы считаете именно такой порядок правильным для сравнения двух алгоритмов? Например, на рис4 я показал, что порядок обхода может быть различным, и для каждого случая есть своё обоснование. |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 22:52 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Геннадий Тышов писал(а): Ильченко Эдуард : )У вас пустое занятие, нельзя сравнивать картинки. Я сравниваю. Мне ничто не мешает. Геннадий Тышов писал(а): Если графика картинок одинаковая, а тексты икон в картинках различный, то и алгоритмы различные. Считайте, что все пустые иконы содержат одинаковый текст.Геннадий Тышов писал(а): Если параллельные действия переставлены местами, то и алгоритмы разные. Разные по той причине, что по Паронджанову должна быть упорядоченность по выбранному критерию, вправо менее или более значимые. Одна беда, этот критерий весьма субъективен и зависит от личности алгоритмируещего.Если все три параллельных процесса должны запускаться одновременно, какая разница в каком порядке они изображены? |
Автор: | ==== [ Четверг, 11 Декабрь, 2014 22:57 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Можете со мной не соглашаться. |
Автор: | ==== [ Четверг, 11 Декабрь, 2014 23:04 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
http://forum.oberoncore.ru/viewtopic.php?p=90018#p90018 Ильченко Эдуард писал(а): Ваша программа в каком-то порядке обходит все маршруты схемы и выводит линейный текст.Почему Вы считаете именно такой порядок правильным для сравнения двух алгоритмов? Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо.
|
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 23:05 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Геннадий Тышов писал(а): Можете со мной не соглашаться. Я дискутирую.Возможно, Вы правы. Но, для меня, в данный момент, это не очевидно. |
Автор: | Alexey_Donskoy [ Четверг, 11 Декабрь, 2014 23:08 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Ильченко Эдуард писал(а): Считайте, что все пустые иконы содержат одинаковый текст. Так нельзя.Рассмотрим что-нибудь простое, скажем, развилку. Мы можем выполнить гомеоморфное преобразование схемы, поменяв ветки местами (и, соответственно, условие вопроса либо направления ответов). Как отслеживать такие случаи? Без содержательной части сравнение получается бессмысленным. То есть фактически вы ветки поменяли, а по "слепышу" не изменилось ничего. Или поменяли, а вопрос инвертировать забыли. Имеет место ошибка разработчика, но средствами сравнения "слепышей" эту ошибку найти будет невозможно. |
Автор: | Ильченко Эдуард [ Четверг, 11 Декабрь, 2014 23:10 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Геннадий Тышов писал(а): Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо. У меня это тоже было первым вариантом. А потом пришли сомнения : )
|
Автор: | ==== [ Четверг, 11 Декабрь, 2014 23:17 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Ильченко Эдуард писал(а): У меня это тоже было первым вариантом. А потом пришли сомнения : ) Для первого приближения хороший вариант, в деталях визуальное сравнение.
|
Автор: | Ильченко Эдуард [ Пятница, 12 Декабрь, 2014 00:11 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Alexey_Donskoy писал(а): Рассмотрим что-нибудь простое, скажем, развилку. Мы можем выполнить гомеоморфное преобразование схемы, поменяв ветки местами (и, соответственно, условие вопроса либо направления ответов). Как отслеживать такие случаи? Без содержательной части сравнение получается бессмысленным. То есть фактически вы ветки поменяли, а по "слепышу" не изменилось ничего. На мой взгляд, такие случаи отслеживаются просто. См. рис7. Актуальные маршруты, по которым производится выборка икон для сравнения, показаны зелёным цветом. В данном случае алгоритмы одинаковые, а схемы разные. Приношу свои извинения, если кого ввёл в заблуждение. Конечно, интересует сравнение алгоритмов, а не дракон-схем, как таковых. Хотя здесь вопрос, что нужнее/важнее: сравнение схем или алгоритмов? (Чешу в затылке : ) Вложение: рис7.png [ 15.43 КБ | Просмотров: 23689 ] На рис8 разные алгоритмы. Обратите внимание на ответы к вопросу. Вложение: рис8.png [ 15.34 КБ | Просмотров: 23689 ] Ильченко Эдуард писал(а): Геннадий Тышов писал(а): Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо. У меня это тоже было первым вариантом. А потом пришли сомнения : )Вариант, который использует ИС Дракон (если я правильно понял), приведёт к тому, что алгоритм как-бы один и тот же, с указанием, что изменились варианты ответов. См. рис9. Вложение: рис9.png [ 15.75 КБ | Просмотров: 23689 ] |
Автор: | Ильченко Эдуард [ Пятница, 12 Декабрь, 2014 00:24 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
Вот ещё один пример разных схем, но одинаковых алгоритмов. Вложение: рис10.png [ 9.61 КБ | Просмотров: 23689 ] |
Автор: | ==== [ Пятница, 12 Декабрь, 2014 06:44 ] |
Заголовок сообщения: | Re: Сравнение двух дракон-схем |
http://forum.oberoncore.ru/viewtopic.php?p=90026#p90026 Ильченко Эдуард писал(а): Вариант, который использует ИС Дракон (если я правильно понял), приведёт к тому, что алгоритм как-бы один и тот же, с указанием, что изменились варианты ответов. См. рис9. Нет тут проблемы, всего лишь детали реализации.В листинге указать тип иконы - Вопрос, указать ориентацию иконы, для правого выхода - Да или Нет. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |