Языки ориентированные на разработку экспертных систем
Российский
госсударственный университет
инновационных технологий
и предпринимательства
ПЕНЗЕНСКИЙ
ФИЛИАЛ
Кафедра
управление инновационными ресурсами
Доклад
по дисциплине:
«Информационная поддержка принятия решения»
на тему:
Языки
ориентированные
на разработку экспертных
систем
Выполнил:
студент гр. 07с1 Андрианов А.А.
Проверил:
Кочегаров
И.И.
Пенза, 2012г.
Содержание
Введение…………………………………………… ……………………….3
1.Четыре
категории инструментальных
1.1
Оболочки экспертных систем…………
1.2
Языки программирования
1.3 Среда программирования, поддерживающая несколько парадигм…5
1.4
Дополнительные модули………………………
2.Языки программирования высокого уровня……………………………7
2.1Языки
описания порождающих правил………
2.2Объектно-
2.3Языки
логического программирования
Заключение………………………………………
Список
источников……………………………………………………
Введение
Экспертная система (ЭС, expert system) — компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.
В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний — как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.
Похожие действия выполняет программа-мастер (wizard). Мастера применяются как в системных программах, так и в прикладных для интерактивного общения с пользователем (например, при установке ПО). Главное отличие мастеров от ЭС — отсутствие базы знаний; все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.
Другие
подобные программы — поисковые
или справочные (энциклопедические)
системы. По запросу пользователя они
предоставляют наиболее подходящие (релевантные) разделы базы статей
(представления об объектах областей знаний,
их виртуальную модель). Например, в Википедии
аналогами статических визардов являются
её структуры (типы данных, в терминологии ООП
- классы и интерфейсы) - категории, списки, шаблоны, порталы,
которые по названию объекта выдают пользователю
все его имеющиеся для данной структуры
Википедии аттрибуты.
1.Четыре категории инструментальных программ, применяемые при проектировании.
По
своему назначению и функциональным
возможностям инструментальные программы,
применяемые при проектировании экспертных
систем, можно разделить на четыре достаточно
больших категории.
1.1 Оболочки экспертных систем
Оболочки экспертных систем (expert
system shells). Системы этого типа создаются,
как правило, на основе какой-нибудь экспертной
системы, достаточно хорошо зарекомендовавшей
себя на практике. При создании оболочки
из системы-прототипа удаляются компоненты,
слишком специфичные для области ее непосредственного
применения, и оставляются те, которые
не имеют узкой специализации. Примером
может служить система EMYCIN, созданная
на основе прошедшей длительную "обкатку"
системы MYCIN. В EMYCIN сохранен интерпретатор
и все базовые структуры данных — таблицы
знаний и связанный с ними механизм индексации.
Оболочка дополнена специальным языком,
улучшающим читабельность программ, и
средствами поддержки библиотеки типовых
случаев и заключений, выполненных по
ним экспертной системой. Дальнейшим развитием
оболочки EMYCIN явились системы S.1 и М.4, в
которых механизм построения цепочки
обратных рассуждений, заимствованный
в EMYCIN, объединен с фреймоподобной структурой
данных и дополнительными средствами
управления ходом рассуждений.
1.2 Языки программирования высокого уровня
Языки программирования
1.3 Среда программирования, поддерживающая несколько парадигм
Среда программирования, поддерживающая
несколько парадигм (multiple-
1.4 Дополнительные модули
Дополнительные модули. Средства этой категории представляют собой автономные программные модули, предназначенные для выполнения специфических задач в рамках выбранной архитектуры системы решения проблем. Хорошим примером здесь может служить модуль работы с семантической сетью, использованный в системе VT. Этот модуль позволяет отслеживать связи между значениями ранее установленных и новых параметров проектирования в процессе работы над проектом. Подобные модули управления семантической сетью можно использовать для распространения внесенных изменений на все компоненты системы.
В
следующей главе мы более подробно
рассмотрим языки программирования
высокого уровня, т.к. именно они вызывают
у нас наибольший интерес.
2.Языки
программирования высокого
уровня
Языки
высокого уровня являются в руках
опытного программиста прекрасным средством
быстрого создания прототипа экспертной
системы, позволяют обеспечить гибкость
процесса разработки при одновременном
снижении материальных затрат и сокращении
сроков выполнения проекта. Как правило,
среда разработки таких языков обеспечивает
совмещение интерфейса разработки и времени
выполнения, что позволяет совместить
вставку, редактирование и тестирование
фрагментов программного кода. Но пользовательский
интерфейс такой среды уступает интерфейсу
оболочек по части "дружественности",
что, правда, не мешает опытному программисту
быстро ее освоить. Языки описания порождающих
правил, объектно-ориентированные языки
и процедурные дедуктивные системы предоставляют
проектировщику экспертных систем значительно
большую свободу действий, чем оболочки.
Особенно это касается программирования
процедур управления и обработки неопределенности.
Как отмечалось выше, обычно оболочка
имеет встроенный режим управления и методы
обработки неопределенности, которые
не могут быть затем изменены в процессе
построения на ее основе конкретной экспертной
системы. Та гибкость, которую предоставляют
программисту языки высокого уровня, особенно
важна при создании экспериментальных
систем, в которых заранее выбрать оптимальный
режим управления вряд ли возможно.
2.1Языки описания порождающих правил
Но, естественно, возможности языков высокого уровня также не беспредельны — каждый из них имеет свои ограничения. Например, в языке OPS5 возможности динамической памяти ограничены размещением векторов в рабочей памяти, что не позволяет строить в ней рекурсивные структуры данных, такие как графы или деревья. При разработке системы MORE из-за этого возникли серьезные сложности . Некоторые типы структур управления ходом выполнения, например рекурсивные и итерационные циклы, также с трудом реализуются в этом языке. В общем, это та цена, которую приходится платить за относительную простоту программного кода на языке OPS5 и эффективность его выполнения. В ранних моделях систем, основанных на порождающих правилах, до 90% времени работы уходило на выполнение операций сопоставления условий. Но позднее Форджи обратил внимание на возможные источники низкой эффективности такого упрощенного подхода. Алгоритм сопоставления RETE, предложенный Форджи и реализованный в языках описания порождающих правил семейства OPS, базируется на двух наблюдениях.
- В левых частях порождающих правил, которые размещаются в рабочей памяти, часто встречаются повторяющиеся условия. Если одно и то же условие встречалось в N правилах, то при прежнем упрощенном подходе выполнялось N операций сопоставления. Это пример внутрицикловой итерации (within-cycle iteration).
- Простейший подход при сопоставлении условий предполагает просмотр в каждом цикле всех элементов рабочей памяти, хотя содержимое рабочей памяти от цикла к циклу изменяется очень мало. Форджи назвал это межцикловой итерацией (between-cycle iteration).
Предложенный
Форджи алгоритм значительно снижает
количество внутрицикловых итераций за
счет использования сети сортировки, имеющей
древовидную структуру. Выражения в левой
части порождающих правил компилируются
и включаются в эту сеть, а алгоритм сопоставления
довольно просто определяет конфликтующее
множество, просматривая состояние сети
в текущем цикле. Количество межцикловых
итераций сокращается за счет обработки
множества лексем, которые являются индикаторами
удовлетворения условий, размещенных
в рабочей памяти. Это множество лексем
отображает изменения, происходящие в
рабочей памяти от цикла к циклу, и таким
образом позволяет выявить те условия,
которые подлежат проверке. Поскольку
никаких других процессов управления,
кроме цикла распознавание-действие, в
системе не существует, то обработать
полученное в результате конфликтующее
множество не представляет особого труда.
Механизм разрешения конфликтов выполняет
это, не обращая внимания на другие аспекты
текущего контекста вычислений. Совершенно
очевидно, что попытка использовать рекурсивные
структуры данных потребует серьезного
усложнения описанного процесса обработки
правил. Точно так же и изменение режима
управления приведет к тому, что механизм
разрешения конфликтов вынужден будет
анализировать дополнительную информацию.
Разработчики языков, подобных OPS, всегда
вынуждены искать компромисс между мощностью
выразительных средств языка и эффективностью
выполнения программного кода. До сих
пор в среде исследователей предметом
оживленных дискуссий является вопрос
о том, удалось ли разработчикам OPS5 найти
такой компромисс. Разработанные позже
языки КЕЕ, КАРРА и CLIPS унаследовали от
OPS5 синтаксис и механизм активизации правил.
Все эти языки используют различные версии
алгоритма RETE при формировании множества
конфликтующих правил. Преодоление недостатков
программирования порождающих правил
лежит не на пути усложнения существующих
языков программирования, а скорее на
пути объединения их с другими парадигмами
программирования, позволяющими использовать
рекурсивные структуры данных и управления.
Примером такого объединения может служить
комбинирование порождающих правил и
фреймов, что позволяет сопоставлять условия,
специфицированные в правилах, с содержимым
слотов фреймов . Для решения проблем управления
в последнее время все чаще используется
включение наборов правил в более мощную
вычислительную среду, которая позволяет
работать со списками заявок и с множеством
источников знаний .
2.2Объектно-
Мы уже обращали внимание на то, что формат правил хорошо согласуется с представлением знаний в форме "при выполнении условий Сь ..., С„ выполнить действие А", но менее подходит для описания сложных объектов и отношений между ними. Языки объектно-ориентированного программирования предоставляют в распоряжение программиста альтернативную программную среду для организации знаний в терминах декларативного представления объектов предметной области. Все, связанное с процедурной стороной решения проблем, распределяется между этими объектами, которые в таком случае располагают собственными процедурами и могут общаться друг с другом посредством протоколов передачи сообщений. Другим приятным аспектом объектно-ориентированного программирования является возможность использования таких стилей представления знаний, которые не встречаются в исчислении предикатов и в порождающих правилах. Вместо "размывания" знаний об объекте предметной области между множеством правил или аксиом, на которые они ссылаются, эти знания концентрируются в едином месте — в программном описании объекта. Эта концентрация является виртуальной в том смысле, что нет необходимости, чтобы вся информация об объекте предметной области хранилась в соответствующем ему программном объекте, но любая команда или запрос к этому объекту может быть реализована только через посылку сообщения этому объекту.
В реальном мире вещей существует множество систем, в которых обмен энергией или информацией может быть представлен через обмен сообщениями между их компьютерными представлениями, и такая связь с технологией моделирования является очень важным достоинством данного подхода. Не вызывает сомнений, что моделирование является одним из мощнейших средств решения проблем и что, рассматривая процесс логических рассуждений в контексте сложной системы, его иногда понять значительно легче, чем в контексте применения правил. Объектно-ориентированное программирование интегрирует символические вычисления в операционную среду, базирующуюся на средствах графического интерфейса, — меню, пиктограммы и т.п. Хотя само по себе оснащение экспертной системы этими средствами и не решает проблему ее прозрачности для пользователя, в руках умелого программиста они позволяют лучше представить пользователю процессы, происходящие в системе .
Основная
сложность в использовании
Но для того чтобы внедрить объектно-ориентированный стиль в проектирование экспертных систем, нужно задуматься над тем, как соотнести программные объекты с абстрактными понятиями и категориями предметной области. Объекты должны представлять факты и цели, наборы правил или отдельные гипотезы. Поэтому далеко не очевидно, какими сообщениями должны обмениваться такие объекты и какой смысл должен вкладываться в эти сообщения.
Многое
зависит от того, на каком уровне
абстракции будет использоваться объектно-ориентированный
механизм. Если объекты представляют
собой низкоуровневую реализацию определенной
схемы формирования суждений, то отпадает
необходимость в использовании каких
бы то ни было эпистемологических последовательностей.
Если же объекты будут видимы и для эксперта
в процессе разработки и совершенствования
системы, и для пользователя во время эксплуатации
системы, то схема отображения понятий
и категорий на программные объекты должна
быть тщательно продумана.
2.3Языки логического программирования экспертных систем
Критически оценивая первый опыт применения инструментальных средств типа оболочек при проектировании экспертных систем, в частности опыт использования EMYCIN, многие исследователи полагали, что более перспективным является альтернативный подход, основанный на логическом программировании. Например, предполагалось, что порождающие экспертные системы, аналогичные MYCIN, могут быть довольно просто реализованы на языке PROLOG . Правила можно представить в виде фраз Хорна, в которых головной (позитивный) литерал соответствует заключению, а прочие (негативные) литералы будут соответствовать условиям.
Встроенный
в PROLOG режим управления приблизительно
соответствует стратегии
С практической точки зрения, пользуясь языком PROLOG, программист в качестве "бесплатного приложения" получает в свое распоряжение следующие возможности:
- индексированную базу данных фраз, которые можно использовать для представления правил, процедур или данных;
- универсальный механизм сопоставления, который позволяет выполнять сопоставление данных и шаблонов, включающих переменные, и возвращать подстановку, которая может обеспечить их совпадение;
- стратегию управления (поиск в глубину — depth-first search), основанную на правилах нисходящего поиска (фразы, которые размещены в базе данных ближе к "голове", обрабатываются первыми) и вычислении слева направо (подцели обрабатываются в том порядке, в котором они перечислены в списке).
Действительно,
дедуктивную порождающую
Заключение
В
результате выполнения данной проекты,
посвященной проблемам
Написание
экспертных систем требует сравнительно
больших трудозатрат и
• Потребность в решении должна соответствовать затратам на ее разработку. Суммы затрат и полученная выгода должны быть реалистическими.
• Невозможно использовать знания человека – эксперта там, где это необходимо. Если экспертные знания широко распространены, то маловероятно, что стоит разрабатывать экспертную систему. Однако, в таких областях, как разведка нефти и медицина, могут быть редкие специализированные знания, которыми можно недорого снабдить экспертную систему, и не использовать очень высоко оплачиваемого эксперта.
Проблема
может быть решена с использованием
символических методов
Проблема хорошо структурирована и не требует применения знаний, основанных на здравом смысле. Знания, основанные на здравом смысле, хорошо известны, поэтому их незачем фиксировать и представлять.
Проблема не может быть легко решена с использованием более традиционных вычислительных методов. Если имеется хорошее алгоритмическое решение проблемы, не следует использовать экспертную систему.
Существуют ли эксперты в данной проблемной области. Поскольку экспертная система проектируется для успешной работы, весьма существенно, чтобы эксперты желали помогать при ее проектировании. Кроме того, необходима поддержка администрации и потенциальных пользователей.
Экспертная
система, пусть даже с элементами
искусственного интеллекта, останется
лишь инструментом грамотного пользователя:
инженера, изобретателя, учёного, способным
многократно повысить эффективность их
работы.
Список
источников
- Автоматизированное проектирование информационно-управляющих систем. Проектирование экспертных систем на основе системного моделирования: [Монография]/ Науч. ред.: Куликов Г.Г. – Уфа: Уфим. гос. авиац. техн. ун-т, 1999. – 223 с.
- Инжиниринг информационных и деловых процессов: Сб. науч. тр. / М-во общ. и проф. образования Рос. Федерации. Моск. гос. ун-т экономики, статистики и информатики; [Редкол.: Ю.Ф. Тельнов (отв. ред.) и др.]. – М.: Моск. гос. ун-т экономики, статистики и информатики, 1998. – 137 с.
- Информатика: учебник / Под. ред. проф. Н.В. Макаровой. – М.: Финансы и статистика, 1997. – 768 с.
- Компьютерные технологии обработки информации: Учеб. пособие / С.В. Назаров, В.И. Першиков, В.А. Тафинцев и др.; Под ред. С.В. Назарова. – М.: Финансы и статистика, 1995. – 248 с.
- Красилов А.А. Основы информатики. Определение и концепции // Учебное пособие, МФТИ, – М., 1990. – 80 с.
- Красилов А.А., Горельков А.Л. Стили программирования. – М., МФТИ, 1986. – 83 с.
- Попов Э.В. Экспертные системы. Решение неформализованных задач в диалоге с ЭВМ. – М.: Наука, 1987. – 288 с.
- Справочник. Искусственный интеллект. В 3-х книгах. – М., Радио и связь, 1990.
- Уотермен Д. Руководство по экспертным системам: Пер. с англ. – М.: Мир, 1989. – 388 с., ил.
- Уотермен Д. Руководство по экспертным системам: Пер. с англ. – М.: Мир, 1989.
- Уотермен Д. Руководство по экспертным системам: Пер. с англ. – М.: Мир, 1989.
- Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. Учебник. — СПб: Питер, 2000.
- Субботін С. О. Подання й обробка знань у системах штучного інтелекту та підтримки прийняття рішень: Навчальний посібник. — Запоріжжя: ЗНТУ, 2008. — 341 с.
- http://ru.wikipedia.org/ Википедия – свободная энциклопедия
- http://knowledge.allbest.ru/
programming/d- 2c0a65625b3ac68b5c53b88521216c 37.html - http://otherreferats.allbest.
ru/programming/00070280_0.html - http://knowledge.allbest.ru/
programming/ 2c0a65625b3ac68b5c53b88521216c 37_0.html - http://life-prog.ru/view_
ekspertnie_systemi.php?id=7 - http://www.itfru.ru/index.php/
expert-systems - http://www.aiportal.ru/
articles/expert-systems/ design-tools.html - http://www.coolreferat.com/%
D0%AD%D0%BA%D1%81%D0%BF%D0%B5% D1%80%D1%82%D0%BD%D1%8B%D0%B5_ %D1%81%D0%B8%D1%81%D1%82%D0% B5%D0%BC%D1%8B_6

- Языки програмирования
- Языки програмирования
- Языки програмирования
- Языки програмирования РНР
- Языки программирования
- Языки программирования
- Языки программирования
- Язык Интернет: характеристика, особенности и влияние
- Язык интонации, мимики и жестов как средство познания человека
- Язык и общение животных
- Язык и общество
- Язык и общество
- Язык и общество
- Языки описания данных