Под-алгоритм AlgSelectState
sergey shishkinОпишем алгоритм AlgSelectState:
- формула объектов:
AlgSelectState(ObjS,t3…t4)ObjS≡moverMacro ∪ state_masMacro ∪ cellicMacro ∪ next_moveMacro ∪ next_stateMacro
WorkerAlgSelectState(moverMacro,state_masMacro,cellicMacro,next_moveMacro)
MaterialAlgSelectState(next_stateMacro)
В макро-объекте next_stateMacro хранится символ конечного алфавита. Этот символ кодируется наличием связей его под-объектов.
[Link(⟨next_stateMacro⟩)]SomeLink
Необходим алфавит из конечного набора символов размером на 1 превышающим количество состояний управляющего устройства. Для этого можно использовать индексированное множество пар объектов next_stateMacro:
j∈[1…N]:obj_aj,obj_bj∈next_stateMacro
[Statej](next_stateMacro)≡Link(obj_aj,obj_bj)
[StateNone](next_stateMacro)≡∀[¬Link(next_stateMacro)]
- стартовые условия:
ConditionAlgSelectState ≡≡ [StatejNext](next_stateMacro)∧∧ [MoveNone](next_moveMacro)∧∧ Linkt3(cellicMacro,state_masMacro)
- результаты:
ResultAlgSelectState ≡≡ [StateNone](next_stateMacro)∧∧ ¬Linkt4(cellicMacro,state_masMacro)∧∧ Linkt4(cellicMacro,statejNextMacro)