Садовская О.И.
Белорусский государственный университет информатики и
радиоэлектроники, Беларусь
Синтез управления дискретной системы на ориентированном графе
Рассмотрим общее решение задачи синтеза
управления дискретной системой, описываемой множеством логических уравнений с
временным параметром. Определим состояние некоторой системы S в
форме векторов . Разрядные переменные принимают следующие
значения: 0,1,* (значение * интерпретируется как неопределенность). Имеются
операторы , каждый из которых в общем случае можно представить с
помощью двух векторов: . Первый из этих векторов определяет, в каких (или каком)
состоянии оператор можно применять. Например, если этот вектор имеет вид
<**110>, то оператор можно применить в любом состоянии, где разрядные
переменные равны соответственно
1,1 и 0, а значения разрядных переменных во внимание не
принимаются. Второй вектор определяет, как
изменяет данный оператор состояние системы.
Операторы, будучи применены к текущему состоянию
системы, переводят ее в новое состояние согласно следующему правилу:
1. Пусть текущее состояние и применяется
оператор . Вектор должен
соответствовать состоянию , т.е. в тех разрядах, где или значение и соответственно либо (в этом последнем случае значение во внимание не
берется).
2. Новое состояние системы
будет , причем
Таким образом, можно поставить следующую общую
задачу. Даны исходное и конечное состояния и набор
управляющих векторов . Требуется построить цепочку управляющих векторов,
переводящих систему из состояния в состояние . Под цепочкой управляющих векторов понимается
последовательность . Операторы применяются последовательно, слева направо,
причем условия их применения должны выполняться. Рассмотрим
следующую систему операторов:
Сформируем
результирующие векторы для этих операторов:
Сформируем
граф предшествования (рис. 1):
Рис.1. Граф
предшествования
В этом
графе нет циклов. Пусть , . Будем строить результирующий
управляющий кортеж. Подбираем управляющий оператор для последнего состояния – . Подходят два оператора и . Это означает, что можно начать
строить две последовательности операторов: , .
Начнем
с и получаем новое целевое состояние: . Однако у оператора есть предусловие, которое должно быть выполнено в момент старта: . Это состояние следует совместить с
предварительной новой целью . Получим новое целевое состояние,
которое должно быть достигнуто в момент выполнения оператора : . В этом случае ни один из
операторов применить нельзя. Следовательно, построение цепочки блокируется. У нас остается цепочка . Как и выше, находим
предварительное новое состояние: . C
учетом условия срабатывания оператора получаем новое целевое состояние – . К этому новому состоянию применимы
операторы: , , . Это дает нам сразу три цепочки.
Рассмотрим первую из них: . Здесь применим оператор : .
Предварительная
цель: . С учетом условия срабатывания
получим окончательно: . Ни один оператор не подходит для
этой цели. Цепочка обрывается. Рассматриваем следующий вариант .
.. Теперь подходит только оператор . Получаем: . . . Мы видим, наконец, что исходное
состояние включено в . Это означает, что результирующее
построение получено и искомая последовательность имеет такой вид: .
Оценка
сложности этого варианта синтеза определяется как оценка числа путей в графе.
Разумеется, это оценка чересчур завышена. Тем не менее, пусть – число тупиковых вершин в графе, – число тупиковых вершин в подграфе исходного графа, получающихся
исключением первых тупиковых вершин и т.д. Тогда число путей не превышает:
,
.
Можно
использовать оценку вида , где – число вершин в
графе, – число слоев
(предполагается, что каждый предыдущий слой связан только с очередным
последующим слоем). Значение в скобках указывает среднее число вершин в слое, теоретически
– на возможность экспоненциального роста числа путей, например, при .
Однако
все зависит от конкретной задачи, поэтому при отсутствии циклов нужно принимать
во внимание число путей. Если граф предшествования имеет вид дерева, то эта
ситуация наилучшая и с точки зрения вычислительных затрат оценивается по числу
вершин в дереве. Но даже и при наличии циклов ситуация может быть вполне
благоприятной с вычислительной точки зрения.
Подобного
рода алгоритмы могут использоваться в задачах типа отыскания пути на местности.
Литература:
1. Нильсон Н. Искусственный
интеллект: методы поиска решений =
Problem-solving Methods in Artificial Intelligence / Пер. с англ. В. Л.
Стефанюка; под ред. С. В. Фомина. – М.: Мир, 1973. – С. 70- 80.
2. Герман, О.В. Одна
полиномиально разрешимая задача синтеза поведения интеллектуального робота /
О.В. Герман, Д.В. Семерюк // Автоматика и телемеханика. – 2001, №2. – С. 15-
24.
3. Герман, О.В. Синтез
управляющего алгоритма в системе продукционных правил с временным параметром /
О.В. Герман, Д.В. Занько // Автоматика и телемеханика. – 2003, № 5. – С. 41-52.