Наборы операторов на одного исполнителя
(одного актора - исполнителя действий, актов):
одноакторные наборные алгоритмы
(текущие промежуточные итоги)Термин "наборный алгоритм" - не очень обычный и это временный рабочий термин
(до подбора более подходящего).
Наборный алгоритм - это алгоритм типа:
набор операторов алгоритмов (составных операторов) и отдельных комнад (простых операторов).
Например, алгоритм (из предыдущего поста):
A310 = (A311, A312, A313).
Составляющие его частные алгоритмы A311, A312, A313 можно выполнять в общем случае
в произвольном последовательном и параллельном порядке
(даже одним исполнителем - актором),
причем, возможно, с неоднократными посторениями действий.
Например, набор трех алгоритмов управления отдельными "маневровыми" действиями
домашнего робота-пылесоса:
A311: ход Вперед (с автоматическими отскоками от стен и других препятсвий),
A312: поворот Налево, A313: поворот Направо - повороты диска тела робота-пылесоса
на месте вокруг своей оси.
Команды подаются с пульта дистанционного управления роботом в режиме ручного управления.
Здесь можно выполнять данные действия по отдельности в любом последовательном порядке
(нажимами кнопок управления короткой и произвольной длительности).
Например:
Вложение:
01 VCRobot Сцена.PNG [ 62.02 КБ | Просмотров: 5749 ]
Могут одновременно выполняться две комнады "Вперед + Налево" или "Вперед + Направо":
будет движение по некоторой дуге окружности (как поворот автомобиля) - с отскоками от стен.
Например:
Вложение:
02 VCRobot F + L.PNG [ 60.64 КБ | Просмотров: 5749 ]
Одновременно выполняются два частных алгоритма (A311 и A312) или (A311 и A313).
Корпус робота-пылесоса - это единственный исполнитель (один актор) всех маневровых действий.
В данном (первом варианте) решения задачи (программно реализуется общий алгоритм A310)
в порядке эксперимента и подготовки последующих вариантов
возможная работа по другим комбинациям кнопок управления с противоречивыми условиями:
"Налево + Направо" - выполняются 2 частных алгоритма (A312 и A113);
"Вперед + Налево + Направо" - выполняются 3 частных алгоритма (A311 и A312 и A113).
Появляются колебательная составляющая действий робота-пылесоса - на месте и по ходу вперед:
в поочередном выполнении процессов малыми квантами времени
(для многопоточной программной реализации общего алгоритма A310).
В последующих вариантах вводятся
взаимное исключение процессов выполнения 2-х противоречивых комнад (алгоритм A320)
и другие особенности.
--------------------------------------------------------
В первом посте данной темы приводятся:
1)
Два примера:
Пример 1.
Перебор проверок условий в произвольном порядке:
в произвольной последовательности действий одного исполнителя.
Пример 2.
Собрать чемодан - в произвольной порядке.
Это более общая задача.
Даже один исполнитель может выполнять работу не только последовательно,
но и с элементами параллелизма, например, работая 2-мя руками.
(пока не рассматривается вариант с 2-мя исполнителями - при подготовке в спешке, и т.п.)
2)
Вопрос:
-
Как это нарисовать на Драконе?Уважаемый Степан Митькин предложил использовать чек-листы (контрольные списки).
Например:
Вложение:
03 chevmodan.png [ 21.69 КБ | Просмотров: 5749 ]
Это очень полезная идея:
в смысле привлечения и освоение разных конкретных методологий работы с чек-листами.
Но при этом:
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 [ 95.38 КБ | Просмотров: 5749 ]
Вложение:
05 ВербИтерпре Пример.png [ 25.29 КБ | Просмотров: 5749 ]
==================================
На самом деле сбор вещей в некоторую "тару" в произвольном порядке выполнения действий
это большой класс задач с разными подклассами.
Например, подготовка рюкзака для турпохода - пешего, водного, на лыжах и т.п.
Это довольно сложная процедура с наличием длительных параллельных процессов
(в псевдопараллельном режиме их исполнения поочередно по частям).
Она обычно совмещается с групповыми параллельными действиями целой команды исполнителей:
закупка, распределение и упаковка продуктов (тушенка, сгущенка, картошка и т.д.),
достать, распределить и упаковать
большой, но легкий плоский котелок из нержавейки веденого объема,
палатки, дюралевые колышки, туристскую обувь (с хим-обработкой ботинок), спальники (лучше собственные) и т.п.
================================
Автор данного поста впервые столкнулся с задачами подобного типа
еще в начале далеких 70-х годов в разработках задач АСУ.
В частности при обследования производственных участков крупного цеха
был обраружен следующий поразительный факт:
мастера производственных участков
изменяют заданный технологической документацией
порядок выполнения технологических операций.
Формально это грубое нарушение технологической дисциплины.
И где?:
в ответственном оборонном производстве
(с высокой в общем случае производственной культурой) !???.
Стали разбираться (без шуму, втихаря - между собой).
Выяснились следующие обстоятельства:
1)
Это был цех корпусных деталей.
2)
Характерна была поочередная многосторонняя обработка корпусных деталей.
3)
Продукция была сложная, с постоянной спец.наладкой оборудования рабочих мест
(без их оперативной переналадки).
4)
Если у мастера участка было занято необходимое рабочее место
для выполнения очередной операции партии деталей,
то он мог назначит выполнение следующей операции,
а потом вернуться на выполнение пропущенной операции.
5)
Теоретически это вполне допустимо.
Но такие варианты должен санкционировать технолог
(разработчик технологии).
6)
Описание технологии традиционно - это последовательный алгоритм выполнения
технологических операций.
Цитата:
Появилась неясная проблемная задача:
как технолог может указать произвольный порядок обработки
разных сторон корпусных деталей.
7)
Ясно, что она была связана с потенциальным параллелизмом многосторонней обработки,
который может быть реализован или не реализован.
8 )
Реализация потенциального параллелизма многосторонней обработки корпусных деталей
использовалась с применением агрегатных станков
на автоматических линиях в массовом производстве.
Но здесь было серийное производство
(Там начинали внедряться обрабатывающие центры сверлильно-фрезерно-расточного типа.
Происходила концентрация технологических операций на рабочих местах,
включая многосторонню обработку, но последовательного типа).
========================
Эту задачу тогда не удалось довести до ума, но она пошла на ум.
Постепенно стали подбираться другие аналогичные задачи разного типа,
что-то прояснялось, накаливалось.
Но все это еще было не очень актуально в массовом порядке
(в личном плане, по крайней мере).
Но постепенно проблема стала назревать.
Например, перспективы освоения задач группового управления роботами.
В частности, имитация (группами дронов) стайного поведения животных.
Например:
Вложение:
06 Стая.PNG [ 1.05 МБ | Просмотров: 5749 ]
Стайное поведение характерно и для человека, например:
-- в толпе;
-- в атаке взвода на противника и т.п.