DRAKON.SU

Текущее время: Вторник, 24 Ноябрь, 2020 18:08

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 09 Февраль, 2020 19:19 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 419
Откуда: Астрахань-Сочи
По собственному опыту, а также по итогам общения с Муравицким Алексеем пришел к выводу, что в ДРАКОН-схемах была бы полезна новая иконка: "Композитный ввод-вывод", или проще "Преобразователь".
Существуют функции, на вход которых подается некое число параметров, и на выходе мы тоже имеем некое число выходных параметров. Для таких функций полезной будет иконка с тремя текстовыми полями, описывающими соответственно Ввод, Наименование функции и её Вывод. В качестве Ввода могут выступать имена переменных, списки, числовые данные, устройства ввода. В качестве Вывода аналогично могут выступать имена переменных, списки, числовые данные, устройства вывода.
Вложение:
Комментарий к файлу: Вариант №1 иконы "Преобразователь"
сумматор1.PNG
сумматор1.PNG [ 21.97 КБ | Просмотров: 1047 ]

Вложение:
Комментарий к файлу: Вариант №2 иконы "Преобразователь"
сумматор2.PNG
сумматор2.PNG [ 21.12 КБ | Просмотров: 1047 ]


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 09 Февраль, 2020 20:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4945
Откуда: Москва
Из двух представленных рисунков лучше верхний, ибо он имеет более простую форму.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 10:14 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 419
Откуда: Астрахань-Сочи
Очевидные преимущества:
1. В случае, если мы описываем многократное преобразование данных, то количество отображаемых традиционных икон увеличивается двух-трехкратно. В случае же с иконой "Преобразователь" количество икон соответствует этапам преобразования.

2. В классическом ДРАКОНе бедно представлены инструменты работы с данными, для чего требуется вспомогательная система (Чижик-Пыжик ГРАФИТ-ФЛОКС). В случае с Преобразователем мы частично решаем эту проблему, позволив последовательным иконкам для Ввода использовать Вывод предыдущей. Получается визуализация простейшего приема "Два пишем, три в уме". Традиционные иконы такой возможности акцентирования не дают.
Вложение:
сумматор31.png
сумматор31.png [ 30.98 КБ | Просмотров: 1027 ]


3. Используя прием из п.2, как мне кажется, довольно легко описывать простые нейросети, привлекая тем самым к данной тематике внимание непрограммистов. В любом случае, обученный Перцептрон такой иконой описывается замечательно. (Способ обучения, думаю, можно рассматривать отдельно. На ДРАКОНе это направление - "поле непаханное".)

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

Неочевидные моменты:
5. Преобразователь позволяет сохранить высокую понимаемость диаграмм ДРАКОНа. Например, операция обмена значениями двух переменных может быть описана тремя иконами Полка, с использованием буферной переменной: буф = А; А = Б; Б = буф. В этом случае вводится новый элемент, временная переменная, что никак не ускоряет понимание схемы, число элементов которой итак велико.
Можно записать этот обмен быстрее: А,Б = Б,А; или, если переменные глобальные, с привлечением внешней функции ОБМЕН(А,Б). Но в случае А,Б = Б,А ускользает представление об иконе Полка, как о способе работы с одной переменной, или с одним объектом, ведь в верхнем текстовом поле будут упоминаться две переменные. В случае с привлечением сторонней функции появляются вопросы к характеру работы с переменными. В случае с Преобразователем такая операция становится предельно понятной: в верхнем тексте перечисляются исходные данные, а в нижнем тексте - итоговые, причем очередность перечисления переменных в нижнем текстовом поле перестает нести процедурный характер, т.к. не обязана описывать способ обмена. Этот способ описывается в среднем текстовом поле явно, ссылаясь на внешнюю функцию: Обмен, Ротация, Перемешивание и т.п.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 19:57 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 419
Откуда: Астрахань-Сочи
6. Оформленный Преобразователь позволяет удобно разделить параметры, код/название обработчика и выходные данные. Это упрощает работу с данными, например, подобно CoDeSys. Причем одновременно можно определять и входные, и выходные потоки. Это важно при визуальном контроле ввода-вывода. И при потоковой визуализации работы алгоритма.
Изображение


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 20:07 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 374
Дмитрий Бардынин писал(а):
В классическом ДРАКОНе бедно представлены инструменты работы с данными, для чего требуется вспомогательная система (Чижик-Пыжик ГРАФИТ-ФЛОКС). В случае с Преобразователем мы частично решаем эту проблему, позволив последовательным иконкам для Ввода использовать Вывод предыдущей...

Здесь на форуме когда-то рассматривался более универсальный подход отражения потока данных, а-ля операторные схемы, не только для последовательного соединения. Например:
https://forum.drakon.su/viewtopic.php?p=89395#p89395


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Февраль, 2020 20:21 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 419
Откуда: Астрахань-Сочи
PSV100 писал(а):
Дмитрий Бардынин писал(а):
В классическом ДРАКОНе бедно представлены инструменты работы с данными, для чего требуется вспомогательная система (Чижик-Пыжик ГРАФИТ-ФЛОКС). В случае с Преобразователем мы частично решаем эту проблему, позволив последовательным иконкам для Ввода использовать Вывод предыдущей...

Здесь на форуме когда-то рассматривался более универсальный подход отражения потока данных, а-ля операторные схемы, не только для последовательного соединения. Например:
https://forum.drakon.su/viewtopic.php?p=89395#p89395

Да, я видел подобные схемы, и сам обдумывал такие варианты. Мне представляется, что решение, предложенное andr, достаточно интересное. Однако, у него есть сильный минус: мы вынуждены удерживать в поле зрения две диаграммы: потока управления и потока данных. Мой способ дает щадящий режим подачи информации о данных. Мы их обозначаем явно, или неявно, но в диаграмме отображаем их наличие. Так мы не привязаны к визуально скрытым переменным, и не обязаны их учитывать. Что показали в диаграмме - то и используется в алгоритме.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 26 Август, 2020 14:59 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 419
Откуда: Астрахань-Сочи
В экспериментальной версии редактора DrakonBar реализован блок Преобразователь, как концепт-гибрид икон "Ввод" и "Вывод". Уже сейчас понятно, что он наглядно сообщает читателю, что в результате работы блока есть явные данные, если их описали как переменные, и неявные, если окна пустые.

Если ничего не описано на выходе, значит Преобразователь сохранил что-то в среде, в стеке или в глобальных переменных. То самое значение "Икс в уме". Эта логика похожа на логику иконы "Вывод", когда данные являются параметром некой функции/процедуры, но в деталях отличается, т.к. в "Выводе" имеющийся результат, сохраненный в глобальных переменных, никак не отображается.
Вложение:
Вывод-преобразователь.png
Вывод-преобразователь.png [ 4.55 КБ | Просмотров: 363 ]

В случае, если входная ячейка пуста, то логика работы напоминает икону "Ввод", когда некая функция записывает значение в переменную. Однако пустой вход поясняет, что для работы Преобразователя не просто использовалась некая функция/процедура, но и еще некие значения "Икс в уме".
Вложение:
Ввод-Преобразователь.png
Ввод-Преобразователь.png [ 4.46 КБ | Просмотров: 363 ]


В результате оценки графики всплыло интересное наблюдение: икона Вывод сверху изображает получателя, а снизу - отправляемые данные. Это несколько выбивается из бытовой логики подготовки к отправке сообщений, когда сначала определяется Сообщение, а затем Приемник. Думается, что перевернутое по горизонтали изображение иконки Вывод выглядело бы логичнее.
У иконки Ввод очередность при движении взгляда сверху-вниз соответствует: Источник => Сообщение. У иконки Полка очередность тоже соответствует: Хранилище => Содержимое.


ПС: Дизайн Преобразователя не окончательный, можно его скорректировать. Например, может быть разместить прямоугольные области сверху и снизу, а в центре рисовать продольную стрелку.

Например, так:
Вложение:
Вариант преобразователя.png
Вариант преобразователя.png [ 2.09 КБ | Просмотров: 363 ]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


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

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


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

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