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



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>.

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


Дата добавления: 2018-05-12; просмотров: 248; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!