jueves, 25 de septiembre de 2014

Evolución de las especies

Evolución de las especies

Autor: Ignacio Molina.
Competencia: Desarrollo de Software (Nivel 1), Ciencias de la ingeniería básicas.
Palabras Clave: Python, programación, ciclos, variables, estructuras de control, parámetros,argumentos,mutación y cruzamiento.

Descripción de la actividad: Se emplea un programa en phyton, el cual tiene por objetivo simular la teoría de evolución de Charles Darwin por medio de la mutación y el cruzamiento de las especies. Todo esto es realizado mediante valores aleatorios y valores iniciales ingresados por el usuario.


Solución: Solución modelada de acuerdo a los requerimientos de la actividad. La solución posee varios pasos, los cuales son descritos a continuación:

1.- El código estaba constituido por cinco partes principales, las cuales eran: Cruzamiento, mutación, verificación, creación de la población inicial y ejecución de mutación o cruzamiento. de los datos.

2.- Verificación: consiste en verificar que los parámetros ingresados (al momento de ejecutar se ingresan los parámetros), fueran correctos. Los tres parámetros que se deben ingresar son: W,Pm,Pc (en ese orden); W debe tener un valor entre 10 y 1000, Pm un valor entre 0 y 1 (mayor a 0 y menor a 1) y Pc un valor similar a Pm. Sin embargo, para que los valores Pm y Pc fueran correctos, debe cumplirse que la suma de ambos sea igual a uno.
Ahora, si los parámetros son incorrectos, se da a conocer una alerta que especifica cual es posible error, con la intención de que el usuario lo corrija. Luego de dar las alertas el programa da por finalizado, dependiendo la finalización de un contador, el cual debe sumar 4 para que el programa continúe su funcionamiento, caso contrario es el de el contador distinto de 4.

Porción de código de la verificación.


2.- Generación de población: La generación de población da inicio en el instante en que termina la verificación y el contador es igual a 4. Aquí por medio de un for, se le asigna a cada uno de los individuos de la población (10 individuos), una cantidad de 15 genes, los cuales pueden ser 1 o 0, todos ellos generados completamente al azar.
Porción de código de la generación y  llenado de la población inicial.



3.- Cruzamiento: Consiste en mezclar los genes de dos individuos, recortándolos desde un punto en especifico (numero random)  y pegándolos en la misma posición de la que fueron sacados en el otro individuo. El cruzamiento se realiza si la variable de elección entre mutación y cruzamiento(numero random) es menor a Pm.
Porción de código de cruzamiento.



4.- Mutación: Consiste en el cambio de genes en especifico de un individuo, los cuales son elegidos con un numero random. Por ejemplo, si el gen era un 1 y es elegido para cambiar, este se convertirá en un 0. Mutación solo se llevara a cabo si la variable de elección entre mutación y cruzamiento es mayor a Pm.
Porción de código de mutación.


5.- Elección mutación-cruzamiento: Es aquí donde se evalúa si la variable probabilidad es mayor o menor a pm, dando paso a la elección entre mutación o cruzamiento. La variable probabilidad es un numero random entre 0 y 1. Ademas en esta sección se puede observar que se imprime como queda la población después de hechos todos los cambios.
Porción de código de elección.

Codigo fuente completo aqui


Reflexión: La programación  puede estar presente en los distintos ámbitos de la vida cotidiana, así mismo puede estar presente en las distintas materias. En esta actividad se puso observar que la programación puede estar presente en una rama muy distinta, como lo es la biología.
En el marco del aprendizaje que nos deja esta actividad, podemos recalcar por su gran presencia en el código, la función random, la cual sirve mucho para realizar pruebas.







No hay comentarios:

Publicar un comentario