новости  материалы  справочник  форум  гостевая  ссылки  
Новости
Материалы
  Логические подходы
  Нейронные сети
  Генетические алгоритмы
  Разное
  Публикации
  Алгоритмы
  Применение
Справочник
Форум
Гостевая книга
Ссылки
О сайте
 

Экспертные Системы


Дата: 29.12.2001
Источник: http://www.ai.tsi.lv/ru/es/es_intro.html

1. Введение в экспертные системы

Экспертные системы (ЭС) - это прикладные системы ИИ, в которых база знаний представляет собой формализованные эмпирические знания высококвалифицированных специалистов (экспертов) в какой либо узкой предметной области. Экспертные системы предназначены для замены при решении задач экспертов в силу их недостаточного количества, недостаточной оперативности в решении задачи или в опасных (вредных) для них условиях.

Обычно экспертные системы рассматриваются с точки зрения их применения в двух аспектах: для решения каких задач они могут быть использованы и в какой области деятельности. Эти два аспекта накладывают свой отпечаток на архитектуру разрабатываемой экспертной системы.

2. Структура экспертной системы

ES structure
Рис. 1. Структура экспертной системы

ЭС состоит из следующих компонент:

  • База знаний предназначена для хранения экспертных знаний о предметной области, используемых при решении задач экспертной системой. База знаний состоит из набора фреймов и правил-продукций.
    • Фреймы используются в базе знаний для описания объектов, событий, ситуаций, прочих понятий и взаимосвязей между ними. Фрейм - это структура данных, состоящая из слотов (полей).
    • Правила используются в базе знаний для описания отношений между объектами, событиями, ситуациями и прочими понятиями. На основе отношений, задаваемых в правилах, выполняется логический вывод. В условиях и заключениях правил присутствуют ссылки на фреймы и их слоты.
  • База данных предназначена для временного хранения фактов или гипотез, являющихся промежуточными решениями или результатом общения системы с внешней средой, в качестве которой обычно выступает человек, ведущий диалог с экспертной системой.
  • Машина логического вывода - механизм рассуждений, оперирующий знаниями и данными с целью получения новых данных из знаний и других данных, имеющихся в рабочей памяти. Для этого обычно используется программно реализованный механизм дедуктивного логического вывода (какая- либо его разновидность) или механизм поиска решения в сети фреймов или семантической сети.
    Машина логического вывода может реализовывать рассуждения в виде:
    • дедуктивного вывода (прямого, обратного, смешанного);
    • нечеткого вывода;
    • вероятностного вывода;
    • унификации (подобно тому, как это реализовано в Прологе);
    • поиска решения с разбиением на последовательность подзадач;
    • поиска решения с использованием стратегии разбиения пространства поиска с учетом уровней абстрагирования решения или понятий, с ними связанных;
    • монотонного или немонотонного рассуждения,
    • рассуждений с использованием механизма аргументации;
    • ассоциативного поиска с использованием нейронных сетей;
    • вывода с использованием механизма лингвистической переменной.
  • Подсистема общения служит для ведения диалога с пользователем, в ходе которого ЭС запрашивает у пользователя необходимые факты для процесса рассуждения, а также, дающая возможность пользователю в какой-то степени контролировать и корректировать ход рассуждений экспертной системы.
  • Подсистема объяснений необходима для того, чтобы дать возможность пользователю контролировать ход рассуждений и, может быть, учиться у экспертной системы. Если нет этой подсистемы, экспертная система выглядит для пользователя как "вещь в себе", решениям которой можно либо верить, либо нет. Нормальный пользователь выбирает последнее, и такая ЭС не имеет перспектив для использования.
  • Подсистема приобретения знаний служит для корректировки и пополнения базы знаний. В простейшем случае это - интеллектуальный редактор базы знаний, в более сложных экспертных системах - средства для извлечения знаний из баз данных, неструктурированного текста, графической информации и т.д.

3. Простой пример базы знаний

Очень простой фрагмент примера написанного на CLIPS программы для распознавания животного по наличию некоторых элементов.

; Распознавание животных
; Для запуска:
;   CLIPS>(clear)
;   CLIPS>(load "zoo.clp")
;   CLIPS>(reset)
;   CLIPS>(run)

; начальные факты
(deffacts knowledge-base
   (has-hair stretch)
   (chews-cud stretch)
   (has-long-legs stretch)
   (has-long-neck stretch)
   (has-tawny-color stretch)
   (has-dark-spots stretch))

; правила
(defrule MAIN::z1
   (has-hair ?x)
   =>
   (assert (is-a-mammal ?x)))

(defrule MAIN::z2
   (gives-milk ?x)
   =>
   (assert (is-a-mammal ?x)))

(defrule MAIN::z3
   (has-feathers ?x)
   =>
   (assert (is-a-bird ?x)))

... [ПРОПУЩЕНО] ...

(defrule MAIN::z15
   (is-a-bird ?x)
   (is-a-good-flyer ?x)
   =>
   (assert (is-an-albatros ?x))
   (assert (animal-is ?x albatros)))

; последнее правило для старта программы
(defrule MAIN::showit
   (animal-is ?x ?y)
   =>
   (printout t ?x " is " ?y crlf))