Está en la página 1de 55

Algoritmos de

búsqueda

Edgar A. Catalán Salgado


¿Cual fue el mas facil y cual el mas dificil?

¿Que se requiere para poder resolver los laberintos anteriores?

¿Que tanto se conoce del laberinto?

¿Cuales son las reglas?


Requisitos para solucionar un problema

Además de la definición de la estructura del


agente(Sensores y actuadores. Se requiere


● Tener un punto inicial
● Definir una razón de ser
○ Llegar a un lugar en específico
○ Llegar a un lugar cumpliendo requerimientos
○ Recorrer el laberinto recolectando objetos que
aparecen al azar
○ Conocer el todo el terreno
○ Eliminar enemigos que aparecen al azar
○ Reparar fallas que se detecten
A través de la interpretación de la información percibida por los sensores el agente es capaz de determinar
cuales son son sus acciones posibles y a través de las reglas conocer las consecuencias de ejecutar estas

A través de los actuadores se ejecuta una determinada acción, y la lógica interna del agente puede
interpretarla:

A. Girar motor A, x grados


B. Moverse a posición (X,Y)
C. Girar para que la parte frontal mire al norte
D. Avanzar 10 cm al sur

El proposito es que exista una logica que mapee la percepcion recibida en un determinado momento T en
acciones viables y coherentes para dicho momento.
Para ejemplifcar la importancia de definir una estructura adecuada del agente, suponga el
problema de encontrar la ruta en un laberinto.

Considere lo siguiente:

1. El sensado(S) como el proceso para conocer las posibles acciones(A) que se pueden
ejecutar en un determinado punto (Renglón, Columna)
2. El objetivo es encontrar una sola ruta (cualquiera desde el punto inicial al final.
3. No aplica ninguna medida de costo , beneficio o ganancia.
4. El regreso no es considerado como opción.
Ejemplo de agentes (1) Empieza viendo Derecha, 6 acciones despues:

1. Inicio (A10, Dir Derecha)


Acciones a. S(F)->S(D)->S(B10)->C
Sensores
● Moverse hacia delante →A(A10, DD)=[G(90), G(180), G(270), M]
● Sensor frontal ● Girar a la izquierda x(90,180,270)
2. Girar Izquierda 90
grados a. S(F)->S(A)->S(A9)-> Bloq

→A(A10,DA)=[G(90),G(180)]
Inicio: Despues de N Movimientos
3. Girar Izquierda 90
a. S(F) ->S(?)->N/A

→ A(A10,DI)=[G(90)]

4. Girar Izquierda 90
a. S(F)->S(A11)->Bloq

→A(A10, DB)=[]

5. Analizando la informacion de los 4 pasos anteriores


a. Moverse (A10, D)->Ocupar(B10)
Ejemplo de agente (2)
Sensores

● Lo que hay en las posiciones: Acciones 1. Inicio (A10)


○ Arriba(A) a. S(A)->S(A9)-> Bloq
○ Abajo(B) ● Moverse hacia la casilla que esta arriba b. S(B)->S(A11)->Bloq
○ Izquierda(I) ● Moverse hacia la casilla que esta abajo c. S(D)->S( B10)->Camino
○ Derecha(D) ● Moverse a la casilla que esta a la izquierda d. S(I)->N/A
● Moverse a la casilla que esta a la derecha
→A(A10)=[D]

Inicio: Despues de ejecutar 6 acciones: 2. Moverse(A10, D)->Ocupar(B10)


a. S(B9,B11,C10,A10)

→A(B10)=[A]

3. Moverse(B10, A)=Ocupar(B9)
a. S(B8, B10, A9, C9)

→ A(B9)=[A]
Ejemplo de agente (3) Acciones

● Avanzar hacia arriba


Sensores ● Avanzar hacia abajo
● Avanzar hacia la izquierda
● Lo que hay en las posiciones: ● Avanzar hacia la derecha
○ Arriba(A)
Donde avanzar indica que se tomara una dirección y se seguira hasta que:
○ Abajo(B)
○ Izquierda(I) A. Llegue a una encrucijada
○ Derecha(D) B. Sea un camino muerto
C. La meta buscada

Inicio: 1 accion despues: 1. Inicio (A10)


a. S(A)->S(A9)-> Bloqueado
b. S(B)->S(A11)->Bloqueado
c. S(D)->S( B10)->Camino
d. S(I)->N/A -> Bloqueado

→ A(A10)=[D]

2. Moverse(A10, D)->Avanzar(A10, D))-->Ocupar(D7)


a. S(D6,D8,E7)

→A(D7)=[A,B,D]
Agentes que solucionan problemas

Después de definida la arquitectura del agente. Podemos considerar 4 fases en la resolución del
problema:

1. Definición de la(s) meta(s) u objetivo(s)


2. Definición del problema
a. Definición de estados
b. Definición de Acciones
c. Definición de reglas
3. Búsqueda
4. Ejecución
Problemas de búsqueda y soluciones

Un problema de búsqueda se puede definir de la siguiente forma:

1. un conjunto de posibles estados, conocido como espacio de estados


2. El estado inicial
3. Un conjunto de uno o mas estados objetivo
4. Un conjunto de acciones posibles
5. Modelo de transición, que permite obtener el resultado de ejecutar una acción en un
determinado estado
6. Una función de costo y/o ganancia

Una secuencia de acciones será un camino, y el camino del estado inicial al objetivo se llama
solución
El conjunto de estados S se define de acuerdo al problema. En terminos generales es:

S={s1, s2,..., sn}

Para nuestro laberinto: R=[1,2,...], C=[A,B,....], D=[A,B,D, I]

1. Opcion 1:

2. Opcion 2

3. Para el caso del agente que solo tiene el sensor frontal:


El estado inicial:

Opcion 1:

Opcion 2:

Para el caso del agente que solo tiene el sensor frontal:


El estado(s) finales:

Opcion 1:

Opcion 2:

Para el caso del agente que solo tiene el sensor frontal:


Acciones Agente 1: Acciones Agente 3:
1. Girar 90
2. Girar 180 1. Avanzar Arriba
3. Girar 270 2. Avanzar Abajo
4. Moverse 3. Avanzar Derecha
4. Avanzar Izquierda

Acciones Agente 2: Donde Avanzar significa que va a tomar el camino


indicado y se detendra hasta que:
1. Moverse Arriba
2. Moverse Abajo A. Llegue a una encrucijada
3. Moverse Derecha B. Llegue a un camino muerto
4. Moverse Izquierda
C. Llegue a un estado final
Reglas Agente 2:

1. Moverse (Arriba, s)= M(A,(r,c))= Ocupar(r-1, c)


2. Moverse (Abajo,s )= M(A,(r,c))= Ocupar(r+1, c)
3. Moverse (Derecha,s )= M(A,(r,c))= Ocupar(r, c+1)
4. Moverse (Izquierda,s )= M(A,(r,c))= Ocupar(r, c-1)
Funcion de costo:

Podemos definir dos funciones de costo:

1. Numero de decisiones tomadas


2. Numero de casillas ocupadas durante el recorrido
Formulación del problema

La formulación de un problema dado es un modelo, como descripción matemática y no el objeto


real. De esta forma se quita el detalle de lo que no se requiere para el problema en cuestión

Abstracción es el proceso de quitar el detalle.

1. El nivel de abstracción necesario depende del problema.


2. Una correcta abstracción va de acuerdo a una adecuada definición del problema .
3. Una abstracción es valida si para la solución en el espacio abstracto se puede generar una
solución en el espacio real(detallado).
Problema estandarizado. - Es aquel con la intención de ilustrar o ejercitar metodos de solucion.
Dan una concisa y exacta descripción y por lo tanto son adecuados para evaluar y comparar el
rendimiento de los algoritmos.

Problema del mundo real. Son aquellos cuya solución la gente realmente usa y cuya formulación
es idiosincrática y no estandarizada .
Problema estandarizado

Un mundo en malla permite representar varios problemas estandarizados

1. Es un mundo en un arreglo rectangular bidimensional de celdas cuadradas


2. Los agentes se mueven de celda en celda de acuerdo a las reglas.
3. Las celdas pueden obtener objetos u otras características
4. Ejemplos:
a. Aspiradora
b. Acertijo de los bloques deslizante (8-puzzle en una matriz 3x3, 15-puzzle en una matriz 4x4)
c. Laberintos
Problemas del mundo real

1. Viajero de ventas
2. Navegación robótica
3. Ensamblaje automático
Algoritmos de búsqueda

1. Para un problema de búsqueda se genera una solucion o indicación de falla.


2. Los algoritmos considerados generan árboles a partir del espacio de estados formando
varios caminos desde el estado inicial,.
a. Cada nodo corresponde a un estado del espacio de estados
b. Cada arista corresponde a una acción.
c. La raiz es el estado inicial del problema.
Diferencia entre el espacio de estados y el árbol de búsqueda

El espacio de estados describe el posiblemente infinito conjunto de estados y las acciones que
permiten la transición entre estados

El arbol de busqueda describe los caminos entre los estados avanzando hacia la meta. Se podrían
tener múltiples caminos hacia un determinado estado, por lo ese estado estaría conectado a
mas de un nodo, pero cada nodo sólo tiene un camino a la raiz.
Conceptos adicionales

Expansión de un nodo.- Es cuando, considerando las posibles acciones para ese estado, se genera
un nuevo nodo

Nodo hijo o sucesor.- Es un nodo generado por la expansión de su respectivo nodo padre.

Nodo Padre.- Es aquel que como producto de una expansión genero a sus respectivos nodos
hijos

Frontera.- Es el conjunto de nodos hijos que todavia no han sido expandidos , la cual separa el
espacio de búsqueda en dos regiones ( el interior con todos los estados expandidos y la región
exterior donde estan los estados que todavía no se alcanzan.
Algoritmos de
búsqueda no
informada

Edgar A. Catalán Salgado


Los algoritmos de busqueda no informada, se llaman asi por que usan metodos generales para la
resolución del problema por lo que no dependen de información propia del problema
Recorrido por profundidad
Objetivo:

● llegar a D

Criterio:

● Priorizar por la rama de mas a la izquierda

Resultado:

Recorrido={A, B, X, K, L, Y, C, D}

Camino ideal a seguir

C={A,D}
Recorrido por profundidad

Objetivo:

● llegar a D

Criterio:

● Priorizar la rama de la derecha:

Recorrido

R={A, D}

Camino ideal a seguir

C={A,D}
Búsqueda por profundidad

Es como el recorrido en profundidad, solo que aquí los nodos se van creando conforme
se realiza la búsqueda

Una vez tomada una elección, obtendrá todos los posibles resultados de dicha elección
antes de investigar que pasa con otra.

De acuerdo a un criterio predefinido va realizando las elecciones consecutivamente. Si


llega a un punto en el que ya no puede avanzar, entonces se regresa a la última elección y
elige otra opción
Busqueda por profundidad

● Inicio 10,A Objetivo

Criterio: Arriba (A), Derecha(D), ● Llegar al punto (2,0)


Izquierda (I), Abajo (B)

Criterio Prioridad: Arriba (A), Derecha(D), Izquierda (I), Abajo (B)


Busqueda por profundidad

Entorno

Punto inicial (10,A)

Objetivo

● Llegar al punto (2,0)


Busqueda por profundidad
Definición del agente a utilizar
Acciones
Sensores
● Avanzar automáticamente en una dirección hasta
● Lo que hay en la celda de arriba del agente
● Lo que hay en la celda de abajo que:
● Lo que hay en la celda de la izquierda ○ Encuentre una bifurcacion
● Lo que hay en la celda de la derecha ○ Sea camino cerrado
○ Encuentre la meta
Prioridad: Arriba (A), Derecha(D), Izquierda (I), Abajo (B)
O
Nodos recorridos: {10A, 7D, 4D, 2D,,2E,3B, 4F,2I,1I, 2O}

Ruta ideal R={(10A, D), (7D, A), (4D, D), (4F, D), (2I,D),(2O,)}
Búsqueda por Anchura

Del nodo inicial se generan todos sus hijos, posteriormente se generan todos los hijos de los
hijos y asi sucesivamente.
Busqueda por anchura
Nodos recorridos: {10A, 7D, 4D, 7G, 9D, 2D, 4C, 4F, 9H, 15D, 3B, 2E,
2I, 5F, 9I, 15H, 1I, 2O}

Ruta ideal R={(10A, D), (7D, A), (4D, D), (4F, D), (2I,D),(2O, Ø)}

También podría gustarte