Búsqueda heurística Prof. Constantino Malagón



Documentos relacionados
Métodos Heurísticos en Inteligencia Artificial

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Resolución de Problemas

ALGORITMO HILL CLIMBING

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Ingeniería en Informática

Tema 2. Espacios Vectoriales Introducción

Operación Microsoft Access 97

Actividades con GeoGebra

PROCEDIMIENTOS DE TÍTULOS. Para solicitar los títulos al finalizar determinadas enseñanzas es preciso seguir un proceso en la aplicación Plumier XXI.

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Movimiento a través de una. José San Martín

MANUAL COPIAS DE SEGURIDAD

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Base de datos en Excel

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

PROPUESTAS COMERCIALES

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

TEMA 3: MÉTODO CONTABLE. LAS CUENTAS

Configuración de DNS seguros

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

MANUAL PARA LA GESTIÓN DEL PRÉSTAMO ENTRE LAS BIBLIOTECAS DE LA RED DE LECTURA PÚBLICA DE EUSKADI

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Ecuaciones de primer grado con dos incógnitas

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Control Estadístico del Proceso. Ing. Claudia Salguero Ing. Alvaro Díaz

PREVISIONES DE TESORERÍA

Capítulo 12: Indexación y asociación

Tema 3. Medidas de tendencia central Introducción. Contenido

hay alguien ahi? por Marcelino Alvarez

ÍNDICE...1. Pág. 1/21

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Caso práctico de Cuadro de Mando con Tablas Dinámicas

UNIDAD 1. LOS NÚMEROS ENTEROS.

DEPARTAMENTO DE EDUCACIÓN FÍSICA CURSO 2011/2012

Centro de Capacitación en Informática

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

Capitulo V Administración de memoria

Ampliación de Estructuras de Datos

UTILIZACIÓN DE UNA CUENTA DE CORREO ELECTRÓNICO (NUEVO) Acceso al correo electrónico

CONCLUSIONES DEL ESTUDIO DE LOS HÁBITOS TURÍSTICOS DE LOS HABITANTES DE BARCELONA

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO

Subespacios vectoriales en R n

Tratamiento del Riesgo

App para realizar consultas al Sistema de Información Estadística de Castilla y León

FOCO- LIQUIDACIÓN: DUDAS MÁS FRECUENTES

Diseño de bases de datos Diapositiva 1

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

Codex.pro. Módulo de gestión económica.

6.1. Conoce la papelera

Sistemas de numeración

ANALISIS MULTIVARIANTE

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

3. Consideremos el puzzle-8 descrito en clase y sea el estado objetivo, como de costumbre,

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

HERRAMIENTAS DE ACCESS ACCESS Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Transparencia Salamanca: Portal de Transparencia en pequeños municipios.

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Manual de rol gestor de GAV para moodle 2.5

La ventana de Microsoft Excel

ANÁLISIS DE DATOS NO NUMERICOS

Fundamentos de los Sistemas Operativos (GII) Examen Final 15 de Junio de SEGUNDA PARTE - SOLUCIONES

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Ejercicio de estadística para 3º de la ESO

Reconocimiento de Créditos Automatizado. Módulo de Gestión

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

Aproximación local. Plano tangente. Derivadas parciales.

mus REGLAMENTO OBJETIVO DEL JUEGO

Gestión de Retales WhitePaper Noviembre de 2009

GENERACIÓN DE TRANSFERENCIAS

QUE HACER CUANDO NO ESTEMOS CONFORMES CON UNA PERITACIÓN O NO SE OS ENTREGA? RECOMENDACIONES A SEGUIR:

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Curso Internet Básico - Aularagon

Contabilidad Tabla de Pagos / Cobros.

DIAGRAMA PERT - EJEMPLO

1. Dominio, simetría, puntos de corte y periodicidad

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Conexión de GPS a Open CPN.

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

Covarianza y coeficiente de correlación

EL TEMA ES. Talleres de reparación de vehículos automóviles REVISTA KONTSUMOBIDE 2012 Nº 16

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

SISTEMAS DE NUMERACIÓN. Sistema decimal

Guía Notas Parciales. Intermedio

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Año: 2008 Página 1 de 31

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

MANUAL DE USUARIO SECTOR PRIVADO (RESUMEN)

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas

U.D.5: Diagramas de Gantt y PERT

UTILIDAD DE EXPORTACIÓN DE ASIENTOS A CONTAPLUS

Criterios de Selección de Inversiones: El Valor Actual Neto y sus derivados *.

Transcripción:

Búsqueda heurística Prof. Constantino Malagón Area de Computación e Inteligencia Artificial 1

Búsqueda heurística Los métodos de búsqueda heurística disponen de alguna información sobre la proximidad de cada estado a un estado objetivo, lo que permite explorar en primer lugar los caminos más prometedores. Son características de los métodos heurísticos: No garantizan que se encuentre una solución, aunque existan soluciones. Si encuentran una solución, no se asegura que ésta tenga las mejoresas propiedades (que sea de longitud mínima o de coste óptimo). En algunas ocasiones (que, en general, no se podrán determinar a priori), encontrarán una solución (aceptablemente buena) en un tiempo razonable. Area de Computación e Inteligencia Artificial 2

Búsqueda heurística En general, los métodos heurísticos son preferibles a los métodos no informados en la solución de problemas difíciles para los que una búsqueda exhaustiva necesitaría un tiempo demasiado grande. Esto cubre prácticamente la totalidad de los problemas reales que interesan en Inteligencia Artificial. La información del problema concreto que estamos intentando resolver se suele expresar por medio de heurísticas. El concepto de heurística es difícil de aprehender. Newell, Shaw y Simon en 1963 dieron la siguiente definición: "Un proceso que puede resolver un problema dado, pero que no ofrece ninguna garantía de que lo hará, se llama una heurística para ese problema". Area de Computación e Inteligencia Artificial 3

Búsqueda heurística Si nos planteamos seguir concretando como aprovechar la información sobre el problema en sistemas de producción, la siguiente idea consiste en concentrar toda la información heurística en una única función que se denomina función de evaluación heurística. Se trata de una función que asocia a cada estado del espacio de estados una cierta cantidad numérica que evalúa de algún modo lo prometedor que es ese estado para acceder a un estado objetivo. Habitualmente, se denota esa función por h(e). Area de Computación e Inteligencia Artificial 4

Función heurística La función heurística puede tener dos interpretaciones. Por una parte, la función puede ser una estimación de lo próximo que se encuentra el estado de un estado objetivo. Bajo esta perspectiva, los estados de menor valor heurístico son los preferidos. Pero en otros casos puede suceder que lo que convenga sea maximizar esa función. Area de Computación e Inteligencia Artificial 5

Ejemplos de funciones heurísticas Veamos ejemplos de heurísticas para algunos problemas concretos. Para el problema del 8-puzzle tenemos la siguientes heurísticas: a) La basada en la distancia Manhattan (o distancia taxi). Se asocia a cada casilla un número que es la suma de las distancias horizontal y vertical a su posición en el tablero objetivo (esto es, la suma de diferencias de sus coordenadas x e y). La función heurística es la suma de las distancias de cada una de las casillas (excluyendo la que se encuentra vacía). 2 3 1 8 4 7 6 5 Fig. 1 H(Ei)=2 (1 de la casilla 1 más 1 de la casilla 8) Area de Computación e Inteligencia Artificial 6

Ejemplos de funciones heurísticas b) Otra heurística, mucho más simple, consiste en contar el número de casillas que están fuera de su sitio (respecto al tablero objetivo). Es una heurística más pobre que la anterior, puesto que no usa la información relativa al esfuerzo (número de movimientos) necesario para llevar una pieza a su lugar. Ejercicio. Otra heurística posible para el 8-puzzle, si el estado objetivo es el recogido en la figura 1, es la siguiente: h(e) = 3 * seq(e), donde seq(e) cuenta 1 si hay un dígito central en e y 2 por cada dígito x no central que no es seguido (en el sentido de la agujas del reloj) por su sucesor x+1 (imponemos por convenio que 8 + 1 = 1). Calcular el valor de esta heurística para los estados que aparecen en la figura 1. Area de Computación e Inteligencia Artificial 7

Ejemplos de funciones heurísticas El problema del viajante. Estado inicial: un viajante se encuentra en una capital de provincia. Estado meta: quiere viajar a otra capital por la mejor ruta posible (la más corta) Medios: Las capitales de provincia colindantes están unidas por carreteras; se dispone de un mapa con la disposición de las provincias y sus "coordenadas" en kilómetros respecto al "centro" (por ejemplo, Madrid, con coordenadas (0,0)). Una función heurística para ese problema consiste en asignar a cada estado un valor que es la distancia aérea (en línea recta) con el estado objetivo. Dicha distancia es la distancia euclídea entre las coordenadas de dos ciudades. Se elige una ciudad como siguiente en el camino cuando la suma de la distancia a la ciudad actual más la distancia aérea a la meta sea la menor. Area de Computación e Inteligencia Artificial 8

Ejemplos de funciones heurísticas Una persona quiere viajar de Madrid a Santander considerando el mapa de carreteras de la fig. 2. Fig. 2 Area de Computación e Inteligencia Artificial 9

Ejemplos de funciones heurísticas Cuatro alternativas en la primera etapa: Cáceres, Palencia, Zaragoza y Valencia. Función heurística considerando la distancia aérea: Distancia (Madrid, Santander)=Distancia(Madrid, Palencia)+Distancia aérea (Palencia, Santander) que es más pequeña que la obtenida a través de Cáceres Distancia (Madrid, Santander)=Distancia(Madrid, Cáceres)+Distancia aérea (Cáceres, Santander) Función heurística considerando distancias parciales: Distancia (Madrid, Santander)=Distancia(Madrid, Palencia)+Distancia (Palencia, Santander) Area de Computación e Inteligencia Artificial 10

Métodos de escalada Se llaman de escalada (o de ascensión a la colina) porque tratan de elegir en cada paso un estado cuyo valor heurístico sea mayor que el del estado activo en ese momento. Se dividen en dos grupos: Los métodos irrevocables, que no preven la vuelta a un lugar del espacio de estados si el camino resulta inadecuado. Los métodos tentativos en los que sí podemos volver hacia atrás si prevemos que el camino elegido no es el más adecuado. Area de Computación e Inteligencia Artificial 11

Métodos de escalada irrevocables La lista ABIERTA no puede poseer más de un elemento, es decir, sólo se mantiene en expectativa un único camino. El modo en que se determina qué estado es el que sigue a uno dado, da lugar a dos variantes de los esquemas en escalada irrevocables: La escalada simple. En este método, en el momento es que se encuentra un estado E que es más favorable que el que se está expandiendo, dicho estado E es devuelto sin generar el resto de estados hijos. La escalada por la máxima pendiente. En este caso, se generan todos los hijos de un estado, se calculan sus valores heurísticos y se determina uno de los estados de mejor valor heurístico; se compara dicho valor con el de el estado expandido y si es mejor, se devuelve ese estado como expansión. Area de Computación e Inteligencia Artificial 12

Métodos de escalada irrevocables En ambos casos, si ningún estado hijo es mejor que el estado que está siendo expandido, no se devuelve nada, lo que conllevará que la búsqueda termine sin haber encontrado un objetivo. Nótese que la escalada simple es mucho más dependiente que la escalada por la máxima pendiente del orden de disparo de las reglas (pese a que ésta última también lo es: el valor heurístico mejor puede ser alcanzado en varios hijos y, en ese caso, el método no dice nada sobre qué estado elegir). Area de Computación e Inteligencia Artificial 13

Algoritmo de escalada simple El algoritmo: G 1. Denominar m al estado inicial y evaluarlo. Si es estado objetivo, entonces devolverlo y terminar, si no, convertirlo en estado actual. Asignar m a una varibla llamada elegido. G 2. Repetir hasta que se encuentre solución o hasta que una iteración completa no produzca un cambio en el estado actual: G 2.1 Expandir m. Para ello, 1) Aplicar cualquier operador aplicable al estado actual m y obtener un nuevo estado Ei. 2) Evaluar Ei: 2.1 Si Ei es estado objetivo, devolverlo y terminar. 2.1 Si Ei no es estado objetivo no es así, evaluar si Ei es mejor que el estado actual: (H(Ei) ->H(elegido)), en cuyo caso hacer m=ei. G 2.2 Si f(elegido) # f(m) asignar m=elegido, y volver a 2. Area de Computación e Inteligencia Artificial 14

Algoritmo de escalada por la máxima pendiente El algoritmo: G 1. Denominar m al estado inicial y evaluarlo. Si es estado objetivo, entonces devolverlo y terminar, si no, convertirlo en estado actual. Asignar m a una varibla llamada elegido. G 2. Repetir hasta que se encuentre solución o hasta que una iteración completa no produzca un cambio en el estado actual: G 2.1 Expandir m creando el conjunto de todos sus sucesores. A. Aplicar cada operador aplicable al estado actual m y conseguir nuevos estados E1,... En. B. Evaluar E1... En. Si alguno es objetivo, devolverlo y terminar Si no es así, seleccionar el mejor H(Em) C. Si el mejor estado Em es mejor que el estado actual, hacer que Em sea el estado actual. Volver al paso 2. Frente a la escalada simple, considera todos los posibles estados nuevos (no el primero que es mejor, como hace la escalada simple) Area de Computación e Inteligencia Artificial 15

Inconvenientes de los métodos de escalada El proceso de búsqueda puede no encontrar una solución cuando se encuentra con: Máximo 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 Area de Computación e Inteligencia Artificial 16

Algoritmo A* Area de Computación e Inteligencia Artificial 17

Algoritmo A* Usaremos dos listas de nodos (ABIERTA Y CERRADA) Abierta: nodos que se han generado y a los que se les ha aplicado la función heurística, pero que aún no han sido examinados (es decir, no se han generado sus sucesores) Es decir, es una cola con prioridad en la que los elementos con mayor prioridad son aquellos que tienen un valor más prometedor de la función heurística. Cerrada: nodos que ya se han examinado. Es necesaria para ver si cuando se genera un nuevo nodo ya ha sido generado con anterioridad. Area de Computación e Inteligencia Artificial 18

Algoritmo A* Definiremos una función heurística f como la suma de dos funciones g y h: Función g: es una medida del coste para ir desde el estado inicial hasta el nodo actual (suma de los costes o valores heurísticos de todos los nodos). Función h: es una estimación del coste adicional necesario para alcanzar un nodo objetivo a partir del nodo actual, es decir, es una estimación de lo que me queda por recorrer hasta la meta. La función combinada f una estimación del coste necesario para alcanzar un estado objetivo por el camino que se ha seguido para generar el nodo actual (si se puede generar por varios caminos el algoritmo se queda con el mejor). NOTA: los nodos buenos deben poseer valores bajos. Area de Computación e Inteligencia Artificial 19

Algoritmo A* En cada paso se selecciona el nodo más prometedor que se haya generado hasta ese momento (función heurística). A continuación se expande el nodo elegido generando todos sus sucesores. Si alguna de ellos es meta el proceso acaba. Si no continúo con el algoritmo. Es parecido a la búsqueda en profundidad, pero si en una rama por la que estoy explorando no aparece la solución la rama puede parecer menos prometedora que otras por encima de ella y que se habían ignorado. Podemos pues abandonar la rama anterior y explorar la nueva. Sin embargo al vieja rama no se olvida. Su último nodo se almacena en el conjunto de nodos generados pero aún sin expandir. Area de Computación e Inteligencia Artificial 20

Algoritmo A* 1. Empezar con ABIERTA conteniendo sólo el nodo inicial. Poner el valor g de ese nodo a 0, su valor h al que corresponda, y su valor f a h+0, es decir, a h. 2. Inicializar CERRADA como una lista vacía. 3. Hasta que se encuentre una meta o de devuelva fallo realizar las siguientes acciones: 3.1 Si ABIERTA está vacía terminar con fallo; en caso contrario continuar. 3.2 Eliminar el nodo de ABIERTA que tenga un valor mínimo de f; llamar a este nodo m e introducirlo en la lista cerrada. 3.3 Si m es meta, abandonar el proceso iterativo iniciado en 2 devolviendo el camino recorrido (punteros a sus antepasados) 3.4 En caso contrario expandir m generando todos sus sucesores. Area de Computación e Inteligencia Artificial 21

Algoritmo A* 3.5 Para cada sucesor n de m: 1) Crear un puntero de n a m. 2) Calcular g(n )=g(m)+c(m,n ), tal que c(a,b) es el coste de pasar de a a b. 3) Si n está en ABIERTA llamar n al nodo encontrado en dicha lista, añadirlo a los sucesores de m y realizar el siguiente paso: 3.1)Si g(n )<g(n), entonces redirigir el puntero de n a m y cambiar el camino de menor coste encontrado a n desde la raíz; g(n)=g(n ) y f(n)=g(n )+h(n). Area de Computación e Inteligencia Artificial 22

Algoritmo A* 4) Si n no cumple 3), comprobar si está en cerrada; llamar n al nodo encontrado en dicha lista y realizar las siguientes acciones: Si 3.1) no se cumple, abandonar 4); en caso contrario propagar el nuevo menor coste g(n ) (por lo que también actualizarán los valores de f correspondientes(que llamaremos n i tal que i=1,2,, siendo sus costes anteriores g(n i )), realizando un recorrido en profundidad de éstos, empezando en n y teniendo en cuenta las siguientes consideraciones: 4.1) Para los nodos descendientes n i cuyo puntero (que debe apuntar siempre al mejor predecesor hasta ese momento) conduzca hacia el nodo n i, actualizar g(n i )=g(n i ) y f(n i )=g(n i )+h(n i ) y seguir el recorrido hasta que se encuentre un n i que no tenga más sucesores calculados o se llegue a un nodo en que ya ocurra que g(n i )=g(n i ), en cuyo caso se habría producido un ciclo y también habría que terminar la propagación. Area de Computación e Inteligencia Artificial 23

Algoritmo A* 4.2) Para los nodos descendientes n i cuyo puntero no conduzca hacia el nodo n, comprobar si g(n i )< g(n i ), en cuyo caso se debe actualizar el puntero para que conduzca hacia el nodo n (mejor camino desde la raíz encontrado hasta ese momento) y se continúa el proceso de propagación. 5) Si n no está en ABIERTA o en CERRADA, calcular h(n ) y f(n )=g(n )+h(n ), introducirlo en ABIERTA y añadirlo a la lista de sucesores de m. Area de Computación e Inteligencia Artificial 24

Algoritmo A* Relaciones con otros métodos Si para todo n y para todo m h(n)=0 y c(m,n)=1, es decir, el coste para pasar de m a n es 1 entonces A* se convierte en un proceso de búsqueda en amplitud. Características Es un método completo de búsqueda, es decir, termina encontrando la solución cuando ésta exista para cualquier tipo de grafos. Es admisible. Es decir, no sólo encuentra la solución sino que la que encuentra es la optima si se cumple la siguiente condición: Para todo n h(n) es menor o igual que h*(n), es decir, si la función heurística que estima la distancia a la meta nunca puede superar la distancia real existente entonces A* garantiza encontrar la solución óptima. Area de Computación e Inteligencia Artificial 25