- •Введение.
- •Фундаментальные подходы к познанию ис.
- •Синергетический подход.
- •Информационный подход.
- •Знания.
- •Свойства знаний.
- •Классификация знаний.
- •Модели представления знаний в сии.
- •Редукционная модель представления знаний.
- •Предикатная модель представления знаний.
- •Процедурные модели представления знаний.
- •Специальные модели представления знаний. Семантические сети.
- •Фреймовая модель представления знаний.
- •Экспертные системы в сии.
- •Архитектуры экспертной системы как сии.
- •Функциональная схема экспертной системы.
- •Технология разработки экспертных систем.
- •Общий обзор языка prolog на примере конкретной программы.
- •Пример программы.
- •Рекурсивное определение правил.
- •Поиск Пролог-системой ответа на вопрос.
- •Декларативный и процедурный смысл программы.
- •Декларативная семантика Пролог-системы.
- •Процедурная семантика Пролог-программы.
- •Порядок предложений и целей.
- •Списки.
- •Операции над списками.
- •1) Принадлежность к списку.
- •2) Добавление элемента.
- •3) Удаление элемента.
- •4) Сцепление (конкатенация) списков.
- •Управление перебором в Пролог-системе.
- •Решение головоломок методом «образовать и проверить».
Функциональная схема экспертной системы.
ППП – пакеты прикладных программ.
Фундаментальным принципом построения экспертных систем является разделение БД, БЗ и МЛВ. Это позволяет добавить в экспертную систему новые факты, знания и отношения, делает её более гибкой по отношению к классу решаемых задач и более дружественной пользователю.
Способность экспертных систем понимать запросы пользователя и объяснять ему механизмы получения решений достигается особенностями её организации, что отличает её от традиционных программ, построенных на основе алгоритмов. Задачи здесь задаются на языке запросов к экспертной системе. После грамматического анализа описание задачи поступает на вход дедуктивной машины. МЛВ трансформирует это описание в последовательность вызовов модулей ППП, используя знания о методах решения задач, содержащихся в базе знаний, то есть МЛВ трансформирует описание задачи в абстрактный алгоритм её решения. Этот алгоритм выполняется монитором, а результат поступает на вход подсистемы формирования ответа, преобразующей результат в тексты, таблицы, графики и выводящей их на терминал пользователя.
Можно отметить, что БЗ является ядром экспертной системы, состоящее из правил и фактов и определяющее диапазоны решаемых задач и качество предлагаемых решений. Знания, хранящиеся в БЗ, можно разделить на категории:
алгоритмические знания, являющиеся правилами решения задачи, выраженными в виде алгоритмов и хранящихся в памяти ЭВМ в виде библиотеки программ;
фактуальные знания, являющиеся количественными и качественными характеристиками объектов рассматриваемой предметной области, выраженными на языках описания данных, в иерархических, сетевых или реляционных, и хранящихся в памяти ЭВМ в виде базы данных);
концептуальные знания – причинно-следственные, структурно-функциональные и другие зависимости, выраженные на языках представления знаний (семантических сетях, математической логике, фреймовых или их комбинациях) и хранящихся в ЭВМ в виде базы знаний.
МЛВ определяет уровень интеллекта экспертной системы и содержит правила и стратегии логического вывода. Можно сказать, что он знает как использовать знания для решения поставленных перед экспертной системой задач.
Обычно он выполняет обзорные или мониторные функции, определяя при этом какие знания нужно использовать для решения поставленной задачи и организуя доступ к ним в базе знаний.
Особенности языков логического программирования, таких как LISP или PROLOG, является наличие встроенного механизма логического вывода, поэтому реализация экспертных систем на таких языках сводится к разработке базы знаний и пользовательского интерфейса.
Инструментальными средствами построения экспертных систем являются системы программирования, упрощающие их проектирование, которые образуют:
средства организации данных и знаний (относятся символьные языки программирования, процедурные языки программирования(языки представления знаний), структурно-поисковые системы, СУБД);
средства поддержки ПО (ассемблеры, макроассемблеры, компиляторы, интерпретаторы, отладчики и т. д.);
сервисные средства (редакторы, документаторы, деловые и обучающие системы, которые носят обслуживающий вспомогательный характер и обеспечивают комфортные условия функционирования экспертной системы);
комплексные средства (СУБД со встроенным языком программирования интерпретирующего или компилирующего типа, системы организации данных с окружением и специализированные средства обработки данных).
Эти средства соединяют в себе несколько компонентов, каждый из которых относится к одной из первых трёх групп.
СУБД со встроенным языком программирования, помимо собственных средств работы с фактами базы данных, содержат декларативный язык программирования. В сочетании с компилирующей системой такая СУБД может использоваться для разработки экспертной системы.
В разработке экспертных систем принимают участие специалисты:
эксперт предметной области, задачи которой будет решать экспертная система. Эксперт определяет знания (факты и правила), характеризующие данную предметную область, обеспечивает полноту и правильность заполнения экспертной системы знаниями;
инженер по знаниям (когнитолог). Он помогает эксперту выявить и структурировать знания, необходимые для работы экспертной системы. Осуществляет выбор того инструментального средства , которое наиболее подходит к данной предметной области и определяет способ представления знаний. Он выделяет и программирует традиционными средствами стандартные функции, типичные для данной предметной области, которые впоследствии будут использоваться в правилах, вводимых экспертами. Процедуры анализа предметной области, получения знаний от эксперта и их структурировании являются наиболее тяжёлыми, поскольку с одной стороны чрезвычайно высок уровень требований, предъявляемый к инженеру по знаниям. Это должен быть высококвалифицированный специалист вычислительной науки, в то же время обладающий способностями к контакту с экспертами, умеющий побудить эксперта поставлять нужную информацию и умеющий отделять главное от второстепенного в этой информации. С другой стороны, наблюдаются трудности с поисками экспертов. Например, эксперт не может чётко сформулировать свои знания, либо вообще не расположен делиться информацией;
программисты, которые разрабатывают инструментальные средства, содержащие в пределе все компоненты экспертной системы, осуществляют сопряжение инструментальных средств, с той средой, которую они будут использовать. Можно отметить отсутствие среди участников разработки инженера по знаниям, либо замена его другим программистом приводит к неудаче, либо существенно удлиняет процесс разработки.
