последовательного составного состояния ровно одно из вложенных состояний
активно в каждый момент. В случае параллельного составного состояния все
вложенные состояния активны в каждый момент. Подобно тому, как структуру
машины состояний с последовательными составными состояниями удобно
представлять в виде обычного ориентированного дерева, структуру машины
состояний удобно представлять в виде дерева И/ИЛИ.
Дерево и/или
Дерево И/ИЛИ — это один частный случай ориентированного
гиперграфа, который нашел удивительно широкое применение при
решении самых разнообразных задач. В дереве И/ИЛИ имеется ровно
один узел, в который не входят дуги (корень дерева); во все остальные
узлы дерева входит ровно одна дуга. Среди них имеется некоторое
количество узлов, из которых не исходят
дуги (листья дерева). Все не
листовые узлы разбиваются на два класса: узлы типа "И" и узлы типа
"ИЛИ". Из узла типа "ИЛИ" исходит несколько обычных дуг, каждая из
которых ведет в свой узел, а из узла типа "И" исходит одна гипердуга,
которая ведет сразу в несколько узлов.
Таким образом, движение
по дереву И/ИЛИ (гиперпуть) от корня к
листьям происходит следующим образом: находясь в узле типа "ИЛИ",
нужно выбрать одну из исходящих дуг и перейти по ней, попадая в
первый
или второй или третий и т. д. дочерний узел, а находясь в узле
типа "И" нужно выбрать всю (единственную) гипердугу и перейти по ней,
попадая в первый
и второй и третий и т. д. дочерний узел. Отсюда и
происходит название "дерево И/ИЛИ".
Деревья И/ИЛИ очень часто применяются в искусственном интеллекте.
Например, при программировании дискретной игры для двух играющих
(игроки по очереди делают ходы, в результате чего дискретно меняется
позиция) с точки зрения одного из играющих игру очень удобно
представить деревом И/ИЛИ, в котором узлы соответствуют позициям,
а дуги — ходам. При этом позиции, в которых делает ход данный игрок,
будут иметь тип "ИЛИ", а позиции, в которых очередь хода у
противника, будут иметь тип "И". Действительно, при составлении
стратегии игры для первого игрока, он может выбирать тот
или другой
ход когда очередь хода за ним, но когда ходит противник, выбирать не
приходится — нужно учесть все возможные ответы противника, т. е. они
соединены связкой "И".
Общепринятого способа изображения произвольных гиперграфов на
диаграммах мы не знаем, но для деревьев И/ИЛИ есть несколько
вариантов их изображения, которые достаточно часто используются
и
многим знакомы. Во-первых, можно указать тип узла (например,
поставив в узел метку "И" или "ИЛИ"). Во-вторых, можно указать тип
исходящей дуги (например, соединив линией части гипердуги).
На рис. 4.69 представлено дерево И/ИЛИ для машины состояний, изображенной на
рис. 4.68. Узлы типа "ИЛИ" помечены "OR", а узел типа "И", соответственно, —
"AND".