0% encontró este documento útil (0 votos)
52 vistas57 páginas

Ejercicios RPA

El documento presenta ejercicios resueltos sobre razonamiento y planificación automática, cubriendo temas como lógica de proposiciones, algoritmos de búsqueda (UCS y A*), y planificación jerárquica. Incluye ejemplos prácticos, explicaciones paso a paso y definiciones clave para facilitar la comprensión de los conceptos. Además, se abordan algoritmos específicos como Minimax y Expectiminimax, junto con sus aplicaciones en problemas de planificación.

Cargado por

Diego Fernando
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)
52 vistas57 páginas

Ejercicios RPA

El documento presenta ejercicios resueltos sobre razonamiento y planificación automática, cubriendo temas como lógica de proposiciones, algoritmos de búsqueda (UCS y A*), y planificación jerárquica. Incluye ejemplos prácticos, explicaciones paso a paso y definiciones clave para facilitar la comprensión de los conceptos. Además, se abordan algoritmos específicos como Minimax y Expectiminimax, junto con sus aplicaciones en problemas de planificación.

Cargado por

Diego Fernando
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

Ejercicios Resueltos: Examen de

Razonamiento y Planificación Automática


Basado en el PDF de exámenes
11 de marzo de 2025

Índice
1. Lógica de Proposiciones: Formalización 7
1.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Explicación Paso a Paso . . . . . . . . . . . . . . . . . . . . . 8

2. Lógica de Proposiciones: Tabla de Verdad 8


2.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Construcción de la Tabla de Verdad . . . . . . . . . . . . . . . 8
2.3. Explicación Paso a Paso . . . . . . . . . . . . . . . . . . . . . 8

3. Búsqueda: Algoritmo UCS (Dijkstra) 9


3.1. Ejemplo de Grafo . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Simulación Paso a Paso . . . . . . . . . . . . . . . . . . . . . . 9

4. Búsqueda: Algoritmo A* 10
4.1. Ejemplo con Heurística . . . . . . . . . . . . . . . . . . . . . . 10

5. Definiciones Clave 10

6. Ejemplo Tabular 11
6.1. Explicación del Ejemplo . . . . . . . . . . . . . . . . . . . . . 11

7. Fórmulas Clave 12

8. Conclusión 12

1
Razonamiento y Planificación Automática Ejercicios Resueltos

9. Algoritmo Minimax con Poda Alfa-Beta 12


9.1. Definiciones Clave . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.2. Resolución del Árbol Paso a Paso . . . . . . . . . . . . . . . . 13
9.2.1. Nivel Inferior (Nodos MAX) . . . . . . . . . . . . . . . 13
9.2.2. Nivel Medio (Nodos MIN) . . . . . . . . . . . . . . . . 14
9.2.3. Nivel Superior (Nodos MAX) . . . . . . . . . . . . . . 14
9.2.4. Raíz (Nodo MIN) . . . . . . . . . . . . . . . . . . . . . 14
9.3. Poda Alfa-Beta . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.4. Diagrama del Árbol con Poda . . . . . . . . . . . . . . . . . . 15

10.Epec Min-Max 15
10.1. Representación del Árbol . . . . . . . . . . . . . . . . . . . . . 15

11.Cálculo de valores en los nodos hoja 16

12.Cálculo de los nodos MIN 16

13.Cálculo de los nodos CHANCE 17

14.Cálculo de los nodos MAX 17

15.Cálculo del nodo raíz A 17

16.Decisión final 17
16.1. Simulación Paso a Paso . . . . . . . . . . . . . . . . . . . . . . 18

17.Interpretación de Código PDDL 18


17.1. Ejemplo: Acciones Ejecutables desde el Estado Inicial . . . . . 18
17.2. Estado Inicial (Ejemplo) . . . . . . . . . . . . . . . . . . . . . 18
17.3. Resolución Paso a Paso . . . . . . . . . . . . . . . . . . . . . . 19

18.Planificación HTN (Hierarchical Task Network) 19


18.1. Ejemplo: Dominio de Transporte . . . . . . . . . . . . . . . . 19
18.2. Procedimientos de Descomposición . . . . . . . . . . . . . . . 19
18.3. Explicación Paso a Paso . . . . . . . . . . . . . . . . . . . . . 20

19.Reparación de Planes en Multiagente 20


19.1. Ejemplo: Robots A y B . . . . . . . . . . . . . . . . . . . . . . 20
19.2. Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2
Razonamiento y Planificación Automática Ejercicios Resueltos

19.3. Resolución Paso a Paso . . . . . . . . . . . . . . . . . . . . . . 21

20.Definición de Fluents 21

21.Resolución del Ejercicio 22


21.1. Estado Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
21.2. Verificación de los Planes de los Agentes . . . . . . . . . . . . 22
21.3. Proceso de Reparación de Planes . . . . . . . . . . . . . . . . 22
21.4. Restricciones Temporales . . . . . . . . . . . . . . . . . . . . . 23

22.Algoritmo Minimax 23
22.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
22.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
22.3. Estructura del Árbol . . . . . . . . . . . . . . . . . . . . . . . 23
22.4. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 24
22.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

23.Algoritmo Expectiminimax 24
23.1. Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
23.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
23.3. Estructura del Árbol . . . . . . . . . . . . . . . . . . . . . . . 24
23.4. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 25
23.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

24.Diferencias Clave 25

25.Ejemplo Práctico 26

26.Conclusión 26

27.Ejercicio Expectiminimax 26
27.1. Estructura del Árbol . . . . . . . . . . . . . . . . . . . . . . . 26
27.2. Cálculo de Valores . . . . . . . . . . . . . . . . . . . . . . . . 27
27.2.1. Nodo D (CHANCE) . . . . . . . . . . . . . . . . . . . 27
27.2.2. Nodo B (MIN) . . . . . . . . . . . . . . . . . . . . . . 27
27.2.3. Nodo E (MIN) . . . . . . . . . . . . . . . . . . . . . . 27
27.2.4. Nodo G (MIN) . . . . . . . . . . . . . . . . . . . . . . 28
27.2.5. Nodo H (MIN) . . . . . . . . . . . . . . . . . . . . . . 28
27.2.6. Nodo F (MIN) . . . . . . . . . . . . . . . . . . . . . . 28

3
Razonamiento y Planificación Automática Ejercicios Resueltos

27.2.7. Nodo C (CHANCE) . . . . . . . . . . . . . . . . . . . 28


27.2.8. Nodo A (MAX) . . . . . . . . . . . . . . . . . . . . . . 28
27.3. Decisión y Camino Óptimo . . . . . . . . . . . . . . . . . . . . 29

28.Planificador con Encadenamiento hacia Adelante 29


28.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

29.Planificador con Encadenamiento hacia Atrás 30


29.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

30.Planificación basada en Estados 30


30.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

31.Planificación basada en Gráficos (GraphPlan) 31


31.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

32.Planificación Jerárquica (HTN) 31


32.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

33.Planificación Probabilística 32
33.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

34.Planificación con Restricción Temporal 32


34.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

35.Planificación Multiagente 32
35.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

36.EJERCICIOS PDDL 33
36.1. Caso 2 – Acciones Ejecutables en el Primer Paso . . . . . . . . 33
36.2. Caso 2 – Modificaciones para la Funcionalidad de Cocineros y
Comensales (PDDL 1.2) . . . . . . . . . . . . . . . . . . . . . 34
36.2.1. En el Dominio . . . . . . . . . . . . . . . . . . . . . . . 34
36.2.2. En el Problema . . . . . . . . . . . . . . . . . . . . . . 35
36.3. Caso 2 – Modificaciones para Diferenciar Ingredientes y Clases
de Bocadillos . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
36.3.1. En el Dominio . . . . . . . . . . . . . . . . . . . . . . . 36
36.3.2. En el Problema . . . . . . . . . . . . . . . . . . . . . . 37

4
Razonamiento y Planificación Automática Ejercicios Resueltos

37.Caso 1: Bocadillos con y sin salsa 37


37.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
37.2. Modificaciones en el Dominio . . . . . . . . . . . . . . . . . . 38
37.3. Modificaciones en el Problema . . . . . . . . . . . . . . . . . . 39

38.Caso 2: Personas alérgicas y tipos de pan 40


38.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
38.2. Modificaciones en el Dominio . . . . . . . . . . . . . . . . . . 40
38.3. Modificaciones en el Problema . . . . . . . . . . . . . . . . . . 41
38.4. Discusión: ¿Modificar hacer_bocadillo? . . . . . . . . . . . . 41

39.Caso 3: Implementación del Concepto de Sala 42


39.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
39.2. Acciones Consideradas en el Primer Paso . . . . . . . . . . . . 42
39.3. Modificaciones para Implementar “Sala” en PDDL 1.2 . . . . . 43
39.3.1. En el Dominio . . . . . . . . . . . . . . . . . . . . . . . 43
39.3.2. En el Problema . . . . . . . . . . . . . . . . . . . . . . 43
39.4. Diferencias entre Encadenamiento Hacia Delante y Encadena-
miento Hacia Atrás . . . . . . . . . . . . . . . . . . . . . . . . 43

40.Ejercicios Examen 44
40.1. Ejercicio 1: LProp24.2.1 . . . . . . . . . . . . . . . . . . . . . 44
40.2. Ejercicio 2: PL24_2_1 . . . . . . . . . . . . . . . . . . . . . . 46

41.A* y Heurística 47
41.1. Pregunta 1: Admisibilidad de la Heurística . . . . . . . . . . . 47
41.1.1. Otras Heurísticas Admisibles y Más Informadas . . . . 48
41.2. 1. Heurísticas Basadas en Distancias . . . . . . . . . . . . . . 48
41.3. 2. Heurísticas Basadas en Costos . . . . . . . . . . . . . . . . 48
41.4. 3. Heurísticas Admisibles y No Admisibles . . . . . . . . . . . 49
41.5. 4. Heurísticas Derivadas de Modelos . . . . . . . . . . . . . . . 49
41.6. Pregunta 2: Algoritmo A* - Primeras 5 Iteraciones . . . . . . . 49

42.Ejemplos de Planificación en Línea y Reparación de Planes 50


42.1. Ejemplo 1: Robo de un Banco con un Dron Autónomo . . . . 50
42.1.1. Formalización del Plan Inicial . . . . . . . . . . . . . . 50
42.1.2. Reparación del Plan . . . . . . . . . . . . . . . . . . . 50
42.2. Ejemplo 2: Misión de Rescate con Drones en Zona de Desastre 51

5
Razonamiento y Planificación Automática Ejercicios Resueltos

42.2.1. Formalización del Plan Inicial . . . . . . . . . . . . . . 51


42.2.2. Reparación del Plan . . . . . . . . . . . . . . . . . . . 51

43.Resolución paso a paso (representación tipo STRIPS) 51


43.1. Representación de los estados . . . . . . . . . . . . . . . . . . 52
43.2. Objetivos a verificar . . . . . . . . . . . . . . . . . . . . . . . 53
43.2.1. Objetivo G1 = {SOBRE(B,A), SOBRELMESA(A), ¬SOBRE(C,B)} 53
43.2.2. Objetivo G2 = {SOBRE(x, A), DESPEJADO(x), . . . } . . . . 54
43.2.3. Objetivo G3 = {SOBRE(x, A), DESPEJADO(x), . . . } . . . . 54
43.2.4. Objetivo G4 = {SOBRE(x, C), ¬SOBRE(. . . )} . . . . . . . 55
43.3. Resumen en tabla . . . . . . . . . . . . . . . . . . . . . . . . . 55

44.POP 55
44.1. Plan de Acciones . . . . . . . . . . . . . . . . . . . . . . . . . 56
44.2. Arcos Causales . . . . . . . . . . . . . . . . . . . . . . . . . . 56
44.3. Arcos Temporales . . . . . . . . . . . . . . . . . . . . . . . . . 57

6
Razonamiento y Planificación Automática Ejercicios Resueltos

1. Lógica de Proposiciones: Formalización

p∧q (Conjunción, ")


2

p∨q (Disyunción, .o")


¬p (Negación, "no")
p→q (Implicación, ïmplica")
p↔q (Doble Implicación, "si y solo si")
p⊕q (XOR, .o exclusivo")
⊤ (Verdadero)
⊥ (Falso)

1.1. Ejemplo
Considere la siguiente oración:

“Si me queda tiempo libre, entonces si no ocurre que haga buen


tiempo, entonces o iré de compras o veré la tele.”

Definimos las proposiciones:

P : Me queda tiempo libre.

Q: Hace buen tiempo.

R: Iré de compras.

T : Veré la tele.

La formalización propuesta es:

P → (¬Q → (R ∨ T ))

7
Razonamiento y Planificación Automática Ejercicios Resueltos

1.2. Explicación Paso a Paso


Paso 1: Identificamos la estructura condicional “Si . . . entonces . . .” que se tra-
duce en una implicación.

Paso 2: La primera condición es P (tiempo libre).

Paso 3: La consecuencia es otra implicación: “si no hace buen tiempo (¬Q),


entonces o iré de compras o veré la tele (R ∨ T )”.

Paso 4: Se anida la implicación interna dentro de la principal: P → (¬Q →


(R ∨ T )).

2. Lógica de Proposiciones: Tabla de Verdad


2.1. Ejemplo
Analicemos la fórmula:

¬(a ∧ b) → (¬a ∨ ¬b)

2.2. Construcción de la Tabla de Verdad


a b a∧b ¬(a ∧ b) ¬a ∨ ¬b ¬(a ∧ b) → (¬a ∨ ¬b)
1 1 1 0 0 1
1 0 0 1 1 1
0 1 0 1 1 1
0 0 0 1 1 1

2.3. Explicación Paso a Paso


Paso 1: Se calculan los valores de a ∧ b para cada combinación de a y b.

Paso 2: Se obtiene ¬(a ∧ b) invirtiendo los valores anteriores.

Paso 3: Se computa ¬a y ¬b para luego formar la disyunción ¬a ∨ ¬b.

Paso 4: Se evalúa la implicación ¬(a ∧ b) → (¬a ∨ ¬b), que solo es falsa cuando
el antecedente es verdadero y el consecuente es falso.

8
Razonamiento y Planificación Automática Ejercicios Resueltos

Paso 5: Se observa que en todas las combinaciones la implicación resulta ver-


dadera, por lo que la fórmula es una tautología.

Tipo Definición Ejemplo


Tautología Siempre verdadera en todas las combinaciones. p ∨ ¬p
Contradicción Siempre falsa en todas las combinaciones. p ∧ ¬p
Contingencia Algunas combinaciones son verdaderas y otras falsas. p→q

3. Búsqueda: Algoritmo UCS (Dijkstra)


3.1. Ejemplo de Grafo
Considere el siguiente grafo:

3
A B

5 2
4
D C

Queremos encontrar el camino óptimo desde A hasta C usando UCS.

3.2. Simulación Paso a Paso


Paso 1: Inicialización: La lista abierta contiene únicamente el nodo A con
costo g(A) = 0.

Paso 2: Expansión de A: Se generan:

Nodo B con costo 0 + 3 = 3.


Nodo D con costo 0 + 5 = 5.

Paso 3: Selección: Se escoge el nodo de menor costo: B (costo 3).

Paso 4: Expansión de B: Desde B se expande y se genera el nodo C, con costo


3 + 2 = 5.

Paso 5: Comparación: La lista abierta contiene ahora:

9
Razonamiento y Planificación Automática Ejercicios Resueltos

Nodo D (costo 5).


Nodo C (costo 5).

Se puede elegir el nodo C (por orden de llegada) y se concluye al llegar


al objetivo.

Paso 6: Conclusión: El camino óptimo es A → B → C con costo total 5.

4. Búsqueda: Algoritmo A*
4.1. Ejemplo con Heurística
g(n): Costo real acumulado desde el nodo inicial hasta el nodo n.

• Se calcula sumando los costos de todos los arcos recorridos desde


el nodo inicial hasta n.
• Ejemplo: Si el camino del nodo A a B tiene costo 3 y de B a C
costo 2, entonces g(C) = 3 + 2 = 5.

h(n): Estimación heurística del costo desde el nodo n hasta el objetivo.

• Debe ser admisible (nunca sobrestimar el costo real).


• Ejemplo: Si n está a 2 unidades del objetivo en línea recta, h(n) =
2.

f (n): Función de evaluación que prioriza nodos.

• Se define como:
f (n) = g(n) + h(n)
• El algoritmo expande siempre el nodo con el menor f (n).

Diferencias entre Expandir, Generar y Lista Abierta en A*

5. Definiciones Clave
Expandir un nodo: Seleccionar un nodo de la lista abierta, calcular
los valores g(n), h(n), y f (n) de sus sucesores, y moverlo a la lista
cerrada.

10
Razonamiento y Planificación Automática Ejercicios Resueltos

Generar un nodo: Crear nuevos nodos hijos al expandir un nodo


actual. Estos se añaden a la lista abierta.

Lista Abierta: Contiene nodos generados pero no expandidos, orde-


nados por f (n). El nodo con menor f (n) se expande primero.

Lista Cerrada: Almacena nodos ya expandidos para evitar reproce-


samiento.

6. Ejemplo Tabular
Considere un grafo con nodos A → B → D → G y A → C → D → G:

Iteración Nodo Expandido Nodos Generados ListaLista Cerrada


Abier-
ta
(f(n))
1 A B (f = 5), C (f = 5) B(5), A
C(5)
2 B D (f = 6) C(5), A, B
D(6)
3 C D (f = 5) D(5) A, B, C
4 D G (f = 8) G(8) A, B, C, D
5 G - Vacía Todos

6.1. Explicación del Ejemplo


Iteración 1: Se expande A, generando B y C. Ambos se añaden a la
lista abierta.

Iteración 2: Se expande B, generando D. La lista abierta prioriza C


(menor f (n)).

Iteración 3: Al expandir C, se encuentra un camino más corto a D,


actualizando su f (n) de 6 a 5.

Iteración 4: Se expande D, generando el nodo objetivo G.

11
Razonamiento y Planificación Automática Ejercicios Resueltos

Iteración 5: Se alcanza G, finalizando la búsqueda.

7. Fórmulas Clave
Función de evaluación en A*:

f (n) = g(n) + h(n)

g(n): Costo acumulado desde el nodo inicial.

h(n): Heurística admisible (h(n) ≤ h∗ (n)).

8. Conclusión
La lista abierta gestiona nodos pendientes de expansión.

La expansión analiza sucesores y actualiza costos.

La generación añade nuevos nodos para exploración futura.

La optimalidad de A* depende de una heurística admisible.

Usamos el mismo grafo del ejemplo anterior, añadiendo los siguientes valores
heurísticos:
Nodo h(n)
A 5
B 3
C 0
D 2

9. Algoritmo Minimax con Poda Alfa-Beta


El algoritmo Minimax permite tomar decisiones óptimas en juegos de dos
jugadores (MAX y MIN), donde MAX busca maximizar su puntuación y
MIN minimizarla. La poda Alfa-Beta optimiza este proceso reduciendo el
número de nodos evaluados.

12
Razonamiento y Planificación Automática Ejercicios Resueltos

9.1. Definiciones Clave


Alfa (α): Mejor valor (más alto) que MAX puede garantizar en el
camino actual.

Beta (β): Mejor valor (más bajo) que MIN puede garantizar en el
camino actual.

9.2. Resolución del Árbol Paso a Paso


9.2.1. Nivel Inferior (Nodos MAX)
Nodo 1: máx(5, 6) = 6

Nodo 2: máx(7, 4) = 7

Nodo 3: máx(5, 3) = 5

Nodo 4: máx(3, 6) = 6

Nodo 5: máx(6, 7) = 7

Nodo 6: máx(5, 9) = 9

Nodo 7: máx(8, 6) = 8

Nodo 8: máx(9, 8) = 9

Nodo 9: máx(6, 6) = 6

13
Razonamiento y Planificación Automática Ejercicios Resueltos

9.2.2. Nivel Medio (Nodos MIN)


Nodo 1: mı́n(6, 7) = 6

Nodo 2: mı́n(5, 6) = 5

Nodo 3: mı́n(7, 9) = 7

Nodo 4: mı́n(8, 9) = 8

Nodo 5: mı́n(6, 6) = 6

9.2.3. Nivel Superior (Nodos MAX)


Nodo 1: máx(6, 5) = 6

Nodo 2: máx(7, 8) = 8

Nodo 3: máx(6, 6) = 6

9.2.4. Raíz (Nodo MIN)

mı́n(6, 8, 6) = 6

9.3. Poda Alfa-Beta


Durante la búsqueda, se utilizan α y β para eliminar ramas innecesarias:

Poda Alfa: Si un nodo MIN tiene un valor ≤ α, se poda.


Ejemplo: Si MIN encuentra un valor peor que α, MAX ignorará esa
rama.

14
Razonamiento y Planificación Automática Ejercicios Resueltos

Poda Beta: Si un nodo MAX tiene un valor ≥ β, se poda.


Ejemplo: Si MAX encuentra un valor mejor que β, MIN ignorará esa
rama.

9.4. Diagrama del Árbol con Poda

Figura 1: Árbol Minimax con Poda Alfa-Beta. Las ramas grises muestran
nodos podados.

Nota: La poda Alfa-Beta no afecta el resultado final, pero reduce sig-


nificativamente el espacio de búsqueda. Para que funcione, el árbol debe
explorarse en orden (primero las ramas más prometedoras).

10. Epec Min-Max


El algoritmo expectiminimax es una extensión del minimax que maneja
nodos de tipo CHANCE, los cuales requieren el cálculo de un valor esperado.
En este ejercicio, aplicaremos expectiminimax para calcular los valores de
cada nodo y determinar la mejor decisión en A.

10.1. Representación del Árbol


A continuación, representamos el árbol de decisión:

15
Razonamiento y Planificación Automática Ejercicios Resueltos

Figura 2: Árbol de decisión del problema

11. Cálculo de valores en los nodos hoja


Los valores de los nodos terminales ya están dados en el árbol:
Hojas de D: 12, 2

Hojas de G: 7, 5

Hojas de H: 10, 2

Hojas de otro nodo MIN: 0, 8

Hojas de otro nodo MIN: -5, J

12. Cálculo de los nodos MIN


Los nodos MIN toman el mínimo de sus nodos hijos:
Nodo D: mı́n(12, 2) = 2

Nodo G: mı́n(7, 5) = 5

Nodo H: mı́n(10, 2) = 2

16
Razonamiento y Planificación Automática Ejercicios Resueltos

Otro nodo MIN: mı́n(0, 8) = 0

Otro nodo MIN: mı́n(−5, J) = −5

13. Cálculo de los nodos CHANCE


Para calcular el valor de un nodo CHANCE, usamos el valor esperado:

Nodo D: 0,1 × 12 + 0,9 × 2 = 1,2 + 1,8 = 3

Nodo E: 0,5 × 7 + 0,5 × 5 = 3,5 + 2,5 = 4

Nodo H: 0,5 × 10 + 0,5 × 2 = 5 + 1 = 3

Nodo F: 0,5 × (−5) + 0,5 × J = −2,5 + 0,5J

14. Cálculo de los nodos MAX


Los nodos MAX eligen el máximo de sus nodos hijos:

Nodo B: máx(3, 8) = 8

Nodo C: máx(4, 3) = 4

15. Cálculo del nodo raíz A


Finalmente, el nodo A, que es un nodo MAX, elegirá el máximo entre B
y C:
A = máx(8, 4) = 8 (1)

16. Decisión final


Dado que el nodo A toma el máximo entre sus hijos, la mejor decisión es
elegir el nodo B.

17
Razonamiento y Planificación Automática Ejercicios Resueltos

16.1. Simulación Paso a Paso


Paso 1: Inicialización: El nodo A tiene g(A) = 0 y f (A) = g(A) + h(A) =
0 + 5 = 5. La lista abierta inicia con A.
Paso 2: Expansión de A: Se generan:
Nodo B: g(B) = 0 + 3 = 3 y f (B) = 3 + 3 = 6.
Nodo D: g(D) = 0 + 5 = 5 y f (D) = 5 + 2 = 7.
Paso 3: Selección: Se expande el nodo B (menor f = 6).
Paso 4: Expansión de B: Desde B se genera el nodo C con g(C) = 3 + 2 = 5
y f (C) = 5 + 0 = 5.
Paso 5: Actualización: La lista abierta ahora contiene:
Nodo C (f=5).
Nodo D (f=7).
Paso 6: Selección y Objetivo: Se elige el nodo C (f=5) y al llegar al objetivo,
se concluye que el camino óptimo es A → B → C con costo total 5.

17. Interpretación de Código PDDL


17.1. Ejemplo: Acciones Ejecutables desde el Estado Ini-
cial
Suponga un dominio de rovers donde se definen las siguientes acciones:
navegar: Mueve un rover de un punto de referencia a otro.
cargar-base: Permite que el rover cargue una base si está en el mismo
punto.

17.2. Estado Inicial (Ejemplo)


El rover se encuentra en el punto pr0.
Una base se sitúa en pr0.
Existe un camino que conecta pr0 con pr1.

18
Razonamiento y Planificación Automática Ejercicios Resueltos

17.3. Resolución Paso a Paso


Paso 1: Se analiza el estado inicial: El rover y la base están en pr0.

Paso 2: La acción cargar-base es ejecutable, ya que el rover se encuentra junto


a la base.

Paso 3: La acción navegar es ejecutable si se quiere mover el rover a otro punto


(por ejemplo, pr1).

Paso 4: Concluimos que, en el primer paso, las acciones potenciales son:

navegar(rover, pr0, pr1) y cargar-base(rover, base)

18. Planificación HTN (Hierarchical Task Net-


work)
18.1. Ejemplo: Dominio de Transporte
Definimos la tarea general:

mover_entre_ciudades(destino1, destino2)

La cual se puede descomponer en dos procedimientos según el tipo de cone-


xión entre las ciudades.

18.2. Procedimientos de Descomposición


Procedimiento 1: Si existe una carretera secundaria entre destino1 y
destino2:

1. Ejecutar la acción M1, que mueve entre ciudades conectadas por


carretera secundaria.

Procedimiento 2: Si existe autopista entre destino1 y destino2:

1. Ejecutar la acción M2, que mueve entre ciudades conectadas por


autopista.

19
Razonamiento y Planificación Automática Ejercicios Resueltos

18.3. Explicación Paso a Paso


Paso 1: Se define la tarea global mover_entre_ciudades.

Paso 2: Se identifican dos métodos de descomposición según el tipo de carretera.

Paso 3: En función de la información del dominio (por ejemplo, si se conoce que


la conexión es por autopista o carretera secundaria), se elige el método
adecuado.

Paso 4: Se procede a ejecutar la acción atómica correspondiente (M1 o M2) para


completar la tarea.

19. Reparación de Planes en Multiagente


19.1. Ejemplo: Robots A y B
Suponga el siguiente escenario:

Fluent inicial: f 2.

Acciones para el Robot A:

• a1: f 2 → f 7.
• a2: f 2 → f 3.
• a3: f 7 → f 5.

Acciones para el Robot B:

• a4: f 2 ∧ f 3 → f 4.
• a5: f 4 → f 6.
• a6: f 2 → f 1.

Plan original:

• Robot A: {a1, a3}.


• Robot B: {a4, a5}.

20
Razonamiento y Planificación Automática Ejercicios Resueltos

19.2. Problema
Dado que inicialmente solo se dispone de f 2, el plan de B no es ejecutable
porque a4 requiere f 3.

19.3. Resolución Paso a Paso


Paso 1: Análisis del Plan A:

a1 convierte f 2 en f 7.
a3 utiliza f 7 para generar f 5.

Paso 2: Problema en el Plan B:

a4 requiere f 2 ∧ f 3, pero solo se tiene f 2.

Paso 3: Solución: Incorporar la acción a2 en el plan de A para obtener f 3.

Paso 4: Plan Reparado:

Robot A: {a1, a2, a3} (genera f 7 y f 3, luego f 5).


Robot B: {a4, a5} (ahora se puede ejecutar a4 con f 2 ∧ f 3 y luego
a5 para obtener f 6).

Paso 5: Conclusión: Con la adición de a2, ambos robots pueden completar


sus planes y alcanzar el objetivo f 5 ∧ f 6.

20. Definición de Fluents


En planificación en inteligencia artificial, un fluent representa una con-
dición o estado que puede cambiar debido a la ejecución de acciones. Los
fluents pueden ser verdaderos (⊤) o falsos (⊥) y determinan el estado del
mundo en cada momento. Por ejemplo, si el fluent f7 es verdadero al inicio,
significa que en el estado inicial la condición representada por f7 se cumple.

21
Razonamiento y Planificación Automática Ejercicios Resueltos

21. Resolución del Ejercicio


21.1. Estado Inicial
Se nos indica que el único fluent disponible al inicio es f7 . Esto significa
que solo se pueden ejecutar acciones cuya precondición sea f7 .

21.2. Verificación de los Planes de los Agentes


Plan de A: { a1 , a3 }

a1 : f7 → f6 (se puede ejecutar porque f7 está disponible).

a3 : f6 → f5 (se ejecuta después de a1 , ya que a1 genera f6 ).

Conclusión: ✓ El plan de A se ejecuta completamente.

Plan de B: { a5 , a6 }

a5 : f7 ∧ f3 → f4 (no puede ejecutarse porque f3 no está disponible).

a6 : f4 → f2 (no puede ejecutarse porque f4 no se ha generado aún).

Conclusión: × El plan de B no se ejecuta completamente.

Plan de C: { a8 , a7 }

a8 : f2 ∧ f6 → f8 ∧ f9 ∧ ¬f5 (no puede ejecutarse porque f2 no está


disponible).

a7 : f8 → f10 (no puede ejecutarse porque f8 no se ha generado).

Conclusión: × El plan de C no se ejecuta completamente.

21.3. Proceso de Reparación de Planes


Dado que solo A ejecuta su plan completamente, es necesario modificar
los planes de B y C para alcanzar el objetivo f5 ∧ f2 ∧ f10 .

B necesita f3 para ejecutar a5 . Podemos agregar a2 : f7 → f3 antes de


a5 .

22
Razonamiento y Planificación Automática Ejercicios Resueltos

C necesita f2 y f6 para ejecutar a8 . f6 ya lo obtiene A, pero f2 aún no


está generado. Como B genera f2 con a6 , C debe esperar hasta que B
termine a6 antes de ejecutar a8 .
Nuevo plan corregido:
A: { a1 , a3 } (sin cambios).
B: { a2 , a5 , a6 } (añadiendo a2 para habilitar a5 ).
C: { a8 , a7 }, pero debe esperar a que B ejecute a6 para que f2 esté
disponible.

21.4. Restricciones Temporales


C no puede ejecutar a8 antes de que B complete a6 .
B no puede ejecutar a5 antes de que se ejecute a2 .
Así, el plan corregido sigue un orden en el que se generan primero los
fluents necesarios antes de ejecutar acciones que los requieran.

22. Algoritmo Minimax


22.1. Contexto
Juegos de dos jugadores con información perfecta (por ejemplo, ajedrez
o damas).

22.2. Objetivo
Encontrar la mejor estrategia asumiendo que ambos jugadores actúan de
forma óptima.

22.3. Estructura del Árbol


• Nodos MAX: Representan los turnos del jugador que maximiza su
utilidad.
• Nodos MIN: Representan los turnos del oponente que minimiza la
utilidad de MAX.

23
Razonamiento y Planificación Automática Ejercicios Resueltos

22.4. Funcionamiento
• Se alternan niveles de maximización (jugador) y minimización (opo-
nente).

• Se propagan valores desde las hojas hacia la raíz, eligiendo el máximo


en nodos MAX y el mínimo en nodos MIN.

22.5. Ejemplo
En ajedrez, el jugador MAX selecciona el movimiento que maximiza sus
posibilidades de ganar, asumiendo que el oponente (MIN) responderá con el
movimiento que le resulte menos favorable a MAX.

23. Algoritmo Expectiminimax


23.1. Contexto
Juegos con elementos aleatorios o incertidumbre, como backgammon, pó-
ker o juegos con dados.

23.2. Objetivo
Incorporar nodos de azar donde los resultados dependen de probabilida-
des.

23.3. Estructura del Árbol


• Nodos MAX: Turnos del jugador (maximiza la utilidad).

• Nodos MIN: Turnos del oponente (minimiza la utilidad).

• Nodos CHANCE: Representan eventos aleatorios (por ejemplo, lan-


zar dados o barajar cartas).

24
Razonamiento y Planificación Automática Ejercicios Resueltos

23.4. Funcionamiento
En los nodos CHANCE se calcula el valor esperado de los hijos, ponde-
rando cada resultado por su probabilidad. La fórmula es:
X
V = P (i) · V (i)
i

donde P (i) es la probabilidad del resultado i y V (i) es su valor.

23.5. Ejemplo
En backgammon, al lanzar los dados, el jugador calcula el valor espe-
rado de cada movimiento posible según las probabilidades de los diferentes
resultados.

24. Diferencias Clave


Característica Minimax
Entorno Determinista (sin azar)
Nodos en el árbol Solo MAX y MIN
Cálculo en nodos Máximo o mínimo
Complejidad Menor (sin ramificaciones por azar)
Uso de Poda Alfa-Beta Efectiva
Ejemplos de aplicación Ajedrez, damas

Característica Expectiminimax
Entorno Incluye incertidumbre o aleatoriedad
Nodos en el árbol MAX, MIN y CHANCE
Cálculo en nodos Valor esperado (promedio ponderado)
Complejidad Mayor (más nodos por eventos aleatorios)
Uso de Poda Alfa-Beta Limitada (nodos CHANCE no se pueden podar fácilmente)
Ejemplos de aplicación Backgammon, póker, juegos con dados

25
Razonamiento y Planificación Automática Ejercicios Resueltos

25. Ejemplo Práctico


Situación: Juego con un evento aleatorio (por ejemplo, lanzar un dado
para mover una ficha).

• Minimax: Ignoraría el dado y asumiría un movimiento fijo, lo que


llevaría a decisiones subóptimas.

• Expectiminimax: Calcularía el valor esperado de cada posible resul-


tado del dado. Por ejemplo, si un dado tiene 50 % de probabilidad de
dar 1 o 2:
V = 0,5 · V (mover 1) + 0,5 · V (mover 2)

26. Conclusión
• Minimax es ideal para juegos deterministas donde todos los movi-
mientos son predecibles.

• Expectiminimax se usa en entornos estocásticos (con azar), incorpo-


rando nodos CHANCE para calcular valores esperados.

• La elección del algoritmo depende de si el juego incluye elementos alea-


torios que afecten directamente el resultado.

27. Ejercicio Expectiminimax


27.1. Estructura del Árbol
• Nivel 0: A (Nodo MAX)

• Conexión 1 (0.4): B (Nodo MIN)


◦ Conexión 1 (0.1): D (Nodo CHANCE)
⋄ Hoja 1: 12
⋄ Hoja 2: 2
◦ Conexión 2 (0.9): 8 (Nodo MIN) (ya calculado)
• Conexión 2 (0.6): C (Nodo CHANCE)
◦ Conexión 1 (0.2): E (Nodo MIN)

26
Razonamiento y Planificación Automática Ejercicios Resueltos

⋄ Hoja 1: 7
⋄ Hoja 2: 5
◦ Conexión 2 (p23 ): G (Nodo MIN)
⋄ Hoja 1: 0
⋄ Hoja 2: 8
◦ Conexión 3 (p24 ): H (Nodo MIN)
⋄ Hoja 1: 10
⋄ Hoja 2: 2
◦ Conexión 4 (p14 ): F (Nodo MIN)
⋄ Hoja 1: -5
⋄ Hoja 2: J
Nota: En el nodo C, la suma de probabilidades es:
0,2 + p23 + p24 + p14 = 1 ⇒ p23 + p24 + p14 = 0,8.

27.2. Cálculo de Valores


27.2.1. Nodo D (CHANCE)

Suponiendo probabilidades iguales para ambas hojas (0.5 cada una):


Valor(D) = 0,5 × 12 + 0,5 × 2 = 7.

27.2.2. Nodo B (MIN)

B tiene dos ramas:


Rama 1: Valor(D) = 7, Rama 2: 8.
Como es nodo MIN:
Valor(B) = mı́n(7, 8) = 7.

27.2.3. Nodo E (MIN)

Con hojas 7 y 5:
Valor(E) = mı́n(7, 5) = 5.

27
Razonamiento y Planificación Automática Ejercicios Resueltos

27.2.4. Nodo G (MIN)

Con hojas 0 y 8:
Valor(G) = mı́n(0, 8) = 0.

27.2.5. Nodo H (MIN)

Con hojas 10 y 2:

Valor(H) = mı́n(10, 2) = 2.

27.2.6. Nodo F (MIN)

Con hojas -5 y J:
Valor(F ) = mı́n(−5, J).
Normalmente se asume que J > −5, por lo que se tomaría −5.

27.2.7. Nodo C (CHANCE)

C tiene cuatro ramas:

Valor(C) = 0,2·Valor(E)+p23 ·Valor(G)+p24 ·Valor(H)+p14 ·Valor(F ).

Sustituyendo:

Valor(C) = 0,2 × 5 + p23 × 0 + p24 × 2 + p14 × (−5) = 1 + 2p24 − 5p14 .

27.2.8. Nodo A (MAX)

A es nodo MAX y tiene dos hijos:


   
Valor(A) = máx Valor(B), Valor(C) = máx 7, 1 + 2p24 − 5p14 .

28
Razonamiento y Planificación Automática Ejercicios Resueltos

27.3. Decisión y Camino Óptimo


La decisión en A dependerá de la comparación:

7 vs. 1 + 2p24 − 5p14 .

Bajo supuestos razonables (por ejemplo, asumiendo que p14 > 0 y que
p23 , p24 y p14 se distribuyen de forma que 1 + 2p24 − 5p14 < 7), se opta
por la rama hacia B.

• En B (MIN), se evalúan sus dos ramas: una conduce a D (valor


7) y la otra tiene valor 8. Como MIN elige el mínimo, B opta por
la rama hacia D.
• En D (CHANCE), se producen dos posibles resultados: 12 o 2
(suponiendo probabilidades 0.5 cada uno), con valor esperado 7.

Por lo tanto, la decisión óptima en A es elegir la rama que


conduce a B, y el camino resultante es:

A → B → D,

con D ofreciendo, de forma aleatoria, el resultado 12 o 2.

28. Planificador con Encadenamiento hacia


Adelante
Un planificador con encadenamiento hacia adelante parte del estado
inicial y aplica acciones hasta alcanzar el estado objetivo. Se basa en la
exploración de todas las acciones posibles desde un punto de partida,
construyendo la solución paso a paso.

28.1. Ejemplo
• Estado inicial: Un robot está en la posición A.
• Acciones disponibles: Moverse a B, recoger un objeto.
• Objetivo: Llevar el objeto a C.

29
Razonamiento y Planificación Automática Ejercicios Resueltos

• Plan:
1. Moverse a B.
2. Recoger el objeto.
3. Moverse a C.
4. Dejar el objeto.

29. Planificador con Encadenamiento hacia


Atrás
Este tipo de planificador trabaja desde la meta y busca acciones que
puedan generarla. En lugar de avanzar desde el estado inicial, identifica
los pasos previos necesarios para llegar a la meta y retrocede hasta
encontrar un punto de partida válido.

29.1. Ejemplo
• Meta: Un vaso con agua en la mesa.
• Acciones posibles:
1. Poner el vaso en la mesa (requiere que el vaso esté en la mano).
2. Agarrar el vaso (requiere que el vaso esté en la cocina).
3. Ir a la cocina y tomar el vaso.
• Se parte desde la meta y se buscan las condiciones previas nece-
sarias para alcanzarla.

30. Planificación basada en Estados


Este método explora los estados posibles utilizando algoritmos de bús-
queda como amplitud o profundidad. Se construye un árbol de bús-
queda donde cada nodo representa un estado alcanzable y se elige el
camino más eficiente.

30
Razonamiento y Planificación Automática Ejercicios Resueltos

30.1. Ejemplo
• Estado inicial: Un coche en un estacionamiento.
• Objetivo: Llegar a casa.
• Posibles estados intermedios: Salir del estacionamiento, tomar la
autopista, llegar a casa.
• Se evalúan diferentes rutas y se elige la mejor opción.

31. Planificación basada en Gráficos (Graph-


Plan)
Utiliza un grafo de planificación para optimizar la búsqueda de solu-
ciones. Se generan capas de estados y acciones, permitiendo encontrar
planes de manera más estructurada y eficiente.

31.1. Ejemplo
• Un robot necesita encender una luz.
• Acciones: Encontrar el interruptor, presionar el botón.
• Se representa como un grafo con nodos de estados y acciones,
buscando el camino más corto.

32. Planificación Jerárquica (HTN)


Divide el problema en subtareas más pequeñas y manejables. Se en-
foca en descomponer una tarea general en acciones más concretas y
ordenadas.

32.1. Ejemplo
• Tarea principal: Organizar una cena.
• Subtareas: Comprar ingredientes, cocinar, poner la mesa.

31
Razonamiento y Planificación Automática Ejercicios Resueltos

• Cada subtarea se puede planificar por separado y combinar en un


plan general.

33. Planificación Probabilística


Se usa cuando hay incertidumbre en el resultado de las acciones. Consi-
dera diferentes probabilidades para cada acción y elige la mejor opción
considerando el riesgo.

33.1. Ejemplo
• Un robot quiere cruzar la calle.
• Posibles escenarios: El semáforo está en rojo o verde.
• El robot calcula la mejor acción considerando probabilidades de
éxito y peligro.

34. Planificación con Restricción Temporal


Considera la duración de las acciones y restricciones de tiempo. Es útil
en problemas donde las acciones deben ejecutarse en un orden específico
dentro de un plazo determinado.

34.1. Ejemplo
• Un repartidor tiene que entregar paquetes en 3 horas.
• Debe planificar la ruta considerando tiempos de tráfico y paradas
para cumplir con el plazo.

35. Planificación Multiagente


Involucra múltiples agentes que deben coordinarse para lograr un obje-
tivo común. Se requiere comunicación y planificación compartida entre
ellos.

32
Razonamiento y Planificación Automática Ejercicios Resueltos

35.1. Ejemplo
• Varios drones deben explorar una zona.
• Se dividen la zona para optimizar el tiempo y evitar colisiones.
• Se coordinan para cubrir el área de manera eficiente.

36. EJERCICIOS PDDL


A continuación se presentan las respuestas reformuladas para los dis-
tintos casos del examen, junto con una discusión sobre la diferencia
entre encadenamiento hacia delante y encadenamiento hacia atrás.

36.1. Caso 2 – Acciones Ejecutables en el Primer


Paso
Para un planificador que opera mediante encadenamiento hacia de-
lante, se evalúan las acciones cuyas precondiciones se satisfacen en el
estado inicial.

• Acción hacer_bocadillo:
◦ Parámetros: (?nb – bocadillo, ?b – porción-pan, ?r – porción-
relleno, ?k – cocina).
◦ Precondiciones: Se requiere que (en ?b ?k), (en ?r ?k) y que
exista el hecho (nombre ?nb) para el bocadillo.
◦ Estado inicial: Suponiendo que los ingredientes y los nom-
bres se encuentran en la cocina, la acción es ejecutable.
• Acción mover_bandeja:
◦ Precondiciones: Que la bandeja esté en un lugar (por ejem-
plo, la cocina) y que exista una relación de adyacencia con
otro lugar.
◦ Estado inicial: Si la bandeja se encuentra en la cocina y se
dispone de la adyacencia, la acción es ejecutable.

33
Razonamiento y Planificación Automática Ejercicios Resueltos

• Las demás acciones (por ejemplo, poner_en_bandeja o servir_comida)


no son ejecutables inicialmente, ya que dependen de hechos o pro-
ductos que se generan tras la ejecución de las acciones anteriores.

Conclusión: En el primer paso, las acciones potencialmente ejecuta-


bles son hacer_bocadillo y mover_bandeja.

36.2. Caso 2 – Modificaciones para la Funcionali-


dad de Cocineros y Comensales (PDDL 1.2)
Para incorporar la diferenciación entre cocineros y comensales en el
dominio, se proponen las siguientes modificaciones:

36.2.1. En el Dominio

• Tipos: Definir subtipos en la sección :types:

(:types persona cocinero comensal - persona)

• Predicados: Modificar y añadir predicados para reflejar roles:


(:predicates
(en ?obj - ubicable ?l - lugar)
(en-bandeja ?nc - bocadillo ?t - bandeja)
(esperando ?p - comensal ?l - lugar)
(cocinando ?p - cocinero ?k - cocina)
(nombre ?nc - bocadillo)
(adyacente ?l1 ?l2 - lugar)
)

• Acción hacer_bocadillo: Incluir el parámetro del cocinero y la


condición de que éste esté en la cocina:
(:action hacer_bocadillo
:parameters (?nb - bocadillo ?b - porcion-pan ?r - porcion-relleno ?k -
:precondition (and (en ?b ?k) (en ?r ?k) (nombre ?nb) (cocinando ?p ?k)
:effect (and
(not (en ?b ?k)) (not (en ?r ?k))

34
Razonamiento y Planificación Automática Ejercicios Resueltos

(en ?nb ?k)


(not (nombre ?nb))
)
)

• Acción mover_cocinero: Definir una acción para desplazar a los


cocineros:
(:action mover_cocinero
:parameters (?p - cocinero ?l1 ?l2 - lugar)
:precondition (and (cocinando ?p ?l1) (adyacente ?l1 ?l2))
:effect (and (not (cocinando ?p ?l1)) (cocinando ?p ?l2))
)

36.2.2. En el Problema

• Objetos: Diferenciar entre comensales y cocineros:


(:objects
persona1 persona2 persona3 - comensal
persona4 persona5 - cocinero
)

• Estado Inicial: Incluir hechos que indiquen que los cocineros se


encuentran en la cocina:
(:init
(cocinando persona4 cocina1)
(cocinando persona5 cocina1)
...
)

• Objetivo: Ajustar el objetivo de forma acorde a la demanda de


los comensales, por ejemplo, asegurar que se sirva la comida a las
personas correspondientes.

35
Razonamiento y Planificación Automática Ejercicios Resueltos

36.3. Caso 2 – Modificaciones para Diferenciar In-


gredientes y Clases de Bocadillos
Para implementar la funcionalidad en la que se distinguen dos tipos de
ingredientes (relleno y salsa) y dos clases de bocadillos (con solo relleno
o con relleno y salsa), se sugieren las siguientes modificaciones:

36.3.1. En el Dominio

• Tipos y Predicados: Añadir un tipo para ingredientes:

(:types ingrediente - object)

y predicados para distinguirlos, por ejemplo:


(es-relleno ?i - ingrediente)
(es-salsa ?i - ingrediente)

Además, se puede definir un predicado para clasificar el bocadillo:


(clase-bocadillo ?b - bocadillo ?clase - tipo)

donde ?clase podría ser solo-relleno o relleno-y-salsa.


• Acciones de Preparación: Se pueden definir dos acciones dife-
renciadas:
• hacer_bocadillo_relleno: Requiere que el pan y el relleno
estén en la cocina, y que el bocadillo esté clasificado como
solo-relleno.
• hacer_bocadillo_relleno_salsa: Requiere además la pre-
sencia de la salsa, y que el bocadillo esté clasificado como
relleno-y-salsa.
En ambos casos se verifica la presencia de un cocinero en la cocina
mediante el predicado (cocinando ?p ?k).

36
Razonamiento y Planificación Automática Ejercicios Resueltos

36.3.2. En el Problema

• Objetos: Incluir los ingredientes, por ejemplo:


(:objects
porcion-pan1 - porcion-pan
porcion-relleno1 - porcion-relleno
porcion-salsa1 - porcion-salsa
)

• Estado Inicial: Especificar que todos los ingredientes se encuen-


tran en la cocina:
(en porcion-pan1 cocina1)
(en porcion-relleno1 cocina1)
(en porcion-salsa1 cocina1)

• Clasificación y Demanda: Asignar la clase a cada bocadillo:


(clase-bocadillo bocadillo1 solo-relleno)
(clase-bocadillo bocadillo2 relleno-y-salsa)

Además, definir hechos que indiquen la demanda de cada comen-


sal:
(demanda comensal1 solo-relleno)
(demanda comensal2 relleno-y-salsa)

37. Caso 1: Bocadillos con y sin salsa

37.1. Objetivo
Permitir la preparación y el servicio de dos clases de bocadillos:

• Bocadillos de solo relleno.


• Bocadillos de relleno y salsa.

37
Razonamiento y Planificación Automática Ejercicios Resueltos

Cada comensal demanda un tipo específico, y el planificador debe fa-


bricar y servir el bocadillo adecuado.

37.2. Modificaciones en el Dominio


Se realizan los siguientes cambios:

• Definir el nuevo tipo porcion-salsa.


• Introducir el tipo tipo-bocadillo y declarar dos constantes: solo-relleno
y relleno-salsa.
• Agregar el predicado clase-bocadillo para asociar cada bocadi-
llo a una clase.
• Añadir el predicado demanda para indicar qué tipo de bocadillo
requiere cada comensal.
• Crear dos acciones: hacer_bocadillo_solo_relleno y hacer_bocadillo_con_salsa.
; Declaracin de tipos
(:types
porcion-pan porcion-relleno porcion-salsa bocadillo bandeja persona cocina mesa
- ubicable
tipo-bocadillo - object
)

; Constantes para los tipos de bocadillos


(:constants
solo-relleno relleno-salsa - tipo-bocadillo
)

; Predicados adicionales
(:predicates
(clase-bocadillo ?b - bocadillo ?c - tipo-bocadillo)
(demanda ?comensal - persona ?c - tipo-bocadillo)
)

; Accin para preparar un bocadillo con solo relleno


(:action hacer_bocadillo_solo_relleno
:parameters (?b - bocadillo
?p - porcion-pan
?r - porcion-relleno
?c - cocinero
?k - cocina)
:precondition (and
(clase-bocadillo ?b solo-relleno)
(necesita ?b ?p ?r)
(en ?c ?k) (en ?p ?k) (en ?r ?k))
:effect (and
(not (necesita ?b ?p ?r))

38
Razonamiento y Planificación Automática Ejercicios Resueltos

(en ?b ?k))
)

; Accin para preparar un bocadillo con salsa


(:action hacer_bocadillo_con_salsa
:parameters (?b - bocadillo
?p - porcion-pan
?r - porcion-relleno
?s - porcion-salsa
?c - cocinero
?k - cocina)
:precondition (and
(clase-bocadillo ?b relleno-salsa)
(necesita ?b ?p ?r)
(necesita-salsa ?b ?s)
(en ?c ?k) (en ?p ?k) (en ?r ?k) (en ?s ?k))
:effect (and
(not (necesita ?b ?p ?r))
(not (necesita-salsa ?b ?s))
(en ?b ?k))
)

37.3. Modificaciones en el Problema


Se deben declarar los nuevos objetos y hechos:
(:objects
; Objetos existentes: porciones, bandejas, etc.
salsa1 salsa2 - porcion-salsa
boc1 boc2 - bocadillo
; Se asume la existencia de otros objetos como pan1, fiambre1, etc.
)

(:init
; Asignacin de clases a los bocadillos:
(clase-bocadillo boc1 solo-relleno)
(clase-bocadillo boc2 relleno-salsa)

; Requisitos de preparacin:
(necesita boc1 pan1 fiambre1)
(necesita boc2 pan2 fiambre2)
(necesita-salsa boc2 salsa1)

; Demanda de los comensales:


(demanda persona3 solo-relleno)
(demanda persona4 relleno-salsa)

; Otros hechos: ubicaciones, adyacencias, etc.


)

39
Razonamiento y Planificación Automática Ejercicios Resueltos

38. Caso 2: Personas alérgicas y tipos de


pan

38.1. Objetivo
Asegurar que las personas alérgicas no reciban panes a los que son
alérgicas mediante:

• La introducción de nuevos tipos de pan: pan-centeno, pan-maiz


y pan-trigo.
• El uso de un predicado que verifique la compatibilidad entre la
persona y el pan.

38.2. Modificaciones en el Dominio


Se realizan los siguientes cambios:

• Definir nuevos subtipos de porcion-pan: pan-centeno, pan-maiz


y pan-trigo.
• Introducir el predicado puede-comer para expresar la compatibi-
lidad.
• Modificar (o crear una variante de) la acción hacer_bocadillo pa-
ra incluir un parámetro de comensal y la precondición (puede-comer
?com ?p).
; Declaracin de nuevos tipos de pan
(:types
pan-centeno pan-maiz pan-trigo - porcion-pan
; Los dems tipos se mantienen.
)

; Predicado para controlar la compatibilidad de una persona con un pan


(:predicates
(puede-comer ?pers - persona ?p - porcion-pan)
)

; Variante 1: Modificar la accin hacer_bocadillo para incorporar la restriccin


(:action hacer_bocadillo
:parameters (?b - bocadillo
?p - porcion-pan
?r - porcion-relleno
?c - cocinero

40
Razonamiento y Planificación Automática Ejercicios Resueltos

?k - cocina
?com - persona)
:precondition (and
(necesita ?b ?p ?r)
(en ?c ?k) (en ?p ?k) (en ?r ?k)
(en ?com ?k)
(puede-comer ?com ?p))
:effect (and
(not (necesita ?b ?p ?r))
(en ?b ?k))
)

38.3. Modificaciones en el Problema


Declarar los nuevos objetos y la compatibilidad en el fichero del pro-
blema:
(:objects
; Nuevos panes:
panC1 panC2 - pan-centeno
panM1 panM2 - pan-maiz
panT1 panT2 - pan-trigo
; Otros objetos: personas, bocadillos, etc.
)

(:init
; Compatibilidades: por ejemplo, si persona1 es alrgica a pan-centeno, no se
declara compatibilidad con l.
(puede-comer persona1 panM1)
(puede-comer persona1 panT1)

; Si persona2 no es alrgica al centeno:


(puede-comer persona2 panC1)
(puede-comer persona2 panC2)
(puede-comer persona2 panM1)
(puede-comer persona2 panT1)

; Otros hechos: ubicaciones, requisitos para los bocadillos, etc.


)

38.4. Discusión: ¿Modificar hacer_bocadillo?


Se pueden adoptar dos enfoques:

1. Control en la preparación: Modificar la acción hacer_bocadillo


para incluir el parámetro del comensal y la precondición (puede-comer
?com ?p).

41
Razonamiento y Planificación Automática Ejercicios Resueltos

2. Control en el servicio: Dejar la acción de fabricación sin cam-


bios y controlar la restricción en la acción servir_bocadillo.

En este ejemplo se utiliza el primer enfoque para evitar la fabricación


de un bocadillo que no pueda ser servido.

39. Caso 3: Implementación del Concepto


de Sala

39.1. Objetivo
Incorporar el concepto de sala en el dominio, lo que permite:

• Definir ubicaciones complejas donde se ubican mesas y bandejas.


• Permitir el movimiento de bandejas entre salas.
• Asegurar que el servicio de comida ocurra dentro de una sala es-
pecífica.

39.2. Acciones Consideradas en el Primer Paso


Se evaluaron inicialmente las siguientes acciones:

• servir-comida(?nc, persona1, ?t, mesa2)


• servir-comida(?nc, persona2, ?t, mesa2)
• servir-comida(?nc, persona3, ?t, mesa1)
• servir-comida(?nc, persona4, ?t, mesa1)
• mover-bandeja(bandeja3, ?l1, mesa4)

Donde:

• ?nc representa un bocadillo.


• ?t representa una bandeja.
• ?l1 representa un lugar adyacente a mesa4.

42
Razonamiento y Planificación Automática Ejercicios Resueltos

39.3. Modificaciones para Implementar “Sala” en


PDDL 1.2
39.3.1. En el Dominio

Realizar los siguientes cambios:

• Añadir tipo: sala.


• Añadir predicados:
◦ (en-sala ?m - mesa ?s - sala)
◦ (adyacente-sala ?s1 - sala ?s2 - sala)
◦ (cocina ?s - sala)
• Modificar la acción mover-bandeja: Ajustarla para permitir el
movimiento entre salas.
• Modificar la acción servir-comida: Adaptarla para que el ser-
vicio se realice dentro de una sala específica.

39.3.2. En el Problema

Se deben realizar los siguientes ajustes:

• Añadir objetos: Incluir objetos de tipo sala y especificar a qué


sala pertenece cada mesa.
• Definir adyacencias: Establecer relaciones de adyacencia entre
salas usando el predicado adyacente-sala.
• Ajustar el estado inicial y el objetivo: Incorporar la infor-
mación de las salas en la descripción del estado inicial y en los
objetivos del problema.

39.4. Diferencias entre Encadenamiento Hacia De-


lante y Encadenamiento Hacia Atrás
La principal diferencia entre encadenamiento hacia delante y en-
cadenamiento hacia atrás es la dirección en la que se realiza la
inferencia:

43
Razonamiento y Planificación Automática Ejercicios Resueltos

• Encadenamiento hacia Delante (Forward Chaining): Parte


del estado inicial y aplica las acciones o reglas disponibles para
generar todos los hechos posibles, hasta llegar a uno que cumpla
con el objetivo. Es adecuado cuando el conjunto de hechos inicia-
les es reducido o cuando se desea obtener todas las conclusiones
derivables.
• Encadenamiento hacia Atrás (Backward Chaining): Parte
del objetivo o meta y trabaja hacia atrás determinando qué hechos
o precondiciones se necesitan para alcanzar dicho objetivo. Este
método es más adecuado cuando el objetivo es específico, ya que se
centra únicamente en los hechos que contribuyen a su consecución,
potencialmente evitando la generación innecesaria de hechos.

En resumen: El encadenamiento hacia delante es una estrategia “proac-


tiva” que expande el conocimiento a partir del estado inicial, mientras
que el encadenamiento hacia atrás es “reactivo”, buscando solo aquellos
hechos que son relevantes para alcanzar el objetivo definido.

40. Ejercicios Examen

40.1. Ejercicio 1: LProp24.2.1


Enunciado:
"Si un número es par, entonces es divisible entre dos. Si un número es
impar, entonces no es divisible entre dos".
Formaliza esta afirmación en lógica proposicional y utiliza una tabla de
verdad para demostrar si la afirmación es una tautología.

Respuesta:

Línea 1: Sea p: “el número es par” y q: “el número es divisible entre


2”.
Línea 2: La afirmación se formaliza como:

(p → q) ∧ (¬p → ¬q).

44
Razonamiento y Planificación Automática Ejercicios Resueltos

Línea 3: Esta fórmula es equivalente a la bicondicional: p ↔ q.


Línea 4: Se construye la siguiente tabla de verdad:

p q p → q ¬p → ¬q (p → q) ∧ (¬p → ¬q)
V V V V V
V F F V F
F V V F F
F F V V V

Línea 5: En la primera línea, ambos p y q son verdaderos, y la fórmula


se cumple.
Línea 6: En la segunda línea, p es verdadero y q es falso; por ello, falla
p → q.
Línea 7: En la tercera línea, p es falso y q es verdadero; falla ¬p → ¬q.
Línea 8: En la cuarta línea, ambos son falsos y la fórmula se cumple.
Línea 9: La fórmula es verdadera únicamente cuando p y q coinciden
en valor.
Línea 10: Se cumple cuando el número es par y, por definición, divi-
sible entre 2, o impar y no divisible.
Línea 11: Sin embargo, la fórmula falla en asignaciones donde p y q
difieren.
Línea 12: Esto indica que no es una tautología, ya que no es verdadera
en todos los casos.
Línea 13: En lógica proposicional, p y q son atómicas e independien-
tes.
Línea 14: La equivalencia p ↔ q no se cumple universalmente.
Línea 15: La tabla de verdad evidencia dos casos falsos (líneas 2 y 3).
Línea 16: Aunque la definición de número par implica divisibilidad
por 2, la formalización depende de la asignación de valores.
Línea 17: El análisis muestra que la afirmación es contingente.
Línea 18: Su validez depende del contexto semántico asumido.
Línea 19: Se concluye que la afirmación no es una tautología.
Línea 20: Fin del análisis.

45
Razonamiento y Planificación Automática Ejercicios Resueltos

40.2. Ejercicio 2: PL24_2_1


Enunciado:
.Explique con un ejemplo de aplicación un caso en que se realice una
planificación en línea y sea preciso realizar una reparación de un plan.
Formalice el plan inicial y las operaciones de reparación."

Respuesta:

Línea 1: Considere un robot en un almacén con la ruta inicial: A →


B → C → D.
Línea 2: El plan se formaliza como:

P = (A → B) ∧ (B → C) ∧ (C → D).

Línea 3: Durante la ejecución, se detecta un obstáculo en el tramo


B → C.
Línea 4: Es necesaria una reparación del plan para evitar dicho obs-
táculo.
Línea 5: Se incorpora un punto intermedio E, reemplazando la tran-
sición B → C por B → E → C.
Línea 6: El plan reparado queda formalizado como:

P ′ = (A → B) ∧ (B → E) ∧ (E → C) ∧ (C → D).

Línea 7: La nueva ruta se recalcula en tiempo real.


Línea 8: La reparación permite sortear el obstáculo sin detener la ope-
ración.
Línea 9: Este ejemplo ilustra la adaptación dinámica en planificación
en línea.
Línea 10: Fin del ejemplo.

46
Razonamiento y Planificación Automática Ejercicios Resueltos

Figura 3: Caso 1: Búsqueda en el Laberinto. Imagen extraída del documento


de examen.

41. A* y Heurística

41.1. Pregunta 1: Admisibilidad de la Heurística

h(n) = |xfinal − xactual | + |yfinal − yactual | (2)


La heurística utilizada es la distancia de Manhattan, que es admisible
porque:

• No sobreestima el costo real del camino más corto al destino.

47
Razonamiento y Planificación Automática Ejercicios Resueltos

• El movimiento permitido en el problema (arriba, abajo, izquierda,


derecha) se ajusta a la métrica Manhattan.
• Siempre proporciona una estimación menor o igual al costo real
del camino óptimo.
Sin embargo, podría dejar de ser admisible si se permitieran movimien-
tos diagonales.

41.1.1. Otras Heurísticas Admisibles y Más Informadas

Una heurística mejorada sería:


h(n) = d(n, destino) + k × (nº de obstáculos adyacentes) (3)
donde k es un factor de penalización.

41.2. 1. Heurísticas Basadas en Distancias


• Distancia Euclidiana: Calcula la distancia en línea recta entre
dos puntos en un espacio continuo.
(4)
p
h(n) = (xfinal − xactual )2 + (yfinal − yactual )2
Se usa cuando los movimientos pueden ser en cualquier dirección.
• Distancia de Chebyshev: Se usa en entornos donde se puede
mover en diagonal, como en el ajedrez.
h(n) = máx(|xfinal − xactual |, |yfinal − yactual |) (5)
• Distancia Octil: Variante de la distancia de Chebyshev
√ que pon-
dera movimientos diagonales con un costo de 2.

h(n) = (dx + dy) + ( 2 − 2) × mı́n(dx, dy) (6)

41.3. 2. Heurísticas Basadas en Costos


• Costo Uniforme: Usa el costo real acumulado sin estimaciones
heurísticas (h(n) = 0). Es útil en grafos con pesos uniformes.
• Costo de la Ruta Más Barata: Estima el menor costo posible
basado en reglas específicas del problema.

48
Razonamiento y Planificación Automática Ejercicios Resueltos

41.4. 3. Heurísticas Admisibles y No Admisibles


• Heurística de Gaschnig: Se usa en problemas como el 8-Puzzle
y estima el número mínimo de movimientos requeridos.
• Distancia de Hamming: Cuenta el número de posiciones en las
que los elementos difieren entre el estado actual y el objetivo.

41.5. 4. Heurísticas Derivadas de Modelos


• Patrón de Bases de Datos (Pattern Database): Precalcula
soluciones óptimas para subproblemas y usa esos valores como
heurística.
• Heurística de Relajación: Ignora algunas restricciones del pro-
blema para hacer la solución más fácil de calcular.

41.6. Pregunta 2: Algoritmo A* - Primeras 5 Itera-


ciones

Cuadro 1: Primeras 5 iteraciones de A*


Iteración Nodo actual g(n) h(n) f (n)
1 (0, 3) 0 4.0 4.0
2 (0, 4) 2 3.0 5.0
3 (1, 3) 2 3.0 5.0
4 (1, 4) 4 2.0 6.0
5 (2, 3) 4 2.0 6.0

Cuadro 2: Tabla de Heurística (Distancia de Manhattan)


C1 C2 C3 C4 C5
F1 3.0 4.0 5.0 4.0 3.0
F2 2.0 3.0 4.0 3.0 2.0
F3 1.0 2.0 3.0 2.0 1.0
F4 0.0 1.0 2.0 1.0 0.0

49
Razonamiento y Planificación Automática Ejercicios Resueltos

42. Ejemplos de Planificación en Línea y


Reparación de Planes

42.1. Ejemplo 1: Robo de un Banco con un Dron


Autónomo
Un dron es programado para entrar a una bóveda bancaria, recolectar
dinero y salir sin activar alarmas. Sin embargo, al ingresar, detecta que
una de las rutas planeadas está bloqueada, por lo que debe reparar el
plan para completar la misión.

42.1.1. Formalización del Plan Inicial

• Estado Inicial: Dron en el techo del banco.


• Acciones:
1. Bajar al área de bóveda.
2. Ingresar clave de seguridad.
3. Recolectar dinero.
4. Salir por la ruta planeada.

42.1.2. Reparación del Plan

• Se detecta una puerta bloqueada en la salida original.


• Se genera una nueva acción: buscar salida alternativa.
• Se reemplaza la acción 4 por:
1. Detectar rutas alternativas.
2. Usar ventilación como escape.

Este es un ejemplo de planificación en línea porque el dron ajusta su


plan en tiempo real en respuesta a una contingencia imprevista.

50
Razonamiento y Planificación Automática Ejercicios Resueltos

42.2. Ejemplo 2: Misión de Rescate con Drones en


Zona de Desastre
Un dron de rescate debe entregar suministros médicos a un punto de
reunión en una zona afectada por un terremoto. Sin embargo, en medio
de la misión, detecta que la ruta aérea planificada está bloqueada por
escombros y necesita modificar su plan para encontrar una nueva ruta
segura.

42.2.1. Formalización del Plan Inicial

• Estado Inicial: Dron en la base de rescate con suministros.


• Acciones:
1. Despegar y dirigirse al punto de entrega.
2. Aterrizar en el punto previsto.
3. Descargar suministros médicos.
4. Regresar a la base.

42.2.2. Reparación del Plan

• Se detecta que la ruta original está bloqueada por escombros.


• Se agrega una nueva acción: analizar el terreno con sensores para
encontrar una ruta alternativa.
• Se modifica la acción 1 reemplazándola por:
1. Despegar y escanear el área con sensores.
2. Identificar una nueva ruta libre de obstáculos.
3. Volar por la nueva ruta hasta el punto de entrega.

43. Resolución paso a paso (representación


tipo STRIPS)
En la figura se muestran dos estados distintos (marcados como 1 y 2)
en el mundo de bloques. Para cada uno de los siguientes conjuntos de
objetivos, debemos indicar si se satisfacen o no en cada estado.

51
Razonamiento y Planificación Automática Ejercicios Resueltos

43.1. Representación de los estados


Estado 1
• Bloque A sobre la mesa (SOBRELMESA(A)).
• Bloque D sobre A (SOBRE(D,A)).
• Bloque B sobre D (SOBRE(B,D)).
• Bloque C sobre la mesa (SOBRELMESA(C)).
• DESPEJADO(B) (nadie encima de B).
• DESPEJADO(C) (nadie encima de C).
• ¬DESPEJADO(D) (porque B está encima).
• ¬DESPEJADO(A) (porque D está encima).
Gráficamente (esquema simplificado):

B
C
D
(sobre la mesa)
A (sobre la mesa)

Estado 2
• Bloque A sobre la mesa (SOBRELMESA(A)).
• Bloque B sobre A (SOBRE(B,A)).
• Bloque C sobre B (SOBRE(C,B)).
• Bloque D sobre la mesa (SOBRELMESA(D)).
• DESPEJADO(C) (nadie encima de C).
• DESPEJADO(D) (nadie encima de D).
• ¬DESPEJADO(B) (porque C está encima).
• ¬DESPEJADO(A) (porque B está encima).
Gráficamente (esquema simplificado):

C
D
B
(sobre la mesa)
A (sobre la mesa)

52
Razonamiento y Planificación Automática Ejercicios Resueltos

43.2. Objetivos a verificar


A continuación se listan cuatro grupos de objetivos (condiciones) que
podrían estar presentes en una representación tipo STRIPS. Para cada
grupo, comprobaremos si se cumplen en el Estado 1 y/o en el Estado
2.

G1 = { SOBRE(B,A), SOBRELMESA(A), ¬SOBRE(C,B)},


G2 = { SOBRE(x, A), DESPEJADO(x), . . . },
G3 = { SOBRE(x, A), DESPEJADO(x), . . . },
G4 = { SOBRE(x, C), ¬SOBRE(. . . )}.

(Notar que en la imagen original aparecen algunos literales con x ge-


nérico, o con negaciones específicas; aquí ejemplificamos la lógica de
chequeo.)

43.2.1. Objetivo G1 = {SOBRE(B,A), SOBRELMESA(A), ¬SOBRE(C,B)}

En el Estado 1:

• SOBRE(B,A):
◦ Si interpretamos SOBRE como “B está en la misma pila por en-
cima de A” (relación transitiva), entonces B sí está por encima
de A (pila B-D-A).
◦ Si fuera relación directa, no se cumpliría, pues hay D en medio.
Sin embargo, en la tabla dada se ve que se marca como cierto
en estado 1, lo cual sugiere la interpretación transitiva.
• SOBRELMESA(A): A está directamente sobre la mesa. Es cierto.
• ¬SOBRE(C,B): C está en otra pila aparte; no está por encima de
B. Es cierto.

Por tanto, G1 se cumple en el Estado 1.

En el Estado 2:

• SOBRE(B,A): es verdadero (relación directa).

53
Razonamiento y Planificación Automática Ejercicios Resueltos

• SOBRELMESA(A): es verdadero.
• ¬SOBRE(C,B): en este estado, C sí está sobre B. Por tanto, ¬SOBRE(C,B)
es falso.

No se cumple G1 en el Estado 2.

43.2.2. Objetivo G2 = {SOBRE(x, A), DESPEJADO(x), . . . }

La idea es que exista algún bloque x que: 1. Esté (transitivamente) sobre


A. 2. Esté despejado (DESPEJADO(x)). 3. Cumpla alguna otra negación
o condición adicional (ej. ¬SOBRE(x, B) o similar).

En el Estado 1: - El bloque B está sobre A (transitivamente) y B está


despejado (nadie encima). - Esto coincide con la marca de check en la
imagen para el Estado 1. - Por tanto, G2 es verdadero en el Estado 1.

En el Estado 2: - El bloque que está directamente sobre A es B, pero


B no está despejado (porque C está encima). - Por tanto, la condición
DESPEJADO(x) falla. - Se marca con X (falso) en el Estado 2.

43.2.3. Objetivo G3 = {SOBRE(x, A), DESPEJADO(x), . . . }

Ahora buscamos un bloque x que cumpla lo mismo, pero en el Estado


2 se ve que C está sobre A (transitivamente) y además C está despejado.
En cambio, en el Estado 1 C no está sobre A.

En el Estado 1: - C está en la mesa, no sobre A. - ∴ Falso para


Estado 1.

En el Estado 2: - C está sobre A (vía B) en la pila y C está despejado.


- ∴ Verdadero para Estado 2.

54
Razonamiento y Planificación Automática Ejercicios Resueltos

43.2.4. Objetivo G4 = {SOBRE(x, C), ¬SOBRE(. . . )}

Según la tabla de la imagen, aparece marcado con X en ambos estados.


Eso suele indicar que no existe ningún bloque x que esté sobre C (ni en
el Estado 1 ni en el 2), o que la negación pedida tampoco se cumple.

En el Estado 1: - C está solo en la mesa y no hay nada encima de


él (DESPEJADO(C)). - No hay x con SOBRE(x,C).

En el Estado 2: - C está en lo alto de la pila (sobre B), tampoco tiene


ningún bloque encima. - De nuevo, no hay x que cumpla SOBRE(x,C).
En ambos casos, no se satisfacen las condiciones de G4 (o bien es impo-
sible que algo esté sobre C y simultáneamente cumplir la otra negación
que aparece).

43.3. Resumen en tabla


Podemos resumir los resultados en una tabla, donde 51 (check) significa
que los objetivos se satisfacen y 55 (cross) significa que no:

Objetivos Estado 1 Estado 2


G1 = {SOBRE(B,A), SOBRELMESA(A), ¬SOBRE(C,B)} 51 55
G2 = {SOBRE(x, A), DESPEJADO(x), . . . } 51 55
G3 = {SOBRE(x, A), DESPEJADO(x), . . . } 55 51
G4 = {SOBRE(x, C), ¬SOBRE(. . . )} 55 55

44. POP
En la planificación de orden parcial (POP) se definen dos tipos de arcos
que relacionan las acciones de un plan:

• Arcos temporales: Especifican el orden (parcial) en el que deben


ejecutarse las acciones.

55
Razonamiento y Planificación Automática Ejercicios Resueltos

• Arcos causales: Aseguran que las precondiciones de una acción


sean satisfechas por los efectos de acciones anteriores.
Se tiene un dominio en el que existen las siguientes acciones, donde
f 1, f 2, etc., son fluents, ∧ representa la conjunción y ¬ indica que se
elimina un fluent:

a1 : f6 → f5
a2 : f1 ∧ f3 → f4
a3 : f5 → f1
a4 : f 5 → ¬f 1 ∧ f 3

El estado inicial contiene el fluent f 6. Se debe generar un plan POP


que permita obtener f 4, incluyendo los arcos causales y temporales
necesarios para garantizar su correcta ejecución.

44.1. Plan de Acciones


Para obtener f 4, se deben ejecutar las siguientes acciones en un orden
adecuado:
1. Ejecutar a1 (f 6 → f 5) porque f 6 está en el estado inicial.
2. Ejecutar a3 (f 5 → f 1) para obtener f 1.
3. Ejecutar a4 (f 5 → ¬f 1 ∧ f 3) para obtener f 3.
4. Ejecutar a2 (f 1 ∧ f 3 → f 4) para generar f 4.

44.2. Arcos Causales


Los arcos causales aseguran que cada acción reciba los fluents que ne-
cesita antes de ejecutarse:
• a1 → a3 (f 5 es necesario para a3).
• a1 → a4 (f 5 es necesario para a4).
• a3 → a2 (f 1 es necesario para a2).
• a4 → a2 (f 3 es necesario para a2).

56
Razonamiento y Planificación Automática Ejercicios Resueltos

44.3. Arcos Temporales


Los arcos temporales determinan el orden en el que deben ejecutarse
las acciones:

• a1 ≺ a3 (para que f 5 esté disponible antes de a3).


• a1 ≺ a4 (para que f 5 esté disponible antes de a4).
• a3 ≺ a2 (para que f 1 esté disponible antes de a2).
• a4 ≺ a2 (para que f 3 esté disponible antes de a2).
• a2 ≺ a4 (para evitar que a4 elimine f 1 antes de que a2 lo use).

57

También podría gustarte