metodos de busquedas as
TRANSCRIPT
![Page 1: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/1.jpg)
IV. Métodos de Búsqueda
Estudiaremos los métodos de búsqueda para resolver problema de la IA
![Page 2: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/2.jpg)
4. Métodos de Búsqueda
Tópicos
Métodos de búsquedaÁrbol de estadoMétodos a ciegasFunción evaluadoraMétodos informados
![Page 3: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/3.jpg)
4.1 Métodos de búsquedas
Problema de Búsqueda:
Determinar una secuencia válida de estados (reglas) que comience con el estado inicial (eI) y termine con el estado meta (eM), esto es, un camino eI - eM
eI
eM
![Page 4: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/4.jpg)
4.1 Métodos de búsquedas
)( 2nO
40108010
La complejidad de los algoritmos de caminos mínimos es para un grafo de “n” nodos (estados).
Infelizmente el espacio de estado es en general demasiado grande, lo que torna inviable en general el uso de estas
técnicas para resolver problema de la IA. Así por ejemplo el problema del ajedrez presenta un espacio de estado de
nodos, esto es los algoritmos de caminos mínimos para resolver este problema requerirán una magnitud de
operaciones
¿Es posible aplicar los métodos de caminos mínimos?
4010
)( 2nO
![Page 5: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/5.jpg)
4.1 Métodos de búsquedas
Métodos de
Búsqueda
Métodos de búsqueda con información
Métodos de búsqueda ciega
Amplitud
Profundidad
No determinístico
Subiendo a la colina
Primero el mejor
A*
Ramificación y poda
![Page 6: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/6.jpg)
4.1 Métodos de búsquedas
Jugada B Jugada D Jugada EJugada CJugada A
SP
¿Qué jugada debe realizar la máquina?
Búsqueda ciega
Juega Negra
![Page 7: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/7.jpg)
4.1 Métodos de búsquedas
Jugada B
Mueve Cn
Jugada D
Pn come Tn
Jugada E
Cn come Cb
Jugada C
An come Reina
Jugada A
Pn come Pb
SP
¿Qué jugada debe realizar la máquina?
Búsqueda informada
Juega Negra
![Page 8: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/8.jpg)
4.2 Conceptos: Árbol de EstadoLos métodos de búsqueda se basan en el árbol de estado
Espacio de estados
Raíz
Sucesores
Estado Meta
Estado Inicial
Árbol de Estado
![Page 9: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/9.jpg)
4.2 Conceptos: Árbol de Estado
Como se construye un árbol de estado
Ejemplo: Vasijas de Agua
Ud. tiene dos vasijas vacías de 4 y 3 litros, y sin marcas. Llene exactamente 1 litro de agua en la vasija de 4. Considere que existe una bomba de agua.
Solución
Estado Inicial: (0,0)
Estado Meta: (1,0), (1,1), (1,2), (1,3)
![Page 10: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/10.jpg)
4.2 Conceptos: Árbol de Estado
Como se construye un árbol de estado
Regla Condición Nuevo Estado
Llene_4 x < 4 (4, y)
Llene_3 y < 3 (x, 3)
Vacía_4 x > 0 (0, y)
Vacíe_3 y > 0 (x, 0)
Pasa_43 0 < x y < 3
(x - m, y + m)
Pase_34 y > 0 x < 4
(x + n, y - n)
Reglas para el Problema de las Vasijas de Agua
donde: m = mínimo{x,3-y}, n = mínimo{y,4-x}
![Page 11: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/11.jpg)
4.2 Conceptos: Árbol de Estado
Como se construye un árbol de estado
raíz (0,0)
nivel 1 (4,0) (0,3)
nivel 2 (4,3)
(0,0) (1,3) (4,3) (0,0) (3,0)
Estado Meta
Árbol de Estado – Problema de las Vasijas
Estado Inicial
![Page 12: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/12.jpg)
4.3 Métodos ciegos (sin información)
Métodos de Búsqueda Ciega
Los métodos ciegos son procedimiento sistemáticos de búsqueda del estado meta en el árbol de estado.
Son llamados de métodos ciegos, porque usan estrategias de búsqueda que solo consideran la relación de precedencia entre estados. La información sobre el beneficio, utilidad, lucro de pasar de un estado para otro estado no es considerado.
Los métodos de búsqueda ciega más conocidos son:• Búsqueda en amplitud• Búsqueda en profundidad• Búsqueda no determinística (aleatorio)
![Page 13: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/13.jpg)
4.3.1 Búsqueda en Amplitud
Procedimiento
Inicie en el nodo raíz del árbol de estado con el estado inicial. Si el nodo corresponde al estado meta entonces termine, caso contrario genere los nodos sucesores no redundante del presente nivel (use el sistema de producción). Si alguno de los nodos del primer nivel corresponde al estado meta entonces termine, caso contrario genere los nodos sucesores no redundante del primer nivel, esto es los nodos del segundo nivel (use el sistema de producción). El proceso se repite hasta encontrar el estado meta o cuando no sea posible generar nuevos sucesores.
![Page 14: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/14.jpg)
4.3.1 Búsqueda en Amplitud Procedimiento
Iteración 0:
Nivel 0 nodo raíz
Test: verificar si es estado meta.
Si la rpta es SI termina, de lo contrario se genera los sucesores
no redundantes.
Iteración 1:
Nivel 0 nodo raíz
Nivel 1
Test: verificar si algún nodo del nivel 1 es estado meta.
Si la rpta es SI termina, de lo contrario se genera los sucesores
no redundantes del nivel 1.
![Page 15: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/15.jpg)
4.3.1 Búsqueda en Amplitud Procedimiento
Iteración 2:
nivel 0 nodo raíz
nivel 1
nivel 2
Test: verificar si algún estado del nivel 2 es estado meta Si la rpta es SI termina, de lo contrario Se genera los sucesores no redundantes del nivel 2.
![Page 16: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/16.jpg)
4.31 Búsqueda en Amplitud
Implementación – Listas
LE:
Lista de nodos en espera de proceso (nodos no comparados con el estado meta)
LV:
Lista de nodos ya procesado (nodos ya comparados con el estado meta)
![Page 17: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/17.jpg)
4.3.1 Búsqueda en Amplitud
Implementación – Listas
Con el fin de construir la solución (secuencia de estados desde el estado inicial hasta el estado meta) registraremos en LE y LV cada nodo (estado) con su antecesor.
![Page 18: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/18.jpg)
4.3.1 Búsqueda en Amplitud
Implementación – Listas
LE:PROCESAR
MP MQ NR
MQ NR PT PU
LE: REGISTROREGISTRO
P Q R
M N
T U
P
HIJOS(P)
Q R
M N
![Page 19: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/19.jpg)
4.3.1 Búsqueda en Amplitud Algoritmo - Listas
Test de Parada
Condición de éxitoEl estado a procesar es meta (F,P):= Primer(LE) Si ( P es Meta ) entonces PARE;
Condición de FracasoNo es posible seguir buscando Si ( LE = () ) entonces Escribir(“no hay solución”), PARE
![Page 20: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/20.jpg)
4.3.1 Búsqueda en Amplitud Algoritmo - Listas
Inicio
1. LE := ((O,Estado_Inicial)); LV:=();
Test de Parada2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P):= Primer(LE)4. Si ( P es Meta ) entonces
Determinar_Solucion, PARE;
Genera Sucesores:5. Adiciona_ultimo((F,P), LV);6. Elimina_primer(LE);7. Para (Nodo (Hijos(P) - LV)) Adicionar_ultimo((P,Nodo), LE);8. Ir a 2
![Page 21: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/21.jpg)
4.3.1 Búsqueda en Amplitud Algoritmo - Listas
Determinar_Solucion
Para determinar la solución, esto es el camino de estados que inicia en el estado inicial y termina en el estado meta, basta concatenar al estado meta su antecesor, y a este su antecesory así sucesivamente hasta alcanzar el estado inicial.
La búsqueda de los antecesores a los estados se debe hacerdesde LE y LV cuando se ha encontrado el estado meta.
![Page 22: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/22.jpg)
4.3.1 Búsqueda en Amplitud Algoritmo - Listas
Ejemplo: Determine un Camino c- i Considere la lectura en sentido horario
a
c d
g f
b
j
i e h
k l
![Page 23: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/23.jpg)
4.3.2 Búsqueda en Profundidad
Conceptos
• Una hoja de un árbol es un nodo del árbol que no tiene sucesores.
• Una rama de un árbol es un camino que inicia en el
nodo raíz y termina en un nodo hoja.
![Page 24: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/24.jpg)
4.3.2 Búsqueda en ProfundidadConceptos: Ramas
Ejemplo. Determine las ramas del siguiente árbol
Las ramas son: a, b, e a, b, a a, c a, d, g, h a, d, g, i.
a
b c
e a
d
g
i h
![Page 25: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/25.jpg)
4.3.2 Búsqueda en Profundidad
Procedimiento
El método consiste en una búsqueda por las ramas del árbol de estado.
Si en una de las ramas se encuentra el estado meta entonces el procedimiento termina, de lo contrario se pasa a investigar sobre otra rama no redundante. El procedimiento se repite hasta encontrar el estado meta (éxito) o hasta que no existan más ramas a investigar (fracaso).
![Page 26: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/26.jpg)
4.3.2 Búsqueda en Profundidad
Procedimiento
a
b c
e f
d
g
i h
![Page 27: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/27.jpg)
4.3.2 Búsqueda en Profundidad
Implementación – Listas
LE:
Lista de nodos en espera de proceso (nodos no comparados con el estado meta)
LV:
Lista de nodos ya procesado (nodos comparados con el estado meta)
![Page 28: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/28.jpg)
4.3.2 Búsqueda en Profundidad
Implementación – Listas
LE:PROCESAR
MP MQ
PT PU MQ
LE: REGISTRO
P Q R
M N
T U
P
HIJOS(P)
Q R
M N
![Page 29: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/29.jpg)
4.3.2 Búsqueda en Profundidad
Algoritmo - Listas
Inicio
1. LE := ((O,Estado_Inicial)); LV:=();
Test de Parada2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P):= Primer(LE)4. Si ( P es Meta ) entonces
Determinar_Solucion, PARE;
Genera Sucesores:5. Adiciona_ultimo((F,P), LV);6. Elimina_primer(LE);7. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE);8. Ir a 2
![Page 30: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/30.jpg)
4.3.2 Búsqueda en ProfundidadEjemplo: Determine un camino c-i.
Considere la lectura en sentido horario
a
c d
g f
b
j
i e h
k l
![Page 31: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/31.jpg)
4.3.3 Búsqueda No Determinística
Observaciones: Amplitud - Profundidad
• El estado a ser procesado en ambos métodos es el primero de la lista LE.
• Las listas generadas en los métodos de búsqueda en amplitud y en profundidad son registradas respectivamente al final e inicio de LE.
![Page 32: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/32.jpg)
4.3.3 Búsqueda No Determinística
Observaciones: Amplitud - Profundidad
P Q R
LE:
PROCESO
HIJOS(P) HIJOS(P)
Profundidad Amplitud
¿Es el primer nodo el mejor para ser procesado?
REGISTRO
![Page 33: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/33.jpg)
4.3.3 Búsqueda No Determinística
Procedimiento
En este método, el nodo a procesar es seleccionado aleatoriamente de la lista LE, los nodos sucesores son colocados al inicio o final de LE.
![Page 34: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/34.jpg)
4.3.3 Búsqueda No Determinística
Implementación – Listas
LE: PROCESAR
MP MQ NR
HIJOS(Q) MP NR
LE:REGISTROREGISTRO
Selección aleatoria
Conveniencia
![Page 35: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/35.jpg)
4.3.3 Búsqueda No Determinística
Algoritmo - Listas
Inicio
1. LE := ((O,Estado_Inicial)); LV:=();
Test de Parada2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P):= Aleatorio(LE)4. Si ( P es Meta ) entonces
Determinar_Solucion, PARE;
Genera Sucesores:5. Adiciona_ultimo((F,P), LV);6. Elimina_aleatorio(LE);7. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE);8. Ir a 2
![Page 36: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/36.jpg)
4.3.3 Búsqueda No DeterminísticaEjemplo: Determine un camino c-i.
Considere la lectura en sentido horario
a
c d
g f
b
j
i e h
k l
![Page 37: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/37.jpg)
4.3. Métodos de Búsqueda a Ciegas - Observaciones
- La complejidad de los métodos ciegos es no polinomial. - Si se conoce a priori que el estado meta está próximo (muy distante) al estado inicial es adecuado usar el método de búsqueda en amplitud (profundidad).
![Page 38: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/38.jpg)
4.4 Función Evaluadora (Mérito)
Definición
Sea un problema de inteligencia artificial y E su espacio de estado, una función que asocia a cada estado de E un número real, esto es:
f: E Res llamado de función de mérito o función evaluadora asociada a .
La función de mérito mide la utilidad de la información asociado al estado y puede significar riesgo, utilidad, costo, rentabilidad, distancia, ganancia, etc.
![Page 39: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/39.jpg)
4.4 Función Evaluadora (Mérito)
Ejemplo
P Q R
LE:
¿Cuál es el mejor nodo para ser procesado?
6 8 5
![Page 40: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/40.jpg)
4.4 Función Evaluadora (Mérito)
Ejemplo
Problema Función de mérito
Juego Utilidad asociada a cada posiblemovimiento
Agente viajero Distancia asociada a cadaposible ciudad a visitar
Tres en raya Mayor número de X colineales(caso juega X) donde no hay O
Vasija de Agua Litros faltantes para alcanzar lasolución
Selección de Proy. Utilidad asociada a cada proyecto
![Page 41: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/41.jpg)
4.5 Métodos Informados (con información)
Los métodos informados o con información son procedimiento sistemáticos de búsqueda del estado meta en el árbol de estado, que usan la información asociada a los estados para una mejor decisión en el proceso de búsqueda. Para evaluar la información de los estados considera la función evaluadora.
La información sobre el beneficio, utilidad, lucro de pasar de un estado para otro estado si es considerado en el proceso de búsqueda.
Los métodos de búsqueda informados más conocidos son:• Subiendo a la colina • Primero el mejor• A*• Ramificación y poda
![Page 42: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/42.jpg)
4.5.1 Método Subiendo a la Colina
Procedimiento
El procedimiento es semejante a la búsqueda en profundidad con la diferencia que los nodos sucesores son ordenados del mejor al peor valor de su función mérito antes de adicionarse a la lista LE. Esto es, el nodo a ser procesado será el “mejor” nodo sucesor, de acuerdo a la función de mérito.
![Page 43: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/43.jpg)
4.5.1 Método Subiendo a la Colina
Implementación – Listas
LE: PROCESAR
MP MQ NR
ORDEN (HIJOS(P)) MQ NR
LE:REGISTROREGISTRO
![Page 44: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/44.jpg)
4.5.1 Método Subiendo a la Colina
Implementación – Listas
La ordenación de los sucesores puede ser:
ordenación: función evaluadorade menor a mayor distancia, costo,
número de pasosde mayor a menor utilidad, ganancia,
beneficios
![Page 45: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/45.jpg)
4.5.1 Método Subiendo a la Colina
Algoritmo - Listas
Inicio
1. LE := ((O,Estado_Inicial)); LV:=();
Test de Parada2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P):= Primer(LE)4. Si ( P es Meta ) entonces
Determinar_Solucion, PARE;
Genera Sucesores:5. Adiciona_ultimo((F,P), LV);6. Elimina_primer(LE);7. Hijos_diferentes := Hijos(P) – LV8. Ordenar(Hijos_diferentes)9. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE);10. Ir a 2
![Page 46: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/46.jpg)
4.5.1 Método Subiendo a la Colina
Observaciones
El método no garantiza una solución exacta para problemas de optimización
Esto es debido por que la estrategia de selección solo considera el mejor nodo sucesor y no el mejor de los nodos de la lista de espera (LE)
![Page 47: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/47.jpg)
4.5.2 Método Primero el Mejor
Procedimiento
En este método el criterio de selección es dado por el nodo en LE que presenta “mejor” (mayor o menor) valor de la función de mérito.
Los nodos sucesores serán registrados como en profundidad, al inicio de LE, pero también pueden ser registrado al final, pues, el criterio de selección no depende del orden de como se registran los sucesores.
![Page 48: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/48.jpg)
4.5.2 Método Primero el Mejor
Implementación – Listas
LE: PROCESAR
MP-6 MQ-8 NR-5
HIJOS(Q) MP-6 NR-5
LE:LE:REGISTROREGISTRO
Si mejor = mayor
conveniencia
![Page 49: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/49.jpg)
4.5.2 Método Primero el Mejor
Algoritmo - Listas
Inicio
1. LE := ((O,Estado_Inicial)); LV:=();
Test de Parada2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P):= Mejor(LE)4. Si ( P es Meta ) entonces
Determinar_Solucion, PARE;
Genera Sucesores:5. Adiciona_ultimo((F,P), LV);6. Elimina_mejor(LE);7. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE);8. Ir a 2
![Page 50: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/50.jpg)
4.5.2 Método Primero el Mejor
Observación
El método es adecuado para resolver problemas de optimización, garantiza solución óptima, pero puede requerir mayor número de operaciones.
![Page 51: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/51.jpg)
4.5.3 Algoritmo A*
Procedimiento
Este algoritmo es similar al algoritmo “primero el mejor” con la única diferencia que la función evaluadora es definido como sigue:
)()()( ehegef
Donde:f(e) es la menor distancia (costo) desde el “estado inicial” hasta “e”
h(e) es una sobre-estimación de la menor distancia (costo) de “e” al estado meta tal que h(estado meta)=0.
![Page 52: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/52.jpg)
4.5.3 Algoritmo A*
Estimación de h
Problema Puzzleh1(e): número de fichas que en el estado “e” se encuentra
desordenados
h2(e): suma de las distancias ortogonales de cada ficha respecto
a su posición ordenada.
![Page 53: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/53.jpg)
4.5.3 Algoritmo A*
Estimación de h
Problema Agente Viajeroh1(e): número de ciudades por recorrer x distancia de la mayor
arista no recorrida
h2(e): número de ciudades por recorrer x la distancia promedio
de las aristas no recorridas.
![Page 54: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/54.jpg)
4.5.3 Algoritmo A*
Observación
El algoritmo A* es adecuado para resolver problemas de optimización, pero no garantiza solución óptima.
![Page 55: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/55.jpg)
4.6 Método de Ramificación y Poda
![Page 56: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/56.jpg)
4.6 Método de Ramificación y Acotación
Tópicos
Conceptos: Ramificar y Acotar
El Procedimiento de Ramificación y Acotación
Resolución de Problemas
![Page 57: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/57.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Ramificar
Se entiende por ramificar un nodo de un árbol al proceso de generar los nodos sucesores a este.
Todos los métodos ciegos y aquellos que usan información adicional son métodos de ramificación, pues todos ellos incluyen un proceso de ramificación
![Page 58: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/58.jpg)
4.6.1 Conceptos: Ramificar y Acotar
Ejemplo - Ramificar
Ramificación del nodo a
a
dcb
Ramificar
![Page 59: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/59.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Criterios de Selección del Nodo a Ramificar
Primero el MejorEl nodo que presenta “mejor” (mayor o menor) valor de la función de mérito será el primero a ser procesado
FIFO (First Input First Output)El primer nodo a entrar en LE será el primero a ser procesado
LIFO (Last Input First Output)El último nodo a entrar en LE será el primero a ser procesado
Conveniencia: los nodos se registran al inicio
![Page 60: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/60.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Ejemplo - Criterio de Ramificación
4 5 2 9 9 8
BC BD EF AG AC FG
Nodo a Ramificar:
Primero el Mejor: AG o AC (mejor = mayor)
EF (mejor = menor)
LIFO: BC
FIFO: FG
LE
![Page 61: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/61.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Acotación (poda)
El proceso de simplificación de la búsqueda a través de la poda de ramas o sub-árboles del
árbol de estado que presentan peores soluciones, es llamado de proceso de
acotación.
![Page 62: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/62.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Ejemplo de Acotación
C1 C2
23 34
Dos caminos conducen a un mismo nodo
e
a
e
![Page 63: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/63.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Actualización de la Cota
Asociado a cada estado procesado se tiene un valor de la función de mérito, a este número se le llama de cota del nodo.
Si en el proceso de ramificación es generado un nodo ya procesado y con mejor valor de función de mérito que la cota asociada a este, entonces la cota de este nodo deberá ser actualizado por el valor de la función de mérito. En caso contrario, el nuevo nodo generado será excluido, porque generará igual o peor solución al existente.
![Page 64: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/64.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Ejemplo de Acotación (problema de mínimo)
C1 C2
23 34
COTA = 23
Dos caminos conducen a un mismo nodo
e
a
e
![Page 65: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/65.jpg)
4.6.1. Conceptos: Ramificar y Acotar
Ejemplo de Acotación (problema de mínimo)
C1 C3
23 21
COTA = 23 21
Dos caminos conducen a un mismo nodo
e
a
e
![Page 66: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/66.jpg)
4.6.2. El Procedimiento de Ramificación y Acotación
Implementación – Listas
P Q R
(HIJOS(Q)) P R
LE:REGISTROREGISTRO
LE:PROCESARPROCESAR Criterio de
Ramificación
Conveniencia
ACTUALIZAR COTAS: LVACTUALIZAR COTAS: LV
![Page 67: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/67.jpg)
4.6.2. El Procedimiento de Ramificación y AcotaciónAlgoritmo de Ramificación y Acotación – Primero el Mejor
Inicio1. LE := ((Estado_Inicial)); LV := (Estado_Inicial); Cota(Estado_Inicial): =0; Test de Parada:
2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. (F,P) := Mejor(LE); /* F es el antecesor de P4. Si ( P es Meta ) entonces Determina_solucion, PARE;Ramifica y Acota:
5. Elimina_Mejor(LE);6. Para ( Nodo Hijos(P) )6.1 Si ( Nodo LV) 6.2 Adiciona_Inicio((P,Nodo)), LE)6.3 Cota(Nodo) := f (Nodo)6.4 Adiciona_Ultimo((P,Nodo),LV)
Si_No 6.5 Si ( f (Nodo) < Cota(Nodo) )6.6 Adiciona_Inicio(P,Nodo), LE)6.7 Cota(Nodo) = f (Nodo)6.8 Adiciona_Ultimo((P,Nodo),LV)
Fin_Si; Fin_Para;7. Ir a 2
![Page 68: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/68.jpg)
4.6.2. El Procedimiento de Ramificación y Acotación
Observaciones
El método garantiza una solución exacta para problemas de optimización
Este es el método más eficiente de los métodos ciegos y de aquellos que usan información adicional.
![Page 69: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/69.jpg)
4.6.3. Resolución de Problemas
Algoritmo de Algoritmo de PropósitoPropósito
GeneralGeneral
PROBLEMA DEPROBLEMA DEIAIA
Algoritmo de PropositoAlgoritmo de PropositoEspecialEspecial
![Page 70: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/70.jpg)
4.6.3. Resolución de ProblemasAlgoritmo de Propósito General
Se refiere a un algoritmo que pueda servir para resolver cualquier problema de IA.
Para problemas de Optimización, el paso 4 (test de parada) deberá ser sustituido por alguna condición de optimalidad (condición que cuando verificada indica que una solución fue encontrada).
Este algoritmo en principio podrá resolver cualquiera problema de optimización, entretanto será por lo general altamente ineficiente
![Page 71: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/71.jpg)
4.6.3. Resolución de Problemas
Algoritmo de Propósito General
Parámetros de Entrada:
Estado inicialCondición de optimalidad o Test de
ParadaSistema de producciónFunción de evaluadora
![Page 72: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/72.jpg)
4.6.3. Resolución de ProblemasAlgoritmo de Propósito Especial
Se refiere a un algoritmo desarrollado para resolver un problema específico de IA, no sirviendo para resolver algún otro problema.
Para problemas de optimización el test de parada (paso 4) deberá ser sustituido por alguna condición de optimalidad, y todos los otros pasos deberán ser modificados aprovechando la estructura particular y específica del problema a resolver.
Este algoritmo en general presenta buena eficiencia respecto a los algoritmos de propósito general, razón por la cual son los más usados para resolver problemas del tipo de optimización.
![Page 73: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/73.jpg)
6.4.3. Resolución de Problemas
Algoritmo de Propósito Especial
Parámetros de Entrada:Estado inicialCondición de optimalidad o Test de
ParadaSistema de producciónFunción de evaluadora
![Page 74: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/74.jpg)
6.4.3. Resolución de Problemas
Agente Viajero - Representación
9
3 3 7 5 6 6 3
4 4 8
4
Red de transporte entre ciudades
2 12
32
42
Ciudad de Destino Ciudad de Origen
1 2 3 4
1 - 3 3 5
2 9 - 4 3
3 7 - 8
4 6 6 4 -
![Page 75: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/75.jpg)
6.4.3. Resolución de Problemas
Agente Viajero
Estado:Lista de ciudades que se visita
Estado Inicial:Ciudad de partida[1]
![Page 76: Metodos de Busquedas as](https://reader037.vdocuments.site/reader037/viewer/2022110119/5571f90449795991698e99e1/html5/thumbnails/76.jpg)
6.4.3. Resolución de Problemas
Algoritmo de Propósito Especial Agente Viajero
Inicio1. LE:=([1]); UB:=+∞Test de Parada:2. Si ( LE = () ) entonces Escribir(“no hay solución”), PARE; 3. LISTA := Mejor(LE);4. P:= Ultimo(LISTA);5. Si (L(LISTA) = n+1) entonces Escribir(“solución=”,LISTA), PARE;Ramifica y Acota:6. Elimina_mejor(LE);7. Para ( Nodo Hijos(P) )7.1 W_L := LISTA; 7.2 Adiciona_ultimo(Nodo, W_L);7.3 Si (f (W_L) < UB) entonces 7.4 Adiciona_inicio(W_L, LE)7.5 Si (L(W_L)=n+1) entonces UB = f (W_L); Fin-Para8. Ir Para 2