prolog

12
Prolog Def. Conjuntos Disjuntos.- Dos conjuntos A y B son disjuntos si A B = Def. Recursiva disjuntos([],_). disjuntos([X|Y],Z) :-not (pert(X,Z)),disjuntos(Y,Z). Def. Iterativa disjuntos_iter(X,Y) :- not( (pert(Z,X),pert(Z,Y))).

Upload: enya

Post on 22-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Prolog. Def . Recursiva d isjuntos([],_). d isjuntos([X|Y],Z) :- not ( pert (X,Z)),disjuntos(Y,Z). Def . Conjuntos Disjuntos.- Dos conjuntos A y B son disjuntos si A  B = . Def . Iterativa disjuntos_iter (X,Y) :- not ( ( pert (Z,X), pert (Z,Y))). Ejercicio. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Prolog

PrologDef. Conjuntos Disjuntos.- Dos conjuntos A y

B son disjuntos si A B =

Def. Recursivadisjuntos([],_).disjuntos([X|Y],Z) :-not (pert(X,Z)),disjuntos(Y,Z).

Def. Iterativadisjuntos_iter(X,Y) :-not( (pert(Z,X),pert(Z,Y))).

Page 2: Prolog

EjercicioDef. Subconjunto. Sean A y B dos conjuntos tal que cada elemento de A es también elemento de B. Entonces, se dice que:A es subconjunto de B, y se denota A B

Def. Recursivasubconjunto([],_).subconjunto([X|Y],Z):-pert(X,Z), subconjunto(Y,Z).

Def. Iterativasubconj_iter([],_).subconj_iter(X,Y):-not((pert(Z,X), not(pert(Z,Y)))).

Page 3: Prolog

Otra ver. de Subconjunto

subconjunto([],[]).

subconjunto([X|L1],[X|L2]):-subconjunto(L1,L2).

subconjunto(L1,[_|L2]):-subconjunto(L1,L2).

Page 4: Prolog

Combinatoria

?- combinacion([a,b,c],2,L).L = [a,b] ;L = [a,c] ;L = [b,c] ;false

Page 5: Prolog

Def. Combinatoriacombinacion(L1,N,L2):-combinacion_1(L1,N,L2).

combinacion_1(L1,N,L2):-subconjunto(L2,L1), length(L2,N).

combinacion(L1,N,L2):-combinacion_2(L1,N,L2).

combinacion_2(L1,N,L2):-length(L2,N),subconjunto(L2,L1).

Page 6: Prolog

Permutaciones

?- select(X,[a,b,c],L).X = a L = [b, c] ;X = b L = [a, c] ;X = c L = [a, b] ;false

?- select(a,L,[b,c]).L = [a, b, c] ;L = [b, a, c] ;L = [b, c, a] ;false

Page 7: Prolog

Implementaciones

permuta([],[]).permuta(L1,[X|L2]):-select(X,L1,L3),permuta(L3,L2).

Page 8: Prolog

Cuadrado Mágico

Enunciado: Colocar los números 1,2,3,4,5,6,7,8,9 en un cuadrado 3x3 de forma que todas las líneas (filas, columnas y diagonales) sumen igual.

Page 9: Prolog

cuadrado_1([A,B,C,D,E,F,G,H,I]) :-permutación([1,2,3,4,5,6,7,8,9],

[A,B,C,D,E,F,G,H,I]),A+B+C =:= 15, D+E+F =:= 15,G+H+I =:= 15, A+D+G =:= 15,B+E+H =:= 15, C+F+I =:= 15,A+E+I =:= 15, C+E+G =:= 15.

Implementación

Page 10: Prolog

SoluciónCuadrado Mágico

Page 11: Prolog

SoluciónCuadrado Mágico

Page 12: Prolog

Planeación

d(a,b).d(b,e).d(b,c).d(d,e).d(c,d).d(e,f).d(g,e).go(X,X,T).Go(X,Y,T)