Главная Обратная связь Поможем написать вашу работу!

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Изучение технологии разработки ЭС на основе системы-оболочки Еxsys



 

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

Основной частью ЭС является БЗ, которая накапливается в процессе развития системы. БЗ содержит правила типа:

IF (условие) THEN (заключение), либо

IF (условие) THEN (заключение 1) ELSE (заключение 2)

Пример продукции: IF pH < 6, THEN жидкость – кислота.

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

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

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

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

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

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

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

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



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

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

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

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

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

· Режим конструирования прикладной экспертной системы



· Начальные установки

Для создания новой ЭС необходимо запустить программу editxs.exe. При запуске на экране отображается приглашение к работе с системой и запрашивается имя файла, с которым будет работать пользователь. Если указанный файл отсутствует, то предлагается создать новый файл. В этом файле будет находиться БЗ.

Далее пользователю предлагается ответить на ряд вопросов относительно характеристик будущей ЭС.

· Название предметной области решаемой задачи.

· Имя автора (эта и предыдущая характеристики представляют собой справочную информацию).

· Шкала вероятности. Предлагается выбор одной из трех возможных шкал.

· Режим выбора применяемого правила. Возможно применение первого подходящего правила, либо просмотр всей БЗ (базы правил). По умолчанию применяется просмотр всей базы правил.

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

· Режим отображения применяемых правил. Пользователь может установить опцию отображения применяемых правил. Это даст возможность видеть, какие правила используются, и будет способствовать обучению пользователя. Однако отображение правил снизит скорость работы программы.

· Exsys имеет возможность вызова внешних программ для получения данных из БД, страниц обмена или автоматических датчиков. Нужно указать, будут ли использоваться внешние программы. Подробнее этот вопрос будет рассмотрен ниже.

· Возможные варианты решений (CHOICES). Они используются в качестве заключений правил. Варианты выбора могут быть дополнены или изменены в дальнейшем.



 
 

После ответа на указанные вопросы системы необходимо начать формирование БЗ. Рабочее окно Exsys (рис.2.1) разделено на три области: в левой части окна записываются новые правила, правая часть окна предназначена для ввода составляющих правила, а в нижней части окна расположено меню доступных команд.

Рис.2.1. Рабочее окно

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

Отредактированная база знаний запускается на решение программой exsys.exe.

· Ввод правил

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

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

Ранее введенные квалификаторы можно вызывать для повторного использования по их номерам, можно перемещаться по их списку нажатием клавиш <­> и <¯>. Если список квалификаторов велик или Вы забыли номер требуемого квалификатора, можно найти его по его текстовому имени. Для этого необходимо нажать клавишу <F>, а затем ввести текст. Если некоторый квалификатор содержит введенный текст, то он будет отображен вместе со своим номером. Таким образом, в результате поиска могут быть найдены несколько квалификаторов. Выбор нужного производится по номеру.

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

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

· Ввод формул

Формула в IF-части правила вводится при нажатии клавиши <M>. Формула представляет собой два выражения, разделенных одним из знаков >, <, >=, <=, <>. Выражения могут быть алгебраическими, использующими знаки +, –, /, *, % (деление по модулю), а также тригонометрические и экспоненциальные функции. Для задания порядка вычислений могут использоваться круглые скобки. Переменная – это текстовая строка, заключенная в квадратные скобки. Первые 18 символов в имени переменной являются значимыми, допускаются пробелы.

При вводе новой формулы Exsys проверяет, нет ли в ней новых переменных. Если новые переменные обнаружены, Exsys задает относительно нее различные вопросы, с тем, чтобы определить способ использования этой переменной. Сначала нужно указать значение переменной (текстовое описание). Этот текст в дальнейшем будет использоваться для вопросов пользователю или при выводе результатов. Далее следует указать, нужно ли отображать значение переменной по завершении работы системы.

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

· Изменение ранее выбранных установок

Exsys позволяет изменить многие параметры уже существующей БЗ. Однако имеются некоторые параметры, которые в дальнейшем не могут быть изменены. Для внесения изменений в БЗ необходимо повторно запустить программу editxs.exe и указать имя файла с БЗ. Как и при создании БЗ знаний, пользователю будут заданы вопросы относительно ее характеристик. Но в данном случае вопросы будут заданы только для тех характеристик, которые могут быть изменены.

С помощью команд меню можно удалять, добавлять, редактировать правила; удалять блоки правил; редактировать части правил, изменять порядок условий и заключений. Нельзя изменить шкалу вероятностей.

· Работа с внешними программами

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

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

Если программа используется для вычисления значений нескольких переменных и/или квалификаторов, то она должна возвращать данные в следующем формате: V или Q соответственно, номер переменной или квалификатора, значение. Если программа используется для вычисления только одного квалификатора или переменной, можно возвращать только значение.

Возвращаемые данные должны быть записаны в файл с именем RETURN.DAT. Имеется возможность изменить имя этого файла. Так же имеется возможность передавать данные в оперативную память, что значительно увеличит скорость.

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

Exsys также имеет возможность передавать данные внешним программам. Данные могут передаваться путем записи в дисковый файл в формате ASCII, либо в качестве параметров командной строки (только некоторые программы допускают передачу данных через командную строку).

Внешние программы могут вызываться тремя способами:

· при запуске Exsys;

· могут быть ассоциированы с переменной;

· могут быть ассоциированы с квалификатором.

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

· Примеры работы

· Постановка прикладной задачи

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

Введем название предметной области – «Выбор принтера».

Далее необходимо выбрать шкалу вероятности. В рассматриваемом примере с каждым правилом свяжем коэффициент уверенности, поэтому первая шкала не подойдет, в то же время рассматриваемая задача не настолько сложная, чтобы использовать третью шкалу, поэтому выберем вторую шкалу (от 0 до 10). Это наиболее часто используемая шкала. Следует обратить внимание, что этот выбор в дальнейшем не может быть изменен.

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

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

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

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

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

Зададим варианты выбора (CHOICES). Мы будем создавать правила для выбора одной из трех моделей принтеров: модель А (низкая скорость, низкое качество печати и низкая стоимость), модель В (низкая скорость, высокое качество печати и средняя стоимость), модель С (высокая скорость, высокое качество печати и высокая стоимость).

Включим режим проверки новых правил.

После этого мы увидим основное окно Exsys. С помощью команд меню, расположенного в нижней части экрана, будем вводить новые правила. Ввод нового правила осуществляется при нажатии клавиши <A> или <ENTER>. Создание правила начинается с создания условной части. Обычно условия состоят из квалификаторов и значений, объединенных в предложение. Ввод нового квалификатора осуществляется при нажатии клавиши <N>. Для первого правила запишем условие в виде HIGH PRINTING SPEED IS NECESSARY. Квалификатор будет первой его частью, HIGH PRINTING SPEED IS. Значениями будут NECESSARY и UNNECESSARY. Если в дальнейшем потребуется использовать этот квалификатор, не следует переопределять его. Вызвать уже созданный квалификатор можно по его номеру.

По завершении ввода условной части необходимо определить заключение (THEN). При вводе заключения используются варианты выбора (CHOICES). Это осуществляется при нажатии клавиши <C>. Со сделанным выбором необходимо связать коэффициент уверенности.

Затем можно ввести ELSE–часть правила. Эта часть правила не является обязательной. Также можно задать комментарий (NOTE) и ссылку на источник информации (REFERENCE).

Зададим следующее правило:

RULE NUMBER: 1

IF: (1) High printing speed is necessary

THEN: (1) Model A – Probability = 0/10

and (2) Model B – Probability = 0/10

and (3) Model C – Probability = 9/10

ELSE: (1) Model C – Probability = 2/10

and (2) Model A – Probability = 8/10

and (3) Model B – Probability = 8/10

NOTE: Only the model C printer is capable of high-speed printing.

REFERENCE: Printer specifications – page 12

Это правило определяет модель принтера в зависимости от требуемой скорости печати.

Следующее правило будет указывать модель принтера в зависимости от требуемого качества. Условием будет THE PRINT QUALITY NEEDED IS HIGH. Для этого зададим квалификатор THE PRINT QUALITY NEEDED IS, со значениями HIGH и LOW. В итоге получим следующее правило:

RULE NUMBER: 2

IF: (1) The print quality needed is high

THEN: (1) Model A – Probability = 0/10

and (2) Model B – Probability = 8/10

and (3) Model C – Probability = 8/10

ELSE: (1) Model B – Probability = 3/10

and (2) Model C – Probability = 3/10

REFERENCE: Printer specifications – page 12

Условием еще одного правила будет стоимость принтера. Для него определим квалификатор THE PRICE OF THE PRINTER IS со значениями 1) a major consideration, 2) of concern, but of less importance than functionality, 3) of little concern.

RULE NUMBER: 3

IF: (1) The price of the printer is a major consideration

THEN: (1) Model A – Probability = 9/10

and (2) Model B – Probability = 5/10

and (3) Model C – Probability = 3/10

У этого правила нет альтернативной части, для других значений квалификатора определим другие условия.

При вводе следующего правила снова потребуется квалификатор THE PRICE OF THE PRINTER IS. Не нужно переопределять его; вызовем его нажатием клавиши <L> (последний введенный квалификатор).

RULE NUMBER: 4

IF: (1) The price of the printer is of concern, but of less importance than functionality

THEN: (1) Model C – Probability = 5/10

Мы не будем вводить правило для случая, когда цена не играет роли, так как оно бесполезно для данной задачи.

Проведем тестирование созданной ЭС. Для этого запустим программу Exsys.exe, укажем имя файла с созданной БЗ. При запуске система попросит пользователя задать значения переменных. Сначала будет предложено выбрать значение квалификатора High printing speed is из necessary и unnecessary. Укажем первое значение. Так как в начальных установках мы задали режим отображения применяемых правил, то сразу увидим правило 1 с подсвеченной IF и THEN-частью. Далее система предложит указать тип используемого принтера. Зададим первое и третье значения квалификатора The printer will be used for. Будет отображено пятое правило с подсвеченной IF и THEN-частью, а также второе правило с подсвеченной IF и THEN-частью. Правило 2 сработало в результате прямого вывода значения квалификатора The print quality needed is, которое было установлено в high. Затем для квалификатора The price of the printer is выберем второе значение и увидим четвертое правило. В результате система выдаст решение «Model C с коэффициентом уверенности 7».

Если при вводе правил не было допущено никаких ошибок, то тестирование должно пройти успешно. Однако определенное беспокойство вызывает содержание вопросов, задаваемых пользователю. Дело в том, что непрофессиональный пользователь может не знать, какое качество печати ему требуется. Будет лучше, если задавать ему вопросы о том, что он хочет печатать, а система сама будет определять необходимое качество.

Запишем правило, определяющее выбор в случае, когда требуется высокое качество печати. Допустим, что у пользователя существует потребность в печати документов определенного типа. Зададим квалификатор, содержащий типы этих документов: The printer will be used for со значениями business letters, internal memos, notes, numeric data, company reports.

Будем считать, что только business letters и company reports требуют высокого качества печати. Все остальное может печататься с худшим качеством. При записи условной части правила выберем соответственно 1-е и 5-е значения квалификатора (для выбора сразу двух значений одного квалификатора их номера записываются через пробел).

В THEN-части правила не будем вводить информацию о вариантах выбора, вместо этого введем информацию о квалификаторах. Вызовем квалификатор The print quality needed is (его номер – 2) и укажем, что он принимает значение high. В ELSE-части правила запишем, что этот квалификатор принимает значение low. Теперь ЭС сама сможет определить требуемое качество печати, задав вопрос о том, для каких целей будет использоваться принтер. В итоге получим следующее правило:

RULE NUMBER: 5

IF:(1)The printer will be used for business letters or company reports

THEN: (1) The print quality needed is high

ELSE: (1) The print quality needed is low

При вводе последнего правила система сообщит, что возник потенциальный конфликт. Если введенное правило истинно, то правило 2 также должно быть истинным. В данном случае это не является конфликтом, так как правило 5 предназначено для вывода информации для правила 2. Чтобы сообщить системе, что на самом деле конфликта нет, нужно нажать клавишу <ENTER>.

Можно также добавить правила, автоматически определяющие скоростной и стоимостной факторы. Часто бывает, что прототип ЭС начинается с небольшого множества правил, потом разрастается и превращается в довольно сложную систему.

· Использование математических выражений

В этом примере рассмотрим отгрузку принтеров моделей A, B и C, купленных пользователем. Программа будет решать, каким способом отправлять их и вычислять стоимость отгрузки.

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

В рассматриваемом примере используются два способа доставки принтеров – на самолете и на автомобиле. Введем два варианта выбора: Ship by air и Ship by track. Включим режим проверки новых правил.

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

В IF-части правила необходимо определить, масса груза больше 1000 кг, или нет. Для этого введем математическую формулу нажатием клавиши <M>. Применим простую формулу [WEIGHT] > 1000. В качестве описания переменной зададим The weight of the shipment. Затем нужно определить, должно ли отображаться значение этой переменной в конце работы программы. Так как значение этой переменной будет вычислено в процессе работы программы, то мы хотим узнать его. Переменная будет числовой. При запуске программы эта переменная должна быть инициализирована нулем. Так как пользователь не будет задавать значение этой переменной, нет необходимости указывать диапазон возможных значений для нее.

Правило будет выглядеть следующим образом:

RULE NUMBER: 1

IF: (1) [WEIGHT] > 1000

THEN: (1) Ship by truck – Probability = 1

ELSE: (1) Ship by air – Probability = 1

REFERENCE: The Shipping Manual – page 58

Далее введем правила, высчитывающие вес груза. Для этого потребуется информация о том, сколько принтеров и какого типа нужно переправить. Определим квалификатор The type of printer(s) to be shipped is со значениями Model A, Model B и Model C. Допустим, что принтер А весит 10 кг, тогда величина [WEIGHT] должна увеличиваться на (10 * число принтеров модели А). Запишем эту информацию в THEN-части правила: [WEIGHT] + ([NUMBER OF MODEL A] * 10).

Так как определили новую переменную [NUMBER OF MODEL A], то нужно сообщить системе информацию о ней. Поскольку пользователь должен задавать значение этой переменной, то ее значение не будет отображаться по завершении работы программы. Это будет численная переменная. Требуется, чтобы пользователь задавал ее значение, поэтому не нужно инициализировать ее. Укажем нижнюю границу допустимого диапазона ее значений – 0.

Запишем правило:

RULE NUMBER: 2

IF: (1) The type of printer(s) to be shipped is Model A

THEN:

(1) [WEIGHT] IS GIVEN THE VALUE [WEIGHT] + ([NUMBER OF MODEL A] * 10)

Аналогично запишем правила для принтеров моделей В и С. Положим, что модель В весит 20 кг, а модель С – 45 кг. В результате получим:

RULE NUMBER: 2

IF: (1) The type of printer(s) to be shipped is Model B

THEN:

(1) [WEIGHT] IS GIVEN THE VALUE [WEIGHT] + ([NUMBER OF MODEL B] * 20)

RULE NUMBER: 3

IF: (1) The type of printer(s) to be shipped is Model С

THEN:

(1) [WEIGHT] IS GIVEN THE VALUE [WEIGHT] + ([NUMBER OF MODEL B] * 45)

Кроме массы груза хотим также определить и его стоимость. Допустим, что стоимость транспортировки самолетом составляет 225 руб. за 1 кг, автомобилем – 110 руб. Можно использовать правило, определяющее метод транспортировки, для вычисления соответствующей стоимости. Исправим правило 1 следующим образом:

RULE NUMBER: 1

IF: (1) [WEIGHT] > 1000

THEN: (1) Ship by truck – Probability = 1

and (2) [COST] IS GIVEN THE VALUE [WEIGHT] * 110

ELSE: (1) Ship by air – Probability = 1

and (2) [COST] IS GIVEN THE VALUE [WEIGHT] * 225

REFERENCE: The Shipping Manual – page 58

Определили новую переменную [COST] – стоимость транспортировки. Она должна отображаться по завершении работы программы и должна быть численной. Так как ее значение вычисляется в процессе работы, то не нужно запрашивать его у пользователя, инициализировать или задавать диапазон возможных значений.

Теперь правило 1 определяет метод транспортировки и ее стоимость. Программа автоматически вызовет правила 2, 3 и 4 для вычисления значения переменной [WEIGHT].

Приступим к тестированию созданной БЗ, нажав клавишу <R>. Система предложит выбрать модель принтера. Допустим, что хотим транспортировать модели A и C, для этого введем значения 1, 3. Укажем количество отгружаемых принтеров: модели А – 6, модели С – 2. После этого увидим результат работы:

Values based on 0/1 system VALUE
1. Ship by truck
2. The weight of the shipment in pounds 1500.0
3. The cost of shipping 165.0

Так как вес груза превышает 1000 кг, для перевозки будет использован автомобиль. Можно потребовать от системы объяснить полученный результат. Нажав клавишу <3>, соответствующую третьей строке, увидим правило, по которому была вычислена стоимость:

RULE NUMBER: 1

IF: (1) [WEIGHT] > 1000

THEN: (1) Ship by truck – Probability = 1

and (2) [COST] IS GIVEN THE VALUE [WEIGHT] * 110

ELSE: (1) Ship by air – Probability = 1

and (2) [COST] IS GIVEN THE VALUE [WEIGHT] * 225

У этого правила ярким цветом будут выделены IF и THEN-части, использованные в данном случае. Далее (если введем номер строки с условием 1) можно узнать, почему истинна условная часть. При необходимости, можно проследить весь ход вычислений, вплоть до исходных данных.

· Редактирование правил

Покажем, как редактировать уже созданные правила. Будем использовать правила из предыдущих примеров. Для этого запустим программу editxs.exe, в качестве файла БЗ укажем файл, который был создан в первом примере.

Система будет задавать вопросы относительно характеристик БЗ. Отметим, что вопросы будут заданы только для тех характеристик, которые могут быть изменены. По умолчанию принимаются ранее установленные значения. Вначале будет предложено изменить режим поиска применимых правил. Оставим его без изменения, т.е. будут просматриваться все правила. Далее следует вопрос об изменении режима отображения применяемых правил. Также оставим этот режим без изменения. Не будем изменять и режим проверки новых правил. На этом заканчиваются вопросы, связанные с изменением характеристик БЗ, и приступим к редактированию правил.

Вызовем первое правило, нажав клавишу <Е> и указав номер правила – 1. На экране появится созданное ранее правило, в нижней части экрана будет находиться меню команд редактирования его частей (рис. 2.2).

Вначале изменим THEN-часть правила. Для этого нажмем клавишу <T>. Программа отобразит три заключения из THEN-части правила. При этом изменятся команды меню (рис.2.3).

Можно удалить, добавить, изменить заключения или изменить их порядок. Добавим заключение нажатием клавиши <A>: High printing speed is unnecessary. При вводе этого заключения использовали квалификатор. Удалим третье заключение, нажав клавишу <D>, а затем указав номер три. Изменим уже новое заключение три. При изменении существующее заключение будет удалено, но автоматически будет вызван квалификатор, и нужно указать его новое значение. Новым значением будет necessary. Порядок заключений в THEN и ELSE-части менее важен, чем порядок условий в IF-

 
 

части правила. Тем не менее, изменим порядок следования заключений.

 
 

Рис.2.2. Меню команд редактирования правил

Рис. 2.3. Пример меню

В итоге получим:

1 High printing speed is necessary

2 Model A – Probability = 0/10

3 Model B – Probability = 0/10

Завершим редактирование нажатием клавиши <ENTER>. Появится меню, изображенное на рис. 2.3. Можно выбрать желаемое правило с помощью клавиш <¯>, <­>. Удалим первое правило. При удалении правила система выдаст запрос на подтверждение.

Имеется возможность перестроить порядок правил, при этом можно перенумеровывать целые блоки правил. Для изменения порядка правил необходимо нажать клавишу <M>. Далее нужно указать старые и новые номера правил.

На этом закончим редактирование правил, нажав клавишу <S> для сохранения произведенных изменений и выхода из программы.

· Использование внешних программ

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

Как и ранее, введем название предметной области, имя автора. Для разнообразия выберем третью шкалу вероятности.

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

Следующей характеристикой является использование внешних программ при запуске экспертной системы. В данном случае используем внешние программы. В качестве такой программы будем использовать небольшую программу, которая рассчитывает среднее для введенных значений. Эта программа называется average.exe и находится в одном каталоге вместе с экспертной системой Exsys.

Далее система предложит задать варианты выбора. Так как в этом примере будет демонстрироваться лишь использование внешних программ, то введем «CHOICE 1,…,CHOICE N».

Программа average предназначена для инициализации переменных и квалификаторов. Она будет требовать от пользователя ввести несколько чисел и возвращать количество введенных чисел и их среднее значение. Определим переменные, которые будут получать эти значения.

Зададим новое правило. Введем переменную [COUNT], которая будет содержать количество введенных пользователем чисел. Об этой переменной нужно сообщить информацию системе. Эта переменная – численная, ее не нужно инициализировать, ее значение будет связано с внешней программой. Можно задать диапазон допустимых значений для этой переменной, но в данном случае этого делать не будем. Также введем переменную [AVERAGE], в которой будет содержаться соответствующий результат работы внешней программы. Характеристики этой переменной аналогичны характеристикам переменной [COUNT]. Описания этих переменных должны быть заданы так же, как если бы их значения задавал пользователь.

В IF-части правила произвольно зададим условие [COUNT]>3 and [AVERAGE]>5. THEN- и ELSE-части определим соответственно: Choice 1 – Probability=56/100 и Choice 3 – Probability=73/100. В итоге получим правило:

RULE NUMBER: 1

IF: (1) [COUNT] > 3

and (2) [AVERAGE] > 5

THEN: (1) Choice 1 – Probability = 56/100

ELSE: (1) Choice 3 – Probability = 73/100

Внешняя программа должна указывать, значения каких переменных или квалификаторов передаются экспертной системе. В данном случае [COUNT] будет переменной 1, а [AVERAGE] будет переменной 2. Внешняя программа должна возвращать значение для [COUNT] путем записи в файл RETURN.DAT строки, начинающейся с префикса V1. Строка со значением переменной 2 должна начинаться префиксом V2.

Теперь определим квалификатор The letter selected was, чье значение также будет получено от внешней программы. Квалификатор имеет два значения: A и B. Внешняя программа потребует от пользователя ввести одно из значений квалификатора. Данные, возвращаемые в файл RETURN.DAT должны быть в следующем формате: буква Q, указывающая на квалификатор, номер квалификатора, одно или несколько значений квалификатора (числовые значения квалификаторов). Например, запись Q1 1,2 означает, что выбраны первое и второе значения для перового квалификатора.

Зададим следующее правило:

RULE NUMBER: 2

IF: (1) The letter selected was A

THEN: (1) Choice 1 – Probability = 34/100

ELSE: (1) Choice 2 – Probability = 89/100

Рассмотрим другой тип внешних программ – программ, связанных с единственной переменной. Для этого определим переменную [NUM]. Программа average.exe не пригодна для того, чтобы возвращать значения этой переменной. Как обычно, нужно сообщить системе характеристики новой переменной. С переменной [NUM] хотим связать внешнюю программу. Для этого при вводе текста, описывающего эту переменную нужно написать RUN(имя_файла), а затем записать привычный комментарий. Начиная описание переменной с RUN(…), сообщим системе, что в момент, когда потребуется ее значение, должна вызваться внешняя программа, которая это значение вычислит. Значение переменной также должно быть записано в файл RETURN.DAT. Exsys автоматически выберет это значение и свяжет его с переменной [NUM]. Внешняя программа будет вызываться только в том случае, когда требуется значение переменной [NUM]. Для этих целей имеется программа getnum.exe, она находится в каталоге с экспертной системой.

Определим квалификатор, с которым связана программа getcolor.exe. Программа getcolor.exe будет возвращать цвет, выбранный пользователем. Значение(я) цвета должно передаваться в формате, описанном выше. Задавая его текстовое описание квалификатора, вначале запишем RUN(getcolor), затем будет следовать имя квалификатора: the color selected is. Значения квалификатора: red, blue, yellow, green.

Зададим следующее правило:

RULE NUMBER: 3

IF: (1) [NUM] > 0

And (2) The color selected is red or yellow

THEN: (1) Choice 2 – Probability = 27/100

ELSE: (1) Choice 1 – Probability = 10/100

В итоге получили ЭС, использующую три внешние программы. Рассмотрим, как работает полученная ЭС. Запустим программу Exsys.exe, в качестве файла БЗ зададим имя, только что созданного файла. Необходимо инициализировать переменные и квалификаторы. Для инициализации переменных [AVERAGE] и [COUNT], а также квалификатора The letter selected was используется программа average.exe. На экране появятся следующие сообщения:

You are now in the external program AVERAGE.EXE.

This program will calculate the average of any number of values you enter.

The number of values entered and the average will be passed back to EXSYS

Enter a value >0 to be averaged. To end input press <ENTER>:

Предлагается ввести несколько положительных чисел. Введем числа 1, 7, 9, 22, 5. В результате увидим:

5 VALUES WERE ENTERED. THE AVERAGE = 8.800000.

Затем предлагается ввести значение(я) квалификатора, мы выберем 1-е значение. После этого управление передается ЭС.

Так как в БЗ имеются правила, в которых используются значения переменной [NUM] и квалификатора The color selected is, связанных с внешними программами, эти программы также вызываются.

На экране появятся следующие сообщения:

You are now in the external program GETNUM.EXE.

This program will ask for a value and pass it back to EXSYS.

Enter a value to be passed to EXSYS:

Введем значение 6, после чего увидим:

You are now in the external program GETCOLOR.EXE.

This program will ask for a color and pass it back to EXSYS.

Please type the name of your favorite color among red, blue, green, yellow

Выберем первое и второе значения квалификатора. После этого ЭС завершает свою работу и отображает результаты.

Values based on -100 to +100 system VALUE
1. Choice 1
2. Choice 2
3. The number of values that were averaged 5.0
4. The average value 8.80
5. The number entered in the external program 6.0

· Пример использования системы

Рассмотрим пример построения ЭС по выбору мобильного телефона. ЭС позволяет получить несколько результатов запроса, в разной степени удовлетворяющих условиям, задаваемым пользователем. Определяются компромиссные варианты, используя механизмы обработки весов получаемых ответов на некое количество «наводящих» вопросов. Тип обработки и вес каждого ответа заданы с учетом особенностей темы, с которой работает система, и позволяют подбирать наиболее адекватные варианты ответов.

Для вычисления степени удовлетворения условиям использована схема сложения вероятностей независимых событий с ранжированием от –100 до +100. Поскольку разные вопросы могут иметь большее или меньшее значение при выборе телефона, то ответы на вопросы отличаются по весу. Помимо этого, модели, обладающие более редкими характеристиками, при их выборе получают несколько большую вероятность. Варианты, не набравшие 60/100, отбрасываются.

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

Таблица 2.1

Квалификаторы Некоторые из правил
Qualifier #1 Select the price range for your telephone? 1. not more than $130 2. $130-$200 3. $200-$300 4. $300-$400 5. more $400 RULE NUMBER: 1 IF: Select the price range for your telephone? Not more than $130 THEN: Alcatel One Touch Club – Probability=50/100 and Ericsson T10s – Probability=50/100 and Ericsson A1018s – Probability=50/100 and Motorola CD 930 – Probability=50/100 and Siemens A35 – Probability=50/100 and – Probability=50/100
Qualifier #2 Select the size for you telephone? 1. not more then 110mm 2. 110-120mm 3. more 120mm RULE NUMBER: 8 IF: Select the size for you telephone? more 120mm THEN: Alcatel one Touch Club – Probability=20/100 and Ericsson A1018s – Probability=20/100 and Motorola CD 930 – Probability=20/100 and Motorola L7089 – Probability=20/100 and Motorola Timeport 250 – Probability=20/100 and Nokia 3210 – Probability=20/100 and Nokia 6250 – Probability=20/100 and Nokia 7110 – Probability=20/100 and Panasonic GD93 – Probability=20/100
Qualifier #3 Weight? 1. not more then 90g 2. 90-140g 3. more 140g RULE NUMBER: 11 IF: Weight? more 140g THEN: Alcatel one Touch Club – Probability=20/100 and Ericsson T10s – Probability=20/100 and Ericsson T18s – Probability=20/100 and Motorola CD 930 – Probability=20/100 and Nokia 3210 – Probability=20/100 and Nokia 6250 – Probability=20/100 and Nokia 7110 – Probability=20/100 and Ericsson A1018s – Probability=20/100
Qualifier #4 The work time in standby mode? 1. near 5 days 2. 5-10 days 3. more 10 days RULE NUMBER: 14 IF: The work time in standby mode? more 10 days THEN: Nokia 3210 – Probability=40/100 and Nokia 3310 – Probability=40/100 and Nokia 6250 – Probability=40/100 and Nokia 7110 – Probability=40/100
Qualifier #5 Call duration? 1. 3-4 hour 2. 4-5 hour 3. 5-6 hour 4. more 6 hour RULE NUMBER: 18 IF: Call duration? more 6 hour THEN: Ericsson T20s – Probability=50/100 and Nokia 3310 – Probability=20/100 and Siemens S35i – Probability=20/100 and Siemens SL45 – Probability=20/100
Qualifier #6 Antenna? 1. out-antenna 2. a built-in antenna RULE NUMBER: 20 IF: Antenna? a built-in antenna THEN: Nokia 3210 – Probability=10/100 and Nokia 3310 – Probability=10/100 and Nokia 6250 – Probability=10/100 and Nokia 8210 – Probability=10/100 and Nokia 8850 – Probability=10/100 and Siemens M35i – Probability=10/100 and Siemens S35i – Probability=10/100 and Siemens SL45 – Probability=10/100
Qualifier #7 Flip? 1. No 2. N/active 3. Active RULE NUMBER: 22 IF: Flip? N/active THEN: Ericsson T10s – Probability=25/100 and Samsung SGH N100 – Probability=25/100
Qualifier #8 Alarm? 1. Yes 2. No RULE NUMBER: 25 IF: Alarm? No THEN: Siemens A35 – Probability=15/100 and Siemens C25 – Probability=15/100
Qualifier #9 Vibro? 1. Yes 2. No RULE NUMBER: 27 IF: Vibro? No THEN: Alcatel One Touch 300 and – Probability=5/100 and Alcatel One Touch Club – Probability=5/100 and Benefon Twin+ – Probability=5/100 and Ericsson A1018s – Probability=5/100 and Nokia 3210 – Probability=5/100 and Bosh GSM 909 Dual S – Probability=5/100 and Siemens A35 – Probability=5/100 and Siemens C25 – Probability=5/100
Qualifier #10 Calculator? 1. Yes 2. No RULE NUMBER: 29 IF: Calculator? No THEN: Alcatel One Touch 300 and – Probability=10/100 and Ericsson A1018s – Probability=10/100 and Motorola CD 930 – Probability=10/100 and Siemens A35 – Probability=10/100 and Siemens C25 – Probability=10/100
Qualifier #11 Speaker phone? 1. Yes 2. No RULE NUMBER: 30 IF: Speaker phone? Yes THEN: Ericsson T18s – Probability=10/100 and Ericsson A20s – Probability=10/100 and Panasonic GD90 – Probability=10/100 and Panasonic GD92 – Probability=10/100 and Panasonic GD93 – Probability=10/100 and Siemens SL45 – Probability=10/100
Qualifier #12 Voice dialing? 1. Yes 2. No RULE NUMBER: 32 IF: Voice dialing? Yes THEN: Ericsson T18s – Probability=15/100 and Ericsson T20s – Probability=15/100 and Motorola L7089 – Probability=15/100 and Nokia 3310 – Probability=15/100 and Nokia 3310 – Probability=15/100 and Samsung SGH A100 – Probability=15/100 and Siemens S35i – Probability=15/100 and Siemens SL45 – Probability=15/100 and Nokia 8210 – Probability=15/100 and Nokia 8850 – Probability=15/100 and Ericsson T28s – Probability=15/100
Qualifier #13 IR-port? 1. Yes 2. No RULE NUMBER: 34 IF: IR-port? Yes THEN: Motorola L7089 – Probability=40/100 and Motorola Timeport 250 – Probability=40/100 and Nokia 6250 – Probability=40/100 and Nokia 7110 – Probability=40/100 and Nokia 8850 – Probability=40/100 and Nokia 8210 – Probability=40/100 and Siemens SGH A100 – Probability=40/100 and Siemens S35i – Probability=40/100 and Siemens SL45 – Probability=40/100
Qualifier #14 WAP? 1. Yes 2. No RULE NUMBER: 36 IF: WAP? Yes THEN: Benefon Q – Probability=30/100 and Ericsson T20s – Probability=30/100 and Motorola Timeport 250 – Probability=30/100 and Nokia 6250 – Probability=30/100 and Nokia 7110 – Probability=30/100 and Panasonic GD93 – Probability=30/100 and Samsung SGH N100 – Probability=30/100 and Siemens M35i – Probability=30/100 and Siemens S35i – Probability=30/100 and Siemens SL45 – Probability=30/100
Qualifier #15 Display? 1. less 4 str 2. 4 str 3. 5 str 4. more 5 str RULE NUMBER: 41 IF: Display? more 5 str THEN: Benefon Q – Probability=20/100 and Nokia 7110 – Probability=30/100 and Nokia 8850 – Probability=30/100 and Panasonic GD92 – Probability=30/100 and Siemens S35i – Probability=30/100 and Siemens SL45 – Probability=30/100

Пример работы с системой

1. Select the price range for your telephone? not more than $130

2. Select the size for you telephone? 110-120mm

3. Weight? more 140g

4. The work time in standby mode? near 5 days

5. Call duration? 4-5 hour

6. Antenna? out-antenna

7. Flip? No

8. Alarm? No

9. Vibro? No

10. Calculator? No

11. Speaker phone? No

12. Voice dialing? No

13. IR-port? No

14. WAP? No

15. Display? less 4 str

Результат:

1. Siemens C25 93

2. Siemens A35 91

3. Ericsson A1018s 82

4. Motorola CD 930 79

5. Alcatel One Touch Club 73

6. Ericsson T10s 73

7. Nokia 3310 71

8. Benefon Twin+ 70

9. Bosh GSM 909 Dual S 70

Лабораторное занятие №4

 


Просмотров 450

Эта страница нарушает авторские права




allrefrs.ru - 2021 год. Все права принадлежат их авторам!