Está en la página 1de 53

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)

"LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI


ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR"
' C BI
/e'
\ e. co wt P OT f i c 0 0
+/" LOS ALGORITMOS GENETICOS
COMO SOLUCION PARA EL
UNIVERSIDAD AUTONOMA METROPOLITANA
EN UN SISTEMA
MULTIPROCESADOR
CONTENIDO
Pagina
Prefacio. ............................................................................... .3
Introduccion ........................................................................... .4
.,
Parte 1. Descripcin del Algoritmo Gentico Principal.
Descripcin del algoritmo gentico principal. ............................ 6
Parte 2. Descripcin de la implementacin.
Datos del Algoritmo Gentico .............................................. 13
Descripcin de la ejecucin del programa.. ............................... 17
Parte 3. Descripcin de las variaciones al Algoritmo Gentico
Principal.
VARIACION:
Pasar el mejor siempre.. ................................................... .19
Seleccion aleatoria ......................................................... .20
Seleccion natural.. .......................................................... .21
Ejecucion en paralelo.. ...................................................... 22
. I
. I
. I
Parte 4. Manual del Usuario.
Manual del usuario.. ....................................................... .23
Parte5. Conclusiones.
Conclusiones.. ........................................................................... ..36
Tabla de soluciones obtenidas.. ............................................ 38
Resultados obtenidos.. ...................................................... . 3 8
LUIS JESUS BONNETAYALA 2
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FIhbU)
ESTATICA DE CARGA EN UN SISTEMA MLJLTIFROCESADOR
LOS A L ~ ~ O S GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
Apndice A.
Listado de los Algoritmos Genticos.. .......................................... .40
BIBLIOG ................................................................................. 48
LUIS JESUS BONNETAYALA 3
ASESOR: Dra. GRACIELA ROUAN ALONSO
PROYECTO DE INVESTIGACION 2 (REWRTE FINAL)
ESTATICA DE CARGA EN UN SISTEMA mTI PROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
Todo trabajo de
investigacin requiere de un cierto
esfuerzo y dedicacin. Este
esfuerzo no servira de mucho si no
se difundieran los resultados
obtenidos. En este trabajo se
presentan esos resultados;
obtenidos despus de haber
implementado distintos algoritmos
genticos para solucionar el
problema de reparticin esttica de
carga en un sistema
multiprocesador .
Se incluye tambin el listado
fuente en la parte esencial del
manejo de la reparticin y la
manipulacin de los cromosomas,
por parte de los algoritmos
genticos para obtener siempre la
mejor manera de repartir un
determinado nmero de procesos
en un sistema multiprocesador.
Es necesario mencionar que
este trabajo est basado en el
trabajo de investigacin realizado
con anterioridad, por lo que el
presente trabajo viene a ser el
medio de comunicar los resultados
finales de la implementacin en una
computadora, de los algoritmos
genticos descritos en el trabajo
anterior (proyecto de investigacin
1).
Por un principio se describir
el algoritmo principal empleado
para dar solucin a cualquier
funcionamiento y el modo en que
se implement. Despus se
presentar alguna variante de este
algoritmo principal y los resultados
obtenidos con cualquiera de las
variantes, as como del algoritmo
principal.
reparticin, as como su
Se incluye un manual
completo para poder utilizar el
programa de computadora titulado:
LOS ALGORITMOS
GENETICOS COMO SOLUCIN
AL PROBLEMA DE
REPARTICION ESTATICA DE
CARGA EN UN SISTEMA
MULTIPROCESADOR as como
funcionamiento y sugerencias de
mejoras futuras en cuanto a la
interfaz grfica.
una descripcin de su
Se incluye en un anexo el
cdigo fuente de el programa.
Por ltimo se presentan las
debidas conclusiones y bibliografa.
LUIS JESUS BOMVET AYALA 4
ASESOR: Dra. GRACIELA ROMAN ALONSO
Los algoritmos genticos estn basados en la nocin de la propagacin
de nuevas soluciones a partir de soluciones padres, empleando mecanismos
modelados de aquellos que se aplican en gentica. La mejor descendencia de
las soluciones padres se retiene para una nueva generacin, por lo que al
proceder en forma de evolucin se fomenta la supervivencia de los ms aptos.
Como la calidad de los ms aptos (mejor descendencia) eventualmente
construye el ms alto nivel compatible con el medio ambiente ( el problema
es gobernado por restricciones ), la mejor sobre todas las descendencias se
registra y es el candidato propuesto por el mtodo para una solucin optimal.
Un algoritmo gentico bsico tiene tres operadores: reproduccin,
cruzamiento y mutacin. La reproduccin es un apareamiento aleatorio de
individuos (soluciones muestra) de una poblacin para crear una o ms
descendencias. El cruzamiento define el resultado como un cambio de gene
(plan reproductivo). Deben modificarse y particularizarse a diferentes tipos de
problemas combinatorios, ahora bien, para que tenga sentido se debe permitir
ciertas relaciones de restricciones para proporcionar una oportunidad al
prognito de realizar un mejoramiento sobre sus padres. Finalmente, una
mutacin es simplemente el introducir un elemento aleatorio, muchas veces
usado para enmendar el resultado de un gene cambiado cuando el resultado
no se encuentra exitoso bajo las restricciones apropiadas. A este respecto, la
mutacin est ms fuertemente sesgada para ayudar en la aplicacin de los
algoritmos genticos que en la gentica biolgica. La mutacin diversifica el
espacio de bsqueda y protege de la prdida de material gentico que puede
darse en la reproduccin y el cruzamiento.
LIS JESUS BONNET AYALA 5
ASESOR: Dra. GRACIELA ROMAN ALONSO
Un programa paralelo puede ser modelado por un grafo, en este caso
los llamaremos G, = ( V, , L, ) donde los vrtices (V,) representan procesos y
los pesos de los vrtices representan conocidos o estimados costos de
computacin para esos procesos. Las ligas (L,) representan la comunicacin
requerida entre procesos y los pesos de las ligas el costo estimado de la
comunicacin entre ellos. Se asume que el proceso de creacin del gafo es
esttico; no dinmico. Por otra parte, si el proceso de creacin del grafo es
dinmico, una estrategia de distribucin dinmica deber ser usada.
Una arquitectura paralela tambin puede ser modelada por un gafo no
dirigido, esto quiere decir, que la ligas no tienen direccin, este grafo lo
llamaremos como en la ocasin anterior un gafo de tareas Gt = ( Vt , Lt ),
donde los vrtices (Vt ) como en el caso anterior representan procesos o tareas
y las lneas representan ligas (L,) de comunicacin entre los procesos. Se
asume que la representacin es esttica; la configuracin fsica de la red no
debe ser cambiada dinmicamente durante el tiempo de ejecucin. La
siguiente notacin es usada:
M : El nmero de procesos o tareas a ser distribuidos, M = I V, I
N : El nmero de procesadores de la arquitectura objetivo, N = I Vt I
ei : El costo de computacin del proceso pi
cij : El costo de comunicacin entre los procesos pi y pj.
LUZSJESUS BONNETAYALA 6
ASESOR: Dra. GRACIELA ROMAN ALONSO
dkl :La distancia entre los procesadores tk y ti. La distancia esta definida
como el mnimo nmero de ligas formando un camino entre los
procesado res.
Este problema puede ser definido por una funcin II : Vp -+Vt, que
asigna cada proceso a un procesador. Una fiincin de costo F : II -+93, la
cual asocia un valor real a cada distribucin, que servir para comparar las
diferentes posibles soluciones.
Dos criterios de distribucin que son contradictorios han sido
considerados:
- Minimizar la suma del total de los costos de comunicacin entre
procesadores. Este costo puede ser medido por el producto del costo de
comunicacin entre todos los pares de procesos y el costo de trasmitir los
mensajes entre los procesadores donde los procesos son asignados.
- Minimizar el desequilibrio de la carga en el sistema paralelo. La medida
cuantitativa usada para tratar con este criterio es la varianza de las cargas de
los diferentes procesadores.
M
1 ei
j = 1
N
L =
@=k
La funcin costo F escogida es la suma de las dos funciones C y V : F =
C + w - V donde w es el peso de la contribucin de el costo de comunicacin
LUIS JESUS BONNETAYALA 7
ASESOR: Dra. GRACIELA ROUAN ALONSO
relativo al balance de la carga computacional en el sistema. Escoger un valor
satisfactorio para w depende del conocimiento a cerca de las caractersticas de
la arquitectura paralela. Valores muy pequeos de w sugeriran una solucin
de un solo procesador, y valores muy grandes de w reducira el problema a
una programacin en un sistema multiprocesadores sin costos de
comunicacin. En un experimento realizado en una arquitectura paralela (una
red T800 de computadores) se determin que el valor estimado
experimentalmente para w es 2, ( w = 2).
Los algoritmos genticos componen una muy interesante familia de los
algoritmos de optimizacin. Sus principios bsicos son realmente simples:
Dado un espacio de bsqueda
de este espacio puede ser representado por un vector M de esos N smbolos.
Dada una funcin de capacidad F que va de
a cualquier punto de C.
de tamao NM y N smbolos: cualquier punto
a % la cual asocia un valor real
Dado un conjunto inicial de vectores, llamado la poblacin inicial.
Algunos operadores genticos son usados para generar nuevos puntos
de C. Proponer algunos individuos (cromosomas) para la fase llamada
reproduccin.
El principio fundamental de los algoritmos genticos es El ms apto es
el ms probable para reproducirse.
Dado que el tamao de la poblacin es constante, se tiene
inevitablemente una competicin por la supervivencia de los individuos en la
prxima generacin. Se tiene entonces una situacin Darwiniana:
supervivencia de los ms aptos . Una fase de reemplazamiento es en este
LUIS JESUS BONNETAYALA 8
ASESOR: Dra. GRACIELA ROWNALONSO
momento ejecutada; la cual consiste en reemplazar los peores individuos de
la poblacin por los mejores individuos producidos.
Los procesos genticos son iterados en la nueva poblacin hasta que se
alcanza un nmero dado de generaciones.
El algoritmo gentico es:
Generar una poblacin de individuos (cromosomas) aleatoriamente.
Evaluacin - asignar un valor de capacidad a cada individuo.
WHTLE nmero - - de generaciones 5 max - nmero-de-generaciones DO
Seleccin
probables a morir,
- hacer una lista con un nmero par de individuos
con los individuos probados ms fiecuentemente.
Reproduccin - Aplicar los operadores genticos a las parejas
seleccionadas.
Reemplazamiento - Formar una nueva poblacin al reemplazar los
peores individuos por los mejores.
Los operadores genticos ms comnmente utilizados durante la
reproduccin son cruzamiento y reproduccin.
Cruzamiento: Dados dos vectores, cortarlos en el mismo punto (el punto es
aleatoreo) e intercambiar las dos porciones. (ver figura a). El Cruzamiento es
sinnimo de sexo.
La mutacin es simplemente cambiar un bit (ver figura b). En los sistemas
biolgicos, la mutacin es vital para la supervivencia de las especies cuando
los medio - ambientes estn cambiando constantemente. Es necesario definir
dos parmetros: pc y pm que representan respectivamente las probabilidades o
aplicacin de los operadores de cruzamiento y mutacin. Otros operadores
LUIS JESUS BONNET AYALA 9
ASESOR: Dra. GRACIELA ROMAN ALONSO
genticos pueden ser encontrados en distintas literaturas, por ejemplo, el
operador de inversin y muchas variaciones del operador de cruzamiento
diseados para problemas de dominio especficos.
Hiios:
I
'adrei:
I
Punto aleatoreo de cruzamiento
INDIVIDUO
Mutaciln aleatorea de bits
[a] Cruzamiento
[b] Mutacin
OPERADOR ES GENE TIC OS
Los siguientes formalismos son usados para usar los algoritmos
genticos en el problema de la reparticin de carga: permitirnos suponer que
tenemos M procesos de comunicacin a distribuir en una arquitectura paralela
de N procesadores. Cada uno de esos procesadores es etiquetado por un
smbolo ( por ejemplo un entero entre O y N-1). Una distribucin dada es
representada por un vector M de esos smbolos; (donde el smbolo p en la
posicin q significa que el proceso q a sido colocado en el procesador p).
En el presente trabajo se hicieron algunas variaciones al algoritmo
gentico descrito anteriormente, en la cul esta basado este programa.
Las variaciones realizadas se describirn ms adelante a detalle con la
intencin de tener varios puntos para comparar en cuanto al funcionamiento
de este algoritmo gentico, y al cual llamar en lo sucesivo algoritmo
gentico principal.
LUIS JESUS BONNET AYALA 10
ASESOR: Dra. GRACIELA ROMANALONSO
PROYECTO DE WVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITlvOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
Es importante sealar que este proyecto llamado: LOS
ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE
REPARTICION ESTATICA DE CARGA EN UN SISTEMA
MULTIPROCESADOR, se implement mediante un programa para ser
ejecutado en una sola mquina, con un solo procesador, existiendo la
posibilidad de implementar en futuras investigaciones el mismo programa
pero en un sistema que cuente con varios procesadores, es decir un sistema
multiprocesador .
El programa sirve como una herramienta para conocer el mejor modo
de repartir un nmero dado de procesos en un sistema con varios
procesadores, con la importante caracterstica de ya conocer tanto los costos
de comunicacin de los procesos entre s, as como las distancias entre
procesadores y los costos de ejecucin de cada proceso, esto es precisamente
lo que le da el carcter de esttico a la reparticin a realizar, al mantener estos
datos (costos de comunicacin, distancia entre procesadores, costo de
ejecucin), fijos durante el calculo de la mejor solucin.
Aunque este programa he implementado y probado en una
computadora con procesador Pentium que corre a 100 Mhz. y que cuenta con
16 MB. de memoria RAM , se puede ejecutar de manera sencilla en
computadoras con menores caractersticas que estas, teniendo la nica
limitante de que el programa correr un poco ms lento segn las
caractersticas de la mquina, lo que podra hacernos pensar que el programa
a entrado a un estado de incongruencia, o bien lo que a menudo sealamos
LUIS JESUS BONNETAYALA 11
ASESOR: Dra. GRACIELA ROMANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIdN
ESTATICA DE CARGA EN UN SISTEMA MUI.TIPROCESADOR
como que se encuentra trabado, todo esto mientras se realizan los cientos de
miles de clculos necesarios para encontrar la mejor solucin, sin embargo,
aunque lo haga despus de los nueve minutos calculados como el tiempo
mximo de respuesta en la mquina descrita anteriormente, el programa
proporcionar una respuesta.
__
LUIS JESUS BONNET AYALA 12
ASESOR: Dra. GACIELA ROMNALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEh4A MULTIPROCESADOR
Llamo al~oritmo Pentico principal , al algoritmo que se analiz
anteriormente en el presente trabajo y con el cual se hizo la implementacin
en la computadora. Los dems algoritmos son variaciones de este algoritmo
gentico principal y dichas variaciones sern descritas con todo detalle en su
momento.
DATOS DEL ALGORITMO GENETICO:
El algoritmo gentico principal acta buscando la mejor solucin de
distribuciones en distintos procesadores de un nmero de procesos dado.
Para esto, en un principio se piden los siguientes datos, proporcionados
de alguna de las dos maneras, de manera aleatoria o bien por el usuario.
- Nmero de procesadores:
de la malla de procesadores conectados en esta topologa.
N = A x B. donde A y B denotan el tamao
- Nmero de procesos a repartir entre el total de los procesadores: M
- Nmero de generaciones (cada una de estas generaciones, proporciona al
mejor cromosoma dentro de esa generacin). Es necesario aclarar en este
punto que un cromosoma es el nombre que se le da a un arreglo de nmeros
que nos describe una determinada solucin de reparticin, es decir en cuales
procesadores fueron repartidos cada uno de los procesos. Por ejemplo el
LUIS JESUS BONNETAYALA 13
ASESOR: Dra. GRACIELA ROUAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FI NAL)
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
siguiente arreglo describe al cromosoma cuyos procesos son los nmeros
pequeos y los nmeros grandes
encuentra localizado ese proceso.
corresponden al procesador donde se
procesos
procesadore
S
- El costo de computacin de cada proceso:
ei
- El costo de comunicacin de cada proceso con los dems procesos :
cij =costo de comunicacin entre el proceso i y el proceso j. Si el nmero
de procesos a repartir es menor de 10 se podr ver su comunicacin, y se
deber llenar una tabla parecida a la siguiente.
- Las distancias entre cada uno de los procesadores, es decir la distancia entre
el procesador k y el procesador 1 dH . La distancia entre un procesador k y
un procesador 1, se encuentra definida como:
LUIS JESUS BONNETAYALA 14
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
-LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
El mnimo nmero de ligas que formen un camino entre el procesador k y el
procesador 1.
Este calculo de las distancias dij entre los procesadores lo realiza de
manera automtica el programa. Como se supone que los procesadores se
encuentran conectados en forma de malla, slo es necesario proporcionar el
tamao de la malla, es decir: No de procesadores = A x B .
Si el nmero de procesadores en la malla A x B es menor que 25 se
podr ver como se comunican los procesadores entre s.
Con estos datos se utilizar la siguiente funcin para calcular la
calidad de cada cromosoma en una generacin. Esta funcin fue descrita en
pginas anteriores.
F = C +(w*V) donde w=2 y:
i= 1
I n@=k I
Es importante sealar que la funcin es una funcin de costo por lo que
se deber minimizar dicha funcin. Dicho esto en otras palabras, el
cromosoma con mayor calidad, para nuestro inters ser aquel que tenga
menor costo o tiempo de ejecucin.
En la frmula dada para obtener el valor de C, aparece: d nim .
lo que se debe interpretar como: La distancia entre el procesador donde fue
emplazado el proceso i y el procesador donde fue emplazado el proceso j.
LUIS JESUS BONNET AYALA 15
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATICA DE CARGA ENUN SISTEMA MULTIPROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
Esta distancia es calculada automticamente por el programa.
Cuando los datos son proporcionados por el usuario, se tienen algunas
limitaciones en cuanto a las cantidades de procesos a repartir, y la cantidad
de los procesadores donde se repartirn estos procesos, debido a que si se
escoge un nmero muy grande de procesos a repartir, el proceso de captura de
informacin se vuelve muy engorroso y tardado, se sugiere para trabajos
posteriores la captura automtica por parte del programa de archivos que
contengan la informacin y que se pueden generar de una forma mucho
menos tediosa. Por esto es que se ha limitado el nmero de procesos a
repartirse a un mximo de 10, (de 2 a lo), si es que se desea introducir la
informacin uno mismo, si no es as el programa proporcionara esta
informacin de manera aleatoria y no se contar con una limitante de ningn
tipo. La cota inferior de 2 es porque no tendra sentido hacer todo el calculo
de buscar la mejor solucin para un solo proceso y un slo procesador.
En general sin importar el modo de proporcionar la informacin, (por el
usuario, o bien de manera aleatoria por el sistema), se tienen las siguientes
limitaciones :
Nmero mnimo y mximo de procesos a repartir (tamao del cromosoma):
mnimo: 2 procesos mximo: 100 procesos
Nmero mnimo y mximo de procesadores donde se repartirn los procesos:
mnimo: 2 procesadores mximo: 100 procesadores
este nmero es el tamao de la malla de procesadores, por ejemplo A=10 y
B=10 nos proporciona una malla de 10 por 10 procesadores dando un total de
procesadores de 100 como nmero mximo.
Nmero mnimo y mximo de generaciones:
mnimo: 5 generaciones mximo: 1000 generaciones
LUIS JESUS BONNETAYALA 16
ASESOR: Dra. GRACIELA ROMAN ALONSO
Probabilidad de Mutacin:
mnimo: 0.00 YO mximo: 0.09%
Probabilidad de Cruzamiento:
mnimo: 0.0% mximo: O. 1 YO
Tanto para los costos de comunicacin entre procesos, as como para
los costos de ejecucin los valores debern ser enteros y sern calculados con
anterioridad, con algn otro criterio, lo que le da el carcter de esttico a este
algoritmo, al mantenerlos fijos durante todo el proceso.
DESCRIPCIN DE LA EJECUCIN DEL PROGRAMA
Despus de haber proporcionado los datos, el programa, ejecutar el
algoritmo gentico, llevando a cabo los operadores genticos de cruzamiento
y mutacin entre los cromosomas, los cuales sern seleccionados de manera
aleatoria. Al final de cada generacin se proporcionar al mejor elemento de
la poblacin que se haya encontrado en dicha generacin, el mejor elemento
ser aquel que tenga el menor tiempo de ejecucin.
Bsicamente el programa del algoritmo gentico principal consiste en:
Un proceso de captura de informacin.
Un proceso de ejecucin de los algoritmos genticos
Un proceso de presentacin de resultados.
El punto de inters para nosotros es el proceso de los algoritmos
genticos, el cual proporcionndole los datos anteriormente descritos el
algoritmo inicia una etapa en la que proporciona 20 cromosomas de manera
LUIS JESUS BONNET AYALA 17
ASESOR: Dra. GRACIELA ROMNALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR
aleatoria, en cada generacin. Estos cromosomas representan cada uno, una
manera distinta de repartir los procesos entre todos los procesadores.
Seguido de esta etapa viene el calculo de calidades (costos o tiempos de
ejecucin), en cada uno de estos 20 cromosomas, para despus hacer
cruzamiento y mutacin de todos los cromosomas en la generacin presente,
de acuerdo a las probabilidades de mutacin y cruzamiento proporcionadas
anteriormente por el usuario o bien de manera aleatoria.
Por ltimo se identifica al mejor individuo de la poblacin que es el
cromosoma con mejor calidad es decir el que tiene menor costo o menor
tiempo de ejecucin.
Despus se proporcionan las 5 mejores soluciones (individuos)
encontradas en el total de las generaciones, as como el nmero de la
generacin donde se encontr y el valor de su tiempo de ejecucin.
LUIS JESUS BONNET AYALA 18
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE NVESTIGACION 2 (REPORTE FINAL)
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
Gs~os ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
Las variaciones al programa del algoritmo gentico principal se
hicieron con el propsito de obtener soluciones distintas a las obtenidas con
este algoritmo gentico y compararlas para obtener un parmetro con el cual
decidir cul solucin es mejor.
VARIACION: PASAR EL MEJOR SIEMPRE
Una de las variaciones importantes fue la de COPIAR el mejor
cromosoma encontrado en la presente generacin (el cual cuenta con el menor
tiempo de ejecucin, es decir con el menor costo), a la siguiente generacin
en cada una de las generaciones, as como el tamao de la poblacin en cada
generacin es constante (20 cromosomas), se tiene que las generaciones
subsecuentes se van quedando slo con los mejores cromosomas los cuales
participarn en una competencia por sobrevivir y pasar a la siguiente
generacin (la denominada seleccin natural). Probablemente se alcanza ms
rpidamente el mejor cromosoma en el total de generaciones dado. La
ventaja de esta solucin es que requiere de menos tiempo en converger a la
mejor solucin, la desventaja es que requiere muchos ms recursos en
memoria pues siempre se debe mantener una copia de los mejores
cromosomas, adems el algoritmo se vuelve mucho ms complejo pues la
LUIS JESUS BONNETAYALA 19
ASESOR: Dra. GRACIELA ROUANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATiCA DE CARGA EN UN SISTEMA MLTLTIPROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
etapa donde se decide cules cromosomas son los que pasarn a la siguiente
generacin es bastante complicada. As mismo el criterio de paro ahora
ser: cuando se haya alcanzado un nmero de generaciones proporcionado de
ante mano, sin encontrar una mejor solucin a la actual, el algoritmo deber
parar y emitir sus resultados, es posible que se converja muy rpidamente a la
solucin pero tambin puede ser que el algoritmo nunca termine, es decir que
nunca converja a una solucin.
Al final se puede alcanzar la misma solucin que con el algoritmo
gentico principal , quizs en menos tiempo.
VARIACION: SELECCIN ALEATORIA
Esta variacin consiste en seleccionar de manera aleatoria los
cromosomas a participar en la mutacin y en el cruzamiento. Dicha variacin
no ofrece muchas ventajas y no es muy diferente al algoritmo gentico
principal puesto que este ltimo maneja la mutacin y el cruzamiento de
acuerdo a su probabilidad respectiva, adems de seleccionar las 10 parejas de
cromosomas a cruzarse y sufiir mutacin de la siguiente manera:
Cromosoma 19 con el cromosoma O;
Cromosoma 18 con el cromosoma 1 ;
Cromosoma 17 con el cromosoma 2;
etc.
Puesto que la poblacin se mantiene constante (20 individuos), se
tienen 10 parejas a cruzarse escogidas de la manera anterior. Puesto que los
cromosomas son creados de manera aleatoria en cada generacin no importa
LUIS JESUS BONNET AYALA 20
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
el que cromosoma se cruza con cual, y esto es lo que provoca que no exista
mucha diferencia entre los dos algoritmos.
De este modo la variacin de seleccin aleatoria, provoca exactamente
los mismo resultados en lo que se refiere en la velocidad de convergencia a la
mejor solucin, as como en recursos que el algoritmo gentico principal.
La mejora a esta variacin se explicar en las siguientes lneas.
VARIACION: cc SELECCI ~N NATURAL
Esta variacin muestra claramente el espritu de llamar a estos
algoritmos genticos de acuerdo al nombre dado a aquellos fenmenos que
tienen que ver con la seleccin natural, es decir, La supervivencia de los ms
aptos. Por que se menciona lo anterior? , por el echo de que esta variacin
escoger a los mejores cromosomas dentro de la poblacin para sufrir los
procesos de cruzamiento y mutacin. En un principio sera natural (para los
seres humanos), esperar que de el cruzamiento de los dos mejores padres
surgieran un par de hijos que heredasen las mejores caractersticas de sus
padres, es decir sus genes, as mismo seria natural esperar que este par de
nuevos individuos llamados hijos superasen en calidad a sus progenitores.
Esto no necesariamente es verdad en cuanto a los algoritmos genticos, ya
que de los dos mejores padres pude surgir cualquier clase de descendencia
inclusive de menor calidad que los progenitores.
Aunque el algoritmo no aumenta mucho en cuanto a su dificultad de
implementacin, no ofrece ninguna ventaja con respecto al algoritmo gentico
principal, proporcionando los mismos resultados que este.
LUIS JESUS BONNET AYALA 21
ASESOR: Dra. GRACIELA R O MN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATiCA DE CARGA EN UN SISTEMA MULTIPROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
VARIACION: EJECUCION EN PARALELO
Como ya se menciono con anterioridad, una variacin importante, al
algoritmo gentico principal es la de implementarlo de manera que se ejecute
simultneamente en distintos procesadores, lo que reducira el tiempo de
respuesta drsticamente y muy probablemente los recursos necesarios para
ejecutar los algoritmos genticos (en especial para el problema de
reparticin), sean mucho menores al repartir las cargas de trabajo entre varios
procesadores. Sin embargo esto podra implicar un aumento en cuanto a la
complejidad del diseo de los algoritmos genticos, al tener que solucionar
los problemas inherentes a la ejecucin en paralelo.
As como se han descrito estas variaciones, es posible encontrar
muchas ms, las cuales podrn ser tema de estudios ms avanzados en el
campo de los algoritmos genticos en cuanto a su aplicacin a problemas
especficos, lo cual no es la intencin de este documento.
LUIS JESUS BONNET AYALA 22
ASESOR: Dra. GRACIELA ROUAN ALONSO
Aunque el programa LOS ALGORITMOS GENETICOS COMO
SOLUCION AL PROBLEMA DE REPARTICION ESTATICA DE CARGA
EN UN SISTEMA MULTIPROCESADOR, ya trae mucha ayuda en lnea y
va guiando al usuario con mensajes enviados al monitor, durante el
transcurso de todo el proceso de captura de datos y del calculo de las
soluciones, se incluye el manual del usuario para no permitir que sucedan
confusiones en cuanto al manejo del programa.
Primero explicaremos el procedimiento para llamar a ejecutarse el
programa. Supondremos que el archivo ejecutable, es decir el archivo con
extensin: .EXE se encuentra grabado en un disco de 3 1\2 pulgadas, y que
este disco est en la unidad A:\ (unidad lectora o floppy).
Aunque es posible ejecutar el programa desde la unidad A:\, se sugiere
copiar el archivo ejecutable (de preferencia todos los archivos en el disco
flexible) a la unidad c, dentro de un subdirectorio creado previamente, para
obtener una mayor velocidad. Por ejemplo el subdirectorio podra llamarse:
AG (Algoritmos Genticos)
Esto lo podemos hacer tecleando lo siguiente:
1.- c:s ($ significa presionar la tecla enter)
2.-mkAGJ
3.- cd A GJ
LUIS JESUS BONNET AYALA 23
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FI NAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA ENUN SISTEMA MULTIPROCESADOR
4.- copy a:\*.* J
Una vez copiados todos los archivos a la unidad C, lo mandamos
ejecutar tecleando la siguiente instruccin:
5.- AGENETICJ
El programa comienza mandando un mensaje en el que se advierte que
se debe tener instalado el mouse, pues nicamente funciona cuando el mouse
se encuentra instalado. Se dan dos opciones: presionar la tecla ESC para
terminar o bien la tecla ENTER J para continuar.
Si se presion la tecla ENTER, se muestra la pantalla de presentacin
que en realidad nicamente es un adorno para la interfaz grfica del
programa.
En seguida se presenta una pantalla como esta:
LUIS JESUS BONNET AYALA 24
ASESOR: Dra. GRACIELA ROUAN ALONSO
Debemos elegir una de las 2 opciones que se piden:
1 .- Informacin proporcionada por el usuario o bien
2.- Informacin proporcionada por el sistema de manera aleatoria.
Dicha eleccin se hace presionando el nmero 1 +J o bien el nmero 2 J
segn nuestra eleccin. (Asegurarse de que el teclado numrico se encuentra
activo).
OPCION 1:
Es importante sealar que si se elige la opcin nmero 1 el usuario
proporcionar los datos con los cuales trabajar el algoritmo gentico, y a
partir de los cuales se calcularn las soluciones, sin embargo tanto en esta
opcin como en la opcin 2 (de modo aleatorio) se puede proporcionar la
informacin si as se desea de modo aleatorio o bien dada por el usuario, por
LUIS JESUS BONNET AYALA 25
ASESOR: Dra. GRACIELA ROMANALONSO
PROYECTO DE WESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
ejemplo si en un determinado campo se desea obtener un nmero aleatorio se
debe oprimir nicamente la tecla enter +I y el programa proporcionar el
nmero de manera aleatoria. Si se desea proporcionar un nmero en un
determinado campo se puede teclear dicho nmero el cual ser registrado
nicamente hasta que se presione la tecla enter J , lo que nos permite borrar el
nmero con la tecla backspace t cuantas veces sea necesario.
La diferencia entre la opcin 1 y la 2 consiste bsicamente en los
lmites permitidos de procesos para el modo 1 los cuales deben ser menores
de 10, para el nmero total de procesos, por lo tanto el usuario debe contar
con los siguientes datos a la mano:
Tamao de la malla de procesadores, N x M , donde N y M debern ser
menores a 1 O para tener como lmite una malla de 1 O0 procesadores.
(Si se eligen menos de 10 procesos)
Costo de computacin para cada proceso.
Costo de comunicacin entre cada proceso.
El tamao de la malla de procesadores dado en la multiplicacin de dos
variables, ejemplo:
Si la malla de procesadores es de 20 esto puede ser: N=4 y M=5 NxM=20
Como ejemplo se presenta la siguiente pantalla:
LUIS JESUS BONNETAYALA 26
ASESOR: Dra. GRACIELA ROMANALONSO
Como podemos apreciar en la figura anterior se nos pide que
proporcionemos:
El tamao de la malla
El nmero de procesos
El nmero de generaciones
La probabilidad de mutacin
La probabilidad de cruzamiento
Y el llenar una tabla con 2 campos como columnas. La primer columna
corresponde a los procesos y la llena el programa con un nmero que
corresponde a la secuencia desde O hasta el nmero total de procesos menos
uno, que se haya elegido.
LUIS JESUS BONNETAYALA 27
ASESOR: Dra. GRACIELA ROUANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIbN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
PROCESOS COSTO COMPUTACION
O
9
10
4
I 5 I
9
Como se puede entender fcilmente el proceso 3 tiene un costo de
computacin de 9 , el proceso O un costo de computacin de 10 y as
sucesivamente para todos los procesos.
PROPIEDADES DE LAS TABLAS:
Cabe sealar que mientras se permanezca en una casilla a llenar de la
tabla, se pueden hacer modificaciones oprimiendo la tecla t (backspace) el
valor se fijar cuando se presione la tecla J (enter) y se pasar a la siguiente
casilla, sin poder hacer correcciones a las casillas anteriores.
Si el valor proporcionado en una casilla no es permitido (fuera de los
rangos), parecer que no se hizo nada y la casilla permanecer en blanco, con
opcin de poder llenarla nuevamente. Una casilla en la cual no se teclee
ningn valor y se presione el la tecla J proporcionar un valor de O, (no
LUIS JESUS BONNET AYALA 28
ASESOR: Dra. GRACIELA ROAUN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MLTLTIPROCESADOR
proporciona un nmero aleatorio como en los campos de informacin que no
son capturados en una tabla).
Esto aplica para todas las tablas a llenar.
A continuacin se presenta la siguiente pantalla:
Aqu se nos pide llenar una tabla de costos de comunicacin entre cada
uno de los procesos.
Como podemos ver la tabla ya se encuentra llena en su diagonal
principal con ceros, esto se debe a que el costo de comunicacin entre un
mismo proceso es igual a cero. La primer columna de la tabla se encuentra
llena con cada uno de los procesos, y la primer fila tambin contiene a cada
uno de los procesos. Para ahorrar tiempo nicamente se llenan los valores de
los costos de comunicacin entre procesos i, j ya que son iguales a los de j, i
LUIS JESUS BONNET AYALA 29
ASESOR: Dra. GRACIELA R O MN ALONSO
TIGACION 2 (REPORTE FINAL)
ENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
Por ejemplo para los valores elegidos para los procesos en el ejemplo
anterior. (6 procesos) la tabla parcialmente llena podra lucir as:
5
4
5
3
O
Lo que significara que el proceso O con el proceso 5 tiene un
costo de comunicacin de 4, que es el mismo costo para el proceso 5 con el
proceso O, y as para cada uno de los procesos.
Cabe sealar que este proceso de captura de la informacin de los
costos de comunicacin entre procesos se vuelve engorroso, tedioso y
aburrido en cuanto ms aumenta el nmero de procesos a repartir, por
ejemplo si se hubiese elegido un nmero de procesos de 20 o ms esto se
convierte en un proceso aburrido adems que el manejo del grfico de la tabla
a llenar no cabra en la pantalla, lo que puede hacer que el usuario se
confunda, por todo esto se sugiere que para un trabajo posterior sobre este
programa se implemente la opcin de poder leer los datos de las tablas de un
archivo llenado anteriormente por otro programa o bien por el mismo, con la
intensin de automatizar y agilizar este proceso.
La distancia entre el procesador i y el procesador j se define como: el
menor nmero de ligas entre el procesador i y el procesador j, que forman un
LUIS JESUS BONNETAYALA 30
ASESOR: Dra. GRACIELA ROUANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORlTMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR
camino entre estos dos procesadores. Esta distancia es calculada
automticamente por el programa. Esto se estar realizando cuando aparece la
siguiente pantalla:
Si se eligi un nmero de procesos menor de 10 se puede observar la
comunicacin entre los procesos como ejemplo se muestra la siguiente figura:
LUIS JESUS BONNET AYALA 31
ASESOR: Dra. GRACIELA ROMAN ALONSO
En la siguiente figura podemos apreciar que se encuentran conectados
20 procesadores en una topologa de malla. Si el tamao elegido de la malla
es menor de 25 procesadores, ser posible ver esta inter - coneccin como en
la presentacin de la siguiente pantalla:
LUIS JESUS BONNET AYALA 32
ASESOR: Dra. GRACIELA ROMANALONSO
Se presenta a continuacin la siguiente pantalla:
Aqu se nos proporcionan los valores con los cuales se ejecutar el
Algoritmo Gentico, se nos avisa que el proceso podra durar hasta 9 minutos
dependiendo principalmente de los valores de el nmero de procesos y el
nmero de generaciones elegido. Como en el proceso de captura de la
informacin por parte del usuario se encuentra restringido a un nmero
pequeo de procesos (hasta 10). Esta advertencia slo aplica cuando se tiene
un nmero grande de procesos y generaciones.
Se pide elegir una de 2 opciones:
1 .-Ejecutar Algoritmo Gentico
2.- Cancelar
LUIS JESUS BONNETAYALA 33
ASESOR: Dra. GRACIELA ROMAN ALONSO
LEMA DE REPARTICIN
Al presionar el nmero 1 .J se comenzar a calcular las mejores formas
de repartir los procesos en los procesadores, utilizando los Algoritmos
Genticos. Se pide esperar un momento y en unos instantes aparecer la
siguiente pantalla:
Aqu se presentan los tiempos de ejecucin para cada una de las 5
mejores soluciones encontradas. Las cuales se buscaron en el nmero de
generaciones que se eligi anteriormente.
El nmero de generacin en que se encontr cada solucin y la mejor
solucin de todas
Se pide presionar la tecla enter +J
No hay que preocuparse por copiar estos valores ya que se podr regresar
nuevamente a esta pantalla.
LUIS JESUS BONNETAYALA 34
ASESOR: Dra. GRACIELA ROU4N ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
Si el tamao de la malla es menor de 25 se podr ver la siguiente pantalla:
Esta pantalla corresponde a la mejor solucin encontrada, aqu
podemos ver los procesos que se repartieron en cada uno de los procesadores,
as como el costo de esa reparticin y la generacin en que se encontr.
En la parte de abajo se encuentran 8 botones y 1 icono; cada uno de los
primeros cinco botones de izquierda a derecha corresponde a cada una de las
mejores 5 soluciones encontradas, el sexto botn a la mejor solucin y el
sptimo botn a la pantalla anterior. El icono de la derecha terminar la
ejecucin del programa (Se trat de simular una puerta de salida).
Con estos botones se puede brincar en cualquier orden entre cada una
de las soluciones encontradas y la pantalla anterior en donde no se muestra el
LUIS JESUS BONNET AYALA 35
ASESOR: Dra. GRACIELA ROMANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE FSPARTICIN
modo en el que fueron repartidos los procesos en cada uno de los
procesadores. Como se podr ver, ya aparece el puntero del mouse y por
medio de este, se debe hacer click con el botn izquierdo del mouse sobre el
botn deseado de esta pantalla.
Cabe sealar que en cada una de las 5 pantallas correspondientes a cada
una de las 5 soluciones (incluyendo la mejor solucin), la pantalla es diferente
con respecto a las dems en cuanto a la reparticin de los procesos en cada
uno de los procesadores.
Por ltimo si se presiona el botn nuevo proceso se permite regresar al
principio del programa. Que es la etapa en la cual el usuario elige el modo en
el cual se proporcionar la informacin a los algoritmos genticos De manera
aleatoria o bien proporcionada por el usuario, con la intensin de hacer
nuevos clculos.
OPCION 2:
Si se opt por elegir la opcin nmero 2 el programa se ejecutar
automticamente, es decir, el sistema proporcionar de manera aleatoria todos
los datos correspondientes a las distancias de entre los procesadores y en
general a la informacin de las tablas de costos de comunicacin entre
procesos y l os costos de ejecucin de cada proceso, nicamente el usuario
deber proporcionar las probabilidades de mutacin, cruzamiento, tamao de
la malla , nmero de procesadores y nmero de generaciones si as lo desea,
pudiendo optar en cada cazo por obtener un valor aleatorio proporcionado por
la computadora.
LUIS J ESUS BONNETAYALA 36
ASESOR: Dra. GRACIELA R O W ALONSO
PROYECTO DE J NWSTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
En trminos generales podemos considerar que los Algoritmos
Genticos son tcnicas de bsqueda aleatoria que imitan a los procesos
observados en la evolucin natural. Combinan la supervivencia de los ms
aptos (o mejores) entre estructuras de soluciones con un estructurado cambio
de informacin an aleatorizado.
Los Algoritmos Genticos difieren de las tcnicas de optimizacin
tradicionales en muchos aspectos. Ellos trabajan con una codificacin de las
variables ms que con las variables en s mismas, y utilizan las reglas de
transicin probabilstica para moverse de una poblacin de soluciones a otra.
La ms interesante e importante caracterstica de los Algoritmos Genticos es
que ellos utilizan tan solo evaluaciones de la funcin objetivo. Esto es, los
Algoritmos Genticos no utilizan ninguna informacin sobre
diferenciabilidad, convexidad o alguna otra caracterstica auxiliar. Esto hace
que los Algoritmos Genticos sean fciles de utilizar y de implantar en gran
variedad de problemas de optimizacin.
La aplicacin de los algoritmos genticos a problemas de investigacin
de operaciones se ha limitado debido a los dominios factibles complejos.
Dado un problema de optimizacin, frecuentemente el paso ms dificil en la
aplicacin del Algoritmo Gentico es el codificar las soluciones tal que el
apareamiento de soluciones factibles de por resultado soluciones factibles.
Lo que nos lleva a que las tcnicas para la codificacin de soluciones
varan dado el tipo de problema, en la mayora de los casos involucra cierta
cantidad de arte. Por lo general para problemas enteros 0-1, las soluciones se
representan tpicamente por medio de una cadena de bits de longitud igual al
LUIS JESUS BOhWET AYALA 37
ASESOR: Dra. GRACIELA ROUANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
nmero de variables en el problema, digamos n, donde cada posicin de la
cadena puede tomar el valor O 1, (en terminologa gentica) cada posicin
es un gene y el valor en esa posicin es un allele. Esto resulta en un espacio
de bsqueda de cardinalidad 2.
Los algoritmos genticos son buenos candidatos de eficientes
estrategias heursticas. Tambin los algoritmos genticos son tcnicas de
bsqueda estocsticos, presentados por Holland hace aproximadamente 25
aos, desde entonces han evolucionado favorablemente al grado de que da a
da se agregan ms y ms investigadores a este tipo de algoritmos, los cuales
se inspiran en el sistema natural de la evolucin. El diseo acelerado y cada
vez mejor de las computadoras, ha hecho de los algoritmos genticos un tema
muy popular en los ltimos aos en lo que se refiere a las aplicaciones para la
multiprogramacin de dichas mquinas. Recientemente se han aplicado
muchas optimizaciones de tipo combinatorio a problemas en varios campos,
tales como, por ejemplo, el problema del agente viajero, la optimizacin de
conexiones y conectividad de redes neuronales, y clasificacin de sistemas.
Los algoritmos genticos ms comunes, con grandes poblaciones toman un
gran tiempo de ejecucin. Sin embargo en este trabajo se propone un
algoritmo que provee una solucin rpida y eficiente al problema de
distribucin esttica de carga; dicha solucin simula un sistema
multiprocesadores con varias tareas asignadas (llamadas procesos) , tal
solucin es implementada en un slo procesador. La idea principal para el
desarrollo del presente trabajo fue tomada de T.MUNTEAN y E-G. TALBI
investigadores de Laboratorie de Gnie Informatique / IMAG; University of
LUIS JESUS BONNET A YALA
ASESOR: Dra. GRACIELA ROMAN ALONSO
38
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
"LOS ALGORiTMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICION
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
Grenoble BP 53X F-38041 Grenoble, France
su trabajo titulado :
e-mail: traian @ irnag.fr en
A PARALLEL GENETIC ALGORITHM FOR PROCESS-
PROCESSORS MAPPING.
Una caracterstica importante de los algoritmos genticos es que
pueden ser usados para gran variedad de problemas de optimizacin
combinatorios, puesto que no hacen suposiciones a cerca del espacio que
estn buscando. Actualmente se estn utilizando para resolver problemas de
optimizacin en el campo de control de robots y redes neuronales.
Al ejecutar el programa con diferentes valores se obtuvieron los
siguientes resultados:
-
No.
-
:esos
50
70
20
80
50
50
90
60
10
99
2
Nmero de
Generacione
500
500
500
700
500
1000
50
50
1 O00
1 O00
10
U GENERA
De l a soluci.
237
364
49
173
205
280
50
47
589
208
3
Los ejemplos probados fueron:
Un gran nmero de generaciones (aprox. lOOO), con un gran nmero de
procesos a repartir (aprox. 100).
LUIS JESUS BONNETAYALA 39
ASESOR: Dra. GRACIELA ROMN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETEOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
Un gran nmero de generaciones con un nmero pequeo de procesos a
repartir.
Estos ejemplos fueron probados con distintos valores de probabilidades
de mutacin y cruzamiento.
De la tabla es importante hacer notar que cuando se tiene un gran
nmero de generaciones, un gran nmero de procesos a repartir y una alta
probabilidad tanto de mutacin como de cruzamiento, el tiempo de ejecucin
se eleva considerablemente de cuando no se tienen estas caractersticas.
Sin embargo cuando se tiene un nmero grande de generaciones, se
puede tener la confianza de que la solucin obtenida se acerca mucho a la
ptima, puesto que el espacio de bsqueda es mayor. Lo anterior se nota
claramente en la columna llamada: Numero de Generacin de la solucin.
Este nmero por lo general se encuentra arriba de la generacin nmero 100.
El programa se prob cuando existe comunicacin nicamente entre
algunos de los procesos (por ejemplo: nicamente dos de ellos se
comunican).
Se obtuvo como resultado que los procesos que tenan un costo de
comunicacin muy grande, nunca se repartan en el mismo procesador,
mientras que l os que tenan un costo de comunicacin muy pequeo o nulo
eran repartidos en el mismo procesador en las distintas soluciones
presentadas.
LUIS JESUS BONNETAYALA 40
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FI NAL)
LOS ALCKXITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA h4LJLTiPROCESADOR
El programa fue escrito en el lenguaje C, las pruebas que se le
hicieron al algoritmo gentico fueron realizadas en una mquina con
procesador PENTIUM de 100 MHz. Y con 16 MB de memoria RAM. Estos
datos se proporcionan para poder hacer despus comparativas entre los
tiempos de ejecucin y respuesta de los algoritmos genticos para el problema
de reparticin esttica de procesos en un sistema multiprocesador.
A continuacin se presenta el listado completo referente a la
manipulacin de los datos por parte de los algoritmos genticos. Cabe hacer
nfasis en que dicho listado puede presentar mejoras, y variaciones, para su
ejecucin ms eficiente, o bien con la intencin de ahorrar recursos como la
memoria. Puesto que la intencin principal, es el estudio de este tipo de
algoritmos en especial la aplicacin para el problema de reparticin esttica
de carga, no se ha invertido mucho esfuerzo en la interfaz grfica ni en
detalles de programacin.
LUIS JESUS BONNETAYALA 41
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FI NAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MLTPROCESADOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
//
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
// regresa el costo de comunicacin entre el proceso i y el j
int CosCom(int procesoi, int procesoj, int procesos)
{
int valo&;
*/
*/
DESDE AQUI COMIENZA EL MANEJO DE LOS ALGORITMOS GENETICOS
**
*/
if (procesoi<=procesos && procesoj<=procesos)
{
1
valor=TCC [procesoi] [procesoj] ;
return valor;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
*I
// regresa la distancia entre el procesador i el procesador j
int Distancia(int procesadori, int procesadorj, int procesadores)
{
int valor=O;
if (procesadori<=procesadores && procesadorj<=procesadores)
{
1
valor=TDistancias[procesadori] [procesadorj] ;
return valor;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
float calcuiaLk(int procesador,int procesos,int cromosoma[])
*/
{
int indice2=0;
float acwn=O.O;
while(indice2<procesos) //indice2 recorre todo el cromosoma para buscar el
procesador procesador
{
if( cromosoma[indice2]-procesador)
indice2++;
acum=acum+TGeneral[indice2][0]; //este es el costo de computacion
LUIS JESUS BONNETAYALA 42
ASESOR: Dra. GRACIELA ROiUXV ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR
1
return acum;
I
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
float Calidad(int cromosoma[],int procesos, int procesadores)
*
{
float resultado=O.O;
float LbO.0;
float valorcc=0.0;
float valordis=O .O;
float acumuladorC=O . O;
float acumuladorV=O.O;
int indice=O;
int indice2=1; //indice e indice2 corren sobre el cromosoma de tamaao procesos y
//que tiene el procesador donde fue emplazado el proceso
while (indice<procesos)
{
while( indice2<procesos) {
valorcc=CosCom( indice,indice2,procesos);
valordis=Distancia(cromosoma[indice] ,cromosoma[indice2] ,procesos);
acumuladorC=acumuladorC+(valorcc*valordis);
indice2++;
I
indice++;
indice2=indice+1 ;
I
//**********hasta aqui acumdadorC tiene el valor de C** * ** *** * * * * * ** * **/
//* * * * * * * * * * * * * * * * * * * * C ~ C ~ O DE EL VALOR DE L* * * * * * * * * * * * * * * * 41 * *
indice=O;
valorcc=O.O; //para reutilizarlo como acumulador
while(indice<procesos)
{
valorcc-~alorcc+TGeneral[indice] [O];
indice++;
I
vaiorcc=valorcc/procesadores;
valorcc=valorcc*valorcc ;
//este es el costo de computacion
//* 41 * * * * * * *AHOM C ~ C ~ ~ EL VALOR DE LK* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
indice=0;
valordis=0.0; //para reutilizarlo como acumulador
{
Lk=calculaLk( indice,procesos,cromosoma);
Lk=Lk*Lk;
resultado=Lk-valorcc; //para utilizarlo mientras se utiliza ms adelante
while(indice<procesadores)
LUIS JESUS BONNET A YALA
ASESOR: Dra. GRACIELA ROMAN ALONSO
43
PROYECTO DE INVESTIGACION 2 (REPORTE FiNAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MLTiPROCESADOR
acumuladorV=acumuladorV+resultado ;
indice++;
resultado=O.O;
Lk4.0;
1
acumuladorV=acumuladorV/procesadores; //ya se tiene el valor de V
resultado=acumuladorC+( 2 *acumuladorV);
//* * ** ********* ** * se calcula el valor final* * * ******* * ** * * ** * ** * * ** ** ******* * * 41
return resultado;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
*
void CalculaCalidades(int cromosomas[20][NUMAXPRO], float calidades[20],int
procesos, int procesadores)
{
int individuo=O;
while( individuo<20)
{
1
calidades[individuo]=Calidad(cromosomas [individuo] ,procesos,procesadores);
individuo++;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
void LlenaCromosomasA(int cromosomas[20][NUMAXPRO], int procesos, int
*
procesadores)
{
int cromosoma=O;
int proceso=0;
while( cromosoma<20)
{
while(proceso<procesos)
{
1
cromosomas[cromosoma] [pr~ce~~]=random(pr~cesadores);
proceso++;
cromosomas[cromosoma] [proceso]=\O;
proceso4;
cromosomatt-;
1
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
void Capturalcrom(int cromosomas[20][NUMAXPRO], int procesos)
{
int proceso=O;
*
while(proceso<procesos)
LUIS JESUS BONNET AYALA 44
ASESOR: Dra. GRACIELA ROMNALONSO
PROBLEMA DE REPARTICIN
{ //esto es el procesador
cromosomas[O] [proceso]=TGeneral[proceso] [ 1 ] ;
proceso++;
1
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
int FhdBest(float calidades[20])
int lug-0;
int cromosoma=1 ;
float menorvalor;
menorvalor=calidades[O] ;
while( cromosoma<20)
{
if (calidades[cromosoma]~menorvalor) {
menorvalor=calidades[cromosoma] ;
lugar=cromosoma;
1
cromosoma++;
1
return lugar;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
//guardar informacion
void GuardaMejor(int c r omos oma~P R O] , float calidad, int procesos, int
*
generacion)
{
int lug&;
int cromomayor=1 ;
float mayorvalor;
//primero encontrar el lugar donde esta el mayor valor de los 5
mayorvalor=losmej ores[lugar] .Calidad;
while( cromomayor<5)
{
if (mayorvalor<losmej ores[cromomayor] .Calidad)
{
mayorvalor=losmejores[cromomayor] .Calidad;
lugamxomomay or;
1
cromomayort+;
1
if(calidad~losmejores[lugar] .Calidad)
{
cromomayod; //para reutilizarlo
while (cromomayoKprocesos) //se copia todo el cromosoma
//lugar es donde se encuentra el mayor valor de los 5
{
losmej ores[lugar] .Cromosoma[cromomayor]=cromosoma[cromomayor] ;
LUIS JESUS BONNETAYALA 45
ASESOR: Dra. GRACIELA ROMAN ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
"LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIdN
ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR
cromomayor++;
1
losmejores[lugar].Cromosoma[cromomayor]='\0'; / / checar limite
cromomenor
losmejores[lugar] .Calidad=calidad;
losmej ores [lugar]. Generacion=generacion;
1
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
void cnizamiento(int padre1 [NUMAXPRO], int padre2[NUMAXPRO],int procesos,int
procesadores) / / aqui adentro checa calidades de los hijos y decide si se sustituyen los padres por los
hijos
*
{
float calpadrel=O.O;
float calpadre2=0.0;
float calhijol=O.O;
float caihijo2=0.0;
int hijo 1 [NUMAXPRO] ;
int hijo2[NuMAxPRO];
int indice=O;
int puncniza=o;
calpadre I=Calidad(padre 1 ,procesos,procesadores);
calpadre2=Calidad(padre2,procesos,procesadores);
/ / llena los 2 hijos con los valores de los padres
while( indice<procesos)
{
hijol [indice]=padrel [indice];
hij o2[indice]=padre2 [indice];
indiceti-;
1
hijol [indice]='\ O';
hijo2 [indice]='\ O';
/ / ahora se hace el cruzamiento
indice=O ;
puncruza=random(procesos); / / se intercala todo lo de la derecha
if(puncruza<procesos- 1)
{
indice=puncniza+1 ;
while( indice<procesos)
{
hijo 1 [indice]=padre2[indice];
hijo2[indice]=padre 1 [indice];
indice++;
1
calhijo l%alidad(hijo 1 ,procesos,procesadores);
calhij o2=Calidad(hijo2,procesos,procesadores);
L urs JESUS BONNET AYALA
ASESOR: Dra. GRACIELA ROUAN ALONSO
46
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORiTMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIbN
1
//se checan las calidades y si son mejores se sustituye a los padres
indice=O ;
if(calhijol<calpadrel)
{
while (indice<procesos) {
padre1 [indice]=hijol [indice];
indice++;
1
1
indice=O ;
if(calhijo2<calpadre2)
{
while (indice<procesos) {
padre2 [indice]=hij o2 [indice];
indice++;
1
1
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
void mutacion(int cromosomal [NuMAxPRO],int cr omosoma2~PRO] , i nt
*
procesos,int procesadores)
{
int punmutacion=O;
int procesador 1=0;
int procesador2=0;
punmutacion=random(procesos);
procesador 1 =random(procesadores);
procesador2=random(procesadores);
cromosomal [punmutacion]=procesador 1 ;
cromosoma2 Cpunmutacion]=procesador2 ;
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
*
void HacerCruzamiento(int cromosomas[20] [NUMAXPRO], float pc, float pm,int
{
int indice=O;
int indice2=19;
float pcl=O.O;
float pm 1 =O. O;
procesadores,int procesos)
while(indice-40) //checar bien esto
pc l=random( 1 OO) +1 ;
pml=random( 100)+1;
{
pc l=pc 11100;
LUIS JESUS BONNETAYALA 47
ASESOR: Dra. GRACIELA ROUANALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATICA DE CARGA EN UN SISTEMA MLJLTIPROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N
pml=pm1/ 1000; / / checar bien este valor
if(pcl<=pc) / / habra cruzamiento
{
1
{
mutacion(cromosomas[indice], cromosomas[indice2],procesos,procesadores);
1
indice++;
indice2--;
1
cruzamiento(cromosomas[indice] ,cromosomas[indice2] ,procesos,procesadores);
if(pm 1 <=pm)
1
*
void LimpiaMejores(v0id)
{
int indice=O;
int procesos=O;
while(indice<5) {
losmejores[indice].Calidad=l00000.0;
losmejores[indice] .Generacion=O;
while(procesos<NUMAXPRO) {
losmejores[indice] .Cromosoma[procesos]=\ O;
procesos++;
1
procesos=O;
indice++;
1
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
*
/ / Este procedimiento se correr un total de numero de generaciones.
void BuscaElMejor(float pc, float pm, int generacion, int procesos, int procesadoresjnt
OPC)
{
int cromosomas[20] [NLTMAXPRO];
float calidades[ 201 ;
int thebest=O;
LlenaCromosomasA( cromosomas,procesos,procesadores) ;
if(generacion=l && opc=l)
if(generacion= 1)
Captura 1 crom(cromosomas,procesos);
{
Calculacalidades( cromosomas,calidades,procesos,procesadores);
HacerCnizamiento(cromosomas,pc ,pm,procesadores,procesos);
Calculacalidades( cromosomas,calidades,procesos,procesadores);
thebest=FindBest( calidades);
LUIS JESUS BOhWETAYALA 48
ASESOR: Dra. GRACIELA R O W ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
GuardaMejor(cromosomas[thebest],calidades[thebest],procesos,generacion);
1
else
{
HacerCnizamiento(cromosomas,pc,pm,procesadores,procesos);
CalculaCalidades( cromosomas,calidades,procesos,procesadores);
thebest=FindBest(calidades);
GuardaMejor(cromosomas[thebest] ,calidades[thebest],procesos,generacion);
1
1
*
LUIS JESUS BONNETAYALA 49
ASESOR: Dra. GRACIELA R O W ALONSO
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)
ESTATICA DE CARGA ENUN SISTEMA MULTIIROCESADOR
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTI CI ~N
High Performance Computing Ii
M.Durand and F. El Dabaghi (Editors)
Elseiver Science Publishers B.V. (North-Holland), 199 1
Genetic Programming
On the programming of computers
by neans of Natural Selectin
Jhon R. Koza
Genetic Algorithms In search, optimization and machine learning.
David E. Goldberg
MA: Addison-Wesley, 1989
Genetic Algorithms +Data Structures =Evolution Programs
Zbigniew Michalewicz MA: Springer-Verlag
Parallel Problem Solving fiom Nature - PPSN HI
Implementatingns of standard Genetic Algorithm on MIMD machines
R.Hauser, R.Rwer
Pag 504 - 513 Ao 1994
A parallel genetic algorithm; Proc. of the
Second Int. Conf. On Genethic algorithms,
MIT, Cambridge, pp. 155-161, jul. 1987
C.B.Pettey,M.R. Leuze, J.J.
N.Desni, Generating random task graphs with known optimal schedule for multiprocessing
scheduling, Masters Project Rep., NJIT, Newark, NJ, 1993.
LUIS JESUS BONNET AYALA 50
ASESOR: Dra. GRACIELA R O MN ALONSO
PROYECTO DE INVESTIGACION 2 WPORTE FiNAL)
LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIN
ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR
C.V. Ramamoorthy et al., Optimal scheduling strategies in a multiprocessor system, IEEE
Trans. Comput., vol. C-21, pp. 137-146, Feb. 1972.
H. Kasahara and S. Narita, Practical multiprocessing scheduling algorithms for efficient
parallel procesing, EEE Trans. Comput., vol. C-33, no. 11, pp. 1023-1029, Nov. 1984.
J. Holland, Adaptatin in Natural and Artificial System,
Ann Arbor, MI: University of Michigan Press, 1975.
L. Davis J ob shop scheduling with genetic algorithms . Proc. 1 Int. Conf. Genetic
Algorithms and Their Applications, J uly 24-26, 1985, Carnegie-Mellon University,
Pittsburgh, PA, pp 136-140.
LUIS JESUS BONNETAYALA 51
ASESOR: Dra. GRACIELA ROMAN ALONSO

También podría gustarte