Principios de Inteligencia Artificial - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Principios de Inteligencia Artificial

Description:

Con el fin de resolver problemas complicados con eficiencia, es necesario ... An lisis de medios y fines (means-ends analysis) Universidad Antonio de Nebrija. ... – PowerPoint PPT presentation

Number of Views:165
Avg rating:3.0/5.0
Slides: 29
Provided by: venq
Category:

less

Transcript and Presenter's Notes

Title: Principios de Inteligencia Artificial


1
Principios de Inteligencia Artificial
Búsqueda heurística
  • Universidad Antonio de Nebrija
  • Ramiro Lago
  • Curso 2004-5

2
Heurística
  • Con el fin de resolver problemas complicados con
    eficiencia, es necesario sacrificar los
    requisitos de movilidad y sistematización para
    construir un control, que encuentre siempre una
    buena solución aunque no garantice encontrar la
    mejor
  • De aquí surge la idea de Heurística una
    heurística es una técnica que aumenta la eficacia
    de un proceso de búsqueda sacrificando la
    exhaustividad
  • La característica más importante de una
    heurística es la reducción del espacio de
    búsqueda de exploración de las rutas que
    conducen a una solución
  • En problemas del mundo real no siempre es posible
    encontrar soluciones precisas pero no es fácil
    dar una respuesta precisa a preguntas como
    Porqué ha aumentado la temperatura media de una
    región geográfica?
  • En estor casos la obtención de una heurística
    esta relacionada con una idea que hemos apuntado
    en el primer tema El conocimiento experto (o
    del experto). En el mundo real se pueden
    introducir heurísticas basadas en este tipo de
    conocimiento  como sucede que este conocimiento
    generalmente no está estructurado, su
    formalización escapa al análisis matemático y es
    objeto de un especial tratamiento por una parte
    de la IA conocida como Ingeniería del
    Conocimiento (KE)

3
Tipos de técnicas heurísticas tratadas
  • Escalada (hill climbing)
  • El primero mejor (best-first search)
  • Reducción del problema (problem reduction)
  • Verificación de restricciones (constraint
    satisfaction)
  • Análisis de medios y fines (means-ends analysis)

4
Funciones heurísticas
  • Hay varias formas de incorporar el conocimiento
    heurístico de un dominio a un determinado
    proceso de búsqueda, una de las más utilizadas es
    la realizada mediante las llamadas Funciones
    heurísticas o funciones de evaluación de estados
    (nodos)
  • Una función heurística es una cuantificación (o
    evaluación) de un estado de un sistema , que nos
    permite determinar su deseabilidad respecto a
    un objetivo determinado
  • El propósito de dicha función es guiar el proceso
    de búsqueda en la dirección más prometedora,
    sugiriendo cual escoger cuando se presentan
    varias opciones
  • La eficiencia de la búsqueda mejora notablemente
    si existe una forma de ordenar las selecciones de
    modo que las más prometedoras se exploren
    primero. Los métodos que sacan provecho de tales
    mediciones se conocen como métodos informados
    heurísticamente.

5
Técnica de la escalada
  • El método consiste en un bucle que constantemente
    se desplaza en dirección de un valor ascendente
    (nodos más prometedores). Para decidir en que
    dirección debe moverse se necesita una función
    de evaluación de los nodos , por ejemplo por
    medio de una función que estime la proximidad de
    un estado a una meta
  • La técnica de escalada es un procedimiento de
    búsqueda en profundidad, pero ahora dispondremos
    de una función que ayude a decidir en qué
    dirección nos moveremos en el espacio de búsqueda
  • La escalada se utiliza frecuentemente cuando se
    dispone de una buena función para evaluar los
    estados intermedios, y es necesario asimismo un
    objetivo hacia el que moverse, si no existe este
    estado a priori no debe utilizarse este método

6
Algoritmo de escalada simple
  • Se queda con el primer sucesor que es mejor
  • El algoritmo
  • Evaluar el estado inicial, lo denominaremos M. Si
    es estado objetivo, entonces devolverlo y
    terminar, si no, convertirlo en estado actual
  • Repetir hasta que se encuentre solución o hasta
    que no se pueda seguir (no hay operadores nuevos
    que aplicar)
  • A. Seleccionar un nuevo operador que no se haya
    aplicado al estado actual y aplicarlo para
    generar un sucesor al estado actual, lo llamamos
    nuevo estado
  • B. Evaluar nuevo estado
  • Si el nuevo estado es estado objetivo, devolverlo
    y terminar
  • Si no es estado objetivo, pero es mejor que el
    estado actual, entonces convertirlo en estado
    actual
  • Si no es mejor que el actual, seguir el bucle (2)
  • El algoritmo no guarda el árbol de búsqueda
    recorrido (la traza).
  • La comparación es muy local sólo se compara la
    bondad del estado actual con sus sucesores
    inmediatos

7
Un ejemplo
  • Veamos que este algoritmo de escalada es
    demasiado inflexible, sólo se queda con el
    primero mejor
  • El valor de la función de evaluación aparece
    asociado al nodo
  • La meta es el nodo H (nodo de mayor puntuación
    según la función de evaluación)

Estado actual Estado nuevo Mejor A B B B D D E
l algoritmo termina, ya que D no tiene sucesores.
D es bueno, pero no el mejor global
(meta). El algoritmo debió tomar C, pero el
primero que era mejor es B.
8
Algoritmo de escalada por la máxima pendiente
  • El algoritmo
  • Evaluar el estado inicial. Si es estado objetivo,
    entonces devolverlo y terminar, si no,
    convertirlo en estado actual
  • Repetir hasta que se encuentre solución o hasta
    que una iteración completa no produzca un cambio
    en el estado actual
  • A. Aplicar cada operador al estado actual y
    conseguir sucesores E1, ... En.
  • B. Evaluar E1 .... En. Si alguno es objetivo,
    devolverlo y terminar Si no es así, seleccionar
    el mejor (Em)
  • C. Si Em es mejor que el estado actual, hacer que
    Em sea el estado actual. Volver a (A)
  • Frente a la escalada simple, considera todos los
    posibles estados nuevos (no el primero que es
    mejor)

9
Un ejemplo que funciona
  • Queremos ir del Sur al Norte (de A hasta J) de
    modo que en cada cruce nos aproximemos más. Los
    cruces se representan en la siguiente figura por
    los nodos.
  • La función heurística puede basarse en la medida
    de distancia espacial a la meta. A cada nodo
    asociamos su distancia.
  • Los operadores son Ir al siguiente del Norte,
    Ir al siguiente del Este e Ir al siguiente del
    Oeste. Observar que aunque existiese un operador
    Ir al siguiente hacia el Sur el algoritmo
    evitaría el nuevo nodo, ya que siempre sería peor
    (más distante).

Estado actual Sucesores Mejor A B,C B B D D D
C,E,H H H I I I J J Meta
10
Un ejemplo que no funciona
  • Hemos modificado el ejemplo anterior. Por qué se
    queda parado en D?

Estado actual Sucesores Mejor A B,C B B D D D
C,E C D El estado actual vuelve e ser D, ya
que ninguno de sus sucesores es mejor que él
J
0
I
H
2
1
G
3
4
3
C
D
E
4
5
4
B
A
  • El estado D es un mínimo local, no el mínimo
    absoluto (la meta)

11
Inconvenientes de los métodos de escalada
  • El proceso de búsqueda puede no encontrar una
    solución cuando se encuentra con
  • Máximo/mínimo local un estado que es mejor que
    todos sus vecinos, pero no es mejor que otros
    estados de otros lugares. Puesto que todos los
    estados vecinos son peores el proceso se queda
    paralizado
  • Meseta los estados vecinos tienen el mismo
    valor. El proceso, basado en comparación local,
    no discrimina la mejor dirección
  • El origen de estos problemas es que el método de
    la escalada se basa en comparaciones locales, no
    explora exhaustivamente todas las consecuencias.
    Frente a otros métodos menos locales, tiene la
    ventaja de provocar una explosión combinatoria
    menor
  • Soluciones parciales
  • Almacenar la traza para poder ir hacia atrás,
    hasta un estado prometedor (o tan bueno como el
    que hemos dejado)
  • Dar un gran salto para seguir la búsqueda. Útil
    en el caso de mesetas

12
Un ejemplo de los inconvenientes del método de
escalada
  • Considerar el problema de ordenar los bloques
  • Supongamos la siguiente función heurística
    añadir un punto por cada bloque que este sobre el
    bloque que debe estar, restar un punto en caso
    contrario
  • Disponemos de dos operadores
  • Coger bloque y situarlo sobre otro Encima (x,
    y)
  • Coger un bloque y situarlo sobre la mesa
    SobreMesa(x)
  • Al usar esta función el estado inicial tiene un
    valor de 4, y el final 8. Sólo es posible
    realizar un movimiento a partir del estado
    inicial (SobreMesa (A)), este movimiento, produce
    un estado de valor 6 y el algoritmo de escalada
    acepta este movimiento.
  • En el nuevo estado aparecen tres movimientos
    posibles que dan lugar a tres estados de valor 4
    (a,b,c). El proceso se detiene ya que las tres
    opciones son peores que el estado inicial (6)

13
Cambiamos de método o cambiamos de función?
  • El problema de los bloques nos muestra que el
    método se ha quedado atascado en un máximo local
    (el segundo estado). Podemos
  • Cambiar de método. Escoger una técnica que no sea
    tan local
  • Cambiar de función heurística. Por ejemplo por
    cada bloque que se sitúe en una estructura
    correcta( es decir , tenga debajo la estructura
    objetivo) añadir tantos puntos como bloques tenga
    debajo. En caso contrario restar un valor
    equivalente
  • Esta nueva función hace que el estado inicial
    tenga un valor de 28, el final 28. Con el
    segundo estado tenemos un valor de 21.
    Solucionamos el problema con esta función?

14
Búsqueda del mejor primero
  • Los métodos anteriores no tienen vuelta atrás,
    esto es, una vez escogido un estado como actual
    no se puede recorrer el camino hacia atrás a fin
    de deshacerlo (irrevocables)
  • La búsqueda. en profundidad tiene la ventaja de
    permitir encontrar soluciones sin tener que
    expandirse por todas las ramas, y la búsqueda en
    anchura presenta la ventaja de no quedar atrapada
    en callejones sin salida
  • Introducimos un nuevo modelo de búsqueda que
    intenta combinar ambas ventajas, llamado búsqueda
    del primero mejor (best-first search), cuya
    estrategia básica es como sigue
  • En cada paso se selecciona el nodo más prometedor
    (como en el caso de la escalada)
  • Se expande este nodo, si alguno de los generados
    es una solución se termina, si no es así los
    nuevos nodos obtenidos se añaden a la lista de
    nodos generados
  • De nuevo se selecciona el más prometedor y el
    proceso continúa
  • Si en una rama no se encuentra solución, se
    explora alguna rama de las antes ignoradas que
    sea más prometedora sin embargo la ultima rama
    no se olvida, su último nodo sin explorar se
    almacena en el conjunto de nodos a fin de poder
    volver si fuera conveniente

15
Funciones de coste
  • Para muchas aplicaciones es interesante definir
    una función que sea la suma de dos componentes
    que llamamos g y h
  • La función g representa el coste para ir desde el
    inicio hasta el estado actual la h es una
    estimación del coste adicional necesario para
    llegar a la solución
  • La función suma f g h representa pues el
    coste de un camino completo desde el nodo inicial
    a la solución
  • Dicho de forma más precisa
  • Dados dos nodos cualesquiera ni , nj , la función
    k(ni , nj) determina el coste mínimo de un camino
    entre ambos nodos
  • El costo de un camino mínimo entre un nodo n y
    una meta t , es por tanto h(n) k(n, t)
  • h es una estimación del coste para llegar a la
    meta y depende del conocimiento del dominio del
    problema
  • El costo de un camino mínimo entre el nodo
    inicial i y un nodo n se denomina g(n) k(i,
    n)
  • El valor de g no es una estimación, sino la suma
    de costes de aplicación de las reglas a través de
    la ruta
  • El costo real de un camino mínimo desde y hasta
    t será por tanto
  • f(n) g(n) h(n)

16
Un ejemplo
En el siguiente ejemplo se muestran los nodos con
su h(x), es decir, la estimación de coste de
desarrollarlo. G(x) será 1 por cada nivel
recorrido
A
A
A
B
C
D
B
C
D
(3)
(5)
(1)
(3)
(5)
A
A
E
F
(4)
(6)
B
C
D
B
C
D
(5)
(5)
E
F
G
H
E
F
G
H
(6)
(5)
(4)
(6)
(6)
(4)
(6)
(5)
I
J
(2)
(1)
17
El algoritmo A en árboles
  • Del tipo Primero mejor
  • Versión aplicable a árboles. En un árbol no es
    necesario comprobar si el nuevo nodo (sucesor)
    está en ABIERTOS o CERRADOS
  • Pasos
  • Colocar en ABIERTOS el nodo inicial i. Hacer
    g(i)0 Calcular h(i) Hacer f(i) g(i) h(i)
  • Crear CERRADOS como lista vacía
  • Si AB. está vacío salir con fracaso. Si no,
    continuar
  • Eliminar el primer nodo de AB. y colocarlo en CE.
    Llamarlo nodo n
  • Si n es meta salir con éxito
  • Si no, desarrollar el nodo n generando sus
    sucesores que no sean antecedentes de n
  • Por cada sucesor generado, hacer
  • Colocar a cada sucesor un puntero (direccionador)
    a n
  • Calcular g(suc) g(n) k(n, suc)
  • Calcular f(suc) g(suc) h(suc)
  • Colocar el sucesor en AB
  • Reordenar la lista AB. de acuerdo al valor de f
  • Ir al punto 3
  • En caso de ÉXITO el camino desde i hasta n,
    obtenido a través de los direccionadores, es la
    solución de coste mínimo, cuyo costo es g(n)

18
Aplicando A a un árbol
  • Comprobar el algoritmo con el ejemplo anterior
  • Calculamos f(A), que es 6.
  • Ponemos A en CERRADOS
  • Generamos sus sucesores B, C y D
  • Por cada sucesor calculamos f y lo ponemos en
    ABIERTOS
  • F(B) 31
  • F(C) 51
  • F(D) 11
  • El quid del asunto reordenamos ABIERTOS de
    acuerdo a f
  • Tomamos el primer elemento de ABIERTOS (que ya ha
    sido ordenado) D, lo borramos de ABIERTOS y lo
    ponemos en CERRADOS
  • Generamos sus sucesores E y F
  • Por cada sucesor calculamos f y lo ponemos en
    ABIERTOS
  • F(E) 41
  • F(F) 61
  • Reordenamos ABIERTOS de acuerdo a f
  • ...

A
B
C
D
(3)
(5)
(1)
A
B
C
D
(3)
(5)
E
F
(4)
(6)
19
Ejemplo depredador (I)
  • Supongamos un depredador (D) ciego, pero con buen
    olfato y tacto. Su olfato le permite dirigirse
    hacia el punto donde esta la presa (P). Puesto
    que es ciego no puede anticipar o percibir el
    obstáculo (O). Aunque el obstáculo no le impide
    oler de forma precisa a su presa.
  • Para simplificar el problema a nuestro depredador
    sólo le podremos aplicar tres operadores Ir al
    Norte, Ir al Este e Ir al Sur (el orden de
    las agujas del reloj)
  • Tenemos una forma sencilla de calcular g(n) y
    h(n) cada casilla en la matriz del terreno es
    una unidad.
  • Para reordenar los elementos de ABIERTA (paso 8)
    si hay igualdad en f(n), ponemos primero los
    nodos más cercanos a la meta, de menor h(n).
  • Notación los nodos se etiquetan con la posición
    (X,Y), pudiendo señalar a continuación los
    valores g(n) y h(n), de la forma (X,Y) g(n)h(n)

ABIERTA CERRADA SUCESORES 1 (2,1)03 Vacía
Vacía 2 Vacía (2,1) (1,1) 14 (2,2) 12
(3,1) 14 3 (2,2) 12 (1,1) 14 (3,1)
14 (2,1) 4 (1,1) 14 (3,1) 14 (2,1)
(2,2) (1,2) 23 (3,2) 23 5 (1,2) 23
(3,2) 23 (1,1) 14 (3,1) 14 (2,1)
(2,2) 6 (3,2) 23 (1,1) 14 (3,1)
14 (2,1) (2,2) (1,2) (1,3) 32
() 7 (1,3) 32 (3,2) 23 (1,1) 14 (3,1)
14 (2,1) (2,2) (1,2) 8 (3,2) 23 (1,1) 14
(3,1) 14 (2,1) (2,2) (1,2) (1,3) (1,4)
42 9 (1,4) 42 (3,2) 23 (1,1) 14 (3,1)
14 (2,1) (2,2) (1,2) (1,3) 10 (3,2) 23
(1,1) 14 (3,1) 14 (2,1) (2,2) (1,2)
(1,3) (2,4) 50 (1,4) 11 (2,4) 50
(3,2) 23 (1,1) 14 (3,1) 14 El primer nodo
de ABIERTA es META () No aplicamos operador SUR
a (1,2), ya que me da (2,2), que es antecesor
20
A en un grafo
  • Si hay ciclos, tenemos que ampliar el paso 7
  • Por cada sucesor (si está en ABIERTOS o en
    CERRADOS)
  • Si el SUC está en ABIERTOS y no en CERRADOS (ha
    sido generado, pero no explorado)
  • Entonces llamamos VIEJO al nodo que está en
    ABIERTOS. Con cuál nos quedamos? Vamos a evaluar
    el coste de las dos instancias del mismo nodo
    (VIEJO y SUC)
  • Si g(VIEJO) gt g(SUC), entonces nos quedamos con
    los valores de SUC (el mejor camino) y los
    ponemos en VIEJO
  • Colocamos a VIEJO un puntero (paterno) a n (el
    padre de SUC)
  • Calculamos de nuevo g(VIEJO) Hacer g(viejo)
    g(suc) y recalcular f(VIEJO)
  • Si g(VIEJO) lt g(SUC), entonces nos quedamos con
    los valores de VIEJO (que ya está en ABIERTOS)
    dejamos VIEJO en ABIERTOS y no incluimos SUC
  • Si el SUC no está en ABIERTOS y si en CERRADOS
    (ha sido generado y explorado)
  • Si g(VIEJO) gt g(SUC), entonces nos quedamos con
    los valores de SUC (el mejor camino) y los
    ponemos en VIEJO
  • Colocamos a VIEJO un puntero (paterno) a n (el
    padre de SUC)
  • Calculamos de nuevo g(VIEJO) Hacer g(viejo)
    g(suc) y recalcular f(VIEJO)
  • Hemos encontrado un mejor camino al nodo (SUC y
    VIEJO son el mismo nodo), por tanto debemos
    propagar la mejora a los sucesores de VIEJO, ya
    que deseamos que el árbol de exploración conserve
    el camino menos costoso. Hacer una búsqueda en
    amplitud tomando como nodo inicial a viejo, y
    descender por cada rama recalculando g(n) y f(n)
    hasta encontrar un nodo sin sucesor, o que se
    encuentre en AB, o que ya tenga un camino igual
    o mejor que el recién encontrado.
  • Si g(VIEJO) lt g(SUC), entonces nos quedamos con
    los valores de VIEJO (el mejor camino) no
    hacemos nada (no se incluye SUC en ABIERTOS)

21
Aplicando A a un grafo
  • Supongamos el siguiente grafo (tiene ciclos)
  • ABIERTOS es C,B, ya que f(C)4 Y f(B)5
  • CERRADOS es A,D, SUC es B, VIEJO es B
  • g(VIEJO) gt g(SUC). Por tanto nos interesa el
    camino de SUC
  • Colocamos a VIEJO un puntero (paterno) a n (el
    padre de SUC, que es D)
  • Recalculamos VIEJO g(B) 2, por tanto f(B)
    21
  • Seguimos en el punto 8 reordenamos ABIERTOS y
    resulta que es B,C, ya que f(B) 3 y f(C)4

A
(4)
(1)
(1)
B
C
D
(1)
(1)
(3)
(1)
(2)
B
F
(1)
(6)
22
Ejemplo depredador (II)
  • Se lo hemos puesto bastante más difícil al
    depredador, hemos aumentado los obstáculos.
    Comerá?

ABIERTA CERRADA SUCESORES 1 (2,1)03 Vacía
Vacía 2 Vacía (2,1) (1,1) 14 (2,2) 12
(3,1) 14 3 (2,2) 12 (1,1) 14 (3,1)
14 (2,1) 4 (1,1) 14 (3,1) 14 (2,1)
(2,2) (1,2) 23 5 (1,2) 23 (3,2) 23
(1,1) 14 (3,1) 14 (2,1) (2,2) 6 (1,1) 14
(3,1) 14 (2,1) (2,2) (1,2) Vacia
() 7 (1,1) 14 (3,1) 14 (2,1) (2,2)
(1,2) 8 (3,1) 14 (2,1) (2,2) (1,2)
(1,1) (1,2) 23 YA ESTA EN CERRADA. NO ES
MEJOR, NO SE INCLUYE EN AB. 9 (3,1) 14 (2,1)
(2,2) (1,2) (1,1) 10 Vacía (2,1) (2,2)
(1,2) (1,1) (4,1) 25 (3,1) 11 (4,1)
25 (2,1) (2,2) (1,2) (1,1) (3,1)
12 Vacía (2,1) (2,2) (1,2) (1,1) (4,2)
34 (3,1) (4,1) 13 .... Cómo puede
construir el camino correcto a la meta? Sencillo,
recordemos que cada nodo apunta a su
antecesor (2,1) ? (3,1) ? (4,1) ? (4,2) ? ....
? (2,4) Meta () No aplicamos operador SUR a
(1,2), ya que me da (2,2), que es antecesor
23
Consideraciones a A
  • Si sólo es relevante obtener el objetivo (sea
    cual sea su coste), entonces g es 0
  • Si h es 0, entonces g controla la búsqueda. En
    este caso, si g tiene el mismo valor (normalmente
    1), entonces estamos ante una búsqueda en anchura
    (no informada)
  • Lo esencial en este procedimiento de búsqueda es
    dar con una función h(n) que no sobreestime el
    coste de alcanzar la meta (h es minorante de h
    ), esto es lo que se conoce como heurística
    admisible. Esta regla da lugar a funciones h(n)
    que son optimistas, ya que h(n) es normalmente
    inferior al coste real de llegar a la meta

24
Reducción del problema
  • Otra heurística que depende del conocimiento del
    problema es la estrategia de divide y vencerás
    el problema se descompone en subproblemas
  • Veremos que una buena representación son los
    grafos Y-O
  • Hasta ahora los grafos eran del tipo O, en los
    que existe un camino simple para llegar a una
    meta.
  • La descomposición o reducción en subproblemas
    genera arcos Y es un tipo de arco en el que
    todos sus sucesores deben resolverse para que el
    arco apunte a una solución
  • Supongamos el siguiente ejemplo alguien se
    plantea como objetivo construir una aplicación.
    Tiene dos opciones
  • A. Subcontratarla (externalizarla)
  • B. Comprar un paquete y personalizarlo
  • C. Desarrollo propio, que se subdivide en (C.1)
    planificación, (C.2) análisis/diseño y (C.3)
    programación/pruebas

Objetivo conseguir aplicación de contabilidad
Subcontratar el desarrollo
Comprar paquete
Desarrollo propio
C.1
C.2
C.3
25
Verificación de restricciones
  • El estado meta es aquel que satisface un conjunto
    dado de restricciones
  • Los problemas de planificación y agendas son
    típicos en este sentido, ya que el diseño de la
    solución debe realizarse dentro de unos límites
    de tiempo, coste y recursos humanos o materiales
  • Los estados se definen mediante un conjunto de
    variables(Vi), cada variable tiene un dominio
    (Di) que es el conjunto de posibles valores de la
    variable. Puede ser continuo (por ejemplo, un
    valor entre 0,1) o discreto. La prueba de que
    se ha llegado a la meta es que el estado
    satisface todas las restricciones (este requisito
    se puede ablandar en función del problema)

26
Análisis de medios y fines
  • Se centra en las diferencias entre el estado
    actual y el estado objetivo. El sistema trata de
    encontrar uno o varios operadores que reduzcan la
    diferencia.
  • Si el operador no puede utilizarse para este
    estado, entonces se crea un subproblema
    consistente en buscar el estado al que se puede
    aplicar, es decir, se buscan estados que cumplan
    las precondiciones del operador
  • El proceso puede continuar recursívamente
  • Los operadores son reglas que contienen
  • Precondiciones (en el antecedente de la regla)
  • Cambios o resultados
  • Existe una tabla de diferencias, que ordena las
    reglas de acuerdo con su capacidad para reducir
    la diferencia

27
Un ejemplo de análisis (I)
  • Imaginemos un robot, que debe mover un escritorio
    de una habitación a otra, con dos objetos encima
    de él. Los objetos también deben trasladarse de
    habitación.
  • Operadores
  • EMPUJAR(obj, lug)
  • Precondiciones en(robot,,obj) grande(obj)
    despejado(obj) brazo_vacio
  • Resultado en(obj, lug) en(robot, lug)
  • LLEVAR(obj, lug)
  • Precondiciones en(robot,obj) pequeño(obj)
  • Resultado en(obj, lug) en(robot, lug)
  • ANDAR(lug) (no hay precondición)
  • Resultado en(robot,lug)
  • COGER(obj)
  • Precondición en(robot,obj)
  • Resultado sostiene(obj)
  • DEJAR(obj)
  • Precondición sostiene(obj)
  • Resultado sostiene(obj)

28
Un ejemplo de análisis (II)
  • Tabla de diferencias
  • Es importante que las diferencias importantes se
    reduzcan antes que las menos importantes
  • Existen al principio dos reglas que podamos
    utilizar para aminorar la diferencia
  • LLEVAR una de las precondiciones no tiene un
    operador que pueda satisfacerla
  • EMPUJAR para aplicarla es necesario hacer
  • En(robot,escritorio)
  • Despejado(escritorio)
  • qué operadores nos ayudan a cumplir las
    precondiciones?
  • Inconvenientes
  • Al tratar de aminorar una diferencia se puede
    aumentar otra
  • En problemas complejos las tablas de diferencia
    son muy costosas. Resultan necesarias técnicas de
    planificación
Write a Comment
User Comments (0)
About PowerShow.com