Разработка экспертной системы по определению оптимальной конфигурации ПК
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
таким: 1 2
или таким: 12 3
или любым другим количеством разделенных пробелами целых чисел, или же вообще оставлено пустым.
Описание, за которым следует знак "плюс", +, указывает, что вместо этого описания синтаксиса должно быть введено одно или несколько значений, заданных этим описанием. Необходимо отметить, что следующее описание синтаксиса:
+
эквивалентно такому описанию синтаксиса:
*
Вертикальная черта, |, указывает на необходимость выбора одного или нескольких элементов, разделенных вертикальными чертами. Например, следующее описание синтаксиса:| none | some
может быть заменено таким результатом ввода: all
all
или таким: none или таким: some
3.3 Резюме языка CLIPS
Первым компонентом системы CLIPS являются факты. Факты формируются из полей, которые могут представлять собой символ, строку, целое число или число с плавающей точкой. Первое поле факта обычно используется для указания типа информации, хранимой в факте, и называется именем отношения. Для присваивания имен слотов конкретным полям факта, начиная с указанного имени отношения, используется конструкция deftemplate. Для определения фактов как начальных знаний служит конструкция deffacts.
Вторым компонентом системы CLIPS являются правила. Каждое правило состоит из левой и правой части. Левая часть правила может рассматриваться как часть IF, а правая часть - как часть THEN. Правила могут иметь несколько шаблонов и действий.
Третьим компонентом системы CLIPS является машина логического вывода. Правила, шаблоны которых удовлетворяются фактами (т.е. проверка шаблонов на соответствие фактам оканчивается успешно), активизируются, в результате чего активизированные правила помещаются в рабочий список правил. А наличие в системе CLIPS свойства релаксации исключает возможность постоянной активизации одних и тех же правил под действием уже воспринятых фактов.
Кроме того, в настоящей главе дано вводное описание такого понятия, как переменные. Переменные используются для выборки информации от фактов и ограничения значений слотов при сопоставлении с шаблонами в левой части правила. Переменные могут сохранять адреса фактов, сопоставленных с шаблонами в левой части правила, что позволяет извлекать факты, связанные с шаблонами, в правой части правила. Если поле, с которым должно быть выполнено согласование, может иметь любое значение и его значение в дальнейшем не требуется в левой или в правой части правила, то вместо переменных могут использоваться однозначные подстановочные символы. Многозначные переменные и подстановочные символы позволяют согласовывать факты больше чем с одним полем в шаблоне.
4. Разработка экспертной системы
Пользуясь редактором clipsedt.exe, сформируем базу знаний демонстрационной ЭС и сохранить ее в файле Config.clp. ЭС должна вырабатывать рекомендации рядовому пользователю ПК по выбору комплектации персонального компьютера в соответствии с заданными входными параметрами. Данная экспертная система будет иметь 4 входные переменные:
)Мобильность - важнейший параметр данной ЭС, так как он является определяющим в выборе 2 направлений: мобильные и стационарные.
)Цели использования ПК - определяющий параметр, разделяющий ЭС по направлениям использования персонального компьютера, а также по его стоимости (офисные ПК дешевле чем ПК, предназначенные для мультимедийных приложений).
)Пределы стоимости выбранной конфигурации - параметр, определяющий максимальное количество денег, которое может потратить пользователь на покупку персонального компьютера.
)Фирма-изготовитель - параметр, определяющий предпочтения пользователя в сторону той или иной фирмы-изготовителя комплектующих или мобильных систем.
Обозначения переменных:
mobile - мобильность. Имеет 2 значения: 0 - нет (стационарный ПК), 1 - да (мобильный ПК);
firma - фирма-изготовитель. Имеет 5 параметров: 1 - Acer, 2 - ASUS, 3 - Samsung, 4 - Gigabyte, 5 - INTEL;
znach - назначение выбираемого персонального компьютера. Имеет 2 параметра: 1 - офисные ПК, 2 - мультимедийные приложения;
cash - максимальная стоимость, которую может потратить пользователь на выбранный ПК (минимальная стоимость ПК по данному параметру - 6000, максимальная - 60000).
Рисунок 1 - диаграмма зависимостей переменных.
5. Работа с экспертной системой
C помощью редактора clipsedt.exe, или любого текстового редактора (например, NotePad++) создадим базу знаний экспертной системы, содержащую в себе правила, на основании которых экспертная система будет выдавать рекомендации по выбору конфигурации ПК пользователю ЭС. Исходный код экспертной системы имеет вид:
(defrule data-input
(initial-fact)
=>
(printout t crlf " Основное назначение: ")
(printout t crlf " 1 - Офисные ")
(printout t crlf " 2 - Мультимедийные приложения и игры " crlf)
(bind ?znach (read))
(assert (znach ?znach))
(printout t crlf " Мобильность (1 - да; 0 - нет): ")
(bind ?mobile (read))
(assert (mobile ?mobile))
(printout t crlf " Фирма-изготовитель: ")
(printout t crlf " 1 - Acer ")
(printout t crlf " 2 - ASUS ")
(printout t crlf " 3 - Samsung ")
(printout t crlf " 4 - GigaByte ")
(printout t crlf " 5 - INTEL " crlf)
(bind ?firma (read))
(assert (firma ?firma))
(printout t crlf "Максимальная стоимость ПК: ")
(bind ?cash (read))
(assert (cash ?cash))
)
(defrule R1
(mobile ?mobile)
(firma ?firma)
(test (and (= ?mobile 1)(= ?firma 1)) )
=>
(printout t crlf crlf "Вы выбрали раздел мобильных ПК (ноутбуки) фирмы Acer" crlf)
(assert (type "Мобильные ПК Acer"))
(assert (typecnst 1)))
(defru