ПРИМС вне «Защиты пасеки»
В предыдущих модулях мы уже приводили примеры диаграмм машин состояний не из «Защиты пасеки»: программы микроволновки с грилем, умной теплицы и др. В этом модуле мы подробнее поработаем с примерами машин состояний для автономных систем вообще, без использования компьютера. Мы воспользуемся инфографикой, которая содержит не только описания диаграммы машин состояний, но и контекст ее исполнения
Методист образовательных программ «Программирование киберфизических систем»
Анита Ходова
Задача № 1
Прежде вспомним, какие ключевые элементы диаграмм машин состояний мы изучили:
  • Состояние — это режим работы системы, в котором совершаются какие-то определенные действия. Состояния на диаграмме машины состояний изображаются в виде прямоугольников с закругленными или срезанными углами. Состояния имеют имена и могут включать в себя другие состояния
  • Событие — это изменение в системе и окружающем ее мире, значимое для программы управления. События в диаграмме указываются на стрелках переходов между состояниями (внешние события) или внутри состояний, рядом с действиями на входе (внутренние события). Срабатывают только те события, которые относятся к текущему состоянию или его дочерним состояниям
  • Ограждающие условия — это дополнительные условия срабатывания события. Сработавшее событие приводит к переходу или выполнению действий, только когда условие истинно. В «Защите пасеки» ограждающие условия могут быть только на переходах; стандарт ПРИМС позволяет задавать ограждающие условия и для внутренних событий
  • Действия — то, что выполняет управляемая программой система. Действия указываются внутри состояний в связи со входом или выходом из состояний, а также внутренними событиями или на переходах. В «Защите пасеки» действия представлены командами, которые вызываются в модулях дрона в соответствии с его объектной моделью
Рассмотрим первую инфографику, посвященную работе автономного планетохода.
К вам обращается медведь-первопроходец с планеты Берлога с просьбой помочь разобраться с планетоходом, который ищет кристаллы на далекой пустынной планете. Планета имеет рельеф, который влияет на видимость кристаллов: планетоход может обнаружить кристаллы только на расстоянии до 2 км прямой видимости. Необходимо ответить на вопрос: «Какое сообщение планетоход передаст на орбиту после выполнения программы?»
Планетоход управляется диаграммой машины состояний, представленной на рисунке. В этой диаграмме используется тот же принцип обозначения действий в виде пиктограмм, что и в «Защите пасеки», также сохранены обозначения для событий (желтые рамки) и параметров (серые рамки). Модули планетохода схожи с модулями дрона — сканирование цели, установка таймера, навигация — и работают аналогично. Обратите внимание на начальное состояние, отмеченное слева, и на конечное состояние (двойной кружок в правом нижнем углу диаграммы), достижение которого означает окончание выполнения программы.
Для того чтобы ответить на вопрос задачи, прежде всего надо определить, какое сообщение и при каком условии планетоход отправит на орбиту. После этого нужно последовательно выполнить программу, одновременно с этим перемещая планетоход по карте
Задача № 2
Вторая задача похожа на первую и также посвящена движению автономного аппарата, но значительно сложнее.
На этот раз предстоит проанализировать программу подводного батискафа, который перемещается по дну океана в поисках старинных кладов. Батискафу нужно обследовать как можно большую площадь, поэтому он движется сложными круговыми и линейными маршрутами, следуя за сигналами гидроакустических буев. Буи позволяют батискафу ориентироваться в пространстве и принимать решение о следующей целевой точке. На нашей карте изображена пройденная батискафом часть маршрута. Начальное положение батискафа показано на карте точкой С, а на диаграмме машины состояний указано текущее состояние в этот момент — «Подводный поиск: Движение на пеленг». Необходимо продолжить движение батискафа и ответить на вопрос: «Какое сообщение батискаф передаст на поверхность?»
Советуем обратить внимание на более трудную логику организации памяти: здесь нет знакомого нам счетчика, но в программе используется сохранение значения переменной-флага
а в массив идентификаторов буев добавляются новые элементы
для последующей проверки на уникальность получаемого от буя сигнала.
Эта диаграмма значительно сложнее всех, что мы рассматривали ранее. Но общие принципы обозначения действий и структура модулей батискафа остаются схожими.
При решении задачи мы советуем сперва определить, при каких условиях миссия батискафа заканчивается, как можно достичь ее выполнения, а затем последовательно пройти по диаграмме машины состояний известный маршрут батискафа, чтобы разобраться в логике работы программы.
Комментарий для педагога
Когда мы учимся, ученику и педагогу важно понимать, в чем цель обучения, чему мы хотим научиться или обучить. Мало изучить, из чего состоит диаграмма машины состояний или как называются модули дронов в «Защите пасеки», необходимо освоить обобщенные способы действия, быть способным писать универсальные программы с использованием всех возможностей машин состояний, создавать программы для разных ситуаций и систем с разными наборами действий. Получением нужного опыта, обучением способов мышления, коммуникации и действия, формированием способностей занимается мыследеятельностная педагогика, элементы которой вы уже встречали в этом курсе.
При обучении новому важно решать задачи и действовать в опоре на разный материал. Это не только расширяет кругозор: к концу 7 модуля мы уже видим, что машины состояний могут описывать очень разные системы — выдуманные и настоящие — общим языком, который допускает вариации. В первых модулях нам приходилось сопоставлять опыт, получаемый в игре «Защита пасеки», с рисованием схем и общим обсуждением получившихся версий, чтобы восстановить общую картину мышления программиста и управленца. В рамках этого модуля мы попробовали применить уже освоенные в игре способы действия на новом, хотя и похожем материале, и на практике столкнулись с переносом способа с известного на новый материал.
Учащийся может использовать эти инфографики для самодиагностики, а педагог может с их помощью провести диагностику уровня владения ПРИМС. Способны ли вы «прочитать» диаграмму и интерпретировать ее? Восстановить самостоятельно смысл неполностью описанных модулей? Соотнести работу автономной системы и ее программу?
Методист образовательных программ «Программирование киберфизических систем»
Анита Ходова
Машины состояний в «Защите пасеки» и в рассмотренных инфографиках строятся на жестких, заданных авторами и неизменных моделях. Программист в «Защите пасеки» может посмотреть «под капот» дрона, понять, как он работает, и поменять алгоритм его работы, но не может изменить саму систему модулей или задать собственные события в системе. Ту же ситуацию мы имеем с данной инфографикой. Это ограничение учебного инструмента, который предназначен для первых шагов в освоении программирования машин состояний, но мы должны видеть его и понимать.
Опасностью при изучении языков программирования (и ПРИМС не является исключением) является оперирование знаками в программе (пиктограммой или текстом) без понимания внутренней логики этих знаков, того, как они относятся к исполнению программы. В «Защите пасеки» можно добиться простого эффекта без глубокого понимания внутренней логики работы машин состояний, достаточно методом проб и ошибок добавлять пиктограммы команд в существующие программы по умолчанию. Чтобы избежать этого и действительно научиться программированию машин состояний, восстанавливайте используемую модель и смыслы, лежащие за используемыми в программе знаками.

Запишитесь на курс, чтобы выполнять задания и получить сертификат!

Программирование автономных систем на примере игры «Берлога: Защита пасеки»
Курс о том, как с помощью простых инструментов научиться программировать поведение автономных агентов. Вы увидите, как игровые дроны подчиняются коду и как эти же принципы применимы к роботам в реальной жизни.
  • Что вы получите
    • 12 уроков с разбором заданий прямо в игре
    • Авторская подача: сложное программирование простым языком
    • Возможность осмыслить педагогические методики, применяемые в каждой теме
    • Свободное расписание: нет дедлайнов и сроков сдачи заданий
    • Все материалы доступны сразу, можно начать обучение в удобное время
    • Проверочные задания после каждого урока
    • Профессиональное видео и современная графика
    • Быстрая связь с техподдержкой
    • Сертификат о прохождении курса
  • Зачем
    • Научиться и научить программировать через игру
    • Освоить язык ПРИМС — инструмент для создания умных и понятных алгоритмов
    • Разобраться, как работают современные киберфизические системы
    • Научиться строить управление: от простых реакций до сложных сценариев поведения
    • Получить готовую методику проведения занятий: с пояснениями, примерами и игровыми задачами
    • Сделать первый шаг к проектной работе с настоящими роботами и автономными системами
Находясь на сайте, вы даете согласие на обработку файлов cookie. Это необходимо для более стабильной работы сайта
OK