Автор: Пользователь скрыл имя, 20 Марта 2011 в 14:02, реферат
Технология экспертных систем является одним из направлений новой области исследования, которая получила наименование искусственного интеллекта. Исследования в этой области сконцентрированы на разработке и внедрении компьютерных программ, способных имитировать, воспроизводить те области деятельности человека, которые требуют мышления, определенного мастерства и накопленного опыта.
Введение.
Глава 1. Введение в сущность экспертных систем. 4 ст.
1.1. История развития экспертных систем. 4 ст.
1.2. Определение экспертных систем. Главное достоинство и назначение
экспертных систем. 9 ст.
Глава 2. Инструментальные средства разработки. 13 ст.
2.1. Общая характеристика инструментальных средств для построения экспертных систем. 13 ст.
2.2. Оболочки экспертных систем. 15 ст.
2.3. Языки программирования высокого уровня. 18 ст.
2.3.1. Языки описания порождающих правил. 19 ст.
2.3.2. Объектно-ориентированные языки. 20 ст.
2.3.3. Языки логического программирования экспертных систем. 22 ст.
2.3.4. Многофункциональные программные среды. 23 ст.
Глава 3. Использование инструментальных средств. 25 ст.
3.1. Характерные сложности и способы их избежать. 25 ст.
3.2. Выбор подходящего инструментария для разработки экспертной
системы. 26 ст.
3.3. Практическое освоение инструментальных средств. 30 ст.
Заключение .
Список используемой литературы. 33 ст.
2.3.1. Языки
описания порождающих правил
Но,
естественно, возможности языков высокого
уровня также не беспредельны —
каждый из них имеет свои ограничения.
Например, в языке OPS5 возможности
динамической памяти ограничены размещением
векторов в рабочей памяти, что
не позволяет строить в ней
рекурсивные структуры данных, такие
как графы или деревья. При
разработке системы MORE из-за этого возникли
серьезные сложности [Kahn, 1988]. Некоторые
типы структур управления ходом выполнения,
например рекурсивные и итерационные
циклы, также с трудом реализуются
в этом языке. В общем, это та цена,
которую приходится платить за относительную
простоту программного кода на языке OPS5
и эффективность его
В ранних моделях систем, основанных на порождающих правилах, до 90% времени работы уходило на выполнение операций сопоставления условий. Но позднее Форджи обратил внимание на возможные источники низкой эффективности такого упрощенного подхода [Forgy, 1982]. Алгоритм сопоставления RETE, предложенный Форджи и реализованный в языках описания порождающих правил семейства OPS, базируется на двух наблюдениях.
В
левых частях порождающих правил,
которые размещаются в рабочей
памяти, часто встречаются
Простейший подход при сопоставлении условий предполагает просмотр в каждом цикле всех элементов рабочей памяти, хотя содержимое рабочей памяти от цикла к циклу изменяется очень мало. Форджи назвал это межцикловой итерацией (between-cycle iteration).
Предложенный
Форджи алгоритм значительно снижает
количество внутрицикловых итераций за
счет использования сети сортировки,
имеющей древовидную структуру.
Выражения в левой части
Совершенно
очевидно, что попытка использовать
рекурсивные структуры данных потребует
серьезного усложнения описанного процесса
обработки правил. Точно так же
и изменение режима управления приведет
к тому, что механизм разрешения
конфликтов вынужден будет анализировать
дополнительную информацию. Разработчики
языков, подобных OPS, всегда вынуждены
искать компромисс между мощностью
выразительных средств языка
и эффективностью выполнения программного
кода. До сих пор в среде исследователей
предметом оживленных дискуссий
является вопрос о том, удалось ли
разработчикам OPS5 найти такой компромисс.
Разработанные позже языки КЕЕ,
КАРРА и CLIPS унаследовали от OPS5 синтаксис
и механизм активизации правил. Все
эти языки используют различные
версии алгоритма RETE при формировании
множества конфликтующих
Преодоление
недостатков программирования порождающих
правил лежит не на пути усложнения
существующих языков программирования,
а скорее на пути объединения их
с другими парадигмами
2.3.2. Объектно-ориентированные
языки
Языки объектно-ориентированного программирования предоставляют в распоряжение программиста альтернативную программную среду для организации знаний в терминах декларативного представления объектов предметной области. Все, связанное с процедурной стороной решения проблем, распределяется между этими объектами, которые в таком случае располагают собственными процедурами и могут общаться друг с другом посредством протоколов передачи сообщений.
Другим приятным аспектом объектно-ориентированного программирования является возможность использования таких стилей представления знаний, которые не встречаются в исчислении предикатов и в порождающих правилах. Вместо "размывания" знаний об объекте предметной области между множеством правил или аксиом, на которые они ссылаются, эти знания концентрируются в едином месте — в программном описании объекта. Эта концентрация является виртуальной в том смысле, что нет необходимости, чтобы вся информация об объекте предметной области хранилась в соответствующем ему программном объекте, но любая команда или запрос к этому объекту может быть реализована только через посылку сообщения этому объекту.
В реальном мире вещей существует множество систем, в которых обмен энергией или информацией может быть представлен через обмен сообщениями между их компьютерными представлениями, и такая связь с технологией моделирования является очень важным достоинством данного подхода. Не вызывает сомнений, что моделирование является одним из мощнейших средств решения проблем и что, рассматривая процесс логических рассуждений в контексте сложной системы, его иногда понять значительно легче, чем в контексте применения правил. Объектно-ориентированное программирование интегрирует символические вычисления в операционную среду, базирующуюся на средствах графического интерфейса, — меню, пиктограммы и т.п. Хотя само по себе оснащение экспертной системы этими средствами и не решает проблему ее прозрачности для пользователя, в руках умелого программиста они позволяют лучше представить пользователю процессы, происходящие в системе.
Основная
сложность в использовании
Но
для того чтобы внедрить объектно-ориентированный
стиль в проектирование экспертных
систем, нужно задуматься над тем,
как соотнести программные
Многое
зависит от того, на каком уровне
абстракции будет использоваться объектно-ориентированный
механизм. Если объекты представляют
собой низкоуровневую реализацию определенной
схемы формирования суждений, то отпадает
необходимость в использовании
каких бы то ни было эпистемологических
последовательностей. Если же объекты
будут видимы и для эксперта в
процессе разработки и совершенствования
системы, и для пользователя во время
эксплуатации системы, то схема отображения
понятий и категорий на программные
объекты должна быть тщательно продумана.
2.3.3. Языки
логического программирования
Критически оценивая первый опыт применения инструментальных средств типа оболочек при проектировании экспертных систем, в частности опыт использования EMYCIN, многие исследователи полагали, что более перспективным является альтернативный подход, основанный на логическом программировании . Например, предполагалось, что порождающие экспертные системы, аналогичные MYCIN, могут быть довольно просто реализованы на языке PROLOG [Clark and McCabe, 1982]. Правила можно представить в виде фраз Хорна, в которых головной (позитивный) литерал соответствует заключению, а прочие (негативные) литералы будут соответствовать условиям.
Встроенный
в PROLOG режим управления приблизительно
соответствует стратегии
С практической точки зрения, пользуясь языком PROLOG, программист в качестве "бесплатного приложения" получает в свое распоряжение следующие возможности:
индексированную базу данных фраз, которые можно использовать для представления правил, процедур или данных;
универсальный механизм сопоставления, который позволяет выполнять сопоставление данных и шаблонов, включающих переменные, и возвращать подстановку, которая может обеспечить их совпадение;
стратегию управления (поиск в глубину — depth-first search), основанную на правилах нисходящего поиска (фразы, которые размещены в базе данных ближе к "голове", обрабатываются первыми) и вычислении слева направо (подцели обрабатываются в том порядке, в котором они перечислены в списке).
Действительно,
дедуктивную порождающую
Успешный
опыт применения идей логического программирования,
в частности создание программы
МЕСНО, продемонстрировал ряд явных
отклонений от синтаксиса исчисления
предикатов первого порядка и
его процедурной интерпретации
в стандартной версии PROLOG. Некоторые
семантические и синтаксические
ограничения в программах МЕСНО
и PLANNER до сих пор не преодолены в
системах, базирующихся на языках логического
программирования.
2.3.4. Многофункциональные
программные среды
Многофункциональные
программные среды позволяют
опытному программисту экспериментировать
при решении новых классов
проблем, выбирая подходящие сочетания
различных методов, представленных
в имеющемся модульном наборе.
Поскольку не существует единственного
универсального языка представления
знаний для произвольной экспертной
системы, у разработчиков возникает
желание объединить несколько различных
схем представления, особенно на этапе
создания прототипа. Хотя исчерпывающей
теории таких гибридных систем и
не существует, эксперименты с разными
схемами представления и
Мы
уже не раз обращали ваше внимание
на то, что порождающие правила
позволяют представить в
Одной из первых многофункциональных сред искусственного интеллекта является LOOPS [Bobrow and Steflk, 1983], в которой в рамках единой архитектуры обмена сообщениями были объединены четыре парадигмы программирования, перечисленные ниже.
Информация о работе Представление знаний в информационных системах