2. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
PRACTICA 01
1. Realizar un Algoritmo Genético para una pareja de padres que tengan 5 cromosomas
cada uno.
Ingrese el código de la madre: 24
Su Cromosoma es: 11000
Ingrese el código del padre: 19
Su Cromosoma es: 10011
Realizar el cruce de un punto, el número de posición del punto del cruce es 2
[1] [2] [3] [4]
Obtener los Hijos realizando el respectivo cruce.
Hijo 01: 11011
Hijo 02: 10000
2. Realizar un Algoritmo Genético para una pareja de individuos X que tengan 5
cromosomas y hallar:
A) ingresar el padre y la madre elegidos:
Padre: 13
Madre: 24
B) Representar sus cromosomas:
Padre: 01101
Madre: 11000
C) Realizar el cruce de un punto ingresando el lugar de la posición del cruce: (1-3)
Cruce 1 Cruce 2 Cruce 3
Padre: 0 1 1 0 1 01000 01100 01100
Madre: 1 1 0 0 0 11101 11001 11001
D) Realizar la mutación cambio de un bit, ingresando la posición del bit a mutar(solo del
padre), ingrese posición del bit a mutar: 4
Padre: 0 1 1 0 1
Padre Mutado: 0 1 1 1 1
2 Ing. Lizbeth Dora Briones Pereyra
1 2
1 2 3 4 5
3. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
E) Realizar el cruce con el nuevo padre mutado y la madre.
Padre: 01111
Madre: 11000
Ingresar la cantidad de puntos a cruzar y sus posiciones. Ejemplo 2 puntos.
Primer punto (posición: 2) y segundo punto (posición 4).
Padre: 0 1 1 1 1
Madre: 1 1 0 0 0
Hijos del primer punto
Hijo 01: 0 1 000
Hijo 02: 1 1 111
Padre: 0 1 1 1 1
Madre: 1 1 0 0 0
Hijos del segundo punto
Hijo 01: 0 1 1 1 0
Hijo 02: 1 1 0 0 1
3. Para 2 poblaciones de A Y B y X individuos de tal manera que tengan 5 cromosomas
cada uno hallar:
A) ingresar el padre y la madre de las 2 poblaciones :
Población A: Padre A: 13 Madre A: 24
Población B: Padre B: 8 Madre B: 19
B) Representar sus cromosomas:
Padre A: 01101 Madre A: 11000
Padre B: 01000 Madre B: 10011
C) Realizar el cruce de un punto con posición 2 para ambas parejas.
3 Ing. Lizbeth Dora Briones Pereyra
4. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
Población A Cruce A
Padre A: 0 1 1 0 1 01000 hijo1 A
Madre A: 1 1 0 0 0 11101 hijo2 A
Población B Cruce B
Padre B: 0 1 0 0 0 01011 hijo1 B
Madre B: 1 0 0 1 1 10000 hijo2 B
D) Realizar el cruce de 1 punto (posición2) del hijo 2A con el hijo 1B y hallar la 3era
generación.
11101 hijo2 A
01011 hijo1 B
Hijos de la tercera generación
11 011
1 01
4. Presentar el avance del problema de la Mochila.
PRACTICA 02
PROBLEMA DE LA MOCHILA
Para el problema de la mochila basado en la Optimización basada en colonias de hormigas.
Crear el programa de la Mochila usando cualquier lenguaje de programación estructurada (C,
C++, C#, Java, etc.), veamos el siguiente Algoritmo Propuesto:
Capturar Parámetros
Inicializar los rastros de feromonas
Colocar hormigas en posición inicial
Repetir
Para K desde 1 Hasta el numero de hormigas Hacer
Construir la solución para la hormiga K
Seleccionar la mejor solución
Actualizar los rastros de feromonas
Hasta Alcanzar el número de ciclos o encontrar la solución optima
Donde cada paso quiere decir:
4 Ing. Lizbeth Dora Briones Pereyra
5. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
Inicialización de la feromona: Las hormigas se comunican a través de la feromona
depositada en los objetos, debido a que no se cuenta con ninguna relación entre ellos
estos son tomados como objetos independientes y cada objeto contiene la concentración
de la feromona. La concentración de feromona en el Objeto i es denotada por y
inicialmente se coloca un valor pequeño a todos los objetos.
Colocar hormigas en posición inicial: Se coloca cada una de las hormigas en una posición
inicial (objeto) manualmente o aleatoreamente.
Construcción de la solución con las hormigas: Iterativamente se escoge el siguiente objeto
para ser agregado a la mochila. Dentro de un conjunto de candidatos que contiene todos
los objetos que no han sido colocados en la mochila y no sobrepasan el peso restante, es
decir la capacidad de la mochila menos el peso de los objetos seleccionados hasta el
momento.
Seleccionar la mejor solución: Consiste en seleccionar la solución que da mayor utilidad.
Actualizar los rastros de feromonas: Se actualiza las feromonas en cada uno de los objetos
utilizando la Ec. (1) .
La simbología utilizada en el algoritmo es: Es la solución la cual contiene el objeto donde
fue colocada inicialmente la hormiga k, P es la suma de los pesos de los objetos dentro del
conjunto solución (S), U es la suma de la utilidad de los objetos dentro del conjunto
solución (S), Op es el primer objeto dentro de la solución, Candidatos es la lista de los
objetos que pueden ser seleccionados.
5 Ing. Lizbeth Dora Briones Pereyra
6. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
CORRIDA DEL PROBLEMA DE LA MOCHILA
Para realizar el diseño de experimento se tiene es el numero de hormigas, es la
concentración inicial de la feromona, la capacidad de la mochila, � que es el factor de
evaporación de la feromona, Nc el número de ciclos que se correrá el algoritmo además de
los mencionados anteriormente. Se crearon varios archivos con extensión.dat los cuales
contienen las instancias con las cuales fue corrido el algoritmo, actualmente se cuenta con
10 instancias creadas en este formato las cuales serán utilizadas para generar un diseño
de experimento más robusto, la información de estas instancias se encuentra guardada
como se muestra en la siguiente 2.
La solución para el siguiente problema sería el siguiente:
6 Ing. Lizbeth Dora Briones Pereyra
7. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
Como se puede ver el formato es sencillo y puede ser modificado fácilmente, estas
modificaciones serian por ejemplo poner más objetos por lo cual cambiaríamos el número
de ítems, cambiar la capacidad de la mochila y finalmente algo que se tendría que hacer es
aumentar o disminuir el número de objeto para que la lista sea igual al número de ítems
puesto anteriormente, también puede ser modificado el peso y la utilidad de los objetos
anteriores, una vez hecho el archivo este puede ser leído por el sistema sin ningún
problema y no hay que modificar el código.
Se puede observar que se pueden ingresar más objetos como se muestra en a figura:
La solución para el ingreso de 20 objetos se muestra a continuación:
7 Ing. Lizbeth Dora Briones Pereyra
Solución: 8, 4,1
El peso de los objetos es 5
La Utilidad es 11
Solución: 1, 4, 2, 13, 10, 11, 18
El peso de los objetos es 15
La Utilidad es 26
8. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
PRACTICA 03
Problema de Poblaciones:
Partiendo de una población inicial (soluciones factibles), donde se selecciona individuos
(favorecer a los de mayor calidad), luego Recombinarlos, Introducir mutaciones en sus
descendientes y Insertarlos en la siguiente generación.
POBLACION: Toda el aula de Bioinformática SECCION “A”.
MUESTRA: 4 INDIVIDUOS. (2 MUJERES Y 2 HOMBRES).
Crear un programa en cualquier lenguaje de programación estructurada (C, C++, C#, Java,
etc.)
Codificación:
– Utilizar cadenas de bits para representar las soluciones
– Los bits pueden codificar números enteros, reales, conjuntos.
– Ventaja: los operadores de cruce y mutación son simples.
– Inconveniente: no siempre resulta “natural”.
Selección:
– Asignar una probabilidad de supervivencia proporcional a la calidad
– Generar una población intermedia
– Elegir parejas de forma aleatoria o de acuerdo a criterios, como rendimiento académico y
valores en cada individuo.
No se pueden cruzar elementos de dos generaciones distintas.
Operador de cruce de un punto
Mutación:
– Hay una pequeña probabilidad de cambio de un bit.
Ejemplo: Suponiendo que de nuestra población se seleccionó 4 individuos:
Selección de la muestra = 4 individuos: 13,24, 8 y 19.
Hallar:
a) La selección aleatoria o manual del aula de Bioinformática (4 individuos).
b) Mostrar los resultados como en la tabla anterior.
c) Realizar el cruce y mostrar los hijos de cada pareja.
d) Construir el cuadro de la segunda generación.
8 Ing. Lizbeth Dora Briones Pereyra
9. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
e) Cruzar los hijos y construir el cuadro de la tercera generación
f) Dar una conclusión Final.
PRACTICA 04
El Problema del Viajante
Para el problema del viajante; Crear el programa usando cualquier lenguaje de programación
estructurada (C, C++, C#, Java, etc.)
El viajante sale de una ciudad para visitar todas las demás pasando exactamente una vez por
cada una y volver al punto de partida habiendo recorrido la menor distancia posible.
El problema se representa como un grafo no dirigido con n nodos.
Un ciclo del grafo que pase por todos los nodos exactamente una vez se denomina ciclo
hamiltoniano. Por lo tanto para resolver el problema hay que hallar el ciclo hamiltoniano más
corto del grafo.
Por ejemplo:
En este caso el recorrido óptimo tiene una longitud de 58.
Está distancia se logró haciendo el recorrido 1,2,3,6,4,5,1. Nuestro algoritmo heurístico
comenzará en un nodo arbitrario y ahí decidirá visitar el nodo más cercano que no haya sido
Visitado. Así, si comienzo en 1, recorriendo las distancias más cortas será: 1-2-3-5-4-6-1,
dando un total de 60.
Aunque este algoritmo heurístico no es tan óptimo, tampoco está mal y puede ser utilizado.
PRACTICA 05
Coloreado de un grafo (Tarea para Casa)
1. Colorear cada nodo, de manera que no haya dos nodos adyacentes del mismo color.
2. Cuál es el número mínimo de colores: La solución óptima nos dice que el mínimo son dos
colores; Secuencia: 1-2-3-4-5
9 Ing. Lizbeth Dora Briones Pereyra
10. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
Selecciona el nodo 1 como inicial pinta con un color al azar.
Pasa al 2, no puede pintar (1 ya está pintado).
Pasa al 3, pinta.
Pasa al 4, pinta.
Pasa al 5, no puede pintar (3 y 4 ya están pintados).
Selecciona otro nodo y pinta con otro color.
Pasa al siguiente, etc.
Solución óptima
3) Secuencia: 1-5-2-3-4
Selecciona el nodo 1 como inicial pinta con un color al azar.
Pasa al 5, pinta
Pasa al 2, no puede pintar (1 ya está pintado).
Pasa al 3, no puede pintar (5 ya está pintado).
Pasa al 4, no puede pintar (5 ya está pintado).
Selecciona otro nodo (2) y pinta con otro color.
Pasa al 3 y al 4, no puede pintar (2 ya está pintado).
Solución NO óptima
Pasa al siguiente (3), y selecciona otro color.
Pasa al 4, pinta
10 Ing. Lizbeth Dora Briones Pereyra
11. Universidad Nacional del Santa
Facultad de Ingeniería Guías de Práctica de
Bioinformática
E. A. P Ingeniería de Sistemas e Informática Unidad I
11 Ing. Lizbeth Dora Briones Pereyra