Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая ЭС.rtf
Скачиваний:
45
Добавлен:
01.05.2015
Размер:
14.03 Mб
Скачать

.1.3 Анализ инструментальных средств построения эс

Виды инструментальных средств построения ЭС

Традиционные языки программирования

В эту группу инструментальных средств входят традиционные языки программирования (С, C++, Basic, SmallTalk, Fortran и т.д.), ориентированные в основном на численные алгоритмы и слабо подходящие для работы с символьными и логическими данными. Поэтому создание систем искусственного интеллекта на основе этих языков требует большой работы программистов. Однако большим достоинством этих языков является высокая эффективность, связанная с их близостью к традиционной машинной архитектуре. Кроме того, использование традиционных языков программирования позволяет включать интеллектуальные подсистемы (например, интегрированные экспертные системы) в крупные программные комплексы общего назначения.

Языки искусственного интеллекта

Это прежде всего Лисп (LISP) и Пролог (Prolog) - наиболее распространенные языки, предназначенные для решения задач искусственного интеллекта. Есть и менее распространенные языки искусственного интеллекта, например РЕФАЛ, разработанный в России. Универсальность этих языков меньшая, нежели традиционных языков, но ее потерю языки искусственного интеллекта компенсируют богатыми возможностями по работе с символьными и логическими данными, что крайне важно для задач искусственного интеллекта.

Специальный программный инструментарий

В эту группу программных средств искусственного интеллекта входят специальные инструментарии общего назначения. Как правило, это библиотеки и надстройки над языком искусственного интеллекта Лисп: KEE (Knowledge Engineering Environment), FRL (Frame Representation Language), KRL (Knowledge Represantation Language), ARTS и др., позволяющие пользователям работать с заготовками экспертных систем на более высоком уровне, нежели это возможно в обычных языках искусственного интеллекта.

"Оболочки"

Под "оболочками: (shells) понимают "пустые" версии существующих экспертных систем, т.е. готовые экспертные системы без базы знаний. Примером такой оболочки может служить EMYCIN (Empty MYCIN - пустой MYC1N), которая представляет собой незаполненную экспертную систему MYCIN. Достоинство оболочек в том, что они вообще не требуют работы программистов для создания готовой экспертной системы. Требуется только специалисты) в предметной области для заполнения базы знаний.

Выбор подходящего инструментария для разработки ЭС

В работе [Hayes-Roth et al, 1983, Chapter 1] собраны рекомендации по выбору подходящих инструментальных средств построения экспертной системы. В основу рекомендаций положено сопоставление характеристик задач, решаемых проектируемой экспертной системой, и необходимых функциональных возможностей инструментального комплекса.

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

Быстрота. Если успех проекта зависит от срока разработки, то следует выбирать инструментальную среду со встроенными средствами формирования пояснений и развитым пользовательским интерфейсом. Разработка интерфейса - одна из наиболее трудоемких стадий проектирования системы, и чем большую часть этой работы можно переложить на среду разработки, тем быстрее будет завершен проект. Испытание. Постарайтесь как можно быстрее провести испытания новой для вас инструментальной среды. Без сомнения, это полезный совет, однако открытым остается вопрос о том, как определить степень совершенства инструмента по результатам испытаний. Важнейшим для выбора инструментальной среды является вопрос о способе определения характеристик проблемы, решаемой проектируемой экспертной системой. Этот вопрос обсуждается в работе [Stefik et al, 1983], где предлагается схема анализа, основанная на свойствах пространства поиска решения. Я позволил себе несколько обобщить предлагаемые авторами работы категории проблем и свел 11 Категорий к четырем, хотя основные принципы классификации остались прежними.

(1) Малое пространство решений, надежные данные и знания. Предполагается, что количество альтернатив, которые следует принимать во внимание при поиске решения, невелико и что все данные достоверны, а истинность правил не вызывает сомнений. В таком случае возможно выполнять исчерпывающий поиск в пространстве решений и при необходимости организовать возврат с прослеживанием в обратном порядке. Для решения проблем этой группы можно воспользоваться готовыми решениями, т.е. ранее созданной оболочкой на базе экспертной системы, решавшей аналогичную проблему в другой предметной области. Распространено мнение, что такой подход позволяет получить удовлетворительное, а не оптимальное решение проблемы, т.е. достаточно хорошее, а не лучшее решение. Учтите, что попытка отыскать оптимальное решение неизбежно сопряжена с перебором нескольких вариантов, что таит в себе опасность "комбинаторного взрыва".

(2) Ненадежные данные или знания. Если данные и/или знания ненадежны, т.е. существует опасность, что вводимые в систему данные недостоверны, а правила в базе знаний неоднозначны, то в экспертной системе нужно комбинировать информацию от нескольких источников и использовать в какой-либо форме логику неточных рассуждений. Авторы цитируемой работы весьма мудро решили воздержаться от конкретных рекомендаций, какой именно формализм неточных рассуждений следует выбрать, но круг кандидатов в любом случае довольно ограничен - формализм коэффициентов уверенности или нечеткой логики.

(3) Большое, но факторизуемое пространство решений. В литературе можно найти два варианта толкования термина "факторизуемый". Пространство поиска можно назвать факторизуемым, если существует "правило исключения", которое помогает уменьшить размер пространства на ранней стадии решения проблемы [Stefik et al, 1983, p. 99]. Есть и другое определение - пространство поиска является факторизуемым, если возможно разделить его на несколько независимых подпространств, которые можно обрабатывать по отдельности, причем для разных подпространств могут быть использованы и разные множества правил или отдельные подмножества одного и того же множества правил [Nilsson, 1980, р. 37]. Обычно такое разбиение выполняется на уровне решаемой проблемы, т.е. большая общая проблема разбивается на несколько более мелких. Успех в достижении главной цели, таким образом, оценивается по совокупности успехов в достижении более или менее независимых подцелей. Если система потерпит неудачу в достижении одной из подцелей, то это будет означать неудачу и решения проблемы в целом. В любом случае для решения проблем такого класса наиболее предпочтительным является метод порождения и проверки (generate-and-test). Этот метод позволяет "обрезать" ветви, уводящие нас от решения, и разделить большое пространство решений на подпространства.

(4) Большое нефакторизуемое пространство решений. Пространство решений может оказаться и нефакторизуемым, в каком бы смысле мы не трактовали этот термин. Очень часто оказывается, что проблема проектирования допускает выработку частного решения какого-либо компонента только в контексте всего проекта. При сборке головоломки нельзя предсказать, найдено ли верное решение, пока последний элемент мозаики не станет на свое место. Общий подход к работе в большом пространстве поиска состоит в том, чтобы последовательно рассматривать его на разных уровнях абстракции, т.е. использовать варианты описания пространства с разным уровнем учета деталей. Решение проблемы таким методом часто называют нисходящим уточнением (top-down refinement). Применение метода нисходящего уточнения требует исключить, по возможности, обратное прослеживание между уровнями, реализация которого требует значительных вычислительных ресурсов. Но это срабатывает только в случае, если между уровнями нет тесного взаимодействия. Эффективной стратегией решения такого рода задач является стратегия наименьшего принуждения (least commitment), подкрепленная адекватным механизмом разрешения конфликтов.

В книге [Hayes-Roth et al, 1983] проблема выбора инструментальных средств представлена в терминах схемы рис. 1.1.4. Выяснив характеристики проблемы, решаемой проектируемой экспертной системой, можно определиться со свойствами пространства решений, которые перечислены выше. Затем они рассматриваются совместно с предполагаемыми характеристиками разрабатываемой системы - характеристиками порождающих правил, прямой цепочки вывода или возможностями формирования пояснений, - и вырабатываются желаемые характеристики инструментальной среды. Последние и позволяют подобрать нужную модель инструментальной среды. Нужно сказать, что все это прекрасно выглядит на картинке, но очень сложно реализуется на практике, хотя вряд ли кто-нибудь будет спорить с тем, что такой подход более логичен, чем какой-либо другой. Как показывает практика, большинство разработчиков явно или неявно следует именно такому подходу при создании экспертных систем.

Рис. 1.1.4 Схема выбора инструментальной среды проектирования экспертной системы

Среди инструментальных средств для создания ЭС наиболее популярны такие языки программирования, как LISP и PROLOG, а также экспертные системы-оболочки (ЭСО): KEE, CENTAUR, G2 и GDA, АТ_ТЕХНОЛОГИЯ, предоставляющие в распоряжение разработчика-инженера по знаниям широкий набор для комбинирования систем представления знаний, языков программирования, объектов и процедур.

Кратко остановимся на некоторых вышеприведенных языках программирования. LISP, как следует из его названия, предназначен для обработки списков, состоящих из атомов - абстрактных элементов, представляющих из себя формально неограниченные по длине цепочки символов. Они могут трактоваться как строки в более привычном понимании, числа или представлять собой некие логические структуры с вложенными на неограниченную глубину подсписками в виде иерархических деревьев. Для обработки списков используется функциональная модель, базирующаяся на теории Lambda-исчислений Черча. Фактически программа на LISP представляет из себя набор lambda-функций, при этом работа со списками осуществляется с помощью базового набора примитивов типа CAR/CDR (взять первый элемент списка, который сам может быть списком/получить список без первого элемента). Таких примитивов в минимальном наборе всего 13 штук. С их помощью и, главное, благодаря рекурсивной системе обработки информации LISP позволяет очень компактно описывать функции, для реализации которых на других языках программирования потребовались бы сотни и тысячи строчек кода. Такие задачи, как автоматическое доказательство теорем, понимание естественного языка и окружающего мира, логические исчисления, написание компиляторов, везде, где требуется обработка абстрактной структурной информации, как оказалось, очень удачно описываются и программируются на LISP. Из недостатков данного языка можно выделить сложность освоения и высокую стоимость средств разработки.

Программа на языке PROLOG состоит из набора фактов, определенных отношений между объектами данных (фактами) и набором правил (образцами отношений между объектами базы данных). Эти факты и правила вводятся в базу данных. Для работы программы пользователь должен ввести запрос - набор термов, которые все должны быть истинны. Факты и правила из базы данных используются для определения того, какие подстановки для переменных в запросе (называемые унификацией) согласуются с информацией в базе данных. Язык PROLOG, как интерпретатор, приглашает пользователя вводить информацию. Пользователь набирает запрос или имя функции. Выводится значение (истина - yes, или ложь - no) этого запроса, а также возможные значения переменных запроса, присвоение которых делает запрос истинным (т.е. унифицирует запрос). Хотя выполнение программы на языке PROLOG основывается на спецификации предикатов, оно напоминает выполнение программ на языках LISP или ML. К недостаткам данного языка можно отнести отсутствие механизма прямого вывода.

Несмотря на все достоинства вышеперечисленных языков создания экспертных систем, на сегодняшний день на первое место выходит новая разработка - среда CLIPS. Название языка CLIPS - аббревиатура от С Language Integrated Production System. Язык был разработан в Центре космических исследований NASA (NASA's Johnson Space Center) в середине 1980-х гг. и во многом сходен с языками, созданными на базе LISP, в частности OPS5 и ART.

Для создания экспертных систем, как и в любой другой среде, в CLIPS используются две основные конструкции: правила и факты. Факты могут быть как упорядоченные так и неупорядоченные, их называют шаблонами или фреймами. Мощный инструмент создания правил включает в себя возможность задания приоритета правил, которое позволяет пользователю назначать приоритет для своих правил. К основным достоинствам данного языка можно отнести свободное распространение, мультиплатформенность, полную открытую документацию и объектно-ориентированное расширение CLIPS Object-Oriented Language (COOL).

Также стоит отметить оболочку ЭС "Рапана", которая может использоваться как для создания простых Баз Знаний (БЗ) для локализованного применения, так и быть основой для решения глобальных задач любой сложности.

Особо нужно отметить возможность проведения консультаций через Интернет, что позволит существенно повысить интеллектуальность веб-узлов.

"Рапана" обладает рядом особенностей:

Первая особенность - высокое быстродействие, мультимедийность, масштабируемость, работа в сети - обеспечена использованием для БЗ реляционной модели. В итоге знания живут в "родной" среде СУБД, где нет практических ограничений на объем и допускается хранение любых типов данных, а вывод заключения идет через эффективный механизм SQL-запросов по числовым полям.

Система может работать с различными СУБД, но для работы ЭС Рапана в полную силу необходимо использование СУБД типа клиент-сервер. В большинстве из них машину вывода, основанную на SQL-запросах, можно легко конвертировать в язык хранимых процедур, что даст дополнительный эффект по быстродействию.

В БЗ может находится неограниченное количество отдельных задач, которые можно рассматривать как отдельные ЭС. В перспективе, можно будет объединять задачи в модули для решения крупных проблем.

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

А используемая методика коэффиициентов уверенности, связанная с именем Шортлифа, проста и естественна.

Третьей особенностью является визуальная пошаговая отладка, предоставляющая создателю БЗ возможность видеть все,что происходит в ЭС в каждый момент её выполнения.

ЭС Рапана позволяет эффективно контролировать процесс отладки при наличии ~100-150 правил в задаче на 19-ти дюймовом мониторе. В литературе и материалах дискуссий про ЭС можно найти мнение, что создание ЭС с количеством правил более 400 не имеет смысла. Согласившись с этим, можно полагать, что ЭС Рапана, при достижимом росте площади рабочего пространства мониторов, полностью обеспечит предельную потребность.

Также из программ оболочек представляет интерес средства на базе JAVA: Corvid Exsys. Система EXSYS относится к системам дедуктивного продукционного типа, причем система по сути является инструментальной средой, поддерживающей различные режимы конструирования прикладных ЭС и обладающей достаточно развитыми средствами обработки фактора неопределенности. Эта система ориентирована на различные классы пользователей в зависимости от их подготовки в области искусственного интеллекта и программирования, имеет развитый интерфейс с современными СУБД и электронными таблицами, средства сбора статистики и т. д. Система может работать на различных вычислительных платформах под управлением различных операционных систем, а также имеет поддержку сетевой конфигурации.

Общие характеристики системы Exsys

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

Основной частью экспертной системы является база знаний, которая накапливается в процессе развития системы. База знаний содержит правила типа:(условие) THEN (заключение), либо(условие) THEN (заключение 1) ELSE (заключение 2)

Пример продукции:

Если pH < 6, то жидкость - кислота.

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

Первая шкала использует только два значения коэффициентов уверенности:

-ложь, 1 - истина.

Вторая шкала предусматривает значения от нуля до десяти, при этом: 0 -абсолютная ложь, 10 - абсолютная истина, промежуточные значения характеризуют различную степень уверенности.

Третья шкала расширяет возможности второй: -100 - абсолютная ложь, +100 - абсолютная истина, промежуточные значения соответствуют различной степени уверенности.

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

При разработке базы знаний можно воспользоваться текстовой информацией, формулами или использовать и то, и другое одновременно. Все зависит от выбора разработчика. В том случае, если было решено использовать математические выражения, появляются переменные. Они записываются в квадратных скобках. Например, [X] > [Y].

С правилом могут быть связаны примечание (NOTE) и ссылка (REFERENCE),которые отражают справочную информацию. Каждое правило обязательно должно содержать две части IF - условие и THEN - заключение. Части ELSE, NOTE,REFERENCE не являются обязательными.

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

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

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

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

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

Система Exsys, как и любая экспертная система имеет возможность объяснения полученных результатов. При необходимости, можно выяснить весь ход вычислений, вплоть до исходных данных.

Система Exsys в процессе поиска решения способна выполнять ряд вычислительных задач, но некоторые задачи выходят за рамки его возможностей. В Exsys имеется возможность вызова внешних программ для выполнения вычислений. Внешние программы могут передавать данные Exsys через БД или spread sheet. Exsys может вызывать почти все MSDOS-программы в качестве внешних программ.

Ввод правил

Ввод нового правила выполняется при нажатии клавиши или <А>.Exsys проверяет все новые правила на совместимость с уже существующими. Если обнаружен возможный конфликт, информация об этом отображается на экране и пользователь должен произвести необходимые изменения. Exsys не может проверять математические формулы. Правила состоят из условий, которые являются предложениями. Эти условия часто состоят из квалификаторов и значений, объединенных в предложение. Квалификатор всегда находится в начале предложения. В условной части правила может быть несколько пар квалификатор-значение. Exsys допускает до 30 значений для одного квалификатора. Не следует переопределять значения квалификаторов, так как Exsys хранит квалификаторы в соответствии с их номерами и не сможет распознать, что два квалификатора с различными номерами одинаковы, если их текстовые значения совпадают. Ранее введенные квалификаторы можно вызывать для повторного использования по их номерам, можно перемещаться по их списку нажатием клавиш <(> и <(>. Если список квалификаторов велик или Вы забыли номер требуемого квалификатора, можно найти его по его текстовому имени. Для этого необходимо нажать клавишу , а затем ввести текст. Если некоторый квалификатор содержит введенный текст, он будет отображен вместе со своим номером. Таким образом, в результате поиска могут быть найдены несколько квалификаторов. Выбор нужного производится по номеру.

Во время работы экспертной системы проверяются IF - части правил. Если все условия в IF - части правила истинные, то принимается истинной THEN - часть правила, в противном случае принимается истинной ELSE - часть правила (если она есть). Exsys допускает задание в одной IF - части до 126 конъюнкций условий. Условия проверяются в том порядке, в котором они записаны, соответственно порядок их следования может быть различным. Поэтому наиболее важные условия следует записывать раньше. Каждое правило может иметь примечание. Примечание отображается вместе с правилом и не влияет на ход работы, а служит лишь информацией для пользователя. Правило так же может иметь ссылку на источник информации, выраженной в нем. В отличие от примечания, ссылка не отображается, если пользователь специально не укажет этого. Таким образом для разработки ЭС подбора товаров в интернет-магазине была выбрана Exsys Corvid, т.к. обладает требуемым набором характеристик:

- Система имеет развитый интерфейс с современными СУБД и электронными таблицами, средства сбора статистики и т. д.

- Система может работать на различных вычислительных платформах под управлением различных операционных систем, а также имеет поддержку сетевой конфигурации.

- Экспертная система Exsys представляет собой интеллектуальную систему, которая может быть использована для разработки базы знаний в любой предметной области.

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

- Система Exsys имеет возможность объяснения полученных результатов, при необходимости, можно выяснить весь ход вычислений, вплоть до исходных данных.

- Система Exsys в процессе поиска решения способна выполнять ряд вычислительных задач.

- ЭС легко интегрируется в любой сайт и работает как интернет приложение.