Next: Diseño y Desarrollo de
Up: Computación Evolutiva Orientada a
Previous: Objetos Evolutivos
  Índice General
Las principales diferencias que encontramos entre OE y otros paradigmas de computación evolutiva son [#!EO1999!#,#!EOFEA2000!#,#!MereloIWEC!#,#!CastilloTESIS!#]:
- OE es independiente del paradigma, lo cual quiere decir que no es un algoritmo genético, ni un programa evolutivo, ni un programa genético, ni un enfriamiento simulado, pero que puede ser cualquiera de ellos, y de hecho todos esos paradigmas de la computación evolutiva pueden implementarse con OE.
Por ejemplo, para implementar un AG simple, el objeto mutador simplemente debería cambiar el valor de ciertos bits en la cadena; el objeto reproductor aplicaría el procedimiento del operador de cruce; una función de evaluación escalar permitiría la comparación de dos OE, y a partir de éste se podría aplicar un proceso de selección (ruleta) para reproducir los mejores y eliminar los peores individuos.
- OE es independiente de la representación. OE no necesita información acerca de cómo se representa una solución a un problema, sino simplemente del hecho de que éstas pueden cambiarse y si es conveniente, combinarse entre sí. De hecho, OE no necesita representar las soluciones de un modo diferente, simplemente codificarlas en el lenguaje orientado a objetos: una solución a un problema es un objeto (perteneciente a cierta clase), que podrá ser mutado, combinado con otros de su clase y comparado para estimar cuál es el mejor, lo cual es suficiente para hacerlo evolucionar.
- OE es independiente del lenguaje de programación, lo cual quiere decir que no necesita codificar las soluciones como objetos de un lenguaje orientado a objetos en particular, tal y como el paradigma de la Programación Genética hace (representa las soluciones en LISP). Las soluciones se pueden programar en cualquier lenguaje orientado a objetos y hacerlos evolucionar utilizando la biblioteca de OE del mismo lenguaje. De hecho, los OE se pueden programar en diferentes lenguajes de programación y hacerlos evolucionar a la vez, usando modelos de objetos independientes del lenguaje de programación, tal como COM (Common Object Model, de Microsoft [#!COMweb!#]) o CORBA (Common Object Request Broker Architecture, del Object Management Group [#!CORBA99!#,#!CORBAweb!#]).
- OE es orientado a objetos desde la base: no sólo el objeto o la clase del individuo que se hará evolucionar se programa según este paradigma de programación, sino también cualquier elemento que intervenga en la evolución (operadores, selectores y los algoritmos mismos).
OE hace énfasis en la modularidad a la hora de programar una aplicación evolutiva. Debido a que tanto los operadores como el resto de entidades son objetos, resulta fácil combinar diferentes operadores y objetos de distintas fuentes para construir una aplicación. En la práctica no importa el interior del objeto, sino cómo se pueda acceder a él mediante su interfaz.
Next: Diseño y Desarrollo de
Up: Computación Evolutiva Orientada a
Previous: Objetos Evolutivos
  Índice General
Francisco Javier Garcia Castellano
2000-12-14