Você está na página 1de 6

Bsquedas y Algoritmos Inteligentes

Dr. Jrme Leboeuf

Cucei - UdG

Una importante clase de problemas se presta a una interpretacin de tipo discreto; su representacin
corresponde a un espacio de estados conectados por un grafo.

Su anlisis permite desglosar los siguientes componentes:


- Un estado inicial
- Un conjunto de acciones sean, operadores o funciones quienes generan transiciones de estado
- Una prueba de meta que se aplica al estado actual
- Eventualmente una funcin de costo de ruta

Una solucin corresponde a una ruta del estado inicial a un estado final llamada traza.

Ej.: trasladarse de un punto a otro de la ciudad,


problemas de las 8 reinas, desplazamiento de un caballo
problemas como apilar objetos: torre de Hanoi, ordenar bloques
problemas tipo puzzle: sudoku, crucigrama

Esta representacin es adecuada cuando la resolucin del problema conlleva el hecho de emprender
acciones en un espacio discreto

Ej.: robtica: desplazamiento, manipulacin, decisin


arquitectura: organizacin de espacios y trfico, distribucin y conexin de componentes VLSI
planeacin: distribucin de productos, programacin de la produccin, problema de la mochila,
comunicacin?

La bsqueda puede ser ciega o dirigida.

Se deben considerar ciertos aspectos ligados a una bsqueda:


- completez de la resolucin: encontrar la solucin si existe
- optimidad de la solucin: se usa funcin de coste g()
- complejidad en recursos (memoria, cpu): asociada a la dimensin del espacio

Nociones bsicas sobre grafos


- nodos (o vrtices) con sus predecesores y sucesores
- arcos (o aristas): orientados, incidente (o adyacente) a un nodo
- grafo conexo: por cada par de nodos existe un camino
- raz: nodo desde el cual se alcanza cualquier nodo
- hoja: nodo sin sucesor
- factor de ramificacin
- longitud de una trayectoria
- profundidad

rbol: grafo conexo sin ciclo y con una raz


Ej.: demostrar la unicidad de la raz de un rbol
- profundidad de un nodo de un rbol
Ms nociones
- coste de un arco: tiempo requerido (1 por omisin)
- coste de un nodo: tiempo para alcanzarlo

Bajo la condicin de repetir ciertos nodos, un grafo es convertible en rbol

La bsqueda en un rbol puede realizarse en profundidad (depth) o a lo ancho (breadth)


1

11 12 13 14

111 112 131 132 133 141

1121 1321

Ej.: - Enumerar los nodos visitados segn el tipo de recorrido


- Usar una cola y agregar o insertar los nodos visitados
- Escribir el algoritmo asociado a cada recorrido
- Proponer recorridos hbridos

Un riesgo obvio de la bsqueda en grafos es de caer en ciclos

Ej.: cmo evitar esto?

Otro riesgo al implementar esta clase de bsquedas es la explosin combinatoria

Ej.: calcularlo en el nmero de estados de un rbol 10_nario en funcin de la profundidad n


evaluar el tiempo requerido en funcin de la profundidad n

Un problema es NP-Complejo cuando NO se sabe si puede ser resuelto en un tiempo polinmico (Non-
Deterministic Polynomial Time)
Bsqueda heurstica
Requiere una funcin de evaluacin de la cual depende la eficiencia

Best-First Search

Principio:
- A cada ciclo, se evalan los posibles nodos descendientes y se escoge el mejor de todos
los encontrados (ojo un mismo nodo puede aparecer con varios costos, memorizar su
antecesor)
- Se terminan los ciclos al encontrar un nodo meta

Se pueden desechar buenas soluciones (ej. Ajedrez) o tomar un camino nada ptimo (ej. brazo
robtico)

Ej.: escribir el algoritmo

Algoritmo A*

La heurstica A* consiste en privilegiar los nodos de bajo costo estimado considerando la


distancia recorrida y evaluando la distancia pendiente de recorrer

Requiere una funcin de evaluacin de largo alcance

Una heurstica inversa aparta los nodos de alto costo estimado

Ej.: escribir el algoritmo

Visitar scalab.uc3m.es/~docweb/ia

Ej.: puede aplicarse al viajante de negocios?

Requisito de monotona

Ej.: puede aplicarse a un grafo?

Algoritmo de Dijkstra

Aplicable si no se cuenta con una funcin de evaluacin

La estrategia consiste a cada ciclo en agregar a los nodos visitados, el nodo alcanzable con menor
distancia

Genera la mejor ruta


Ilustracin (University of Birmingham):

G 5
B
1 2
14
F A C
10 4
22 12
E 12
D

Ej.: escribir el algoritmo

Comentarios

Los problemas reales presentan espacios de bsqueda de grandes dimensiones y/o la ausencia de
una funcin de evaluacin : Representacin ? / Manipulacin ?

Otras dificultades de aplicacin provienen del inconveniente de discretizar las acciones o de la


imposibilidad del retroceso

Un paradigma muy eficiente para la descripcin y manipulacin del conocimiento expresado


mediante rboles esta basado en la lgica de predicados

Ej.: parsing del lenguaje natural, visin, planificacin


Recocido Simulado (Simulated Annealing)

Inspirado del mtodo de enfriamiento controlado que permite lograr una estructura ms
cristalina: mejor imbricacin-adecuacin-ordenamiento-optimizacin

Integra la habilidad de evitar mnima/mxima locales

Principio
- Se acepta el cambio de estado si la diferencia de energa E es negativa
- De lo contrario se acepta con la probabilidad

p E , T = exp
E
T

- Se realizan varios ciclos con una temperatura inicial To lo suficiente elevada


- Luego se disminuye regularmente la temperatura, por ejemplo:

T t1 =. T t con cercano a 1
T t1 =1 / 1 . T t con cercano a 0

- Cuando la temperatura llega a 0, solo acta el efecto voraz (greedy)


- El proceso termina mediante uno de los criterios antes vistos

Ej.: Trazar p(E,1)

Puede demostrarse la convergencia hacia un mnimo pero el un tiempo de tratamiento es superior


al algoritmo exhaustivo!

Una alternativa consiste en reiniciar la bsqueda si el valor del estado actual es muy superior a
los mnimos anteriores

La principal dificultad es encontrar una analoga entre la temperatura y algn parmetro libre del
sistema a optimizar

Ej.: implementar el algoritmo

Ej.: programar el viajante de negocios para las siguientes 26 ciudades (cambio de estado)
Ilustracin STRIPS

Fikes & Nilsson 1971 (Standford Research Institute Problem Solver)

Planificador para un robot encargado de desplazar objetos entre varias salas

El mundo se representa por un conjunto de predicados describiendo la ubicacin de cada objeto


World = { AT( Robot, RoomA ), AT( Box1, RoomA ), AT( Box2, RoomB ) }

Una accin del tipo Move_Robot( RoomA, RoomB ) se define as


Move_Robot( X, Y )
Preconditions AT( Robot, X )
Delete World AT( Robot, X )
Add World AT( Robot, Y )
y conduce a la actualizacin del conjunto World

Las metas se representan como conjunto de predicados


Goals = { AT( Box1, RoomB ), AT( Box2, RoomA ) }

La principal hiptesis es la de un mundo cerrado

Para alcanzar la meta, el motor de inferencia trabaja hacia atrs, sus tareas incluyen
- escoger la meta actual del conjunto Goals
- encontrar las acciones adecuadas para satisfacer esta meta (instanciar)
- actualizar el conjunto Goals (agregar eventualmente las pre-condiciones) y World

Ej.: relacionar esta estrategia con una bsqueda en rboles

En salida el STRIPS produce una lista de acciones

Ej.: comentar las caractersticas de esta lista

STRIPS integra una estrategia de bsqueda llamada means-ends, cada alternativa es evaluada
en trmino de distancia a la meta y nicamente la ptima es escogida

Ej.: comentar la conveniencia de contar con esta estrategia

La heurstica se apega al planteamiento de este captulo: se describe un universo mediante un


conjunto de estados y a una lista de acciones generadoras de cambios potenciales

STRIPS introdujo una heurstica para la resolucin de cierta clase de problemas aparentada a la
lgica de predicados; integra una representacin uniforme y sencilla del universo adems de un
potente mecanismo de inferencia hacia atrs

No obstante, la problemtica y sus eventuales soluciones son considerablemente simplificados

Ej.: comentar

Con esta clase de problemas, una estrategia es casi indispensable para evitar caer en una explosin
combinatoria Todos los caminos llevan a Roma, pero

Você também pode gostar