HEURÍSTICA República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Instituto Universitario Politécnico “Santiago Mariño” Extensión Maracay Escuela de Ingeniería de Sistemas Elaborado por: TSU. Brito Jennifer TSU. Ramírez María TSU. Izquierdo Paúl Docente: ING. Zapata José Cátedra: Investigación de Operaciones II 1 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 1.) HEURÍSTICA. La Heurística es la capacidad que ostenta un sistema determinado para realizar de manera inmediata innovaciones positivas para sí mismo y sus propósitos. Esta capacidad es una característica inherente a los seres humanos, ya que a través de esta los individuos podemos descubrir cosas, inventar otras tantas, resolver problemas mediante la creatividad o el pensamiento lateral, entre otras alternativas. 2.) ETIMOLOGÍA HEURÍSTICA. La enorme popularidad del término se le debe al matemático George Pólya, quien a través de varias propuestas heurísticas que volcó en su libro Cómo Resolverlo, se convirtió en una invalorable ayuda para sus alumnos a la hora de las tareas matemáticas. Entre otras cosas, Pólya, allí les aconsejaba, que en el caso de no comprender un problema, lo mejor sería dibujar un esquema sobre el, si el problema en cuestión es abstracto, probar de pasarlo a un tema concreto, sin dudas, ejemplos, que ilustran mejor que nada el concepto de heurística. Como buena disciplina científica, la Heurística es plausible de ser aplicada a cualquier ciencia, 2 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA incluyendo la elaboración de medios auxiliares, reglas, principios, estrategias, programas, entre otros, que faciliten distintas alternativas para la solución de los problemas. El método Heurístico, entonces, está compuesto por los siguientes elementos: principios (sugerencias para hallar la solución: analogía y reducción); reglas (ayudan a encontrar los medios para resolver los problemas, entre las más empleadas se cuentan: separar lo dado de aquello buscado, confección de mapas, esquemas, utilización de números, reformulación de problemas) y estrategias (recursos organizativos funcionales al proceso de resolución, pueden ser de dos tipos: el trabajo hacia delante o el trabajo hacia atrás). En el ámbito de la Psicología, la heurística se encuentra estrictamente relacionada a la creatividad y se dice que la misma es fundamental a la hora de orientar en la toma de decisiones y para explicar cómo se llega a un juicio o a la solución de un problema determinado. Suele estar asociada a lo que en este contexto se denomina atajo mental. Uno de los tipos de atajo más comunes es el del estereotipo, se juzga a un individuo en relación, por ejemplo, del grupo social al cual pertenece, aunque claro, esta cuestión puede hacernos incurrir en errores o interpretaciones incorrectas. 3.) INTRODUCCIÓN A LOS PROCESOS HEURÍSTICOS. Los métodos heurísticos son estrategias generales de resolución y reglas de decisión utilizadas por los que desean solucionar problemas, basadas en la experiencia previa con problemas similares. Estas estrategias indican las vías o posibles enfoques a seguir para alcanzar una solución. 3 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Los métodos heurísticos pueden variar en el grado de generalidad. Algunos son muy generales y se pueden aplicar a una gran variedad de dominios, otros pueden ser más específicos y se limitan a un área particular del conocimiento. 3.1.) Los Procedimientos Heurísticos. Son formas de trabajo y de pensamiento que apoyan la realización consciente de actividades mentales exigentes. Los Procedimientos Heurísticos como Método científico pueden dividirse en principios, reglas y estrategias. Principios Heurísticos. Constituyen sugerencias para encontrar (directamente) la idea de solución; posibilita determinar, por tanto, a la vez, los medios y la vía de solución. Dentro de estos principios se destacan la analogía y la reducción. 3.2.) REGLAS HEURÍSTICAS. ► Reglas Heurísticas: actúan como impulsos generales dentro del proceso de búsqueda y ayudan a encontrar, especialmente, los medios para resolver los problemas. Las Reglas Heurísticas que más se emplean son: ► Separar lo dado de lo buscado. ► Confeccionar figuras de análisis: esquemas, tablas, mapas, etc. 4 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► Representar magnitudes dadas y buscadas con variables. ► Determinar si se tienen fórmulas adecuadas. ► Utilizar números (estructuras más simples) en lugar de datos. ► Reformular el problema. 3.3.) ESTRATEGIAS HEURÍSTICAS. ► Estrategias Heurísticas: se comportan como recursos organizativos del proceso de resolución, que contribuyen especialmente a determinar la vía de solución del problema abordado. Existen dos estrategias: ► El trabajo hacia adelante: se parte de lo dado para realizar las reflexiones que han de conducir a la solución del problema. 5 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► El trabajo hacia atrás: se examina primeramente lo que se busca y, apoyándose de los conocimientos que se tienen, se analizan posibles resultados intermedios de lo que se puede deducir lo buscado, hasta llegar a los dados. 4.) MÉTODOS HEURÍSTICOS DE SOLUCIÓN Dadas las desventajas del método de Wagner-Whitiny la relativa complejidad de los modelos de programación matemática, es muy útil describir algunas técnicas heurísticas que han demostrado alta eficiencia y eficacia en la solución de problemas prácticos de inventarios con demanda variable con el tiempo. Un método heurístico resulta ser un enfoque que aprovecha la estructura del problema. Mediante el uso de un conjunto de reglas “racionales”, obteniendo una solución buena, es decir cercana a la óptima o en ocasiones la óptima. Los métodos heurísticos se usan cuando no es posible o no es computacionalmente factible obtener el óptimo. Se presentan 3 enfoques heurísticos. ► SILVER-MEAL SM ► COSTO UNITARIO MÍNIMO CUM ► BALANCEO DE PARTE DEL PERIODO BPF. 4.1.) El heurístico de Silver-Meal Este método fue desarrollado por Silvery Meal (1973) y ha demostrado un funcionamiento satisfactorio cuando el patrón de demanda es muy variable, es decir; cuando el método del lote económico de pedido y otros métodos heurísticos no producen buenos 6 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA resultados. El criterio básico de este método es el de minimizar los costos de ordenamiento y mantenimiento del inventario por unidad de tiempo. Como antes, las cantidades de pedido están restringidas a lo necesario para cubrir un número entero de períodos. Sea TRC(T) el costo total relevante asociado con un pedido que dura T períodos. El costo total relevante por unidad de tiempo, TRCUT(T), será entonces RC(T)/T, o más precisamente: El método inicia con el período 1, para el cual TRC(1)/1 =A/1 =A; continúa con el período 2, para el cual TRC(2)/2= [A+D2vr(1)]/2; luego, con el período 3, para el cualTRC(3)/3 = [A+D2vr(2) +D3vr(1)]/3; y así sucesivamente hasta que se observe que el costo por unidad de tiempo se incrementa de un período a otro. En este momento se para el proceso y se define la cantidad a ordenar en el período 1 igual a la suma de las demandas de los períodos para los cuales no se incrementó el costo total relevante por unidad de tiempo. El proceso comienza de nuevo a partir del período T para el cual se incrementó el TRC (T) T por primera vez, y se continúa de esta manera hasta el final del horizonte de planeación. Este método no garantiza la optimización porque puede verse atrapado en un mínimo local, pero ha demostrado tener muy buenos resultados en la práctica En el siguiente ejemplo se debe comprobar que el algoritmo de Silver-Meal produce la solución óptima. 7 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Como puede observarse, el primer período para el cual el costo total relevante por unidad de tiempo se incrementa, es el mes 4. Por lo tanto, el método nos sugiere ordenar en el mes 1la demanda correspondiente a los meses 1, 2 y 3. El proceso continúa entonces a partir del mes 4. Se sugiere al lector completar los cálculos hasta el mes 12, y comprobar lo expresado anteriormente en el sentido que este algoritmo produce la solución óptima para este ejemplo. Cuando la demanda no es muy variable, la diferencia entre los resultados de este método y el del EOQ no difiere significativamente. Para determinar cuando utilizar uno u otro método, recuérdese el coeficiente VC definido anteriormente en la expresión (4.11). Se ha encontrado a través de estudios experimentales lo siguiente: ► Si VC < 0.2, entonces puede utilizarse el método del EOQ con la demanda promedio sobre el horizonte de planeación, ya que produce buenos resultados. ►Si VC ≥ 0.2, entonces se sugiere utilizar el heurístico de Silver-Meal. 8 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Es importante notar que se ha encontrado que la aplicación del heurístico de Silver-Meal en casos para los cuales el patrón de demanda decrece rápidamente con el tiempo a través de varios períodos, o cuando existe un gran número de períodos con cero demanda, no ha producido buenos resultados. Para estos casos, por lo tanto, sería recomendable utilizar el método de Wagner-Whitin o el de modelación matemática. El manejo de descuentos por cantidad Una extensión importante del heurístico de Silver-Meal es la de permitir el manejo de descuentos por cantidad. Considérese, el ejemplo, donde el valor unitario del ítem bajo consideración viene dado por: En este caso, no necesariamente debe ordenarse una cantidad para cubrir los requerimientos de un número entero de períodos, ya que es posible que la mejor política sea ordenar una cantidad igual al punto de quiebre, Q 1, la cual no necesariamente cubre una cantidad entera de períodos. Lamarre y Baier (1981) desarrollaron una variante del algoritmo de Silver-Meal para tener en cuenta esta consideración, a través de extensiva experimentación. Sea T1 el número de períodos (no necesariamente entero) que podría cubrir la cantidad Q1. Se calcula entonces los costos totales por unidad de tiempo para T1, o sea: 9 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Donde [T1] es la parte entera de T1 (por ejemplo, si T1 = 4.6, entonces [T1] = 4) y d es la fracción de descuento obtenida por cantidades iguales o superiores aQ1. Igualmente, deben calcularse los costos por unidad de tiempo para cantidades enteras de T, de acuerdo con las siguientes expresiones 5.) APLICACIONES DE HEURÍSTICA EN LA CIENCIA. 10 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Como disciplina científica, la heurística es aplicable a cualquier ciencia e incluye la elaboración de medios auxiliares, principios, reglas, estrategias y programas que faciliten la búsqueda de vías de solución a problemas; o sea, para resolver tareas de cualquier tipo para las que no se cuente con un procedimiento algorítmico de solución. Los Procedimientos Heurísticos como Método científico pueden dividirse en principios, reglas y estrategias. Principios Heurísticos: constituyen sugerencias para encontrar (directamente) la idea de solución; posibilita determinar, por tanto, a la vez, los medios y la vía de solución. Dentro de estos principios se destacan la analogía y la reducción. Reglas Heurísticas: actúan como impulsos generales dentro del proceso de búsqueda y ayudan a encontrar, especialmente, los medios para resolver los problemas. Ejemplo 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 mejores propiedades (que sean 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. Actividad: Problema de Guarini (1512). En el siguiente tablero 3x3 intercambiar la posición de los caballos blancos y negros en el menor número de movimientos. 11 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Actividad: Se trata de “girar” los caballos alrededor del tablero en la misma dirección. Como en cada fase se mueven los 4 caballos, hacen falta 16 movimientos. 12 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 5.1) LA HEURÍSTICA EN LA INFORMÁTICA En computación, dos objetivos fundamentales son encontrar algoritmos con buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas. Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que siempre será así. Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo. A menudo, pueden encontrarse instancias concretas del problema donde la heurística producirá resultados muy malos o se ejecutará muy lentamente. Aun así, estas instancias concretas pueden ser ignoradas porque no deberían ocurrir nunca en la práctica por ser de origen teórico. Por tanto, el uso de heurísticas es muy común en el mundo real. Heurísticas para encontrar el camino más corto. Para problemas de búsqueda del camino más corto el término tiene un significado más específico. En este caso una heurística es una función matemática, h(n) definida en los nodos de un árbol de búsqueda , que sirve como una estimación del coste del camino más económico de un nodo dado hasta el nodo objetivo. Las heurísticas se usan en los algoritmos de búsqueda informada como la búsqueda egoísta. La búsqueda egoísta escogerá el nodo que tiene el valor más bajo en la función heurística. A* expandirá los nodos que tienen el valor más bajo 13 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA para g(n)+h(n), donde g(n) es el coste (exacto) del camino desde el estado inicial al nodo actual. Cuando h(n) es admisible, esto es si h(n) nunca sobrestima los costes de encontrar el objetivo; A* es probablemente óptimo. Un problema clásico que usa heurísticas es el puzzle-n. Contar el número de casillas mal colocadas y encontrar la suma de la distancia Manhattan entre cada bloque y su posición al objetivo son heurísticas usadas a menudo para este problema. Efecto de las heurísticas en el rendimiento computacional. En cualquier problema de búsqueda donde hay b opciones en cada nodo y una profundidad d al nodo objetivo, un algoritmo de búsqueda ingenuo deberá buscar potencialmente entre bd nodos antes de encontrar la solución. Las heurísticas mejoran la eficiencia de los algoritmos de búsqueda reduciendo el factor de ramificación de b a (idealmente) una constante b*. Aunque cualquier heurística admisible devolverá una respuesta óptima, una heurística que devuelve un factor de ramificación más bajo es computacionalmente más eficiente para el problema en particular. Puede demostrarse que una heurística h2(n) es mejor que otra h1(n), si h2(n) domina h1(n), esto quiere decir que h1(n)<h2(n) para todo n</h 14 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Heurísticas en la inteligencia artificial Muchos algoritmos en la inteligencia artificial son heurísticos por naturaleza, o usan reglas heurísticas. Un ejemplo reciente es SpamAssassin que usa una amplia variedad de reglas heurísticas para determinar cuando un correo electrónico es spam. Cualquiera de las reglas usadas de forma independiente pueden llevar a errores de clasificación, pero cuando se unen múltiples reglas heurísticas, la solución es más robusta y creíble. Esto se llama alta credibilidad en el reconocimiento de patrones (extraído de las estadísticas en las que se basa). Cuando se usa la palabra heurística en el procesamiento del lenguaje basado en reglas, el reconocimiento de patrones o el procesamiento de imágenes, es usada para referirse a las reglas. 15 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 6.) PARADIGMA HEURÍSTICO. Muchas de las tareas más interesantes y difíciles de programación implican utilizar el ordenador para resolver problemas del tipo: "¿Cuál es el camino más corto?" "Listar todos los casos posibles", "¿Existe una disposición de elementos que satisfaga?. Las características de estos problemas implica potencialmente una búsqueda exhaustiva de todas las posibles combinaciones de algún conjunto finito, que si no está controlado puede producir una "explosión combinatoria" (incremento exponencial del espacio de búsqueda con la dimensión del problema) imposible de tratar. La Programación Heurística ha venido a significar el uso del conocimiento específico del dominio para cubrir esta explosión de posibilidades guiando la búsqueda por las direcciones más prometedoras. Se puede definir como "aquel tipo de programación computacional que aplica para la resolución de problemas reglas de buena lógica (reglas del pulgar). denominadas heurísticas, las cuales proporcionan entre varios cursos de acción uno que presenta visos de ser el más prometedor, pero no garantiza necesariamente el curso de acción más efectivo." La Programación Heurística implica una forma de modelizar el problema en lo que respecta a la representación de su estructura, estrategias de búsqueda y métodos de resolución, que configuran el Paradigma Heurístico. Este tipo de programación se aplica con mayor intensidad en el campo de la Inteligencia 16 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Artificial (IA), y en especial, en el de la Ingeniería del Conocimiento, dado que el ser humano opera la mayor parte de las veces utilizando heurísticas, un hecho cierto que una heurística es la conclusión del razonamiento humano en un dominio específico, por lo que es normal que este tipo de programación que encuadrado en el área de la I.A., ya que implementa el conocimiento humano, dado por la experiencia, utilizando reglas de buena lógica. Como se ha señalado inicialmente, un paradigma de programación es un modelo básico de diseño e implementación de programas. Un modelo que permite producir programas de acuerdo con una metodología específica. Así, el paradigma de programación estructurada se basa en estructuras modulares, con fuerte cohesión en el módulo y bajo acoplamiento entre ellos, desarrollo "top-down", utilización de diagramas privilegiados, etc. El Paradigma Heurístico define pues, un modelo de resolución de problemas en el que se incorpora alguna componente heurística sobre la base de: Una representación más apropiada de la estructura del problema para su resolución con técnicas heurísticas La utilización de métodos de resolución de problemas aplicando funciones de evaluación con procedimientos específicos de búsqueda heurística para la consecución de las metas. Por otra parte, la Programación Heurística se presenta y utiliza desde diferentes puntos de vista. Como técnica de búsqueda para la obtención de metas en problemas no algorítmicos, o con algoritmos que generan explosión combinatoria (ej. damas. ajedrez, etc.). 17 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA En Herramientas ► Tratamiento fundamentalmente simbólico, dado que la mayor parte de los problemas que precisan tratamiento heurístico tienen estructura simbólica. ► Unidades funcionales autónomas que posibiliten modelar una heurística y su mecanismo de ejecución, definiendo módulos independientes. ► Estructuras de datos que permitan describir estados de problemas y relaciones entre estados. ► Estructuras procedimentales de control y de proceso (o de definición) que permitan la ejecución coherente del modelo heurístico, y posibiliten la adquisición y utilización del conocimiento adquirido en el proceso de resolución del problema. 7.) PASOS DEL MÉTODO HEURÍSTICO 1.- Comprender el problema Es importante reflexionar en cuestiones como “que se pide” “que se tiene” y “a donde se quiere llegar”. Algunas preguntas que debemos hacernos: ¿Cuál es la incógnita? ¿Es la condición suficiente para determinar la incógnita? ¿Es suficiente? En la siguiente se muestran los siente puentes de Koninsberg ¿Es posible hacer el recorrido sin pasar dos veces por el mismo puente?. 18 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 2.-. Concebir un plan. Puedes usar la estrategia que creas conveniente. Cada quien puede establecer el camino o caminos a seguir. Algunas preguntas que debemos hacernos: ¿Se ha encontrado con un problema semejante? ¿Ha visto el mismo problema planteado en otra forma? ¿Conoce problemas relacionados con este? ¿Se podría utilizar el problema relacionado con este ya resuelto? ¿Podría enunciar el problema en otra forma? ¿Se necesita algún elemento auxiliar? ¿Podría emplear su resultado y método? 3.- Ejecutar el plan En la formación de conceptos matemáticos, se requiere emplear un pensamiento móvil y flexible, debemos ser capaces de encontrar distintos caminos, rodeos, asociaciones, para llegar a una solución; 19 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA retornar después de un cambio al punto de partida. De esta forma debemos revisar lo que hemos hecho y de ser necesario anularlo previamente y entonces estructurar las relaciones de lo encontrado. 4.- Examinar la solución obtenida. 20 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Comprobar y examinar la solución obtenida debemos hacernos las preguntas siguientes: ¿Puede verificarse el resultado? ¿Puede verificarse el razonamiento? ¿Puede obtenerse el resultado en forma diferente? ¿Puede verse de golpe? ¿Puede emplearse el resultado o el método en otro problema? La retrospectiva permite revisar como se pensó inicialmente, como se encamino una estrategia, como e efectuaron los cálculos; en fin, todo el camino recorrido para obtener la solución. En el problema de grafos que admiten un recorrido euleriano se tiene, que ocurre cuando se tienen al menos dos puntos a los que llegan un número par de líneas. 8.) CLASIFICACIÓN MÉTODOS HEURÍSTICOS Existen diferentes métodos heurísticos, esto está dado por su naturaleza compleja y variada, es difícil definir una clasificación por esta razón ya que la mayoría de ellos se construyen para un problema en particular, lo que significa que su aplicación a otros problemas similares sea casi imposible. El siguiente esquema muestra categorías más amplia, no excluyentes, en donde se ubican a los métodos heurísticos más conocidos. ► Métodos de Descomposición: el problema original se descompone en sub problemas más sencillos de resolver. ► Métodos Inductivos: es generalizar de de versiones más pequeñas a lo más complejos. ► Métodos de Reducción: el objetivo es restringir el espacio de soluciones simplificando el problema. 21 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► Métodos Constructivos: consisten en construir literalmente paso a paso la solución del problema. Usualmente son métodos deterministas y suelen estar basados en la mejor elección de cada iteración. ► Métodos de Búsqueda Local: a diferencia de los métodos anteriores, el procedimiento de búsqueda o mejora local, comienza con una solución del problema y la mejoran progresivamente, el método finaliza cuando no existe ninguna solución accesible que mejore la anterior. Los métodos constructivos y los de búsqueda local son la base de los métodos Metaheurísticos 8.1.) MÉTODOS META-HEURÍSTICOS En las últimas décadas han aparecidos una serie de métodos bajo el nombre de Metaheurísticos con el objetivo optar a mejores resultados que los métodos heurísticos tradicionales. Los métodos Meta-heurísticos son estrategias para diseñar o mejorar procedimientos heurísticos con miras a obtener un alto rendimiento de soluciones en dominios donde la ejecución de procesos se vuelve compleja. Las meta-heurística se aplican a problemas clasificados como NP-Hard, como también se aplican a problemas de combinatoria en los cuales existe una solución de tiempo polinómico pero que no es práctica. La Meta-heurísticas se pueden clasificar como: ► Meta-heurísticos constructivas: Este tipo de meta-heurística va incorporando elementos a una estructura inicialmente vacía que representa la solución. 22 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► Meta-heurísticos evolutivas: Son métodos que van construyendo un conjunto de soluciones a diferencia de los otros métodos que solo pasan de una solución a otra en cada iteración. ► Meta-heurísticos de búsqueda: Son métodos que presuponen que existe una solución y realizan procedimientos de búsqueda, la diferencia con los métodos analíticos es que no necesariamente se encontrará la solución óptima. 8.2.) METODOLOGÍA BÚSQUEDA TABÚ o TABÚ SEARSH “TS” Es sabido que los humanos posee un mecanismo de intuición que nos permite funcionar con un mínimo o nada de información, por lo general se introduce una variable aleatoria en nuestras decisiones lo cual promueve un nivel de inconsistencia en nuestro comportamiento, la tendencia de estos comportamiento suele encaminarnos a dos caminos “los errores” y a una “buena solución”. La Búsqueda Tabú quiere emular este comportamiento humano pero sin utilizar elementos aleatorios. De acuerdo a esto esta metodología busca la mejor solución posible de acuerdo al planteamiento del problema. La Búsqueda Tabú es un procedimiento de búsqueda que utiliza memoria adaptativa y un plan estratégico de resolución de problemas, en lo medular este tipo de procedimiento metaheurístico se basa en el aprovechamiento de diversas estrategias basadas en procedimiento de aprendizaje, en otras palabras, la Búsqueda Tabú puede ser descrita como una búsqueda inteligente para dirigir el proceso de búsqueda lejos de las soluciones locales, de este modo encontrar mejores soluciones. La Búsqueda Tabú mejora los métodos locales de búsqueda usando estructuras de memoria. Una vez que la solución potencial ha sido determinada ésta es marcada como taboo (lista tabú), así el algoritmo no visita una posibilidad iterativamente. 23 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Búsqueda Tabú da origen al enfoque basado en memoria y estrategia intensiva, en la literatura de la meta-heurística Búsqueda Tabú esta en contraposición con los métodos que no tienen memoria o que sólo usan una débil memoria basada en herencia, también es responsable de enfatizar el uso de los diseños estructurados para explotar los patrones históricos de la búsqueda. Los principios fundamentales de la Búsqueda Tabú fueron elaborados en una serie de artículos a finales de los años 80 y principios de los 90, y han sido unificados en el libro “Tabú Search” La Búsqueda Tabú estipula un procedimiento de búsqueda local para la búsqueda de la atomicidad global, su política se basa en un marco de memoria adaptativa. La Búsqueda Tabú está basada en la premisa de que para clasificar un procedimiento de resolución de problema como inteligente, es necesario que este incorpore Memoria Adaptativa y Exploración Inteligente. La memoria adaptativa permite procedimientos capaces de realizar búsqueda en un espacio de soluciones eficaces y eficientes, debido a que las decisiones locales están guiadas por la información obtenidas del proceso de búsqueda, la Búsqueda Tabú se contrasta con procedimientos aleatorios que buscan un muestreo de la información. El énfasis en la exploración inteligente deriva de la estrategia, que una mala elección entrega más información que una buena elección realizada al azar, debido a que una elección estrategia puede guiar a zonas más prometedoras. La arquitectura de la Búsqueda Tabú funciona mediante referencia a cuatro dimensiones principales, consistentes en la propiedad de ser residente, en frecuencia, en calidad y en influencia. Las memorias basadas en lo reciente y en frecuencia se complementan la una a la 24 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA otra para lograr el balance entre intensificación y diversificación, la dimensión de calidad hace referencia habilidad para diferenciar la bondad de las soluciones visitadas a lo largo del proceso de búsqueda. La flexibilidad de las estructuras de memorias mencionadas hasta este momento guía la búsqueda en un entorno multi-objetivo, dado que determinan la bondad de búsqueda particular mediante más de una función. La memoria referida a la influencia considera el impacto a la calidad de las decisiones tomadas durante la búsqueda, no sólo en lo referente a la calidad de las soluciones si no también referente a las mimas. Dentro de la memoria del procedimiento de Búsqueda Tabú se almacenan las soluciones completas, soluciones que fueron visitadas durante la búsqueda y otro segmento de memoria almacena información sobre determinados atributos de las soluciones que cambian al pasar por una solución a otra. De cualquier manera estos segmentos de memoria son complementarios, puesto que uno permite expandir los entornos de búsqueda usados durante un proceso de búsqueda local mediante la inclusión de soluciones superiores mientras que el otro segmento reduce determinados movimientos sobre las soluciones ya buscadas. En la Búsqueda Tabú, tienen estrategias de intensificación y diversificación las cuales constituyen dos elementos importantes ya que se encargan de la modificación de las reglas para favorecer la elección de buenas combinaciones de movimientos y de características de soluciones encontradas, además por otro lado tratan de conducir la búsqueda a zonas del espacio de soluciones no visitadas anteriormente y generar nuevas soluciones que difieran significativamente de las ya evaluadas. Los componentes básicos de la Búsqueda Tabú son: el entorno, la lista tabú, el criterio de aspiración y el criterio de parada. De lo anterior el proceso interno de la Búsqueda Tabú se puede resumir del siguiente modo: 25 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► Mientras el criterio de parada sea falso - Generar lista de candidatos de movimientos-vecinos - Escoger el mejor vecino no tabú o que verifique el criterio de aspiración x - Actualizar la solución actual, x=x ► Salida: la mejor solución encontrada. Un ejemplo clásico son las permutaciones, que son ejemplos típicos de optimización, los ejemplos más citados de problemas de permutaciones incluyen el problema del viajante de comercio, asignación cuadrática, secuenciación de la producción, asignación de tareas. Un ejemplo es la permutación de tareas de una maquina en donde se persigue el objetivo de minimizar el retraso total de en la ejecución de las tareas, secuenciando las tareas de esta, en este ejemplo la solución inicial se basa en encontrar una permutación de las tareas lo más cercana a la óptima, la Búsqueda Tabú funciona bajo el supuesto que se puede construir un entorno para identificar “soluciones adyacentes” que puedan ser alcanzadas bajo la solución actual. Para este caso los intercambios de tareas son frecuentemente usados para definir entornos de permutaciones, identificando movimientos que conducen a una solución a la siguiente. Los movimientos proporcionan una base fundamental para evaluar la calidad de los mismos, teniendo encuentra que otros criterios pueden ser importantes. Un mecanismo de Búsqueda Tabú es clasificar un conjunto de movimientos que se marcaran como tabú o prohibidos, esta clasificación depende la búsqueda determinada por los recientes o frecuentes que ciertos movimientos o componentes de soluciones, llamados atributos que han participado en la generación de soluciones pasadas, por ejemplo en el Cuadro 1 muestra el intercambio de tareas con un mismo movimiento identificando el par de movimientos como idénticos, de esta forma se busca evitar movimientos de búsqueda repetidos. 26 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Para el caso anterior las tareas enumeras 2 y 5 se resuelven como pares ordenados (2,5) por tanto la permutación de (5,2) debe llevar al mismo valor de búsqueda de una solución como en par de (2,5). De esta forma se clasifica como tabú el par (5,2). Búsqueda Tabú puede ser convenientemente caracterizado en su búsqueda por entorno (Glover & Batista, 1986), es decir una búsqueda en el entorno identifica para cada solución x X, un conjunto asociados de vecinos N(x) X llamado entorno de x, los entornos se asumen simétricos, es decir x' es un vecino de x y sólo si x es un vecino de x'. Un vecino es un posible movimiento, el cual consiste en cambiar un atributo a la solución actual por otro y el vecindario consiste en los vecinos que se pueden acceder desde una solución X en particular. 27 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Los pasos de búsqueda por entorno se muestran a continuación: Paso 1 (Inicialización). (A) Seleccionar una solución de arranque xActual X. (B) Almacenar la mejor solución actual conocida haciendo xMejor = xActual y definiendo MejorCoste = c(xMejor). Paso 2 (Elección y finalización). Elegir una solucion xSiguiente 2 N(xActual). Si los criterios de elección empleados no pueden ser satisfechos por ningún miembro de N(xActual), o si se aplican otros criterios de parada, entonces el método para. Paso 3 (Actualización). Rehacer xActual = xSi El método de búsqueda en el entorno puede ser alterado fácilmente añadiendo provisiones especiales para generar una variedad de procedimientos clásicos. La Búsqueda Tabú, emplea una filosofía diferente a otros métodos heurísticos para ir más allá del criterio de finalizar en un óptimo local. Se reduce el énfasis en que sea aleatorio y generalmente se usa en un modo altamente restringido, con el supuesto de que la búsqueda inteligente debería estar basada en formas más sistemáticas de dirección. Por consiguiente, muchas implementaciones de Búsqueda Tabú son en gran parte deterministas, es decir, la Búsqueda Tabú “determinística” selecciona movimientos según probabilidades basadas en el estado y en las evaluaciones asignadas a estos movimientos por los principios básicos de la Búsqueda Tabú. 28 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA En Conclusión, la Búsqueda Tabú se fundamenta en tres premisas: 1. El uso de estructuras flexibles de memorias basadas en atributos, diseñadas para permitir una mejor explotación de los criterios de evaluación e información histórica de la búsqueda. 2. Un mecanismo de control, para emplear las estructuras de memoria, este mecanismo se basará en la interacción entre las condiciones que limitan y hacen más flexibles el procesos de búsqueda. Este mecanismo se encuentra inmerso en la técnica en la forma de restricciones y criterios de aspiración (criterio que permite que un movimiento pierda el estatus de “tabú” debido que proporciona una mejor solución que la actual). 3. La incorporación de memorias, memorias de corto y largo plazo, para implementar estrategias que intensifiquen la búsqueda y la diversifiquen, las estrategias de intensificación refuerzan las propiedades de las combinaciones de movimiento que han demostrado ser buenas, mientras que las estrategias de diversificación dirigen la búsqueda hacia nuevas regiones del espacio de soluciones factibles. Estos dos mecanismos evitan que una solución quede en un óptimo local, es decir, el primer mecanismo nos permite delimitar la región del espacio de búsqueda, mientras que la segunda permite saltar a nuevas regiones del mismo. Esta metodología parte de la premisa que ya hay una solución dada o se busca una al azar, de este modo se trabaja sobre una solución dada aunque esta no sea óptima. Llevando el análisis teórico de la metodología al problema de asignación de salas se puede observar que esta metodología puede encontrar soluciones factibles de considerar buenas, sí consideramos no aplicar ninguna restricción al hacer el proceso de búsqueda y 29 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA asignación, de otro modo este método puede transformarse en algo inmanejable debido a que tendría que integrar las restricciones y requerimientos propios de una distribución de cursos a las salas de clases. 8.3.) METODOLOGÍA PROCEDIMIENTO DE BÚSQUEDA BASADOS EN FUNCIONES “GREEDY” ALEATORIZADAS ADAPTATIVAS. “GRASP” La metodología GRASP fue desarrollada al final de la década de los 80 con el objetivo inicial de resolver problemas de cubrimientos de conjuntos (Feo & Resende, A probabilistic heuristic for a computationally difficult set covering problem., 1989) esta metodología ha sido uno de los métodos meta-heurísticos más exitosos de los últimos años. El término GRASP fue introducido por Feo y Resende en 1995 (Feo & Resende, Greedy randomized adaptive search procedures, 1995) como una nueva técnica meta-heurística de propósito general. GRASP es el acrónimo de Greedy Randomized Adaptive Search Procedure que significa Procedimiento de Búsqueda Basados en Funciones “Greedy” Aleatorizadas Adaptativas. Al definir la metodología GRASP es conveniente que podamos relacionarlo a otros métodos, dentro del conjunto de las meta-heurísticas para entender su procedimiento, lo más similar a este método sea referirse al método Multi-start el cual consiste en generar múltiples soluciones iníciales aleatorias de tal forma que a cada una de ellas se le pueda aplicar una búsqueda local. Pues bien, GRASP es similar salvo que las soluciones sobre las que se aplica la búsqueda local no son completamente aleatorias, tienen un componente de aleatoriedad el cual está controlado y enmarcado dentro de un proceso constructivo. Así pues, GRASP consiste en repetir múltiples veces un esquema de dos fases: construir una solución y aplicarle búsqueda 30 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA local. La segunda fase (búsqueda local) se puede aplicar una búsqueda local convencional (o incluso una Búsqueda en Vecindad Variables, VNS, si se desea). Entonces GRASP consiste de dos fases: la constructiva donde se produce una solución factible, aunque no necesariamente es óptima y la segunda fase es una búsqueda local, en la cual se examinan vecindades de la solución de la fase anterior, esta fase usa la solución inicial como punto de partida de la fase de búsqueda local. 8.4.) ALGORITMOS GENÉTICOS (AGS) Los algoritmos genéticos caen dentro de los métodos evolutivos debido a que estos están basados en poblaciones de soluciones a diferencia de los métodos basados en el seguimiento de trayectorias. Esta técnica de algoritmo evolutivo se puede clasificar en tres categorías principales: Algoritmo Genéticos (AG), Estrategias Evolutivas (EE) y la programación Evolutiva (PE). Todas estas estrategias se basan en un en un esquema común que es la generación de un conjunto de elementos llamados población inicial (conjunto de soluciones), esta población inicial es sometida a una serie de transformaciones que da lugar a una nueva 31 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA población de soluciones, de esto se valora la adaptabilidad al medio de cada una de estas soluciones, de esto se desprende que la elección de los mejores individuos o soluciones para conformar la siguiente generación, este proceso se repite un número determinado de veces (ciclos) esperando que los individuos de la población haya evolucionado hacia una mejor adaptación al medio. Las diferencias fundamentales entre cada una de las técnicas antes mencionadas radica en los tipo de alteraciones que se realizan en las soluciones para obtener nuevos individuos y en los métodos empleados para la selección de la nueva generación. En los años 1970, de la mano de John Henry Holland, surgió una de las líneas más prometedoras de la inteligencia artificial, la de los Algoritmos Genéticos (AG), son llamados así porque se inspiran en la evolución biológica y su base genético molecular. Estos algoritmos hacen evolucionar una población de individuos sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica (mutaciones y recombinaciones genéticas), así como también a una selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados. También este algoritmo es denominado “algoritmo evolutivo” e incluye las estrategias de evolución, la programación evolutiva y la programación genética. Los Algoritmos genéticos ocupan un lugar determinante dentro de la Programación Evolutiva debido a: ► Son flexibles y adaptables a una gran cantidad de problemas diferentes y distintas áreas, este algoritmo permite ser combinado con otros técnicas diferentes aunque no sean evolutivas. 32 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA ► Los algoritmos genéticos tienen una mejor base teórica. ► Poseen una gran versatilidad ya que no necesitan mayor conocimientos específicos del problema para su resolución. Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Un algoritmo genético consiste en una función matemática o una rutina de software que toma como entradas una población de ejemplares y retorna como salidas cuáles de ellos deben generar descendencia para la nueva generación. Versiones más complejas de algoritmos genéticos generan un ciclo iterativo que directamente toma a la especie (el total de los ejemplares) y crea una nueva generación que reemplaza a la antigua una cantidad de veces determinada por su propio diseño. Una de sus características principales es la de ir perfeccionando su propia heurística en el proceso de ejecución, por lo que no requiere largos períodos de entrenamiento especializado por parte del ser humano, principal defecto de otros métodos para solucionar problemas, como los Sistemas Expertos. Los Algoritmos Genéticos trabajan con una población de individuos, cada uno de los cuales representa una solución factible a un problema dado. A cada individuo se le asigna un valor ó puntuación, relacionado con la bondad de dicha solución. En la naturaleza esto equivaldría al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptación de un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material genético con otro individuo seleccionado de igual forma. Este cruce producirá nuevos individuos, descendientes de los anteriores, los cuales comparten algunas de las características de sus padres. Cuanto menor sea la adaptación de un individuo, menor será la probabilidad de 33 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA que dicho individuo sea seleccionado para la reproducción, y por tanto de que su material genético se propague en sucesivas generaciones. De esta manera se produce una nueva población de posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad de que contiene una mayor proporción de buenas características en comparación con la población anterior. Si el Algoritmo Genético ha sido bien diseñado, la población convergerá hacia una solución óptima del problema. El poder del Algoritmo Genético proviene del hecho de una técnica robusta y pueden tratar una gran variedad de problemas provenientes de diferentes áreas, sin embargo esto no garantiza una solución óptima del problema, si existe evidencia empírica de que se encuentran soluciones aceptables en un tiempo competitivo con el resto de los algoritmos de optimización combinatoria. Los componentes básicos de un algoritmo genético son: ► Operadores genéticos (mutación y cruzamiento). ► Una representación apropiada del problema a resolver. ► Una función de oportunidad o bien llamada de Aptitud. ► Un procedimiento de inicialización. El Algoritmo Genético en su versión más básica, necesita una codificación o representación del problema, que resulte adecuada al mismo. Además se requiere una función de ajuste o adaptación al problema, la cual asigna un número real a cada posible solución codificada. Durante la ejecución del algoritmo, los padres deben ser seleccionados para la reproducción, a continuación dichos padres seleccionados se cruzaran generando dos hijos, 34 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA sobre cada uno de los cuales actuara un operador de mutación. El resultado de la combinación de las anteriores funciones será un conjunto de individuos (posibles soluciones al problema), los cuales en la evolución del Algoritmo Genético formaran parte de la siguiente población. A continuación se muestra código algorítmico genético básico: En la codificación del algoritmo genético supone que los individuos (posibles soluciones al problema) pueden representarse como un conjunto de parámetros utilizando una codificación binaria de 0 y 1 los cuales agrupados forman una lista de valores. Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituido por el (0; 1), buena parte de la teoría en la que se fundamentan los Algoritmos Genéticos utiliza dicho alfabeto. 35 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Un punto importante dentro del Algoritmo genético es la adaptación de un individuo el cuál dependerá de su genotipo, la cual puede inferirse a partir del fenotipo, es decir, puede ser computada usando una función de evaluación. La función de adaptación debe ser diseñada para cada problema de manera específica asignando un número real, que se supone refleja el nivel de adaptación al problema del individuo. En la siguiente figura se ve reflejado un esquema general del algoritmo genético, donde en la fase reproductiva se seleccionan los individuos de la población para cruzarse y producir descendientes, que constituirán, una vez mutados, la siguiente generación de individuos. La selección de padres se efectúa al azar usando un procedimiento que favorezca a los individuos mejor adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional a su función de adaptación. Este procedimiento se dice que está basado en la ruleta sesgada. Según dicho esquema, los individuos bien adaptados se 36 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA escogerán probablemente varias veces por generación, mientras que los pobremente adaptados al problema, no se escogerán más que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutación. Las formas básicas de dichos operadores se describen a continuación. El operador de cruce, coge dos padres seleccionados y corta sus conjuntos de cromosomas en una posición escogida al azar, para producir dos subconjuntos iniciales. Después se intercambian las subconjunto iniciales, produciéndose dos nuevos cromosomas completos. Ambos descendientes heredan genes de cada uno de los padres. Este operador se conoce como operador de cruce basado en un punto. Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han sido seleccionados para emparejarse, sino que se aplica de manera aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0. 8.5.) SISTEMAS BASADOS EN EL CONOCIMIENTO (SBC) Un sistema basado en el conocimiento es aquel que basa la solución de un problema en el conocimiento experto humano. Los sistemas basados en el conocimiento (SBC) son parte del área de la inteligencia Artificial “IA” que es una rama de la informática, estos sistemas imitan las actividades de un ser humano para la solución de un problema utilizando para ello el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción) mientras operan y se adaptan a dominios dinámicos e inciertos que no están completamente especificados. 37 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA La IA está dividida en una serie de áreas de investigación, cada una con propósitos específicos que permite contribuir e un propósito de un objetivo general. Entre estos están las redes neuronales, procesamiento del lenguaje natural, robótica y sistemas basados en el conocimiento. Los Sistemas Basados en el Conocimiento (SBC) tratan problemas complejos en área o dominio este sistema intenta imitar el comportamiento que podría tener un experto humano en dominio del problema, ante los cual los SBC tienen metodologías que intentan reflejar el conocimiento y el razonamiento que posee el experto para tomar decisiones ente una situación puntual. Dentro de estas metodologías se encuentran los “Sistemas Expertos SE” estos nacieron en la década de los 60, durante esta década los investigadores Alan Newell y Herbert Simon desarrollaron un programa llamado GPS (General Problem Solver; solucionador general de problemas), los SE son representativos de los SBC debido a su calidad y cantidad de conocimiento que manejan en relación al experto humano. Dentro de la definición de un SE tiene varias acepciones dentro de las cuales encontramos las siguientes: ► Es un software que imita el comportamiento de un experto humano en la solución de un problema. Pueden almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones. ► Programas que manipulan conocimiento codificado para resolver problemas en un dominio especializado, en un dominio que generalmente requiere de experiencia humana ► Programas que contienen tanto conocimiento declarativo (hechos a cerca de objetos, eventos y/o situaciones) como conocimiento de control (información acerca de los cursos de 38 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA una acción), para emular el proceso de razonamiento de los expertos humanos en un dominio en particular y/o área de experiencia. ► Software que incorpora conocimiento de experto sobre un dominio de aplicación dado, de manera que es capaz de resolver problemas de relativa dificultad y apoyar la toma de decisiones inteligentes en base a un proceso de razonamiento simbólico.27 Estas definiciones no son exclusivas una de otras sino que pueden conjugarse para hacer una sola y tener más claro cuál es el comportamiento de un SE. Los SBC se aplican por lo general, en problemas que implican procedimientos basados en heurística, es decir un procedimiento de solución que utiliza estructuras que contienen conocimiento y experiencia de los expertos humanos, deducción lógica de conclusiones, capacidad de interpretar información ambigua y manipulación del conocimiento afectados por datos de poca fiabilidad y evento probabilístico. Arquitectura general de SBC 39 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 9.) Ejemplos de heurísticas La vida cotidiana nos presenta distintas situaciones que nos llevan a reflexionar y a generar cierta soluciones para sortear y superar estos problemas. Comúnmente, situaciones aunque parezcan simples, nos llevan a enfrentar una problemática interesante que desafía nuestra inteligencia y capacidad imaginativa para resolver cualquier adversidad Aquí hay unos ejemplos de ciertos problemas que de alguna manera su solución ha ayudado a resolver situaciones aun más complejas 9.1.) 8 REINAS. El problema de las 8 reinas fue propuesto por el ajedrecista alemán Max Bezzel en el año 1848. Consiste en la manera de situar 8 reinas en un tablero de ajedrez, sin que puedan "amenazarse", es decir, que ninguna esté en la misma fila, columna o diagonal que la otra. Es interesante estudiar esta problemática que ha sido resuelta de varias maneras, pero siempre con una premisa por delante, usar una estrategia heurística para resolverla. La formula mas común consiste en el Back Tracking. Este procedimiento consiste en ir ubicando las piezas recordando la posición de las anteriores. Si por algún motivo una no puede ser ubicada, volver hacia movimientos anteriores para seguir tratando por otro camino 40 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 9.2.) PROBLEMA A* Desde siempre hemos tratado de resolver de mejor manera un problema tan común como un laberinto. La idea es que dado un par de puntos dentro de un lugar, buscar el camino más corto entre ellos. Al ser una búsqueda por amplitud, el algoritmo A* es un algoritmo completo, es decir, si existe una solución, el algoritmo la encontrará. La forma en que se modela la solución es a través de un grafo en donde cada nodo es una posición valida dentro del espacio. La función que se evalúa es de la forma F(n) = g(n) + h'(n), en donde g(n) representa el costo total del recorrido antes de llegar al nodo n y h'(n) es el costo heurístico del nodo a evaluar. 9.3.) VENDEDOR VIAJERO. Este es la problemática más cotidiana y más complicada de solucionar dentro de los problemas logísticos para cualquier empresa. ¿Cual es la manera optima para repartir o recorrer ciertos lugares de la manera más rápida y menos costosa? Esta problemática pertenece a la categoría de NP - Completo, por ende, no posee una solución polinomial optima. Existen aproximaciones heurísticas para esto, que llegan a buenos resultados, pero no podemos tener la certeza de que sean óptimos. 41 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Una solución intuitiva para resolver esto sería evaluar cada una de las opciones, pero a través de un cálculo simple podemos darnos cuenta que este proceso es una permutación de todos los nodos y la complejidad de esto es de n!, lo que si utilizáramos 8 nodos, ya tenemos que evaluar más de 40000 posibilidades. Con 20 o más, ya se hace prácticamente imposible manejar esta cantidad de datos manualmente. Incluso a través de una computadora, necesitamos bastante tiempo y capacidad de procesamiento para calcular estas posibilidades Para modelar este problema se utiliza un grafo multidireccional, con un peso o costo o determinado entre cada nodo Aquí podemos ver 4 destinos y la oficina principal, con el costo asociado a cada camino. Para resolver esta situación utilizaremos un software muy usado en temas de estadística y cálculos numéricos, llamado WINQSB. Para esto, creamos la matriz de adyacencia de este grafo 42 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA La forma en que calculara la solución es buscando todos los ciclos posibles para este grafo y retornara el resultado menos, es decir, el menos costoso. Luego de calcular, el programa nos retorna la siguiente información 43 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA El recorrido optimo seria entonces Oficina Central - Lugar 3 - Lugar 4 - lugar 2 - Lugar 1 - Oficina central. El costo total del ciclo es de 195. Gráficamente, el camino se ve así 44 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 9.4.) Búsqueda en anchura. En Ciencias de la Computación, Búsqueda en anchura (en inglés BFS - Breadth First Search) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles). Intuitivamente, se comienza en la raíz (eligiendo algún nodo como elemento raíz en el caso de un grafo) y se exploran todos los vecinos de este nodo. A continuación para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes, y así hasta que se recorra todo el árbol. Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y examina todos los nodos de un árbol sistemáticamente para buscar una solución. El algoritmo no usa ninguna estrategia heurística. 45 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Si las aristas tienen pesos negativos aplicaremos el algoritmo de Bellman-Ford en alguna de sus dos versiones. Procedimiento ► Dado un vértice fuente s, Breadth-first search sistemáticamente explora los vértices de G para “descubrir” todos los vértices alcanzables desde s. ► Calcula la distancia (menor número de vértices) desde s a todos los vértices alcanzables. ► Después produce un árbol BF con raíz en s y que contiene a todos los vértices alcanzables. ► El camino desde s a cada vértice en este recorrido contiene el mínimo número de vértice. Es el camino más corto medido en número de vértices. ► Su nombre se debe a que expande uniformemente la frontera entre lo descubierto y lo no descubierto. Llega a los nodos de distancia k, sólo tras haber llegado a todos los nodos a distancia k-1. Pseudocódigo La nomenclatura adicional utilizada es: Q = Estructura de datos cola. 46 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA 47 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay HEURÍSTICA Descargas Un programa muy utilizado para hacer cálculos para cada uno de los algoritmos usados en informática y estadística es WinQSB • www.pcdigital.org/descargar-winqsb-20/ Visite: • http://psmheuristica.webnode.com.ve/ • http://www.youtube.com/watch?feature=player_embedded&v=_HjvV5nQziw&noredirect=1 • http://www.youtube.com/watch?feature=player_embedded&v=upoXlf_g-nE • http://www.youtube.com/watch?feature=player_embedded&v=y5jQpOXEj78 • http://www.youtube.com/watch?feature=player_embedded&v=K1fgnN0WCYQ 48 Elaborado: Brito Jennifer – Ramírez María –Izquierdo Paúl // Docente: Zapata José //Catedra: Investigación de Operaciones II // Maracay 2012 // PSM Extesion Maracay // [email protected] // twitter: @psmheuristica // facebook: psm.heuristica / Heuristica IPSM-Maracay