(reporte final) algoritmos problema de …148.206.53.84/tesiuami/uam5040.pdf · parte 4. manual del...

53
PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) "LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR" 'CBI /e' \ e. co wt POT fi c 0 0 +/" LOS ALGORITMOS GENETICOS COMO SOLUCION PARA EL UNIVERSIDAD AUTONOMA METROPOLITANA EN UN SISTEMA MULTIPROCESADOR

Upload: trankiet

Post on 06-Feb-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) "LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR"

' C B I /e'

\ e. co wt POT fi c 0 0 +/" LOS ALGORITMOS GENETICOS

COMO SOLUCION PARA EL

UNIVERSIDAD AUTONOMA METROPOLITANA

EN UN SISTEMA

MULTIPROCESADOR

Page 2: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado
Page 3: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

CONTENIDO Pagina

Prefacio. ............................................................................... .3

Introduccion ........................................................................... .4 .,

Parte 1. Descripción del Algoritmo Genético Principal.

Descripción del algoritmo genético principal. ............................ 6

Parte 2. Descripción de la implementación.

Datos del Algoritmo Genético .............................................. 13 Descripción de la ejecución del programa.. ............................... 17

Parte 3. Descripción de las variaciones al Algoritmo Genético 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

Page 4: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FIhbU)

ESTATICA DE CARGA EN UN SISTEMA MLJLTIF’ROCESADOR” “LOS A L ~ ~ O S GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N

Apéndice A. Listado de los Algoritmos Genéticos.. .......................................... .40

BIBLIOG ................................................................................. 48

LUIS JESUS BONNETAYALA 3 ASESOR: Dra. GRACIELA ROUAN ALONSO

Page 5: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REWRTE FINAL)

ESTATICA DE CARGA EN UN SISTEMA mTIPROCESADOR “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N

Todo trabajo de investigación requiere de un cierto esfuerzo y dedicación. Este esfuerzo no serviría de mucho si no se difundieran los resultados obtenidos. En este trabajo se presentan esos resultados; obtenidos después de haber implementado distintos algoritmos genéticos para solucionar el problema de repartición estática de carga en un sistema multiprocesador .

Se incluye también el listado fuente en la parte esencial del manejo de la repartición y la manipulación de los cromosomas, por parte de los algoritmos genéticos para obtener siempre la mejor manera de repartir un determinado número de procesos en un sistema multiprocesador.

Es necesario mencionar que este trabajo está basado en el trabajo de investigación realizado con anterioridad, por lo que el presente trabajo viene a ser el medio de comunicar los resultados finales de la implementación en una computadora, de los algoritmos

genéticos descritos en el trabajo anterior (proyecto de investigación 1).

Por un principio se describirá el algoritmo principal empleado para dar solución a cualquier

funcionamiento y el modo en que se implementó. Después se presentará alguna variante de este algoritmo principal y los resultados obtenidos con cualquiera de las variantes, así como del algoritmo principal.

repartición, así como su

Se incluye un manual completo para poder utilizar el programa de computadora titulado: “LOS ALGORITMOS GENETICOS COMO SOLUCIÓN AL PROBLEMA DE REPARTICION ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR” así como

funcionamiento y sugerencias de mejoras futuras en cuanto a la interfaz gráfica.

una descripción de su

Se incluye en un anexo el código fuente de el programa.

Por último se presentan las debidas conclusiones y bibliografía.

LUIS JESUS BOMVET AYALA 4 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 6: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado
Page 7: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Los algoritmos genéticos están basados en la noción de la propagación

de nuevas soluciones a partir de soluciones padres, empleando mecanismos

modelados de aquellos que se aplican en genética. La mejor descendencia de

las soluciones padres se retiene para una nueva generación, por lo que al

proceder en forma de evolución se fomenta la supervivencia de los más aptos.

Como la calidad de los más aptos (mejor descendencia) eventualmente

construye el más 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 método para una solución optimal.

Un algoritmo genético básico tiene tres operadores: reproducción,

cruzamiento y mutación. La reproducción es un apareamiento aleatorio de

individuos (soluciones muestra) de una población para crear una o más

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

progénito de realizar un mejoramiento sobre sus padres. Finalmente, una

mutación 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

mutación está más fuertemente sesgada para ayudar en la aplicación de los

algoritmos genéticos que en la genética biológica. La mutación diversifica el

espacio de búsqueda y protege de la pérdida de material genético que puede

darse en la reproducción y el cruzamiento.

LÜIS JESUS BONNET AYALA 5 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 8: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Un programa paralelo puede ser modelado por un grafo, en este caso

los llamaremos G, = ( V, , L, ) donde los vértices (V,) representan procesos y

los pesos de los vértices representan conocidos o estimados costos de

computación para esos procesos. Las ligas (L,) representan la comunicación

requerida entre procesos y los pesos de las ligas el costo estimado de la

comunicación entre ellos. Se asume que el proceso de creación del gafo es

estático; no dinámico. Por otra parte, si el proceso de creación del grafo es

dinámico, una estrategia de distribución dinámica deberá ser usada.

Una arquitectura paralela también puede ser modelada por un gafo no

dirigido, esto quiere decir, que la ligas no tienen dirección, este grafo lo

llamaremos como en la ocasión anterior un gafo de tareas Gt = ( Vt , Lt ), donde los vértices (Vt) como en el caso anterior representan procesos o tareas

y las líneas representan ligas (L,) de comunicación entre los procesos. Se

asume que la representación es estática; la configuración física de la red no

debe ser cambiada dinámicamente durante el tiempo de ejecución. La

siguiente notación es usada:

M : El número de procesos o tareas a ser distribuidos, M = I V, I N : El número de procesadores de la arquitectura objetivo, N = I Vt I ei : El costo de computación del proceso pi

cij : El costo de comunicación entre los procesos pi y pj.

LUZSJESUS BONNETAYALA 6 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 9: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

dkl :La distancia entre los procesadores tk y ti. La distancia esta definida

como el mínimo número de ligas formando un camino entre los

procesado res.

Este problema puede ser definido por una función II : Vp -+ Vt, que

asigna cada proceso a un procesador. Una fiinción de costo F : II -+ 93, la

cual asocia un valor real a cada distribución, que servirá para comparar las

diferentes posibles soluciones.

Dos criterios de distribución que son contradictorios han sido

considerados:

- Minimizar la suma del total de los costos de comunicación entre

procesadores. Este costo puede ser medido por el producto del costo de

comunicación 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 función costo F escogida es la suma de las dos funciones C y V : F =

C + w - V donde w es el peso de la contribución de el costo de comunicación

LUIS JESUS BONNETAYALA 7 ASESOR: Dra. GRACIELA ROUAN ALONSO

Page 10: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

relativo al balance de la carga computacional en el sistema. Escoger un valor

satisfactorio para w depende del conocimiento a cerca de las características de

la arquitectura paralela. Valores muy pequeños de w sugerirían una solución

de un solo procesador, y valores muy grandes de w reduciría el problema a

una programación en un sistema multiprocesadores sin costos de

comunicación. 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 genéticos componen una muy interesante familia de los

algoritmos de optimización. Sus principios básicos son realmente simples:

Dado un espacio de búsqueda

de este espacio puede ser representado por un vector M de esos N símbolos.

Dada una función de capacidad F que va de

a cualquier punto de C.

de tamaño NM y N símbolos: cualquier punto

a % la cual asocia un valor real

Dado un conjunto inicial de vectores, llamado la población inicial.

Algunos operadores genéticos son usados para generar nuevos puntos

de C. Proponer algunos individuos (cromosomas) para la fase llamada

“reproducción”.

El principio fundamental de los algoritmos genéticos es “El más apto es

el más probable para reproducirse”.

Dado que el tamaño de la población es constante, se tiene

inevitablemente una competición por la supervivencia de los individuos en la

próxima generación. Se tiene entonces una situación Darwiniana:

“supervivencia de los más aptos” . Una fase de “reemplazamiento” es en este

LUIS JESUS BONNETAYALA 8 ASESOR: Dra. GRACIELA R O W N A L O N S O

Page 11: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

momento ejecutada; la cual consiste en reemplazar los “peores” individuos de

la población por los mejores individuos producidos.

Los procesos genéticos son iterados en la nueva población hasta que se

alcanza un número dado de generaciones.

El algoritmo genético es:

Generar una población de individuos (cromosomas) aleatoriamente.

Evaluación - asignar un valor de capacidad a cada individuo.

WHTLE número - - de generaciones 5 max - número-de-generaciones DO

Selección

probables a morir,

- hacer una lista con un número par de individuos

con los individuos probados más fiecuentemente.

Reproducción - Aplicar los operadores genéticos a las parejas

seleccionadas.

Reemplazamiento - Formar una nueva población al reemplazar los

peores individuos por los mejores.

Los operadores genéticos más comúnmente utilizados durante la

reproducción son cruzamiento y reproducción.

Cruzamiento: Dados dos vectores, cortarlos en el mismo punto (el punto es

aleatoreo) e intercambiar las dos porciones. (ver figura a). El Cruzamiento es

sinónimo de sexo.

La mutación es simplemente cambiar un bit (ver figura b). En los sistemas

biológicos, la mutación es vital para la supervivencia de las especies cuando

los medio - ambientes están cambiando constantemente. Es necesario definir

dos parámetros: pc y pm que representan respectivamente las probabilidades o

aplicación de los operadores de cruzamiento y mutación. Otros operadores

LUIS JESUS BONNET AYALA 9 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 12: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

genéticos pueden ser encontrados en distintas literaturas, por ejemplo, el

operador de inversión y muchas variaciones del operador de cruzamiento

diseñados para problemas de dominio específicos.

Hiios: I 'adrei:

I Punto aleatoreo de cruzamiento

INDIVIDUO

Mutaciáln aleatorea de bits

[a] Cruzamiento [b] Mutación

OPERADOR ES GENE TIC OS

Los siguientes formalismos son usados para usar los algoritmos

genéticos en el problema de la repartición de carga: permitirnos suponer que

tenemos M procesos de comunicación a distribuir en una arquitectura paralela

de N procesadores. Cada uno de esos procesadores es etiquetado por un

símbolo ( por ejemplo un entero entre O y N-1). Una distribución dada es

representada por un vector M de esos símbolos; (donde el símbolo p en la

posición q significa que el proceso q a sido colocado en el procesador p).

En el presente trabajo se hicieron algunas variaciones al algoritmo

genético descrito anteriormente, en la cuál esta basado este programa.

Las variaciones realizadas se describirán más adelante a detalle con la

intención de tener varios puntos para comparar en cuanto al funcionamiento

de este algoritmo genético, y al cual llamaré en lo sucesivo algoritmo

genético principal.

LUIS JESUS BONNET AYALA 10 ASESOR: Dra. GRACIELA ROMANALONSO

Page 13: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE WVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITlvíOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR

Es importante señalar 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 máquina, 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 número dado de procesos en un sistema con varios

procesadores, con la importante característica de ya conocer tanto los costos

de comunicación de los procesos entre sí, así como las distancias entre

procesadores y los costos de ejecución de cada proceso, esto es precisamente

lo que le da el carácter de estático a la repartición a realizar, al mantener estos

datos (costos de comunicación, distancia entre procesadores, costo de

ejecución), fijos durante el calculo de la mejor solución.

Aunque este programa h e 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 características que estas, teniendo la única

limitante de que el programa correrá un poco más lento según las

características de la máquina, lo que podría hacernos pensar que el programa

a entrado a un estado de incongruencia, o bien lo que a menudo señalamos

LUIS JESUS BONNETAYALA 11 ASESOR: Dra. GRACIELA ROMANALONSO

Page 14: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 cálculos necesarios para encontrar la mejor solución, sin embargo,

aunque lo haga después de los nueve minutos calculados como el tiempo

máximo de respuesta en la máquina descrita anteriormente, el programa

proporcionará una respuesta.

__ LUIS JESUS BONNET AYALA 12 ASESOR: Dra. GñACIELA ROMNALONSO

Page 15: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEh4A MULTIPROCESADOR

Llamo “al~oritmo Penético principal” , al algoritmo que se analizó

anteriormente en el presente trabajo y con el cual se hizo la implementación

en la computadora. Los demás algoritmos son variaciones de este algoritmo

genético principal y dichas variaciones serán descritas con todo detalle en su

momento.

DATOS DEL ALGORITMO GENETICO:

El algoritmo genético principal actúa buscando la mejor solución de

distribuciones en distintos procesadores de un número 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.

- Número de procesadores:

de la malla de procesadores conectados en esta topología.

N = A x B. donde A y B denotan el tamaño

- Número de procesos a repartir entre el total de los procesadores: M

- Número de generaciones (cada una de estas generaciones, proporciona al

mejor cromosoma dentro de esa generación). Es necesario aclarar en este

punto que un cromosoma es el nombre que se le da a un arreglo de números

que nos describe una determinada solución de repartición, es decir en cuales

procesadores fueron repartidos cada uno de los procesos. Por ejemplo el

LUIS JESUS BONNETAYALA 13 ASESOR: Dra. GRACIELA ROUAN ALONSO

Page 16: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)

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 números

pequeños y los números grandes

encuentra localizado ese proceso.

corresponden al procesador donde se

procesos

procesadore

S

- El costo de computación de cada proceso: ei

- El costo de comunicación de cada proceso con los demás procesos :

cij =costo de comunicación entre el proceso i y el proceso j. Si el número

de procesos a repartir es menor de 10 se podrá ver su comunicación, 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

Page 17: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)

ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR -LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N

“El mínimo número 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 automática el programa. Como se supone que los procesadores se

encuentran conectados en forma de malla, sólo es necesario proporcionar el

tamaño de la malla, es decir: No de procesadores = A x B . Si el número 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 función para calcular “la

calidad” de cada cromosoma en una generación. Esta función fue descrita en

páginas anteriores.

F = C + (w*V) donde w=2 y:

i= 1

I n@=k I Es importante señalar que la función es una función de costo por lo que

se deberá minimizar dicha función. Dicho esto en otras palabras, el

cromosoma con mayor “calidad”, para nuestro interés será aquel que tenga

menor costo o tiempo de ejecución.

En la fórmula 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

Page 18: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)

ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~N

Esta distancia es calculada automáticamente 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 repartirán estos procesos, debido a que si se

escoge un número muy grande de procesos a repartir, el proceso de captura de

información se vuelve muy engorroso y tardado, se sugiere para trabajos

posteriores la captura automática por parte del programa de archivos que

contengan la información y que se pueden generar de una forma mucho

menos tediosa. Por esto es que se ha limitado el número de procesos a

repartirse a un máximo de 10, (de 2 a lo), si es que se desea introducir la

información uno mismo, si no es así el programa proporcionara esta

información de manera aleatoria y no se contará con una limitante de ningún

tipo. La cota inferior de 2 es porque no tendría sentido hacer todo el calculo

de buscar la mejor solución para un solo proceso y un sólo procesador.

En general sin importar el modo de proporcionar la información, (por el

usuario, o bien de manera aleatoria por el sistema), se tienen las siguientes

limitaciones :

Número mínimo y máximo de procesos a repartir (tamaño del cromosoma):

mínimo: 2 procesos máximo: 100 procesos

Número mínimo y máximo de procesadores donde se repartirán los procesos:

mínimo: 2 procesadores máximo: 100 procesadores

este número es el tamaño 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 número máximo.

Número mínimo y máximo de generaciones:

mínimo: 5 generaciones máxim’o: 1000 generaciones

LUIS JESUS BONNETAYALA 16 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 19: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Probabilidad de Mutación:

mínimo: 0.00 YO máximo: 0.09%

Probabilidad de Cruzamiento:

mínimo: 0.0% máximo: O. 1 YO

Tanto para los costos de comunicación entre procesos, así como para

los costos de ejecución los valores deberán ser enteros y serán calculados con

anterioridad, con algún otro criterio, lo que le da el carácter de estático a este

algoritmo, al mantenerlos fijos durante todo el proceso.

DESCRIPCIÓN DE LA EJECUCIÓN DEL PROGRAMA

Después de haber proporcionado los datos, el programa, ejecutará el

algoritmo genético, llevando a cabo los operadores genéticos de cruzamiento

y mutación entre los cromosomas, los cuales serán seleccionados de manera

aleatoria. Al final de cada generación se proporcionará al mejor elemento de

la población que se haya encontrado en dicha generación, el mejor elemento

será aquel que tenga el menor tiempo de ejecución.

Básicamente el programa del algoritmo genético principal consiste en:

Un proceso de captura de información.

Un proceso de ejecución de los algoritmos genéticos

Un proceso de presentación de resultados.

El punto de interés para nosotros es el proceso de los algoritmos

genéticos, el cual proporcionándole 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

Page 20: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR

aleatoria, en cada generación. 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

ejecución), en cada uno de estos 20 cromosomas, para después hacer

cruzamiento y mutación de todos los cromosomas en la generación presente,

de acuerdo a las probabilidades de mutación y cruzamiento proporcionadas

anteriormente por el usuario o bien de manera aleatoria.

Por último se identifica al mejor individuo de la población que es el

cromosoma con mejor “calidad” es decir el que tiene menor costo o menor

tiempo de ejecución.

Después se proporcionan las 5 mejores soluciones (individuos)

encontradas en el total de las generaciones, así como el número de la

generación donde se encontró y el valor de su tiempo de ejecución.

LUIS JESUS BONNET AYALA 18 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 21: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 genético principal se

hicieron con el propósito de obtener soluciones distintas a las obtenidas con

este algoritmo genético y compararlas para obtener un parámetro con el cual

decidir cuál solución es mejor.

VARIACION: “PASAR EL MEJOR SIEMPRE”

Una de las variaciones importantes fue la de COPIAR el mejor

cromosoma encontrado en la presente generación (el cual cuenta con el menor

tiempo de ejecución, es decir con el menor costo), a la siguiente generación

en cada una de las generaciones, así como el tamaño de la población en cada

generación es constante (20 cromosomas), se tiene que las generaciones

subsecuentes se van quedando sólo con los mejores cromosomas los cuales

participarán en una competencia por sobrevivir y pasar a la siguiente

generación (la denominada selección natural). Probablemente se alcanza más

rápidamente el “mejor cromosoma” en el total de generaciones dado. La

ventaja de esta solución es que requiere de menos tiempo en converger a la

mejor solución, la desventaja es que requiere muchos más recursos en

memoria pues siempre se debe mantener una copia de los mejores

cromosomas, además el algoritmo se vuelve mucho más complejo pues la

LUIS JESUS BONNETAYALA 19 ASESOR: Dra. GRACIELA ROUANALONSO

Page 22: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 cuáles cromosomas son los que pasarán a la siguiente

generación es bastante complicada. Así mismo el criterio de paro ahora

será: cuando se haya alcanzado un número de generaciones proporcionado de

ante mano, sin encontrar una mejor solución a la actual, el algoritmo deberá

parar y emitir sus resultados, es posible que se converja muy rápidamente a la

solución pero también puede ser que el algoritmo nunca termine, es decir que

nunca converja a una solución.

Al final se puede alcanzar la misma solución que con el algoritmo

genético principal , quizás en menos tiempo.

VARIACION: “SELECCIÓN ALEATORIA”

Esta variación consiste en seleccionar de manera aleatoria los

cromosomas a participar en la mutación y en el cruzamiento. Dicha variación

no ofrece muchas ventajas y no es muy diferente al algoritmo genético

principal puesto que este último maneja la mutación y el cruzamiento de

acuerdo a su probabilidad respectiva, además de seleccionar las 10 parejas de

cromosomas a cruzarse y sufiir mutación 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 población 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 generación no importa

LUIS JESUS BONNET AYALA 20 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 23: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN 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 variación de selección aleatoria, provoca exactamente

los mismo resultados en lo que se refiere en la velocidad de convergencia a la

mejor solución, así como en recursos que el algoritmo genético principal.

La mejora a esta variación se explicará en las siguientes líneas.

VARIACION: c c SELECCI~N NATURAL”

Esta variación muestra claramente el espíritu de llamar a estos

algoritmos “genéticos” de acuerdo al nombre dado a aquellos fenómenos que

tienen que ver con la selección natural, es decir, “La supervivencia de los más

aptos”. ¿Por que se menciona lo anterior? , por el echo de que esta variación

escogerá a los mejores cromosomas dentro de la población para “sufrir” los

procesos de cruzamiento y mutación. En un principio sería natural (para los

seres humanos), esperar que de el cruzamiento de los dos mejores padres

surgieran un par de hijos que heredasen las mejores características 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 genéticos, 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

implementación, no ofrece ninguna ventaja con respecto al algoritmo genético

principal, proporcionando los mismos resultados que este.

LUIS JESUS BONNET AYALA 21 ASESOR: Dra. GRACIELA R O M N ALONSO

Page 24: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 variación importante, al

algoritmo genético principal es la de implementarlo de manera que se ejecute

simultáneamente en distintos procesadores, lo que reduciría el tiempo de

respuesta drásticamente y muy probablemente los recursos necesarios para

ejecutar los algoritmos genéticos (en especial para el problema de

repartición), sean mucho menores al repartir las cargas de trabajo entre varios

procesadores. Sin embargo esto podría implicar un aumento en cuanto a la

complejidad del diseño de los algoritmos genéticos, al tener que solucionar

los problemas inherentes a la ejecución en paralelo.

Así como se han descrito estas variaciones, es posible encontrar

muchas más, las cuales podrán ser tema de estudios más avanzados en el

campo de los algoritmos genéticos en cuanto a su aplicación a problemas

específicos, lo cual no es la intención de este documento.

LUIS JESUS BONNET AYALA 22 ASESOR: Dra. GRACIELA ROUAN ALONSO

Page 25: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Aunque el programa “LOS ALGORITMOS GENETICOS COMO

SOLUCION AL PROBLEMA DE REPARTICION ESTATICA DE CARGA

EN UN SISTEMA MULTIPROCESADOR”, ya trae mucha ayuda en línea 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

extensión: .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 podría llamarse:

AG (Algoritmos Genéticos)

Esto lo podemos hacer tecleando lo siguiente:

1.- c:s ($ significa presionar la tecla enter)

2.-mkAGJ

3.- cd A G J

LUIS JESUS BONNET AYALA 23 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 26: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR

4.- copy a:\*.* J

Una vez copiados todos los archivos a la unidad C, lo mandamos

ejecutar tecleando la siguiente instrucción:

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 presentación

que en realidad únicamente es un adorno para la interfaz gráfica del

programa.

En seguida se presenta una pantalla como esta:

LUIS JESUS BONNET AYALA 24 ASESOR: Dra. GRACIELA ROUAN ALONSO

Page 27: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Debemos elegir una de las 2 opciones que se piden:

1 .- Información proporcionada por el usuario o bien

2.- Información proporcionada por el sistema de manera aleatoria.

Dicha elección se hace presionando el número 1 +J o bien el número 2 J

según nuestra elección. (Asegurarse de que el teclado numérico se encuentra

activo).

OPCION 1:

Es importante señalar que si se elige la opción número 1 el usuario

proporcionará los datos con los cuales trabajará el algoritmo genético, y a

partir de los cuales se calcularán las soluciones, sin embargo tanto en esta

opción como en la opción 2 (de modo aleatorio) se puede proporcionar la

información si así se desea de modo aleatorio o bien dada por el usuario, por

LUIS JESUS BONNET AYALA 25 ASESOR: Dra. GRACIELA ROMANALONSO

Page 28: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE WESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR

ejemplo si en un determinado campo se desea obtener un número aleatorio se

debe oprimir únicamente la tecla enter +I y el programa proporcionará el

número de manera aleatoria. Si se desea proporcionar un número en un

determinado campo se puede teclear dicho número el cual será registrado

únicamente hasta que se presione la tecla enter J, lo que nos permite borrar el

número con la tecla backspace t cuantas veces sea necesario.

La diferencia entre la opción 1 y la 2 consiste básicamente en los

límites permitidos de procesos para el modo 1 los cuales deben ser menores

de 10, para el número total de procesos, por lo tanto el usuario debe contar

con los siguientes datos a la mano:

Tamaño de la malla de procesadores, N x M , donde N y M deberán ser

menores a 1 O para tener como límite una malla de 1 O0 procesadores.

(Si se eligen menos de 10 procesos)

Costo de computación para cada proceso.

Costo de comunicación entre cada proceso.

El tamaño de la malla de procesadores dado en la multiplicación 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

Page 29: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Como podemos apreciar en la figura anterior se nos pide que

proporcionemos:

El tamaño de la malla

El número de procesos

El número de generaciones

La probabilidad de mutación

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 número que

corresponde a la secuencia desde O hasta el número total de procesos menos

uno, que se haya elegido.

LUIS JESUS BONNETAYALA 27 ASESOR: Dra. GRACIELA ROUANALONSO

Page 30: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 fácilmente el proceso 3 tiene un costo de

computación de 9 , el proceso O un costo de computación de 10 y así

sucesivamente para todos los procesos.

PROPIEDADES DE LAS TABLAS:

Cabe señalar 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

opción de poder llenarla nuevamente. Una casilla en la cual no se teclee

ningún valor y se presione el la tecla J proporcionará un valor de O, (no

LUIS JESUS BONNET AYALA 28 ASESOR: Dra. GRACIELA ROAUN ALONSO

Page 31: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MLTLTIPROCESADOR

proporciona un número aleatorio como en los campos de información que no

son capturados en una tabla).

Esto aplica para todas las tablas a llenar.

A continuación se presenta la siguiente pantalla:

Aquí se nos pide llenar una tabla de costos de comunicación 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 comunicación 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 también contiene a cada

uno de los procesos. Para ahorrar tiempo Únicamente se llenan los valores de

los costos de comunicación entre procesos i, j ya que son iguales a los de j, i

LUIS JESUS BONNET AYALA 29 ASESOR: Dra. GRACIELA R O M N ALONSO

Page 32: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

TIGACION 2 (REPORTE FINAL) ENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN

Por ejemplo para los valores elegidos para los procesos en el ejemplo

anterior. (6 procesos) la tabla parcialmente llena podría lucir así:

5

4

5

3

O

Lo que significaría que el proceso O con el proceso 5 tiene un

costo de comunicación de 4, que es el mismo costo para el proceso 5 con el

proceso O, y así para cada uno de los procesos.

Cabe señalar que este proceso de captura de la información de los

costos de comunicación entre procesos se vuelve engorroso, tedioso y

aburrido en cuanto más aumenta el número de procesos a repartir, por

ejemplo si se hubiese elegido un número de procesos de 20 o más esto se

convierte en un proceso aburrido además que el manejo del gráfico de la tabla

a llenar no cabría 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 opción de poder leer los datos de las tablas de un

archivo llenado anteriormente por otro programa o bien por el mismo, con la

intensión de automatizar y agilizar este proceso.

La distancia entre el procesador i y el procesador j se define como: el

menor número de ligas entre el procesador i y el procesador j, que forman un

LUIS JESUS BONNETAYALA 30 ASESOR: Dra. GRACIELA ROUANALONSO

Page 33: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORlTMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTPROCESADOR

camino entre estos dos procesadores. Esta distancia es calculada

automáticamente por el programa. Esto se estará realizando cuando aparece la

siguiente pantalla:

Si se eligió un número de procesos menor de 10 se puede observar la

comunicación entre los procesos como ejemplo se muestra la siguiente figura:

LUIS JESUS BONNET AYALA 31 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 34: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

En la siguiente figura podemos apreciar que se encuentran conectados

20 procesadores en una topología de malla. Si el tamaño elegido de la malla

es menor de 25 procesadores, será posible ver esta inter - conección como en

la presentación de la siguiente pantalla:

LUIS JESUS BONNET AYALA 32 ASESOR: Dra. GRACIELA ROMANALONSO

Page 35: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

Se presenta a continuación la siguiente pantalla:

Aquí se nos proporcionan los valores con los cuales se ejecutará el

Algoritmo Genético, se nos avisa que el proceso podría durar hasta 9 minutos

dependiendo principalmente de los valores de el número de procesos y el

número de generaciones elegido. Como en el proceso de captura de la

información por parte del usuario se encuentra restringido a un número

pequeño de procesos (hasta 10). Esta advertencia sólo aplica cuando se tiene

un número grande de procesos y generaciones.

Se pide elegir una de 2 opciones:

1 .-Ejecutar Algoritmo Genético

2.- Cancelar

LUIS JESUS BONNETAYALA 33 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 36: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

LEMA DE REPARTICIÓN

Al presionar el número 1 .J se comenzará a calcular las mejores formas

de repartir los procesos en los procesadores, utilizando los Algoritmos

Genéticos. Se pide esperar un momento y en unos instantes aparecerá la

siguiente pantalla:

Aquí se presentan los tiempos de ejecución para cada una de las 5

mejores soluciones encontradas. Las cuales se buscaron en el número de

generaciones que se eligió anteriormente.

El número de generación en que se encontró cada solución y la mejor

solución 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

Page 37: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR

Si el tamaño de la malla es menor de 25 se podrá ver la siguiente pantalla:

Esta pantalla corresponde a la mejor solución encontrada, aquí

podemos ver los procesos que se repartieron en cada uno de los procesadores,

así como el costo de esa repartición y la generación 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 botón a la mejor solución y el

séptimo botón a la pantalla anterior. El icono de la derecha terminará la

ejecución 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

Page 38: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE FSPARTICIÓN

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 botón izquierdo del mouse sobre el

botón deseado de esta pantalla.

Cabe señalar que en cada una de las 5 pantallas correspondientes a cada

una de las 5 soluciones (incluyendo la mejor solución), la pantalla es diferente

con respecto a las demás en cuanto a la repartición de los procesos en cada

uno de los procesadores.

Por último si se presiona el botón 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 información a los algoritmos genéticos De manera

aleatoria o bien proporcionada por el usuario, con la intensión de hacer

nuevos cálculos.

OPCION 2:

Si se optó por elegir la opción número 2 el programa se ejecutará

automáticamente, es decir, el sistema proporcionará de manera aleatoria todos

los datos correspondientes a las distancias de entre los procesadores y en

general a la información de las tablas de costos de comunicación entre

procesos y los costos de ejecución de cada proceso, únicamente el usuario

deberá proporcionar las probabilidades de mutación, cruzamiento, tamaño de

la malla , número de procesadores y número de generaciones si así lo desea,

pudiendo optar en cada cazo por obtener un valor aleatorio proporcionado por

la computadora.

LUIS JESUS BONNETAYALA 36 ASESOR: Dra. GRACIELA R O W ALONSO

Page 39: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE JNWSTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN

En términos generales podemos considerar que los Algoritmos

Genéticos son técnicas de búsqueda aleatoria que imitan a los procesos

observados en la evolución natural. Combinan la supervivencia de los más

aptos (o mejores) entre estructuras de soluciones con un estructurado cambio

de información aún aleatorizado.

Los Algoritmos Genéticos difieren de las técnicas de optimización

tradicionales en muchos aspectos. Ellos trabajan con una codificación de las

variables más que con las variables en sí mismas, y utilizan las reglas de

transición probabilística para moverse de una población de soluciones a otra.

La más interesante e importante característica de los Algoritmos Genéticos es

que ellos utilizan tan solo evaluaciones de la función objetivo. Esto es, los

Algoritmos Genéticos no utilizan ninguna información sobre

diferenciabilidad, convexidad o alguna otra característica auxiliar. Esto hace

que los Algoritmos Genéticos sean fáciles de utilizar y de implantar en gran

variedad de problemas de optimización.

La aplicación de los algoritmos genéticos a problemas de investigación

de operaciones se ha limitado debido a los dominios factibles complejos.

Dado un problema de optimización, frecuentemente el paso más dificil en la

aplicación del Algoritmo Genético es el codificar las soluciones tal que el

apareamiento de soluciones factibles de por resultado soluciones factibles.

Lo que nos lleva a que las técnicas para la codificación de soluciones

varían dado el tipo de problema, en la mayoría de los casos involucra cierta

cantidad de arte. Por lo general para problemas enteros 0-1, las soluciones se

representan típicamente por medio de una cadena de bits de longitud igual al

LUIS JESUS BOhWET AYALA 37 ASESOR: Dra. GRACIELA ROUANALONSO

Page 40: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN

número de variables en el problema, digamos n, donde cada posición de la

cadena puede tomar el valor O Ó 1, (en terminología genética) cada posición

es un gene y el valor en esa posición es un allele. Esto resulta en un espacio

de búsqueda de cardinalidad 2”.

Los algoritmos genéticos son buenos candidatos de eficientes

estrategias heurísticas. También los algoritmos genéticos son técnicas de

búsqueda estocásticos, presentados por Holland hace aproximadamente 25

años, desde entonces han evolucionado favorablemente al grado de que día a

día se agregan más y más investigadores a este tipo de algoritmos, los cuales

se inspiran en el sistema natural de la evolución. El diseño acelerado y cada

vez mejor de las computadoras, ha hecho de los algoritmos genéticos un tema

muy popular en los últimos años en lo que se refiere a las aplicaciones para la

multiprogramación de dichas máquinas. Recientemente se han aplicado

muchas optimizaciones de tipo combinatorio a problemas en varios campos,

tales como, por ejemplo, el problema del agente viajero, la optimización de

conexiones y conectividad de redes neuronales, y clasificación de sistemas.

Los algoritmos genéticos más comunes, con grandes poblaciones toman un

gran tiempo de ejecución. Sin embargo en este trabajo se propone un

algoritmo que provee una solución rápida y eficiente al problema de

distribución estática de carga; dicha solución simula un sistema

multiprocesadores con varias tareas asignadas (llamadas procesos) , tal

solución es implementada en un sólo procesador. La idea principal para el

desarrollo del presente trabajo fue tomada de T.MUNTEAN y E-G. TALBI

investigadores de Laboratorie de Génie Informatique / IMAG; University of

LUIS JESUS BONNET A YALA ASESOR: Dra. GRACIELA ROMAN ALONSO

38

Page 41: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 característica importante de los algoritmos genéticos es que

pueden ser usados para gran variedad de problemas de optimización

combinatorios, puesto que no hacen suposiciones a cerca del espacio que

están buscando. Actualmente se están utilizando para resolver problemas de

optimización 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

Número de

Generacione

500

500

500

700

500

1000

50

50

1 O00

1 O00

10

U GENERA

De la soluci.

237

364

49

173

205

280

50

47

589

208

3

Los ejemplos probados fueron:

Un gran número de generaciones (aprox. lOOO), con un gran número de

procesos a repartir (aprox. 100).

LUIS JESUS BONNETAYALA 39 ASESOR: Dra. GRACIELA R O M N ALONSO

Page 42: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETEOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MULTIPROCESADOR

Un gran número de generaciones con un número pequeño de procesos a

repartir.

Estos ejemplos fueron probados con distintos valores de probabilidades

de mutación y cruzamiento.

De la tabla es importante hacer notar que cuando se tiene un gran

número de generaciones, un gran número de procesos a repartir y una alta

probabilidad tanto de mutación como de cruzamiento, el tiempo de ejecución

se eleva considerablemente de cuando no se tienen estas características.

Sin embargo cuando se tiene un número grande de generaciones, se

puede tener la confianza de que la solución obtenida se acerca mucho a la

óptima, puesto que el espacio de búsqueda es mayor. Lo anterior se nota

claramente en la columna llamada: Numero de Generación de la solución.

Este número por lo general se encuentra arriba de la generación número 100.

El programa se probó cuando existe comunicación Únicamente entre

algunos de los procesos (por ejemplo: únicamente dos de ellos se

comunican).

Se obtuvo como resultado que los procesos que tenían un costo de

comunicación muy grande, nunca se repartían en el mismo procesador,

mientras que los que tenían un costo de comunicación muy pequeño o nulo

eran repartidos en el mismo procesador en las distintas soluciones

presentadas.

LUIS JESUS BONNETAYALA 40 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 43: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALCKXITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA h4LJLTiPROCESADOR

El programa fue escrito en el lenguaje “C”, las pruebas que se le

hicieron al algoritmo genético fueron realizadas en una máquina con

procesador PENTIUM de 100 MHz. Y con 16 MB de memoria RAM. Estos

datos se proporcionan para poder hacer después comparativas entre los

tiempos de ejecución y respuesta de los algoritmos genéticos para el problema

de repartición estática de procesos en un sistema multiprocesador.

A continuación se presenta el listado completo referente a la

manipulación de los datos por parte de los algoritmos genéticos. Cabe hacer

énfasis en que dicho listado puede presentar mejoras, y variaciones, para su

ejecución más eficiente, o bien con la intención de ahorrar recursos como la

memoria. Puesto que la intención principal, es el estudio de este tipo de

algoritmos en especial la aplicación para el problema de repartición estática

de carga, no se ha invertido mucho esfuerzo en la interfaz gráfica ni en

detalles de programación.

LUIS JESUS BONNETAYALA 41 ASESOR: Dra. GRACIELA ROMAN ALONSO

Page 44: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MüLTPROCESADOR

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

// regresa el costo de comunicación 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

Page 45: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN 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 más adelante

while(indice<procesadores)

LUIS JESUS BONNET A YALA ASESOR: Dra. GRACIELA ROMAN ALONSO

43

Page 46: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FiNAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN ESTATICA DE CARGA EN UN SISTEMA MüLTiPROCESADOR

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 R O M N A L O N S O

Page 47: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROBLEMA DE REPARTICIÓN

{ //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 o m o s o m a ~ 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

Page 48: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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

Page 49: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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 c r o m o s o m a 2 ~ P R O ] , i n t *

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 111 00;

LUIS JESUS BONNETAYALA 47 ASESOR: Dra. GRACIELA ROUANALONSO

Page 50: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

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

Page 51: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN 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

Page 52: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 (REPORTE FINAL)

ESTATICA DE CARGA EN UN SISTEMA MULTII’ROCESADOR “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICI~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 Selectión

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 Año 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”, Master’s Project Rep., NJIT, Newark, NJ, 1993.

LUIS JESUS BONNET AYALA 50 ASESOR: Dra. GRACIELA R O M N ALONSO

Page 53: (REPORTE FINAL) ALGORITMOS PROBLEMA DE …148.206.53.84/tesiuami/uam5040.pdf · Parte 4. Manual del Usuario. ... genéticos para obtener siempre la mejor manera de repartir un determinado

PROYECTO DE INVESTIGACION 2 WPORTE FiNAL) “LOS ALGORITMOS GENETICOS COMO SOLUCION AL PROBLEMA DE REPARTICIÓN 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, Adaptatión in Natural and Artificial System,

Ann Arbor, MI: University of Michigan Press, 1975.

L. Davis “Job shop scheduling with genetic algorithms” . Proc. 1‘ Int. Conf. Genetic

Algorithms and Their Applications, July 24-26, 1985, Carnegie-Mellon University,

Pittsburgh, PA, pp 136-140.

LUIS JESUS BONNETAYALA 51 ASESOR: Dra. GRACIELA ROMAN ALONSO