Hola...
Tu práctica parece bastante interesante, pero podrías llegar a mejorarla un poco. Te cuento:
Podrías haber utilizado un interface y programar una clase que lo implemente para cada uno de los algoritmos de mutación. Lo mismo para las selecciones y para todo lo demás y meter en tu clase AGenetico parámetros para pasarle esas clases. De esta forma ahorras algo de tiempo y de código. Espero que se me haya entendido correctamente.
En cuanto a lo de la lentitud... ya nos dirás cómo se llama tu profesor, o donde estudias, para no aparecer jamás por ahí, aunque ten en cuenta que tu profesor no tiene por qué saber Java. Yo estudié la asignatura programando en C++.
Los algoritmos genéticos son un trabajo pesado. Cuando ejecutas un programa con Swing, la JVM crea una hebra digamos... específica para el GUI. Si ejecutas cualquier trabajo sobre esa hebra, como es el caso, no sólo irá más lento, sino que, además, dejarás 'colgado' tu interfaz gráfico. Echa un vistazo en internet y en este foro a la clase SwingWorker. En las últimas versiones de JDK viene incluído, pero se pueden descargar las clases como paquete a parte para las versiones por debajo de la 1.5 (no recuerdo si la 1.4 la llevaba de serie).
Usando eso, seguramente te tirará más rápido.
De los resultados, no hay mucho que decir... la ejecución es la misma, aunque ya sabes que no todas las ejecuciones de algoritmos genéticos dan el mismo resultado ;o) no creo que sean más que apreciaciones tuyas. De todas formas, repasa el código por si se te ha colado algún error al capturar las opciones desde el GUI y el programa no está haciendo lo que tú realmente quieres que haga.
Ya nos contarás.
Buena suerte.
Silverfox