viernes, 7 de octubre de 2011

De algoritmos genéticos y del azar

Hace algún tiempo un amigo me mencionó algunas características de los algoritmos genéticos (un poco más de información acá). Resumiendo burdamente, para obtener soluciones óptimas a un problema, comienzo con un grupo de soluciones y les introduzco reproducciones y/o variaciones al azar. Las comparo entre ellas (las hago competir de alguna forma) y recojo las soluciones vencedoras y voy eliminando las soluciones perdedoras. Iterando sobre este proceso se converge a soluciones relativamente aceptables en tiempos competitivos con otros algoritmos combinatoriales.
Las mayores ventajas de este tipo de algoritmos, es que no necesito ningún conocimiento específico del problema que busco resolver. Solo aplico variaciones azarosas y permito que el proceso que lleva al resultado (cuyas variables que afectan no tengo que conocer) me diga si encontré un camino hacia una mejor solución.
Las grandes cantidades de iteraciones que podemos generar computacionalmente nos permite visualizar cómo teorías como la propuesta por Darwin permite llegar a entidades relativamente adaptadas a las condiciones impuestas (parcialmente óptimas a las condiciones del problema) en grandes periodos de tiempo (del orden de las iteraciones que se necesitan en los algoritmos computacionales), sin la necesidad de un mayor entendimiento de como las variables influyen sobre la adaptibilidad (o de una inteligencia que ayuda a las entidades a adaptarse como en las teorías creacionistas).
No es mi intención argumentar ni mostrar inclinaciones hacia una u otra teoría (aunque en algunos casos resulte inevitable), en ningún caso algoritmos como el genético ayudan a demostrar teorías, solo respaldan con simulaciones factibilidades de las teorías. Es decir, solo puedo concluir que si logro encontrar una solución parcialmente óptima en un computador, es factible que pueda ocurrir de formas naturales en tiempos lo suficientemente extensos en el que se generen una cantidad de iteraciones del orden requerido por el algoritmo.
Mi principal propósito en esta reflexión es argumentar respecto a ésto: La factibilidad de los algoritmos heurísticos como el genético, de como abordar un problema del que no tenemos control ni total conocimiento de la dinámica de las variables que interactúan. Ya sea porque carezco de la capacidad de medir las variables, la capacidad de procesar las variables y/o la inteligencia (capacidad de procesar?) para entender la dinámica del problema. Me introducen en un acuario con sus propias leyes misteriosas, en el que introduzco una acción, y obtengo un resultado, con una cajita negra que representa la dinámica de por medio. La curiosidad humana siempre nos impulsa de alguna manera a querer entender la caja negra, las leyes misteriosas, y la acción de ella sobre las acciones que influyen en los resultados. Pero queramos o no, el individuo por si solo es limitado, por la calidad de medición, por inteligencia, entendimiento, procesamiento, y por tiempo (hasta que descubramos una forma de vivir eternamente el tiempo siempre será una de las mayores restricciones en la vida!).
¿Sobre que tipo de problemas se presentan en alguna forma estas características (incapacidad ya sea de medir variables, procesarlas y/o entenderlas)? Desgraciadamente (o tal vez afortunadamente?) la respuesta es que se da practicamente en todos. Se me vienen a la cabeza primero los más evidentes, como las ciencias sociales, economía, biología, finanzas, o muchos otros en los que la cantidad de variables involucradas son muy complicadas de medir, procesar y/o entender.
Nos encontramos también con ciencias en las que podemos reducir el número de variables a considerar, y experimentar con éstas, tales la física, pero surgen los conocidos pero en general poco comprendidos fenómenos de incertidumbre en las mediciones de la mecánica cuántica, o la dificultad en la experimentación de condiciones extremas y límites de las leyes físicas (materia oscura y la expansión acelerada del universo, bichos de la astrofísica como los hoyos negros y estrellas de neutrones, big bang y todos los fenómenos que se muestran siempre con animaciones computarizadas y música épica de fondo en videos de YouTube y documentales de la cadena Discovery...)
Se me ocurren también problemas bastante más abstractos, cuyas variables son conceptos e ideas, como las matemáticas o la filosofía, requieren de "inspiración", serendipia, o algún tipo de movimiento azaroso de las ideas en la cabeza del que muchas veces no tenemos control.
De alguna forma dada nuestra naturaleza de capacidad limitada de medición, procesamiento y/o inteligencia, siempre nos encontraremos con un muro al enfrentarnos a muchos problemas, y debemos cambiar nuestro "algoritmo" de trabajo de determinista a probabilista, tanteando, buscando, porque nos adentramos a un terreno oscuro dada nuestras limitaciones. Y así, aquel que tiene mala vista busca sus lentes cuando se le han caído al suelo, tenemos que agacharnos y tocar azarosamente para dar con algún tipo de solución relativamente satisfactoria al problema al que nos enfrentemos.
Siempre podemos generar azar, resultados del que no tenemos total información, y eso es maravilloso. Poder encontrar soluciones a problemas que nos superan por capacidad, por el solo echo de jugar con el azar, y aprender a leer las respuestas.
¿Cuantos años de vida tenemos desde que nacemos? 60? 80? 100? Siempre es poco, y de alguna u otra forma, siempre llegaremos a un punto en el que no tendremos respuestas. ¿Queremos respuestas? ¡Mi opinión personal es que la mayoría de las veces si! No me refiero solo a respuestas científicas, sino que de todo tipo, desde la más cotidiana hasta la más espiritual. Creo que el peor error es suponer que me encuentro alrededor de la respuesta, y mantenernos en nuestra zona de comfort. Por un tema de probabilidades, la mayoría de las veces estamos muy lejos de ella. Suponer que las cosas que suponemos verdaderas (algún tipo de solución a nuestros problemas) son las mejores es tan iluso como suponer que el guess inicial de un problema de optimización es el óptimo del problema.
Cuando se nos agotan los recursos, siempre nos queda el azar. Probar cosas nuevas del que no tenemos certidumbre de cual será el resultado. ¿Miedo a equivocarnos en algún grado? Los algoritmos genéticos siempre tienen formas de comparar soluciones, y definitivamente para llegar a soluciones vencedoras, hay que determinar cuales son las perdedoras. ¿Queremos avanzar? ¿Estamos limitados para encontrar soluciones que nos permitan avanzar? Entonces, ¡A equivocarse se ha dicho! Probar cosas nuevas, ver cuales son peores y cuales son mejores, y por qué no, disfrutar del proceso. La vida es corta y somos limitados, pero no significa que por eso no logremos resultados que sobrepasen nuestras capacidades y limitaciones. ¿A quién no le gustaría morir pensando en retrospectiva que logró mucho más en la vida que lo que le permitían sus capacidades?
Si suponemos que la teoría de la evolución es cierta, y seres complejísimos puedan ser generados sin ningún tipo de control inteligente, imaginen lo que puede generar la prueba y error con un control inteligente acelerando el proceso (una especia de creacionismo que nace del individuo que cambia!).
¿Dios no juega a los dados? Tal vez Dios está en el azar de los dados.

Empezar un Blog

Escuché una vez que la mejor forma de calmar las ideas de la cabeza es escribirlas, no porque vaya a leerlas más adelante, ni porque alguien más vaya a hacerlo, sino porque el simple hecho de escribir algo que va a quedar colgado públicamente nos incentiva a agregar una estructura, un orden a los pensamientos (Y maldición! Cómo necesito un orden en mi cabeza en este momento) . En el propósito de ordenarse está el orden, y como quién paga meses de suscripción a un gimnasio por adelantado para incentivarse a hacer ejercicio, voy a tratar de ir escribiendo en este blog como ejercicio para ordenarme. Y a quién vaya alguna vez a leer esto, bienvenido al potpourri del desorden! Porque de seguro saldrán temas dispersos y desordenados. Y está de más decirlo (ya que estoy publicando en un Blog!), pero todo comentario (que no sea troll-azo, no se a quién pueda gustarle eso) es bienvenido!