0% encontró este documento útil (0 votos)
44 vistas9 páginas

Prolog 4

El documento habla sobre backtracking en Prolog. Explica que Prolog busca todas las soluciones a un objetivo probando todas las posibles derivaciones mediante un proceso de prueba y error. También presenta algunos ejemplos de código Prolog y ejercicios para practicar backtracking.

Cargado por

Luis B
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas9 páginas

Prolog 4

El documento habla sobre backtracking en Prolog. Explica que Prolog busca todas las soluciones a un objetivo probando todas las posibles derivaciones mediante un proceso de prueba y error. También presenta algunos ejemplos de código Prolog y ejercicios para practicar backtracking.

Cargado por

Luis B
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

4-backtracking.

pdf

SilvioB

Programación Declarativa: Lógica y Restricciones

3º Grado en Ingeniería Informática

Escuela Técnica Superior de Ingenieros Informáticos


Universidad Politécnica de Madrid

Reservados todos los derechos.


No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
' $

Backtracking

4.1 Backtracking
En este capı́tulo examinaremos en detalle cómo Prolog busca todas
las soluciones a un objetivo.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/* Programa 4.1 Backtracking */

predicates
hombre(symbol)
mujer(symbol)

Reservados todos los derechos.


padres(symbol,symbol,symbol)
hermana de(symbol,symbol)
clauses
hombre(federico).
hombre(juan).
mujer(alicia).
mujer(victoria).
padres(juan, alicia, federico).
padres(victoria, alicia, federico).
hermana de(X,Y) :-
mujer(X),
padres(X,Madre,Padre),
padres(Y,Madre,Padre).

————————————————————

goal: hermana de (victoria,juan)

& %

Compra Coins y descarga sin publicidad.


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

Prolog procede de la siguiente manera

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.

Reservados todos los derechos.


Suponer ahora que queremos saber si Victoria es la hermana de


alguien. La pregunta escrita en Prolog es

goal: hermana de(victoria,X)

Para contestar a esta pregunta, Prolog procede de la siguiente


manera

& %

Compra Coins y descarga sin publicidad.


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

Ejercicio 4.1 Se quiere organizar un torneo de tenis entre los


niños de 9 años en un club de tenis. Se pretende encontrar todas
las posibles parejas de jugadores de 9 años.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/* Programa 4.2 Un torneo de tenis */

domains
niño = symbol
edad = integer

Reservados todos los derechos.


predicates
jugador(niño,edad)
clauses
jugador(pedro,9).
jugador(pablo,10).
jugador(cristina,9).
jugador(susana,9).

——————————–

goal:

Escribe la pregunta adecuada e indica paso a paso cómo Prolog


busca todas las soluciones.

& %

Compra Coins y descarga sin publicidad.


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/* Ejercicio 4.3 */

clauses
a(X,Y):-
b(X),
c(Y).

Reservados todos los derechos.


a(X,Y):-
d(X),
b(Y).
b(1).
b(2).
c(1).
c(2).
d(3).

——————————————–

goal a(3,1)

goal a(X,Y)

& %

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

/* Ejercicio 4.4 */

clauses

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a(X):-
b(X,Y),
c(Y).
a(X):-
c(X).
b(1,2).

Reservados todos los derechos.


b(2,2).
b(3,3).
b(3,4)
c(2).
c(5).

——————————————–

goal a(1)

goal a(2)

goal a(3)

goal a(4)

& %

Compra Coins y descarga sin publicidad.


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

/* Ejercicio 4.5 */

clauses

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a(X,Y):-
b(X,Y).
a(X,Y):-
c(X,Z),
a(Z,Y).
b(1,2).

Reservados todos los derechos.


b(2,3).
c(1,2).
c(1,4)
c(2,4).
c(3,4).

——————————————–

goal a(1,3)

goal a(1,X)

goal a(2,X)

goal a(X,4)

& %

Compra Coins y descarga sin publicidad.


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451
' $

Backtracking

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
/* Ejercicio 4.6 */

clauses

hola(3).
hola(6).
hola(X):-

Reservados todos los derechos.


Y=X-1,
hola(Y),
write(Y).

——————————————–

goal hola(4)

goal hola(9)

goal hola(2+1)

& %

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1427451

También podría gustarte