⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wrdgmobj.clp

📁 NASA 开发使用的一个专家系统
💻 CLP
字号:
;;;======================================================;;;   Number Puzzle Problem;;;     ;;;     Solves the number puzzle problem in which;;;;;;          GERALD ;;;        + DONALD;;;          ------;;;        = ROBERT;;;;;;     CLIPS Version 6.0 Object Example;;;;;;     To execute, merely load, reset and run.;;;     This example takes alot of memory to execute.;;;======================================================(defclass combination (is-a USER)   (role concrete)   (pattern-match reactive)   (slot number (create-accessor write))   (slot letter (create-accessor write)))(defclass number (is-a USER)   (role concrete)   (pattern-match reactive)   (slot value (create-accessor write)))(defclass letter (is-a USER)   (role concrete)   (pattern-match reactive)   (slot value (create-accessor write)))(defrule startup  =>  (printout t t "The problem is" t t)  (printout t "   GERALD" t)  (printout t " + DONALD" t)  (printout t "   ------" t)  (printout t " = ROBERT" t t)  (make-instance of number (value 0))  (make-instance of number (value 1))  (make-instance of number (value 2))  (make-instance of number (value 3))  (make-instance of number (value 4))  (make-instance of number (value 5))  (make-instance of number (value 6))  (make-instance of number (value 7))  (make-instance of number (value 8))  (make-instance of number (value 9))  (make-instance of letter (value G))  (make-instance of letter (value E))  (make-instance of letter (value R))  (make-instance of letter (value A))  (make-instance of letter (value L))  (make-instance of letter (value D))  (make-instance of letter (value O))  (make-instance of letter (value N))  (make-instance of letter (value B))  (make-instance of letter (value T)))(defrule generate-combinations  (object (is-a number) (value ?x))  (object (is-a letter) (value ?a))  =>  (make-instance of combination (letter ?a) (number ?x)))(defrule find-solution  (object (letter D) (number ?d))  (object (letter T) (number ?t&~?d))  (test (= (mod (+ ?d ?d) 10) ?t))  (object (letter L) (number ?l&~?d&~?t))  (object (letter R) (number ?r&~?d&~?t&~?l))  (test (= (mod (+ ?d ?d                   (* 10 ?l) (* 10 ?l))                100)           (+ (* 10 ?r) ?t)))  (object (letter A) (number ?a&~?d&~?t&~?l&~?r))  (object (letter E) (number ?e&~?d&~?t&~?l&~?r&~?a))  (test (= (mod (+ ?d ?d                   (* 10 ?l) (* 10 ?l)                   (* 100 ?a) (* 100 ?a))                1000)           (+ (* 100 ?e) (* 10 ?r) ?t)))  (object (letter N) (number ?n&~?d&~?t&~?l&~?r&~?a&~?e))  (object (letter B) (number ?b&~?d&~?t&~?l&~?r&~?a&~?e&~?n))  (test (= (mod (+ ?d ?d                   (* 10 ?l) (* 10 ?l)                   (* 100 ?a) (* 100 ?a)                   (* 1000 ?r) (* 1000 ?n))                10000)           (+ (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t)))  (object (letter O) (number ?o&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b))  (object (letter G) (number ?g&~?d&~?t&~?l&~?r&~?a&~?e&~?n&~?b&~?o))  (test (= (+ ?d ?d              (* 10 ?l) (* 10 ?l)              (* 100 ?a) (* 100 ?a)              (* 1000 ?r) (* 1000 ?n)              (* 10000 ?e) (* 10000 ?o)              (* 100000 ?g) (* 100000 ?d))           (+ (* 100000 ?r) (* 10000 ?o) (* 1000 ?b) (* 100 ?e) (* 10 ?r) ?t)))  =>  (printout t "A Solution is:" t t)  (printout t "  G = " ?g t)  (printout t "  E = " ?e t)  (printout t "  R = " ?r t)  (printout t "  A = " ?a t)  (printout t "  L = " ?l t)  (printout t "  D = " ?d t)  (printout t "  O = " ?o t)  (printout t "  N = " ?n t)  (printout t "  B = " ?b t)  (printout t "  T = " ?t t)  (printout t t)  (printout t "   " ?g ?e ?r ?a ?l ?d t)  (printout t " + " ?d ?o ?n ?a ?l ?d t)   (printout t "   " "------" t)  (printout t " = " ?r ?o ?b ?e ?r ?t t t))     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -