- •Нечеткие множества
- •Примеры записи нечеткого множества
- •Основные характеристики нечетких множеств
- •Примеры нечетких множеств
- •О методах построения функций принадлежности нечетких множеств
- •Операции над нечеткими множествами Включение.
- •Свойства операций и .
- •Алгебраические операции над нечеткими множествами
- •Нечеткие отношения
- •Операции над нечеткими отношениями
- •Особенности создания экспертных систем
- •Правила
- •Пример 4.5
- •На запрос
Особенности создания экспертных систем
Проектирование экспертных систем имеет определенные отличия от создания традиционного программного продукта. Суть этого отличия в том, что разработчики не пытаются сразу построить конечный продукт, а создают прототип экспертной системы. Прототип должен удовлетворять основным требованиям к системе при минимальной трудоемкости при его создании. Для удовлетворения этим требованиям используются разнообразные инструментальные средства (специализированные языки искусственного интеллекта, оболочки экспертных систем и др.) ускоряющие процесс разработки. Возможно, что может потребоваться создание не одного , нескольких прототипов, базирующихся на различных способах представления знаний, с последующим выбором наиболее удачного. B том случае когда достигнута удовлетворительная работа прототипа по всему комплексу задач, возможно принятие решения об окончательном перепрограммировании всей системы на языках низкого уровня, с целью улучшения ее характеристик - увеличения быстродействия, уменьшения занимаемой памяти, повышения эргономических параметров интерфейса.
Опыт разработки экспертных систем позволяет выделить следующие этапы при их создании:
Идентификация - определение проблемы, ресурсов, целей, экспертов, производится неформальное (вербальное) описание проблемы.
Концептуализация - выделение ключевых понятий системы, отношений и характеристик, достаточных для полного и детального описания рассматриваемой проблемы.
Формализация - выражение введенных понятий на некоторым формальным языке, построение модели исследуемой области.
Этап выполнения - создание одного или нескольких прототипов.
Этап тестирования - оценка выбранного метода представления знаний и работоспособности всей системы в целом на основе проверки прототипа.
Этап опытной эксплуатации - проверка пригодности системы для конечного пользователя.
Модификация системы - полное перепрограммирование или доведение прототипа до состояния программного продукта.
Известны три основные разновидности исполнения экспертных систем:
Экспертные системы, выполненные в виде отдельных программ, на некотором алгоритмическом языке, база знаний которых является непосредственно частью этой программы. Как правило, такие системы предназначены для решения задач в одной фиксированной предметной области. При построении таких систем применяются как традиционные процедурные языки PASCAL, C и др., так и специализированные языки искусственного интеллекта LISP, PROLOG.
Оболочки экспертных систем - программный продукт, обладающий средствами представления знаний для определенных предметных областей. Задача пользователя заключается не в непосредственном программировании, а в формализации и вводе знаний с использованием предоставленных оболочкой возможностей. Недостатком этих систем можно считать невозможность охвата одной системой всех существующих предметных областей. Примером могут служить ИНТЕРЭКСПЕРТ, РС+, VP-Expert.
Генераторы экспертных систем - мощные программные продукты, предназначенные для получения оболочек, ориентированных на то или иное представление знаний в зависимости от рассматриваемой предметной области. Примеры этой разновидности - системы KEE, ART и др..
Факты
Программировать на Прологе – значит описывать некий мир. Программа на языке Пролог состоит из множества фраз, задающих взаимосвязь отношений между термами. Каждый терм обозначает какую-либо сущность, принадлежащую миру. Простейший путь описания – это задание фактов.
Факт – это утверждение о том, что соблюдается некоторое конкретное отношение. Он является безусловно верным. В разговорной речи под фактом понимается нечто вроде "Сегодня солнечно" или "Васе 10 лет". На Прологе это запишется в виде
'Сегодня солнечно'.
'Васе 10 лет'.
Если вы сохраните эти факты в файле и затем загрузите его, то можно задавать вопросы интерпретатору Пролога (напомним, что запрос вводится после приглашения Пролога, которое в большинстве версий имеет вид ?-) , например,
?- 'Сегодня солнечно'.
Yes
?- 'Васе 10 лет'.
Yes
?- 'Сегодня солнечно', 'Васе 10 лет'.
Yes
Запятая между фактами в последнем запросе означает операцию логического И (конъюнкцию).
Такая форма записи соответствует логике высказываний, возможности которой, как уже говорилось, достаточно ограничены. Мы не можем задать, например, вопрос о том, сколько лет Васе. Гораздо удобнее использовать параметризованные факты, работу с которыми поддерживает логика предикатов. На Прологе факт может быть записан в виде предиката, аргументы которого являются символьными или числовыми константами.
В общем случае предикат - это логическая функция от одного или нескольких аргументов, то есть функция, действующая во множестве из двух значений: истина и ложь. Предикат Пролога записывается в виде составного терма:
имя_предиката(аргументы)
Аргументы перечисляются через запятую и представляют собой какие-то объекты или свойства объектов, а имя предиката обозначает связь или отношение между аргументами. Предикат однозначно определяется парой: имя и количество аргументов. Два предиката с одинаковым именем, но различным количеством аргументов, считаются различными. Количество параметров предиката называется его арностью (arity). При описании предиката арность указывают после его имени, разделяя их символом '/' (слэш).
Как правило, имена предикатов и аргументов записываются в именительном падеже. Пробелы в них не допускаются, поэтому в качестве разделителей в символьных константах используется символ подчеркивания.
Пример Факт "Коля работает слесарем" на Прологе запишется следующим образом:
профессия(коля, слесарь).
Здесь предикат профессия/2 имеет два аргумента: первый означает имя человека, а второй - профессию. Факт "Борису 10 лет" можно представить в виде:
возраст("Борис", 10).
Порядок аргументов предиката связан со смыслом факта и поэтому не изменяем. При записи фактов надо помнить, что:
имя факта начинается со строчной буквы;
запись каждого факта заканчивается точкой.
В приведенных выше примерах профессия/2 и возраст/2 - предикаты (составные термы), коля и слесарь - атомы, 10 - число, "Борис" - строка. Подробнее о видах термов Пролога рассказывается в следующем разделе.