lunes, 26 de septiembre de 2011

ALGORITMOS DE NUBES DE PARTÍCULAS PARA RESOLVER PROBLEMAS ENTEROS

Muchos problemas de optimización tienen una alta complejidad, debido a que generalmente son problemas de NP-duras y también porque el tiempo que se posee para resolverlos es muy limitado;  por tanto la informática se ha convertido en pieza clave para la resolución de estos, usando métodos exactos y heurísticos, los cuales son capaces de encontrar muy buenas soluciones en un tiempo y consumo de recursos razonables.

 
Entre las técnicas heurísticas, se encuentran los algoritmos basados en cúmulos de partículas, concretamente el método denominado Particle Swarm Optimization (PSO).
 
Esta técnica fue desarrollada por el psicólogo-sociólogo Jammes Kennedy y por el ingeniero electrónico Russell Eberhart en 1995, fundamentándose en experimentos con algoritmos que modelaban el  comportamiento en vuelo observado en algunas especies de pájaros, o el comportamiento de los bancos de peces, incluso las tendencias sociales en el comportamiento humano.
En este algoritmo, cada individuo, llamado partícula, se va moviendo en un espacio multidimensional que representa su espacio social. Cada partícula tiene memoria mediante la que conserva parte de su estado anterior. Cada movimiento de una partícula es la composición de una velocidad inicial aleatoria y dos valores ponderados aleatoriamente: individual (la tendencia de las partículas de preservar su mejor estado anterior) y social (la tendencia a moverse hacia vecinos con mejor posición).


Debido a su planteamiento, este tipo de algoritmo se adapta muy bien a problemas de programación lineal y entera.

Este problema se plantea de la siguiente manera: se supone que una bandada de aves busca comida en un área y que solamente hay una pieza de comida en dicha área. Los pájaros no saben dónde está la comida pero sí conocen su distancia a la misma, por lo que la estrategia más eficaz para hallar la comida es seguir al ave que se encuentre más cerca de ella. PSO utiliza este escenario para resolver problemas de optimización.
Cada solución (partícula) es un ave en el espacio de búsqueda que está siempre en continuo movimiento y que nunca muere.

El modelo del PSO, es:
: velocidad de la partícula i en la iteración k.

ⱳ: factor inercia.
: son ratios de aprendizaje (pesos) que controlan los componentes cognitivo y social.

rand1; rand2 : números aleatorios entre 0 y 1.
: posición actual de la partícula i en la iteración k.


pBesti : mejor posición (solución) encontrada por la partícula i hasta el momento.
gi : representa la posición de la partícula con el mejor pBest_fitness del entorno de pi (lBest o localbest) o de todo el cúmulo (gBest o globalbest).

El modelo se representa en las siguientes ecuaciones:




La primera ecuación, refleja la actualización del vector velocidad de cada partícula i en cada iteración k.


Tipos de Algoritmos de PSO.

Existe muchos tipos de PSO que atienden diversos factores, como lo son: según la importancia de los pesos cognitivo, social y según el tipo de vecindario utilizado.
Ya dependiendo de la influencia de los factores cognitivo y social sobre la dirección de la velocidad que toma una partícula en el movimiento identifica cuatro tipos de algoritmos:


  •   Modelo Completo: Tanto el componente cognitivo como el social intervienen en el movimiento.
  •         Modelo sólo Cognitivo: Únicamente el componente cognitivo interviene en el movimiento.
  •         Modelo sólo Social: Únicamente el componente social interviene en el movimiento.
  •        Modelo sólo Social exclusivo: La posición de la partícula en sí no puede ser la mejor de su entorno.
·        
Por otra parte desde el punto de vista del vecindario es decir, la cantidad y posición de las partículas que intervienen en el cálculo de la distancia en la componente social, se clasifican dos tipos de algoritmos: PSO Local y PSO Global.
En el PSO Local, se calcula la distancia entre la posición actual de partícula y la posición de la mejor partícula encontrada en el entorno local de la primera. El entorno local consiste en las partículas inmediatamente cercanas en la topología del cúmulo.
Para el PSO Global, la distancia en el componente social viene dada por la diferencia entre la posición de la partícula actual y la posición de la mejor partícula encontrada en el cúmulo completo. La versión Global converge más rápido pues la visibilidad de cada partícula es mejor y se acercan más a la mejor del cúmulo favoreciendo la intensificación, por esta razón, también cae más fácilmente en óptimos locales.

Topologías del Cúmulo de Partículas.

Hay que resaltar algo muy importante, y es la manera en que una partícula interacciona con las demás partículas de su vecindario. El desarrollo de una partícula depende tanto de la topología del cúmulo como de la versión del algoritmo. Las topologías definen el entorno de interacción de una partícula individual con su vecindario. La propia partícula siempre pertenece a su entorno. Los entornos pueden ser de dos tipos:


  • Geográficos: se calcula la distancia de la partícula actual al resto y se toman las más cercanas para componer su entorno.
  • Sociales: se define a priori una lista de vecinas para partícula, independientemente de su posición en el espacio.

Un problema habitual de los algoritmos de PSO es que la magnitud de la velocidad suele llegar a ser muy grande durante la ejecución, con lo que las partículas se mueven demasiado rápido por el espacio. El rendimiento puede disminuir si no se fija adecuadamente el valor de vmax, la velocidad máxima de cada componente del vector velocidad.

Por último podemos decir que este algoritmo se aplica en diferentes campos de investigación. Entre ellos están: la optimización de funciones numéricas, el entrenamiento de redes neuronales, el aprendizaje de sistemas difusos, el registrado de imágenes, el problema del viajante de comercio e ingeniería química. 

REFERENCIAS:
  • Algoritmos Basados en Cúmulos de Partículas Para la Resolución de Problemas Complejos
  • Autor: José Manuel García Nieto
  • Directores: Enrique Alba Torres Gabriel Jesús Luque Polo
  • septiembre de 2006

jueves, 15 de septiembre de 2011

EVIDENCIAS DE LAS SEMANAS 1-2-3

El día jueves 18 de septiembre del año 2011 fue nuestra primera clase de investigación de operaciones II. Donde el profesor al principio realizo su respectiva presentación y procedió a que cada uno de los estudiantes se presentara con su nombre completo, semestre cursando y las expectativas que cada uno tenia del curso.

En general el curso tiene como expectativa adquirir nuevos conocimientos brindados por el profesor e ir en busca de ellos por medio de libros, Internet o personas que tengan conocimiento del tema, para asi poderlos aplicar en el ámbito profesional y desempeñar una buena labor como prontos ingenieros industriales.

El profeso escribió en el tablero sus correos para una pronta comunicación con el en caso de algunas inquietudes por resolver, estos son:
jcoronado@unitecnologica.edu.co
jaracohe@gmail.com
Aclaro que el correo que más revisa es el segundo, nos dejo también la página de su blog: http://jaracohe.googlepages.com.

El primer día de la clase teníamos asignado el salón A2-407, pero en este lugar no teníamos acceso a Internet, por lo que nos toco mudarnos al salón A2-502, en el cual realizaremos todas nuestras clases.
El profesor Jairo Coronado se dirigió a su oficina a buscar su portátil, ya que no salía la presentación que nos tenía preparada para la primera clase.

Después de los inconvenientes presentados el profesor se dirige a dictar la clase. El primer tema a tratar fue Teoría de decisiones, que nos dice que se debe elegir una decisión de un conjunto de posibles acciones.
En este día el profesor nos dejo una tarea para entregar la clase siguiente es decir el día 25 de agosto, a todos los estudiantes nos toco realizar las siguientes actividades:

• Lecturas de apoyo: capitulo 15 “Análisis de decisiones” de Hiller, 2010 y capitulo 14 “Análisis de decisiones y juegos” partes 14-2 y 14-3.
• Realizar un ensayo sobre el uso de las funciones de utilidad en los árboles de decisiones con un ejemplo; máximo 5 paginas con referencias bibliograficas, en grupo de 3 estudiantes.
• Desarrollar a mano el ejercicio 2 del conjunto de problemas 14.A de TAHA, 2004. Utilice todos los criterios posibles. Al final tome una decisión individual.
• Desarrollar con el software treeage el ejercicio 9 del conjunto de problemas 14.2A de (Taha, 2004) Individual.

La bibliografía del curso de Investigación De Operaciones II es la Siguiente:
• Taha, H Investigación de Operaciones (2004) pearson. México.
• Frederick S. Hillier, Gerald J. Lieberman.
• Introducción a la Investigación de Operaciones (2010) Mc Graw-Hill, México.
El propósito de las actividades propuestas del la clase del 18 de agosto es poner en practica los conocimientos adquiridos.

El objetivo de las lecturas a realizar es más que todo para profundizar conceptos y tener ideas claras sobre los temas de análisis de decisión, donde podemos interpretar y guardar los conceptos del tema de un modo más entendible que podamos.

El ejercicio propuesto a mano tiene como propósito el que apliquemos todos los criterios posibles en la toma de decisiones bajo incertidumbre para poder proponer soluciones a cualquier problema, laboral o cotidiano, en el caso del ejercicio a estudiar, nos tocaba proponerle al Granjero McCoy cual era el mejor uso que le debía dar a su tierra, ya sea A1= Plantar maíz, A2= Plantar Trigo, A3= Plantar Soya o A4= Usar la tierra para pastoreo.
Este problema se resolvía por los criterios de toma de decisiones bajo incertidumbre, realizando todos los desarrollos necesarios nos arrojaba que dos criterios coincidían en el mejor uso que el granjero McCoy.
El ejercicio que debíamos realizar con el software treeage, también como el ejercicio anterior era para aplicar teorías y conceptos recibidos en clase y leídos en las copias, a diferencia que este problema no era bajo certidumbre, ni bajo incertidumbre, sino era un problema bajo riesgo es decir aplicábamos los árboles de decisiones con una herramienta útiles para nosotros como ingenieros, este es el software treeage.

El ensayo sobre el uso de las funciones de utilidad en los árboles de decisiones con un ejemplo, es una actividad significativa para nosotros los estudiantes ya que el desarrollar ideas, leer conceptos escritos en libros de autores diferentes, para analizarlos y luego interpretarlos de tal manera que escribas y redactes con tus palabras; da entender que entendiste, interpretaste y analizaste bien los conocimientos que te dieron a leer.
Aporte Grupal: el tema de análisis de decisiones bajo riesgo nos parece bastante complejo e interesante ya que en el diario vivir nos enfrentamos a la toma de decisiones cotidianas, profesionales, donde nos toca elegir un camino para actuar y asumir las consecuencias que este trae consigo.
clase a clase, hemos aprendido y adquirido nuevos conocimientos que nos ayudaran a desenvolvernos mejor en nuestro campo laboral.