63
INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO Departamento de Informática ALGORITMOS GENÉTICOS ESCALONAMENTO AUTOMÁTICO DE REUNIÕES ESCOLARES Trabalho curricular realizado no âmbito da disciplina de PROJECTO 5º ano da Licenciatura em Engenharia Informática - Computadores e Sistemas 1999/2000 Eliseu Edgar da Silva Rodrigues

ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Embed Size (px)

Citation preview

Page 1: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO

Depar tamento de Informática

ALGORITMOS GENÉTICOS

ESCALONAMENTO AUTOMÁTICO DE REUNIÕES ESCOLARES

Trabalho curricular realizado no âmbito da disciplina de

PROJECTO

5º ano da Licenciatura em Engenharia Informática - Computadores e Sistemas

1999/2000

Eliseu Edgar da Silva Rodrigues

Page 2: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Agradecimentos

Aos meus orientadores, Doutor Carlos Ramos e Eng. Paulo Ferreira.

Ao Dr. Francisco Queirós, pelo apoio prestado.

Page 3: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Aos meus Pais e à Cristina

Page 4: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Índice

1 - Introdução ...............................................................................................................1

2 - Algoritmos genéticos...............................................................................................3

2 - 1 Inicialização ......................................................................................................9

2 - 2 Avaliação ..........................................................................................................9

2 - 3 Selecção ..........................................................................................................10

2 - 4 Reprodução .....................................................................................................13

2 - 4 - 1 Operador de recombinação......................................................................13

2 - 4 - 2 Operador de mutação...............................................................................16

2 - 5 Finalização ......................................................................................................16

3 - Escalonamento automático de reuniões escolares...................................................18

3 - 1 Descrição do Problema....................................................................................18

3 - 2 Modelo de representação .................................................................................19

3 - 3 Definição de parâmetros e penalizações...........................................................20

3 - 4 Execução do algoritmo genético ......................................................................22

3 - 4 - 1 Inicialização............................................................................................22

3 - 4 - 2 Avaliação................................................................................................22

3 - 4 - 3 Selecção.................................................................................................. 26

3 - 4 - 4 Reprodução.............................................................................................27

3 - 4 - 5 Finalização..............................................................................................29

3 - 5 Resultados.......................................................................................................29

3 - 6 Visualização de resultados...............................................................................32

3 - 6 - 1 Evolução das populações.........................................................................33

3 - 6 - 2 - Soluções................................................................................................33

4 - Conclusão..............................................................................................................36

Bibliografia.................................................................................................................38

Anexo 1 - Fundamentos teóricos e matemáticos..........................................................39

Anexo 2 - Glossário de termos técnicos ......................................................................51

Anexo 3 - Listagem do algoritmo genético.................................................................. 53

Page 5: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Introdução

1

1 - Introdu ção

O mundo à nossa volta é formado por uma enorme diversidade de formas de vida,

milhões e milhões de espécies, cada uma exibindo características particulares de

existência.

Todas estas espécies, plantas e animais têm vindo a evoluir constantemente ao longo de

milhões de anos, adaptando-se a permanentes alterações ambientais, de modo a

poderem sobreviver.

Os elementos mais fracos - menos adaptados - têm tendência a morrer, enquanto que os

mais fortes - mais adaptados - têm tendência a sobreviver e procriar, garantindo a

sobrevivência da espécie. A vida é ditada pelas leis da selecção natural

Os algoritmos genéticos, idealizados por John Holland nos anos sessenta com base nas

teorias de Darwin acerca da origem e evolução das espécies, são algoritmos de pesquisa

baseados em mecanismos de selecção natural que exploram a ideia de que os elementos

mais adaptados de um determinado conjunto têm maior probabili dade de sobrevivência

do que os menos adaptados.

Utili zando uma estrutura denominada população, formada por um conjunto de

indivíduos que representam eventuais soluções para um determinado problema em

estudo, os algoritmos genéticos vão gerando iterativamente novas populações a partir

dos indivíduos mais adaptados da população anterior, de modo a obterem uma nova

população cujos indivíduos representem, conceptualmente, um conjunto de soluções

mais apropriadas à resolução do respectivo problema. Por vezes, tendo por objectivo

evitar a estagnação da população e, de certo modo, manter a sua diversidade, os

algoritmos genéticos efectuam a introdução de novos valores na população, o que lhes

permite garantir que a procura de soluções é realizada em todo os pontos do espaço de

pesquisa do problema.

Atendendo às características dos algoritmos genéticos, pode-se considerar que

constituem uma estratégia de pesquisa apropriada para conjuntos de soluções muito

vastos e complexos.

Page 6: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Introdução

2

Estrutura do relatório

O presente relatório encontra-se dividido em quatro capítulos.

O primeiro capítulo faz uma breve introdução aos algoritmos genéticos e às suas

origens.

No capítulo seguinte é feita uma abordagem profunda aos principais conceitos

associados aos algoritmos genéticos, analisando-se os diversos mecanismos por eles

utili zados.

O terceiro capítulo expõe um caso prático de aplicação dos algoritmos genéticos - o

escalonamento automático de reuniões escolares - apresentando no final os resultados

obtidos através do uso de uma aplicação especificamente desenvolvida para o problema,

assim como um estudo comparativo entre vários conjuntos de parâmetros.

Por fim, no último capítulo, é feita uma conclusão muito resumida onde se relembram

os principais temas abordados.

Com o objectivo de explicar os fundamentos teóricos e matemáticos que suportam os

algoritmos genéticos, foi efectuado um breve estudo que, por não se enquadrar

directamente com o caso prático que originou o presente trabalho, se encontra em

anexo.

Page 7: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

3

2 - Algoritmos genéticos

Os algoritmos genéticos evidenciam-se no campo dos métodos de pesquisa e

optimização através da assimilação do paradigma Darwiniano da evolução das espécies,

estando a sua terminologia associada a conceitos essenciais da genética.

O conceito de população Mendeliana como conjunto de indivíduos da mesma espécie é

alargado a espécies artificiais cujos indivíduos são, normalmente, representados por

sequências de números - genótipo - que constituem o seu património genético,

determinando as suas características - fenótipo.

Os problemas de optimização estão normalmente associados à satisfação de restrições

que definem um universo intrínseco de soluções. Os algoritmos genéticos são

responsáveis por determinar a solução óptima para o problema, ou, dependendo das

limitações impostas e do tempo disponível para execução do algoritmo, uma solução

aceitável. Os elementos da população - designados por indivíduos ou cromossomas -

correspondem a eventuais soluções, ligando o espaço real das soluções associadas ao

problema que se pretende optimizar a um espaço fictício de pesquisa. Os algoritmos

genéticos actuam sobre o espaço fictício, interpretando os resultados no espaço real

através de uma função de correspondência.

À semelhança do que acontece na evolução natural, os cromossomas, através dos genes,

constituem a base material da hereditariedade. Os genes são elementos que

representando determinados valores - normalmente numéricos - em sequência formam

os cromossomas.

Nos algoritmos genéticos a reprodução dos cromossomas é efectuada em função de uma

selecção artificial, considerando-se mais adaptados os indivíduos que melhor satisfaçam

as restrições impostas pelo problema.

A avaliação do nível de adaptação dos indivíduos às restrições impostas é efectuada

através de uma função, denominada função de avaliação, que associa a cada indivíduo

da população um determinado valor numérico representativo da sua adaptação à

resolução do problema. Após a avaliação da adaptação dos indivíduos da população é

realizada, de forma proporcional a essa adaptação, a selecção de pares de cromossomas

para reprodução.

Page 8: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

4

A reprodução cromossomática consiste na troca de partes complementares de

cromossomas. Cada par de cromossomas ascendentes gera um novo par de

cromossomas descendentes, formado por sequências numéricas resultantes da

contribuição mútua e complementar dos seus ascendentes. Com o objectivo de

assegurar a existência de diversidade na população, existe um mecanismo de mutação,

através do qual o locus1 de determinados genes pode ser ocupado por um novo gene -

alelo - proveniente do património genético do problema.

A reprodução dos indivíduos de uma população promove o aparecimento de novos

indivíduos - descendentes - que constituem uma nova população assinalando o termo de

um ciclo do algoritmo genético.

O ciclo de um algoritmo genético pode ser genericamente descrito do seguinte modo:

• Geração aleatória de n cromossomas que formam a população inicial - Inicialização;

• Avaliação individual dos cromossomas;

• Selecção de n/2 pares de cromossomas;

• Reprodução - recombinação e mutação - dos pares de cromossomas seleccionados;

• Finalização.

Ao longo das próximas secções serão analisados, com base no caso concreto do

escalonamento automático de reuniões escolares, os aspectos essenciais da estrutura de

um algoritmo genético e as suas operações básicas: a inicialização, a avaliação, a

selecção, a reprodução e a finalização.

Descrição do problema

Admita-se, como exemplo, uma situação em que existem disponíveis dois dias para

efectuar a marcação de reuniões escolares de oito turmas. Em cada dia é possível

realizar no máximo quatro sessões de reunião, duas de manhã e duas de tarde, podendo-

se verificar a ocorrência de reuniões em simultâneo desde que não envolvam turmas

com docentes comuns.

1 posição ocupada pelo gene relativamente ao cromossoma.

Page 9: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

5

O corpo docente das oito turmas é seguidamente apresentado na tabela 1.

Turma Professor

P1 (Director de Turma)

P2

P3 T1

P4

P5 (Director de Turma)

P6

P7 T2

P8

P1

P2 (Director de Turma)

P7 T3

P8

P3 (Director de Turma)

P4

P5 T4

P6

Turma Professor

P1

P2

P5

T5

P6 (Director de Turma)

P3

P4 (Director de Turma)

P7

T6

P8

P1

P4

P5

T7

P8 (Director de Turma)

P2

P3

P6 T8

P7 (Director de Turma)

Tabela 1 - Corpo docente

O escalonamento das reuniões escolares é condicionado pela satisfação de algumas

normas e restrições, umas de ordem física - impossibili dade por parte dos professores de

assistir a várias reuniões em simultâneo - e outras de ordem pedagógica - os professores

que exercem cargos de direcção de turma não devem ser solicitados para sessões a

realizar imediatamente após o término de reuniões relativas a turmas em que exerçam

esse cargo.

Na elaboração do calendário de reuniões devem ainda, sempre que possível, ser

efectuados esforços no sentido de minimizar o número total de sessões a realizar e o

número total de deslocações dos docentes.

Seguidamente são enumeradas as restrições propostas para a resolução do problema em

análise.

Page 10: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

6

R1. Os professores não podem assistir a várias reuniões em simultâneo;

R2. Os professores não devem assistir a sessões imediatamente após o término de

reuniões relativas a turmas em que exerçam o cargo de director de turma;

R3. O número total de sessões de reunião não deve ser superior ao número máximo de

turmas por professor;

R4. O número total de deslocações de cada professor não deve ser superior ao valor da

divisão do número de turmas a seu cargo pelo número máximo disponível de

sessões de reunião por dia, arredondado por excesso.

Modelo de representação

A escolha do modelo de representação de um determinado problema assume elevada

importância na sua resolução, devendo ser efectuada - uma vez que estreita

inevitavelmente o modo de pesquisa e representação das soluções - em função do

método que se pretende utili zar e das suas especificações concretas.

No caso particular dos algoritmos genéticos, atendendo a que operam sobre sequências

de valores codificados, é determinante que os problemas sejam bem representados pois

das suas representações dependem a pesquisa e a qualidade das soluções.

O modelo de representação dos algoritmos genéticos consiste na codificação de

soluções em sequências de valores que posteriormente serão interpretados por uma

função de avaliação. Os valores utili zados na codificação das soluções são

normalmente, sem perda de consistência dos fundamentos teóricos dos algoritmos

genéticos, de um dos seguintes tipos: binário - são usados os números 0 e 1; natural -

são usados números naturais; real - são usados números reais.

A escolha do modelo de representação deve ser realizada tendo em consideração o

princípio dos blocos construtores significativos2 e o princípio dos alfabetos mínimos3.

2 "Principle of meaningful building blocks" - segundo este princípio, a codificação deve ser escolhida de

modo a que os esquemas de pequena ordem - com poucas posições fixas - sejam relevantes para o

problema em análise. [Goldberg, 89]. 3 "Principle of minimal alphabets" - segundo este princípio deve ser escolhido o alfabeto de menor

cardinalidade que permita assegurar uma expressão natural do problema. [Goldberg, 89].

Page 11: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

7

Seguidamente, é apresentado um possível modelo de representação para o problema em

análise - o escalonamento automático de reuniões escolares.

O conjunto H4, constituído pelos valores {1, 2, 3, 4, 5, 6, 7, 8}, representa os oito

períodos de tempo disponíveis para marcação de reuniões, correspondendo o valor 1 ao

primeiro período do turno da manhã do primeiro dia, o valor 2 ao segundo período do

turno da manhã do primeiro dia e, análoga e sucessivamente, o valor 8 ao último

período do turno da tarde do segundo dia, como se demonstra na tabela 2.

1º Dia 2º Dia

1º Tempo 1 5 Turno da Manhã

2º Tempo 2 6

1º Tempo 3 7 Turno da Tarde

2º Tempo 4 8

Tabela 2 - Períodos de tempo disponíveis para marcação de reuniões

O calendário de reuniões é representado por sequências numéricas de oito valores,

eventualmente repetidos, contidos no conjunto H. O primeiro valor identifica o período

de tempo em que se realizará a reunião referente à turma 1, o segundo valor identifica o

período de tempo em que se realizará a reunião referente à turma 2 e, sucessivamente, o

último valor da sequência identifica o período de tempo em que se realizará a reunião

referente à turma 8, representando cada sequência numérica uma eventual solução para

o problema.

Analisando, por exemplo, uma sequência constituída pelos valores 6 3 2 7 1 1 8 7,

verifica-se que a reunião referente à turma 1 se realizará no sexto período de tempo, a

reunião referente à turma 2 se realizará no terceiro período de tempo e, por analogia, a

reunião referente à turma 8 se realizará no sétimo período de tempo.

4 David E. Goldberg utili za na sua notação a letra H como abreviatura da palavra hiperplano.

Page 12: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

8

1º Dia 2º Dia

T5 1º Tempo

T6

Turno da Manhã

2º Tempo T3 T1

T4 1º Tempo T2

T8 Turno da Tarde

2º Tempo T7

Tabela 3 - Calendár io de reuniões resultante da sequência numérica 6 3 2 7 1 1 8 7

Observando a tabela 3 é possível identificar a ocorrência de reuniões simultâneas no

primeiro período de tempo do turno da manhã do primeiro dia e no primeiro período de

tempo do turno da tarde do segundo dia, verificando-se no segundo caso a não

satisfação de uma restrição de ordem física, dado que as turmas 4 e 8 cujas reuniões se

realizam simultaneamente têm os docentes 3 e 6 em comum.

Apesar do problema em análise ser bastante simples, na medida em que é constituído

por um pequeno subconjunto de turmas e professores, o seu espaço de pesquisa é

composto por 16.777.216 pontos distintos5, o que torna impraticável a exploração

sistemática e extensiva de todas as soluções.

Operações básicas

O mecanismo dos algoritmos genéticos é formado pelas seguintes operações básicas:

• Inicialização;

• Avaliação;

• Selecção;

• Reprodução;

• Finalização.

5 Atendendo a que existem oito turmas e que as respectivas reuniões podem ocorrer num de oito períodos

de tempo, a dimensão do espaço de pesquisa é determinada através da expressão 8×8×8×8×8×8×8×8 = 88.

Page 13: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

9

2 - 1 Inicialização

O processo de inicialização dos algoritmos genéticos consiste na geração aleatória de n

sequências numéricas - cromossomas - formadas por oito elementos6 - genes -

representativos de valores contidos no alfabeto7 do problema, eventualmente repetidos.

Cada sequência numérica representa um calendário de reuniões - fenótipo - codificado

segundo o modelo de representação - genótipo -, constituindo o conjunto de todas as

sequências geradas - indivíduos - a população inicial.

O número de indivíduos das populações iniciais - n - é determinante na resolução dos

problemas, exercendo influência directa sobre a eficácia dos algoritmos. Populações

constituídas por um número demasiado pequeno de indivíduos convergem rápida e

prematuramente para estados em que todos os cromossomas são semelhantes,

implicando que os espaços de pesquisa das soluções não sejam devidamente explorados.

Populações com um número elevado de indivíduos incrementam exponencialmente o

tempo de execução do algoritmo genético, sem que se verifiquem ganhos significativos

no processo de convergência.

O número de indivíduos de uma população pode ser idealizado, segundo formulações

teóricas, através de cálculos baseados na dimensão do espaço de pesquisa de soluções,

na variância do processo de selecção e em conhecimentos relativos à evolução das

soluções.

2 - 2 Avaliação

O processo de avaliação tem por objectivo, como o próprio nome indica, determinar o

valor de adaptação das soluções geradas.

Através de uma função de avaliação, especificamente desenvolvida para cada problema

de optimização, é efectuada a avaliação de todos os indivíduos da população, no

sentido de aferir as suas adaptações.

6 Um elemento por cada turma. 7 Conjunto de valores - alelos - que cada gene pode assumir. No caso em análise, o alfabeto é formado

pelo conjunto de valores { 1 2 3 4 5 6 7 8} .

Page 14: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

10

A função de avaliação, também designada por função objectiva, pode ser de natureza

matemática - o seu valor é calculado através de expressões matemáticas - ou de natureza

empírica - o seu valor é calculado através de penalizações resultantes da não satisfação

de restrições. No caso em análise - o escalonamento automático de reuniões escolares -

a função de avaliação f(c), seguidamente apresentada, é de natureza empírica.

44332211

1)(

RPRPRPRPcf

×+×+×+×=

Os valores P1, P2, P3 e P4 correspondem, respectivamente, aos valores das

penalizações atribuídas ao cromossoma c por cada infracção - não satisfação - das

restrições R1, R2, R3 e R4, anteriormente enumeradas.

2 - 3 Selecção

Após a avaliação, cada indivíduo da população tem associado um valor numérico que

traduz o seu nível de adaptação às restrições do problema.

A fase de selecção, revestida de elevada importância no contexto dos algoritmos

genéticos, consiste na escolha de n indivíduos, eventualmente repetidos, para posterior

reprodução.

A escolha dos indivíduos mais adaptados da população através de um operador de

selecção determinístico aparenta garantir o nível ideal de pressão selectiva, contudo,

uma escolha demasiado elitista reduz a diversidade da população impossibili tando que

todo o espaço de pesquisa de soluções seja devidamente explorado. É importante

permitir que indivíduos pouco adaptados tenham probabili dade, embora reduzida, de ser

seleccionados.

Ao longo dos últimos anos foram propostos e estudados diversos operadores de

selecção, entre os quais assumem especial relevo os operadores de selecção

proporcional e os operadores de selecção por ordem de classificação.

Os operadores de selecção proporcional atribuem as probabili dades de selecção em

função da relação existente entre o nível individual de adaptação dos indivíduos e o

nível global de adaptação da população. Os operadores de selecção por ordem de

Page 15: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

11

classificação atribuem as probabili dades de selecção em função de uma tabela

classificativa.

Um dos métodos de selecção proporcional mais comuns é o método da roleta8, segundo

o qual a cada indivíduo i da população é atribuída uma probabili dade de selecção Ps(i),

calculada através do quociente entre a sua adaptação e o somatório das adaptações de

todos os indivíduos da população.

( ) ( )( )∑

=

=n

j

s

jf

ifiP

1

para i = 1,...,n

8 Método de selecção "Roulette Wheel Parent Selection". [Holland, 75].

I f(i) Ps(i)

1 1/2.5 0.4

2 1/4 0.25

3 1/4 0.25

4 1/10 0.1

25%

10%

40%

25%

Figura 1 - Selecção proporcional (probabili dades de selecção segundo o método da roleta)

Segundo este método a selecção de indivíduos é realizada através da simulação de n

rotações de uma roleta cujas divisões representam os n indivíduos da população. Após o

término de cada rotação, o indivíduo correspondente à divisão indicada pelo ponteiro é

seleccionado.

Page 16: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

12

Além do método da roleta foram ainda estudados outros operadores de selecção

proporcional tais como, por exemplo, o método de selecção universal estocástica9 -

semelhante ao método da roleta mas com a particularidade de que a roleta tem n

ponteiros uniformemente espaçados bastando simular uma rotação para seleccionar os n

indivíduos - e o método de selecção remanescente estocástica10 - calculado o valor da

probabili dade de selecção de um indivíduo i, a parte inteira de Ps(i) representa o número

mínimo de vezes que o indivíduo i será garantidamente seleccionado. A parte

fraccionária de Ps(i) representa a probabili dade que o indivíduo i tem de ser novamente

seleccionado para o preenchimento das posições restantes.

A evolução das populações ao longo das gerações tende a normalizar os valores de

adaptação dos indivíduos o que se traduz num decréscimo da pressão de selecção.

Fundamentados no facto de que a eficácia dos operadores de selecção proporcional

depende da existência de diferenças substanciais entre os valores de adaptação dos

indivíduos mais adaptados e os valores de adaptação dos indivíduos menos adaptados,

surgiram os operadores de selecção por ordem de classificação, cujas pressões de

selecção são independentes dos valores de adaptação dos indivíduos, não se

verificando, portanto, a ocorrência de decréscimos.

O método de selecção por torneio11 - um dos métodos de selecção por ordem de

classificação - consiste na organização de n torneios entre dois ou mais indivíduos da

população escolhidos aleatoriamente. O indivíduo seleccionado é o que estiver em

posição de superioridade no confronto directo entre os valores de adaptação.

A selecção de indivíduos pode também ser realizada através de métodos mistos

resultantes da combinação de operadores de selecção proporcionais e de operadores de

selecção por ordem de classificação. Um exemplo desses métodos de selecção é a

selecção com normalização linear, em que os indivíduos da população são ordenados

por ordem decrescente de adaptação e lhes é atribuída - segundo uma função linear -

uma probabili dade de selecção em conformidade com a posição ocupada.

9 Método de selecção "Stochastic Universal Selection" 10 Método de selecção "Stochastic Remainder Selection" 11 Método de selecção "Tournament Selection"

Page 17: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

13

i f(i) Classificação(i) Ps(i)

1 1/2.5 1 0.45

2 1/4 2 0.22

3 1/4 2 0.22

4 1/10 4 0.11

22%

11%

45%

22%

Figura 2 - Selecção com normalização linear

Os operadores de selecção podem ser complementados através do uso de mecanismos

de elitismo - técnicas através das quais um determinado subconjunto composto pelos

melhores indivíduos da população actual é automaticamente seleccionado e inserido na

nova população.

Os mecanismos de elitismo permitem aumentar significativamente o desempenho dos

algoritmos genéticos, garantindo que as melhores soluções da geração actual não se

perdem nem são destruídas durante a fase de reprodução.

2 - 4 Reprodu ção

Na fase de reprodução os n indivíduos seleccionados - progenitores - são emparelhados

dois a dois, de modo a que cada par gere dois novos indivíduos - descendentes.

O processo de reprodução é composto por dois operadores distintos - o operador de

recombinação e o operador de mutação - limitados por probabili dades de ocorrência.

2 - 4 - 1 Operador de recombinação

Os operadores de recombinação admitem várias modalidades tais como o cruzamento

num ponto12, o cruzamento em dois pontos13 e o cruzamento uniforme,14 cada uma delas

com características muito particulares.

12 "Single-point crossover". [Holland, 75]. 13 "Two-point crossover". [Davis, 91].

Page 18: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

14

A escolha do operador de recombinação deve ser efectuada tendo em consideração o

tipo de problema que se pretende resolver, pois a evolução do processo de convergência

depende do operador de recombinação utili zado.

a) Cruzamento num ponto

O operador de cruzamento num ponto selecciona aleatoriamente um ponto de corte na

estrutura dos cromossomas progenitores.

Os cromossomas descendentes são constituídos pelos genes resultantes da justaposição

das sequências complementares dos seus progenitores, definidas pelo ponto de

cruzamento.

Cromossomas progenitores Cromossomas descendentes

6 3 2 �

7 1 1 8 7 6 3 2 5 1 6 3 8

4 2 1 �

5 1 6 3 8 4 2 1 7 1 1 8 7

Ponto de corte

Figura 3 - Cruzamento num ponto

A figura 3 ilustra um exemplo do processo de cruzamento num ponto. O ponto

seleccionado para corte foi o ponto três15.

b) Cruzamento em dois pontos

O operador de cruzamento em dois pontos selecciona aleatoriamente dois pontos de

corte na estrutura dos cromossomas progenitores.

A constituição de cada um dos cromossomas descendentes é idêntica à constituição de

um dos progenitores, à excepção da sequência de genes contida entre os pontos de

cruzamento, que é idêntica à do outro progenitor.

14 "Uniform Crossover". [Syswerda, 89].

Page 19: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

15

Cromossomas progenitores Cromossomas descendentes

6 3 � 2 7 1 1 � 8 7 6 3 1 5 1 6 8 7

4 2 � 1 5 1 6 � 3 8 4 2 2 7 1 1 3 8

↑ ↑

Pontos de corte

Figura 4 - Cruzamento em dois pontos

A figura 4 ilustra um exemplo do processo de cruzamento em dois pontos. Os pontos

seleccionados para corte foram os pontos dois e seis.

c) Cruzamento uniforme

O operador de cruzamento uniforme selecciona aleatoriamente um determinado número

de genes - e respectivos locus - na estrutura dos cromossomas progenitores.

Os genes cujos locus forem seleccionados são cruzados. Os restantes mantêm-se

inalterados.

O exemplo da figura 5 permite visualizar um cruzamento uniforme. Os locus

seleccionados para cruzamento foram os locus dois, quatro, seis e sete.

Cromossomas progenitores Cromossomas descendentes

6 3 2 7 1 1 8 7 6 2 2 5 1 6 3 7

4 2 1 5 1 6 3 8 4 3 1 7 1 1 8 8

↑ ↑ ↑ ↑

Locus seleccionados

Figura 5 - Cruzamento uniforme

15 O ponto de corte pode pode-se situar entre 1 e l -1, correspondendo l ao número de genes dos

cromossomas, ou seja, ao seu comprimento (length).

Page 20: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

16

2 - 4 - 2 Operador de mutação

Após o cruzamento, cada descendente gerado pelo processo de cruzamento possui uma

estrutura ordenada de genes da mesma espécie da dos seus ascendentes.

A mutação, processada ao nível dos genes com probabili dade de ocorrência

normalmente baixa16, consiste na substituição de determinados genes dos cromossomas

por outros genes - alelos - existentes no património genético da população.

Admitamos que o gene representado pelo valor sete no quarto locus do segundo

descendente da figura 5 foi seleccionado para mutação, e que o valor dois - escolhido

aleatoriamente a partir do conjunto H = {1, 2, 3, 4, 5, 6, 7, 8} - o irá substituir.

A constituição do segundo cromossoma será então a seguinte:

Cromossoma (antes da mutação) Cromossoma (após a mutação)

4 3 1 7 1 1 8 8 4 3 1 2 1 1 3 8

Locus seleccionado

Figura 6 - Mutação

2 - 5 Finalização

Após as operações de inicialização, avaliação, selecção e reprodução, é atingida a

última operação do ciclo básico de um algoritmo genético - a finalização.

Os critérios de finalização - estabelecidos em função dos objectivos do problema a

optimizar - determinam se o algoritmo deve continuar o seu processamento, executando

mais uma iteração, ou deve ser terminado.

O término do algoritmo pode dever-se a um dos seguintes factores: foi atingida uma

solução que satisfaz todas as restrições impostas pelo problema; foi atingido o limite

máximo de iterações estabelecido para o algoritmo genético. Neste caso, uma vez que

16 Probabili dades de mutação elevadas transformariam o algoritmo genético num método de busca

aleatório.

Page 21: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Algoritmos Genéticos

17

não foi atingida nenhuma solução óptima, é eleita a solução cuja adaptação às restrições

impostas pelo problema se mostrou mais aceitável.

Figura 7 - Ciclo básico de um algor itmo genético

Selecção

Reprodução

Iniciali zação

Avaliação

Fim

Finalização ?

Sim

Não

Page 22: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

18

3 - Escalonamento automático de reuniões esc olares

Todos os anos é perdido um elevado número de horas na elaboração de calendários de

reuniões intercalares, uma tarefa de enorme complexidade que por vezes leva à

especialização de pessoas nessa área.

No decurso do presente capitulo será apresentado um estudo teórico-prático realizado

no âmbito do escalonamento automático de reuniões escolares através de algoritmos

genéticos.

3 - 1 Descrição do Prob lema

O problema da calendarização de reuniões escolares é caracterizado pela adjudicação de

períodos de tempo às turmas da escola, um a cada turma, de modo a que se realizem as

respectivas reuniões.

A adjudicação dos períodos de tempo é condicionada pela satisfação de algumas normas

e restrições de ordem física e pedagógica, enumeradas na tabela 4.

Restrição Descrição

R1 Os professores não podem assistir a várias reuniões em simultâneo.

R 2 Os professores não devem assistir a reuniões imediatamente após o término

de reuniões relativas a turmas em que exerçam o cargo de director de turma.

R 3 O número total de sessões de reunião não deve ser superior ao número

máximo de turmas por professor.

R 4

O número total de deslocações de cada professor não deve ser superior ao

valor da divisão do número de turmas a seu cargo pelo número máximo

disponível de sessões de reunião por dia, arredondado por excesso.

Tabela 4 - Restr ições propostas para o escalonamento automático de reuniões escolares

A primeira restrição justifica-se pelo facto de que é fisicamente impossível a presença

de um docente em várias reuniões em simultâneo; a segunda, de ordem pedagógica,

Page 23: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

19

fundamenta-se no facto de que após o término de uma reunião o docente que exerce o

cargo de director de turma deve ter disponibili dade de tempo para tomar eventuais

notas; as terceira e quarta restrições são importantes na medida em que permitem

minimizar o número de sessões de reunião necessárias e o número de deslocações17 dos

professores à escola.

A não satisfação das restrições enumeradas pode tornar o calendário de reuniões pouco

viável ou mesmo impossível, caso se verifiquem violações da primeira restrição.

3 - 2 Modelo de representação

O modelo de representação é codificado por sequências de números naturais

representativos dos períodos de tempo disponíveis para realização de reuniões.

Assumindo a existência de cinco dias disponíveis para realização de reuniões e que em

cada dia podem ser efectuadas quatro sessões de reunião, duas de manhã e duas de

tarde, é proposto o seguinte alfabeto

H = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}

cujo significado se pode observar na tabela 5.

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

1º Tempo 1 5 9 13 17

Man

2º Tempo 2 6 10 14 18

1º Tempo 3 7 11 15 19

Tar

de

4º Tempo 4 8 12 16 20

Tabela 5 - Períodos de tempo representados pelo alfabeto proposto

17 Esta medida assume elevada importância se for tido em conta que as reuniões intercalares geralmente

Page 24: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

20

Com base no alfabeto proposto é possível gerar a população inicial, sendo os seus

cromossomas constituídos por um número t de genes equivalente ao total de turmas

existentes na escola. O locus de cada gene representa uma turma.

O modelo matricial proposto para a representação da população do problema é

apresentado na tabela 6.

t genes

G1 G2 ... Gt-1 Gt

C1

C2

...

Cn-1

n cr

omos

som

as

Cn

Tabela 6 - Modelo matr icial proposto para representação da população

As linha da matriz são formadas por sequências numéricas codificadas - genótipo -

cujos valores representam possíveis soluções - fenótipo; as colunas representam as datas

de realização das reuniões - períodos de tempo seleccionados a partir do conjunto H.

3 - 3 Definição de parâmetros e penalizações

A execução do algoritmo genético pressupõe a definição de uma série de parâmetros e

penalizações.

Observe-se, com recurso à figura 8, proveniente da aplicação especificamente

desenvolvida para o problema do escalonamento automático de reuniões no âmbito do

presente projecto, alguns parâmetros que é necessário definir.

decorrem durante os períodos de férias.

Page 25: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

21

Figura 8 - Parametr ização do algor itmo genético

Como se pode observar, é possível parametrizar os vários mecanismos anteriormente

estudados: operadores de selecção e recombinação, probabili dades de recombinação,

mutação e inversão, número de gerações e tamanho da população. As diferentes

combinações de parâmetros, como se verá mais à frente, conduzem a diferentes

resultados.

Após a definição dos parâmetros, é necessário atribuir valores às penalizações

resultantes de infracções às restrições do problema.

A figura 9 ilustra um possível conjunto de valores de penalização. O elevado valor da

penalização da restrição R1 deve-se ao facto de que a sua não satisfação implica que o

calendário associado seja impossível. As restantes restrições, apesar de não serem de

carácter exclusivo, devem reflectir a gravidade que lhes está associada, facto pelo qual

os valores apresentados obtidos experimentalmente, parecem ser os mais adequados.

Figura 9 - Penalizações das restr ições do problema

Page 26: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

22

3 - 4 Execução do algoritmo genético

3 - 4 - 1 Inicialização

A inicialização consiste na geração de quatro18 cromossomas constituídos por cinquenta

e quatro19 genes, um por cada turma, cujos valores são aleatoriamente seleccionados a

partir do alfabeto anteriormente definido.

3 - 4 - 2 Avaliação

A avaliação dos cromossomas é efectuada através do cálculo da penalização total

resultante das infracções às quatro restrições estabelecidas.

Descodificação dos cromossomas

Considere-se o cromossoma representado pela sequência: 6 3 4 1 2 1 9 8 (...) 19 13.

G1 G2 G3 G4 G5 G6 G7 G8 (...) G53 G54

6 3 4 1 2 1 9 8 (...) 19 13

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

1º Tempo 1

Turma 4

Turma 6

5

9

Turma 7

13

Turma 54

17

Man

2º Tempo 2

Turma 5

6

Turma 1

10 14 18

1º Tempo 3

Turma 2

7 11 15 19

Turma 53

Tar

de

4º Tempo 4

Turma 3

8

Turma 8

12 16 20

Figura 10 - Descodificação dos cromossomas

18 Valor definido para o parâmetro "Tamanho da População". 19 O número total de turmas cujas reuniões se pretende escalonar.

Page 27: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

23

Através da figura 10 é possível observar que a descodificação dos cromossomas é

efectuada adjudicando à turma 1 o período de tempo 6, à turma 2 o período de tempo 3

e assim sucessivamente até que à turma 54 seja adjudicado o período de tempo 13. O

período de tempo a que a reunião de uma turma t é adjudicada é identificado pelo valor

do gene cujo locus é t.

Cálculo do número de infracções à restr ição R1

Após a descodificação das soluções é obtida uma lista com todas as reuniões

adjudicadas a cada período de tempo. Analisando o corpo docente das turmas agendadas

para cada sessão é possível verificar a existência de reuniões que envolvam em

simultâneo os mesmos professores.

Na figura 10, por exemplo, para determinar se existem professores comuns às turmas

cujas reuniões se realizam no primeiro período de tempo basta comparar os corpos

docentes das turmas 4 e 6. Se se verificar a existência de docentes comuns às duas

turmas, o número de infracções é incrementado de acordo com o número de professores

em conflito.

Com o objectivo de flexibili zar o problema do escalonamento automático de reuniões e

atendendo ao facto de que alguns professores, por exemplo os professores de educação

moral e religião católica, são docentes de um elevado número de turmas, foi

desenvolvido um mecanismo que permite despenalizar a convocação - e respectiva

ausência - de professores para reuniões simultâneas. Nesta situação as infracções à

primeira restrição são ignoradas.

A figura 11 ilustra o formulário que permite despenalizar a ausência de professores em

reuniões simultâneas. O professor 53, visualizado na figura, é docente da disciplina de

educação moral e religião católica em trinta e duas turmas de uma escola secundária

Portuguesa.

Page 28: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

24

Figura 11 - Despenalização da ausência de professores em reuniões simultâneas

Cálculo do número de infracções à restr ição R2

As infracções à restrição R2 resultam da existência de reuniões que envolvam directores

de turma cuja reunião referente à turma em que exercem esse cargo tenha decorrido no

período de tempo imediatamente anterior20.

O valor do número de infracções é calculado através da contagem do número de

reuniões agendadas para o período p+1 que envolvam directores de turmas cujas

reuniões tenham decorrido no período p.

Retomando a figura 10, para determinar se a restrição R2 é violada no segundo período,

basta verificar se os directores das turmas 4 e 6 são docentes da turma 5. Em caso

afirmativo o número de infracções à segunda restrição é aumentado proporcionalmente

ao número de directores de turma envolvidos.

Cálculo do número de infracções à restr ição R3

O número ideal de sessões de reunião pode ser calculado de acordo com o número

máximo de turmas em que cada professor lecciona.

20 Excepto em situações em que a reunião referente à turma em que exercem cargo de direcção ocorra no

último período de tempo do dia.

Page 29: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

25

Assumindo que o professor 1 é docente de dez turmas e que o professor 2 é docente de

8 turmas, o número ideal de sessões seria dez, pois qualquer valor superior implicaria

que o professor 1 estivesse inactivo durante pelo menos uma sessão e qualquer valor

inferior implicaria a sua presença simultânea em várias reuniões.

Assim, para calcular quantas infracções foram cometidas relativamente à restrição R3

torna-se necessário determinar o número ideal de sessões de reunião e subtraí-lo ao

valor total de sessões efectivamente marcadas - calculado através da contagem das

sessões com reuniões agendadas.

No exemplo da figura 10 estão calendarizadas nove sessões21.

Cálculo do número de infracções à restr ição R4

A última restrição refere-se ao número de deslocações à escola realizadas por cada

docente, sendo a sua penalização calculada em função do número de sessões que é

possível efectuar em cada dia e do número de turmas leccionadas por cada professor.

Considerando novamente os professores 1 e 2, docentes de dez e oito turmas,

respectivamente, observa-se que os seus números ideais de deslocações22 seriam

3410 = e 248 = .

O número de infracções à restrição R4 resulta do somatório das diferenças entre o

número de deslocações efectivas - calculadas com base no número de dias em que os

professores têm pelo menos uma reunião - e o número ideal de deslocações à escola de

cada professor.

Cálculo do valor de adaptação dos cromossomas

Após o cálculo do número de vezes que as restrições R1, R2, R3 e R4 não são

satisfeitas, o cálculo do valor de adaptação dos cromossomas é efectuado através da

seguinte fórmula23

21 Note-se que o exemplo apenas representa a descodificação de um subconjunto do cromossoma formado

por dez genes. 22 O número ideal de deslocações do professor Pi é obtido pela expressão Pi = Ti / S em que Ti

representa o número de turmas do professor i e S representa o número máximo disponível de sessões de

reunião por dia.

Page 30: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

26

44332211

1)(

RPRPRPRPcf

×+×+×+×=

onde P1, P2, P3 e P4 representam, respectivamente, os valores de penalização atribuídos

às infracções das primeira, segunda, terceira e quarta restrições e R1, R2, R3 e R4

representam o número de infracções verificadas relativamente às mesmas.

Assumindo que a descodificação completa do cromossoma da figura 10 revela que as

restrições R1, R2, R3 e R4 foram violadas oito, cinco, duas e vinte vezes,

respectivamente, o valor de adaptação do referido cromossoma seria o seguinte

8540

1

20205008000

1

201210510081000

1)( =

+++=

×+×+×+×=cf

3 - 4 - 3 Selecção

A selecção de cromossomas, no contexto da aplicação desenvolvida, pode ser efectuada

através de um de dois operadores: um operador proporcional - o método de selecção da

roleta - ou um operador misto - o método de selecção com normalização linear - que

combina características de selecção proporcional e de selecção por ordem de

classificação.

Segundo o método de selecção da roleta a probabili dade de selecção dos cromossomas é

proporcional às suas adaptações e calculada através da fórmula

∑=

=n

j

s

jf

cfcP

1

)(

)()(

em que a função f() representa o valor de adaptação e n, neste caso concreto, é quatro;

segundo o método de selecção com normalização linear, a probabili dade de selecção é

determinada através da criação de uma tabela classificativa ordenada por ordem

23 No caso dos valores R1, R2, R3 e R4 serem nulos – solução óptima - o denominador deve assumir o

valor 1 de modo a que, por um lado, não seja executada uma divisão por zero, e por outro, a percentagem

de adaptação assuma o valor 1, ou seja, 100%.

Page 31: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

27

decrescente dos valores de adaptação dos cromossomas, e da aplicação de uma função

linear que atribui probabili dades de selecção de acordo com a posição ocupada.

Para assegurar que as melhores soluções de cada geração não são destruídas pelo

processo de reprodução foi implementado um mecanismo de elitismo, através do qual é

possível a selecção automática dos melhores cromossomas da população actual a

respectiva introdução na população da próxima geração.

3 - 4 - 4 Reprodução

Os operadores de reprodução - cruzamento e mutação - ocorrem segundo as

probabili dades definidas na fase de parametrização.

Cruzamento

O operador de cruzamento incide sobre pares de cromossomas seleccionados da

população actual gerando novos cromossomas, possuidores de características genéticas

dos seus ascendentes.

Considerem-se os seguintes cromossomas e respectivos calendários de reunião

G1 G2 G3 G4 G5 G6 G7 G8 (...) G53 G54

Cromossoma 1 (ascendente) 6 3 4 1 2 1 9 8 (...) 19 13

Cromossoma 2 (ascendente) 3 1 9 4 7 13 6 5 (...) 17 10

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T4+T6

5 9

T7

13

T54

17

Man

Tempo

2

T5

6

T1

10 14 18

Tempo

3

T2

7 11 15 19

T53

Tar

de

Tempo

4

T3

8

T8

12 16 20

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T2

5

T8

9

T3

13

T6

17

T53 Man

h

ã

Tempo

2 6

T7

10

T54

14 18

Tempo

3

T1

7

T5

11 15 19

Tar

de

Tempo

4

T4

8

12 16 20

Reuniões do cromossoma ascendente 1

Reuniões do cromossoma ascendente 2

Figura 12 - Cruzamento (cromossomas ascendentes)

Page 32: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

28

Aplicando um operador de cruzamento aos cromossomas ascendentes, por exemplo, o

operador de cruzamento num ponto de corte situado no quarto locus, obtêm-se os

seguintes descendentes.

G1 G2 G3 G4 G5 G6 G7 G8 (...) G53 G54

Cromossoma 1 (descendente) 6 3 4 1 7 13 6 5 (...) 17 10

Cromossoma 2 (descendente) 3 1 9 4 2 1 9 8 (...) 19 13

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T4

5

T8

9 13

T6

17

T53

Man

Tempo

2 6

T1+T7

10

T54

14 18

Tempo

3

T2

7

T5

11 15 19

Tar

de

Tempo

4

T3

8 12 16 20

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T2+T6

5 9

T3+T7

13

T54

17

Man

h

ã 2º

Tempo

2

T5

6 10 14 18

Tempo

3

T1

7 11 15 19

T53 Tar

de

Tempo

4

T4

8

T8

12 16 20

Reuniões do cromossoma descendente 1

Reuniões do cromossoma descendente 2

Figura 13 - Cruzamento (cromossomas descendentes)

Mutação

O operador de mutação opera ao nível dos genes, efectuando a troca dos valores de

determinados locus do cromossoma por outros valores - alelos.

Observando a figura 14 é possível verificar a acção do operador de mutação nos terceiro

e sétimo locus do cromossoma.

Page 33: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

29

G1 G2 G3 G4 G5 G6 G7 G8 (...) G53 G54

Cromossoma 1 (antes da mutação) 6 3 4 1 7 13 6 5 (...) 17 10

Cromossoma 1 (após a mutação) 6 3 19 1 7 13 12 5 (...) 17 10

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T4

5

T8

9 13

T6

17

T53

Man

Tempo

2 6

T1+T7

10

T54

14 18

Tempo

3

T2

7

T5

11 15 19

Tar

de

Tempo

4

T3

8 12 16 20

1º Dia 2º Dia 3º Dia 4º Dia 5º Dia

Tempo

1

T4

5

T8

9 13

T6

17

T53 Man

h

ã

Tempo

2 6

T1

10

T54

14 18

Tempo

3

T2

7

T5

11 15 19

T3 Tar

de

Tempo

4 8

12

T7

16 20

Reuniões do cromossoma 1antes da mutação

Reuniões do cromossoma 1 após a mutação

Figura 14 - mutação

3 - 4 - 5 Finalização

A finalização do algoritmo verifica-se quando ocorre uma das seguintes condições:

1. O algoritmo gera uma solução em que as restrições R1, R2, R3 e R4 não sofrem

qualquer infracção, o que significa que foi encontrada a solução óptima do

problema;

2. Foi atingido o número máximo de gerações definido como limite de execução do

algoritmo. Neste caso é terminada a execução do algoritmo adoptando-se a solução

encontrada até ao momento que mais se adapte à resolução do problema.

3 - 5 Resultados

O tema que motivou o presente trabalho foi a elaboração de um modelo matemático que

recorrendo aos algoritmos genéticos efectuasse o escalonamento automático de reuniões

Page 34: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

30

escolares. Paralelamente ao estudo teórico foi também desenvolvida uma aplicação

prática com o objectivo de simular e testar o modelo elaborado.

Seguidamente são apresentados os valores obtidos pela aplicação através de ciclos de

cinco simulações com várias combinações de parâmetros. As colunas valor 1, valor 2,

valor 3, valor 4 e valor 5 correspondem aos valores das simulações; a coluna valor

médio representa a média aritmética dos cinco valores obtidos para cada combinação de

parâmetros

Os resultados foram obtidos com populações formadas por vinte indivíduos e um limite

de execução do algoritmo de cinquenta gerações.

Selecção Reprodução Resultados

Simulação Operador Eliti smo

Operador

Cruzamento

Probabili dade

Cruzamento

Probabili dade

Mutação

Valor

1

Valor

2

Valor

3

Valor

4

Valor

5

Valor

Médio

1 Proporcional Sim 1 Ponto 90% 1% 14318 15517 10718 7018 16809 12876

2 Proporcional Sim 2 Pontos 90% 1% 15808 14414 15923 15518 15508 15434

3 Proporcional Sim Uniforme 90% 1% 8923 16418 11719 16323 12713 13219

4 Proporcional Não 1 Ponto 90% 1% 26818 30518 18822 24913 26423 25499

5 Proporcional Não 2 Pontos 90% 1% 29703 32608 29922 25223 24226 28336

6 Proporcional Não Uniforme 90% 1% 28423 19613 31118 17013 27823 24798

7 Linear Sim 1 Ponto 90% 1% 9818 5612 6513 8813 10218 8195

8 L inear Sim 2 Pontos 90% 1% 8614 6813 4113 8523 7603 7133

9 L inear Sim Uniforme 90% 1% 10708 4508 6312 8713 5718 7192

10 Linear Não 1 Ponto 90% 1% 8612 7512 6518 9512 10709 8573

11 Linear Não 2 Pontos 90% 1% 6318 11513 4914 6813 11523 8216

12 Linear Não Uniforme 90% 1% 8408 8613 4718 11512 4013 7453

13 Proporcional Sim 1 Ponto 90% 5% 21818 21728 18518 21108 19711 20577

14 Proporcional Sim 2 Pontos 90% 5% 19723 19412 24118 18813 21012 20616

15 Proporcional Sim Uniforme 90% 5% 29423 16608 16513 14718 20821 19617

16 Proporcional Não 1 Ponto 90% 5% 22716 34023 25623 31009 28508 28376

17 Proporcional Não 2 Pontos 90% 5% 32413 26809 34823 28823 24718 29517

18 Proporcional Não Uniforme 90% 5% 28007 32913 32123 33321 26418 30556

19 Linear Sim 1 Ponto 90% 5% 8718 9918 8818 11113 12812 10276

20 Linear Sim 2 Pontos 90% 5% 10213 11509 8913 11913 6813 9872

21 Linear Sim Uniforme 90% 5% 4613 8518 9323 10513 10023 8598

22 Linear Não 1 Ponto 90% 5% 12428 11818 11314 15013 15218 13158

23 Linear Não 2 Pontos 90% 5% 12313 8018 12723 12818 16323 12439

24 Linear Não Uniforme 90% 5% 13923 15903 8012 15213 14023 13415

Page 35: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

31

25 Proporcional Sim 1 Ponto 95% 1% 17118 13412 11511 20618 19012 16334

26 Proporcional Sim 2 Pontos 95% 1% 12821 17916 15323 16313 13921 15259

27 Proporcional Sim Uniforme 95% 1% 18018 14918 17913 13609 17118 16315

28 Proporcional Não 1 Ponto 95% 1% 24226 23413 29126 23114 21418 24259

29 Proporcional Não 2 Pontos 95% 1% 25113 28101 24711 27917 23818 25932

30 Proporcional Não Uniforme 95% 1% 25814 20313 31119 36908 26918 28214

31 L inear Sim 1 Ponto 95% 1% 5513 7619 5618 9114 3613 6295

32 Linear Sim 2 Pontos 95% 1% 8608 6618 7213 8519 8718 7935

33 L inear Sim Uniforme 95% 1% 6613 4218 7923 4413 4723 5578

34 Linear Não 1 Ponto 95% 1% 5813 4618 10812 7621 8423 7457

35 Linear Não 2 Pontos 95% 1% 7612 8423 4413 9013 8618 7616

36 Linear Não Uniforme 95% 1% 9612 8118 3718 6918 11623 7979

37 Proporcional Sim 1 Ponto 95% 5% 22923 17318 11118 19218 18309 17777

38 Proporcional Sim 2 Pontos 95% 5% 17204 21726 22099 14423 24213 19933

39 Proporcional Sim Uniforme 95% 5% 20118 19018 18114 12523 18513 17657

40 Proporcional Não 1 Ponto 95% 5% 27014 33018 30611 30518 33313 30895

41 Proporcional Não 2 Pontos 95% 5% 29636 21217 31013 36028 24413 28461

42 Proporcional Não Uniforme 95% 5% 34713 31013 30618 29613 26018 30395

43 L inear Sim 1 Ponto 95% 5% 4718 7618 7718 8518 7418 7198

44 Linear Sim 2 Pontos 95% 5% 6716 12518 10918 7523 5723 8680

45 Linear Sim Uniforme 95% 5% 9018 4118 12713 8716 12813 9476

46 Linear Não 1 Ponto 95% 5% 14021 11713 16008 12013 11809 13113

47 Linear Não 2 Pontos 95% 5% 12118 10718 13513 12718 9221 11658

48 Linear Não Uniforme 95% 5% 13521 14714 10423 14023 9919 12500

Tabela 7 - Resultados obtidos ao fim de 50 gerações com populações de 20 cromossomas

A tabela 7 ilustra os valores resultantes de todas as combinações quanto ao tipo de

operador de selecção (proporcional ou linear), elitismo (activo ou inactivo), operador de

cruzamento (um ponto, dois pontos ou uniforme), probabili dade de cruzamento (90% ou

95%) e probabili dade de mutação (1% ou 5%).

Observando os valores da tabela anterior, conclui-se que os cinco melhores resultados

médios foram obtidos com os parâmetros das simulações 8, 9, 31, 33 e 43.

Com o objectivo de explorar mais pormenorizadamente os parâmetros que

demonstraram melhores resultados aumentou-se o número de cromossomas para cem e

o número de gerações para duzentos e cinquenta, atingindo-se os seguintes valores:

Page 36: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

32

Selecção Reprodução

Simulação Operador Eliti smo

Operador

Cruzamento

Probabili dade

Cruzamento

Probabili dade

Mutação

Resultado Final

8 Linear Sim 2 Pontos 90% 1% 102

9 Linear Sim Uniforme 90% 1% 99

31 L inear Sim 1 Ponto 95% 1% 95

33 Linear Sim Uniforme 95% 1% 108

43 Linear Sim 1 Ponto 95% 5% 112

Tabela 8 - Resultados obtidos ao fim de 250 gerações com populações de 100 cromossomas

Da análise da tabela 8 conclui-se que os parâmetros que melhor se ajustam ao modelo

proposto para a resolução do problema do escalonamento automático de reuniões são os

da simulação 31: selecção com normalização linear, elitismo, cruzamento num ponto,

probabili dade de cruzamento de 95% e probabili dade de mutação de 1%. Através destes

parâmetros foi possível atingir, ao fim de seiscentas e quatro gerações de uma

população formada por quinhentos cromossomas, uma solução com penalização total de

89 valores, referente às seguintes infracções.

Restrição Nº. Infracções Penalização definida Penalização Total

R1 0 1000 0

R2 0 100 0

R3 3 10 30

R4 59 1 59

Tabela 9 - Penalizações da melhor solução atingida

3 - 6 Visualização de resultados

Os resultados obtidos podem ser visualizados sob dois pontos de vista: um relacionado

com a evolução das populações ao longo do processamento do algoritmo genético e

outro relacionado com as soluções propriamente ditas.

Page 37: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

33

3 - 6 - 1 Evolução das populações

A evolução dos algoritmos genéticos é caracterizada por uma forte convergência ao

longo das gerações.

Analisando o gráfico da figura 15, representativo das melhores penalizações - curva

inferior - e das penalizações médias das populações - curva superior - verifica-se que os

valores inicialmente elevados de penalização das populações decrescem ao longo das

gerações, justificados pela teoria da selecção natural, segundo a qual os indivíduos mais

adaptados sobrevivem em detrimento dos menos adaptados. Ao fim de algumas

gerações, dado que todos os indivíduos da população se tornam semelhantes o processo

de convergência estabili za, ficando a convergência do algoritmo genético dependente da

introdução de novos valores no património genético, por exemplo, através do operador

de mutação.

Figura 15 - gráfico representativo da evolução das populações ao longo das gerações

3 - 6 - 2 - Soluções

As soluções geradas ao longo do processamento do algoritmo genético podem ser

graficamente visualizadas em função das datas de ocorrência das reuniões e em função

dos professores.

Page 38: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

34

A visualização de soluções em função das datas de ocorrência permite ter uma noção

das turmas e dos professores envolvidos em cada sessão.

Figura 16 - visualização de soluções em função da data

A visualização de soluções em função dos professores permite tomar conhecimento das

sessões para as quais os professores estão convocados.

Figura 17 - visualização de soluções em função do professor

Através de qualquer um dos modos de visualização é possível avaliar o valor da

penalização média da população e do melhor cromossoma. Relativamente ao melhor

Page 39: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Escalonamento automático de reuniões escolares

35

cromossoma de cada população, é ainda possível verificar quais as restrições infringidas

e as respectivas penalizações.

Page 40: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Conclusão

36

4 - Conclusão

O tema que motivou o presente trabalho foi o estudo dos algoritmos genéticos e a

aplicação das suas potencialidades a um caso real concreto que, devido à sua

complexidade, todos os anos consome centenas de horas às administrações escolares em

todo o país - a calendarização de reuniões intercalares.

O estudo começou pela análise dos principais processos responsáveis pelo

funcionamento interno dos algoritmos genéticos: a inicialização; a avaliação; a selecção;

a reprodução e a finalização, tendo sido visto que:

• O processo de inicialização consiste na geração da população inicial do algoritmo;

• O processo de avaliação é responsável pela aferição dos níveis de adaptação dos

indivíduos à resolução do problema, segundo critérios específicos do problema,

geralmente expressos em termos de restrições;

• O processo de selecção escolhe para reprodução os cromossomas melhor

classificados na fase de avaliação;

• O processo de reprodução consiste no cruzamento e mutação dos cromossomas

selecionados, dando origem a novos descendentes, conceptualmente mais adaptados,

que formam a próxima população;

• O processo de finalização determina o término do processamento do algoritmo

genético podendo verificar-se devido a dois factores: foi encontrada uma solução

que satisfaz integralmente as restrições impostas pelo problema; foi atingido o limite

máximo imposto à execução do algoritmo.

Após o estudo relativo aos mecanismos que suportam os algoritmos genéticos, foi

apresentado um modelo proposto para o escalonamento automático de reuniões

escolares e os respectivos resultados.

A qualidade das soluções atingidas pelos algoritmos genéticos, como foi demonstrado,

depende largamente dos parâmetros utili zados, facto que motivou a realização de várias

simulações experimentais de modo a obter um conjunto de parâmetros adequado ao

problema.

Page 41: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Conclusão

37

Ao fim de várias tentativas foi conseguido um conjunto de parâmetros que teoricamente

se adequa à calendarização de reuniões e, através dele, foi atingida uma solução de

qualidade elevada segundo a qual as principais restrições do problema são

completamente satisfeitas e as restantes, embora parcialmente insatisfeitas, não se

revelam comprometedoras.

Como conclusão, de acordo com os resultados obtidos, pensa-se ser viável a aplicação

de algoritmos genéticos a problemas de escalonamento, não só de reuniões escolares,

como também de exames escolares, horários escolares e, eventualmente, problemas

industriais como por exemplo escalonamento de ordens de fabrico e afectação de

recursos.

Page 42: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Bibliografia

38

Bibliografia

Davis, 91 Davis, L.: Handbook of Genetic Algorithms.

Van Nostrand Reinhold, New York, (1991).

Goldberg, 89 Goldberg, D.: Genetic Algorithms in Search, Optimization and Machine Learning.

Addison-Wesley, New York, (1989)

Holland, 75 Holland, J.: Adaptation in Natural and Artificial Systems.

The University of Michigan Press, (1975)

Mahfoud, 95 Mahfoud, S.: Niching Methods for Genetic Algorithms. PhD Thesis.

University of Illi nois at Urbana-Champaign, (1995)

Mitchell , 96 Mitchell , M.: An Introduction to Genetic Algorithms.

Massachusetts Institute of Technology, (1996)

Queirós, 95 Queirós, F.: Construção automática de Horários de Aulas.

Universidade Portucalense, (1995)

Syswerda, 89 Syswerda, G.: Uniform Crossover in Genetic Algorithms.

Proceedings of the Third International Conference on Genetic Algorithms.

San Mateo, Cali fornia, Morgan Kaufmann Publishers, (1989)

Foram ainda consultadas, entre outras, as seguintes páginas da internet:

http://gal4.ge.uiuc.edu/

http://cs.felk.cvut.cz/~xobitko/ga/

Page 43: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

39

Anexo 1 - Fund amentos teóricos e matemáticos

Os algoritmos genéticos não constituem um instrumento cientifico, mas sim uma teoria

científica, cuja complexidade e universo de aplicação não estão ainda determinados.

A importância dos resultados obtidos indiciam a elevação dos algoritmos genéticos a

campo disciplinar autónomo, contudo, a distância que separa os fundamentos teóricos e

a componente prática - traduzida por uma constante adaptação de novas concepções da

genética à reconstrução dos algoritmos genéticos - sugere um movimento com duas

frentes, uma externa, delimitando um quadro epistémico em discussão com a biologia

evolutiva, outra interna, estabelecendo linhas de tensão entre os fundamentos teóricos e

as aplicações práticas.

Samir W. Mahfoud escreveu24 "In the literature, GAs are currently undergoing a

process of testing and redesign, mostly through ad hoc experimentation. 'New and

improved' GAs are unveiled seemingly every day, with the driving motivation often

being novelty; in many cases, previously introduced GAs are simpler, and have

identical or better performance. At the opposite extreme is research into precise

mathematical modelli ng of GAs. Inevitably, exact models of GAs are more complex and

analytically unwieldy than the GAs themselves. Precise mathematical modelli ng has not

yet resulted in improved designs for GAs.

The middle ground between the two extremes of approaches - ad hoc experimentation

and precise mathematical modelli ng - has, with a few notable exceptions, remained

vacant."

A teoria dos esquemas, proposta por John Holland25 e posteriormente revista por David

E. Goldberg26, fundamenta e serve de suporte teórico aos algoritmos genéticos.

24 [Mahfoud, 95]. 25 [Holland, 75]. 26 [Goldberg, 89].

Page 44: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

40

Teoria dos esquemas

Apesar dos algoritmos genéticos serem reconhecidamente acessíveis a nível de

descrição e programação existem muitas questões em aberto relativas ao seu modo de

funcionamento e ao tipo de problemas a que melhor se adaptam.

A teoria formulada por John Holland em 1975 relativamente ao modo de funcionamento

dos algoritmos genéticos assumia que, de modo geral, os algoritmos genéticos

funcionavam através da pesquisa e recombinação de blocos construtores -

subsequências formadas por elementos com elevado nível de adaptação.

A noção de esquema27 foi introduzida no sentido de formalizar a noção informal de

bloco construtor. Assumindo, sem perda de generalidade, cromossomas representados

por elementos contidos no alfabeto binário - zeros e uns -, um esquema é uma sequência

de valores representada por um conjunto de zeros, uns e asteriscos, sendo o asterisco um

metasímbolo que pode assumir o valor zero ou um.

O esquema da figura 18, constituído pela sequência 1 0 1 * 0 * 0 1 representa quatro

cromossomas distintos:

1 0 1 * 0 * 0 1

1 0 1 0 0 0 0 1

1 0 1 0 0 1 0 1

1 0 1 1 0 0 0 1

1 0 1 1 0 1 0 1

Figura 18 - Cromossomas representados pelo esquema 1 0 1 * 0 * 0 1

Analogamente ao número de cromossomas que um esquema pode representar, interessa

calcular o número de esquemas distintos que podem ser representados por um

determinado cromossoma. Assumindo que os cromossomas são compostos por oito

genes - à semelhança dos cromossomas da figura 18 -, cada cromossoma c pode

representar um conjunto de duzentos e cinquenta e seis28 esquemas.

27 "Schema" ou "Schemata" 28 Dado que o alfabeto é binário - H = { 0, 1} - e os cromossomas são formados por oito genes - l = 8 -,

cada cromossoma pode representar 28 esquemas.

Page 45: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

41

Os algoritmos genéticos processam explicitamente n cromossomas de comprimento l e

implicitamente um número de esquemas compreendido entre 2l e n × 2l - o facto de não

serem implicitamente processados exactamente n × 2l cromossomas, deve-se à

existência de esquemas comuns a vários cromossomas.

O seguinte problema de optimização, cujo objectivo é maximizar a função f(x) = x2 para

valores de x compreendidos entre zero e quinze, permite analisar os mecanismos que

servem de orientação aos algoritmos genéticos na pesquisa das soluções.

A tabela 10 indica os parâmetros utili zados.

Modelo de representação: Codificação binária

Inicialização:

(população inicial gerada aleatoriamente)

c1 1 1 1 0

c2 1 1 0 0

c3 0 0 1 1

Avaliação: f(c) = c2

Selecção: Selecção directamente proporcional

Reprodução: Cruzamento num ponto e mutação

Tabela 10 - Parâmetros utili zados na maximização da função f(x) = x2

O cálculo do nível de adaptação dos cromossomas c1, c2 e c3 através da função de

avaliação revela os valores29 196, 144 e 3 obtendo-se, portanto, probabili dades de

selecção30 na ordem dos 57.1%, 42.0% e 0.9%, respectivamente.

Neste caso, o algoritmo genético processa explicitamente três cromossomas e

implicitamente trinta e oito esquemas - valor compreendido entre 24 e 3 × 24 -, dos quais

um é representado pelos três cromossomas, oito são representados por conjuntos de dois

cromossomas e vinte e sete são representado por um único cromossoma.

A tabela 11 e a figura 19 ilustram a representação e a intersecção dos esquemas

relativos aos três cromossomas.

29 Os valores apresentados foram calculados com base no fenótipo dos cromossomas - valores 1110, 1100

e 0011 convertidos do sistema de representação binário para o sistema de representação decimal. 30 Utili zando o método de selecção "Roulette Wheel Parent Selection".

Page 46: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

42

Esquema Cromossoma

1 1 1 0

Cromossoma

1 1 0 0

Cromossoma

0 0 1 1 1 * * * * * * * * * * * * 2 * * * 0 * * * 0 3 * * 1 * * * 1 * 4 * * 1 0 5 * 1 * * * 1 * * 6 * 1 * 0 * 1 * 0 7 * 1 1 * 8 * 1 1 0 9 1 * * * 1 * * * 10 1 * * 0 1 * * 0 11 1 * 1 * 12 1 * 1 0 13 1 1 * * 1 1 * * 14 1 1 * 0 1 1 * 0 15 1 1 1 * 16 1 1 1 0 17 * * 0 * 18 * * 0 0 19 * 1 0 * 20 * 1 0 0 21 1 * 0 * 22 1 * 0 0 23 1 1 0 * 24 1 1 0 0 25 * * * 1 26 * * 1 1 27 * 0 * * 28 * 0 * 1 29 * 0 1 * 30 * 0 1 1 31 0 * * * 32 0 * * 1 33 0 * 1 * 34 0 * 1 1 35 0 0 * * 36 0 0 * 1 37 0 0 1 * 38 0 0 1 1

Tabela 11 - Representação dos esquemas relativos aos cromossomas 1 1 1 0, 1 1 0 0 e 0 0 1 1

Page 47: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

43

Cromossoma 1 1 0 0

Cromossoma 1 1 1 0 17 18

4 7 8 2 5 6 19 20

11 12 15 9 10 13 21 22

16 14 23 24

1

3

25 26 27 28

29 30 31 32 33

34 35 36 37 38

Cromossoma 0 0 1 1

Figura 19 - Intersecção dos esquemas relativos aos cromossomas 1 1 1 0, 1 1 0 0 e 0 0 1 1

Efeito da selecção nos esquemas

Quais serão as expectativas de um determinado esquema estar representado na próxima

geração? Serão as alterações provocadas pelos operadores genéticos aleatórias, ou

obedecem a alguma lei?

David E. Goldberg, com o objectivo de esclarecer o efeito da selecção nos esquemas,

definiu o seguinte plano: cálculo do valor de adaptação dos esquemas através da média

aritmética da adaptação dos cromossomas que os representam; cálculo do valor de

adaptação média da população através da média aritmética da adaptação dos seus

indivíduos; cálculo do número de vezes que o esquema é esperado na próxima geração;

confronto, para cada esquema, do seu valor de adaptação com a adaptação média da

população, o número de vezes que o esquema está representado na geração actual e

número de vezes que se espera que venha a ser representado na próxima geração.

A tabela 12 esboça os resultados obtidos relativamente ao problema de maximização da

função f(x) = x2. O valor da adaptação média da população é 114.

Page 48: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

44

Esquema Adaptação Representações actuais Representações esperadas

1 114 3 3 2 170 2 2.98 3 100 2 1.75 4 196 1 1.72 5 170 2 2.98 6 170 2 2.98 7 196 1 1.72 8 196 1 1.72 9 170 2 2.98 10 170 2 2.98 11 196 1 1.72 12 196 1 1.72 13 170 2 2.98 14 170 2 2.98 15 196 1 1.72 16 196 1 1.72 17 144 1 1.26 18 144 1 1.26 19 144 1 1.26 20 144 1 1.26 21 144 1 1.26 22 144 1 1.26 23 144 1 1.26 24 144 1 1.26 25 144 1 0.03 26 144 1 0.03 27 144 1 0.03 28 3 1 0.03 29 3 1 0.03 30 3 1 0.03 31 3 1 0.03 32 3 1 0.03 33 3 1 0.03 34 3 1 0.03 35 3 1 0.03 36 3 1 0.03 37 3 1 0.03 38 3 1 0.03

Tabela 12 - Efeito da selecção nos esquemas

Page 49: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

45

Os valores da tabela 12 sugerem que a relação entre a adaptação dos esquemas e a

adaptação m da população determina o número de exemplares de cada esquema

esperado na próxima geração.

Foi formalmente demonstrado por David E. Goldberg, que a quantidade de exemplares

processados de um determinado esquema aumenta, ou diminui, relativamente à geração

anterior, em função da fórmula

f

HftHmtHm

)(),()1,( ×=+

em que m(H,t+1) e m(H,t) representam, respectivamente, o número de esquemas H

representados na geração t+1 e na geração t, f(H) representa a adaptação do esquema H,

e f representa a adaptação média da população.

Efeito do cruzamento nos esquemas

Os esquemas possuem duas propriedades que permitem diferenciá-los: a ordem do

esquema e o comprimento definidor do esquema.

A ordem do esquema - representada por o(H) - corresponde ao número de símbolos "0"

e "1" contidos no esquema, o comprimento definidor - representado por δ(H) -

corresponde à distância entre os símbolos "0" e "1" que ocupam as posições mais

próximas das extremidades do esquema31. Relativamente ao esquema número vinte e

um da tabela 11, por exemplo, os valores da ordem e do comprimento definidor são,

respectivamente, O(1 * 0 *) = 2 e δ(1 * 0 *) = 3 -1 = 2.

A fórmula anterior não considera a possibili dade de destruição dos esquemas por acção

do operador de cruzamento. Retomando os cromossomas da tabela 11, constituídos

pelas sequências 1 1 1 0 e 0 0 1 1, suponha-se que são seleccionados para cruzamento -

cruzamento num ponto - e que o ponto de corte, aleatoriamente escolhido, é o ponto um.

Os cromossomas resultantes, constituídos pelas sequências 1 0 1 1 e 0 1 1 0, permitem

observar a permanência do esquema quatro - * * 1 0 - na nova geração e a destruição e

31 O comprimento definidor de um esquema constituído por um único símbolo é zero. [Goldberg, 89].

Page 50: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

46

consequente exclusão do esquema dez - 1 * * 0, apesar da melhor adaptação do

esquema dez relativamente ao esquema quatro.

O factor responsável pela destruição do esquema dez é o seu elevado comprimento

definidor. Atendendo ao comprimento definidor do esquema dez, cujo valor é três,

verifica-se que apenas uma recombinação extremamente favorável permitiria a sua não

destruição, ao contrário do esquema quatro, que devido ao seu reduzido comprimento

definidor - um - apenas poderá ser destruído, eventualmente, por um corte na posição

três.

A probabili dade Psc de um esquema H constituído por l elementos sobreviver a um

cruzamento cuja probabili dade de ocorrência é Pc é obtida através da seguinte

desigualdade

1

)(1

−×−≥

l

HPP csc

δ

Efeito da mutação nos esquemas

A mutação encerra a análise dos efeitos dos operadores genéticos relativamente à

proliferação dos esquemas.

Considerando que o operador de mutação consiste na troca do valor de um gene de "0"

para "1" ou de "1" para "0" e que ocorre com probabili dade Pm, observa-se que um

esquema H é conservado se os símbolos "0" e "1" não forem alterados no cromossoma

que o representa.

A probabili dade Psm de um esquema H sobreviver ao operador de mutação é

representada pela seguinte fórmula32

)()1( HOmsm PP −=

32 A probabili dade de destruição de um esquema através do operador de mutação aumenta de acordo com

o valor da sua ordem O(H).

Page 51: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

47

Atendendo ao facto de que o operador de mutação ocorre, tradicionalmente, segundo

probabili dades reduzidas33, a fórmula anterior pode ser representada do seguinte modo

msm PHOP ×−= )(1

Teorema fundamental dos algoritmos genéticos

Ao longo dos últimos parágrafos foram enunciados os efeitos dos operadores genéticos

relativamente ao número esperado de representações dos esquemas na geração seguinte,

constatando-se que a proliferação dos esquemas se verifica mediante a satisfação de três

condições fundamentais: a adaptação dos esquemas deve ser superior à adaptação média

da população; os esquemas devem possuir um comprimento definidor curto; a ordem

dos esquemas deve ser reduzida.

O teorema fundamental dos algoritmos genéticos, também conhecido por teorema dos

esquemas, permite quantificar e relacionar as três condições de proliferação dos

esquemas

×−

−×−××≥+ mc PHO

l

HP

f

HftHmtHm )(

1

)(1

)(),()1,(

δ

Considerando que a diferença entre a adaptação de um esquema H e a adaptação média

da população é constante ao longo das gerações, ou seja, f(H) - f = c, o teorema

anterior admite o seguinte corolário

( )

×−

−×−×+×≥+ mc

iPHO

l

HPctHmitHm )(

1

)(11),(),(

δ

33 O uso excessivo do operador de mutação é ineficaz, podendo, em casos extremos, degenerar os

algoritmos genéticos em métodos de pesquisa aleatória. Alguns autores ignoram o operador de mutação

afirmando, inclusive, que "a mutação é secundária na natureza e nos algoritmos genéticos".

Page 52: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

48

Observando o corolário anterior conclui-se que, descontando os efeitos dos operadores

de cruzamento e mutação, o número esperado de representações dos esquemas segue

uma progressão geométrica de razão 1+c, ou seja, os esquemas com adaptação acima da

média crescem exponencialmente e os esquemas com adaptação abaixo da média

decrescem exponencialmente.

Os esquemas com adaptação acima da média, comprimento definidor curto e ordem

reduzida denominam-se esquemas úteis, ou blocos construtores34. Do ponto de vista

prático dos algoritmos genéticos o número de esquemas processados em cada geração

não é muito relevante. O que interessa determinar é o número de blocos construtores

processados.

Segundo John Holland, o número de esquemas úteis processados numa população

formada por n indivíduos é n3. A propriedade anterior - paralelismo implícito - levou à

formulação de uma conjectura crucial denominada hipótese dos blocos construtores:

"Os blocos construtores implicitamente processados por uma população de n

cromossomas combinam-se formando melhores cromossomas".

Linhas de tensão

Uma das principais diferenças entre o processo de evolução natural e o processo de

evolução simulado pelos algoritmos genéticos consiste na incapacidade, por parte dos

algoritmos genéticos, de manter uma população variada. Ao fim de algumas gerações os

indivíduos contidos numa população artificial praticamente não apresentam diferenças

entre si, dizendo-se, em linguagem formal, que a população convergiu.

O sentido de convergência está estritamente ligado ao sentido de perda de diversidade

da população. Uma população pode convergir sem perder diversidade - situação

verificada em problemas multimodais, em que o algoritmo converge para várias

soluções -, no entanto, o contrário não é válido, ou seja, uma população que perca

diversidade converge obrigatoriamente. A existência de diversidade numa população

revela-se de elevada importância.

Atendendo à necessidade de garantir um processo de convergência eficaz, David E.

Goldberg enumerou um conjunto de linhas fundamentais de tensão, segundo as quais os

algoritmos genéticos devem:

34 "Buiding blocks"

Page 53: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

49

1. assegurar a existência de blocos construtores suficientes na população;

2. assegurar a sobrevivência dos blocos construtores;

3. assegurar recombinações favoráveis dos blocos construtores.

A figura 20 relaciona as linhas fundamentais de tensão com o modelo dos algoritmos

genéticos.

Figura 20 - L inhas fundamentais de tensão dos algor itmos genéticos

A dimensão do espaço de pesquisa de soluções regula o número mínimo de blocos

construtores necessários à convergência do algoritmo para a solução óptima.

A tensão da primeira linha é determinada pela complexidade do problema verificando-

se a dois níveis: ao nível da inicialização e ao nível da mutação. Ao nível da

inicialização deve-se assegurar que a população inicial é constituída por um número

suficiente de indivíduos; ao nível da mutação deve-se assegurar a introdução de novos

valores no património genético da população, proporcionando potenciais ganhos a nível

dos blocos construtores.

A segunda linha de tensão cujos principais intervenientes são os operadores de selecção

e reprodução deve assegurar a sobrevivência dos blocos construtores, facto de que

depende a convergência útil dos algoritmos genéticos.

Inicialização

Avaliação

Selecção

Cruzamento

Mutação

Linha

1

Linha

2

Linha

3 R

epro

duçã

o Finalização

Page 54: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Fundamentos teóricos e matemáticos

50

Atendendo ao facto de que a sobrevivência dos blocos construtores não garante por si só

a convergência dos algoritmos genéticos para a solução óptima, a terceira linha de

tensão tem por objectivo assegurar um processo de recombinação correcto que permita

aos cromossomas descendentes representarem mais blocos construtores do que os seus

ascendentes.

Page 55: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Glossário de termos técnicos

51

Anexo 2 - Glossário de termos técnicos

Alelo Valor que um gene posicionado num determinado locus do

cromossoma pode assumir.

Bloco construtor Esquema de ordem reduzida, comprimento definidor curto e

adaptação acima da média.

Compr imento definidor Distância compreendida entre os símbolos que ocupam as

posições mais extremas de um esquema.

Cruzamento Processo segundo o qual é efectuada a troca de material

genético entre cromossomas.

Cruzamento em dois pontos Operador de cruzamento que utili za dois pontos de corte no

cromossoma.

Cruzamento num ponto Operador de cruzamento que utili za um ponto de corte no

cromossoma.

Cruzamento uniforme Operador de cruzamento que efectua troca de genes entre dois

cromossomas segundo uma probabili dade de ocorrência,

geralmente na ordem dos 50%.

Eli tismo Mecanismo que assegura a permanência das melhores soluções

das populações ao longo das gerações.

Esquema Sequência de valores normalmente representada por zeros, uns e

asteriscos em que os asteriscos podem assumir o valor zero ou

um.

Fenótipo Características exibidas por um cromossoma após a sua

descodificação.

Genótipo Conjunto de valores constituintes dos cromossomas.

Indivíduo Elemento da população. No contexto dos algoritmos genéticos

os indivíduos correspondem aos cromossomas.

Locus Posição particular de um cromossoma.

Mutação Processo de substituição do valor de um determinado gene por

um valor alternativo existente no património genético.

Ordem Número de símbolos definidos num esquema.

Paraleli smo implícito Propriedade dos algoritmos genéticos segundo a qual o número

de esquemas úteis processados numa população composta por n

indivíduos é n3.

População Conjunto de indivíduos. No contexto dos algoritmos genéticos

representa o conjunto dos cromossomas.

Probabili dade de cruzamento Probabili dade segundo a qual ocorre o operador de cruzamento.

Probabili dade de mutação Probabili dade segundo a qual ocorre o operador de mutação.

Recombinação (ver cruzamento).

Page 56: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Glossário de termos técnicos

52

Selecção Processo modelado segundo a teoria da selecção natural

utili zado para direccionar os algoritmos genéticos para melhores

zonas do espaço de pesquisa de soluções. Aos indivíduos mais

adaptados de cada população é atribuída maior probabili dade de

reprodução e sobrevivência.

Selecção por ordem de classificação Mecanismo de selecção utili zado nos algoritmos genéticos,

segundo o qual as probabili dades de selecção são atribuídas em

função das posições ocupadas pelos cromossomas numa tabela

classificativa.

Selecção proporcional Mecanismo básico de selecção utili zado nos algoritmos

genéticos, segundo o qual as probabili dades de selecção são

atribuídas proporcionalmente às adaptações dos indivíduos.

Page 57: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

53

Anexo 3 - Listagem do algoritmo genético

A listagem que se segue corresponde a uma classe implementada em Visual Basic 6.0,

utili zada na aplicação para suporte dos algoritmos genéticos.

Option Explicit

Option Base 1 Public Enum OperadorRecombinacao gaCrossoverUmPonto = 1 gaCrossoverDoisPontos = 2 gaCrossoverUniforme = 3 End Enum Public Enum ModoSeleccao

gaSelec caoProporcional = 1 gaSeleccaoLinear = 2 End Enum 'Probabilidade de Recombinação Private mProbabilidadeRecombinacao As Byte 'Probabilidade de Mutação Private mProbabilidadeMutacao As Byte 'Probabilidade de Inversão Private mProbabilidadeInversao As Byte 'Elismo ? (True/False) Private mElitismo As Boolean 'Nº de Cromossomas Private mNumeroCromossomas As Long 'Nº de Genes Private mNumeroGenes As Long 'Número Total de Gerações Private mNumeroGeracoes As Long 'Número da Geração Actual Private mGeracao As Long 'Indice da Melhor Geração Private mIndiceMelhorG eracao As Long 'Vector com os Valores do Alfabeto Private mAlfabeto() As Long 'Nº de Elementos que contidos no Alfabeto Private mNumeroElementosAlfabeto As Long 'Matriz com a População Actual Private mPopulacao() As Long 'Matriz com a População Temporaria da Próxima Geração Private mPopulacaoTemporariaProximaGeracao() As Long 'Matriz com a População da Próxima Geração Private mPopulacaoProximaGeracao() As Long 'Vector com as Penalizações dos Cromossomas da População Actual Private mPenalizacaoCromossoma() As Long 'Indice do Melhor Cromossoma da População Actual Private mIndiceMelhorCromossoma As Long 'Matriz com os Melhores Cromossomas das Gerações Anteriores Private mMelhorCromossomaGeracao() As Long 'Vector com as Penalizações dos Melhores Cromossomas das Gerações Anteriores Private mPenalizacaoMelhorCromossomaGeracao() As Long ' Vector com as Penalizações Médias das Gerações Anteriores Private mPenalizacaoMediaGeracao() As Long 'Operador de Recombinação Private mOperadorRecombinacao As OperadorRecombinacao 'Modo de Selecção Private mModoSelecca o As ModoSeleccao 'Indica paragem no Processamento Private mParar As Boolean Public Event AvaliarCromossoma(NumeroCromossoma As Long, Cromossoma As Variant, PenalizacaoCromossoma

As Long) Public Event ProcessarGeracao(Geracao As Long) Public Event AposProcessarGeracao() Public Event FimProcessamento(Penalizacao As Long) Public Property Let ProbabilidadeRecombinacao(Valor As Byte) mProbabilidadeRecombinacao = Valor End Property Public Pro perty Get ProbabilidadeRecombinacao() As Byte ProbabilidadeRecombinacao = mProbabilidadeRecombinacao End Property

Page 58: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

54

Public Property Let ProbabilidadeMutacao(Valor As Byte) mProbabilidadeMutacao = Valor End Property Public Property Get Probabilidad eMutacao() As Byte ProbabilidadeMutacao = mProbabilidadeMutacao End Property Public Property Let ProbabilidadeInversao(Valor As Byte) mProbabilidadeInversao = Valor End Property Public Property Get ProbabilidadeInversao() As Byte Probabilidade Inversao = mProbabilidadeInversao End Property Public Property Let Elitismo(Valor As Boolean) mElitismo = Valor End Property Public Property Get Elitismo() As Boolean Elitismo = mElitismo End Property Public Property Get NumeroCromossomas() As Long NumeroCromossomas = mNumeroCromossomas End Property Public Property Get NumeroGenes() As Long NumeroGenes = mNumeroGenes End Property Public Property Get NumeroGeracoes() As Long NumeroGeracoes = mNumeroGeracoes End Property Public Proper ty Get Geracao() As Long Geracao = mGeracao End Property Public Property Get IndiceMelhorGeracao() As Long IndiceMelhorGeracao = mIndiceMelhorGeracao End Property Public Property Get Alfabeto() As Variant Dim A() As Long Dim E As Lo ng ReDim A(1 To mNumeroElementosAlfabeto) For E = 1 To mNumeroElementosAlfabeto A(E) = mAlfabeto(E) Next Alfabeto = A End Property Public Property Get NumeroElementosAlfabeto() As Long NumeroElementosAlfabeto = mNumeroElementosAl fabeto End Property Public Property Get Populacao() As Variant Populacao = mPopulacao End Property Public Property Get ElementoPopulacao(IndiceCromossoma As Long, IndiceGene As Long) As Long ElementoPopulacao = mPopulacao(IndiceCromossoma, IndiceGe ne) End Property Public Property Get Cromossoma(IndiceCromossoma As Long) As Variant Dim C() As Long Dim G As Long ReDim C(1 To mNumeroGenes) For G = 1 To mNumeroGenes C(G) = mPopulacao(IndiceCro mossoma, G) Next Cromossoma = C End Property Public Property Get PenalizacaoCromossoma(IndiceCromossoma As Long) As Long PenalizacaoCromossoma = mPenalizacaoCromossoma(IndiceCromossoma) End Property Public Property Get IndiceMelhorCromossoma() A s Long IndiceMelhorCromossoma = mIndiceMelhorCromossoma End Property

Page 59: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

55

Public Property Get MelhorCromossomaGeracao(IndiceGeracao As Long) As Variant Dim C() As Long Dim G As Long ReDim C(1 To mNumeroGe nes) For G = 1 To mNumeroGenes C(G) = mMelhorCromossomaGeracao(IndiceGeracao, G) Next MelhorCromossomaGeracao = C End Property Public Property Get PenalizacaoMelhorCromossomaGeracao(IndiceGeracao As Long) As Long PenalizacaoMelhorCromos somaGeracao = mPenalizacaoMelhorCromossomaGeracao(IndiceGeracao) End Property Public Property Get PenalizacaoMediaGeracao(IndiceGeracao As Long) As Long PenalizacaoMediaGeracao = mPenalizacaoMediaGeracao(IndiceGeracao) End Property Public Property Let OperadorRecombinacao(Valor As OperadorRecombinacao) mOperadorRecombinacao = Valor End Property Public Property Get OperadorRecombinacao() As OperadorRecombinacao OperadorRecombinacao = mOperadorRecombinacao End Property Public Property Let M odoSeleccao(Valor As ModoSeleccao) mModoSeleccao = Valor End Property Public Property Get ModoSeleccao() As ModoSeleccao ModoSeleccao = mModoSeleccao End Property Private Sub GerarPopulacaoInicial() Dim C As Long Dim G As Long Dim E As Long For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) For G = 1 To mNumeroGenes Randomize E = Int(mNumeroElementosAlfabeto * Rnd + 1) mPopulacao(C, G) = mAlfabeto(E) Next Next End Sub Private Sub AvaliarPopulacao() Dim C As Long Dim G As Long Dim Penalizacao As Long Dim PenalizacaoTotalGeracao As Long PenalizacaoTotalGeracao = 0 mIndiceMelhorC romossoma = 1 For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) Penalizacao = 0 RaiseEvent AvaliarCromossoma(C, Cromossoma(C), Penalizacao) mPenalizacaoCromossoma(C) = Penalizacao If Penalizacao < mPenalizacaoCromosso ma(mIndiceMelhorCromossoma) Then mIndiceMelhorCromossoma = C End If PenalizacaoTotalGeracao = PenalizacaoTotalGeracao + Penalizacao Next mPenalizacaoMelhorCromossomaGeracao(mGeracao) = mPenalizacaoCromossoma(mIndiceMelhorCromosso ma) mPenalizacaoMediaGeracao(mGeracao) = PenalizacaoTotalGeracao / mNumeroCromossomas + IIf(mElitismo

= True, 1, 0) For G = 1 To mNumeroGenes mMelhorCromossomaGeracao(mGeracao, G) = mPopulacao(mIndiceMelhorCromossoma, G) Next If mPenaliza caoCromossoma(mIndiceMelhorCromossoma) <

mPenalizacaoMelhorCromossomaGeracao(mIndiceMelhorGeracao) Then mIndiceMelhorGeracao = mGeracao End If End Sub Private Sub OrdenarClassificacaoCromossoma(ClassificacaoCromossoma() As Long, Chave As Long) Dim C As Long Dim C1 As Long Dim C2 As Long Dim V As Long Dim Valor As Long For C1 = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) - 1

Page 60: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

56

C = C1 For C2 = C1 + 1 To mNumeroCromossoma s + IIf(mElitismo = True, 1, 0) If ClassificacaoCromossoma(C2, Chave) < ClassificacaoCromossoma(C, Chave) Then C = C2 End If Next If C <> C1 Then For V = 1 To 3 Valor = ClassificacaoCromossoma( C1, V) ClassificacaoCromossoma(C1, V) = ClassificacaoCromossoma(C, V) ClassificacaoCromossoma(C, V) = Valor Next End If Next End Sub Private Sub SeleccionarPopulacaoProximaGeracao() Const LIMITE_INFERIOR As Long = 1 Const LIMITE_SUPERIOR As Long = 2 Const INDICE As Long = 1 Const Penalizacao As Long = 2 Const CLASSIFICACAO As Long = 3 Dim C As Long Dim G As Long Dim SomatorioInversaPenalizacoes As Double Dim ClassificacaoC romossoma() As Long Dim ValorRoleta() As Double Dim ValorSeleccionado As Double Dim Ponteiro As Long SomatorioInversaPe nalizacoes = 0 ReDim ValorRoleta(1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0), 1 To 2) ValorRoleta(1, LIMITE_INFERIOR) = 0 ValorRoleta(mNumeroCromossomas + IIf(mElitismo = True, 1, 0), LIMITE_SUPERIOR) = 1 Select Case mModoSeleccao Case gaSeleccaoProporcional For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) SomatorioInversaPenalizacoes = SomatorioInversaPenalizacoes + 1 / mPenalizacaoCromossoma(C) Next For C = 1 To mNumeroCromossomas + IIf(mEli tismo = True, 1, 0) - 1 ValorRoleta(C, LIMITE_SUPERIOR) = ValorRoleta(C, LIMITE_INFERIOR) + ((1 /

mPenalizacaoCromossoma(C)) / SomatorioInversaPenalizacoes) ValorRoleta(C + 1, LIMITE_INFERIOR) = ValorRoleta(C, LIMITE_SUPERIOR) Next Case gaSeleccaoLinear ReDim ClassificacaoCromossoma(1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0), 1 To 3) For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) ClassificacaoCromossoma(C, INDICE) = C Classif icacaoCromossoma(C, Penalizacao) = mPenalizacaoCromossoma(C) Next Call OrdenarClassificacaoCromossoma(ClassificacaoCromossoma, Penalizacao) ClassificacaoCromossoma(1, CLASSIFICACAO) = 1 For C = 2 To mNumeroCromossomas + IIf(mElitism o = True, 1, 0) If ClassificacaoCromossoma(C, Penalizacao) = ClassificacaoCromossoma(C - 1, Penalizacao)

Then ClassificacaoCromossoma(C, CLASSIFICACAO) = ClassificacaoCromossoma(C - 1, CLASSIFICACAO) Else Classific acaoCromossoma(C, CLASSIFICACAO) = C End If Next Call OrdenarClassificacaoCromossoma(ClassificacaoCromossoma, INDICE) For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) SomatorioInversaPenalizacoes = Somatorio InversaPenalizacoes + 1 / ClassificacaoCromossoma(C,

CLASSIFICACAO) Next For C = 1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0) - 1 ValorRoleta(C, LIMITE_SUPERIOR) = ValorRoleta(C, LIMITE_INFERIOR) + ((1 /

ClassificacaoCromossom a(C, CLASSIFICACAO)) / SomatorioInversaPenalizacoes) ValorRoleta(C + 1, LIMITE_INFERIOR) = ValorRoleta(C, LIMITE_SUPERIOR) Next End Select For C = 1 To mNumeroCromossomas Randomize ValorSeleccionado = Rnd Ponteiro = 1 While ValorSeleccionado >= ValorRoleta(Ponteiro, LIMITE_SUPERIOR) Ponteiro = Ponteiro + 1 Wend For G = 1 To mNumeroGenes mPopulacaoTemporariaProximaGeracao(C, G) = mPopulacao(Ponteiro, G) Next Next End Sub Pri vate Sub EmparelharPopulacaoProximaGeracao() Dim C As Long Dim G As Long

Page 61: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

57

Dim D As Collection Dim I As Long Dim S As Long Set D = New Collection For C = 1 To mNumeroCromossomas D.Add C , "C" & C Next For C = 1 To mNumeroCromossomas Randomize I = Int(D.Count * Rnd + 1) S = D(I) For G = 1 To mNumeroGenes mPopulacaoProximaGeracao(C, G) = mPopulacaoTemporariaProximaGeracao(S, G) Next D.Remove (I) Next Set D = Nothing End Sub Private Sub RecombinarPopulacaoProximaGeracao() Dim C As Long Dim G As Long Dim P As Long Dim P1 As Long Dim P2 As Long Dim Gene As Long Select Case mOperadorRecombinacao Case gaCrossoverUmPonto For C = 1 To mNumeroCromossomas Step 2 Randomize If Rnd < mProbabilidadeRecombinacao / 100 Then Randomize P = Int((mNumeroGenes - 1) * Rnd + 1) For G = 1 To P Gene = mPopulacaoProximaGeracao(C, G) mPopulacaoProximaGeracao(C, G) = mPopulacaoProximaGeracao(C + 1, G) mPopulacaoProximaGeracao(C + 1, G) = Gene Next End If Next Case gaCrossoverDoisPontos For C = 1 To mNumeroCromossomas Step 2 Randomize If Rnd < mProbabilidadeRecombinacao / 100 Then Do Randomize P1 = Int((mNumeroGenes) * Rnd + 1) Randomize P2 = Int( (mNumeroGenes) * Rnd + 1) If P2 < P1 Then P = P1 P1 = P2 P2 = P End If Loop Until P1 <> P2 And P1 > 1 And P2 < mNumeroGenes For G = P1 To P2 Gene = mPopulacaoProximaGeracao(C, G) mPopulacaoProximaGeracao(C, G) = mPopulacaoProximaGeracao(C + 1, G) mPopulacaoProximaGeracao(C + 1, G) = Gene Next End If Next Case gaCrossoverUniform e For C = 1 To mNumeroCromossomas Step 2 Randomize If Rnd < mProbabilidadeRecombinacao / 100 Then Randomize For G = 1 To Int((mNumeroGenes) * Rnd + 1) Randomize P = Int((mNumeroGene s) * Rnd + 1) Gene = mPopulacaoProximaGeracao(C, P) mPopulacaoProximaGeracao(C, P) = mPopulacaoProximaGeracao(C + 1, P) mPopulacaoProximaGeracao(C + 1, P) = Gene Next End If Next End Select End Sub Private Sub MutarPopulacaoProximaGeracao() Dim C As Long Dim G As Long Dim E As Long For C = 1 To mNumeroCromossomas

Page 62: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

58

For G = 1 To mNumeroGenes Randomize If Rnd < mProbabilidadeMutacao / 100 Then Randomize E = Int(mNumeroElementosAlfabeto * Rnd + 1) mPopulacaoProximaGeracao(C, G) = mAlfabeto(E) End If Next Next End Sub Private Sub InverterPopulacaoProximaGeracao() Dim C As Long Dim G As Long Dim Cromossoma() As Long ReDim Cromossoma(1 To mNumeroGenes) For C = 1 To mNumeroCromossomas Randomize If Rnd < mProbabilidadeInversao / 100 Then For G = 1 To mNumeroGenes Cromossoma(mNumeroGenes - G + 1) = mPopulacaoProximaGeracao(C, G) Next For G = 1 To mNumeroGenes mPopulacaoProximaGeracao(C, G) = Cromossoma(G) Next End If Next End Sub Private Sub ComutarPopulacao() Dim C As Long Dim G As Long If mElitismo = True Then If mIndiceMelhorCromossoma <> mNumeroCromossomas + 1 Then For G = 1 To mNumeroGenes mPopulacao(mNumeroCromossomas + 1, G) = mPopulacao(mIndiceMelhorCromossoma, G) Next End If End If For C = 1 To mNumeroCromossomas For G = 1 To mNumeroGenes mPopulacao(C, G) = mPopulacaoProximaGeracao(C, G) Next Next End Sub Public Sub Iniciar(Alfabeto As Variant, Cromossomas As Long, Gene s As Long, Geracoes As Long) mAlfabeto = Alfabeto mNumeroElementosAlfabeto = UBound(mAlfabeto) If mNumeroElementosAlfabeto = 0 Then MsgBox "Alfabeto Inválido.", vbInformation Exit Sub End If mNumeroCromossomas = Cromossoma s If mNumeroCromossomas < 2 Or mNumeroCromossomas Mod 2 <> 0 Then MsgBox "Número de Cromossomas Inválido.", vbInformation Exit Sub End If mNumeroGenes = Genes If mNumeroGenes = 0 Then MsgBox "Número de Genes Inválido.", vbInfo rmation Exit Sub End If mNumeroGeracoes = Geracoes If mNumeroGeracoes = 0 Then MsgBox "Número de Gerações Inválido.", vbInformation Exit Sub End If ReDim mPopulacao(1 To mNumeroCromossomas + IIf(mElitismo = True, 1, 0), 1 To mNumeroGenes) ReDim mPopulacaoTemporariaProximaGeracao(1 To mNumeroCromossomas, 1 To mNumeroGenes) ReDim mPopulacaoProximaGeracao(1 To mNumeroCromossomas, 1 To mNumeroGenes) ReDim mPenalizacaoCromossoma(1 To mNumeroCromossomas + IIf(mElitism o = True, 1, 0)) ReDim mMelhorCromossomaGeracao(1 To mNumeroGeracoes, 1 To mNumeroGenes) ReDim mPenalizacaoMelhorCromossomaGeracao(1 To mNumeroGeracoes) ReDim mPenalizacaoMediaGeracao(1 To mNumeroGeracoes) mGeracao = 1 mIndiceMelhorGeracao = 1 mParar = False Call GerarPopulacaoInicial Call Processar End Sub

Page 63: ALGORITMOS GENÉTICOS - Departamento de Engenharia ...paf/proj/Set2000/AlgoritmosGeneticos.pdf · Introdução 2 Estrutura do relatório O presente relatório encontra-se dividido

Listagem do algoritmo genético

59

Public Sub Parar() mParar = True End Sub Public Sub Continuar() mParar = False Call Processar End Sub Public Sub Processar() Do While mGeracao < mNumeroGeracoes RaiseEvent ProcessarGeracao(mGeracao) Call AvaliarPopulacao RaiseEvent AposProcessarGeracao DoEvents If mPenalizacaoMelhorCromossomaGeracao(mGeracao) > 0 And mParar = False Then mGeracao = mGeracao + 1 Call Sel eccionarPopulacaoProximaGeracao Call EmparelharPopulacaoProximaGeracao Call RecombinarPopulacaoProximaGeracao Call MutarPopulacaoProximaGeracao Call InverterPopulacaoProximaGeracao Call ComutarPopulacao El se Exit Do End If Loop If mParar = False Then If mGeracao = mNumeroGeracoes Then RaiseEvent ProcessarGeracao(mGeracao) Call AvaliarPopulacao RaiseEvent AposProcessarGeracao DoEvents End I f RaiseEvent FimProcessamento(mPenalizacaoMelhorCromossomaGeracao(mIndiceMelhorGeracao)) End If End Sub