DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 00:13

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




Начать новую тему Ответить на тему  [ Сообщений: 100 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Воскресенье, 23 Январь, 2011 23:12 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Владимир Паронджанов писал(а):
Глава 30

РЕКОМЕНДАЦИИ ПО ИСПОЛЬЗОВАНИЮ АЛГОРИТМИЧЕСКИХ
СТРУКТУР «СИЛУЭТ» И «ПРИМИТИВ»

§1. ЧТО ЛУЧШЕ: СИЛУЭТ ИЛИ ПРИМИТИВ?


Предположим, вы собираетесь начертить дракон-схему. Какую структуру
лучше выбрать: силуэт или примитив?

§2. ГОЛОВНОЙ АЛГОРИТМ
И ДВА МЕТОДА СОЗДАНИЯ АЛГОРИТМОВ


Головной алгоритм — это алгоритм самого верхнего уровня на лестнице
декомпозиции. Головной алгоритм может содержать вставки (вызываемые
процедуры). Но сам он не может быть вставкой для алгоритма более
высокого уровня.

Головной алгоритм — это всегда силуэт. Он не может быть примитивом.

Для создания головного алгоритма используют два метода, которые могут
дополнять друг друга:

        • метод наглядной декомпозиции;
        • метод многостраничного силуэта.

...

1. Чтобы создать большой алгоритм, следует использовать систему силуэтов.

2. Головной алгоритм большой схемы обязательно должен быть силуэтом.

3. Алгоритм надо рассматривать как последовательную декомпозицию
силуэтов.В том смысле, что каждый силуэт может содержать много
вставок, каждая из которых раскрывается как силуэт.

...

2. Примитив применяют крайне редко, скорее как исключение.

3. Тем не менее, полностью отказываться от понятия «примитив» не следует
по двум причинам.

4. Первая причина — педагогическая. Примитив — это прообраз (зародыш)
ветки. Основные понятия и правила ДРАКОНа удобно объяснять на самой
простой модели. То есть на примитиве. И только после этого переходить
к рассказу о силуэте.

...

Эта глава взята из моей пока еще не законченной книги.

Но примерно такой же (но более короткий) материал есть в книге "Дружелюбные алгоритмы,
понятные каждому" М.: ДМК-пресс, 2010.
См. глава 20. стр. 321--323.
Тут есть некоторые вопросы (возможно, это для другой темы):
1) Алгопроцесс, подвергшийся декомпозиции (подстановкам), выше называется по-разному - то "алгоритм", то "большая схема". Нужно определиться с терминологией. При этом имея в виду, что после подстановки уже некорректно говорить об алгоритме - возникает система алгоритмов, связанных отношением вызова, как показано здесь. Я называю эту систему "дракон-моделью" - очевидно, создатель техноязыка может дать свой термин как предполагаемый окончательный.
2) Стоит для употребления примитивов и силуэтов разграничить формальные и эргономические ограничения. Когда говорится, что визуал такого-то рода д.б. только силуэтом - надо оговорить, что это по эргономическим соображениям - а формально (по шампур-методу) ограничений на выбор диоформы нет.
3) Если примитив - это прообраз ветки - то, возможно, стоит выбрать для его границ вершины, вводимые здесь для БП с возвратом. В них объединяется "веточность" с "заголовочностью" (включая формальные параметры) и со "вставочностью".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Воскресенье, 20 Февраль, 2011 22:51 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Alexey_Donskoy писал(а):
Вот предлагаю схему алгоритма для обсуждения.
...
Есть алогритм (слева), в котором ветка развилки q3 должна идти на конец (после действия s5).
Естественно, редактор не позволяет сделать такой финт. Но можно преобразовать блок-схему, тогда это станет возможным (справа):
Вложение:
q2.PNG
q2.PNG [ 12.46 КБ | Просмотров: 18025 ]

1) При таком преобразовании нарушается правило "главного шампура". Как быть?

Маршрут q3.Нет можно вывести без пересечений "кроссовером" из переключателя.
Вложение:
qqq.png
qqq.png [ 30 КБ | Просмотров: 18025 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Воскресенье, 20 Февраль, 2011 23:04 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Ильченко Эдуард писал(а):
Маршрут q3.Нет можно вывести без пересечений "кроссовером" из переключателя.
На самом деле пересечение не устранено. Оно просто спрятано в гораздо более сложной конструкции - аналоге общей шины.
И констркуция эта, имхо, эргономики не добавляет, а, напротив, всё сильно усложняет. Хотя, конечно, элегантно решает проблему пересечения - ну так шина она и есть шина, даже если записана на Драконе ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Понедельник, 21 Февраль, 2011 12:57 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Alexey_Donskoy писал(а):
На самом деле пересечение не устранено. Оно просто спрятано в гораздо более сложной конструкции - аналоге общей шины.


Уважаемый Алексей Николаевич!

Благодарю Вас за то, что Вы открыли эту тему. Она позволяет обменяться мнениями и более четко выявить наши разногласия.

В чем суть разногласий? Я не могу согласиться с Вашим утвеждением о наличии в схеме Ильченко пересечений.

Где пересечение? Я его глазами не вижу. Если пересечение нельзя увидеть глазами, следовательно, оно не существует.

Мне кажется, что в основе наших разногласий лежат разные определения понятий.

Мы с Вами используем ПРИНЦИПИАЛЬНО РАЗНЫЕ понятия. В том смысле, что понятие "пересечение" Вы и я определяем по разному.

Для меня ПЕРЕСЕЧЕНИЕ - это пересечение линий, которое можно увидеть глазами.

Для Вас ПЕРЕСЕЧЕНИЕ - это нечто иное. Это некоторая мысленная модель,
которая находится у Вас в голове. И Вы, разумеется, вправе строить Вашу
мысленную модель по собственному усмотрению.

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

Слово эргономика не относится к мысленным моделям, находящимся в мозгу.
Мысленная модель - вещь субъективная. И эргономика тут ни при чем.

Вывод. Я согласен с Эдуардом Ильченко. И не согласен с Алексеем Донским.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Понедельник, 21 Февраль, 2011 22:42 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Вложение:
qqq.png
qqq.png [ 63.13 КБ | Просмотров: 17988 ]


Владимир Паронджанов писал(а):
Для меня ПЕРЕСЕЧЕНИЕ - это пересечение линий, которое можно увидеть глазами.
Так посмотрите ещё раз. Вы видите СЛИЯНИЕ.

А СЛИЯНИЕ ХУЖЕ ПЕРЕСЕЧЕНИЯ!

Почему слияние хуже пересечения?

Потому что в пересечении глаз легко сохраняет движение по маршруту.

А в слиянии потом неизбежно приходится в той или иной форме использовать специальные метки для продолжения маршрута.

И использование этих меток - есть внесение дополнительной когнитивной сложности в схему!

Что мы имеем в результате? Мы заменили простейшую схему очень сложной для восприятия.
И всё только из-за того, что первая схема не удовлетворяет искусственным ограничениям Дракона!

Вывод: ограничение на пересечения мешает строить когнитивно эргономичные схемы.

Следовательно, ограничение надо отменить!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Понедельник, 21 Февраль, 2011 23:21 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Вынесите дополнительную сущность вниз. Или в отдельную ветку силуэта.

Типа
1) Принять решение чего делать: q := q1 | q2 | q3
2) Выполнить решение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Понедельник, 21 Февраль, 2011 23:30 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 00:52 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 08:49 
Аватара пользователя

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

- Вариант 2 (развёртка на плоскости) стал возможен исключительно потому, что пример слишком прост. Достаточно ещё одной гадкой развилки, чтобы зарубить такой подход на корню.
- Вариант 3 с "общей шиной" (с использованием "переключателя") без поллитра уже не катит - эргономичность на порядок снижается по сравнению с первым (с пересечением).
- Вариант 4 (силуэт) вообще ни в какие ворота не лезет (ещё на порядок хуже).

Не, ну конечно, можно натренироваться на всё, что угодно, и субъективно выдавать эту натренированность за эргономику... Вы за такой очковтирательский вариант - исключительно ради сохранения статус кво?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 09:38 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 28
Откуда: Ленинград, Емельянов Алексей Николаевич
Alexey_Donskoy писал(а):
...
Не, ну конечно, можно натренироваться на всё, что угодно, и субъективно выдавать эту натренированность за эргономику...

Мне кажется Вы именно это и делаете, особенности Вашего субъективного восприятия выдаете за эргономику. Но возможно это вообще глобальная проблема эргономики, в частности для меня (и Петра Алмазова) эргономическое представление - псевдокод. А если говорить о Драконе, то лично у меня пересечения вызывают в буквальном смысле отвращение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 09:57 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Axcel писал(а):
Мне кажется Вы именно это и делаете, особенности Вашего субъективного восприятия выдаете за эргономику. Но возможно это вообще глобальная проблема эргономики, в частности для меня (и Петра Алмазова) эргономическое представление - псевдокод.
Давайте оставим сравнение текста и графики - это отдельный вопрос. И сосредоточимся на конкретном визуальном представлении.
Для того, чтобы не было глобальной проблемы, придумываются метрики.
Так, если в радиоканале частотная модуляция, выше несущей частоты не прыгнешь, она ограничивает.
И здесь - можно посчитать, в частности, движения глаз вдоль линии маршрута.
А также затраты на распознавание образов и на сознательную интерпретацию связанных текстов.

В варианте 1 на пути встречается лишь одно препятствие - пересечение, и оно легко идентифицируется "на автомате", без осознания. Положим 1 балл сложности на это.

В 3 случае (слияние с последующим разделением через "переключатель") имеем:
- дополнительные визуальные объекты на пути (слияние, переключатель, ветки выбора переключателя);
- объекты, требующие чтения и осознанной интерпретации (текст переключателя и текст каждой ветки);
- заметим, что в крайнем случае (а именно он нас интересует) потребуется просмотр всех веток (наша - последняя);
- ещё заметим, что структура уже достаточно сложна, и, скорее всего, потребуется минимум один возврат для подтверждения (надёжности распознавания, самопроверки и т.п.). Стало быть, раза в полтора-два минимум итог увеличится.
Далее, положим 1 балл на распознавание слияния, 2 балла на распознавание переключателя и каждой ветки.
Положим 10 баллов на интерпретацию текста в каждом объекте.
Итого имеем: (1+1+3*1 + 10 + 3*10)*1.5 = 67.5

Можно обсуждать коэффициенты метрики, но таки принципиально против не попрёшь. Усложнение больше, чем на порядок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 11:05 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Ну, я однозначно не за, и не против пересечений, как уже говорил. Я думаю.
Так вот, смотрю на пересечения - отследить-то проще ход по конкретному пути от начала к концу. Но в целом схема смотрится подозрительно (возникает какое-то равноправие путей, откуда и пересечения). Ощущение - "что-то тут не так, почему всё такое симметрично-равноправное".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 11:22 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
В моем предложении ключевой момент был в разделении на ДВА этапа. Типа такого
Вложение:
Снимок.png
Снимок.png [ 7.81 КБ | Просмотров: 17950 ]
Вложение:
Снимок-1.png
Снимок-1.png [ 9.07 КБ | Просмотров: 17951 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 11:52 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Евгений Темиргалеев писал(а):
В моем предложении ключевой момент был в разделении на ДВА этапа.
Понятно, но это как раз и даёт необходимость повторения разветвлений. То есть тоже усложнение почти на порядок.

Илья Ермаков писал(а):
Но в целом схема смотрится подозрительно (возникает какое-то равноправие путей, откуда и пересечения)
Можно списать на неудачную компоновку примера. Реальные алгоритмы сложнее и интереснее.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 13:02 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 28
Откуда: Ленинград, Емельянов Алексей Николаевич
Пересечение это "облом", "короткое замыкание", "разрушение целостности", "когнитивный диссонанс" и все коэффициенты летят к черту, регулярность исчезла и метрики больше нет, вернее она становится трехмерной (усложнение на порядок), шина в этом случае "честный подход".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 13:24 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Axcel писал(а):
Пересечение это "облом", "короткое замыкание", "разрушение целостности", "когнитивный диссонанс" и все коэффициенты летят к черту, регулярность исчезла и метрики больше нет, вернее она становится трехмерной (усложнение на порядок), шина в этом случае "честный подход".
Ещё раз.

Метрика алгоритма не зависит от способа представления.

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

В то время как отображение произвольного графа на плоскость - именно искусственная, достаточно надуманная операция. У неё есть оправдания, но они слабоваты.

А моё имхо - оно всё-таки подкреплено выше. Хотя бы предварительным анализом.

P.S. Естественно, шина полезна. Потому что много близко расположенных параллельных линий тоже крайне неэргономично. Тогда целесообразно одно зло заменить другим, взвешивая все плюсы-минусы.
Но, опять-таки, это не для рассматриваемого случая.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 15:17 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Alexey_Donskoy в viewtopic.php?p=60530#p60530 писал(а):
Вложение:
qqq.png


Владимир Паронджанов писал(а):
Для меня ПЕРЕСЕЧЕНИЕ - это пересечение линий, которое можно увидеть глазами.
Так посмотрите ещё раз. Вы видите СЛИЯНИЕ.
...
Добавлю - фактически в алгоритмически строгой схеме нужна переменная выбора, хранящая результат прохождения вершин Вопрос - тот самый "номер qi" ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 15:33 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Драконограф писал(а):
Добавлю - фактически в алгоритмически строгой схеме нужна переменная выбора, хранящая результат прохождения вершин Вопрос - тот самый "номер qi" ...
Во-первых, не понял ;)
Во-вторых, когнитивно-эргономичный алгоритм не должен содержать никаких лишних переменных, прямо не относящихся к требуемой функциональности.
Всё, что сверх её - от лукавого (то есть от неадекватности формы представления алгоритма)!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 15:56 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 143
Откуда: Россия, Орёл
Alexey_Donskoy писал(а):
Евгений Темиргалеев писал(а):
В моем предложении ключевой момент был в разделении на ДВА этапа.
Понятно, но это как раз и даёт необходимость повторения разветвлений. То есть тоже усложнение почти на порядок.
По-моему не всё столь однозначно.
1) Вопрос, что труднее понять: один сложный алгоритм или (по отдельности) два более простых, пусть и больших в сумме по объёму, нежели первый.
2) Не совсем понятно, как повторение может дать усложнение на порядок, когда это именно повторение. Повторение второй части идёт по стопам первой, уже понятой..

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Преобразование графов
СообщениеДобавлено: Вторник, 22 Февраль, 2011 16:01 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Alexey_Donskoy писал(а):
Драконограф писал(а):
Добавлю - фактически в алгоритмически строгой схеме нужна переменная выбора, хранящая результат прохождения вершин Вопрос - тот самый "номер qi" ...
Во-первых, не понял ;)
Во-вторых, когнитивно-эргономичный алгоритм не должен содержать никаких лишних переменных, прямо не относящихся к требуемой функциональности.
Всё, что сверх её - от лукавого (то есть от неадекватности формы представления алгоритма)!
В иконе Выбор переменная выбора реально д.б. :) ...которая хранит тот самый номер, с которого слились на вход переключателя... ну и присвоить этот номер нужно явно при выходе с каждой развилки на слияние.
Насчёт "во-вторых" согласен - но тут, возможно, без автоматного программирования не обойтись (раз флаги возникают - надо смотреть, не "сложное поведение" ли тому причиной - и не надо ли явно выделить состояния)... Чтобы без переменных - придётся в каждом Варианте заново вычислять то же, что в развилке соответствующей (т.к. между ними ничего не делаем - то будет то же в смысле "да/нет"). Может, ещё как можно :)


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

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


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

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


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

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