stringtranslate.com

Mejoramiento genético (informática)

En el desarrollo de software informático , la mejora genética es el uso de técnicas de optimización y aprendizaje automático , en particular técnicas de ingeniería de software basadas en búsquedas, como la programación genética, para mejorar el software existente . [1] [2] El programa mejorado no necesita comportarse de forma idéntica al original. Por ejemplo, la corrección automática de errores mejora el código del programa al reducir o eliminar el comportamiento defectuoso . [3] En otros casos, el software mejorado debería comportarse de forma idéntica a la versión anterior, pero es mejor porque, por ejemplo: se ejecuta más rápido, [4] utiliza menos memoria , [5] utiliza menos energía [6] o se ejecuta en un tipo diferente de computadora. [7] La ​​mejora genética se diferencia, por ejemplo, de la traducción formal de programas , en que verifica principalmente el comportamiento de la nueva versión mutante ejecutando tanto el software nuevo como el antiguo en entradas de prueba y comparando su salida y rendimiento para ver si el nuevo software todavía puede hacer lo que se quiere del programa original y ahora es mejor.

La mejora genética se puede utilizar para crear múltiples versiones de programas, cada una diseñada para ser mejor para un uso particular o para una computadora particular.

La mejora genética se puede utilizar con la optimización multiobjetivo para considerar la posibilidad de mejorar el software en múltiples dimensiones o para considerar compensaciones entre varios objetivos, como pedirle a IG que desarrolle programas que equilibren la velocidad con la calidad de las respuestas que brindan. Por supuesto, es posible encontrar programas que sean más rápidos y brinden mejores respuestas.

En general, la mejora genética realiza pequeños cambios o ediciones (también conocidos como mutaciones ) en el código fuente del programa , pero a veces las mutaciones se realizan en código ensamblador , código de bytes [8] o código binario de máquina . [9]

Referencias

  1. ^ Langdon, William B. (2015). "Software mejorado genéticamente". Manual de aplicaciones de programación genética . págs. 181–220. doi :10.1007/978-3-319-20883-1_8. ISBN 978-3-319-20882-4.
  2. ^ Justyna Petke y Saemundur O. Haraldsson y Mark Harman y William B. Langdon y David R. White y John R. Woodward (2018). "Mejora genética del software: un estudio exhaustivo" (PDF) . IEEE Transactions on Evolutionary Computation . 22 (3): 415–432. doi :10.1109/TEVC.2017.2693219. hdl : 1893/25358 . S2CID  30314751.
  3. ^ Weimer, Westley; et al. (2010). "Reparación automática de programas con computación evolutiva". Comunicaciones de la ACM . 53 (5): 109–116. CiteSeerX 10.1.1.170.188 . doi :10.1145/1735223.1735249. S2CID  7408151. 
  4. ^ Langdon, William B.; Harman, Mark (2015). "Optimización de software existente con programación genética". IEEE Transactions on Evolutionary Computation . 19 : 118–135. doi :10.1109/TEVC.2013.2281544. S2CID  9891830.
  5. ^ Wu, Fan; Weimer, Westley; Harman, Mark; Jia, Yue; Krinke, Jens (2015). "Optimización de parámetros profundos". Actas de la Conferencia anual de 2015 sobre computación genética y evolutiva . págs. 1375–1382. doi :10.1145/2739480.2754648. ISBN . 9781450334723. Número de identificación del sujeto  17820784.
  6. ^ Bruce, Bobby R.; Petke, Justyna; Harman, Mark (2015). "Reducción del consumo energético mediante el mejoramiento genético". Actas de la Conferencia Anual de 2015 sobre Computación Genética y Evolutiva . págs. 1327–1334. doi :10.1145/2739480.2754752. ISBN . 9781450334723.S2CID207224618  .​
  7. ^ Langdon, William B.; Harman, Mark (2014). "Software CUDA C++ mejorado genéticamente". Programación genética. Apuntes de clase en informática. Vol. 8599. págs. 87-99. doi :10.1007/978-3-662-44303-3_8. ISBN 978-3-662-44302-6. {{cite book}}: |journal=ignorado ( ayuda )
  8. ^ Orlov, Michael; Sipper, Moshe (2011). "El vuelo del FINCH a través del desierto de Java". IEEE Transactions on Evolutionary Computation . 15 (2): 166–182. CiteSeerX 10.1.1.298.6272 . doi :10.1109/TEVC.2010.2052622. S2CID  14616802. 
  9. ^ Schulte, Eric M.; Weimer, Westley; Forrest, Stephanie (2015). "Reparación del firmware de un enrutador COTS sin acceso al código fuente o a los conjuntos de pruebas". Actas de la publicación complementaria de la Conferencia anual de 2015 sobre computación genética y evolutiva . págs. 847–854. doi :10.1145/2739482.2768427. ISBN . 9781450334884. Número de identificación del sujeto  14772346.

Enlaces externos

Herramientas