Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Структура экспертной системы, основанной на фактах





Рассмотрим отличия между экспертными системами, основанными на правилах, и основанными на фактах, на простом примере.

Спроектируем базу знаний простой классификационной ЭС для определения породы собаки.

Для ЭС любого типа можно взять следующую базу знаний (рис. 35).

Рисунок 35. Проект базы знаний ЭС «Dog Expert»

«dog» — это самая общая категория, в базе знаний она будет обозначаться фактом topic(dog). Кроме того, от общей категории dog можно спуститься на одну из подкатегорий «короткошерстная» или «длинношерстная». После выбора одной из подкатегорий происходит непосредственное определение породы собаки, исходя из наличия конкретных признаков (атрибутов).

Будет использовано 8 атрибутов, с помощью которых будут определяться различные породы собак.

1. Короткая шерсть.

2. Длинная шерсть.

3. Рост < 22 дюймов.

4. Рост < 30 дюймов.

5. Низкопосаженный хвост.

6. Длинные уши.

7. Добродушный характер.

8. Вес > 100 фунтов.

Сенбернар, например, будет полностью определяться наличием атрибутов [2, 5, 7, 8].

Разумеется, мы можем построить систему, аналогичную системе «Угадай животное». Главная цель будет иметь вид:

goal

dog_is(X), write (X).

Для каждой из 8 пород будет описано свое правило. Например, для сенбернара оно выглядит так:

dog_is ("сенбернар"):-

it_is ("длинношерстная"),

positive ("имеет", "низкопосаженный хвост"),

positive ("имеет", "добродушный характер"),

positive ("имеет", "вес > 100 фунтов").

Каждая подкатегория тоже будет описана своим собственным правилом. Например, подкатегория «длинношерстная» будет описана так:

it_is ("длинношерстная"):-

positive ("имеет", "длинную шерсть"),!.

Главная цель будет сопоставляться по очереди с каждым правилом продукции, затем будут доказываться цели в теле правила и т.д., до тех пор, пока все цели не сведутся к целям типа «positive» и «negative».

Единственный недостаток такой системы заключается не в самой системе, а в том, что в языке Prolog в динамической базе данных можно хранить только факты, а правила должны быть вписаны непосредственно в текст программы. Это очень неудобно, так как, представив базу знаний в виде набора правил, мы теряем возможность хранить ее отдельно от оболочки на внешнем носителе. К счастью, этот недостаток легко устранить. Перепишем базу знаний нашей «Dog Expert» в виде набора фактов.

Вместо правил продукции теперь будут утверждения типа:

rule (9, "длинношерстная", "сенбернар", [5, 7, 8]).

Данные об атрибутах породы будут храниться в фактах

condition:

condition (1, "короткошерстная").

condition (2, "длинношерстная").

condition (3, "рост < 22 дюймов")

и так далее.

Построим механизм логического вывода для обработки БЗ, записанной в виде набора фактов.

Date: 2015-08-07; view: 536; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию