Subido por Sergio Tejedor

CLIPS Práctica 1

Anuncio
Práctica 1
Sistema Expertos: CLIPS
Manejo de Hechos Ordenados y No-Ordenados
A continuación, encontrarás una serie de acciones a realizar en CLIPS. Anota la solución
para cada apartado tras haberla probado en el intérprete de CLIPS en tu VM.
1. Define una plantilla denominada persona que represente una relación de personas
con los siguientes cuatro campos simples: nombre, apellido, color- ojos y altura.
CLIPS>(deftemplate persona "Relación persona"
(slot nombre)
(slot apellido)
(slot color-ojos)
(slot altura) )
2. Define una plantilla persona2 pero con campos multislot para nombre y apellidos.
CLIPS> (deftemplate persona2 "Relacion persona"
(multislot nombre)
(multislot apellido)
(slot color-ojos)
(slot altura) )
3. Añade 2 hechos de tipo persona con assert. Invéntate la información de los campos
nombre (cadena de caracteres, como por ejemplo “Juan”), apellido (otra cadena de
caracteres), color-ojos (símbolo, como por ejemplo negros) y altura (entero, como
por ejemplo 179).
CLIPS>(assert ( persona
(nombre "Juan")
(apellido "García")
(color-ojos marrones)
Modelos de Inteligencia Artificial
(altura 189) ) )
<Fact-1>
CLIPS>(assert (persona
(nombre "Marta")
(apellido "Fernández")
(color-ojos marrones)
(altura 165) ) )
<Fact-2>
4. Vuelve a introducir los datos de la segunda persona. ¿Qué pasa?
CLIPS>(assert (persona
(nombre "Marta")
(apellido "Fernández")
(color-ojos marrones)
(altura 165) ) )
<Fact-2>
5. Muestra todos los hechos.
CLIPS>(facts)
f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189))
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165))
For a total of 2 facts.
6. Muestra todos los hechos desde el primero hasta el número 1.
CLIPS>(facts 0 2)
f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189))
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165))
For a total of 2 facts.
7. Muestra sólo el hecho número 1.
Modelos de Inteligencia Artificial
CLIPS>(facts 1) f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones)
(altura 189))
8. Muestra los hechos desde el número 1 hasta el 1, y como máximo 0 hechos.
CLIPS>(facts 1 1 0)
9. Muestra los hechos desde el número 0 hasta el 1, y como máximo 0 hechos.
CLIPS>(facts 0 1 0)
10. Muestra los hechos desde el número 1 hasta el 1, y como máximo 1 hecho.
CLIPS>(facts 1 1 1)
f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189))
For a total of 1 fact.
11. Borra el hecho número 1.
CLIPS>(retract 1)
12. Vuelve a borrar el hecho número 1 … ¿qué ocurre?
CLIPS>(retract 1)
[PRNTUTIL1] Unable to find fact f-1.
13. Muestra todos los hechos.
CLIPS>(facts)
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165))
For a total of 1 fact.
Modelos de Inteligencia Artificial
14. Intenta borrar todos los hechos, sin especificar para ello ningún índice .. ¿qué
ocurre?
CLIPS>(retract)
[ARGACCES1] Function 'retract' expected at least 1 argument.
15. Borra el hecho número 0.
CLIPS>(retract 0)
[PRNTUTIL1] Unable to find fact f-0.
CLIPS>
16. Muestra ahora todos los hechos.
CLIPS>(facts)
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165))
For a total of 1 fact.
17. Vuelve a añadir 2 hechos de tipo persona con “assert”.
CLIPS>(assert ( persona
(nombre "Antonio")
(apellido "Gutierrez")
(color-ojos azules)
(altura 190) ) )
CLIPS>(assert ( persona
(nombre "Ana")
(apellido "Pérez")
(color-ojos verdes)
(altura 170) ) )
<Fact-4>
18. Modifica el primer hecho cambiando la altura de la persona y comprueba que
Modelos de Inteligencia Artificial
se ha cambiado.
CLIPS>(modify 2 (altura 174))
<Fact-2>
CLIPS> (facts)
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 174))
19. Modifica el segundo hecho cambiando el color de los ojos de la persona y
comprueba que se ha cambiado.
CLIPS>(modify 3 (color-ojos negros))
<Fact-3>
CLIPS> (facts 3)
f-3 (persona (nombre "Antonio") (apellido "Gutierrez") (color-ojos negros) (altura 190))
f-4 (persona (nombre "Ana") (apellido "Pérez") (color-ojos verdes) (altura 170))
For a total of 2 facts.
20. Duplica el tercer hecho cambiando el nombre de la persona.
CLIPS>(duplicate 2 (nombre "Aitana"))
<Fact-5>
21. Duplica el primer hecho cambiando la altura de la persona.
CLIPS>(duplicate 2 (altura 171))
<Fact-6>
22. Muestra todos los hechos.
CLIPS>(facts)
f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 174))
Modelos de Inteligencia Artificial
f-3 (persona (nombre "Antonio") (apellido "Gutierrez") (color-ojos negros) (altura 190))
f-4 (persona (nombre "Ana") (apellido "Pérez") (color-ojos verdes) (altura 170))
f-5 (persona (nombre "Aitana") (apellido "Fernández") (color-ojos marrones) (altura 174))
f-6 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 171))
For a total of 5 facts.
23. Activa mediante “watch” la depuración de hechos
CLIPS>(watch facts)
24. Modifica nuevamente la altura de la primera de las personas. ¿Cómo hay que
interpretar la salida por pantalla en base a la acción efectuada?
CLIPS>(modify 2 (altura 180))
<== f-2 (persona ... (altura 174))
==> f-2 (persona ... (altura 180))
<Fact-2>
25. ¿Cómo podemos desactivar la salida ampliada de hechos para volver al
estado previo?
CLIPS> (unwatch facts)
26. Borra todos los hechos almacenados hasta el momento y comprueba que
sea así.
CLIPS> (retract 2 3 4 5 6)
27. Declara dos personas nuevas usando “deffacts” en lugar de “assert” y
comprueba que constan como hechos … ¿aparecen?
Modelos de Inteligencia Artificial
CLIPS> (deffacts persona "Relación persona"
(persona (nombre "Julián")
(apellido "Martínez")
(color-ojos azules)
(altura 195))
(persona (nombre "Verónica")
(apellido "Zamora")
(color-ojos verdes)
(altura 165)))
28. Si los hechos no aparecen listados después de introducir “facts”, necesitarás
introducir un nuevo comando … ¿cuál en concreto?
CLIPS>(unwatch facts)
CLIPS> (reset)
CLIPS> (facts)
f-1 (persona (nombre "Julián") (apellido "Martínez") (color-ojos azules) (altura 195))
f-2 (persona (nombre "Verónica") (apellido "Zamora") (color-ojos verdes) (altura 165))
For a total of 2 facts.
Modelos de Inteligencia Artificial
Descargar