x - Российская ассоциация искусственного интеллекта

advertisement
АЛГЕБРАИЧЕСКАЯ ТЕОРИЯ
ПРОДУКЦИОННЫХ СИСТЕМ
ЧАСТЬ
II: ПРИЛОЖЕНИЯ
А.В.Жожикашвили
ИППИ РАН
ПРИКЛАДНЫЕ СИСТЕМЫ
Система
Задача системы
Что добавлено
ЗНАТОК
Программируемая оболочка
Базовая система
МЕТА-ЭС
Консультация по разработке
экспертной системы для решения
некоторой задачи
Пример заполненной
базы знаний
СВАЯ
Выбор свай и расчета их несущей
способности
Широкое
использование
присоединенных
процедур
СЕЙСМО
Оценка времени и силы возможного
землетрясения
Нечеткие данные,
динамические данные
КОДЕКС
Выявление конструкций со
значением обусловленности
Изменился формат
данных
Продукционная сеть
СИТУАЦИИ, ОБРАЗЦЫ, СОПОСТАВЛЕНИЕ
Ситуация
То, на что воздействует продукция, что
она преобразует. В результате действия
продукции возникает новая ситуация.
Образец
Неполное описание ситуации, в котором
часть деталей опущено.
Конкретизация
образца
Добавление к образцу недостающей
информации, что превращает его в
ситуацию. Можно получить различные
ситуации.
Конкретизатор
То, что добавляется к образцу.
Множество
конкретизаторов
Все, что в принципе можно добавить к
образцу.
Сопоставление
ситуации с
образцом
Проверка того, существует ли
конкретизатор, превращающий данный
образец в данную ситуацию. Результат –
сопоставима/не сопоставима и найденный
конкретизатор.
ПРОДУКЦИИ
Продукция состоит из двух образцов – левой
и правой части продукции. Левая часть
описывает ситуацию, в которой
продукция применима, правая –
ситуацию, которая возникнет после ее
применения.
Применение продукции к ситуации состоит
из двух шагов. Первый шаг –
сопоставление ситуации с левой частью
продукции. Если сопоставление
невозможно – продукция не применима.
Второй шаг – конкретизация правой
части продукции с использованием того
же конкретизатора, который был найден
при сопоставлении ситуации с левой
частью.
ОБРАЗЕЦ И ПРОДУКЦИЯ
НА ЯЗЫКЕ МНОЖЕСТВ И ОТОБРАЖЕНИЙ
S-образец
Продукция из S в T
Множество ситуаций S
T
t
s
s
s=φ(x)
ϕ
S
x
Множество
конкретизаторов X
ψ
ϕ
t=ψ(x)
x
X
ОТ СИСТЕМЫ ОБРАЗЦОВ –
К ТЕОРИИ КАТЕГОРИЙ
Задать систему образцов – это значит определить
следующее:


какие множества могут выступать в качестве множеств
ситуаций/конкретизаторов
какие отображения могут выступать в качестве образцов
Класс образцов замкнут относительно композиции и содержит
тождественные отображения.
Задать систему образцов – это значит


задать конкретную категорию, т.е. подкатегорию категории
множеств
указать, какие морфизмы могут играть роль ситуаций
Уточнение: задать систему образцов – это значит

задать категорию

указать, какие морфизмы могут играть роль ситуаций
ТЕОРЕТИКО-КАТЕГОРНЫЕ ОПРЕДЕЛЕНИЯ
S-образец
Сопоставление ситуации с образцом
S
S
α
ϕ
X
β
I
ψ
X
X
S
T
ϕ
φ   
Применение продукции к ситуации
Продукция из S в T
S
ϕ
α
I
T
ψ
ϕ
β
φ  
X
   
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
ПРОДУКЦИОННЫХ СИСТЕМ
Нижний уровень – уровень данных. Представляет
собой программную реализацию категории.
Верхний уровень – уровень продукций.
Представляет собой реализацию алгоритмов
работы системы продукций.
Для доступа к продукциям верхний уровень
использует только процедуры, экспортируемые
нижним уровнем, т.е. он написан в терминах
теории категорий
НИЖНИЙ УРОВЕНЬ – УРОВЕНЬ ДАННЫХ


Должны быть описаны структуры данных, служащие для
представления ситуаций, образцов и конкретизаторов.
Должны быть определены функции, реализующие основные
операции над ними, прежде всего - операцию сопоставления и
конкретизации.
НИЖНИЙ УРОВЕНЬ – УРОВЕНЬ ДАННЫХ


Должны быть описаны структуры данных, служащие для
представления ситуаций, образцов и конкретизаторов.
Должны быть определены функции, реализующие основные
операции над ними, прежде всего - операцию сопоставления и
конкретизации.
На языке теории категорий:


Должны быть описаны структуры, кодирующие морфизмы
категории.
Должны быть определены операции над морфизмами, прежде
всего – две базовые функции: composition и factor:
S
α
I
composition: (β,φ) → α
ϕ
β
factor:
X
(α,φ) → β
НИЖНИЙ УРОВЕНЬ – УРОВЕНЬ ДАННЫХ
На нижнем уровне, в частности, должны быть
учтены:
тип данных, преобразуемых продукциями:
логические выражения, база данных, содержащая
факты, текстовые данные;
 характер данных: нечеткие, динамические.

ВЕРХНИЙ УРОВЕНЬ – УРОВЕНЬ ПРОДУКЦИЙ
Решаются следующие задачи:
 Программируется алгоритм вывода на продукциях.
 Наряду с обычной логикой работы продукционной системы
на верхнем уровне может быть запрограммирована какаялибо более сложная схема вывода. Далее будет рассказана
продукционная сеть.
 На верхнем уровне могут быть реализованы алгоритмы
анализа продукционной базы, процедуры оптимизации
продукционной базы.
 На верхнем уровне могут быть реализованы процедуры
автоматического создания продукционной базы, например,
основанные на обобщении решения конкретных задач.
ПРИМЕР РЕАЛИЗАЦИИ НА ВЕРХНЕМ УРОВНЕ
ФУНКЦИИ ПРИМЕНЕНИЯ ПРОДУКЦИИ
(defun apply_production(prd sit)
(let ((conc (factor sit (cadr prd))))
(if conc
(composition conc (car prd)) ) ) )
ВЗАИМОСВЯЗЬ ПРИКЛАДНЫХ СИСТЕМ
Уровень данных
СВАЯ
ЗНАТОК
База знаний
МЕТА-ЭС
СЕЙСМО
Автоматическое
формирование
образцов
Уровень продукций
КОДЕКС
PROMPTER
ПРОГРАММИРУЕМАЯ ОБОЛОЧКА ЗНАТОК ФАКТЫ
Система выводит новые факты из уже известных. Примеры фактов:
• тип сваи, который следует использовать – свая-стойка
(СВАЯ)
• уровень воды в колодцах является пониженным
(СЕЙСМО)
• расторжение брака производится в органах записи
актов гражданского состояния
Общий вид факта:
<атрибут>=<значение>
• тип_сваи= свая-стойка
• уровень_воды_в_колодцах=пониженный
• место_расторжения_брака=ЗАГС
(ЮРИСТ)
ПРОГРАММИРУЕМАЯ ОБОЛОЧКА ЗНАТОК ФАКТЫ
Общий вид правила:
Если АТРИБУТ1 = ЗНАЧЕНИЕ1
И
АТРИБУТ2 = ЗНАЧЕНИЕ2
…
И
АТРИБУТn-1 = ЗНАЧЕНИЕn-1
ТО
АТРИБУТn = ЗНАЧЕНИЕn
Пример правила из системы СВАЯ
Если
тип_схемы_напластования = 1
И
грунт_слоя1 = сжимаемый
И
грунт_слоя2 = малосжимаемый
ТО
тип_сваи = свая-стойка.
Нечеткие данные - СЕЙСМО
ЕСЛИ сейсмогенерирующий_слой_с_пониженным_сопротивлением = нет
И
аналог_данной_области = Фрунзенский_полигон
ТО
сейсмогенерирующий_слой_повышенной_трещиноватости = да
ЕСЛИ сейсмогенерирующий_слой_с_пониженным_сопротивлением = нет
И
аналог_данной_области = Фрунзенский_полигон
ТО
сейсмогенерирующий_слой_повышенной_трещиноватости =
да:0.2, нет:0.8
Как строится категория:
морфизм:
композиция:
φ, p 
φ, p , q  φ  , p q
Динамические данные - СЕЙСМО
P – множество возможных контекстов.
fp означает, что факт имеет место в контексте pP .
Будем говорить, что p q, если f p  f q .
P – упорядоченное множество.
Будем считать его решеткой. Тогда f p, gq  f & g p  q
Примеры контекстных решеток:
 Подмножества множества с операциями  ,  .
 Логические выражения с операциями  , &.
 Вещественные числа с обычным порядком
 {0,1}
Динамические данные - СЕЙСМО
От категории С можно перейти к категории C P.
Здесь P - категория с одним объектом, множеством
эндоморфизмов которого выступает решетка P с
операцией в качестве композиции.
морфизм: φ, p, pP
композиция:
φ, p , q  φ  , p  q
Выявление конструкций со значением
обусловленности
Реализация категории
Образец
Если (X) , то (Y)
Продукция
Если (X) , то (Y) → УСЛОВИЕ: (X); ЗАКЛЮЧЕНИЕ: (Y)
Функция factor
Аргумент 1:
(Если международным договором Российской
Федерации установлены иные правила, чем те,
которые предусмотрены гражданским
законодательством, то применяются правила
международного договора.)
Аргумент 2:
(если (X) , то (Y))
Результат:
((X (международным договором Российской Федерации
установлены иные правила, чем те, которые
предусмотрены гражданским законодательством))
(Y (применяются правила международного
договора.)))
ПРОДУКЦИОННАЯ СЕТЬ
Продукционная
база 1
Наборы
продукций
Продукционная
база 2
Продукционная
база 3
Продукционная сеть - пример
(x в_случае.doc) (y) (u разделитель_если_то.doc) (v)
→ УСЛОВИЕ: (x) (y); ЗАКЛЮЧЕНИЕ: (u) (v)
в_случае.doc
в случае
при условии
…
разделитель_если_то.doc
…
(x глагол_нвр_3л.doc)
…
Разбор отдельных слов
глагол_нвр_3л.doc
\WORDS
(w) ю т
(w) у т
(w) а т
(w) и т
\PATTERN
(w) е т
\EXCEPT
лет
\ENDPATTERN
…
Выводы
Дано концептуальное описание продукции как элемента систем
представления знаний в искусственном интеллекте. Работа такой
продукции состоит из двух последовательных шагов: сопоставления
и конкретизации.
Подобным образом устроенные продукции описаны на языке
теории категорий. Продукция на этом языке строится из морфизмов
категории, а операции, связанные с продукциями, представляют
собой операции над морфизмами, основная из которых –
определение одного из морфизмов в равенстве φψ=σ, если известны
два других.
Предложена технология построения продукционных систем,
разделяющую реализацию категории и создание алгоритмов
работы с продукциями. Речь идет не только о стандартных
механизмах вывода, но и о более сложных алгоритмах.
На примерах реальных систем показано, как, меняя только
категорию, можно менять тип и характер данных, с которыми
работает система. Меняя же алгоритмы верхнего уровня, можно
переходить к более сложным алгоритмам вывода, решающим
задачи, трудно поддающиеся решению с помощью классических
продукционных систем.
Download