Автор работы: Пользователь скрыл имя, 14 Декабря 2011 в 20:21, курсовая работа
Экспертные системы (ЭС) возникли как значительный практический результат в применении и развитии методов искусственного интеллекта (ИИ)- совокупности научных дисциплин, изучающих методы решения задач интеллектуального (творческого) характера с использованием ЭВМ.
Область ИИ имеет более чем сорокалетнюю историю развития. С самого начала в ней рассматривался ряд весьма сложных задач, которые, наряду с другими, и до сих пор являются предметом исследований: автоматические доказательства теорем, машинный перевод (автоматический перевод с одного естественного языка на другой), распознавание изображений и анализ сцен, планирование действий роботов, алгоритмы и стратегии игр.
Введение……………………………………………………………………….……
Глава 1. Экспертные системы, их особенности.
Определение экспертных систем. Главное достоинство и назначение экспертных систем……………………………………....
Отличие ЭС от других программных продуктов…………………...
Отличительные особенности. Экспертные системы первого и второго поколения……………………………………………………
Критерий использования ЭС для решения задач…………………...
Ограничения в применение экспертных систем……………………
Преимущества ЭС перед человеком - экспертом…………………..
Глава 2. Разработка экспертных систем.
2.1 Этапы разработки экспертных систем………………………………
2.2. Инструментальные средства проектирования и разработки экспертных систем…………………………………………………………..
2.3. Пример простой экспертной системы………………………………
Заключение……………………………………………………………………….....
2.
Языки программирования
Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы – способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Одним из наиболее известных представителей таких языков является OPS5. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей.
3. Среда программирования, поддерживающая несколько парадигм
Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.
4. Дополнительные модули
Средства
этой категории представляют собой
автономные программные модули, предназначенные
для выполнения специфических задач
в рамках выбранной архитектуры
системы решения проблем.
Рассмотрим небольшую экспертную систему, которая позволяет определить модель радиолокационной станции по его характеристикам, введенным пользователем. Назовем ее RLS.
Будем рассматривать для простоты только несколько модель:
19ж6;
22ж6;
55ж6;
1л117;
1л117м;
Предположим, что в результате опроса экспертов была создана таблица, отражающая связь между характеристиками РЛС и ее моделью (табл. 2)
Таблица 2.
Тип антенны | Скорость обновления информации(об/мин) | Количество рабочих мест | Модель РЛС |
Аппертурная антенна | 6 | 7 | 19ж6 |
Зеркальная антенна | 5 | 22ж6 | |
12 | 2 | 1л117м | |
10 | 1л117 | ||
Детекторная антенна | 3 | 55ж6 |
На основе данных таблиц могут быть сгенерированы следующие правила:
Приведем два протокола диалога с ЭС, проведенных в режиме консультации с целью определения модели радиолокационной станции.
РАБОТАЕТ СИСТЕМА RLS
ОПРЕДЕЛЕНИЕ
МОДЕЛИ РАДИОЛОКАЦИОННОЙ СТАНЦИИ.
ВВЕДИТЕ ТИП АНТЕННЫ (ЦИФРУ):
1 – АППЕРТУРНАЯ АНТЕННА
2 – ЗЕРКАЛЬНАЯ АНТЕННА
3 – ДЕТЕКТОРНАЯ АНТЕННА
2
ВВЕДИТЕ СКОРОСТЬ ОБНОВЛЕНИЯ ИНФОМАЦИИ (ЦИФРУ):
1 – 6
2 – 12
3 – 10
1
ВВЕДИТЕ КОЛИЧЕСТВО РАБОЧИХ МЕСТ (ЦИФРУ):
1 – 7 РАБОЧИХ МЕСТ
2 – 5 РАБОЧИХ МЕСТ
3 – 2 РАБОЧИХ МЕСТА
4 – 3 РАБОЧИХ МАСТА
2
ВЫПОЛНИЛОСЬ ПРАВИЛО R02
ЭТА
РЛС – 22Ж6
Таким образом, целью работы данной ЭС является определение значения переменной «модель». В зависимости от ответов пользователя она может связываться со строкой «22ж6», «1л117м» и т.д.
В системе GURU в связи с этим введено понятие переменной цели. Эта переменная описывается в разделе ЭС GOAL. В рассматриваемом примере имя этой переменной – MODEL.
Экспертная система будет работать до тех пор, пока данной переменной не будет присвоено определенное значение, удовлетворяющее введенным пользователем признакам какой-либо модели.
Экспертная
система, реализующая пример на основе
системы GURU, приведена ниже:
RULESET:
RLS /* РАЗДЕЛ ИМЕНИ */
GOAL:
MODEL /* РАЗДЕЛ ЦЕЛИ – МОДЕЛ РАДИОЛОКАЦИОННОЙ
СТАНЦИИ */
INITIAL: /* ПРЕДЛОЖЕНИЯ ИНИЦИАЛИЗАЦИИ */
ANTENNA=UNKNOWN
SKOROST=UNKNOWN
MESTA=UNKNOWN
clear
MODEL=UNKNOWN
ISRESULT = FALSE
/* УСТАНОВКА ПЕРЕМЕННЫХ СРЕДЫ */
E.LSTR = 70 /* ДЛИНА СТРОК ПРИ ВЫВОДЕ */
E.LNUM = 1 /* КОЛИЧ. ДЕСЯТИЧНЫХ РАЗРЯДОВ В ЧИСЛАХ */
E.DECI = 0 /* КОЛИЧ. ДЕСЯТИЧН. РАЗРЯДОВ ПОСЛЕ ЗАПЯТОЙ */
output "РАБОТАЕТ СИСТЕМА RLS"
output "ОПРЕДЕЛЕНИЕ МОДЕЛИ РАДИОЛОКАЦИОННОЙ СТАНЦИИ "
OUTPUT
OUTPUT
/* РАЗДЕЛ ПРАВИЛ */
RULE: R01
IF: ANTENNA – 1 AND SKOROST – 1 AND MESTA – 1
THEN: MODEL = “19Ж6”
ISRESULT = TRUE
OUTPUT "ВЫПОЛНИЛОСЬ ПРАВИЛО R01"
REASON:
ЕСЛИ АППЕРТУРНАЯ АНТЕННА, СКОРОСТЬ ОБНОВЛЕНИЯ
ИНФОРМАЦИИ 6 ОБ/МИН И КОЛИЧЕСТВО РАБОЧИХ
МЕСТ 7, ТО РЛС – 19Ж6
RULE: R02
IF: ANTENNA – 2 AND SKOROST – 1 AND MESTA – 2
THEN: MODEL = “22Ж6”
ISRESULT = TRUE
OUTPUT " ВЫПОЛНИЛОСЬ ПРАВИЛО R02"
REASON:
ЕСЛИ ЗЕРКАЛЬНАЯ АНТЕННА, СКОРОСТЬ ОБНОВЛЕНИЯ
ИНФОРМАЦИИ 6 ОБ/МИН И КОЛИЧЕСТВО РАБОЧИХ
МЕСТ 5, ТО РЛС – 22Ж6
RULE: R03
IF: ANTENNA – 2 AND SKOROST – 2 AND MESTA – 3
THEN: MODEL = "1Л117М"
ISRESULT = TRUE
OUTPUT " ВЫПОЛНИЛОСЬ ПРАВИЛО R03"
REASON:
ЕСЛИ ЗЕРКАЛЬНАЯ АНТЕННА, СКОРОСТЬ ОБНОВЛЕНИЯ
ИНФОРМАЦИИ 12 ОБ/МИН И КОЛИЧЕСТВО РАБОЧИХ
МЕСТ 2, ТО РЛС – 1Л117М
RULE: R04
IF: ANTENNA – 2 AND SKOROST – 3 AND MESTA – 3
THEN: MODEL = "1Л117"
ISRESULT = TRUE
OUTPUT " ВЫПОЛНИЛОСЬ ПРАВИЛО R04"
REASON:
ЕСЛИ ЗЕРКАЛЬНАЯ АНТЕННА, СКОРОСТЬ ОБНОВЛЕНИЯ
ИНФОРМАЦИИ 10 ОБ/МИН И КОЛИЧЕСТВО РАБОЧИХ
МЕСТ 2, ТО РЛС – 1Л117
RULE: R05
IF: ANTENNA – 3 AND SKOROST – 3 AND MESTA – 4
THEN: MODEL = "55Ж6"
ISRESULT = TRUE
OUTPUT " ВЫПОЛНИЛОСЬ ПРАВИЛО R05"
REASON:
ЕСЛИ ДЕТЕКТОРНАЯ АНТЕННА, СКОРОСТЬ ОБНОВЛЕНИЯ
ИНФОРМАЦИИ 10 ОБ/МИН И КОЛИЧЕСТВО РАБОЧИХ
МЕСТ 3, ТО РЛС – 55Ж6
RULE: R06
IF: ISRESULT = FALSE
THEN: MODEL = "НЕИЗВЕСТНАЯ СИСТЕМЕ МОДЕЛЬ"
OUTPUT " ВЫПОЛНИЛОСЬ ПРАВИЛО R06"
REASON: ЕСЛИ НЕ ПОДОШЛО НИ ОДНО ПРАВИЛО
ТО
ЭТО – НЕИЗВЕСТНАЯ СИСТЕМЕ
МОДЕЛЬ
/* РАЗДЕЛ ПЕРЕМЕННЫХ */
CLEARANCEHIGH = FALSE
ENDIF
VARIABLE: ANTENNA
LABEL: АНТЕННА
FIND: OUTPUT "ВВЕДИТЕ ТИП АНТЕННЫ (ЦИФРУ):"
? "1 – АППЕРТУРНАЯ АНТЕННА"
? "2 – ЗЕРКАЛЬНАЯ АНТЕННА"
? "3 – ДЕТЕКТОРНАЯ АНТЕННА"
ANTENNA =0
INPUT
ANTENNA
VARIABLE: SKOROST
LABEL: СКОРОСТЬ
FIND: OUTPUT "ВВЕДИТЕ СКОРОСТЬ ОБНОВЛЕНИЯ ИНФОРМАЦИИ (ЦИФРУ):"
? "1 – 6 ОБ/МИН"
? "2 – 12 ОБ/МИН"
? "3 – 10 ОБ/МИН"
SKOROST = 0
INPUT
SKOROST
VARIABLE: MESTA
LABEL: КОЛИЧЕСТВО РАБОЧИХ МЕСТ
FIND: OUTPUT “ВВЕДИТЕ КОЛИЧЕСТВО РАБОЧИХ МЕСТ (ЦИФРУ):
? ”1 – 7 РАБОЧИХ МЕСТ”
? “2 – 5 РАБОЧИХ МЕСТ”
? “3 – 2 РАБОЧИХ МЕСТА”
? “4 – 2 РАБОЧИХ МЕСТА”
MESTA = 0
INPUT
MESTA
DO: /* РАЗДЕЛ ЗАВЕРШЕНИЯ */
OUTPUT
OUTPUT "ЭТА РЛС – ", MODEL
END:
/* КОНЕЦ НАБОРА ПРАВИЛ */
В данной программе символ ? эквивалентен команде OUTPUT.
Приведенная совокупность правил называется набором правил или базой знаний и напоминает программу алгоритмического языка, содержащую ряд операторов if...then. Однако между такой программой и базой знаний имеется весьма существенная разница. Обычная программа – это набор команд, которые должны последовательно выполняться в строгом порядке. Условное ветвление, при котором используются операторы if...then...else, переходы типа GOTO и GOSUB, необходимые в этом случае, характерны для последовательной или процедурной природы программирования на алгоритмических языках высокого уровня типа BASIC.