DRAKON.SU

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

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




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

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

Цитата:
2) Не совсем понятно, как повторение может дать усложнение на порядок, когда это именно повторение. Повторение второй части идёт по стопам первой, уже понятой..
А вот нифига. Ещё доказать надо, что это именно повторение. Причём даже самому себе, в процессе восприятия. Поэтому неизбежны огромные затраты мысленных ресурсов:
- на многократное повторное обозрение, запоминание и сравнение;
- на построение в голове ВСЕЙ модели целиком и безуспешные попытки удержать там же все связи (входы/выходы интерфейса выделенных участков), необходимые для понимания.

Цитата:
Ваши конкретные задачи/алгоритмы мне не известны, т.е. Вам, на месте, т.сказать, виднее.
Вы меня сильно удивляете. Неужели Вы считаете, что общеалгоритмические соображения настолько зависят от задачи?!

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

Если на одной чаше весов лежит "структурность", а на другой - лишнее повторение, то отнюдь не очевидно, что именно перевесит.

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

Не далее как совсем недавно Илья показывал, что топология направленного графа не сильно коррелирует со структурностью линейного текстового языка программирования. В данном случае как раз имеет место первая разновидность "структурности", от которой целесообразно избавляться.

Драконограф писал(а):
В иконе Выбор переменная выбора реально д.б. :) ...которая хранит тот самый номер, с которого слились на вход переключателя... ну и присвоить этот номер нужно явно при выходе с каждой развилки на слияние.
Упущено самое главное - в задаче НЕ НУЖЕН переключатель. Как и автоматность с флагами и т.п.


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

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

За конкретный алгоритм и его изображение на Драконе --- тут, по-моему ситуация из разряда "на вкус и цвет товарища нет". Неопределённая.

я к ней высказал некоторые предположения, для размышлений. Спорить не буду, т.к. темой визуализации алгоритмов не занимаюсь. Изобретайте, опробуйте любые методы, я не против :)


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

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

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

Так что работать всегда на минимуме желательно.


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

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Alexey_Donskoy писал(а):
...
Структурность, имхо, бывает разная:
- та, которая обусловлена неадекватностью представления алгоритма;
- та, которая способствует ясному пониманию и грамотному проектированию.

Не далее как совсем недавно Илья показывал, что топология направленного графа не сильно коррелирует со структурностью линейного текстового языка программирования. В данном случае как раз имеет место первая разновидность "структурности", от которой целесообразно избавляться.

Драконограф писал(а):
В иконе Выбор переменная выбора реально д.б. :) ...которая хранит тот самый номер, с которого слились на вход переключателя... ну и присвоить этот номер нужно явно при выходе с каждой развилки на слияние.
Упущено самое главное - в задаче НЕ НУЖЕН переключатель. Как и автоматность с флагами и т.п.
Об чём и речь :) что в данном случае его, видимо, пришлось ввести, чтобы избавиться от пересечения на плоскости :wink: Любые же соображения, исходящие из сути схемы (в частности - сложное поведение при решении задачи или нет), на её литеральной/абстрактной записи не построишь - нужна полнотекстовая.


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

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


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

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Alexey_Donskoy писал(а):
Драконограф писал(а):
в данном случае его, видимо, пришлось ввести, чтобы избавиться от пересечения на плоскости :wink: Любые же соображения, исходящие из сути схемы (в частности - сложное поведение при решении задачи или нет), на её литеральной/абстрактной записи не построишь - нужна полнотекстовая.
Дак и не нужны соображения по семантике.
Мы ж тут обсуждаем эргономичность отображения графа на плоскость, только и всего.
Если правила такового отображения требуют чего-то большего, чем инвертировать развилку, то, видимо, правила эти совсем не оптимальны с точки зрения эргономики.
Да. В то же время есть ещё одна сторона дела - в зависимости от смысла задачи употребление ЦД (и связанное с применением ЯВС-метода - как в этом примере, и продиктованное независимыми соображениями - как в этом примере) именно могут позволять эргономично отобразить граф алгоритма на плоскость. Так сказать, перенести в "шапку" визуала условные переходы, продиктованные семантикой задачи (заместив ими силуэтные БП, просто называющие ветки).


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Ну-с, продолжим ;)
Показан кусочек алгоритма обработки некоего прерывания.

Вложение:
q3m.PNG
q3m.PNG [ 69.01 КБ | Просмотров: 17997 ]


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

Все вопросы успешно решаются, если отменить ограничение на пересечения.
Если же не отменять, то уж я не знаю, что делать...


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

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 54
Alexey_Donskoy писал(а):
Все вопросы успешно решаются, если отменить ограничение на пересечения.
Если же не отменять, то уж я не знаю, что делать...
Купить 3-D очки... :roll:


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

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 54
Как создаются религии:
Владимир Паронджанов писал(а):
...
§8. ВЫВОДЫ
1. Алгоритмы следует рисовать как силуэты.
2. Сложные алгоритмы следует изображать как силуэты, в которых
многократно используются иконы «вставка». Последние, в свою очередь,
раскрываются как силуэты и т.д.
3. В сложных случаях удобно использовать многостраничные силуэты.
4. Примитивы рекомендуется применять только в крайних случаях.

Джонатан Свифт. «Путешествия Гулливера» писал(а):
…Насчитывают до одиннадцати тысяч фанатиков, которые в течение этого времени пошли на казнь, лишь бы не разбивать яйца с острого конца. Были напечатаны сотни огромных томов, посвящённых этой полемике, но книги Тупоконечников давно запрещены, и вся партия лишена законом права занимать государственные должности. В течение этих смут императоры Блефуску часто через своих посланников делали нам предостережения, обвиняя нас в церковном расколе путём нарушения основного догмата великого нашего пророка Люстрога, изложенного в пятьдесят четвёртой главе Блундекраля (являющегося их Алькораном). Между тем это просто насильственное толкование текста, подлинные слова которого гласят: Все истинно верующие да разбивают яйца с того конца, с какого удобнее.


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

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


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

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

Тут противоречие: в большинстве алгоритмов запрет на пересечения стимулирует лучшую их структурированность, но есть ряд ситуаций, где нет (где наблюдается равноправие маршрутов, и их никак не упорядочить).

Возможно, разрешить знак "переход на адрес" в середине схемы, чтобы не тянуть линию вниз, с пересечениями?


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

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

У нас что - топология графа принципиально изменяется, что ли? Да нифига.
А что нас не устравивает? Исключительно отображение графа на плоскость.

Блин, да формулируйте же задачу, наконец! Исходя из эргономики, как основного критерия.
Какое там решение получится - с пересечениями или с разрывом, я не знаю. Исследовать надо.
Но вижу, что никто не решает ту задачу, которую действительно нужно решать, потому что она назрела уже давно.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Я, к сожалению, пока не применяю повседневно ДРАКОН, поэтому участвую в размышлениях осторожно. Но думаю, что Вы столкнулись с объективной проблемой, которую решать надо.

Мне тоже кажется, что важна топология графа, а не планарность сама по себе. Можно просто ввести эргономический критерий - минимизация пересечений. Ну и правило, что более 1-2-х, например, пересечений в одной ветке - это признак очень плохой схемы, которую надо переделывать.


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

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 54
Alexey_Donskoy писал(а):
Я сначала долго занимался тем, что привлекал внимание к полезным эргономическим идеям.
Эргономика благополучно осталась за бортом как ненужное теоретическое обоснование, которое никто не читает.
И теперь приходится подкапывать окаменевший монолит, дабы необходимость дальнейшего развития стала очевидна - хотя бы через практические неудобства. Да куда там...
Не возьмусь говорить о "рисовании" алгоритмов, но вот базы данных "рисую" очень давно. Там тоже есть проблема пересечений связей между отношениями (ER-диаграммы). За полвека никто из "базовиков" не предложил хорошего решения. Используют два варианта, каждый из которых имеет свои плюсы и минусы:
1. Оставляют пересечения, как есть;
2. Дублируют сущность, связь с которой вызывает пересечения, в другом месте, где таких пересечений нет. Дубль помечают примерно так: RELATION: CUSTOMERS : 3. Цифра "3" означает, что это третий дубль.

Первый вариант хорош тем, что, собственно, не содержит дублей, только основные изображения отношений с их связями. Его недостаток в том, что надо тратить время на поиск оптимального расположения отношений и "хитроумную" отрисовку связей, в частности, минимизирующих количество пересечений.
Недостаток второго варианта в том, что дубль отрывается от окружения (связей с другими отношениями), в котором находилось данное отношение. И чтобы полностью восстановить окружение, надо искать все дубли данного отношения. Это крайне неудобно (затратно по времени) и значительно снижает наглядность.

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


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

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

Подозреваю, что когнитивная эргономика от пересечений зависит не так уж сильно ;)


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

Зарегистрирован: Суббота, 27 Февраль, 2010 23:34
Сообщения: 54
Илья Ермаков писал(а):
Мне тоже кажется, что важна топология графа, а не планарность сама по себе. Можно просто ввести эргономический критерий - минимизация пересечений. Ну и правило, что более 1-2-х, например, пересечений в одной ветке - это признак очень плохой схемы, которую надо переделывать.
Критерий, на мой взгляд, правильный, а вот количественные оценки, я бы убрал. Лучше показать приемы, позволяющие снизить количество пересечений, чем... вешать ярлыки. IMHO.


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

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


В больше половины случаев таки для алгоритмов этот критерий ведёт к более структурированным, ясным алгоритмам. Убрать его вообще - так из лени вообще не будет стимула улучшать структуру первого найденного алгоритма. Нарисовали - и шут с ним.


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

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


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
Ну, например, откуда автоматике знать смысл веток, при рокировке развилок?


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

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1098
Откуда: Россия, Чебоксары
Илья Ермаков писал(а):
Ну, например, откуда автоматике знать смысл веток, при рокировке развилок?
А человеку откуда? ;)

Вот, к примеру, ветка А изображает самый частый путь (9 из 10 прерываний, например), а ветка Б - основную работу, которая, однако, выполняется 1 из 10 раз. Ну и как расставлять приоритеты? ;)


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

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


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

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


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

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