Электронный учебник

§ 23. Экспертные системы

§23

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

Эксперт — это человек, который обладает глубокими теорети​ческими знаниями и практическим опытом работы в некоторой области. Например, врач-эксперт хорошо ставит диагноз и лечит потому, что имеет медицинское образование и большой опыт ле​чения пациентов. Он не только знает факты, но и понимает их взаимосвязь, может объяснить причины явлений, сделать про​гноз, найти решение в конфликтной ситуации.

Эксперт может ответить на вопросы, на которые нельзя найти ответы в поисковых системах Интернета. Более того, эксперт час​то может предложить решение плохо поставленных задач, напри​мер при нехватке, неточности или противоречивости исходных данных. Для этого он использует свой опыт и интуицию, которые сложно представить в виде формального алгоритма. В то же вре​мя нельзя гарантировать правильность решения, принятого в таких сложных случаях, хотя иногда эксперт может примерно оценить вероятность своей версии. Например, можно получить ответ: «С вероятностью 80% вы поступите в вуз».

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

Разработка экспертных систем — это одно из направлений развития искусственного интеллекта, потому что такие програм​мы пытаются моделировать мышление человека. Результат рабо​ты экспертной системы — это не числа, а конкретный совет (рекомендация) в словесной форме.

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

В составе экспертной системы выделяют три основные части:

  • базу знаний;
  • блок получения решения («решатель»);
  • интерфейс с пользователем.

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

Фактыэто утверждения, которые считаются истинными, например:

  • у окуня есть жабры;
  • Иван — отец Марьи;
  • Волга впадает в Каспийское море.

Правила обычно формулируются в виде «если..., то», напри​мер:

  • если х — животное и х дышит жабрами, то х — рыба;
  • если х — отец у и у — отец z, то x — дед z;
  • если х состоит из атомов углерода и обладает высокой

твёрдостью, то x — алмаз.

Таким образом, в отличие от данных, знания представляют собой общие связи предметов, понятий и явления; часто их фор​мулировка содержит переменные. В логике утверждение с переменными называется предикатом.

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

Второй блок экспертной системы — «решатель» — это програм​ма, которая моделирует рассуждения эксперта, используя предо​ставленные ей исходные данные и информацию из базы знаний. В результате работы она не только выдаёт заключение, но и может подробно показать, как оно было получено (какие правила были ис​пользованы). Решатель — это универсальная программа, которая может работать с любой базой знаний понятного ей формата.

Как правило, пользователь работает с экспертной системой в режиме диалога, отвечая на её вопросы. Рассмотрим простейшую экспертную систему для определения класса животных. Предпо​ложим, что в базу знаний внесены следующие правила:

  • если у животного есть перья, то это птица;
  • ​если животное дышит жабрами, то это рыба;
  • если животное кормит детёнышей молоком, то это млекопитающее;
  • если животное — млекопитающее и ест мясо, то это хищник.

Диалог пользователя с экспертной системой может быть, на​
пример, таким (ответы пользователя выделены курсивом):

– Это животное кормит детей молоком?
– Нет.

– Это животное имеет перья?
– Нет.

– Это животное дышит жабрами?

– Да.

– Это рыба.

Для того чтобы определить последовательность вопросов, экс​перт и инженер по знаниям строят дерево решений, например такое (рис. 3.52).

 

Конечно, эта экспертная система неполна и в некоторых слу​чаях класс животного определить с её помощью не получится (см. знаки вопроса на схеме).

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

Итак, экспертная система обладает следующими свойствами:

  • применяется в определённой достаточно узкой области;
  • использует базу знаний, которая может расширяться;
  • может применяться при неточных и противоречивых данных;
  • выдаёт ответ в виде рекомендации (совета по принятию решения);
  • может показать, как получено решение (какие правила применялись).

В последние годы прогресс в области экспертных систем не очень заметен, что связано с их серьёзными недостатками:

  • опыт и интуицию экспертов очень сложно формализовать, свести к чётким правилам;
  • отладка и проверка экспертных систем очень сложна, та​ким образом, трудно гарантировать правильность выводов (это особенно важно в военной области);
  • экспертные системы не способны самообучаться, для их под​держки необходима постоянная работа инженера по знаниям.

Вопросы и задания

  1. Что такое экспертная система? Из каких элементов она состоит?
  2. Чем отличается база знаний от базы данных?
  3. Перечислите особенности экспертных систем. В каких областях они применяются?
  4. Что входит в задачи инженера по знаниям?
  5. Почему развитие экспертных систем в последние годы идёт не очень активно?

 

Подготовьте сообщение

а) «Что такое база знаний?»

б) «Что делает инженер по знаниям?»

в) «Применение экспертных систем»

г) «Язык программирования Пролог»

Задачи


1. Придумайте какую-нибудь задачу, в которой нужно принять реше​ние. Постройте для неё базу знаний в форме «если..., то...» и дерево решений. Это может быть, например, прогноз погоды, отдых на выходных, поездка за рубеж и т. п.

*2. Постройте для вашей задачи экспертную систему на каком-нибудь языке программирования.

Практические работы

Работа № 13 «Работа с готовой таблицей»

Работа № 14 «Создание однотабличной базы данных»

Работа № 15 «Создание запросов»

Работа № 16 «Создание формы»

Работа № 17 «Оформление отчёта»

Работа № 18 «Язык SQL»

Работа № 19 «Построение таблиц в реляционной БД»

Работа № 20 «Создание формы с подчинённой»

Работа № 21 «Создание запроса к реляционной БД»

Работа № 22 «Создание отчёта с группировкой»

Работа № 23 «Нереляционные БД»

Работа № 24 «Простая экспертная система»

ЭОР к главе 3 на сайте ФЦИОР (http://fctor.edu.ru)

  • Проектирование объектов данных
  • Ввод данных в БД
  • ​Проектирование экранных форм
  • Запросы на выборку данных
  • Проектирование отчётов

Самое важное в главе 3

  • Информационная система (ИС) в широком смысле — это аппаратные и программные средства, предназначенные для того, чтобы своевременно обеспечить пользователей нужной информацией.
  • База данных (БД) — это специальным образом организованная совокупность данных о некоторой предметной области, хранящаяся во внешней памяти компьютера.
  • Система управления базой данных (СУБД) — это программные средства, которые позволяют выполнять все необходи​мые операции с базой данных.
  • База данных и система управления базой данных (СУБД) неразрывно связаны: свойства базы данных определяются СУБД, которая ей управляет, и наоборот.
  • Пользователь чаще всего работает с СУБД через прикладную программу. Некоторые программы, например, OpenOffice.org Base и MS Access, выполняют функции СУБД и прикладной программы.
  • Большинство современных баз данных строятся на основе реляционной модели данных и могут быть представлены в виде набора таблиц. Строки в таблицах называют записями, а столбцы — полями.
  • Для управления реляционными базами данных используется язык запросов SQL. С его помощью можно выбирать нужные данные, а также добавлять, изменять и удалять записи таблицы.
  • Для ускорения поиска в базах данных используют индек​сы — дополнительные таблицы, в которых записи отсортированы по какому-то критерию. Благодаря предварительной сортировке, в индексах можно использовать двоичный по​иск, который работает значительно быстрее линейного.
  • Чтобы не допустить потери данных при сбоях во время выполнения сложных операций, используют транзакции, каждая из которых должна быть либо выполнена полностью, либо не выполнена вообще.
  • Для обработки очень больших массивов данных применяют распределённые БД, в которых данные расположены на многих серверах в сети Интернет. Многие из этих баз данных являются документоориентированными (базы данных «ключ — значение»).

Block title

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0