Под-алгоритм AlgMove
sergey shishkinАлгоритм AlgMove анализирует содержимое внутреннего состояния, реализует:
- смещение управляющего устройства к одной из соседних ячеек;
- завершение выполнения алгоритма AlgTM;
- переход управляющего устройства в другое состояние.
Опишем алгоритм AlgMove:
- формула объектов:
AlgMove(ObjMove,t2…t4)ObjMove≡moverMacro ∪ state_masMacro ∪ cellic−1, ic, ic+1Macro ∪ next_moveMacro ∪ next_stateMacro
WorkerAlgMove(moverMacro,state_masMacro,cellic−1, ic, ic+1Macro)
MaterialAlgMove(next_moveMacro,next_stateMacro)
В макро-объекте next_moveMacro хранится символ конечного алфавита. Этот символ кодируется наличием связей его под-объектов.
[Link(⟨next_moveMacro⟩)]SomeLink
Необходим алфавит из четырёх символов [MoveNone], [MoveLeft], [MoveRight] и [MoveEnd], которые можно закодировать наличием связи между тремя одинаковыми объектами obj_move множества next_moveMacro:
[MoveNone](next_moveMacro)≡∀ [¬Link(next_moveMacro)]
[MoveLeft](next_moveMacro)≡[Link(next_moveMacro)]Count(1)
[MoveRight](next_moveMacro)≡[Link(next_moveMacro)]Count(2)
[MoveEnd](next_moveMacro)≡∀ [Link(next_moveMacro)]
- реализация группировкой:
Реализация алгоритма AlgMove производится методом группировки под-алгоритмов AlgMoveLeft, AlgMoveRight, AlgSelectState.