|
§ 23. Экспертные системы§23Экспертные системыЭксперт — это человек, который обладает глубокими теоретическими знаниями и практическим опытом работы в некоторой области. Например, врач-эксперт хорошо ставит диагноз и лечит потому, что имеет медицинское образование и большой опыт лечения пациентов. Он не только знает факты, но и понимает их взаимосвязь, может объяснить причины явлений, сделать прогноз, найти решение в конфликтной ситуации. Эксперт может ответить на вопросы, на которые нельзя найти ответы в поисковых системах Интернета. Более того, эксперт часто может предложить решение плохо поставленных задач, например при нехватке, неточности или противоречивости исходных данных. Для этого он использует свой опыт и интуицию, которые сложно представить в виде формального алгоритма. В то же время нельзя гарантировать правильность решения, принятого в таких сложных случаях, хотя иногда эксперт может примерно оценить вероятность своей версии. Например, можно получить ответ: «С вероятностью 80% вы поступите в вуз». Экспертная система — это компьютерная программа, задача которой — заменить человека-эксперта при выработке рекомендаций для принятия решений в сложной ситуации. Разработка экспертных систем — это одно из направлений развития искусственного интеллекта, потому что такие программы пытаются моделировать мышление человека. Результат работы экспертной системы — это не числа, а конкретный совет (рекомендация) в словесной форме. Экспертные системы применяются в медицине, электронике, геологии, для решения военных и управленческих задач. Первая экспертная система Dendral была создана в Стэнфордском университете в конце 1960-х гг. для определения строения органических молекул по их химическим формулам и свойствам. В составе экспертной системы выделяют три основные части:
База знаний отличается от базы данных тем, что в ней хранятся не только факты, но и правила, по которым из фактов делаются выводы. Факты — это утверждения, которые считаются истинными, например:
Правила обычно формулируются в виде «если..., то», например:
твёрдостью, то x — алмаз. Таким образом, в отличие от данных, знания представляют собой общие связи предметов, понятий и явления; часто их формулировка содержит переменные. В логике утверждение с переменными называется предикатом. В разработке экспертной системы участвуют эксперты и специально обученный специалист — инженер по знаниям, задача которого — представить знания экспертов в такой форме, чтобы они могли быть записаны в базу знаний. Важно, чтобы эту базу знаний можно было постепенно пополнять — добавлять новые правила вывода независимо от предыдущих. Второй блок экспертной системы — «решатель» — это программа, которая моделирует рассуждения эксперта, используя предоставленные ей исходные данные и информацию из базы знаний. В результате работы она не только выдаёт заключение, но и может подробно показать, как оно было получено (какие правила были использованы). Решатель — это универсальная программа, которая может работать с любой базой знаний понятного ей формата. Как правило, пользователь работает с экспертной системой в режиме диалога, отвечая на её вопросы. Рассмотрим простейшую экспертную систему для определения класса животных. Предположим, что в базу знаний внесены следующие правила:
Диалог пользователя с экспертной системой может быть, на – Это животное кормит детей молоком? – Это животное имеет перья? – Это животное дышит жабрами? – Да. – Это рыба. Для того чтобы определить последовательность вопросов, эксперт и инженер по знаниям строят дерево решений, например такое (рис. 3.52).
Конечно, эта экспертная система неполна и в некоторых случаях класс животного определить с её помощью не получится (см. знаки вопроса на схеме). Простую экспертную систему можно написать на любом языке программирования, в котором есть операторы ввода, вывода и ветвления. Однако для профессиональных разработок в этой области чаще всего применяют специальные языки, например язык логического программирования Пролог. Программа на Прологе — это набор фактов и правил вывода. Алгоритм решения задачи писать не нужно, решающая система сама находит ответы на вопросы, заданные в определённой форме. Итак, экспертная система обладает следующими свойствами:
В последние годы прогресс в области экспертных систем не очень заметен, что связано с их серьёзными недостатками:
Вопросы и задания
Подготовьте сообщение а) «Что такое база знаний?» б) «Что делает инженер по знаниям?» в) «Применение экспертных систем» г) «Язык программирования Пролог» Задачи
*2. Постройте для вашей задачи экспертную систему на каком-нибудь языке программирования. Практические работы Работа № 13 «Работа с готовой таблицей» Работа № 14 «Создание однотабличной базы данных» Работа № 15 «Создание запросов» Работа № 16 «Создание формы» Работа № 17 «Оформление отчёта» Работа № 18 «Язык SQL» Работа № 19 «Построение таблиц в реляционной БД» Работа № 20 «Создание формы с подчинённой» Работа № 21 «Создание запроса к реляционной БД» Работа № 22 «Создание отчёта с группировкой» Работа № 23 «Нереляционные БД» Работа № 24 «Простая экспертная система» ЭОР к главе 3 на сайте ФЦИОР (http://fctor.edu.ru)
Самое важное в главе 3
|
|