научная статья по теме О ПОСТРОЕНИИ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ В ТРОИЧНОЙ ЛОГИКЕ Математика

Текст научной статьи на тему «О ПОСТРОЕНИИ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ В ТРОИЧНОЙ ЛОГИКЕ»

ПРОГРАММИРОВАНИЕ, 2014, No 1, с. 31-35

БАЗЫ ДАННЫХ И ЗНАНИЙ

УДК 004.822

О ПОСТРОЕНИИ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ В

ТРОИЧНОЙ ЛОГИКЕ

© 2014 г. И.А. Бессмертный, Ю.А. Королева

Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики 197101 Санкт-Петербург, Кронверкский пр-т.,49 E-mail: igor_ bessmertny@hotmail.com Поступила в редакцию 16.03.2012

В работе показана возможность создания интеллектуальных систем на продукционной модели знаний в базисе троичной логики, оперирующей с состояниями "истина, ложь, возможно". Предлагается способ построения интеллектуальных систем, которые свободны от противоречий и позволяют извлекать не только факты, но и объяснять, каких фактов не хватает для достижения цели. Приводятся примеры правил для троичной логики на языке Prolog.

1. ВВЕДЕНИЕ

Продукционная модель знаний является популярной и привлекательной для использования в интеллектуальных системах в силу ее близости к формальной логике и к естественной форме рассуждений. Известны и недостатки продукционной модели, базирующейся на импликациях, из которых неизбежно вытекают парадоксы. Попытки устранить недостатки бинарной логики осуществляли Я. Лукасевич [1], Л. Кэролл [2], Н.П. Брусенцов [3], заложившие основы троичной логики, позволяющей оперировать не только со значениями "истина" и "ложь", но и с третьим значением "неизвестно", "возможно", "необходимо есть", "необходимо нет" и т.п.

Другим методом устранения недостатков бинарной логики является нечеткая логика (мягкие вычисления), предложенная Л. Заде, где используется непрерывная шкала значений между состояниями "истина" и "ложь". При этом двоичная и троичная логики являются частными случаями нечеткой логики. Очевидными недостатками нечетких систем являются отсутствие стандартных методов перехода к нечеткости и обратно (фаззификации и дефаз-зификации) и вычислительная сложность, что обусловило применение нечеткой логики, глав-

ным образом, в экспертных системах, в которых причинно-следственные связи заменены простыми связями "внешнее проявление - гипотеза" [4]. Следует отметить, что в экспертных системах использование бинарной логики допустимо в связи с тем, что там обычно факты выявляются в ходе диалога с пользователем и тем самым разрешаются парадоксы.

В современных информационных системах троичная логика находит свое применение. В частности, в большинстве СУБД используются значения полей NULL. Правда, здесь отсутствует возможность использовать такие поля в SQL-запросах, т.к. с ними не допускаются операции сравнения. Экспертные системы также используют троичную логику, и в качестве примера можно привести PRELOG - машину вывода, основанную на прецедентах и предназначенную для оценки доноров крови [5]. Однако, как СУБД, так и экспертные системы работают в замкнутом домене, и применение троичной логики здесь влияет лишь на достоверность вывода. Между тем, отсутствие решения в некотором домене может быть сигналом к необходимости расширения рассматриваемой предметной области и устранения противоречий.

В интеллектуальных системах устранение противоречивости достигается комбинировани-

32

БЕССМЕРТНЫЙ, КОРОЛЕВА

Таблицы истинности

X -X

-1 1

0 0

1 -1

X Y X Л Y X V Y

-1 -1 -1 -1

-1 0 -1 0

-1 1 -1 1

0 0 0 0

0 1 0 1

1 1 1 1

ем допущений замкнутого и открытого мира. Однако абсолютизация допущения открытого мира неизбежно приводит к тому, что большинство фактов становятся невычислимыми из-за неограниченного роста числа утверждений, что особенно актуально для извлечения знаний из Семантической паутины [6]. В этой связи представляется целесообразным исследование возможности использовать знания об отсутствии решений не только для оценки достоверности получаемых результатов, но и для управления процессом моделирования рассуждений.

2. ЛОГИЧЕСКАЯ МОДЕЛЬ БАЗЫ ЗНАНИЙ В ТРОИЧНОЙ ЛОГИКЕ

Пусть в базе знаний хранятся факты вида субъект-предикат-объект. В бинарной логике обращение к факту порождает одно из двух состояний: истина, если факт имеет место, и ложь в остальных случаях. Такими случаями могут быть как наличие факта, эксплицитно отрицающего искомый факт, так и отсутствие данных об интересующем факте. Проиллюстрируем это свойство бинарной логики на простом примере. Пусть к базе знаний поступил следующий запрос в форме субъект-предикат-объект (здесь и далее будем придерживаться нотации языка Prolog): fact(bonnie, hasSex, female). Если соответствующий факт имеется в базе знаний, запрос вернет истину. Если такого факта в базе нет, будет возвращено значение "ложь", которая может быть ошибочно интерпретирована как факт bonnie, hasSex, male.

Введем три состояния: "1" - истина, "—1" -ложь и "О" - возможно. Снабдив таким состоянием все правила, мы сможем оперировать троичными значениями с использованием таблиц истинности.

Определим правила для преобразования бинарных фактов в троичные.

Первое (установление истинности факта) и третье (установление возможности факта) правила могут быть общими для всех фактов и записываться на языке Prolog следующим образом: ternary(Subj, Pred, Obj,l) :- fact(Subj, Pred,Obj).

ternary(Subj,Pred,0bj,0,[Subj,Pred,0bj]) :-not(fact(Subj,Pred,Obj)), not(fact(Subj,Pred,0bj,-1,_)).

Второе правило является контекстно-зависимым и должно устанавливаться индивидуально для каждого факта. Для вышеопи-

-1

для факта принадлежности субъекта к мужскому полу, если есть факт о его принадлежности к женскому полу:

ternary(Subj, hasSex, male, -1) :-fact(Subj, hasSex, female).

Если в базе знаний для одного и того же бинарного факта присутствуют одновременно троич-

-1,

это является свидетельством противоречивости базы знаний и может использоваться для ее верификации.

Если правило оперирует несколькими троичными фактами, конъюнкция условий правила всегда возвращает истину, а достоверность результата должна вычисляться как минимум достоверности всех условий правила: ternary (X, oppositeSex, Y, Cty) :-

ternary (X, hasSex, male, Ctyl), Ctyl>=0, ternary (Y, hasSex, female,Cty2), Cty2>=0, Cty is min(Ctyl,Cty2). ternary (X, oppositeSex, Y, Cty):-ternary (Y, oppositeSex, X, Cty). Данное правило возвращает значение Ctv=l (истину) в случае, если X и Y разнополые,

О ПОСТРОЕНИИ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ В ТРОИЧНОЙ ЛОГИКЕ

33

Ctv=—1 (ложь), если X и Y имеют одинаковый пол, и Ctv=0 (возможно), если отсутствует информация о тендерной принадлежности X или Y. Два экземпляра правила в данном примере означают, что к каждому из результатов следует применить дизъюнкцию. В то время как в двоичной логике можно ограничиться первым положительным решением, здесь требуется обработать все правила и выбрать решения с максимальным значением достоверности.

3. ОБЪЯСНЕНИЕ РЕЗУЛЬТАТОВ РАССУЖДЕНИЙ В ТРОИЧНОЙ ЛОГИКЕ

В том случае, если в логический вывод, возвративший значение 0, вовлечено более одного факта, информативность и, следовательно, полезность полученного результата снижаются, поскольку неизвестно, какой из фактов препятствует выявлению истинности результата. Для установления таких отсутствующих фактов предлагается возвращать вместе с результатом работы правила список фактов, имеющих достоверность, равную нулю, в следующем виде: [<консеквент правила>, [<факт 1>],..., [<факт N>]]. Такой список можно интерпретировать как фразу в сослагательном наклонении: "Данный факт может быть истинным, если будут истинными перечисленные ниже факты...". Модифицированное правило, определяющее принадлежность субъекта и объекта к противоположному полу, приведено ниже.

ternary (X, oppositeSex, Y, Cty,

[X, oppositeSex, Y,Condi, Cond2) :-ternary (X, hasSex, male, Ctyl, Condi), Ctyl>=0,

ternary (Y, hasSex, female,Cty2, Cond2), Cty2>=0,

Cty is min(Ctyl,Cty2). ternary (X, oppositeSex, Y, Cty, Cond):-ternary (Y, oppositeSex, X, Cty, Cond).

Создадим еще одно правило, задающее возможность заключения брака при условии разно-полости партнеров -ternary(X, canMarry, Y, Cty,

[X, canMarry, Y, Cty, Cond):-ternary(X, oppositeSex, Y, Cty, Cond), Cty>=0, и укажем цель -

ternary(bonnie, canMarry, Clyde, Cty, Explanation).

Если в базе знаний присутствует факт fact(clyde, hasSex, male), но отсутствует факт fact(bonnie, hasSex, female), будет получена достоверность ответа Ctv=0 и следующее объяснение условия положительного решения:

[bonnie,canMarry,Clyde,[bonnie,oppositeSex, Clyde,[bonnie,hasSex,female]]] .

Рассмотрим теперь особенности реализации в троичной логике операции отрицания. Для включения в антецеденты правила отрицательного условия достаточно инвертировать достоверность в данном условии правила: ternary(X, canMarry, Y, Cty,

[X, canMarry, Y, Cty, Condi, [£N0T'ICond2]) : -ternary(X, oppositeSex, Y, Ctyl, Condi), Ctyl>=0,

ternary(X, closeRelative,Y,Cty2, Cond2), Cty2=<0,

Cty is min(Ctyl, -Cty2).

Приведенный выше пример модифицированного правила запрещает заключение брака между близкими родственниками, и объяснение данного обстоятельства, полученное после обработки запроса, выглядит следующим образом: [bonnie,canMarry,Clyde,

[[bonnie,oppositeSex,Clyde,[bonnie,hasSex, female],

[NOT,bonnie,closeRelative,Clyde] ].

Предложенный метод построения правил позволяет устранить недостатки интеллектуальных систем на продукционной модели знаний, обусловленные бинарной логикой, а также получать решения, не ограниченные простой констатацией фактов. Моделирование рассуждений с объяснением условий, при которых цель может быть достигнута, приближает интеллектуальные информационные системы к экспертным системам в части объяснения полученных результатов, а также позволяет упростить верификацию баз фактов.

4. ИСПОЛЬЗОВАНИЕ РЕЗУЛЬТАТОВ ВЫВОДА В ТРОИЧНОЙ ЛОГИКЕ

Следует отметить, что цепочки умозаключений при использовании вложенных правил и

34

БЕССМЕРТНЫЙ, КОРОЛЕВА

Рис. 1. Визуализация условия истинности факта "Ьопшо сапМаггу с1ус1е".

большого числа фактов могут быть очень длинными, что неизбежно сделает объяснение в виде списка фактов нечитаемым для человека. Однако списковая структура является удобной для интерпретации компьютером, что позволяет относительно просто

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком