Resoluciones con Prolog

Páginas: 9 (2008 palabras) Publicado: 11 de junio de 2013
 Problemas
 de
 Resolución
 con
 Prolog.
 

 
Los
  siguientes
  problemas
  tienen
  como
  objetivo
  mostrar
  como
  Prolog
  puede
  resolver
  problemas
  de
 
resolución
  en
  Lógica
  de
  Primer
  Orden,
  aunque
  no
  siempre
  el
  conjunto
  de
  cláusulas
  de
  partida
 sea
  un
 
Conjunto
 de
 Horn.
 Mediante
 transformaciones
 adecuadas
 conseguiremos
 un
 conjunto
 de
 este
 tipo,
 y
 
luego
  presentaremos
  un
  script
  Prolog
  que
  resuelven
  los
  problemas,
  utilizando
  diversas
  técnicas
  de
 
control
 de
 exploración
 del
 árbol
 de
 las deducciones,
 para
 obtener
 una
 respuesta
 adecuada.
 

 


 

Dadas
 las
 siguientes
 afirmaciones:
 

 

 
 
 Hace
 buen
 tiempo.
 

 
 
 Es
 viernes.
 

 
 
 Alberto
 
 tiene
 suerte
 si
 es
 verano.
 

 
 
 No
 es
 verano.
 

 
 
 Alberto
 tiene suerte
 si
 es
 viernes
 y
 hace
 buen
 tiempo.
 

 
 
 Jesús
 es
 un
 malvado.
 

 
 
 Alberto
 es
 un
 malvado.
 

 
 
 Toda
 persona
 malvada
 y
 con
 suerte
 gana
 a
 la
 ruleta.
 

 

 
 
 
 
 
 
 Describir
 un
 Lenguaje
 de
 Primer
 Orden adecuado
 para
 representar
 los
 enunciados
 y,
 con
 el
 
orden
 dado
 por
 las
 cláusulas
 por
 su
 orden
 de
 aparición
 en
 el
 enunciado
 anterior,
 escribir
 el
 
“script”
 correspondiente
 a
 las
 cláusulas
 en
 Prolog
 y
 contestar
 a
 la
 pregunta:
 
 ¿Quién
 gana
 a la
 
ruleta?
 

 
 
 
 
 
 
 
 Dibujar
 el
 árbol
 de
 una
 resolución
 Prolog
 y
 después
 hacer
 el
 seguimiento
 de
 la
 traza
 

 de
 la
 búsqueda
 del
 objetivo
 con
 el
 interfaz
 gráfico
 (GUI),
 para
 comprobar
 que
 coinciden.
 

 

Tomamos
 el
 dominio D:
 
 
D={personas,
 días
 de
 la
 semana,
 estaciones
 del
 año,
 {bueno,
 malo}},
y
 las
 constantes
 {jesus,
 alberto,
 v(viernes),
 ver,
 
 no_ver,
 b(bueno)},
 así
 como
 los
 
predicados
 
  t/1,
  día/1,
  est/1,
  suerte/1,
  malvado/1,
 
  y
 
  gana/1,
 
  para
 obtener
  el
 

script
  (ya
  que
  la
  fórmula
  “No
  es
  verano”
  daría
  lugar
  a
  una
  cláusula
  negativa
  en
  el
  script,
  no
  se
  puede
 
expresar
 aquí
 como
 hecho,
 por
 lo
 que
 decidimos
 expresarla
 como
 
 est(no_ver),
 aunque
 veremos
 
posteriormente
 una forma
 de
 gestionar
 este
 tipo
 de
 cláusulas
 

 

 
 t(b).
 


 
 dia(v).
 

 
 suerte(alberto):-­‐est(ver).
 

 
 suerte(alberto):-­‐t(b),dia(v).
 

 
 est(no_ver).
 

 
 malvado(jesus).
 

 
 malvado(alberto).
 

 
 gana(X):-­‐malvado(X),suerte(X).
 

 

que
 encuentra solución
 a
 la
 pregunta:
 ¿quién
 gana
 a
 la
 ruleta?
 
[trace]
 1
 ?-­‐
 gana(X).
 
X
 =
 alberto.
 

 

y
 cuyo
 trazado
 de
 la
 resolución
 en
 el
 script
 podemos
 ver
 que
 coincide
 con
 el
 de
 exploración
 del
 árbol
 
en
 la
 resolución
 Prolog,
 exploradas...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Resoluciones
  • Resoluciones
  • RESOLUCIONES
  • Resoluciones
  • Resoluciones
  • resoluciones
  • resoluciones
  • resoluciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS