Resolución de Objetivos

23
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

description

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 - PowerPoint PPT Presentation

Transcript of 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