Hola
Un algoritmo de este algoritmo no te lo puedo proveer puesto que no lo tengo, y la verdad, la implementación varia de acuerdo a lo que quieras hacer.
Sin embargo, el algoritmo consiste en optimizar (maximizar o minimizar) algo. Para poder ejecutar el algoritmo necesitas definir un dominio, (la cual normalmente está dado por una función).
Lo que haces es empezar en un punto aleatorio de tu dominio, e irte moviendo poco a poco aleatoriamente, sustituyendo el punto actual por el que te mueves si este resulta ser mejor. Este proceso lo repites hasta que no puedas seguir optimizando el resultado.
Espero haberme explicado bien el proceso.
Saludos