Download - Resolución de Objetivos
Resolución de Objetivos
• Se recorren las reglas de arriba abajo y de izquierda a derecha
• Buscamos hechos o cabezas de reglas que unifiquen con la meta actual– Si es cabeza de regla, aplicamos la sustición a la parte
derecha y las agregamos como metas
• La búsqueda es DFS• Si una prueba falla volvemos al punto donde se
tomo la última decisión
1. mayores(X,[],[]).
2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).
3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Si es mgu de Bi y C
Regla de resolución
En mayores(X, L1, L) L1 son los elementos mayores a X de la lista L
mayores(3,G, [4,1,5])
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
mayores(3,G, [4,1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Unifica con 3)
Tip: Generar variables nuevas por cada nueva sustitución. Facilitamos la reconstrucción…
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1, mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5W4->[ ]
Z3->[5|Z4]
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 fallaBacktracking
al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 fallaBacktracking
al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Unifica con 3)
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5
W6->[ ]Z3->Z6
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 fallaBacktracking
al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
3>=5, mayores(3, Z6, [])
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5W6->[ ]Z3->Z6
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
3>=5, mayores(3, Z6, [])
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5
W6->[ ]Z3->Z6
3>=5 falla
Unifica con 3)
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
3>=5, mayores(3, Z6, [])
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5
W6->[ ]Z3->Z6
3>=5 falla
Mensaje1
Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X7,Z7,[Y7|W7]):-X7>=Y7,mayores(X7,Z7,W7)
X7->3Y7->4
W7->[1,5]G->Z7
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
3>=5, mayores(3, Z6, [])
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5
W6->[ ]Z3->Z6
3>=5 falla
Mensaje1
Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X7,Z7,[Y7|W7]):-X7>=Y7,mayores(X7,Z7,W7)
3>=4, mayores(3, Z7,[1,5])
X7->3Y7->4
W7->[1,5]G->Z7
mayores(3,G, [4,1,5])
3<4,mayores(3, Z1, [1,5])
X1->3Y1->4
W1->[1,5]G->[4|Z1]
Unifica con 2)mayores(X1,[Y1|Z1],[Y1|W1]):-X1<Y1,mayores(X1,Z1,W1).
1. mayores(X,[],[]).2. mayores(X,[Y|Z],[Y|W]):-X<Y,mayores(X,Z,W).3. mayores(X,Z,[Y|W]):-X>=Y,mayores(X,Z,W).
Dado que 3<4 se satisface
mayores(3, Z1, [1,5])
Unifica con 2)mayores(X2,[Y2|Z2],[Y2|W2]):-X2<Y2,mayores(X2,Z2,W2).
X2->3Y2->1
W2->[5]Z1->[1|Z2]
3<1 falla Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X3,Z3,[Y3|W3]):-X3>=Y3,mayores(X3,Z3,W3).
X3->3Y3->1
W3->[5]Z1->Z3
3>=4, mayores(3, Z3, [5])
mayores(3, Z3, [5])
3>=1 es cierto
Unifica con 2)mayores(X4,[Y4|Z4],[Y4|W4]):-X4<Y4,mayores(X4,Z4,W4).
X4->3Y4->5
W4->[ ]Z3->[5|Z4]
3<5,mayores(3, Z4, [])
mayores(3, Z4, [])
Unifica con 1)
mayores(X5,[ ], [ ]).Z4->[ ]X5->3
¿Cómo obtengo el valor de G?G->[4|Z1]Z1->Z3
Z3->[5|Z4]Z4->[ ]
G->[4,5]
Backtracking para buscar
otra respuesta
3>=5, mayores(3, Z6, [])
Unifica con 3)mayores(X6,Z6,[Y6|W6]):-X6>=Y6,mayores(X6,Z6,W6)
X6->3Y6->5
W6->[ ]Z3->Z6
3>=5 falla
Mensaje1
Backtracking al nodo donde hizo la última
decisión
Unifica con 3)mayores(X7,Z7,[Y7|W7]):-X7>=Y7,mayores(X7,Z7,W7)
3>=4, mayores(3, Z7,[1,5])
X7->3Y7->4
W7->[1,5]G->Z7
3>=4 falla