Está en la página 1de 27

Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con

bsqueda ciega Implementacin

Tcnicas IA de Bsqueda
Clemente Rubio-Manzano
Departamento de Sistemas de Informacin. Universidad del Bo-Bo

April 2, 2013

Contenido de esta Presentacin


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

1 2 3 4

Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Qu son las tcnicas de bsqueda IA?


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

La bsqueda es un mtodo computacional utilizado para la resolucin de problemas cuya especicacin est basada en estados. Cules son estos problemas ?
Single-agent path-nding: problemas para encontrar rutas: en ciudades, laberintos, lugares, etc 2 Two-player games: juegos de dos adversarios: ajedrez, damas, tres en raya, etc 3 Constraint satisfaction: satisfaccin de restricciones: 8-reinas, jarras, etc
1

Por qu son necesarios ?


Problemas NP-Completos. Los estados por los que puede pasar el problema son demasiados (falta de memoria) (8-puzzle: 9!, ajedrez: 1040 , damas: 1020 ) Se supone que su resolucin requiere cierta inteligencia.

Tipos de bsqueda
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Sistemtica: si existe una solucin la encuentra.


Recorrido ordenado del espacio de estados Si un estado no puede ser solucin poda Ejemplos: Bsqueda Ciega, Bsqueda Informada (primero el mejor, A* y variantes), Bsqueda con Memoria Acotada, Bsqueda con Adversario, Bsqueda en Tiempo Real.

No sistemtica: puede que la solucin no se encuentre


Bsqueda local: Descenso por gradiente, Simulated annealing, Algoritmos genticos o Bsqueda tab. Se puede visitar varias veces el mismo estado.

Conceptos bsicos
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Estado: una posible conguracin de un problema.


Habr un estado inicial (conguracin de partida) y un estado objetivo (conguracin a la que se quiere llegar).

Espacio de estados: son todas la conguraciones que se pueden dar desde el estado inicial al objetivo. Operadores:
Accin que se realiza sobre un estado en un momento dado. Un operador es una aplicacin/funcin que modica un estado y genera un estado nuevo. No siempre puede actuar. hay ocasiones en las que un operador no puede aplicarse a un estado.

Solucin:
Secuencia de operadores que se requieren para pasar del estado inicial al objetivo.

Estrategias de bsqueda Ciega


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Anchura: asigna mayor prioridad aquellos nodos que se encuentran a menor profundidad. De esta manera nos estamos asegurando que la bsqueda se realiza por todo el espacio de estados. Se garantiza encontrar la solucin ptima pero su utilizacin en IA es prohibitiva debido a la explosin combinatoria que genera.

Estrategias de bsqueda Ciega


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Profundidad: tambin conocida como primero el mejor, es una variacin de la tcnica vuelta atrs (backtracking). En la vuelta atrs el siguiente estado a desarrollar es el que fue generado en ltimo lugar. En la bsqueda en profundidad el criterio de seleccin es el de mayor profundidad. No se garantiza encontrar una solucin ptima, depender de la conguracin inicial

Anchura
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Profundidad
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Comparacin
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: Lugar
Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Descripcin)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Descripcin del Problema:


Un tablero cuadrado (3x3) en el que hay situados 8 bloques cuadrados numerados (con lo cual se deja un hueco del tamao de un bloque). Un bloque adyacente al hueco puede deslizarse hacia l. El juego consiste en transformar una posicin inicial en la posicin nal mediante deslizamiento de los bloques.

Ejemplo: 8 puzzle (Estado inicial y nal)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Estado inicial (cualquier conguracin):

Estado nal (objetivo):

Ejemplo: 8 puzzle (Representacin)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Grca: como hemos estado mostrando. Interna/Implementacin:


Vector: [ 2 8 3 1 6 4 7 H 5 ] [ 2 8 3 4 5 H 7 1 6 ] Matriz: [ [ 2 8 3 ] [ 1 6 4 ] [ 7 H 5 ] ] Cadena: 2831647H5 Lenguajes IA: (( primera-izquierda 2). . . )

Nmero de estados = 9! (concepto de permutacin) Una permutacin es una combinacin ordenada (el orden importa) Hay dos tipos de permutaciones: con repeticin y sin repeticin (8 puzzle sin repeticin) 9! = 9 8 7 6 5 4 3 2 1 = 362880 estados

Ejemplo: 8 Puzzle (Operadores y su Descripcin)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Operadores:
Representan un conjunto nito de acciones bsicas que transforman unos estados en otros. Mover el hueco hacia arriba:
Aplicabilidad: es aplicable a estados que no tengan el hueco en la primera la Resultado de aplicarlo: intercambiar las posiciones del hueco y del bloque que est encima de este.

Ejemplo: 8 Puzzle (Denicin de la solucin del problema)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Secuencia de acciones a realizar para conseguir el objetivo. Secuencia de operadores cuya aplicacin desde el estado inicial obtiene el estado nal.

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Anchura)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Profundidad)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Profundidad)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Profundidad)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Ejemplo: 8 Puzzle (Estrategias de bsqueda, Profundidad)


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

Implementacin aproximada: pseudoclase


Tcnicas IA de Bsqueda Clemente RubioManzano Introduccin Estrategias de Bsqueda Ciega Ejemplos Bsqueda Ciega Resolucin automtica de puzzles con bsqueda ciega Implementacin

class OchoPuzzle { Cola colaEstados;//necesitaremos una cola estadoTablero;//algo para almacenar el estado actual por ejemplo una cadena "12345 public OchoPuzzle(estadoInicial){ estadoTablero=estadoInicial; colaEstados = new Cola(); }

public void buscarSolucionAnchura() { insertarEstadoTablero(estadoTablero);//insertar un estado en la cola sin repeti while( !colaEstados.esVacia() ){ moverHuecoArriba(colaEstados.primero())); moverHuecoAbajo(colaEstados.primero()); moverHuecoIzquierda(colaEstados.primero(); moverHuecoDerecha(colaEstados.primero()); colaEstados.quitar(); } } //insertar estado en cola mtodo insertarEstadoTablero(estadoTablero); //movimiento hacia arriba con estadoTablero mtodo moverHuecoArriba(estadoTablero); //movimiento hacia abajo con estadoTablero mtodo moverHuecoAbajo(estadoTablero); //movimiento hacia la izquierda con estadoTablero mtodo moverHuecoIzquierda(estadoTablero); //movimiento hacia la derecha con estadoTablero mtodo moverHuecoDerecha(estadoTablero); }

También podría gustarte