Я хочу спросить, есть ли библиотека конечных автоматов, доступная для динамического конфигурирования компоновки машины. Я на самом деле проверил усиление Meta State Machine и Statechart, но, похоже, оба не поддерживают динамическую конфигурацию.
Я программирую на C ++ в системе Linux и намереваюсь реализовать навигационную систему для робота, которая состоит из нескольких состояний. Однако последовательности состояний, в которых нуждается робот, должны быть определены во время выполнения алгоритмом планирования задач. Вот почему я ищу динамический конечный автомат.
Любая помощь будет оценена.
ZQ
Я не совсем уверен, что вы подразумеваете под «динамическими конечными автоматами», но существует стандартный механизм, позволяющий конечным автоматам «адаптироваться» во время выполнения. Этот механизм называется «защитными условиями» или просто «защитными устройствами», которые могут быть присоединены к переходам состояний. Переход включается только тогда, когда охранник оценивает значение TRUE в это время. Например, когда показания датчика находятся в пределах диапазона, конечный автомат может перейти в одно состояние, но если нет, переход не будет выполнен, или, возможно, будет предпринят другой переход. Практически все государственные машины поддерживают охрану.
Чтобы лучше понять, как и когда использовать охранников (а также как не злоупотреблять ими), я бы порекомендовал мою статью Dr.Dobbs «Назад к основам», доступную по адресу http://www.drdobbs.com/back-to-basics/184401737?pgno=5
Ясмин позволяет вам построить свой конечный автомат во время выполнения. Вы можете динамически собирать состояния, псевдосостояния и переходы.
Если вы не возражаете против использования сетей Петри, эта библиотека может быть решением для вас: Двигатель PTN.