Extras din laborator
SISTEME EXPERT – LABORATOR 2
Aflarea maximului
(numar 1)
(numar 2)
(numar 3)
----------|-----------
(maxim 3)
---------| |-----------
- Prima varianta
CLIPS> (assert (maxim –999))
CLIPS> (defrule maxim
(numar ?x)
?f<-(maxim ?y&:(> ?x ?y))
=>
(retract ?f)
(assert (maxim ?x))
); de la defrule
CLIPS>
- A doua varianta
CLIPS> (defrule maxim
(numar ?x)
(not (numar ?y&:(> ?y ?x)))
=>
(assert (maxim ?x))
); de la defrule
CLIPS>
Intersectia a doua multimi
(mul1 3 7 10 20)
(mull2 3 10 15 17)
----------|-----------
(intersectie 3 10)
---------| |-----------
CLIPS> (defrule intersectie
(mul1 $? ?x $?)
(mul1 $? ?x $?)
?f <-(intersectie $?i)
(not (intersectie $? ?x $?))
=>
(assert (intersectie $?i ?x))
(retract ?f)
); de la defrule
CLIPS>
Reuniunea a doua multimi
(mul1 3 7 10 20)
(mull2 3 10 15 17)
----------|-----------
(reuniune 3 7 10 15 17 20)
---------| |-----------
CLIPS> (defrule concateneaza_multimi
(mul1 $?x)
(mul2 $?y)
=>
(assert (lista $?x $?y))
); de la defrule
CLIPS>
CLIPS> (defrule elimina_duplicate
?f<-(lista $?i1 ?x $?i2 ?x ?$i3)
=>
(retract ?f)
(assert (lista $?i1 ?x $?i2 $?i3))
); de la defrule
CLIPS>
Sortari
- Prima varianta
CLIPS> (defrule sort
?f1<-(lista $?i1 ?x $?i2)
(not (lista $? ?y&:(< ?y ?x) $?)
?f<-(sortat $?l)
=>
(retract ?f)
(retract ?f1)
(assert (lista $?i1 $?i2))
(assert (sortat $?l ?x))
); de la defrule
CLIPS>
- A doua varianta
CLIPS> (defrule sort
?f<-(lista $?i1 ?x ?y&:(< ?y ?x) $?i2)
=>
(retract ?f)
(assert $?i1 ?y ?x $?i2)
); de la defrule
CLIPS>
Permutari
CLIPS> (defrule permutare
(lista $?i1 ?x ?y $?i2)
=>
(assert (lista $?i1 ?y ?x $?i2))
); de la defrule
Preview document
Conținut arhivă zip
- Sisteme Expert - Laborator 2.pdf