Skip to content

Instantly share code, notes, and snippets.

@pedroduartecosta
Last active March 13, 2017 13:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save pedroduartecosta/77f00724440485a8bb9a7f6b41941750 to your computer and use it in GitHub Desktop.
Save pedroduartecosta/77f00724440485a8bb9a7f6b41941750 to your computer and use it in GitHub Desktop.

Enunciado

Considere o exemplo dado nas aulas teóricas de arrumação de volumes em contentor mas com capacidade 80, e a respectiva população genética inicial. A penalização é 1 centésimo da proposta nas aulas. Supondo que usamos política elitista (mas só para o melhor) geraram-se depois 2 números aleatórios: 0,40 / 0,72 indicando quem são candidatos ao emparelhamento. Assuma a probabilidade de cruzamento de 75% e que a roleta deu agora os 3 números; 0.95 / 0.50 / 0.65. Assuma um ponto de cruzamento entre o 5o e 6o bits. A probabilidade de mutação é de 5% e só ao 25o número aleatório apareceu um inferior a 0,05.

a) Apresente a 2a geração. Explique pormenorizadamente todo o processo que seguiu.

b) Caso tivesse forçosamente que parar o algoritmo (na 2o geração) que solução escolhia e porquê?

Resolução

Fadaptação = Sum(V[i]*Xj[i]) - Penalização
Penalização = 0.01*R*(Sum(Xj[i]*P[i])-Cmax)²
R = max(V[i]/P[i]), Xj[i]=0
Probabilidade de Seleção (Ps)= Fa/Sum(Fa)
-Capacidade Maxima = 80
-Probabilidade de Cruzamento (Pc) = 0.75
-Politica elitista mas só para o melhor
-Probabilidade de mutação = 0,05 (ocorre apenas ao 25º numero aletorio)
V[i]={10,50,20,10,40,10,30,5,5,10}
P[i]={20,10,10, 5, 10, 15, 5, 5,5, 5}
Indivíduo R Função de Adaptação (Fa) Penalização
X1 30/5 = 6 (10+50+20+10+5+5+10)-24 = 86 0.016((20+10+10+5+5+5+5)-80)² = 24
X2 5 (40+10+30+5+5+10)-61.25 = 38.75 0.015((10+15+5+5+5+5)-80)² = 61.25
X3 6 (10+50+40+10)-73.5 = 36.5 0.016((20+10+10+5)-80)² = 73.5
População Inicial Fa ProbabilidadeSeleção = Fa/FaTotal
X1 1111000111 86 0.533
X2 0000111111 38.75 0.24
X3 1100100001 36.5 0.22
FaTotal 161.25
Emparelhamento por seleção elitista para o melhor e probabilística os restantes (valores da roleta):
O nº de individuos selecionados tem que ser igual ao da população inicial (podendo-se repetir).
Indivíduo Pmin Pmax
X1 0 0.533
X2 0.533 0.773
X3 0.773 1
0----------->0+0.533--------->0.533+0.24-------->0.773+0.22

0----X1------>0.533------X2----->0.773-----X3----->0.993

Como saiu na roleta os valores 0.40 e 0.72, seleciono X1 e o X2 pois 0.40 está no intervalo de X
e 0.72 está no intervalo de X2

Candidatos a emparelhamento

Indivíduo Política
X1 Elitista
X1 Probabilística
X2 Probabilística
Cruzamento aplicado entre o 5º e 6º bits
Probabilidade = 0.75
Indivíduo Valor Cruzamento
I1 X1 0.95
I2 X1 0.50 x
I3 X2 0.65 x
Logo apenas cruz o I2 com I3
Selecção Emparelhamento Cruzamento Mutação (25º bit)
X1 1111000111 X1 11110 | 00111 11110 | 00111 1111000111
X2 0000111111 X1 11110 | 00111 11110 | 11111 1111011111
X3 1100100001 X2 00001 | 11111 00001 | 00111 0000000111
1ª Geração 2ª Geração Operação
X1 1111000111 X1 1111000111 X1 Original
X2 0000111111 X'1 1111011111 Cruzamento entre X1 e X2
X3 1100100001 X'2 0000000111 Mutação apó Cruzamento entre X1 e X2
@bernardobelchior
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment