4.4 Teste de significˆ ancia
5.1.1 An´ alise do modelo de regress˜ ao m´ ultipla
Na primeira coluna da tabela 5.1, est˜ao apresentadas as estimativas de m´axima verossimilhan¸ca dos parˆametros do modelo de regress˜ao linear m´ultipla (descrito no cap´ıtulo anterior). Na segunda coluna, os erros padr˜oes de cada estimativa. Na ter- ceira coluna, s˜ao apresentadas as estat´ısticas de teste T que avaliam individualmente a
5.1 An´alise visual 47
significˆancia do i-´esimo parˆametro no modelo, para i ∈ {0, ..., 10}, de modo que quanto maior o valor de T, mais significante a vari´avel Xi (ou a intera¸c˜ao Xa Xb) que multi-
plica o parˆametro βi. Finalmente, na ´ultima coluna, o Valor P que indica o n´ıvel de
confian¸ca para rejei¸c˜ao da hip´otese nula (βi = 0) do teste T, ou seja, quanto menor o
valor P, mais convictos estaremos de que βi difere de zero e, consequentemente, mais
convictos estaremos de que a vari´avel independente ou a intera¸c˜ao que multiplica esse parˆametro ´e significativa.
Tabela 5.1: Parˆametros do modelo de regrass˜ao linear multipla Coeficientes Estimativa Erro padr˜ao Estat´ıstica T Valor P
β0 29,7913 0,3538 82,203 <0,001 β1 0,9540 0,3228 2,955 0,003126 β2 -8,7359 0,3228 -27,061 <0,001 β3 -2,4245 0,5734 -4,228 <0,001 β4 -5,9762 0,5734 -10,423 <0,001 β5 -1,7225 0,1899 -9,073 <0,001 β6 -0,2008 0,4111 -0,489 0,625150 β7 7,1452 0,4111 17,382 <0,001 β8 -2,2061 0,4111 -5,567 <0,001 β9 23,7753 0,4111 57,837 <0,001 β10 3,4485 0,8901 3,874 <0,001
Para facilitar a leitura dessa disserta¸c˜ao apresentamos novamente o modelo de re- gress˜ao linear m´ultipla descrito no cap´ıtulo anterior.
Y = β0+ β1X1+ β2X2+ β3X3+ β4X4+ β5X1X2+ β6X1X3+
β7X1X4 + β8X2X3 + β9X2X4+ β10X3X4+
Sendo a vari´avel dependente (Y) a m´edia do n´umero de itera¸c˜oes at´e que o algoritmo gen´etico obtenha o ´otimo global em mil experimentos e as vari´aveis independentes:
• X1 o indicador da dimens˜ao da fun¸c˜ao objetivo. X1 = 0, se a fun¸c˜ao ´e unidimen-
sional e X1 = 1, se a fun¸c˜ao ´e bidimensional.
• X2o indicador do n´umero de ´otimos locais na imagem da fun¸c˜ao objetivo. X2 = 0,
se a fun¸c˜ao possui um ´unico ´otimo local (o ´otimo global) e X2 = 1, se possui 12
´
otimos locais (incluindo o ´otimo global).
• X4 a probabilidade de muta¸c˜ao. X3 ∈ {0, 11; 0, 12; ...; 0, 90}
Note na tabela 5.1 que, o β6 (que estima o impacto da probabilidade de cruzamento
na velocidade de convergencia do algoritmo, dado que a fun¸c˜ao ´e bidimenssional) foi o ´
unico parˆametro que obteve significˆancia rejeitada a 99, 5% de confian¸ca. Isso significa que, segundo o modelo, o fato de a fun¸c˜ao ser unidimensional ou bidimensional n˜ao altera a influˆencia da probabilidade de cruzamento na velocidade de convergˆencia do algoritmo gen´etico. Esse resultado ´e coerente com as Figuras 5.9 e 5.10, Onde se pode observar um paralelismo entre as retas, quando se compara o efeito do operador cruzamento em fun¸c˜oes unidimensionais e bidimensionais, tanto no caso de as fun¸c˜oes terem um ´unico ´otimo local (Figura 5.9) quanto no caso de as fun¸c˜oes terem 12 ´otimos locais (Figura 5.10). Com exe¸c˜ao da intera¸c˜ao entre as vari´aveis X1 e X3, todas as
vari´aveis avaliadas foram significativas no modelo, bem como suas intera¸c˜oes duas a duas.
Na an´alise da qualidade do ajuste desse modelo (R quadrado), estima-se que so- mente 24% das fun¸c˜oes se enquadram nesse modelo.
Cap´ıtulo 6
Conclus˜oes
Com respeito aos gr´aficos apresentados no cap´ıtulo anterior, podemos dizer que a parametriza¸c˜ao que otimiza a velocidade de convergˆencia do algoritmo gen´etico varia de acordo com a fun¸c˜ao objetivo em quest˜ao. Apesar disso, esses gr´aficos s˜ao argu- mentos a favor da importˆancia do Operador muta¸c˜ao, nos quais podemos observar que, para todas as fun¸c˜oes, varia¸c˜oes na probabilidade de muta¸c˜ao afetam a velocidade de convergˆencia do algoritmo gen´etico e, curiosamente, o operador cruzamento se mostrou dispens´avel na otimiza¸c˜ao da velocidade de convergˆencia do algoritmo.
Com respeito ao modelo de regress˜ao m´ultipla, apresentado do cap´ıtulo anterior, podemos dizer que as vari´aveis estudadas: probabilidade de muta¸c˜ao, probabilidade de cruzamento, tipo da fun¸c˜ao (unidimensional ou bidimensional) e a quantidade de ´
otimos locais (1 ou 12) se mostraram significativos na modelagem da velocidade de convergˆencia do algoritmo gen´etico, como tamb´em as suas intera¸c˜oes de segunda ordem, exceto a itera¸c˜ao entre as vari´aveis tipo de fun¸c˜ao (unidimensional ou bidimensional) e probabilidade de cruzamento. Al´em disso, devido ao r quadrado ter sido t˜ao pequeno (0, 28) podemos afirmar que as vari´aveis escolhidas n˜ao s˜ao suficientes para descrever as varia¸c˜oes na velocidade de convergˆencia. Ou seja, existem vari´aveis que interferem na velocidade de convergˆencia do algoritmo gen´etico e que n˜ao est˜ao no modelo estoc´astico.
6.1
Considera¸c˜oes finais
´E importante lembrar que em aplica¸c˜oes reais do algoritmo gen´etico, geralmente n˜ao ´e do conhecimento do pesquisador se a fun¸c˜ao objetivo possui apenas um ou mais de um ´otimo local, por isso esse estudo pode parecer irrelevante, mas ´e ineg´avel a importˆancia de entendemos o impacto desse fato na velocidade de convergˆencia do algoritmo gen´etico, bem como o comportamento do algoritmo gen´etico mediante esse
tipo de obst´aculo.
Vale ressaltar que, neste trabalho, estudamos o efeito da dimens˜ao da fun¸c˜ao obje- tivo (uni ou bidimensional) na velocidade de convergˆencia, sendo o dom´ınio de ambas as fun¸c˜oes discretizados numa mesma quantidade de pontos, sem levar em conta o espa¸camento entre os pontos, ou seja, existe implicitamente uma suposi¸c˜ao de que a discretiza¸c˜ao do dom´ınio de todas as fun¸c˜oes estudadas contenham o verdadeiro ´otimo global ou algum ponto muito pr´oximo do mesmo.
Aos interessados na implementa¸c˜ao computacional, os comandos encontrados no apˆendice A deste trabalho apresentam um pequeno problema, que n˜ao foi de meu interesse corrigi-lo (n˜ao afeta o meu objetivo), caso a fun¸c˜ao objetivo apresente mais de um ´otimo global com mesmo valor funcional (muito raro de acontecer) o programa n˜ao apresentar´a resultado satisfat´orio uma vez que ele escolher´a um dos dois para ser o verdadeiro ´otimo e mesmo que a cadeia atinja o outro ´otimo, a condi¸c˜ao de parada ainda n˜ao ser´a satisfeita.
Referˆencias Bibliogr´aficas
BOYABATLI, O.; SABUNCUOGLU, I. Parameter selection in genetic algorithms. Journal of Systemics, Cybernetics and Informatics, v. 4, n. 2, p. 78, 2004.
CRUZ, J. A. R.; DINIZ, I. C. Mean convergence time of inhomogeneous genetic algo- rithm with elitism. Numerical Functional Analysis and Optimization, Taylor & Francis, v. 37, n. 8, p. 966–974, 2016.
EL-MIHOUB, T. A. et al. Hybrid genetic algorithms: A review. Engineering Letters, v. 13, n. 2, p. 124–137, 2006.
FOGARTY, T. C. Varying the probability of mutation in the genetic algorithm. In: MORGAN KAUFMANN PUBLISHERS INC. Proceedings of the third international conference on Genetic algorithms. [S.l.], 1989. p. 104–109.
HOLLAND, J. H. Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence. [S.l.]: U Michigan Press, 1975.
KOZA, J. R. Genetic programming ii: Automatic discovery of reusable subprograms. Cambridge, MA, USA, 1994.
LEVIN, D. A.; PERES, Y.; WILMER, E. L. Markov chains and mixing times. Pro- vidence, R.I. American Mathematical Society, 2009. With a chapter on coupling from the past by James G. Propp and David B. Wilson. ISBN 978-0-8218-4739-8. Dispon´ıvel em: <http://opac.inria.fr/record=b1128575>.
LUKE, S.; SPECTOR, L. A comparison of crossover and mutation in genetic program- ming. Genetic Programming, v. 97, p. 240–248, 1997.
MITCHELL, M. An introduction to genetic algorithms. [S.l.]: MIT press, 1998.
NETO, R.; CEC´ILIO, J. Modelagem dos algor´ıtmos gen´etico simples e simulated an- nealing por cadeias de markov. Universidade Federal do Rio Grande do Norte, 2010. POLI, R. et al. A field guide to genetic programming. [S.l.]: Lulu. com, 2008.
RAJ, A. Evolutionary Optimization Algorithms for Nonlinear Systems. Tese (Douto- rado) — Citeseer, 2013.
RUDOLPH, G. Convergence analysis of canonical genetic algorithms. IEEE transacti- ons on neural networks, IEEE, v. 5, n. 1, p. 96–101, 1994.
SCHAFFER, J. D. et al. A study of control parameters affecting online performance of genetic algorithms for function optimization. In: MORGAN KAUFMANN PU- BLISHERS INC. Proceedings of the third international conference on Genetic algo- rithms. [S.l.], 1989. p. 51–60.
SHONKWILER, R. W.; MENDIVIL, F. Explorations in Monte Carlo Methods. [S.l.]: Springer Science & Business Media, 2009.
SOBRINHO, P. d. S. Algoritmos gen´eticos canˆonico e elitista: uma abordagem com- parativa. Universidade Federal do Rio Grande do Norte, 2014.
Apˆendice A
Comandos no R
A.1
Algoritmo gen´etico
#FUN¸C~AO DISCRETIZA¸C~AO DE FUN¸C~AO 1 DIMENCIONAL dom1 = function (inf,sup,div){
k = (sup-inf)/div return(seq(inf,sup,k)) #OBS: length(vet) = div+1 }
#FUN¸C~AO DISCRETIZA¸C~AO DE FUN¸C~AO 2 DIMENSIONAL #dom2 = function (infx, supx, infy, supy, div){
# r=s=NULL # kx = (supx-infx)/div # ky = (supy-infy)/div # X = seq(infx,supx,kx) # Y = seq(infy,supy,ky) # for (i in 1:length(Y)){ # r = c(r, rep(X[i],length(Y))) # s = c(s,Y) # } # return (matrix(as.numeric(cbind(r,s)),nrow=(div+1)^2,ncol=2))
# #OBS: length(vet) = (div+1)^2
#}
#FUN¸C~AO CONVERSOR NATURAL -> BIN´ARIO bin = function(natural, N_bits){
bit=NA
natural = natural - 1 for (i in N_bits:1){
if (((natural/2)-(natural %/% 2)) == 0){
bit[i] = 0 }else{ bit[i] = 1 } natural = natural %/% 2 } return(bit) }
#FUN¸C~AO CONVERSOR BIN´ARIO -> NATURAL nat = function (binario){
k = seq((length(binario)-1),0,-1) return (sum(binario*2^k)+1) }
#FUN¸C~AO DE TROCA DE BIT troca = function(x){ if(x==0){ return (1) }else{ return (0) } }
#FUN¸C~AO ELITIZA¸C~AO 1 DIMENSIONAL maior = function (amostra){
return(amostra[f(intervalo[amostra])== max(f(intervalo[amostra]))])
}
#FUN¸C~AO ELITIZA¸C~AO 2 DIMENSIONAL #maior = function (amostra){
# return(amostra[which(valor[amostra]==
# max(valor[amostra]))[1]])
#}
#ETAPA DE SELE¸C~AO 1 DIMENSIONAL sel = function (indice,valor){
dist_f = f(valor)/sum(f(valor)) return(sample(indice, length(indice),
replace = T, prob = dist_f)) }
A.1 Algoritmo gen´etico 55
#sel = function (indice,intervalo){
# dist_f = valor[amostra]/sum(valor[amostra])
# return(sample(indice, length(indice),
# replace = T, prob = dist_f))
#}
#ETAPA DE MUTA¸C~AO
mut = function (amostra, P_mut, N_bits){ for (i in 1:length(amostra)){ sacola = bin(amostra[i],N_bits) for (j in 1:N_bits){ if(runif(1,0,1) < P_mut){ sacola[j] = troca(sacola[j]) } } amostra[i] = nat(sacola) } return (amostra) } #ETAPA DE CRUZAMENTO
cru = function(amostra, P_cru,N_bits){ escolhidos = which(rbinom(amostra,1,prob = P_cru)==1) if(length(escolhidos) >= 2){ for (i in 1:(length(escolhidos)%/%2)){ sacola = sample(1:N_bits,1, replace=TRUE):N_bits sacola1 = bin(amostra[ escolhidos[2*i-1]],N_bits) sacola2 = bin(amostra[ escolhidos[2*i]],N_bits) sacola3 = sacola1 sacola1[sacola] = sacola2[sacola] sacola2[sacola] = sacola3[sacola] amostra[escolhidos[2*i-1]] = nat(sacola1) amostra[escolhidos[2*i]] = nat(sacola2) } } return(amostra) } #INICIO
zvet = dom1(0.11,0.90,79) yvet = dom1(0.11,0.90,79) for(z in 1:3){ for(y in 1:80){ passos = NULL for (w in 1:1000){ #ENTRADA pop = 10 N_bits = 8 P_cru = zvet[z] P_mut = yvet[y] #CASO 1 DIMENSIONAL intervalo = dom(0,4,(2^N_bits)-1) #CASO 2 DIMENSIONAL #4 bits #intervalo = dom1(0,4,0,4,3) #8 bits #intervalo = dom2(0,10,0,10,15) #16 bits #intervalo = dom1(0,4,0,4,255) #valor=NULL #for (i in 1:length(intervalo[,1])){ # valor = c(valor,f(intervalo[i,])) #}
mi = min(which( valor == max(valor))[1]) - 1 ma = max(which( valor == max(valor))[1]) + 1
amostra = sample(seq(1,2^N_bits,1),pop) elite = maior(amostra)
#ITERA¸C~OES k=0
while(elite <= mi || elite >= ma){ amostra=cru(amostra,P_cru,N_bits) amostra=sel(amostra,intervalo) amostra=mut(amostra,P_mut,N_bits)
A.2 Fun¸c˜oes utilizadas 57