"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.
Экспертная система — программа, которая помогает решать задачи в конкретной предметной области, используя знания и правила, заданные специалистами. В отличие от обычной программы, она не только выполняет заранее описанную последовательность действий, но и выводит заключения из фактов. Чтобы понять её ответ, важно различать базу знаний, механизм вывода и рабочую память, а также учитывать, что качество решения зависит от полноты исходных данных и правил.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Экспертная система — программа, которая решает задачи в определённой предметной области, применяя формализованные знания специалистов. Она нужна, чтобы помогать в ситуациях, где требуется сопоставлять признаки с правилами и выбирать обоснованное решение. Обычная программа, как правило, исполняет заранее заданный алгоритм, а экспертная система может выводить заключения из введённых фактов.
База знаний — часть системы, в которой хранятся сведения о предметной области и правила решения задач. Правило часто записывают как условие «если…, то…»: при выполнении условия оно позволяет предположить или заключить что-либо. База знаний нужна не просто для хранения информации, а для того, чтобы система могла использовать знания при рассуждении.
Механизм вывода — компонент, который проверяет условия правил и применяет те из них, которым соответствуют известные факты. Так он получает новые факты или итоговое заключение. Без этого компонента правила оставались бы набором записей, не связанным с конкретной задачей пользователя.
Объяснительный компонент показывает, на каких фактах и правилах основан ответ системы. Он нужен, чтобы пользователь мог проследить ход рассуждения, а не просто принять рекомендацию на веру. Такое объяснение особенно полезно, когда решение нужно проверить или сравнить с альтернативным.
Экспертные системы создают для узких предметных областей, потому что знания и правила в разных областях сильно различаются. Для диагностики неисправностей, например, нужны одни признаки и связи, а для консультации по другой задаче — другие. Поэтому в систему включают не все знания человека, а опыт экспертов, относящийся к определённому кругу решений.
Сначала знания собирают у специалистов: выясняют, на какие признаки они обращают внимание и как выбирают решение в разных случаях. Затем эти знания нужно представить в форме, которую может обработать компьютер, например как факты и правила «если — то». Формализация необходима, потому что объяснения эксперта могут быть неявными, неполными или выраженными обычным языком, тогда как программа должна проверять чёткие условия.
Пользователь сообщает системе исходные данные через интерфейс: отвечает на вопросы или вводит наблюдаемые признаки. Система представляет полученные сведения как факты и помещает их в рабочую память — набор данных, используемых при решении конкретной задачи. Это разделение помогает не путать постоянные знания из базы с изменяющимися сведениями о текущем случае.
Механизм вывода сопоставляет факты с условиями правил. Когда все условия подходящего правила выполнены, система применяет его и добавляет заключение к рабочим фактам; новый факт может стать условием для следующего правила. Так формируется цепочка рассуждения, которая приводит от наблюдений к промежуточным выводам и затем к рекомендации или ответу.
Если нужных сведений не хватает, система может запросить их у пользователя или сообщить, что уверенно вывести результат нельзя. Если подходят несколько правил, возможны несколько заключений; тогда система может показать альтернативы или применить предусмотренный способ выбора. Объяснительный компонент позволяет проследить, какие исходные факты и промежуточные выводы привели к результату, поэтому рекомендацию можно проверить.
| Компонент | Что содержит или делает | Роль при решении задачи |
|---|---|---|
| База знаний | Хранит сведения о предметной области и правила. | Даёт системе знания для решения задачи. |
| Механизм вывода | Сопоставляет факты с условиями правил и применяет подходящие правила. | Получает новые факты и заключения. |
| Рабочая память (факты) | Содержит исходные и промежуточные факты текущей задачи. | Предоставляет данные для проверки правил. |
| Интерфейс пользователя | Обеспечивает ввод данных и получение ответа. | Связывает пользователя с системой. |
| Объяснительный компонент | Показывает основания и ход вывода. | Помогает проверить и понять ответ. |
Чтобы разобраться в устройстве системы, проследите путь данных: пользователь вводит факты, механизм вывода обращается к базе знаний, а новые результаты попадают в рабочую память. Затем объяснительный компонент помогает восстановить основания ответа. Такое разделение показывает, какой элемент отвечает за знания, а какой — за их применение.
Условие. В базе есть правило: «Если у объекта есть признак А, то предположить признак Б». В исходных фактах указан признак А. Нужно определить, что система получит после одного шага, не делая дополнительных предположений.
Ответ. После одного шага система получит заключение «у объекта есть признак Б». Оно не означает, что признак Б был прямо задан пользователем: его вывели из факта А по правилу. Если бы факта А не было, это правило не сработало бы.
Условие. Пусть база содержит правила «если есть признак А, то неисправен узел X» и «если неисправен узел X, то вероятна причина Y». Среди наблюдений есть признак А. Требуется выяснить, какие заключения появятся при последовательном применении правил.
Ответ. Система последовательно получит «неисправен узел X» и «вероятна причина Y». Второй вывод зависит от первого, а первый — от исходного наблюдения. Если бы признака А не было и другой путь к неисправности X не существовал, эта цепочка не возникла бы.
Условие. Система рекомендовала проверить соединение. В базе есть правила: «если индикатор не горит, то питание не подтверждено» и «если питание не подтверждено и кабель подключён, то проверить соединение». Исходные факты: индикатор не горит, кабель подключён. Нужно объяснить рекомендацию.
Ответ. Рекомендация получена по цепочке из двух правил; ключевое промежуточное заключение — «питание не подтверждено». Если бы кабель не был отмечен как подключённый, условие второго правила не выполнилось бы и именно эта рекомендация не следовала бы. При наличии других правил могли бы появиться иные варианты проверки.
Базу знаний иногда принимают за обычную базу данных, потому что обе хранят информацию. Но в базе знаний важны ещё и правила, позволяющие получать новые заключения. Проверьте себя: если в описании есть только записи о фактах, но нет связей «если — то», этого недостаточно, чтобы объяснить вывод системы.
Механизм вывода и базу знаний путают, поскольку оба участвуют в рассуждении. Однако база хранит знания, а механизм проверяет и применяет правила к фактам. Чтобы не ошибиться, спросите себя, что именно выполняет действие: источник условий — база знаний, процесс проверки — механизм вывода.
Можно подумать, что экспертная система сама приобретает любые новые знания, ведь она способна делать выводы. На деле обычно специалисты и разработчики заранее собирают и формализуют знания, а выводы строятся по заложенным правилам. Проверьте себя: если новое правило не внесено в базу, система не станет автоматически знать его только потому, что столкнулась с новым случаем.
Ответ системы иногда считают безусловно верным, так как он сформулирован уверенно и опирается на правила. Но неверные факты или неполная база могут привести к ошибочному результату. Проверяйте, достаточно ли исходных данных, подходят ли правила к ситуации и не выходят ли выводы за пределы области, для которой создавалась система.
Для понимания работы экспертной системы полезны знания о том, как данные представляют в компьютере и как описывают факты. Также нужно уметь читать логические условия и правила вида «если — то»: именно их механизм вывода сопоставляет с введёнными сведениями. Поэтому ошибки в понимании условий могут привести к неверному восстановлению цепочки рассуждений.
Экспертные системы относятся к области искусственного интеллекта, где компьютерные программы выполняют задачи, требующие использования знаний. Их применяют для поддержки принятия решений в специализированных областях. При этом система не заменяет специалиста: её рекомендации нужно оценивать с учётом качества данных и границ заложенных знаний.
Чем экспертная система отличается от обычной программы?
Обычная программа обычно выполняет заданный алгоритм, а экспертная система использует правила предметной области, чтобы делать выводы из фактов. Она также может объяснить, какие данные и правила привели к ответу.
Кто и как наполняет базу знаний?
Знания собирают у экспертов — специалистов в нужной области. Разработчики уточняют их и переводят в формальные факты и правила, которые компьютер может обрабатывать.
Как система получает заключение из заданных фактов?
Механизм вывода проверяет, совпадают ли факты с условиями правил. Если условия выполнены, система добавляет заключение к известным фактам и может использовать его для следующих выводов.
Что происходит, если ни одно правило не подходит?
Система не может вывести заключение на основе имеющихся данных и правил. Она может сообщить об этом или запросить дополнительные сведения, если такая возможность предусмотрена.
Почему ответ экспертной системы может оказаться неверным?
Причиной могут быть неполные или ошибочные исходные факты, а также неточные или устаревшие правила. Система рассуждает в рамках заложенной базы знаний, поэтому её ответ не гарантированно верен.
§ 12. Экспертные системы