2008-11-20 15 views

Respuesta

3

No he oído pero he oído hablar de esta empresa (no recuerdo su nombre) que utiliza algos genéticos mutantes para calcular ubicaciones y longitudes de antenas (o algo así) de un amigo mío. Y se supone que deben (de acuerdo con mi amigo) tener un gran éxito con esto. Supongo que GA es demasiado complejo para que el "desarrollador promedio Joe" se convierta en la corriente principal. Algo así como Map Reduce: espectacularmente genial, pero WAY demasiado avanzado para llegar al "mainstream" ...

+0

http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/8/27408/01219605.pdf?arnumber=1219605 –

+4

No creo que sea demasiado complejo. El problema más grande es que es un algoritmo no determinista y, por lo tanto, a menudo no se puede garantizar una cierta calidad de los resultados y, por lo tanto, las personas prefieren otras heurísticas (donde pueden). – flolo

+0

No es complejo: el problema es que suena complejo: en realidad no necesita mucho conocimiento de genética para implementar sus propias GA. – Nobody

4

que utilizan GA en mi tesis de maestría, pero después de eso no he encontrado nada en mi trabajo diario de un GA podría resolver que no podía resolver más rápido con algún otro algoritmo.

+3

Eso está en la naturaleza de la bestia: GA es más útil si no conoce una solución analítica para su problema. Una solución analítica siempre debe ser más eficiente. – sum1stolemyname

20

Los algoritmos genéticos se han utilizado ampliamente comercialmente. La optimización del enrutamiento de trenes fue una aplicación temprana. Más recientemente, los aviones de combate han utilizado GA para optimizar los diseños de las alas. He utilizado exhaustivamente GA en el trabajo para generar soluciones a problemas que tienen un espacio de búsqueda extremadamente grande.

Es poco probable que muchos problemas se beneficien de las GA. No estoy de acuerdo con Thomas en que sean demasiado difíciles de entender. Un GA es realmente muy simple. Descubrimos que hay una gran cantidad de conocimiento que se puede obtener al optimizar la GA para un problema en particular que podría ser difícil y, como siempre, la administración de grandes cantidades de cómputo paralelo sigue siendo un problema para muchos programadores.

Un problema que se beneficiaría de un AG va a tener las siguientes características:

  • Una buena manera de codificar las posibles soluciones
  • Una manera de calcular una una puntuación numérica para evaluar la calidad de la
  • solución
  • un gran espacio de búsqueda multidimensional, donde la respuesta es no evidente
  • una buena solución es lo suficientemente bueno y una solución perfecta no es necesaria

Hay muchos problemas que probablemente podrían beneficiarse de las GA y en el futuro probablemente se desplieguen más ampliamente. Creo que las GA se usan en la ingeniería de vanguardia más de lo que la gente piensa, sin embargo, la mayoría de las personas (como mi empresa) protegen esos secretos de forma extremadamente estrecha. Es solo mucho después del hecho de que se revela que se usaron GA.

La mayoría de las personas que se ocupan de aplicaciones "normales" probablemente no les sirvan de mucho.

+7

+1 pero creo que los algoritmos genéticos son simples para las personas que "obtienen" el principio básico de la evolución/selección natural. Nunca he sido capaz de explicar con éxito GA a las personas que niegan la evolución (un grupo grande, por desgracia). – MusiGenesis

+0

Necesito aprender sobre las GA, es decir, he leído los conceptos básicos y los obtuve, pero sin ejemplos y analogías es inútil. Todavía estoy confundido acerca de los principios básicos. –

+0

@MusiGenesis, Tener un algoritmo que evoluciona de un estado a otro basado en cierta puntuación, y un objetivo específico, no explica al compañero del UNIVERSO, ni para probar la teoría de la evolución;) – securecurve

2

No creo que sea particularmente común encontrar algoritmos genéticos en el código comercial cotidiano. Se encuentran más comúnmente en el código académico/de investigación donde la necesidad de encontrar el "mejor algoritmo" es menos importante que la necesidad de simplemente encontrar una buena solución a un problema.

No obstante, he consultado sobre un par de proyectos comerciales que usan GA (principalmente como resultado de mi participación en GAUL).Creo que el ejemplo más interesante fue en una empresa de Biotech. Utilizaron GA para optimizar las funciones de puntuación que se utilizaron para la detección virtual, como parte de su aplicación de descubrimiento de fármacos.

A principios de este año, con mi current company, agregué una nueva función a uno de nuestros productos que usa otra GA. Creo que podríamos comercializar esto a partir del próximo mes. Básicamente, la GA se usa para explorar moléculas que tienen el potencial de unirse a una proteína y, por lo tanto, podría investigarse más como fármacos dirigidos a esa proteína. Un producto competidor que también usa un GA es EA inventor.

2

Como parte de mi tesis, escribí un marco java genérico para el algoritmo de optimización multiobjetivo mPOEMS (optimización prototipo multiobjetivo con pasos de mejora evolutiva), que es un GA que utiliza conceptos evolutivos. Es genérico de manera que todas las partes independientes del problema se han separado de las partes dependientes del problema, y ​​se proporciona una interfaz para usar el marco con solo agregar las partes dependientes del problema. Por lo tanto, quien quiera usar el algoritmo no tiene que comenzar desde cero, y facilita mucho el trabajo.

Puede encontrar el código here.

Las soluciones que puede encontrar con este algoritmo se han comparado en un trabajo científico con los últimos algoritmos SPEA-2 y NSGA, y se ha demostrado que tiene un rendimiento comparable o incluso mejor, dependiendo de las métricas que tome para medir el rendimiento, y especialmente según el problema de optimización que esté buscando.

Lo puedes encontrar here.

También como parte de mi tesis y prueba de trabajo apliqué este marco al problema de selección de proyectos que se encuentra en la administración de la cartera. Se trata de seleccionar los proyectos que añaden más valor a la empresa, respaldar la estrategia de la empresa o apoyar cualquier otro objetivo arbitrario. P.ej. la selección de un determinado número de proyectos de una categoría específica, o la maximización de las sinergias del proyecto, ...

Mi tesis que se aplica este marco para el problema de selección de proyectos: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

Después trabajé en una cartera departamento de gestión en uno de los Fortune 500, donde utilizaron un software comercial que también aplicó un GA al problema de selección del proyecto/optimización de la cartera.

recursos adicionales:

La documentación del marco: http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf

mPOEMS papel de la presentación: http://portal.acm.org/citation.cfm?id=1792634.1792653

realidad con un poco de todo el mundo el entusiasmo pudiera adaptarse fácilmente el código del marco genérico de un problema arbitrario de optimización multiobjetivo.

Cuestiones relacionadas