Me gustaría usar algoritmos evolutivos para la optimización de ingeniería, ¿es bueno usar Python?

Hola,

Sí, Python es una buena opción, ya que hay muchas bibliotecas como numpy, scipy, etc. que proporcionan estructuras de datos necesarias (como matrices) y operadores matemáticos (como multiplicación de matrices, transposición de una matriz) fuera de la caja. Esto facilitaría sus esfuerzos en la implementación de algoritmos. Hay bibliotecas de aprendizaje automático de código abierto como scikit-learn que tienen la implementación de los algoritmos de clasificación y regresión más utilizados con medidas también. Para fines de visualización, puede usar matplotlib para mostrar gráficos y tablas. Está muy cerca de lo que obtienes de matlab. Por lo tanto, es una buena opción.

Las interfaces a la base de datos, archivo IO son bastante buenas en python. Python fue construido con el procesamiento de texto en mente. Con todas las bibliotecas en su entorno de Python, es más que un juego.

Con marcos web como django, puede acoplar los algoritmos con los navegadores para recibir instrucciones del usuario y presentar resultados elegantes de los algoritmos. Toda la pila podría construirse en un entorno. Esa es la belleza de usar python para implementar algoritmos.

Python es un lenguaje interpretado, por lo tanto, viene con un shell interactivo donde puede escribir una línea de código y ver los resultados. Esto le ayuda en la codificación basada en la investigación.

Hay un par de IDEs que son buenos. Serán útiles ya que Python es un lenguaje basado en sangría. No puede usar llaves {} para bloques de código. Debe sangrar todas las líneas de un bloque en particular utilizando espacios o espacios de tabulación.

El siguiente enlace enumera los IDE disponibles con conjuntos de características

IntegratedDevelopmentEnvironments – Python Wiki

Depende de las características que requiera.

Tanto python como matlab se adaptan bien a la tarea en general. Ambos tienen bibliotecas útiles para proporcionar la mayoría de las herramientas que necesitará. He escrito algoritmos para robótica basados ​​en ACO (ese algoritmo evolutivo que no es GA) en matlab, y descubrí que es un buen ajuste. También he jugado un poco con numpy y scipy y he encontrado que son bastante agradables. Las preguntas más importantes son si ya se siente más cómodo en uno u otro, y si otras personas necesitarán mantener o actualizar el código, y a qué pueden estar acostumbrados. Usted menciona que este es un problema de ingeniería, si está trabajando en un laboratorio académico en un programa de ingeniería, puede encontrar que la mayoría del departamento usa matlab. Si está fuera de la ingeniería, Python puede ser más común. Si necesita vincular un sitio web a su algoritmo, definitivamente elija python. Si necesita generar imágenes bonitas, Matlab puede tener una ligera ventaja sobre Python allí.

Vale la pena mencionar que Matlab, por supuesto, tiene la desventaja de no ser libre. Dicho esto, puede terminar pagando un IDE de Python, y dado que solicita una recomendación de IDE, le diré que en este momento estoy usando Pycharm y disfruto de la mayoría de los aspectos.