DRAKON.SU https://forum.drakon.su/ |
|
Правильность перехода https://forum.drakon.su/viewtopic.php?f=78&t=2212 |
Страница 1 из 2 |
Автор: | Ильченко Эдуард [ Вторник, 22 Декабрь, 2009 22:09 ] |
Заголовок сообщения: | Правильность перехода |
Всем доброго времени суток! У меня вопрос к знатокам Дракона. Удовлетворяет ли конструкция перехода, выделенная на рисунке 1, правилам Дракона? Если я правильно понял описание (Паронджанов В.Д. «Как улучшить работу ума» глава 15 тезис 28), то да, удовлетворяет. Но на мой взгляд выглядит она нехорошо. Является ли конструкция перехода, выделенная на рисунке 2, «образованием нового цикла» (согласно тезису 28) и, соответственно, запрещена правилами? Или она допустима? Вложение:
|
Автор: | Илья Ермаков [ Вторник, 22 Декабрь, 2009 22:17 ] |
Заголовок сообщения: | Re: Правильность перехода |
Ужас. Так делать нельзя. Можно строить цикл только в узел-доминатор. Вершину A в графе называют доминатором для B, если все пути из начальной вершины графа в B обязательно проходят через A. Т.е. нет второго входа в цикл. А у Вас он получается (мы можем прийти в вершину "Потребуй заменить борщ" по красному пути в первый раз - т.е. красный путь окажется не циклом, возвращающим в уже пройденное место, а прямым ходом). |
Автор: | Ильченко Эдуард [ Вторник, 22 Декабрь, 2009 22:44 ] |
Заголовок сообщения: | Re: Правильность перехода |
То, что ужас и так делать нельзя, я понимаю : ) Вопрос в том, допустимы ли такие конструкции правилами языка Дракон? А если допустимы, то чем они обоснованы? |
Автор: | Илья Ермаков [ Вторник, 22 Декабрь, 2009 22:50 ] |
Заголовок сообщения: | Re: Правильность перехода |
Лично я применяю своё определение: в каждой ветке Дракон-схема имеет топологию планарного сводимого (оно же - планарного аранжируемого, планарного устремлённого - в разных определениях) графа. Т.е. выше описанное требование по доминаторам + укладка на плоскости без пересечений. Конструктивные определения Владимира Даниеловича, кажется, эквивалентны - но строго я не проверял. |
Автор: | Владимир Паронджанов [ Среда, 23 Декабрь, 2009 12:23 ] |
Заголовок сообщения: | Re: Правильность перехода |
Уважаемый Эдуард Ильченко! Простите, но Вы кое-что нарушили. Что именно? Если я правильно понимаю, Вы оторвали конец и присоединили в некоторую точку. Можно ли так делать? Вообще говоря, нельзя. Почему нельзя? Посмотрите рис. 2, макроикону 4 "обычный цикл" (по книге). В обычном цикле Вы видите две валентные точки. ___________________________________________________ Какие права у Вас есть? Вы имеете право производить операцию "ввод атома" в валентные точки. И еще кое-что. Это значит --- Вы имеете право ВЫРАЩИВАТЬ нужный Вам цикл из макроиконы 4 "обычный цикл", строго следуя правилам строительства. _____________________________________________________________ Но Вы поступили по- другому. Вы ничего не выращивали и не соблюдали правил. Так нельзя. _____________________________________________________________ Вы можете сделать проверку. Возьмите редактор Геннадия Тышова и попробуйте с помощью этого редактора нарисовать Ваш цикл. У вас ничего не получится. Редактор забастует и откажется рисовать неправильные циклы. Секрет в том, что все мои правила " спрятаны" в алгоритмах редактора. Большое Вам спасибо за поднятый Вами интересный вопрос. Если мой ответ Вас не удовлетворит, я с удовольствием выслушаю Вашу критику. |
Автор: | Владимир Паронджанов [ Среда, 23 Декабрь, 2009 12:38 ] |
Заголовок сообщения: | Re: Правильность перехода |
Добавление. В Тезисе 28 сказано: запрещается образовывать новый цикл. А в обоих Ваших примерах Вы строите новый цикл, что запрещено. |
Автор: | Ильченко Эдуард [ Среда, 23 Декабрь, 2009 16:02 ] |
Заголовок сообщения: | Re: Правильность перехода |
Владимир Паронджанов писал(а): Вы можете сделать проверку. Возьмите редактор Геннадия Тышова и попробуйте с помощью этого редактора нарисовать Ваш цикл. У вас ничего не получится. Редактор забастует и откажется рисовать неправильные циклы. Меня интересуют теоретические основы запрета, а не конкретная реализация в конкретном редакторе. Владимир Паронджанов писал(а): Но Вы поступили по- другому. Вы ничего не выращивали и не соблюдали правил. Так нельзя. Я пытался пересадить лиану и соблюдать правила. Похоже, я не разобрался с некоторой двусмысленностью. Если лиану опускать вниз, то она «лиана». Если лиану поднимать вверх, то она «петля цикла». Попробую проиллюстрировать. Допустим, рисунок А1 является фрагментом алгоритма «Рыбная ловля для неудачника». Выделенная линия является лианой (Тезис 26) и алгоритм имеет право на существование в рамках правил языка Дракон. Правильно ли я это понимаю? Цветные кружочки — это валентные точки. Отываем лиану и переносим её, как показано на рисунке 4 (Паронджанов В.Д. «Как улучшить работу ума» глава 6 стр. 86). Получаем алгоритм «Рыбная ловля». Вроде бы произошло «образование нового цикла», что запрещено правилами (Тезис 28), но тем не менее получена правильная Дракон-схема. В таком случае ничто не мешает пересадить лиану (или образовать новый цикл, не знаю как правильнее выразиться) так, как показано на рисунке А2 и даже так, как показано на рисунке А3. В случае рисунка А3 получаем бесконечный цикл, который не противоречит правилам языка Дракон. Фактически цикл «Созерцая пупок» эквивалентен алгоритму, в котором удалена икона «Конец» (Тезис 34), но при этом присутствует икона «Начало». Пример — алгоритм управления движением на перекрёстке (работа светофора, есть начало алгоритма, но нет конца), к сожалению сейчас не помню где его видел. Считаю,что вышесказаного достаточно для того, чтобы показать, что преобразование лианы в часть маршрута «нового цикла» возможно и более того - естественно. В таком случае, не является ли ограничение на подобные операции в языке Дракон и, соответственно, в редакторе Геннадия Тышова искусственным препятствием к быстрому и простому построению Дракон-схем. (С указанным редактором я не работал, поэтому полагаюсь на слова Владимира Паронджанова «Возьмите редактор Геннадия Тышова и попробуйте с помощью этого редактора нарисовать Ваш цикл. У вас ничего не получится. Редактор забастует и откажется рисовать неправильные циклы.”) Геннадию Тышову приношу свои извинения за суждение о его программе без самостоятельной работы в ней. Вложение:
|
Автор: | Владимир Паронджанов [ Среда, 23 Декабрь, 2009 18:33 ] |
Заголовок сообщения: | Re: Правильность перехода |
Уважаемый Эдуард Ильченко! От всего сердца благодарю Вас за поставленные Вами вопросы. Суть дела вот в чем. Вы хотите образовать цикл с помощью операции "пересадка лианы". Но этого нельзя делать. Это запрещено. Операция "пересадка лианы" НЕ ПРЕДНАЗНАЧЕНА для строительства циклов. С равным успехом можно строить цикл из фиалок, стрекоз и мимоз. Есть законный способ строительства конструкции "обычный цикл". Я уже рссказывал о нем. Повторю еще раз. Цитата: Посмотрите рис. 2, макроикону 4 "обычный цикл" (по книге). В обычном цикле Вы видите две валентные точки. Чтобы построить цикл, Вы имеете право производить операцию "ввод атома" в валентные точки. И еще кое-что. Это значит --- Вы имеете право ВЫРАЩИВАТЬ нужный Вам цикл из макроиконы 4 "обычный цикл", строго следуя правилам строительства. _____________________________________________________________ Но Вы поступили по- другому. Вы ничего не выращивали и не соблюдали правил. Так нельзя. КАК ПОСТРОИТЬ ОБЫЧНЫЙ ЦИКЛ? Ответ дан в книге на стр. 228, рис. 116, пример 5 и 6. Более подробно см. главу 8. Еще раз благодарю Вас за интересный вопрос. |
Автор: | Владимир Паронджанов [ Среда, 23 Декабрь, 2009 19:08 ] |
Заголовок сообщения: | Re: Правильность перехода |
Продолжение. Эдуард Ильченко пишет: Цитата: Считаю,что вышесказаного достаточно для того, чтобы показать, что преобразование лианы в часть маршрута «нового цикла» возможно и более того - естественно. В таком случае, не является ли ограничение на подобные операции в языке Дракон и, соответственно, в редакторе Геннадия Тышова искусственным препятствием к быстрому и простому построению Дракон-схем. Уважаемый Эдуард! Ваши последние слова ставят перео мной трудные вопросы. Вы правы, я ввел ограничения. Может быть, я ввел слишком строгие ограничения. Вас интересует вопрос: а нельзя ли снять часть ограничений? В этом случае, как Вы пишете, мы сможем снять Цитата: искусственные препятствия к быстрому и простому построению .Дракон-схем Отвечаю: я не знаю. Вы предлагаете внести существенные изменения в язык. А кто будет нести ответственность за возможные ошибки? Я боюсь ошибок. Язык дракон в нынешнем виде (без Ваших улучшений и изменений), как мне кажется, не содержит ошибок. Предположим, мы введем в язык Ваши улучшения. И вдруг выяснится, что Ваши улучшения приводят к ошибке. Я боюсь этого. Как говорится, чем журавль в небе, лучше синицу в руки. Еще раз спасибо за интересную постановку вопроса. |
Автор: | Илья Ермаков [ Среда, 23 Декабрь, 2009 20:53 ] |
Заголовок сообщения: | Re: Правильность перехода |
Если пользоваться ограничением, сформулированным мной выше, то можно разрешить замыкать лиану куда угодно - редактор будет строго контролировать правильность... |
Автор: | Ильченко Эдуард [ Среда, 23 Декабрь, 2009 21:47 ] |
Заголовок сообщения: | Re: Правильность перехода |
Владимир Паронджанов писал(а): Есть законный способ строительства конструкции обычный цикл". Т.е. для того, чтобы преобразовать схему на рисунке А1 к схеме на рисунке 4 (файл «fish1.png”) мне нужно будет выполнить последовательно действия изображённые на рисунке в файле «fish2.png», перенести текст и удалить куски предыдущей схемы? Как-то это не просто, учитывая, что все элементы для преобразования были на схеме. (ИМХО, где не просто, там ошибки) Владимир Паронджанов писал(а): Вас интересует вопрос: а нельзя ли снять часть ограничений? Нет, меня интересует не этот вопрос. Я понимаю, что всегда возможно расширение языка для конкретных задач. Базу трогать без веских оснований, наверное не нужно. А вот в чём потенциальная опасность превращения лианы в ветку цикла мне не понятно. Я произвёл построения (см. рисунки) для преобразования одной схемы в другую. В одном случае это просто (на мой взгляд), в другом сложно. Результат один и тот же. В чём опасность? Не могли бы Вы привести пример? Вложение:
|
Автор: | Ильченко Эдуард [ Среда, 23 Декабрь, 2009 21:51 ] |
Заголовок сообщения: | Re: Правильность перехода |
Илья Ермаков писал(а): Если пользоваться ограничением, сформулированным мной выше, то можно разрешить замыкать лиану куда угодно - редактор будет строго контролировать правильность... Кажется, я понял. Не важно как происходит переход из одного состояния схемы в другое (этим занимается редактор). Главное чтобы состояния соответствовали определениям языка Дракон. |
Автор: | Илья Ермаков [ Среда, 23 Декабрь, 2009 23:52 ] |
Заголовок сообщения: | Re: Правильность перехода |
Да. У Владимира Даниеловича определение правильной Дракон-схемы завязано на последовательность преобразований (конструктивное определение - "как построить..."). Определение через класс планарных сводимых графов - статично (аксиоматическое определение). |
Автор: | Евгений Темиргалеев [ Четверг, 24 Декабрь, 2009 00:29 ] |
Заголовок сообщения: | Re: Правильность перехода |
Илья Ермаков писал(а): конструктивное определение - "как построить..." http://oberoncore.ru/wiki/drakon/%D0%B2 ... D1%81._115
|
Автор: | Alexey_Donskoy [ Четверг, 24 Декабрь, 2009 08:42 ] |
Заголовок сообщения: | Re: Правильность перехода |
Друзья, ну тут опять вылезает вопрос о транзакции редактирования. Вопрос не теоретический, а конкретного подхода к интерфейсу интерактивных систем. Вариант 1. Мы не поддерживаем механизм пользовательских транзакций и требуем согласованного состояния системы после каждого атомарного действия. Работать с подобной системой не то что некомфортно, а неэргономично до полной невозможности. По этому пути, увы, идёт Тышов. Вариант 2. Мы разрешаем любые разумные действия (вырезка, перемещение любых участков схемы, произвольное проведение связей) внутри пользовательской транзакции редактирования. Однако при таком подходе необходимо явное завершение транзакции с автоматическим контролем корректности состояния и исправлением ошибок. Идеал лежит где-то посередине - в том смысле, что в рамках варианта 2 должны быть предложены (не навязаны) удобные инструменты трансформации схемы. Кстати, в варианте 1 всегда будет возникат вопрос доказательства достаточности операций для любого допустимого преобразования ![]() |
Автор: | Ильченко Эдуард [ Четверг, 24 Декабрь, 2009 17:57 ] |
Заголовок сообщения: | Re: Правильность перехода |
Владимир Паронджанов писал(а): Мне кажется, что мой способ лучше чем Ваш. Полностью с Вами согласен. Если схема строится с нуля. А вот если, например, схему на рис.А1 (fish1.png) я построил неделю назад, потом долго мучился над проблемой : ) и решил, что алгоритм должен быть таким, как на рис.4 (fish1.png), то для меня очень естественно оторвать конец лианы и переместить его вверх, получив новый цикл. И старая схема и новая абсолютно правильны в рамках языка Дракон. Так зачем же мне выращивать новую схему заново с нуля, если делов-то - перенести одну линию? Но язык это запрещает. Поскольку я о Драконе узнал месяц назад, то меня гложат сомнения, что же я не понимаю? К каким ошибкам это может привести? |
Автор: | ==== [ Четверг, 24 Декабрь, 2009 20:06 ] |
Заголовок сообщения: | Re: Правильность перехода |
Ильченко Эдуард писал(а): ...меня гложат сомнения, что же я не понимаю? Вы, оставьте сомнения и перейдите к практике в вашей проблемной области. Используйте и.с. DRAKON, сейчас других доступных средств нет. Свои сомнения можно проверять логикой проблемной области.
|
Автор: | Ильченко Эдуард [ Четверг, 24 Декабрь, 2009 20:36 ] |
Заголовок сообщения: | Re: Правильность перехода |
Геннадий Тышов писал(а): Используйте и.с. DRAKON Уже использую. Спасибо Вам за программу. |
Автор: | Galkov [ Четверг, 24 Декабрь, 2009 21:53 ] |
Заголовок сообщения: | Re: Правильность перехода |
Геннадий Тышов писал(а): Вы, оставьте сомнения и перейдите к практике в вашей проблемной области. А если есть люди, которые разбираются в практике ![]() ![]() В приципе, сегодняшнее положение дел, мне напоминает ситуацию, которая была в PCAD на ранних (скажем ДОС-овских) версиях. Атавизмы которой встречаются до сих пор, между прочим... Должен (!!!) был я перед рисованием схемы заранее знать про нее все: подготовить базу (ПЭ) элеменов, вместе с их конкретным исполнением (скажем: вертикальное или горизонталное расположение ризистора на плате). За меня кто-то решил, что он лучше знает технологию проектирования (джигит, в общем) А мое утверждение таково: решивший это - не более чем ЛОХ в нашей профессии. Видимо, я пытался изложить те же мысли, что и Alexey_Donskoy, но без "транзакции редактирования интерактивных систем" ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |