ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1227389 Топик полностью
RxTx (29.07.2022 15:38, просмотров: 384) ответил =AlexD= на Ну я как-бэ тоже десятки автоматов написал, и проблемы возникали именно в тех местах, где мне лень было хорошо подумать.
Отлично. Ты просто повысил мне настроение, я тут неслабо поржал. Ну конечно, всё просто. проблемы были в тех местах где было лень хорошо подумать, а значит и мне лень хорошо подумать, значит и тут проблемы из-за этого! Философски - да, это так. Все наши проблемы из-за недостатка ума. Это точно. Я могу кратко и сухо сказать, что FSM надо применять только при жесткой предопределенности, когда отработка FSM не завязана на события внешнего, физического мира. 

Иллюстрация: нам нужен был простейший робот-автомат, следящий лазерными измерениями за внешним миром и реагирующий на них физичнски, обратной связью. Что опять-таки влияет на его измерения. Казалось бы, всё очень просто, как и во всём embedding'е. Вот несколько его состояний, отрабатываем и всё. Всё тупо, понятно и просто. Так и было тупо, пока это работало стоя на столе в офисе. Стоило оказаться в реальной работе в реальном мире, работало это очень так себе. И за пару лет отдельных состояний FSM выросло около трех десятков, а КОМБИНАЦИИ методов последовательной реакции, т.е. проход по комбинациям состояний (и как следствие - поведение) оказались порой возможны столь нетривиальны, что челюсть отпадала. Он обрел какой-то искусственный интеллект. Он использовал, сцуко, быстро-осциллирующие комбинации ТРОЕК состояний чтобы просимулировать то, что думалось вызывается одним состоянием. Многое стало видно только на телеметрии (анализе во времени посредством графиков). Логами это было совершенно невозможно понять хотя бы потому что в логе не видно медленно осциллирующий мета-цикл КА. (а он был и не один). Нечего и говорить что я чуть не обнулся отлаживая КА. И это при том что я имплантировал в контроллер LUA, логика КА скриптуется для быстрой поправки, для формализации логики используется DRAKON, и граф переходов схематически тоже визуализируется. Конечно-конечно, так-то с дивана можно сказать что всё можно предусмотреть мощщным гениальным сосредоточением ума. Но на практике - хрен там. Казалось бы, ну всё предусмотрел! Выезд в командировку. Работа. А это — чё такое? (разводит руками) Вышло так, что то, что внутриофисно казалось легким и простым, в итоге вылилось в соприкосновение внешнего физического "аналогового" мира и логики построенной на КА. На стыке удивительного внешнего мира и жесткой логики возможны сюрпризы, а конечная уверенность в работе системы постепенно исчезает. Существует предположение что задачу на определенном этапе следует перестать решать при помощи КА, и перейти исключительно к функциональным, численным (континуальным) читай, квази-аналоговым методам.


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

Спасибо, князь. Вы настоящий дворянин. И программист.