182
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
для недетерминированного проектирования ИМИ. Рассмотрим ис-
пользование логического программирования для недетерминирован-
ного проектирования ИМИ.
Использование логического программирования для недетерми-
нированного проектирования ИМИ.
Недетерминированный выбор
состоит в неизвестном заранее поиске пути определения варианта из
числа тех возможных альтернатив, которые приводят к успешному вы-
числению, удовлетворяющему требуемым свойствам. Реализация неде-
терминированного выбора в полном объеме невозможна без некоторых
ограничений на процесс вычисления, в частности, так, как это выполне-
но в языке логического программирования «Пролог» (Visual Prolog 5.2)
[16].
В этом языке недетерминированность заключается в реализации
принципа «найти и проверить»: сначала генерируется множество пред-
полагаемых альтернативных решений задачи, а затем осуществляется
проверка тех из них, которые соответствуют требуемым свойствам. То
есть с помощью описания того или иного процесса можно найти после-
довательности действий, которые он может выполнять и которые инте-
ресуют разработчика ИМИ, а затем проверить, удовлетворяют ли эти
действия требуемым свойствам. Рассмотрим применение принципа
«
найти и проверить» в языке на примере проверки свойств процесса
P
1
.
Множество процессных выражений процесса
P
1
сведем к одному про-
цессному выражению с использованием подстановки в процесс подпро-
цессных выражений
11
(? 1.(? 1.!
.0? 1.!
.0) ? 1.!
.0)
(? 2.(? 1.(? 2.!
.0? 2.!
.0)? 1.!
.0) ? 2.!
.0)
(? 3.(? 1.!
.0? 1.!
.0) ? 3.!
.0
P
m z выключить z продолжить m продолжить
m z z выключить z продолжить z продолжить z продолжить
m z выключить z продолжить m продолжить
)
(? 4.(? 1.(? 2.(? 3.!
.0? 3.!
.0) ? 2.!
.0)? 1.!
.0)? 4.!
.0)
(? 5.(? 1.!
.0? 1.!
.0) ? 5.!
.0).
m z z z выключить z продолжить z продолжить z продолжить m продолжить
m z выключить z продолжить m продолжить
Введем внутренние реакции в этот процесс. Реакцию
продол-
жить
обозначим буквой «
п
»,
а реакцию
выключить
—
буквой «
в
».
В результате получим
1
0.(? 1. 11.(? 1. 12.! . 13.0 ? 1. 14.! . 15.0) ? 1. 16.! . 17.0)
0.(? 2. 21.(? 1. 22.(? 2. 23.! . 24.0 ? 2. 25.! . 26.0) ? 1. 27.! . 28.0) ? 2. 28.! . 29.0)
0.(? 3. 31.(? 1. 32. 33.! . 34.0 ? 1. 35.! .
t
m t
z t
в t
z t
п t
z t
п t
t
m t
z t
z t
в t
z t
п t
z t
п t
m t
п t
t
m t
z t t
в t
z t
п t
P
36.0) ? 3. 37.! . 38.0)
0.(? 4. 41.(? 1. 42.(? 2. 43.(? 3. 44.! . 45.0 ? 3. 46.! . 47.0) ? 2. 48.! . 49.0) ? 1. 41.0.! . 411.0)
0.(? 5. 51.(? 1. 52.! . 53.0 ? 1. 54.! . 53.0) ? 5. 56.! .
? 4. 412.! . 413.0)
m t
п t
t
m t
z t
z t
z t
в t
z t
п t
z t
п t
z t
п t
t
m t
z t
в t
z t
п t
m t
п t
u t
п t
57.0).
Интерпретируя каждую внутреннюю реакцию как состояние
процесса, можно представить его в виде множества переходов между
состояниями в результате совершения действий. Для простоты, не