А. В. Гаврилов
Скачать 0.52 Mb.
|
для создания экспертных систем 4.8.1. Состав и назначение ПО ESWin — инструментальное программное обеспечение для создания экс- пертных систем, решающих задачи диагностики, идентификации и классифи- кации. В состав этого ПО входят пять программ: программная оболочка ESWin, предназначенная для интерпретации баз знаний (ориентированная на использование при разработке и отладке баз знаний), программная оболочка ESWinK для запуска баз знаний конечным пользователем, редактор- конструктор баз знаний EdKb, позволяющий в удобной форме конструировать, просматривать и редактировать базы знаний, программа KBView для просмот- ра и диагностики целостности баз знаний, программа KBOptim для редактиро- вания и оптимизации баз знаний. Эти программы могут работать независимо друг от друга или в комплексе. ПО ESWin можно отнести к 4-му типу инстру- ментальных средств для построения экспертных систем с элементами 5-го ти- па. В пакете ESWin реализовано представление знаний в виде правил- продукций, фреймов и лингвистических переменных. Для решения задач в ней реализован нечеткий обратный логический вывод. Программное обеспечение ESWin разработано совместно кафедрой Вы- числительной техники НГТУ и фирмой "ИНСИКОМ" (Интеллектуальные Сис- темы и Комплексы) ( http://insycom.chat.ru ) и реализовано в среде Delphi 5.0. 54 4.8.2. База знаний База знаний содержит набор фреймов и правил-продукций. Пример базы знаний (фрагмент экспертной системы для проектирования экспертных систем): 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 55 ENDR RULE 4 = (Область.Применение; вычислительная техника) = (Тип.Решаемые задачи; проектирование) DO = (Метод представления знаний; Фреймы) 100 = (Метод представления знаний; Правила-продукции с представ- лением нечетких знаний) 70 = (Метод представления знаний; Семантические сети) 70 MS(Действие.Сообщение; Доказано правило 4) ENDR К порядку следования фреймов и правил-продукций, нумерации правил- продукций жестких требований не предъявляется. Единственное ограничение – неизменность номера правила-продукции на протяжении всего сеанса работы с базой знаний. Начало нумерации и порядок нумерации правил-продукций мо- жет быть произвольным, но из соображений целесообразности лучше начинать нумерацию с единицы и нумеровать правила по порядку. База знаний состоит из двух частей: постоянной и переменной. Перемен- ная часть базы знаний называется базой данных и состоит из фактов, получен- ных в результате логического вывода. Факты в базе данных не являются посто- янными. Их количество и значение зависит от процесса и результатов логиче- ского вывода. До начала работы с экспертной оболочкой база знаний находится в тек- стовом файле. В файле с расширением *.klb (KnowLedge Base) хранятся фрей- мы и правила-продукции (база знаний). При начале работы с программной оболочкой наличие данного файла обязательно. Этот файл создается пользова- телем с помощью специального редактора или вручную. В файле с расширени- ем *.dtb (DaTa Base) хранятся факты, полученные в процессе логического вы- вода (база данных). При начале работы с программной оболочкой наличие данного файла необязательно. Файл с базой данных создается программной оболочкой в процессе логического вывода. Первые части имен этих двух фай- лов совпадают. В файле с расширением *.lvd (Linguastic Variable Descriptor) описаны лингвистические переменные, используемые в базе знаний. При работе с программной оболочкой (после загрузки в оперативную па- мять баз знаний и данных) фреймы и правила-продукции, находившиеся в фай- ле с расширением *.klb, остаются неизменными. Факты, находившиеся в файле с расширением *.dtb, могут изменяться в процессе логического вывода (появ- ляться, удаляться или менять свое значение в результате срабатывания правил- продукций или диалога с пользователем). База знаний может содержать специальную конструкцию SOURCE фрей- моподобного типа: SOURCE = ‹имя конструкции› 56 PARENT: ‹имя фрейма с описанием внешней базы данных› ‹имя слота 1› [‹арифметическое выражение›]: (‹имя поля 1 в БД) ‹имя слота 2› [‹арифметическое выражение ›]: (‹имя поля 2 в БД) … ‹имя слота n› [‹арифметическое выражение ›]: (‹имя поля n в БД) ENDS Конструкция SOURCE используется для связи базы знаний с какой-либо стандартной базой данных. На ее основе автоматически формируется SQL- запрос. В нем задается отображение структуры одноименного фрейма на поля базы знаний. Имя внешней базы данных определяется во фрейме, имеющем имя, совпадающее с именем базы данных. Слот PARENT конструкции SOURCE ссылается на фрейм, имеющий имя, совпадающее с именем базы дан- ных. Другие слоты данного фрейма определяют имя таблицы в базе данных, имена полей таблицы, SQL-запрос. Если слот, предназначенный для задания SQL-запроса, не имеет значения, в поле вопроса такого слота можно использо- вать вычислимое выражение, которое и будет использоваться в качестве значе- ния слота. Использование конструкции SOURCE и фрейма с описанием внешней ба- зы данных позволяет в процессе логического вывода получать факты из внеш- ней базы данных с помощью SQL-запроса. Конструкция SOURCE должна удовлетворять следующим требованиям: 1) значение слота Parent должно соответствовать ALIAS в BDE для досту- па к базе данных, 2) количество слотов должно соответствовать количеству слотов в одно- именном с SOURCE фрейме и их имена тоже, 3) значения слотов соответствуют внутренним именам полей в базе дан- ных (таблице), в качестве таблицы может выступать запрос в ACCESS, 4) если надо использовать вычислимое поле, значение слота должно быть пусто, а в качестве вопроса к слоту (в квадртных скобках) пишется выражение для значения поля. Кроме структуры SOURCE в БЗ должен быть фрейм с именем, соответст- вующим ALIAS, в котором должен быть обязательно слот с именем Table и значением-именем таблицы в базе данных (или запроса в ACCESS). Могут быть и другие слоты, описывающие базу данных и носящие информативный характер или участвующие в диалоге (на усмотрение автора БЗ), Во время логического вывода при обращении к слоту, содержащемуся во фрейме, связанном с внешней базой данных (одноименном с конструкцией SOURCE), происходит открытие формы для автоматизированного формирова- ния SQL-запроса и чтения всех слотов фрейма из базы данных. 57 4.8.3. Фреймы Фреймы используются в базе знаний для описания объектов, событий, си- туаций, прочих понятия и взаимосвязей между ними. Фрейм – это структура данных, состоящая из слотов (полей). Формат внешнего представления фрей- мов: FRAME (‹тип фрейма›) = ‹имя фрейма› PARENT: ‹имя фрейма-родителя› ‹имя слота 1› (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}: (‹значение 1›; ‹значение 2›; …; ‹значение k›) ‹имя слота 2› (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}: (‹значение 1›; ‹значение 2›; …; ‹значение l›) … ‹имя слота n › (‹тип слота›) [‹вопрос слота›?] {‹комментарий слота›}: (‹значение 1›; ‹значение 2›; …; ‹значение m›) ENDF Фрейм может принадлежать к одному из трех типов фреймов: фрейм-класс (тип описывается зарезервированным словом «класс»), фрейм-шаблон (тип описывается зарезервированным словом «шаблон»), фрейм-экземпляр (тип описывается зарезервированным словом «экземпляр»). В базе знаний содер- жатся фреймы-классы и фреймы-шаблоны. При создании базы знаний тип фрейма-класса можно не описывать, этот тип фрейма понимается по умолча- нию. Явно следует описывать только тип фрейма-шаблона. Среди фреймов-классов выделяется специальный фрейм-класс «Цель», за- дающий перечень целей логического вывода (то есть обозначений задач, ре- шаемых экспертной системой). База данных содержит только фреймы-экземпляры. Тип фрейма- экземпляра в базе данных понимается по умолчанию. Имя фрейма, фрейма-родителя, слота – последовательность символов (ки- риллические и/или латинские буквы, цифры, пробелы, знаки подчеркивания). Тип слота – символьный, численный или лингвистическая переменная. Обязательным является описание численного типа слота (описывается зарезер- вированным словом «численный») и лингвистической переменной (описывает- ся зарезервированным словом «лп»). Слот без описания типа по умолчанию понимается как символьный. Описание типа слота заключается в круглые скобки (). Вопрос слота – любая последовательность символов, заключенная в квад- ратные скобки []. Вопрос слота не является обязательным. При отсутствии во- проса будет использована формулировка: «Выберите значение» или «Введите значение». 58 Комментарий слота – имя текстового (*.txt) или графического файла (*.bmp), заключенного в фигурные скобки {}. Комментарий слота не является обязательным. Значение слота – любая последовательность символов. Значения слота разделяются точками с запятыми. Список значений слота необязателен. Слот фрейма-экземпляра имеет единственное значение, слот фрейма-класса и фрей- ма-шаблона имеет неограниченное число значений. 59 4.8.4. Правила-продукции Правила-продукции описывают отношения между объектами, событиями, ситуациями и прочими понятиями. На основе отношений, задаваемых в прави- лах, выполняется логический вывод (решение выбранной задачи). В условиях и заключениях правил присутствуют ссылки на фреймы и их слоты. Формат внешнего представления правил: 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. Для лингвистических переменных допус- тимы все отношения, так как с ними связаны как строковые, так и численные значения. Имя слота – локальное или глобальное. Локальное имя слота соответству- ет имени слота в некотором фрейме. Глобальное имя слота содержит имя фрейма и имя слота, разделенных точкой. 60 Значение слота – строка или число (определяется типом слота). Если в ка- честве значения слота используется имя фрейма-шаблона, то в процессе логи- ческого вывода выполняется одновременное определение значений для всех слотов данного фрейма. Коэффициент достоверности – число от 0 до 100. Коэффициент достовер- ности в заключении используется при формировании значения слота фрейма- экземпляра при срабатывании правила. Коэффициент достоверности в условии в этой версии не используется. По умолчанию коэффициент достоверности принимает значение 100. 4.8.5. Лингвистические переменные При формировании базы знаний для описания нечетких понятий исполь- зуются лингвистические переменные в качестве слотов. Лингвистическая пе- ременная позволяет при логическом выводе задавать как символьное, так и численное значение слота. Лингвистическая переменная имеет одно или несколько символьных зна- чений. Каждому символьному значению поставлена в соответствие функция принадлежности, которая определяет отношение между численным значением лингвистической переменной и коэффициентом достоверности для данного численного значения (соответствующего символьному значению). Для каждого символьного значения лингвистической переменной существует собственная функция принадлежности. Функция принадлежности определяется на отрезке метрической шкалы, одном и том же для всех символьных значений лингвис- тической переменной. Описание лингвистических переменных хранится в текстовом файле (*.lvd – Linguistic Variable Description). Первая часть имени файла должна соответст- вовать именам файлов, содержащих базу знаний и базу данных (*.klb и *.dtb). Формат внешнего представления лингвистической переменной: ‹число лингвистических переменных› ‹имя лингвистической переменной 1› ‹нижнее значение границы метрической шкалы› ‹верхнее значение границы метрической шкалы› ‹шаг метрической шкалы› ‹число символьных значений лингвистической переменной 1› ‹символьное значение 1› ‹значение функции принадлежности 1› … ‹значение функции принадлежности m› … ‹символьное значение n› ‹значение функции принадлежности 1› … 61 ‹значение функции принадлежности m› … 4.8.6. Интерпретация правил-продукций Интерпретация правил начинается с выбора цели логического вывода или задачи. В качестве цели логического вывода используется один из целевых слотов, содержащихся во фрейме-классе со специальным именем «Цель». Далее осуществляется поиск правила, в заключении которого присутствует выбранный целевой слот. После нахождения правила начинается его интерпретация (перебор и про- верка условий). При проверке условия ищется соответствующий слот. Перво- начальный поиск выполняется в базе данных. Если слот имеет значение, то оно используется при проверке условия. Если значения нет, то значение слота за- прашивается у пользователя, с использованием меню выбора символьных зна- чений, или окна для ввода численного значения, или того и другого в случае слота лингвистического типа. Слот в условии может указываться своим ло- кальным именем или глобальным (с указанием имени фрейма). При локальном имени слота поиск начинается с фрейма, использованного последним при ло- гическом выводе. Такой фрейм считается текущим. Имя текущего фрейма хра- нится в качестве значения слота специального фрейма, описывающего контекст диалога. Этот фрейм всегда доступен для проверки условия в правилах. При вводе пользователем значения слота лингвистического типа, форми- руется численное значение с коэффициентом достоверности равным 100, если пользователь ввел число. Если пользователь выбрал символьное значение, формируется также численное значение, равное значению на шкале лингвисти- ческой переменной с максимальным значением коэффициента достоверности. Если значение слота в правиле было символьным, а пользователем было введе- но численное значение, то коэффициент достоверности формируется как зна- чение функции принадлежности лингвистической переменной (введенное пользователем число используется в качестве аргумента функции принадлеж- ности). Коэффициент достоверности набора условий вычисляется как коэффици- ент достоверности конъюнкции (минимальное значение из значений коэффи- циентов достоверности условий). Коэффициент достоверности слота фрейма-экземпляра, формируемого на основе заключения, вычисляется как произведение коэффициента достоверно- сти набора условий и коэффициента достоверности заключения. Если такой слот во фрейме-экземпляре уже есть, то его коэффициент достоверности меня- ется на новое значение, вычисляемое по формуле: кд результирующий = кд исходного слота + кд набора условий * (1 – кд исходного слота ) 62 При проверке условия в правиле или при выработке решения (заключения правила) в случае, если коэффициент достоверности меньше определенной ве- личины (20%), условие или заключение считаются не выполненными. Общий вид основного окна программной оболочки ESWin представлен на рис. 11. Рис. 11. Основное окно с результатами логического вывода Ниже приведены вид главного меню основной формы редактора EdKB, форма для редактирования фрейма, форма для редактирования лингвистиче- ской переменной (рис. 12, 13, 14). Рис. 12. Основное меню редактора баз знаний EdKB 63 Рис. 13. Форма для редактирования фрейма Рис. 14. Форма для редактирования лингвистической переменной 64 ЗАКЛЮЧЕНИЕ В этом учебном пособии даны основные начальные сведения о приклад- ных системах искусственного интеллекта, даны основные сведения о методах представления знаний в них и о методах решения задач, начальные сведения о методах приобретения знаний, архитектура, этапы создания, жизненный цикл, классификация инструментов для создания экспертных систем, приводится краткое описание одной из экспертных оболочек ESWin. Следует иметь в виду, что многие вопросы технологий и проблем искусст- венного интеллекта не нашли своего отражения в этой книге (части 1). Поэтому планируется к изданию часть 2, в которой будут освещены следующие вопро- сы: методы и средства приобретения знаний, модели нейронных сетей, архи- тектура гибридных интеллектуальных систем, методы и средства анализа дан- ных с помощью нейронных сетей, мульти-агентные интеллектуальные систе- мы. Автор выражает признательность Ю.В.Новицкой, принимавшей участие в создании экспертной оболочки ESWin. Т а б л и ц а 3 О с н о в н ы е н а у ч н ы е ш к о л ы п о п е р с п е к т и в н ы м т е х н о л о г и я м И И Нейронные сети (Neural Networks) Нечеткие системы (Fuzzy Systems) Интеллектуальны е роботы (Robotics) Мультиагентные системы (Multi-agent Systems) Интеллектуальный анализ данных (Intel- ligent Data Analyzing) Обработка естествен- ного языка (Natural Language Processing) University of Toronto Www.cs.toronto.edu/neu ron/ , Iowa State University http://www.cs.iastate.edu /honavar/ailab/ , Institute in Sheffield http://www.shef.ac.uk , Austrian Research Insti- tute for AI www.ai.univie.ac.at , МГТУ им. Баумана http://www.chat.ru/vlas ov/ , ВЦ СО РАН (Красно- ярск) , Институт нейрокибер- нетики (Ростов-на- Дону), СпбГЭТУ , Институт кибернетики им. Глушкова (Киев), ХТУРЭ , МИФИ, Физический институт им. Лебедева http://canopus.lpi.msk.su /neurolab/ Stanford University Http://cs.stanford.e du/Research , Iowa State Univer- sity http://www.cs.iasta te.edu/honavar/ail ab/ , Carnegi-Mellon University http://www.cs.cmu. edu , New University of Lisboa Http://www.di.fct.u nl.pt , Российский институт ИИ (Москва- Новосибирск) www.aha.ru/artint /, Институт программных систем (Переславль- Залесский) www.botik.ru/PSI / Carnegi-Mellon University http://www.cs.cmu. edu , MIT http://www.ai.mit.e du , University of Mel- bourne http://www.cs.mu.o z.au , Stanford University Http://cs.stanford.e du/Research , Edinburg Univer- sity Http://www.inform atics.ed.ac.uk , Tokyo University, University of Sus- sex, Институт им. Глушкова (Киев), Институт FAW- Ulm (Германия) Iowa State University http://www.cs.iastate.e du/honavar/ailab/ , Santa Fe Institute Http://alife.santafe.ed u , University of Mel- bourne http://www.cs.mu.oz.a u , Edinburg University Http://www.informati cs.ed.ac.uk , Austrian Research Institute for AI www.ai.univie.ac.at , Российский институт ИИ www.aha.ru/artint / Iowa State University http://www.cs.iastate.ed u/honavar/ailab/ , Stanford University Http://cs.stanford.edu/R esearch , Manchester University http://www.cs.man.ac.uk Massachusets Institute of Technologies (MIT) Http://www.ai.mit.edu , Stanford University Http://cs.stanford.edu/R esearch , Edinburg University http://www.informatics. ed.ac.uk , New University of Lis- boa http://www.di.fct.unl.pt , Harvard University http://www.eecs.harvar d.edu/ai , Austrian Research In- stitute for AI www.ai.univie.ac.at , МГТУ им. Баумана, Российский институт ИИ www.aha.ru/artint /, Институт FAW-Ulm (Германия) 63 |