Общество с ограниченной ответственностью

«ИНСИКОМ»

(Интеллектуальные Системы и Комплексы)

Инструментальное программное обеспечение

для создания экспертных систем

ESWin версия 1.1

Оболочка-интерпретатор баз знаний

Руководство по использованию

Новосибирск 2000

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 3

ОБЩИЕ ПОЛОЖЕНИЯ 3

БАЗА ЗНАНИЙ 4

ФРЕЙМЫ 6

Имя фрейма, фрейма-родителя, слота 7

Тип слота 7

Вопрос слота 7

Комментарий слота 7

Значения слота 8

ПРАВИЛА-ПРОДУКЦИИ (ПРАВИЛА) 8

Номер правила 8

Условия и заключения 8

Отношения 8

Имя слота 9

Значение слота 9

Коэффициент достоверности 9

ЛИНГВИСТИЧЕСКИЕ ПЕРЕМЕННЫЕ 9

ИНТЕРПРЕТАЦИЯ ПРАВИЛ-ПРОДУКЦИЙ 10

ОПИСАНИЕ ПРОГРАММНОЙ ОБОЛОЧКИ 11

Общий вид 11

Строка заголовка 11

Строка меню 11

ГЛОССАРИЙ 15

ЛИТЕРАТУРА 16

ВВЕДЕНИЕ

ESWin v.1.1 — инструментальное программное обеспечение для создания экспертных систем. В его состав входят два программных модуля: программная оболочка ESWin, предназначенная для интерпретации баз знаний и редактор-конструктор баз знаний EdKb, позволяющий в удобной форме конструировать, просматривать и редактировать базы знаний. Модули могут работать независимо друг от друга или в комплексе.

В настоящее время реализована версия 1.1 программного обеспечения ESWin. Программное обеспечение реализовано в среде Delphi 3.0.

ОБЩИЕ ПОЛОЖЕНИЯ

ESWin — программная оболочка-интерпретатор для работы с продукционно-фреймовыми экспертными системами. Описываемая программная оболочка предназначена для решения задач обратного логического вывода на основе фреймов и правил-продукций баз знаний (интерпретации баз знаний).

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

Знания в базе знаний хранятся в виде фреймов и правил-продукций.

Фреймом называется структура для описания стереотипной ситуации, состоящая из характеристик этой ситуации и их значений. Характеристики называются слотами, а значения — значениями слотов. Слот может иметь не одно, а несколько значений. Помимо конкретного значения, в качестве значения слота могут использоваться процедуры и правила, которые вызываются для вычисления этого значения.

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

(

Имя фрейма:

Имя слота 1 (значения слота 1)

Имя слота 2 (значения слота 2)

Имя слота n (значения слота n)

)

Значением слота может быть практически что угодно (числа или математические соотношения, тексты на естественном языке или программы, правила вывода или ссылки на другие слоты данного фрейма или других фреймов). В качестве значения слота может выступать набор слотов более низкого уровня, что позволяет во фреймовых представлениях реализовать "принцип матрешки".

При конкретизации фрейма ему и слотам присваиваются конкретные имена, и происходит заполнение слотов. Таким образом, из фреймов-классов получаются фреймы-экземпляры. Переход от исходного фрейма-класса к фрейму-экземпляру может быть многошаговым, за счет постепенного уточнения значений слотов. Фреймы-экземпляры составляют базу данных. База данных предназначена для временного хранения фактов или гипотез, являющихся промежуточными решениями или результатом общения экспертной системы с внешней средой, в качестве которой обычно выступает человек, ведущий диалог с экспертной системой.

Правила-продукции позволяют представить знания в виде предложений ЕСЛИ (условие) ТО (заключение), где условие — это образец, по которому осуществляется поиск в базе знаний, а заключение — действия или процедуры, выполняемые при успешном исходе поиска (могут быть промежуточными, выступающими далее как условия, или целевыми, завершающими работу системы)

БАЗА ЗНАНИЙ

База знаний содержит набор фреймов и правил-продукций. Формат внешнего представления базы знаний:

TITLE = ‹название экспертной системы›

COMPANY = ‹название предприятия›

FRAME // фрейм

‹описание фрейма›

ENDF

FRAME // фрейм

‹описание фрейма›

ENDF

RULE // правило-продукция

‹описание условий правила›

DO

‹описание заключений правила›

ENDR

RULE // правило-продукция

‹описание условий правила›

DO

‹описание заключений правила›

ENDR

Пример базы знаний:

TITLE = для выбора метода представления знаний

FRAME = Цель

Метод представления знаний: ()

ENDF

FRAME = Тип

Решаемые задачи: (диагностика; проектирование)

ENDF

FRAME = Область

Применение [Какова область применения?]: (медицина; вычислительная техника)

ENDF

FRAME = Количество

Число правил в базе знаний (численный): ()

Число объектов в базе знаний (численный): ()

ENDF

FRAME = Действие

Сообщение: ()

ENDF

RULE 1

> (Количество. Число правил в базе знаний; 50)

< (Количество. Число правил в базе знаний; 100)

< (Количество. Число объектов в базе знаний; 30)

DO

= (Тип. Решаемые задачи; диагностика) 100

ENDR

RULE 2

> (Количество. Число правил в базе знаний; 100)

> (Количество. Число объектов в базе знаний; 30)

DO

= (Тип. Решаемые задачи; проектирование) 100

ENDR

RULE 3

= (Область. Применение; медицина)

= (Тип. Решаемые задачи; диагностика)

DO

= (Метод представления знаний; Правила-продукции с представлением нечетких знаний) 90

ENDR

RULE 4

= (Область. Применение; вычислительная техника)

= (Тип. Решаемые задачи; проектирование)

DO

= (Метод представления знаний; Фреймы) 100

= (Метод представления знаний; Правила-продукции с представлением нечетких знаний) 70

= (Метод представления знаний; Семантические сети) 70

MS(Действие. Сообщение; Доказано правило 4)

ENDR

К порядку следования фреймов и правил-продукций, нумерации правил-продукций жестких требований не предъявляется. Единственное ограничение – неизменность номера правила-продукции на протяжении всего сеанса работы с базой знаний. Начало нумерации и порядок нумерации правил-продукций может быть произвольным, но из соображений целесообразности лучше начинать нумерацию с единицы и нумеровать правила по порядку.

База знаний состоит из двух частей: постоянной и переменной. Переменная часть базы знаний называется базой данных и состоит из фактов, полученных в результате логического вывода. Факты в базе данных не являются постоянными. Их количество и значение зависит от процесса и результатов логического вывода.

До начала работы с экспертной оболочкой база знаний находится в текстовом файле. В файле с расширением *.klb (KnowLedge Base) хранятся фреймы и правила-продукции (база знаний). При начале работы с программной оболочкой наличие данного файла обязательно. Этот файл создается пользователем с помощью специального редактора или вручную. В файле с расширением *.dtb (DaTa Base) хранятся факты, полученные в процессе логического вывода (база данных). При начале работы с программной оболочкой наличие данного файла необязательно. Файл с базой данных создается программной оболочкой в процессе логического вывода. Первые части имен этих двух файлов совпадают.

При работе с программной оболочкой (после загрузки в оперативную память баз) фреймы и правила-продукции, находившиеся в файле с расширением *.klb, остаются неизменными. Факты, находившиеся в файле с расширением *.dtb, могут изменяться в процессе логического вывода (появляться, удаляться или менять свое значение в результате срабатывания правил-продукций или диалога с пользователем).

База знаний может содержать специальную конструкцию SOURCE фреймоподобного типа:

SOURCE = ‹имя конструкции›

PARENT: ‹имя фрейма с описанием внешней базы данных›

‹имя слота 1› [‹арифметическое выражение›]: (‹имя поля 1 в БД)

‹имя слота 2› [‹арифметическое выражение ›]: (‹имя поля 2 в БД)

‹имя слота n› [‹арифметическое выражение ›]: (‹имя поля n в БД)

ENDS

Конструкция SOURCE используется для связи базы знаний с какой-либо стандартной базой данных. На ее основе автоматически формируется SQL-запрос. В нем задается отображение структуры одноименного фрейма на поля базы знаний. Имя внешней базы данных определяется во фрейме, имеющем имя, совпадающее с именем базы данных. Слот PARENT конструкции SOURCE ссылается на фрейм, имеющий имя, совпадающее с именем базы данных. Другие слоты данного фрейма определяют имя таблицы в базе данных, имена полей таблицы, SQL-запрос. Если слот, предназначенный для задания SQL-запроса, не имеет значения, в поле вопроса такого слота можно использовать вычислимое выражение, которое и будет использоваться в качестве значения слота.

Использование конструкции SOURCE и фрейма с описанием внешней базы данных позволяет в процессе логического вывода получать знания из внешней базы данных с помощью SQL-запроса.

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

ФРЕЙМЫ

Фреймы используются в базе знаний для описания объектов, событий, ситуаций, прочих понятия и взаимосвязей между ними. Фрейм – это структура данных, состоящая из слотов (полей). Формат внешнего представления фреймов:

FRAME (‹тип фрейма›) = ‹имя фрейма›

PARENT: ‹имя фрейма-родителя›

‹имя слота 1› (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}:

(‹значение 1›; ‹значение 2›; …; ‹значение k›)

‹имя слота 2› (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}:

(‹значение 1›; ‹значение 2›; …; ‹значение l›)

‹имя слота n › (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}:

(‹значение 1›; ‹значение 2›; …; ‹значение m›)

ENDF

Фрейм может принадлежать к одному из трех типов фреймов: фрейм-класс (тип описывается зарезервированным словом «класс»), фрейм-шаблон (тип описывается зарезервированным словом «шаблон»), фрейм-экземпляр (тип описывается зарезервированным словом «экземпляр»). В базе знаний содержатся фреймы-классы и фреймы-шаблоны. При создании базы знаний тип фрейма-класса можно не описывать, этот тип фрейма понимается по умолчанию. Явно следует описывать только тип фрейма-шаблона.

Среди фреймов-классов выделяется специальный фрейм-класс «Цель», задающий перечень целей логического вывода (то есть обозначений задач, решаемых экспертной системой).

База данных содержит только фреймы-экземпляры. Тип фрейма-экземпляра в базе данных понимается по умолчанию.

Имя фрейма, фрейма-родителя, слота

Имя фрейма, фрейма-родителя, слота – последовательность символов (кириллические и/или латинские буквы, цифры, пробелы, знаки подчеркивания).

Тип слота

Тип слота – символьный, численный или лингвистическая переменная. Обязательным является описание численного типа слота (описывается зарезервированным словом «численный») и лингвистической переменной (описывается зарезервированным словом «лп»). Слот без описания типа по умолчанию понимается как символьный. Описание типа слота заключается в круглые скобки ().

Вопрос слота

Вопрос слота – любая последовательность символов, заключенная в квадратные скобки []. Вопрос слота не является обязательным. При отсутствии вопроса будет использована формулировка: «Выберите значение» или «Введите значение».

Комментарий слота

Комментарий слота – имя текстового (*.txt) или графического файла (*.bmp), заключенного в фигурные скобки {}. Комментарий слота не является обязательным.

Значения слота

Значение слота – любая последовательность символов. Значения слота разделяются точками с запятыми. Список значений слота необязателен. Слот фрейма-экземпляра имеет единственное значение, слот фрейма-класса и фрейма-шаблона имеет неограниченное число значений.

ПРАВИЛА-ПРОДУКЦИИ (ПРАВИЛА)

Правила-продукции описывают отношения между объектами, событиями, ситуациями и прочими понятиями. На основе отношений, задаваемых в правилах, выполняется логический вывод (решение выбранной задачи). В условиях и заключениях правил присутствуют ссылки на фреймы и их слоты. Формат внешнего представления правил:

RULE ‹номер правила›

‹условие 1›

‹условие 2›

‹условие m›

DO

‹заключение 1›

‹заключение 2›

‹заключение n›

ENDR

Номер правила

Номер правила – целое число. Начало и порядок нумерации правил произвольный, предпочтительнее правила нумеровать по порядку и начинать с единицы.

Условия и заключения

Формат записи условий и заключений одинаков и имеет следующий вид:

‹отношение› (‹имя слота›; ‹значение слота›) ‹коэффициент достоверности›

Отношения

Отношения в условиях и заключениях могут быть:

EQ | = равно;

GT | > больше;

LT | < меньше;

DL удаление слота во фрейме-экземпляре;

EX запуск внешней программы;

FR вывод фрейма-экземпляра;

GO запуск правила;

MS выдача сообщения.

В заключениях правил используются только отношения EQ, DL, EX, FR, GO, и MS. Для строковых значений слотов могут быть использованы только отношения EQ, DL, EX, FR, GO, MS. Для лингвистических переменных допустимы все отношения, так как с ними связаны как строковые, так и численные значения.

Имя слота

Имя слота – локальное или глобальное. Локальное имя слота соответствует имени слота в некотором фрейме. Глобальное имя слота содержит имя фрейма и имя слота, разделенных точкой.

Значение слота

Значение слота – строка или число (определяется типом слота). Если в качестве значения слота используется имя фрейма-шаблона, то в процессе логического вывода выполняется одновременное определение значений для всех слотов данного фрейма.

Коэффициент достоверности

Коэффициент достоверности – число от 0 до 100. Коэффициент достоверности в заключении используется при формировании значения слота фрейма-экземпляра при срабатывании правила. Коэффициент достоверности в условии в этой версии не используется. По умолчанию коэффициент достоверности принимает значение 100.

ЛИНГВИСТИЧЕСКИЕ ПЕРЕМЕННЫЕ

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

Лингвистическая переменная имеет одно или несколько символьных значений. Каждому символьному значению поставлена в соответствие функция принадлежности, которая определяет отношение между численным значением лингвистической переменной и коэффициентом достоверности для данного численного значения (соответствующего символьному значению). Для каждого символьного значения лингвистической переменной существует собственная функция принадлежности. Функция принадлежности определяется на отрезке метрической шкалы, одном и том же для всех символьных значений лингвистической переменной.

Описание лингвистических переменных хранится в текстовом файле (*.lvd – Linguistic Variable Description). Первая часть имени файла должна соответствовать именам файлов, содержащих базу знаний и базу данных (*.klb и *.dtb). Формат внешнего представления лингвистической переменной:

‹число лингвистических переменных›

‹имя лингвистической переменной 1›

‹нижнее значение границы метрической шкалы›

‹верхнее значение границы метрической шкалы›

‹шаг метрической шкалы›

‹число символьных значений лингвистической переменной 1›

‹символьное значение 1›

‹значение функции принадлежности 1›

‹значение функции принадлежности 2›

‹значение функции принадлежности m›

‹символьное значение 2›

‹значение функции принадлежности 1›

‹значение функции принадлежности 2›

‹значение функции принадлежности m›

‹символьное значение n›

‹значение функции принадлежности 1›

‹значение функции принадлежности 2›

‹значение функции принадлежности m›

ИНТЕРПРЕТАЦИЯ ПРАВИЛ-ПРОДУКЦИЙ

Интерпретация правил начинается с выбора цели логического вывода или задачи. В качестве цели логического вывода используется один из целевых слотов, содержащихся во фрейме-классе со специальным именем «Цель».

Далее осуществляется поиск правила, в заключении которого присутствует выбранный целевой слот.

После нахождения правила начинается его интерпретация (перебор и проверка условий). При проверке условия ищется соответствующий слот. Первоначальный поиск выполняется в базе данных. Если слот имеет значение, то оно используется при проверке условия. Если значения нет, то значение слота запрашивается у пользователя, с использованием меню выбора символьных значений, или окна для ввода численного значения, или того и другого в случае слота лингвистического типа. Слот в условии может указываться своим локальным именем или глобальным (с указанием имени фрейма). При локальном имени слота поиск начинается с фрейма, использованного последним при логическом выводе. Такой фрейм считается текущим. Имя текущего фрейма хранится в качестве значения слота специального фрейма, описывающего контекст диалога. Этот фрейм всегда доступен для проверки условия в правилах.

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

Коэффициент достоверности набора условий вычисляется как коэффициент достоверности конъюнкции (минимальное значение из значений коэффициентов достоверности условий).

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

кд результирующий = кд исходного слота + кд набора условий * (1 – кд исходного слота)

При проверке условия в правиле или при выработке решения (заключения правила) в случае, если коэффициент достоверности меньше определенной величины (20%), условие или заключение считаются не выполненными.

ОПИСАНИЕ ПРОГРАММНОЙ ОБОЛОЧКИ

Общий вид

Общий вид основного окна программной оболочки ESWin представлен на рис. 1.

Рис. 1. Основное окно.

Строка заголовка

Заголовок окна содержит название загруженной для интерпретации базы знаний (определяется строкой TITLE базы знаний).

Строка меню

Меню содержит пункты: «Файл», «Решение» и «?».

Пункт меню «Файл» содержит пункты:

-  «Открыть базу знаний…» – загрузка базы знаний (из *.klb файла). Загрузка описания лингвистических переменных выполняется автоматически (из *.lvd файла). Общий вид основного окна после загрузки базы знаний представлен на рис. 2;

Рис. 2. Основное окно после загрузки базы знаний.

-  «Открыть базу данных…» – загрузка базы данных (из *.dtb файла);

-  «Выход» – завершение работы программной оболочки.

Пункт меню «Решение» содержит пункты: «Выбор цели» – задание цели логического вывода. Общий вид дополнительного окна выбора цели представлен на рис. 3;

Рис. 3. Окно «Выбор задачи».

-  «Поиск решения» – поиск первого подходящего решения для заданной цели логического вывода. Вид дополнительных окон, отображающихся в процессе поиска решения, представлен на рис. 4. Общий вид основного окна после нахождения решения заданной цели представлен на рис. 5

Рис. 4. Окна «Выбор значения» и «Ввод значения».

Рис. 5. Основное окно с результатами логического вывода.

-  «Поиск следующего решения» – последовательный поиск следующих подходящих решений для заданной цели логического вывода;

-  «Трассировка решения» – просмотр последовательности действий, выполненных программной оболочкой в процессе поиска решения. Общий вид дополнительного окна с результатами трассировки представлен на рис. 6;

Рис. 6. Окно с результатами трассировки.

-  «Просмотр базы данных» – просмотр фреймов-экземпляров, полученных в результате логического вывода (интерпретации базы знаний), с возможностью удаления отдельного слота фрейма-экземпляра, отдельного фрейма-экземпляра и всех фреймов-экземпляров базы данных. Общий вид дополнительного окна просмотра базы данных представлен на рис. 7;

Рис. 7. Окно с фреймами-экземплярами базы данных.

-  «Очистка базы данных» – удаление всех фреймов-экземпляров, полученных в результате логического вывода (интерпретации базы знаний).

Пункт меню «?» содержит пункты:

-  «Вызов справки» – получение справочной информации;

-  «О программе» – информация о программе.

ГЛОССАРИЙ

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

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

Вывод — процесс рассуждения, во время которого из известных фактов выводятся новые факты.

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

Знания — проверенный практикой результат познания действительности, верное ее отражение в мышлении человека.

Коэффициент достоверности — мера доверия к факту или отношению.

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

Правило-продукция — структура, позволяющая представить знания в виде предложений ЕСЛИ (условие) ТО (заключение).

Слот — элемент фрейма, описывающий атрибут объекта, описываемого фреймом.

Условие — образец, по которому осуществляется поиск в базе.

Факт — утверждение или посылка, которые являются истинными. Факт может состоять из атрибута и соответствующего значения.

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

Цель — задача, решаемая экспертной системой, выбирается при запуске экспертной системы их фрейма «Цель» и представляет собой слот этого фрейма.

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

ЛИТЕРАТУРА

1.  . Экспертные системы. - М:, Наука, 1987.

2.  К. Таунсенд, Д. Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ. - М.: Финансы и статистика, 1990.

3.  Д. Уотерман. Руководство по экспертным системам. - М.: Мир, 1989.

4.  Экспертные системы. Принципы работы и примеры. Под ред. Р. Форсайта.- М.: Радио и связь, 1987.

5.  Гаврилов экспертная система для профориентации. - / В сб. науч. трудов НГТУ. – Новосибирск, Изд-во НГТУ. – 1997, № 3(8). – с. 123-132.

6.  Гаврилов «двухполушарной» экспертной системы. - / В межвуз. Сб. науч. трудов «Системы искусственного интеллекта» под ред. . – Новосибирск, 1993. – с. 10-14.

7.  Понятие лингвистической переменной и его применение к принятию приближенных решений. – М.: Мир, 1976. – 165 с.

8.  Petrov VV; Pavlova NV. Multi-Method Organization In Hybrid Expert Systems. - / Doklady Akademii Nauk. 1996, V 350, N 4, Oct.- p 465-466.

9.  , Новицкая программное обеспечение для создания гибридных экспертных систем. – Доклады Межд. Науч.-техн.. конф. «Информационные системы и технологии» ИСТ-2000, Новосибирск, НГТУ, 2000.

10.  , Новицкая гибридной экспертной системы. – Межд. Симп. «ИНПРИМ-2000», Новосибирск, 2000.