DRAKON.SU

Текущее время: Вторник, 21 Август, 2018 18:27

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Пятница, 22 Июнь, 2018 11:53 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
Наборы операторов

Итак на первом плане параллельной (и последовательной) алгоритмики
выявлются наборы операторов алгоритмов и программ.

В неформальном определении структурной формулы алгоритма типа набора операторов:

Ai = (Ai1, Ai2, ..., Ain)

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

Ai = (Zi1, Zi2, ..., Zin)

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

A100 = Ab -> (A1 || A2 || A3 || A4 || A5) -> Ae

с явным наличием знаков последовательной связи (или секвенции) "->"
и параллельной связи (или "параллели) "||" операторов (простых или составных),
а также, возможно, других типов связей в стурктурах условных ветвлений и циклов.
Однако составляющие операторы Ai1, Ai2, ..., Ain общего набора операторов
могут быть взаимосвязаны и взаимодействовать между собой
по их внутренним компонентам.
Но это (пока) никак не отображается в исходном представлении набора операторов.

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

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

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

Пример 3.
Алгоритм типа набора операторов (их предыдущего поста):
A50 = (Z30, Z10, Z15, Z20)
может интерпретироваться как исходный общий алгоритм работы малой локальной сети,
например, домашних сети или малого дисплейного класса.

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

------------------------------------
Пример простого одноакторного набора операторов алгоритмов.
Алгоритм ручного управления домашним роботом-пылесосом:

Вложение:
01 A310 СФА.PNG
01 A310 СФА.PNG [ 28.79 КБ | Просмотров: 505 ]

Вложение:
02 A310 ССА.PNG
02 A310 ССА.PNG [ 66.2 КБ | Просмотров: 505 ]

Многополюсная модификация исходного алгоритма:
Вложение:
03 A310 ССА'.PNG
03 A310 ССА'.PNG [ 60.38 КБ | Просмотров: 505 ]

Вложение:
04 A310 Соглашение.PNG
04 A310 Соглашение.PNG [ 20.3 КБ | Просмотров: 505 ]

Элементы управления:
Вложение:
05 A310 Клава.PNG
05 A310 Клава.PNG [ 70.56 КБ | Просмотров: 505 ]

Порядки выполнения составляющих алгоритмов:
Вложение:
06 A310 Комбинации.PNG
06 A310 Комбинации.PNG [ 35.62 КБ | Просмотров: 505 ]

Варианты 3 и 4 в принципе недопустимы:
задаются противоречивые действия одновременного поворота Налево и Направо.
Необходимо применение защиты типа:
взаимное исключение 2-х процессов.

В данном примере (для алгоритма A310) это преднамеренно не реализуется:
для экспериментов и как подготовка для последующих построений
(алгоритмы A320, A330, ...).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Июнь, 2018 10:46 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы
(текущие промежуточные итоги)


Термин "наборный алгоритм" - не очень обычный и это временный рабочий термин
(до подбора более подходящего).
Наборный алгоритм - это алгоритм типа:
набор операторов алгоритмов (составных операторов) и отдельных комнад (простых операторов).

Например, алгоритм (из предыдущего поста):

A310 = (A311, A312, A313).

Составляющие его частные алгоритмы A311, A312, A313 можно выполнять в общем случае
в произвольном последовательном и параллельном порядке
(даже одним исполнителем - актором),
причем, возможно, с неоднократными посторениями действий.

Например, набор трех алгоритмов управления отдельными "маневровыми" действиями
домашнего робота-пылесоса:
A311: ход Вперед (с автоматическими отскоками от стен и других препятсвий),
A312: поворот Налево, A313: поворот Направо - повороты диска тела робота-пылесоса
на месте вокруг своей оси.
Команды подаются с пульта дистанционного управления роботом в режиме ручного управления.

Здесь можно выполнять данные действия по отдельности в любом последовательном порядке
(нажимами кнопок управления короткой и произвольной длительности).
Например:
Вложение:
01 VCRobot Сцена.PNG
01 VCRobot Сцена.PNG [ 62.02 КБ | Просмотров: 487 ]

Могут одновременно выполняться две комнады "Вперед + Налево" или "Вперед + Направо":
будет движение по некоторой дуге окружности (как поворот автомобиля) - с отскоками от стен.
Например:
Вложение:
02 VCRobot F + L.PNG
02 VCRobot F + L.PNG [ 60.64 КБ | Просмотров: 487 ]

Одновременно выполняются два частных алгоритма (A311 и A312) или (A311 и A313).
Корпус робота-пылесоса - это единственный исполнитель (один актор) всех маневровых действий.

В данном (первом варианте) решения задачи (программно реализуется общий алгоритм A310)
в порядке эксперимента и подготовки последующих вариантов
возможная работа по другим комбинациям кнопок управления с противоречивыми условиями:
"Налево + Направо" - выполняются 2 частных алгоритма (A312 и A113);
"Вперед + Налево + Направо" - выполняются 3 частных алгоритма (A311 и A312 и A113).
Появляются колебательная составляющая действий робота-пылесоса - на месте и по ходу вперед:
в поочередном выполнении процессов малыми квантами времени
(для многопоточной программной реализации общего алгоритма A310).

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

--------------------------------------------------------
В первом посте данной темы приводятся:
1)
Два примера:
Пример 1.
Перебор проверок условий в произвольном порядке:
в произвольной последовательности действий одного исполнителя.
Пример 2.
Собрать чемодан - в произвольной порядке.
Это более общая задача.
Даже один исполнитель может выполнять работу не только последовательно,
но и с элементами параллелизма, например, работая 2-мя руками.
(пока не рассматривается вариант с 2-мя исполнителями - при подготовке в спешке, и т.п.)
2)
Вопрос:
- Как это нарисовать на Драконе?

Уважаемый Степан Митькин предложил использовать чек-листы (контрольные списки).
Например:
Вложение:
03 chevmodan.png
03 chevmodan.png [ 21.69 КБ | Просмотров: 487 ]

Это очень полезная идея:
в смысле привлечения и освоение разных конкретных методологий работы с чек-листами.
Но при этом:
1)
Такие чек-листы в первую очередь визуально представляют собой
некоторую структуру данных - двух-уровневую в данном случае.
2)
Их можно как-то очень условно интерпретировать
как алгоритм выполнения действий в произвольном порядке.
И представляет интерес, как это происходит в разных методологиях работы с чек-листами.
3)
Пока нет прямого ответа на вопрос:
Как это нарисовать на Драконе?

Здесь можно привлечь наборы операторов алгоритмов
(это не навязывание особого подхода, а информация к размышлению):

A = (A1: Одежда, A2: Белье, A3: Аксессуары, A4: Важное)
A1 = (A11, A12, A13)
A2 = (A21, A22, A23)
A3 = (A31, A32, A33, A34)
A4 = (A41, A42, A43, A44)

Подстановками получается двухуровневый составной общий алгоритм наборного типа:
A = ((A11, A12, A13), (A21, A22, A23), (A31, A32, A33, A34), (A41, A42, A43, A44))

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

-----------------------------------------------
Как все это отобразить на драконе?
Этот проблемный вопрос будет рассматриваться
в каком-то очередном посте автора данного поста.

Пока приводится такое замечание:
Вложение:
04 ВербИтерпре.png
04 ВербИтерпре.png [ 95.38 КБ | Просмотров: 487 ]
Вложение:
05 ВербИтерпре Пример.png
05 ВербИтерпре Пример.png [ 25.29 КБ | Просмотров: 487 ]

==================================
На самом деле сбор вещей в некоторую "тару" в произвольном порядке выполнения действий
это большой класс задач с разными подклассами.

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

================================
Автор данного поста впервые столкнулся с задачами подобного типа
еще в начале далеких 70-х годов в разработках задач АСУ.
В частности при обследования производственных участков крупного цеха
был обраружен следующий поразительный факт:
мастера производственных участков
изменяют заданный технологической документацией
порядок выполнения технологических операций.
Формально это грубое нарушение технологической дисциплины.
И где?:
в ответственном оборонном производстве
(с высокой в общем случае производственной культурой) !???.
Стали разбираться (без шуму, втихаря - между собой).

Выяснились следующие обстоятельства:
1)
Это был цех корпусных деталей.
2)
Характерна была поочередная многосторонняя обработка корпусных деталей.
3)
Продукция была сложная, с постоянной спец.наладкой оборудования рабочих мест
(без их оперативной переналадки).
4)
Если у мастера участка было занято необходимое рабочее место
для выполнения очередной операции партии деталей,
то он мог назначит выполнение следующей операции,
а потом вернуться на выполнение пропущенной операции.
5)
Теоретически это вполне допустимо.
Но такие варианты должен санкционировать технолог
(разработчик технологии).
6)
Описание технологии традиционно - это последовательный алгоритм выполнения
технологических операций.
Цитата:
Появилась неясная проблемная задача:
как технолог может указать произвольный порядок обработки
разных сторон корпусных деталей.

7)
Ясно, что она была связана с потенциальным параллелизмом многосторонней обработки,
который может быть реализован или не реализован.
8 )
Реализация потенциального параллелизма многосторонней обработки корпусных деталей
использовалась с применением агрегатных станков
на автоматических линиях в массовом производстве.
Но здесь было серийное производство
(Там начинали внедряться обрабатывающие центры сверлильно-фрезерно-расточного типа.
Происходила концентрация технологических операций на рабочих местах,
включая многосторонню обработку, но последовательного типа).

========================
Эту задачу тогда не удалось довести до ума, но она пошла на ум.
Постепенно стали подбираться другие аналогичные задачи разного типа,
что-то прояснялось, накаливалось.
Но все это еще было не очень актуально в массовом порядке
(в личном плане, по крайней мере).
Но постепенно проблема стала назревать.
Например, перспективы освоения задач группового управления роботами.
В частности, имитация (группами дронов) стайного поведения животных.
Например:
Вложение:
06 Стая.PNG
06 Стая.PNG [ 1.05 МБ | Просмотров: 487 ]

Стайное поведение характерно и для человека, например:
-- в толпе;
-- в атаке взвода на противника и т.п.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 03 Июль, 2018 16:40 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы.

Идея примера типа: упаковка чемодана


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

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

Предусматривается программная реализация алгоритма
в среде визуального программирования Scratch:
это учебный конструктор интерактивных мультимедийных игр и презентаций.
Он начинает применяться для задач визуального программирования
роботизированных учебно-игровых лего-комплектов.
Это образовательная робототехника:
впадаем в детство - по ряду объективных и субъективных причин.

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

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

-------------------------
Пока идея такого примера очень смутная,
но постепенно она конкретизируется (в голове автора).
Может быть кто-то может прикинуть что-то в этом роде?

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

Это будет образец
поэтапного вывода конечного решения
(с элементами исследования алгоритмической задачи).

--------------------------
Одновременно обсуждается поставленный в начале данной темы вопрос:
как это представить в Драконе?
Точнее, как это представить
в уникальной, прогрессивной и перспективной идеологии
видуального блок-схемного языка Дракон?

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

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

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

---------------------------------------------
Например:

1) Очень пролематичное требование Дракон-концепции:
посмотрел на блок-схему, и сразу все понял.
Контр-пример:
Посмотрел на электронную схему, и ... ???

2) Неприемлемой для технических приложений является практика:
втискивать во входной овальный терминатор блок-схемы
обширную информацию по назначению алгоритма или программы.
В технических приложениях входные терминаторы имеют физический смысл:
это комнады с элементов управления.
Так было в первом международном стандарте по блок-схемам.
А потом пипл потерял физический смыс:
также по рядку причин.
И пошло-поехало - схемная вольница.

3) Как "затолкать" одну или несколько блок-схем технических алгоритмов
на одну страницу формата A4?
Раньше (при коммунизме) в конструкторско-технологических бюро
блок-схемы рисовалась не на листах формата А4 пояснительной записки,
а на листах формата А2 (реже А3):
вместе со схемами объектов управления.
Они подшивались в конце пояснительной записки, или прикладывались к ней в отдельной папке.
Как это сейчас поисходит в КБ, СКТБ и т.п.,
у автора данного поста таких сведений нет.

4) И т.д.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Июль, 2018 23:16 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 342
andr писал(а):
Раньше (при коммунизме) в конструкторско-технологических бюро
блок-схемы рисовалась не на листах формата А4 пояснительной записки,
а на листах формата А2 (реже А3):
вместе со схемами объектов управления. Они подшивались в конце пояснительной записки, или прикладывались к ней в отдельной папке. Как это сейчас поисходит в КБ, СКТБ и т.п., у автора данного поста таких сведений нет

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Июль, 2018 17:27 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
TAU писал(а):
andr писал(а):
Раньше (при коммунизме) в конструкторско-технологических бюро
блок-схемы рисовалась не на листах формата А4 пояснительной записки,
а на листах формата А2 (реже А3):
вместе со схемами объектов управления. Они подшивались в конце пояснительной записки, или прикладывались к ней в отдельной папке. Как это сейчас поисходит в КБ, СКТБ и т.п., у автора данного поста таких сведений нет

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

Большое спасибо за информацию - полезно для поддержания текущего кругозора.

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

Поэтому полезно продолжить текущую тему.

Сборочные комплекты деталей
Формирование комплектов в произвольном порядке
(уточнение постановки задачи).
И как это отобразить в Драконе?

Сборочный комплект - это группа составных частей изделия (деталей и узлов),
которые необходимо подать на рабочее место для сборки изделия или его составной части (узла).
Автор данного поста не имеет опыта работы с автоматизацией сборки,
сборочными комплектами и комплектовочными работами.
И в интернете пока не видно внятной информации по этому поводу - с чертежами, схемами и картиками.

Но есть близкая к этому тематика:
1)
Инструментально-раздаточные комплекты:
формируются в инструментально-раздаточных кладовых механических (и других) цехов.
2)
Комплекты (наборы) инструментов или слесарных деталей - на продажу в магазинах:
-- в разного типа инструментальных чемоданчиках и чемоданах типа "дипломат",
-- в прозрачных подвесных контейнерах и т.п.
Вложение:
Наборы инструментов.PNG
Наборы инструментов.PNG [ 1.2 МБ | Просмотров: 364 ]

Фактически мы снова вернулись к задаче типа 2 (в начале данной темы):
укладка вещей в чемодан - в произвольном порядке выполнения действий.
Однако здесь имеются более чектие и техничные условия:
-- вполне определенный состав (содержание) комплектов и наборов;
-- наличие запасов элементов на комплектовочном рабочем месте
(не надо бегать - искать по магазинам);
-- хорошо проработаная компоновка тары с укладочными позициями инструмента и деталей;
-- достаточно рациональная организация рабочего места комплектовщика:
все под руками и т.п.

Основная проблема - большой численный состав комплектов (и наборов) в общем случае.
Хотя достаточно легко подобрать реальные примеры с небольшой численность состава комплектов
(можно посмотреть в интструментальных отделах супермаркетов).

Несколько более сложная задача:
комплектовочные работы с инструментльно-разрадочными комплектами.
Например - инструментально-комплектовочная тележка:
Вложение:
Тележка.PNG
Тележка.PNG [ 188.06 КБ | Просмотров: 364 ]

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

Ясно, что здесь необходимо как-то зацикливать комплектовочные работы.
Но как при этом строго задать произвольный порядок выполнения комплектовочных действий?
И как это отобразить в Драконе?

Мы вернулись к исходным вопросам, но уже на существенно более четкой основе.
Готового решения у автора данного поста пока все еще нет.
Хотя уже много существенно проясняется и уточняется.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Июль, 2018 10:45 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы


Комплект решений алгоритмической задачи
(текущее состояние):
Ручное управление домашним роботом-пылесосом
(с пульта дистанционного управления).

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

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

---------------------------------------------------
1
Алгоритм A310: без взаимного исключения поворотов налево и направо
Текущий вариант.

1.1
Общее алгоритмическое описание задачи

Структурная формула алгоритма:
A310 = (A311, A312, A313).
Общий алгоритм A310 представляет собой набор операторов A311, A312, A313
трех частных алгоритмов управления отдельными (маневровыми) действиями робота,
где
A311 – алгоритм выполнения хода Вперед;
A312 – алгоритм выполнения поворота Налево;
A313 – алгоритм выполнения поворота Направо..

Блок-схема алгоритма:
Вложение:
A310 БСА 01.PNG
A310 БСА 01.PNG [ 37.02 КБ | Просмотров: 354 ]

Многополюсная модификация схемы алгоритма
(многополюсное последовательное соединение двух наборов операторов):
Вложение:
A310 БСА 02.PNG
A310 БСА 02.PNG [ 41.43 КБ | Просмотров: 354 ]

Программной реализации в среде Scratch подлежит блок A310"
(выделен полужирным прямоугольным контуром):
это набор алгоритмов A1, A2, A3 исполнения внешних команд.
Элементы блока A310' уже реализованы в среде программирования
и не подлежат программной реализации:
это внешние ручные команды от стрелочных клавиш клавиатуры.

1.2
Программная реализация алгоритма A310
Скрэтч-прорамма VCRobot v10:
https://scratch.mit.edu/projects/230867102/#editor

Далее (Рис. 8.9) представлены скрипты объекта-спрайта робота-пылесоса
в составе имитационной программы VCRobot v10 (версия v10)
Вложение:
A310 03 скрипты v10.PNG
A310 03 скрипты v10.PNG [ 308.89 КБ | Просмотров: 354 ]

Программно реализован расширенный набор алгоритмов
A310'' = (A0, A1(k1), A2(k2), A3(k3)) = (A0, A1(f), A2(l), A3(r))
где
A0 - вспомогательный подготовительный алгоритм
установки начальных условий работы программы.

Скрипты могут располагаться в наборном поле страйта робота-пылесоса в любом порядке.
Все скрипты начинаются оператором ожидания некоторого события:
это клик иконки Зленый Флаг - начало сеанса моделирования
или
нажим стрелочной клавиши комнады управления действиями спрайта робота.
Каждый скрипт создает свой независимый поток управления
(в общем составе потоков многопоточной реализации скрэтч-программы).

-----------------------------
Работа такой программы:
1)
При кратковременном нажиме стрелочных клавиш выполняются короткие действия:
-- ход Вперед на 5 (микро-) шагов;
-- поворот Налево на 5 градусов;
-- поворот Направо на 5 градусов.
2)
При длительном нажиме стрелочных клавиш
выполняются серии коротких действий произвольной длительности
(пока клавиши нажаты).
То есть существуют синтаксически неявные циклы
выполнения скриптов управления отдельными действиями.
3)
Возможны комбинационные варианты применения клавиш управления движениями:
3.1)
Поочередные нажимы любых клавиш в любом порядке:
получается в общем случае ломаная прямая траектории движения.
3.2)
Одновременные нажимы двух клавиш:
3.2.1)
Вперед + Налево или Вперед + Направо:
возникает движение по некоторой дуге окружности.
Практически это, по-видимому, не очень актуально для работы с роботом-пылесосом,
но для теории полезно:
это пример реализации параллелизма действий одного исполнителя.
3.2.2)
Налево + Направо - противоречивые комнады:
-- в реальных системах необходимо взаимное исключение
процессов выполнения противоречивых команд;
-- однако в данном случае это не применяется - в опытном порядке:
для экспериментов с программной.
3.3)
Вперед + Налево + Направо:
это тоже в данной программе не исключается - в опытном порядке.

------------------------
Основная особенность программной реализации алгоритма A310:
наличие синтаксически неявных циклов выполнения
скриптов управления действиями робота-пылесоса
при длительном нажиме стрелочных клавишь клавиатуры.
Это является следствием
некоторой событийно-ориентированной парадигмы
среды программирования Scratch.
В данном случае это полезно для экспериментов.
Но желательно обеспечить четко организованные и хорошо контролируемые
синтаксически явные циклы для скриптов управления действиями робота-пылесоса.

Продолжение следует (алгоритм A320)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Июль, 2018 13:51 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
andr писал(а):
Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы


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

------------------------
Основная особенность программной реализации алгоритма A310:
наличие синтаксически неявных циклов выполнения
скриптов управления действиями робота-пылесоса
при длительном нажиме стрелочных клавишь клавиатуры.
Это является следствием
некоторой событийно-ориентированной парадигмы
среды программирования Scratch.
В данном случае это полезно для экспериментов.
Но желательно обеспечить четко организованные и хорошо контролируемые
синтаксически явные циклы для скриптов управления действиями робота-пылесоса.

Продолжение следует (алгоритм A320)


Алгоритм A320: организация явных частных циклов

Есть возможность явного и хорошо контролируемого зацикливания содержания основных скриптов программы.
С этой целью предусматривается организация синтаксически явных частных циклов
для скриптов выполнения команд робота-пылесоса – программной реализации алгоритмов выполнения хода вперед и поворотов.
Рассматривается наборный алгоритм A320 выполнения модельной программы VCRobot v20.sb2 (версии v20):
https://scratch.mit.edu/projects/230870077/#editor

1
Общее алгоритмическое описание задачи

1.1
Исходная структурная формула наборного алгоритма A320
Вложение:
A320 01 Исх СФА.PNG
A320 01 Исх СФА.PNG [ 36.65 КБ | Просмотров: 310 ]

1.2
Исходная общая структурная схема алгоритма A320
Вложение:
A320 03 ССА текст.PNG
A320 03 ССА текст.PNG [ 23.86 КБ | Просмотров: 310 ]

Вложение:
A320 02 Исх общ ССА.PNG
A320 02 Исх общ ССА.PNG [ 49.54 КБ | Просмотров: 310 ]

1.3
Уточнения структурной схемы
Вложение:
A320 04 Исх общ ССА.PNG
A320 04 Исх общ ССА.PNG [ 31.24 КБ | Просмотров: 310 ]

Вложение:
A320 05 СФА.PNG
A320 05 СФА.PNG [ 27.01 КБ | Просмотров: 310 ]

Вложение:
A320 06 СФА .PNG
A320 06 СФА .PNG [ 27.56 КБ | Просмотров: 310 ]

Вложение:
A320 07 СФА ССА.PNG
A320 07 СФА ССА.PNG [ 38.94 КБ | Просмотров: 310 ]

1.4
Рабочая блок-схема алгоритма
Полученной штрих-схеме соответствует (Рис. 8.18) итоговая рабочая блок-схема наборного алго-ритма A320.
Вложение:
A320 08 Рабочая БСА.PNG
A320 08 Рабочая БСА.PNG [ 60.74 КБ | Просмотров: 310 ]

Программной реализации скриптами в среде программирования Scratch
подлежит компонента, выделенная на этой схеме полужирным прямо-угольным блоком
и представляющая собой набор модифицированных операторов исполнения внешних команд.

1.5
Отображение частных циклов
Вложение:
A320 09 Рабочая БСА.PNG
A320 09 Рабочая БСА.PNG [ 51.61 КБ | Просмотров: 310 ]

Вложение:
A320 10 СФА Циклы.PNG
A320 10 СФА Циклы.PNG [ 65.17 КБ | Просмотров: 310 ]


Продолжение примера следует (перебор допустимого числа вставок)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Июль, 2018 14:04 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
andr писал(а):
Продолжение примера следует (перебор допустимого числа вставок)


2
Программная реализация алгоритма A320

2.1
Скрипты программы

Далее (Рис. 8.20) приводятся псевдокоды управления действиями спрайта робота-пылесоса в программе VCRobot v20.sb2.
Вложение:
A320 11 Скрипты.PNG
A320 11 Скрипты.PNG [ 219.14 КБ | Просмотров: 310 ]

Используются потенциально бесконечные циклы прогонов кода
(от начала до конца сеанса моделирования)
Вложение:
A320 12 Общий порядок.PNG
A320 12 Общий порядок.PNG [ 26.14 КБ | Просмотров: 310 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 20 Июль, 2018 13:57 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
andr писал(а):
andr писал(а):
Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы


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

Основная особенность программной реализации алгоритма A310:
наличие синтаксически неявных циклов выполнения
скриптов управления действиями робота-пылесоса
при длительном нажиме стрелочных клавишь клавиатуры.
Это является следствием
некоторой событийно-ориентированной парадигмы
среды программирования Scratch.
В данном случае это полезно для экспериментов.
Но желательно обеспечить четко организованные и хорошо контролируемые
синтаксически явные циклы для скриптов управления действиями робота-пылесоса.

Продолжение следует (алгоритм A320)


Алгоритм A320: организация явных частных циклов

Есть возможность явного и хорошо контролируемого зацикливания содержания основных скриптов программы.
С этой целью предусматривается организация синтаксически явных частных циклов
для скриптов выполнения команд робота-пылесоса – программной реализации алгоритмов выполнения хода вперед и поворотов.
Рассматривается наборный алгоритм A320 выполнения модельной программы VCRobot v20.sb2 (версии v20):
https://scratch.mit.edu/projects/230870077/#editor


Алгоритм А330: объединение частных циклов в общий цикл

Излагается задача объединения синтаксически явных циклов
исполнения алгоритмов выполнения малых ходов и поворотов
в один общий синтаксически явный цикл.
Рассматривается алгоритм A330 выполнения модельной программы VCRobot v30.sb2 (версии v30):
https://scratch.mit.edu/projects/230870519/#editor

1
Общее алгоритмическое описание задачи

Структурная формула наборного алгоритма A330
Принимается структурная формула общего алгоритма A330,
представляющего собой набор операторов A341, A342, A343
трех частных алгоритмов управления отдельными (маневровыми) действиями робота:

A330 = (A331, A332, A333).

Общий наборный алгоритм A330 включает в себя частные алгоритмы:
A331 – алгоритм выполнения хода "Вперед" (модификация алгоритма A321);
A332 – алгоритм выполнения поворота "Налево" (модификация A322);
A333 – алгоритм выполнения поворота "Направо" (модификация A323).

Однако в данном случае имеет место следующие особенности:
• явное исходное структурное представление отдельных операторов
алгоритмов A321, A322, A323 в формуле A330 = (A331, A332, A333);
• неявное реальное структурное представление отдельных операторов
алгоритмов A331, A332, A333 в последующей детализации алгоритма A330:
наличие их внутренней взаимосвязи.

Образуется связный набор операторов
с явным общим циклом (Рис. 8.23, Рис. 8.24, Табл. 8.35):
эти операторы сильно связны между собой структурно (условно сплетены),
но, тем не менее, работают относительно независимо.

Структурная схема алгоритма с общим циклом
Далее (Рис. 8.23) приводится схема алгоритма A330 с введением общего цикла
для всех алгоритмов A1, A2, A3 исполнения внешних команд.
Вложение:
A330 01 БСА.PNG
A330 01 БСА.PNG [ 47.05 КБ | Просмотров: 255 ]

Вложение:
A330 02 СФА.PNG
A330 02 СФА.PNG [ 18.76 КБ | Просмотров: 255 ]

Программной реализации скриптами в среде программирования Scratch
подлежит компонента A'(k0, k1, k2, k3) = A'(b, f, l, r),
выделенная на этой схеме полужирным прямоугольным блоком.

2
Программная реализация алгоритма A330

Далее (Рис. 8.25) скрипты алгоритмов A1, A2, A3 исполнения внешних комнад
объединяются в один общий скрипт
с одним общим циклом прогона частных скриптов
в составе программной реализации алгоритма A'(k0, k1, k2, k3) = A'(b, f, l, r).
Вложение:
A330 03 Скрипты.PNG
A330 03 Скрипты.PNG [ 189.05 КБ | Просмотров: 255 ]

Детализация блок-схемы алгоритма:
Вложение:
A330 04 Детализация БСА.PNG
A330 04 Детализация БСА.PNG [ 46 КБ | Просмотров: 255 ]

3
Работа программной реализации алгоритма A330

Общий порядок работы
Общий порядок работы программы также примерно сохраняется
по соотношению с программной реализацией алгоритмов A310 и A320:
1)
Сначала выполняется включение сеанса моделирования – кликом иконки зеленого флага.
При этом:
• происходит быстрая отработка алгоритма A0:
установка начальных условий;
• одновременно запускается общий цикл.
2)
Затем выполняется работа с клавишами клавиатуры:
нажимы клавиш в произвольном порядке и произвольной длительности.

Однако в составе общего цикла
образуется очередь просмотра кодов алгоритмов A1, A2, A3
с постоянным порядком их просмотра.
Это практически не обнаруживается в работе простой программы.
Однако в общем случае (для более сложных программ) учет данного факта
может быть полезным для понимания и объяснения разных тонких аспектов
взаимодействия кодов разных фрагментов программ.

==================================================
Далее для данной алгоритмической задачи
необходимо решение следующих вопросов:

1)
Введение взаимоисключения процессов ввыполнения
одновременной подачи противоречивых команд поворота Налево и Направо.
Это алгоритм A340:
Вложение:
A340 01 Исходная БСА.PNG
A340 01 Исходная БСА.PNG [ 46.68 КБ | Просмотров: 255 ]

В составе схемы просматриваются блоки с дополнительными инверсными входами,
которые представлены малыми черными кружками:
это входы запрета на исполнение операторов алгоритмов.
На эти входы подаются сигналы передачи управления, где они инвертируются.
При этом для краткости
используется правило записи инверсии (отрицания) логических переменных
типа Nx = !x.
Инверсные входы задают дополнительные инверсные параметры
Nk2 = !k2
Nl = !l
Nk3 = !k3
N r = !r
блоков алгоритмов A2(k2, !k3) = A2(l, !r) и A3(k3, !k2) = A3(r, !l) исполнения команд.

Программная реализация алгоритма A340:
https://scratch.mit.edu/projects/235882953/#editor
Вложение:
A340 02 Скрипты.PNG
A340 02 Скрипты.PNG [ 175.1 КБ | Просмотров: 255 ]


2)
Общее заверешние программной реализации алгоритмической задачи.
Это алгоритм A350.
Вложение:
A350 01 Скрипты.PNG
A350 01 Скрипты.PNG [ 161.5 КБ | Просмотров: 255 ]

Здесь объединяются скрит задания начальных условий
со скриптом отработки внешних команд.
Кроме того вводятся парамтерические переменные n1, n2, n3
задания величины малых ходов и поворотов в итерациях общего цикла.

===================
Рассмотренные примеры могут быть прототипами в некоторых отношениях
для задач формирования разных компектов в произвольном порядке:
сборочных комплектов, инструментально-разраточных комплектов,
торговых комплектов инструментов и других деталей и элеметов.

Это связано во второй исходной задачей в начале данной темы:
Цитата:
Сбор чемодана в командировку.
Неважно в каком порядке собирать - главное собрать всё.
Как это нарисовать на Драконе?

Данные комплектные задачи (в произвольном порядке), очевидно, отличаются
от рассмотренной задачи управления роботом пылесосом (в произвольном порядке).
Пока трудно это четко сформулировать(автору данного поста, по крайней мере).

Однако уже есть обширная информация к размышлению.
Надо думать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 13 Август, 2018 08:18 

Зарегистрирован: Четверг, 30 Январь, 2014 13:38
Сообщения: 422
andr писал(а):
===================
Рассмотренные примеры могут быть прототипами в некоторых отношениях
для задач формирования разных компектов в произвольном порядке:
сборочных комплектов, инструментально-разраточных комплектов,
торговых комплектов инструментов и других деталей и элеметов.

Это связано со второй исходной задачей в начале данной темы:
Цитата:
Сбор чемодана в командировку.
Неважно в каком порядке собирать - главное собрать всё.
Как это нарисовать на Драконе?

Данные комплектные задачи (в произвольном порядке), очевидно, отличаются
от рассмотренной задачи управления роботом пылесосом
(в произвольном порядке).
Пока трудно это четко сформулировать (автору данного поста, по крайней мере).

Однако уже есть обширная информация к размышлению.
Надо думать.

1
Некоторое продвижение по выявлению разницы этих двух типов задач:
1.1
Команды ручного управления роботом-пылесосом (или его имитационной модели)
Вперед, Налево и Направо - в произвольном (последовательном или параллельном) порядке
имеют накопительный принцип действия:
действия накапливаются в зависимости от длительности нажима кнопок (или клавиш) управления
(от одного малого хода вперед, налево или направо
до серии таких ходов неопределенно большой длины).
1.2
Команды формирования комплектов элементов в произвольном порядке
(в частности "Сбор чемодана в командировку.
Неважно в каком порядке собирать - главное собрать всё")
предполагают еденичный принцип действия:
любое действие выполняется один раз.
Кроме того предполагается последовательность действий в любом порядке.

2
Однако возможно обобщение задачи 1.2, допускающее параллелизм действий, например:
-- работа двумя руками;
-- привлечение помощников и т.п.

3
Возможно также обобщение задачи набора комплектов элементов
на использование накопительного принципа действий.

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

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

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

5
Теперь желательно подобрать и конструктивно расписать
достаточно реальную задачу указанного типа или подтипа:
-- технического (технологического) содержания;
-- любого другого содержания.


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

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


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

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


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

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