logo search
Disser_k_GOSam

Приложение 1. Приложение 2. Приложение 3.

Листинг экспертной системы.

;; Правило determine-working-state

(defrule determine-working-state ""

(not (working-state ?))

(not (repair ?))

=>

(if (yes-or-no-p tTool > 295 (yes/no)? „)

then

(if (yes-or-no-p tTool = 315 (yes/no)? „)

then

(assert (working-state not-stable))

else

(assert (repair “STOP»))

(assert (working-state stable))

)

else

(assert (working-state disenabled))

)

)

(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))

(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)

(defrule determine-power-state ""

(working-state disenabled)

(not (power-state ?))

(not (repair ?))

=>

(if (yes-or-no-p g >1.5)

then

(assert (repair PAUSE ASK_3)

(assert (power-state be))

else

(assert (repair ASK_2))

(assert (power-state not))

)

)