Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

отчет4

.docx
Скачиваний:
2
Добавлен:
18.02.2023
Размер:
42.09 Кб
Скачать

Министерство образования Республики Беларусь

УО «Полоцкий государственный университет»

Факультет информационных технологий

Кафедра вычислительных систем и сетей

ОТЧЕТ

О выполнении лабораторной работы №4 по дисциплине

«Интеллектуальные информационные системы»

на тему «Разработка экспертной системы»

Выполнил студент группы

Проверил

Полоцк

Цель работы: построить экспертную систему при помощи фактов, функций и правил, используя управляющие команды (if-then-else и while) в среде CLIPS.

Экспертная система будет работать по следующему алгоритму: сначала уточним имеется ли у заемщика работа и отсутствуют ли проблемы с законом. В случае отрицательного ответа на один из вопросов выводится отрицательная рекомендация, при положительных ответах проверяются следующие правила. Далее уточняется имеются ли в данный момент непогашенные кредиты, в случае положительного ответа дополнительно уточняется были ли просрочки по платежам за кредит. При положительном ответе и на этот вопрос — рекомендация отказать. Во всех других случаях проверяются следующие правила. Следующим шагом последовательно уточняется имеется ли у заёмщика депозит, недвижимость или погашались ли предыдущие кредиты досрочно. Если хотя бы на один из вопросов ответ положительный — рекомендация одобрить. В противном случае рекомендуется отказать.

В ходе лабораторной работы разработана экспертная система (листинг 1).

Листинг 1 — Экспертная система

(deffunction ask-question (?question $?allowed-values)

(printout t ?question)

(bind ?answer (read))

(if (lexemep ?answer)

then (bind ?answer (lowcase ?answer)))

(while (not (member ?answer ?allowed-values)) do

(printout t ?question)

(bind ?answer (read))

(if (lexemep ?answer)

then (bind ?answer (lowcase ?answer))))

?answer

)

(deffunction yes-or-no-p (?question)

(bind ?response (ask-question ?question yes no y n))

(if (or (eq ?response yes) (eq ?response y))

then TRUE

else FALSE)

)

(defrule check-jobless

(not (jobless ?))

(not (recommendation ?))

=>

(if (yes-or-no-p "Does the borrower have a job? (yes/no): ")

then (assert (jobless NO))

else (assert (recommendation "It is recommended to refuse.")))

)

(defrule check-law-trouble

(jobless NO)

(not (recommendation ?))

=>

(if (yes-or-no-p "Does the borrower have a law trouble? (yes/no): ")

then (assert (recommendation "It is recommended to refuse."))

else (assert (law-trouble NO)))

)

(defrule check-negative

(law-trouble NO)

(not (recommendation ?))

=>

(if (yes-or-no-p "Does the borrower have other loans? (yes/no): ")

then (if (yes-or-no-p "Did the borrower delay the loan payments? (yes/no): ")

then (assert (recommendation "It is recommended to refuse."))

else (assert (negative NO)))

else (assert (negative NO)))

)

(defrule check-positive

(negative NO)

(not (recommendation ?))

=>

(if (yes-or-no-p "Does the borrower have a deposit? (yes/no): ")

then (assert (recommendation "It is recommended to approve."))

else (if (yes-or-no-p "Does the borrower have a property? (yes/no): ")

then (assert (recommendation "It is recommended to approve."))

else (if (yes-or-no-p "Did the borrower repay the loans ahead of schedule? (yes/no): ")

then (assert (recommendation "It is recommended to approve."))

else (assert (recommendation "It is recommended to refuse.")))))

)

(defrule print-recommendation

(declare (salience 10))

(recommendation ?item)

=>

(printout t crlf crlf)

(printout t "Recommendation:")

(printout t crlf crlf)

(format t " %s%n%n%n" ?item)

)

(defrule system-banner ""

(declare (salience 10))

=>

(printout t crlf crlf)

(printout t "********************************************" crlf)

(printout t "* The credit decision-making expert system *" crlf)

(printout t "********************************************" crlf)

(printout t crlf crlf)

)

Выполним тестирование экспертной системы введя некоторые данные (рисунок 1).

Рисунок 1 – Тестирование экспертной системы.

Вывод: разработали экспертную систему при помощи фактов, функций и правил, используя управляющие команды (if-then-else и while) в среде CLIPS и протестировали ее.

Соседние файлы в предмете Интеллектуальные информационные системы