DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 18:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 00:16 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Учитывая, что дракон-схема представляет собой достаточно упорядоченную структуру, представляется возможным организовать сравнение двух таких схем.

Я сделал попытку определить, каким образом проводить сравнение, и столкнулся с некоторыми трудностями. Надеюсь сообщество укажет верный путь.

Начну с простого примера.
Имеем два слепыша типа примитив (см. рис1 ниже).

Начиная с икон Начало попарно сравниваем иконы из разных схем, перемещаясь по маршруту. Для целей данного сообщения, такой маршрут назову «актуальный». Т.е. всегда сравниваются иконы, рассположенные на соответствующих актуальных маршрутах.

Результат сравнения показан там же. Красным цветом выделены иконы, отсутствующие на противостоящей схеме.
Вложение:
рис1.png
рис1.png [ 19.5 КБ | Просмотров: 19585 ]

Для схем с простыми циклами имеются нюансы : )
Цикл представляет собой как бы одну икону и может сравниваться только с другим циклом.
Вложение:
рис2.png
рис2.png [ 10.02 КБ | Просмотров: 19585 ]

У каждого цикла есть икона Вопрос, из которой выходит стрелка цикла (или опирается на неё). Такую икону Вопрос назову «опорный вопрос». Опорный вопрос в любом простом цикле всегда располагается в самом низу и правее любой другой иконы Вопрос, принадлежащей этому циклу.

Все иконы, находящиеся внутри простого цикла, сравниваются только с внутренними иконами другого простого цикла. Выборка для сравнения внутренних икон простого цикла происходит по актуальному маршруту цикла (показан зелёной стрелкой).
Вложение:
рис3.png
рис3.png [ 20.73 КБ | Просмотров: 19585 ]

Нюансы начинаются когда у простого цикла появляется дополнительный выход. Например, как на рисунке ниже (синей стрелкой показан актуальный маршрут после выхода из цикла).
Вложение:
рис4.png
рис4.png [ 33.54 КБ | Просмотров: 19585 ]

Какой маршрут выбрать актуальным после выхода из простого цикла?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 07:24 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 423
Ильченко Эдуард писал(а):
Учитывая, что дракон-схема представляет собой достаточно упорядоченную структуру, представляется возможным организовать сравнение двух таких схем.

Я сделал попытку определить, каким образом проводить сравнение, и столкнулся с некоторыми трудностями. Надеюсь сообщество укажет верный путь.

.................

Все иконы, находящиеся внутри простого цикла, сравниваются только с внутренними иконами другого простого цикла. Выборка для сравнения внутренних икон простого цикла происходит по актуальному маршруту цикла (показан зелёной стрелкой).
Вложение:
рис3.png

Нюансы начинаются когда у простого цикла появляется дополнительный выход. Например, как на рисунке ниже (синей стрелкой показан актуальный маршрут после выхода из цикла).
Вложение:
рис4.png

Какой маршрут выбрать актуальным после выхода из простого цикла?

Интересная теоретическая (теоретико-алгоритмическая) задача:
на выявление сходных и отличных компонент двух алгоритмов
(в наглядной и обозримой визуальной Дракон-форме представления).
В теории алгоритмов такие задачи пока не попадалась на глаза.

Правда пока не ясна конечная цель (или возможные конечные цели).
В этом отношении полезна информация, как автор дошел до жизни такой - просто так на ум пришло, или ..., или ... .

Например:
в технологии групповой обработки формируются комплексные детали,
содержащие все элементы формы всех деталей из заданной группы деталей (или группы классов деталей)
(с параметрическими размерными различиями).
На этой основе разрабатывается универсальный групповой технологический процесс,
на основе которого определяется выборками конкретные процессы обработки конкретных деталей.
Так и в данном случае:
по результатам сравнения двух или более (графических) текстов алгоритмов (или классов алгоритмов)
можно "механически" (формально) компоновать обобщенные алгоритмы для заданной группы алгоритмов.

Поскольку я пока дракон-беспомощный
(пока "руки не доходят" до освоения программной поддержки:
то ли одной из многих, то ли всех - для полноты ощущений дракон-автоматизации),
пока ограничусь предварительными постановочными замечаниями.

1) Исходные данные:
1.1) Левая схема - двухполюсная (последовательное соединение двухполюсников),
и она соответствует требованиям (т.наз.) структурного программирования (для последовательного программирования).
1.2) Правая схема - многополюсная - выходит за рамки требований структурного программирования.
1.3) В структурном программировании (по непроверенным слухам) доказывается,
что любую многополюсную структуру можно привести (эквивалентными преобразованиями) к двухполюсной:
введением дополнительных одинаковых элементов и развязки многополюсных цепей - с потерей компактности
(сам не видел и не проверял, но допустим).

2) Появляется промежуточная задача:
2.1) Сначала привести многополюсные структуры к эквивалентным двухполюсным.
2.2) Провести сравнение двухполюсных структур - это, кажется, можно без проблем:
судя по первым выкладкам автора задачи (Задача Ильиченко).

3) Затем вернуться к исходным многополюсным структурам - за счет совмещения повторных элементов:
разница должна (предположительно) сохраниться - в некотором сокращенном виде.

После этого можно получить, например, интегрированную общую структуру
(включением в нее всех различных элементов в соответствующих позициях).

---------------------
Такая задача на сравнение структур может быть обобщена на параллельные алгоритмы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 10:46 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Эдуард Владимирович, спасибо. Вы подняли очень важную тему.
Я рассматриваю ее в свете фундаментальных задач VCS (Система управления версиями)..

Ее взволнованно обсуждают применительно к ИС Дракон:
http://forum.easyelectronics.ru/viewtop ... 96#p372196
http://forum.easyelectronics.ru/viewtop ... 23#p372223
Цитата:
Всё печально.

Единственное, что оставляет тень надежды - что это всего лишь одна реализация дракон-схем, сделанная одним человеком не лучшим образом. [Имеется в виду программа "ИС Дракон" Геннадия Тышова].

Возможно, когда-нибудь их реализует кто-нибудь, кто не поленится изучить теорию и реальные практики программирования (простите, но полноценная работа с VCS перебивает все возможные плюсы дракона по сравнению с текстовыми языками).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 16:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 46
Откуда: Tel-Aviv
Наверно нужно начать с создания формального описания языка ДРАКОН.

Если предположить, что каждая икона является буквой ограниченного алфавита языка ДРАКОН, то тогда язык ДРАКОН можно попытаться описать однозначным текстовым способом. Одна из существенных задач, на мой взгляд, является описание связей между иконами.

Существует язык описания связей графа под названием 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) подходит для текста, но не для графического сравнения, поскольку текст представляет собой линейную последовательность литер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 17:01 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
В ИС Дракон проблема - "Сравнение двух дракон-схем" решена.

Для версии Дракон-листа формируется листинг и сохраняется в текстовом файле.

Текстовые файлы версий сравниваются соответствующими программными средствами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 21:09 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
andr писал(а):
Правда пока не ясна конечная цель (или возможные конечные цели).
В этом отношении полезна информация, как автор дошел до жизни такой - просто так на ум пришло, или ..., или ... .
1. Найти отличия в разных версиях одного и того же алгоритма (в т.ч. при многопользовательском редактировании).

2. Любопытство.

andr писал(а):
1.3) В структурном программировании (по непроверенным слухам) доказывается,
что любую многополюсную структуру можно привести (эквивалентными преобразованиями) к двухполюсной:
введением дополнительных одинаковых элементов и развязки многополюсных цепей - с потерей компактности
(сам не видел и не проверял, но допустим).

2.2) Провести сравнение двухполюсных структур - это, кажется, можно без проблем:

Такая задача на сравнение структур может быть обобщена на параллельные алгоритмы.
Пока не понимаю как привести цикл с дополнительными выходами к двухполюсникам.

Проблема не в сравнении двухполюсных структур друг с другом, а в выборе маршрута, из которого будут браться структуры для сравнения.

Проблема выбора маршрута актуальна и для параллельных алгоритмов.
Вложение:
рис5.png
рис5.png [ 9.8 КБ | Просмотров: 19521 ]
Если не наложены дополнительные условия, то алгоритмы вроде бы одинаковы.
Однако, если сравнение производится по маршрутам, которые просто перебираются друг за другом слева направо, то получим разные алгоритмы.
Вложение:
рис6.png
рис6.png [ 9.82 КБ | Просмотров: 19521 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:02 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Ильченко Эдуард

У вас пустое занятие, нельзя сравнивать картинки.

Если графика картинок одинаковая, а тексты икон в картинках различный, то и алгоритмы различные.

Если параллельные действия переставлены местами, то и алгоритмы разные. Разные по той причине, что по Паронджанову должна быть упорядоченность по выбранному критерию, вправо менее или более значимые.

Здесь: картинка - Дракон-схема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:19 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Владимир Паронджанов писал(а):
Ее взволнованно обсуждают применительно к ИС Дракон:
http://forum.easyelectronics.ru/viewtop ... 96#p372196
http://forum.easyelectronics.ru/viewtop ... 23#p372223
Обсуждения сравнения дракон-схем друг с другом, по указанным ссылкам, не нашёл.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:27 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Роман М. писал(а):
Наверно нужно начать с создания формального описания языка ДРАКОН.
Формальное описание языка ДРАКОН существует. Оно представлено в книгах Владимира Паронджанова.

Пока не вижу необходимости описывать графический язык текстовым способом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:40 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Геннадий Тышов писал(а):
Для версии Дракон-листа формируется листинг и сохраняется в текстовом файле.

Текстовый файл суть линейная схема, в которой символы (слова, иконы, блоки) расположены на одном единственном маршруте. В этом случае сравнение производится элементарно (см. рис1 в начале топика).

Ваша программа в каком-то порядке обходит все маршруты схемы и выводит линейный текст.
Почему Вы считаете именно такой порядок правильным для сравнения двух алгоритмов?

Например, на рис4 я показал, что порядок обхода может быть различным, и для каждого случая есть своё обоснование.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:52 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Геннадий Тышов писал(а):
Ильченко Эдуард

У вас пустое занятие, нельзя сравнивать картинки.
: )
Я сравниваю. Мне ничто не мешает.

Геннадий Тышов писал(а):
Если графика картинок одинаковая, а тексты икон в картинках различный, то и алгоритмы различные.
Считайте, что все пустые иконы содержат одинаковый текст.

Геннадий Тышов писал(а):
Если параллельные действия переставлены местами, то и алгоритмы разные. Разные по той причине, что по Паронджанову должна быть упорядоченность по выбранному критерию, вправо менее или более значимые.
Одна беда, этот критерий весьма субъективен и зависит от личности алгоритмируещего.

Если все три параллельных процесса должны запускаться одновременно, какая разница в каком порядке они изображены?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 22:57 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Можете со мной не соглашаться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 23:04 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
http://forum.oberoncore.ru/viewtopic.php?p=90018#p90018
Ильченко Эдуард писал(а):
Ваша программа в каком-то порядке обходит все маршруты схемы и выводит линейный текст.Почему Вы считаете именно такой порядок правильным для сравнения двух алгоритмов?
Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо.


Последний раз редактировалось ==== Четверг, 11 Декабрь, 2014 23:05, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 23:05 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Геннадий Тышов писал(а):
Можете со мной не соглашаться.
Я дискутирую.
Возможно, Вы правы.
Но, для меня, в данный момент, это не очевидно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 23:08 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Ильченко Эдуард писал(а):
Считайте, что все пустые иконы содержат одинаковый текст.
Так нельзя.

Рассмотрим что-нибудь простое, скажем, развилку. Мы можем выполнить гомеоморфное преобразование схемы, поменяв ветки местами (и, соответственно, условие вопроса либо направления ответов).
Как отслеживать такие случаи? Без содержательной части сравнение получается бессмысленным.
То есть фактически вы ветки поменяли, а по "слепышу" не изменилось ничего.

Или поменяли, а вопрос инвертировать забыли. Имеет место ошибка разработчика, но средствами сравнения "слепышей" эту ошибку найти будет невозможно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 23:10 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Геннадий Тышов писал(а):
Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо.
У меня это тоже было первым вариантом. А потом пришли сомнения : )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Четверг, 11 Декабрь, 2014 23:17 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Ильченко Эдуард писал(а):
У меня это тоже было первым вариантом. А потом пришли сомнения : )
Для первого приближения хороший вариант, в деталях визуальное сравнение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Пятница, 12 Декабрь, 2014 00:11 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Alexey_Donskoy писал(а):
Рассмотрим что-нибудь простое, скажем, развилку. Мы можем выполнить гомеоморфное преобразование схемы, поменяв ветки местами (и, соответственно, условие вопроса либо направления ответов).
Как отслеживать такие случаи? Без содержательной части сравнение получается бессмысленным.
То есть фактически вы ветки поменяли, а по "слепышу" не изменилось ничего.

На мой взгляд, такие случаи отслеживаются просто. См. рис7.
Актуальные маршруты, по которым производится выборка икон для сравнения, показаны зелёным цветом.

В данном случае алгоритмы одинаковые, а схемы разные.

Приношу свои извинения, если кого ввёл в заблуждение. Конечно, интересует сравнение алгоритмов, а не дракон-схем, как таковых.

Хотя здесь вопрос, что нужнее/важнее: сравнение схем или алгоритмов?
(Чешу в затылке : )
Вложение:
рис7.png
рис7.png [ 15.43 КБ | Просмотров: 19499 ]

На рис8 разные алгоритмы. Обратите внимание на ответы к вопросу.
Вложение:
рис8.png
рис8.png [ 15.34 КБ | Просмотров: 19499 ]

Ильченко Эдуард писал(а):
Геннадий Тышов писал(а):
Иконы в картинках считываются по шампурам сверху-вниз и слева-направо. Так, к примеру, можно линейно развернуть таблицу - колонки слева-направо.
У меня это тоже было первым вариантом. А потом пришли сомнения : )


Вариант, который использует ИС Дракон (если я правильно понял), приведёт к тому, что алгоритм как-бы один и тот же, с указанием, что изменились варианты ответов. См. рис9.
Вложение:
рис9.png
рис9.png [ 15.75 КБ | Просмотров: 19499 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Пятница, 12 Декабрь, 2014 00:24 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Вот ещё один пример разных схем, но одинаковых алгоритмов.
Вложение:
рис10.png
рис10.png [ 9.61 КБ | Просмотров: 19499 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сравнение двух дракон-схем
СообщениеДобавлено: Пятница, 12 Декабрь, 2014 06:44 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
http://forum.oberoncore.ru/viewtopic.php?p=90026#p90026
Ильченко Эдуард писал(а):
Вариант, который использует ИС Дракон (если я правильно понял), приведёт к тому, что алгоритм как-бы один и тот же, с указанием, что изменились варианты ответов. См. рис9.
Нет тут проблемы, всего лишь детали реализации.

В листинге указать тип иконы - Вопрос, указать ориентацию иконы, для правого выхода - Да или Нет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB