PSO y DE
Lo siento, pero estos algoritmos ya están cogidos I
Empezamos la ronda de Técnicas Evolutivas con el algoritmo PSO y DE.
Algoritmo de Optimización por Enjambre de Partículas - PSO
El algoritmo PSO se basa en mover unas "partículas" o "agentes" (soluciones candidatas) por un espacio de búsqueda (variables a optimizar) según unas reglas matemáticas que tienen en cuenta la posición y la velocidad de las partículas. El movimiento de las partículas dependerá de su última mejor posición local y de las mejores posiciones globales de las otras partículas. De ese modo las partículas se "ayudan mutuamente".
Perdona ¿Cómo? Para entendernos mejor, supongamos que la pesca es el deporte de moda actual, y que estamos en época de pesca. Nos encontramos en un lago precioso, con nuestro bote, la caña de pescar, un bocata de tortilla, y muchas ganas de encontrar el mejor pescado del lago. Porque sabemos que existe UN mejor pescado en el lago, y no nos vamos a conformar con cualquier pescado bueno.
Pero, nos encontramos con un problema: el lago está abarrotado de otros botes.
No obstante, podemos aprovecharnos de este pequeño contratiempo. Si nos fijamos en los demás botes, en donde están y a donde se dirigen, podemos hacer lo mismo, pues todos tenemos el mismo objetivo. Y así, con suerte ser los que capturemos el mejor pescado.
Entonces... Como ya se estará imaginando, el bote/usted es un agente, el mejor pescado el objetivo, y el lago, el espacio de búsqueda.
Algoritmo Differential Evolution - DE
El algoritmo de Evolución Diferencial se basa en la comparación de una población de candidatos con la versión recombinada y mutada de esta. Los individuos que pasarán a la siguiente generación serán aquellos que más aptos sean.
Dicho de otra forma: es como si los Spidermans de diferentes dimensiones se fusionaran para crear un nuevo Spiderman, y este se peleara con el Spiderman original. Solo podría sobrevivir un Spiderman, el mejor.
Dicho de otra forma (mejor): con la población de agentes originales (los botes del lago), llamados X, se creará una población nueva. La población nueva, Y (botes mutados), se creará mezclando 3 agentes aleatorios de la población original (X). Esta fusión se hará una vez por cada agente de la población X.
Yi = Xa + F*(Xb - Xc)
Donde F es el rango de mutación y puede tomar cualquier valor de 0 a 2.
Después, cada agente de la población X e Y, se emparejará y tendrán un descendiente con las características de los dos. Las características se pueden escoger de forma aleatoria o siguiendo alguna fórmula. Para que se haga una idea: la población de botes descendientes T tendrán las características de los dos progenitores, consiguiendo barcos variopintos del color de un progenitor y el material del otro, o el mástil de un progenitor y la cubierta de otro, ...
Después de conseguir árbol genealógico un tanto especial, solo queda aplicar la ley de la jungla. Cada descendiente T se enfrentará a su progenitor original X. Los que sean más aptos sobrevivirán, y tendrán el derecho a tener descendientes. En otras palabras, se repetirá el proceso de mutación, combinación y selección.
¿Hasta cuándo? Hasta que se llegue a una buena solución o la mejor solución no haya mejorado en unas cuantas generaciones o hasta que se llegue a la generación número N o ...
Para conocer otros algoritmos haga click aquí.
Comentarios
Publicar un comentario