• Nenhum resultado encontrado

Análise Geral da Antena do Modelo 5 Encontrada pelos Algoritmos

5.3 Meta 2 Aplicação das Heurísticas na Busca por Largura de Banda

5.3.9 Análise Geral da Antena do Modelo 5 Encontrada pelos Algoritmos

Por fim, o modelo 5, que move em duas dimensões apenas dois vértices nas diagonais opostas do patch, também obteve resultados idênticos de banda exclusiva em CP de 29,3 MHz com ambos os algoritmos, algo ligeiramente inferior ao melhor resultado do modelo 2. O parâmetro ∆x assumiu o valor de 1,5232 mm, enquanto ∆y ficou próximo

de 0,43 mm.

Embora na Fig.5.65 não seja possível observar o formato de função de |S11|

semelhante a “W” que demonstra a convergência dos modos ortogonais que caracterizam polarização circular, ela está presente no modelo através da observação em função da razão axial. A frequência de projeto (2,45 GHz) também está destacada nos gráficos via marcador 1, assim como o intervalo de 2,4358 a 2,4651, totalizando 29,3 MHz de banda exclusiva em CP.

Figura 5.65 – S11 da melhor antena obtida para o modelo 5

Os valores de VSWR também possuem destaque para a banda exclusiva em CP e podem ser visualizados na Fig. 5.66

Figura 5.66 – VSWR da melhor antena obtida para o modelo 5

A carta de Smith, mostrada na Fig. 5.67, apresenta um comportamento um pouco diferente: a frequência de projeto (indicada pelo marcador 1) está situada num

ponto de convergência para um micro loop.

Figura 5.67 – Carta de Smith da melhor antena obtida para o modelo 5

As informações relacionadas ao padrão de irradiação da antena do modelo 5 mostram um ganho idêntico ao modelo 4 e um pouco superior ao modelo 2 (Fig. 5.68).

Figura 5.68 – Ganho da melhor antena obtida para o modelo 5 (2D)

A convergência da razão axial para a frequência de projeto, guiada pela termo de minimização da função de fitness, também pode ser observada no modelo 5 através da Fig. 5.69.

Os testes com o modelo 5 demonstraram que os melhores resultados foram obtidos quando a função dada pela Equação 5.3.3 foi empregada, tanto para w1 = 0, 5 e w2 = 0, 5, quanto para w1 = 0, 99 e w2 = 0, 01. Neste caso, apesar de os valores de banda

em CP serem iguais, o menor número de cálculos da função custo foi a do algoritmo de Evolução Diferencial frente ao CLONALG.

Figura 5.69 – Razão axial para o modelo 5

No geral, os três modelos apresentados (2, 4 e 5) atingem a polarização circular com características distintas que podem ser observadas nas curvas dos gráficos de S11 e

nas cartas de Smith dispostas nesta seção. O próximo capítulo apresenta a finalização do trabalho com as devidas análises e conclusões seguidas pelas perspectivas futuras relacionadas ao trabalho.

Conclusão

Este trabalho de doutorado é o resultado do estudo relacionado à aplicação de metaheurísticas na busca por geometrias de antenas de microfita de patches inicialmente quadrados ou retangulares. Do âmbito das heurísticas de computação natural, são extraídos dois algoritmos para utilização em testes nos espaços de busca geométricos que favoreçam modelos de antenas que obtenham grande largura de banda em polarização circular.

A análise de antenas, com as devidas informações resultantes como o módulo de S11 , VSWR, razão axial, padrão de irradiação, entre outras, pode ser realizada

computacionalmente através de softwares de simulação eletromagnética utilizando solvers cujos mecanismos de funcionamento são protegidos por seus fabricantes. Esses solvers, mesmo tendo seu código fechado, essencialmente trabalham com técnicas conhecidas como métodos de elementos finitos, método dos momentos, além de outras técnicas. Isso normalmente torna tais programas custosos do ponto de vista computacional.

Softwares como o CST Studio possuem mecanismos que permitem o acopla- mento de algoritmos desenvolvidos externamente por outras linguagens de programação. Com base nisso, implementou-se um motor evolutivo em linguagem C# do ambiente Microsoft .NET, que executa os algoritmos Clonalg e Evolução Diferencial, ambos algorit- mos populacionais que utilizam os recursos da ferramenta CST Studio para o cálculo das funções custo, que basicamente são informações usadas para se avaliar o desempenho de cada projeto de antena apresentado pelos algoritmos em cada iteração. O motor evolutivo possui uma arquitetura escalável, o que significa que novos algoritmos, assim como outras funções de avaliação, podem ser acrescentados ao sistema sem a necessidade de reescrever suas partes principais. Isso permite o reuso da ferramenta na exploração do tema com novos testes.

O esforço computacional envolvido na simulação das antenas, e consequente- mente das funções custo, costuma ser alto para uma abordagem populacional de exploração de domínios geométricos em que várias antenas diferentes precisam ser simuladas a cada iteração algorítmica. Recursos computacionais como clusters ou GPUs (Graphics Processor Units) podem reduzir os tempos de cálculo, mas o uso de tais recursos normalmente necessita de licenças específicas, o que pode aumentar os custos monetários envolvidos. No cenário de testes proposto no trabalho, apenas estações de trabalho equipadas com processadores de múltiplos núcleos foram utilizadas nas simulações.

Em um processo onde uma simples simulação pode levar vários minutos, e onde um algoritmo necessita de dezenas ou centenas dessas simulações, multiplicadas por outras centenas ou milhares de iterações, pode inviabilizar uma abordagem em que se aplica um

elevado número de iterações, ou mesmo um amplo conjunto de execuções do algoritmo a fim de análise de desempenho. Para reduzir os tempos de simulação e viabilizar a realização de centenas de testes, necessários à obtenção dos resultados, optou-se pela substituição do uso direto do solver por interpoladores lineares e bilineares implementados via C#. Isso reduziu drasticamente os tempos de simulação, mas limitou os testes apenas a subdomínios da função custo previamente amostrados e introduziu um erro de discretização. A técnica de amostragem resume-se basicamente a:

• Simulações são executadas em um conjunto de parâmetros definidos a priori com base na relação entre número de amostras e tempo de simulação.

• Adota-se um modelo de linearização dependendo do número de dimensões do pro- blema.

• As amostras obtidas na simulação são usadas como entrada no modelo de interpolação adotado, e espera-se que o modelo seja capaz de aproximar satisfatoriamente os pontos pertencentes ao domínio, mas que não estão contidos no conjunto de amostras.

A técnica abordada neste trabalho não possui a proposta de substituir o papel do projetista de antenas, mas sim apresentar uma maneira de evoluir ou refinar um projeto de base utilizando o conhecimento do projetista e a teoria de antenas em seu estado da arte. Dessa forma, não se pode descartar a necessidade do conhecimento prévio de um projetista para se criar uma “semente”, que é desenvolvida pelos algoritmos evolutivos na busca pelos objetivos inicialmente apresentados e codificados nas funções de avaliação ou

fitness.

Os resultados obtidos nos testes com o algoritmo de Evolução Diferencial e Clonalg baseiam-se em três modelos distintos de antenas de microfita: o modelo 2, no qual adota-se um elemento irradiador quase quadrado e com alimentação transversal, o modelo 4 , com alimentador centralizado no eixo x e cortes diagonais no elemento irradiador e, por fim, o modelo 5 com alimentador fixo e irradiador com vértices diagonais livres. Os modelos 2, 4 e 5 apresentaram, respectivamente, uma banda exclusiva em polarização circular de 34,3 MHz, 8,9 MHz e 29,3 MHz e ganhos em torno dos 6 dB, que caracterizam-se como interessantes, dada a característica de banda estreita das antenas de microfita e a dificuldade em se atingir os múltiplos objetivos (ampla banda e polarização circular) pelos projetistas.

Em uma análise geral, o algoritmo de Evolução Diferencial atinge a convergência em um número menor de execuções da função custo. Em um cenário onde o cálculo da função se dá pela utilização de solvers eletromagnéticos isso significa tempos menores de simulação, já que o número de execuções de cálculos das antenas na DE pode ser menor do que no algoritmo CLONALG. Porém, mesmo a Evolução Diferencial só é uma alternativa

viável para aplicação em cenários com espaços de busca maiores do que os amostrados aqui. Com base nos dados obtidos, em funções amostradas com baixa resolução, uma busca exaustiva obteria um menor tempo de convergência.

Perspectivas Futuras

Com a experiência obtida através deste trabalho, podem ser definidas possíveis formas de continuidade da pesquisa, como as sugeridas a seguir:

• Novas geometrias de antenas podem ser analisadas, extrapolando as limitações de parâmetros em espaços bidimensionais. Tal abordagem necessitará de maiores tempos de simulação e/ou melhores recursos computacionais.

• Do ponto de vista de novas contribuições para o campo da computação evolutiva, é possível adotar testes com um conjunto maior de algoritmos evolutivos.

• A abordagem multiobjetivo por escalarização pode mudar para técnicas que adotem fronteiras de Pareto, onde conjuntos de soluções que satisfaçam os requisitos de projeto passam a ser apresentados, ao invés de soluções singulares.

• Cálculo de funções custo mais precisas, através de solvers dimensionados para tal. Para que isso seja possível em tempo aceitável, haverá a necessidade de um maior poder computacional, como por exemplo, a utilização de computação paralela. • Aplicação de modelos surrogate para trabalhar com aproximações mais refinadas da

função de fitness (JIN, 2011).

• A fabricação dos modelos obtidos nas heurísticas para testes de campo e em laborató- rios. Isso é interessante dado o gap natural entre os modelos simulados em ambiente computacional e o estado da arte da confecção das antenas físicas pelo mercado. A construção e testes em laboratório permitiria uma real análise das características dos modelos de antena obtidos nos algoritmos e eventuais vantagens práticas.

Referências

AG, C. C. S. T. CST Studio Suite Getting started - Installation Modeling Post-Processing. [S.l.], 2016. Citado 2 vezes nas páginas 21e 61.

ALTAIR. Altair FEKO Overview. 2019. Urlhttps://altairhyperworks.com/product/FEKO. Acessado em 02/09/2019. Citado na página21.

ANSYS. ANSYS HFSS - 3D Electromagnetic Field Simulator for RF and Wireless

Design. 2019. Urlhttps://www.ansys.com/products/electronics/ansys-hfss. Acessado em

02/09/2019. Citado na página 21.

ARROYO, J. E. C. et al. Heurísticas e metaheurísticas para otimização combinatória multiobjetivo. [sn], 2002. Citado na página 49.

BANSAL, R. Handbook of engineering electromagnetics. [S.l.]: CRC Press, 2004. Citado na página 64.

BARKAT, O. Modeling and optimization of radiation characteristics of triangular superconducting microstrip antenna array. Journal of Computational Electronics, Springer, v. 13, n. 3, p. 657–665, 2014. Citado 3 vezes nas páginas 10, 22e 23.

BAZARAA, M. S.; SHERALI, H. D.; SHETTY, C. M. Nonlinear programming: theory

and algorithms. [S.l.]: John Wiley & Sons, 2013. Citado na página 47.

BAZARAA, M. S.; SHETTY, C. M. Foundations of optimization. [S.l.]: Springer Science & Business Media, 2012. v. 122. Citado na página 47.

BISHT, S. et al. Study the various feeding techniques of microstrip antenna using design and simulation using cst microwave studio. International Journal of Emerging Technology

and Advanced Engineering, v. 4, n. 9, 2014. Citado na página41.

CARAMIA, M.; DELL’OLMO, P. Multi-objective management in freight logistics:

Increasing capacity, service level and safety with optimization algorithms. [S.l.]: Springer

Science & Business Media, 2008. Citado na página 49.

CASTRO, L. N. D.; TIMMIS, J. An artificial immune network for multimodal function optimization. In: IEEE. Proceedings of the 2002 Congress on Evolutionary Computation.

CEC’02 (Cat. No. 02TH8600). [S.l.], 2002. v. 1, p. 699–704. Citado na página 54.

CASTRO, L. N. D.; ZUBEN, F. J. V. Learning and optimization using the clonal selection principle. IEEE transactions on evolutionary computation, IEEE, v. 6, n. 3, p. 239–251, 2002. Citado 3 vezes nas páginas 54, 58e 71.

CONSTANTINE, A. B. et al. Antenna theory: analysis and design. MICROSTRIP

ANTENNAS, third edition, John wiley & sons, 2005. Citado 2 vezes nas páginas 10 e 28.

CORNE, D. et al. New ideas in optimization. [S.l.]: McGraw-Hill Ltd., UK, 1999. Citado na página 55.

DAVIDSON, D. B. Computational electromagnetics for RF and microwave engineering. [S.l.]: Cambridge University Press, 2010. Citado na página 63.

DEB, A.; ROY, J. S.; GUPTA, B. Performance comparison of differential evolution, particle swarm optimization and genetic algorithm in the design of circularly polarized microstrip antennas. IEEE Transactions on Antennas and Propagation, IEEE, v. 62, n. 8, p. 3920–3928, 2014. Citado na página 23.

DELAI, A. et al. A polygonal immune-inspired framework for broadband patch antenna design. In: Microwave and Optoelectronics Conference (IMOC), 2015 SBMO/IEEE

MTT-S International. [S.l.: s.n.], 2015. p. 1–5. Citado na página66.

DESCHAMPS, G. A. Microstrip microwave antennas. In: Proceedings of the Third

Symposium on the USAF Antenna Research and Development Program, Oct. [S.l.: s.n.],

1953. p. 18–22. Citado na página 36.

EVERITT, B. S. The Cambridge dictionary of statistics. [S.l.]: Cambridge University Press, 2006. Citado na página 70.

FANG, D.-G. Antenna theory and microstrip antennas. [S.l.]: CRC Press, 2009. Citado 5 vezes nas páginas 26, 28,36, 37e 40.

GAMMA, E. Design patterns: elements of reusable object-oriented software. [S.l.]: Pearson Education India, 1995. Citado na página 58.

GARG, R. Microstrip Antenna Design Handbook. Artech House, 2001. (Antennas and Propagation Library). ISBN 9780890065136. Disponível em: <https://books.google.com. br/books?id=\_er1LO5pEnUC>. Citado na página 43.

HAMMERSTAD, E. O. Equations for microstrip circuit design. In: IEEE. 1975 5th

European Microwave Conference. [S.l.], 1975. p. 268–272. Citado na página41.

JAMES, J. R. et al. Handbook of microstrip antennas. [S.l.]: IET, 1989. v. 1. Citado 4 vezes nas páginas 37, 43,45 e67.

JIN, Y. Surrogate-assisted evolutionary computation: Recent advances and future challenges. Swarm and Evolutionary Computation, Elsevier, v. 1, n. 2, p. 61–70, 2011. Citado na página 114.

KIRANYAZ, S.; INCE, T.; GABBOUJ, M. Multidimensional particle swarm optimization

for machine learning and pattern recognition. [S.l.]: Springer, 2014. Citado 2 vezes nas

páginas 47e 48.

KRAUS, J. D. Antennas. [S.l.]: Tata McGraw-Hill Education, 1988. Citado 5 vezes nas páginas 10, 30, 32, 33e 35.

KUMAR, G.; RAY, K. Broadband Microstrip Antennas. Artech House, 2002. (Artech House antennas and propagation library). ISBN 9781580537674. Disponível em:

<https://books.google.com.br/books?id=wfl84429CsEC>. Citado 13 vezes nas páginas

10, 11, 27,34, 36, 37,38, 39, 40, 43,44, 45e 46.

KUNZ, K. S.; LUEBBERS, R. J. The finite difference time domain method for

LAMSALLI, M. et al. Genetic algorithm optimization for microstrip patch antenna miniaturization. Progress In Electromagnetics Research, EMW Publishing, v. 60, p. 113–120, 2016. Citado 2 vezes nas páginas10 e21.

LONG, M.; BLAKE, B. Antennas: Fundamentals, design, measurement. [S.l.]: The Institution of Engineering and Technology, 2009. Citado na página 33.

LUENBERGER, D. G.; YE, Y. et al. Linear and nonlinear programming. [S.l.]: Springer, 1984. v. 2. Citado na página47.

MÁTYÁS, L. Generalized method of moments estimation. [S.l.]: Cambridge University Press, 1999. v. 5. Citado na página 63.

MICHALEWICZ, Z.; FOGEL, D. B. How to solve it: modern heuristics. [S.l.]: Springer Science & Business Media, 2013. Citado na página 51.

MICROSOFT. Microsoft .NET. 2018. Urlhttps://www.microsoft.com/net/. Acessado em 27/05/2018. Citado na página 59.

MISHRA, R. G. et al. Optimization and analysis of high gain wideband microstrip patch antenna using genetic algorithm. International Journal of Engineering & Technology, v. 7, n. 1.5, p. 176–179, 2018. Citado 2 vezes nas páginas 10 e22.

PRESSMAN, R. S. Software engineering: a practitioner’s approach. [S.l.]: Palgrave Macmillan, 2005. Citado na página 58.

PRICE, K.; STORN, R. Differential evolution-a simple and efficient adaptive scheme for global optimization over continuous space. Technical Report, International Computer

Science Institute, 1995. Citado 2 vezes nas páginas 55e 58.

PRICE, K.; STORN, R. M.; LAMPINEN, J. A. Differential evolution: a practical

approach to global optimization. [S.l.]: Springer Science & Business Media, 2006. Citado

na página 55.

QING, A. Differential evolution: fundamentals and applications in electrical engineering. [S.l.]: John Wiley & Sons, 2009. Citado 6 vezes nas páginas 11, 47, 49, 50,51 e55. ROZENBERG, G.; BCK, T.; KOK, J. N. Handbook of natural computing. [S.l.]: Springer Publishing Company, Incorporated, 2011. Citado na página 52.

RUMPE, B. Agile Modeling with UML: Code Generation, Testing, Refactoring. [S.l.]: Springer, 2017. Citado na página 60.

SEIDL, M. et al. UML@ Classroom. [S.l.]: Springer, 2012. Citado na página 60. SHARMA, P.; GUPTA, K. Analysis and optimized design of single feed circularly polarized microstrip antennas. IEEE Transactions on Antennas and Propagation, IEEE, v. 31, n. 6, p. 949–955, 1983. Citado na página 45.

SHARP, J. Microsoft Visual C# 2013 Step by Step. [S.l.]: Pearson Education, 2013. Citado na página 59.

SILVESTER, P. Finite element analysis of planar microwave networks. IEEE Transactions

on Microwave Theory and Techniques, IEEE, v. 21, n. 2, p. 104–108, 1973. Citado na

SINGH, A.; SINGH, S. Design and optimization of a modified sierpinski fractal antenna for broadband applications. Applied Soft Computing, Elsevier, v. 38, p. 843–850, 2016. Citado 2 vezes nas páginas 10 e22.

STORN, R. On the usage of differential evolution for function optimization. In: IEEE.

Proceedings of North American Fuzzy Information Processing. [S.l.], 1996. p. 519–523.

Citado na página 55.

STORN, R.; PRICE, K. Differential evolution–a simple and efficient heuristic for global optimization over continuous spaces. Journal of global optimization, Springer, v. 11, n. 4, p. 341–359, 1997. Citado na página 55.

STUTZMAN, W.; THIELE, G. Antenna Theory and Design. Wiley, 2012. (Antenna Theory and Design). ISBN 9780470576649. Disponível em: <http: //books.google.com.br/books?id=xhZRA1K57wIC>. Citado na página 26.

TAFLOVE, A.; HAGNESS, S. C. Computational electrodynamics: the finite-difference

time-domain method. [S.l.]: Artech house, 2005. Citado na página 64.

WATERHOUSE, R. Microstrip patch antennas: a designer’s guide. [S.l.]: Springer Science & Business Media, 2013. Citado na página 36.

WONG, K.-L.; WU, J.-Y. Single-feed small circularly polarised square microstrip antenna.

APÊNDICE A – Motor Evolutivo (UML)

FloatIndividual

+ value:double[] + fitness:double + dimmensions: int + FloatIndividual(dimensions: int) + Clone: Individual

RNG : Random

- Random: rand + RNG() + Random(): void + Random(int seed): void + RandDouble(min: double, max:double): double + RandDoubleNormal(double: mean, double: stdDev): double

NaturalAlgorithm

+ initialPopSize: int + numOfIteractions: int -  population[]: IPopulation - archiver[]: GenArchiver -  evaluator: IEvaluation + abstract StartEvent: EventHandler + abstract IteractEvent: EventHandler + abstract EndEvent: EventHandler - randomGen: RNG + NaturalAlgotithm(population[]: IPopulation, evaluator: IEvaluation ) + abstract Run(): void + Stop() void

Clonalg

- randomGen: RNG; + alpha: double + nClones: int + renovationInterval: int + renovationPercent: int - clonesPop: IPopulation - Evaluation(ref population: Ipopulation,      indIdx: int): double - MakeMutClone(indIdx: int, clonesPop:     IPopulation, nClones: int): void

DifEvolution

-  randomGen: RNG; + cr: double + f: double + currentGen: int + DifEvolution(evaluator: IEvaluator) - Evaluation(population: IPopulation,       intIdx: int) : double - Evaluation(intIdx: int,       isT

rialV

ector: bool) : double

- Mutation(intIdx: int): void - Cossover(intIdx: int): void - RandomIndexes(numOfIndexes: int): int[]

MasterControl

- selParameters: ParameterInfo - settings: TheSettings - cstEngine: CstEngine - evaluator: IEvaluator + clonalg: Clonalg + pso: PSO + difEvolution: DifEvolution + funcGenerator: FuncGen + algThread: Thread + MasterControl(CstProjFileName:string) + GetCstParametersNames(): string[] + GetCstParametersV

alues(): double[]

+ SetCstParametersT

oEval(ParameterNames:string[]): void

- EndOfIteraction(): void - EndOfExecution(): void

<<Interface>> IEvaluation

Evaluation(population: IPopulation, indIdx: int): double Evaluation(population: IPopulation): []double

CSTEngine

- cstVBACom: CSTVBACom - cstCurrentFileName: string + OpenProject(name: string): int + CloseProject(): int + GetAllModelParameters(name: string[], value: double[]): int + GetNumOfParameters(): int + SetModelParameter(name: string, value: double) + SetModelParameters(names: string[], values: double[]) + GetFreqUnit(): String + GetMinFreq(): double + GetMaxFreq(): double + GetNumFreqSamples(): int + Get3DModelV

iew(bitmapFileName: string): void

+ GetVSWRPoints(index: int, data: double[,]): bool + GetSParPoints(index1: int, index2: int, data: double[,]): bool + SetFarfield(frequency:double): void + SetFarfields(fmin: double, fmax: double, samples: int) + StartSimulation(): bool + GetNumPorts(): int + GetCstParametersNames(): string[] + GetCstParametersV

alues(): double[]

+ CalcBandwidth(portId: int, projetcFreq, dBThreshold: double, bandwidth: double): bool + CalcAllBAndwidths(portId: int, dBThreshold: double, bwStartFreq: double[], bwV

alue: double): bool

CSTVBACom

PSO

randomGen: RNG; particleInfo: List<ParticleInfo> currentGen: int; omegaMax: double; omegaMin: double; numOfClusters: int ; phi1: double; phi2: double; vMax: double; vMin: double; constriction: bool; qui: double; bestParticleIndex: int[]; Evaluation(indIdx: int): double

struct ParameterInfo + string name:  string + value:  double + minV alue:  double + maxV alue  double struct TheSettings + projectFrequency:  double + bwThreshold:  double + lowSimFreq:  double + highSimFreq: double T racer + traceFile: StreamW riter

+ filecontent: string + available: bool + logFileName: string + Initialize(): void + T

race(className: string, methodName: string, logMsg: string)

CSTMWEvaluator

- parametersNames: string - parametersV

alues: double

- numOfPorts: int - cstEngine: CstEngine + CSTMWEvaluator(parametersNames:     string, cstEngine: CstEngine)

GenArchiver

+ int storedGenerations + bool fileRecorderOn - generation: List<GenerationData> + GetGeneration(generation: int): Individual[] + UpdateArchiveFiles(): void + ArchiveGeneration(individual: List<Individual>, fitA

verage: double, stdDeviation: double, coefV

ariation: double)

- saveGensCSVFile(generation: int): void - saveGensInfoCSVFile(generation: int) : void - saveBestGuyPerGenCSVFile(generation: int): void - GetNumOfGenerations(): int + GetGeneration(genIdx: int): IPopulation

FloatPopulation

-individual: List<FloatIndividual> -currentGen: int -popSize: int  -dimensions: int -minDimV

alue: double[]  -maxDimV alue: double[]  -overFlowT reat: Individual.OverflowT ype

-randGen: RNG  + Population(int size, int dim) + DSizePopulation(minDimV

alue: double[], maxDimV

alue: 

     double[], Individual.OverflowT

ype overFlowT

reat)

+ AddInd(numOfInd: int, randV

alues: bool): void

+ RemoveInd(index: int): bool + GetCurGeneration(): int + GetPopSize(generation: int): int + GetDimensions(): int + GetMaxDimV

alues(): double[]

+ GetMinDimV

alues(): double[]

+ GetFitA

verage(generation: int): double

+ GetFitness(generation: int, indIdx: int) : double; + SetIndV

alue(indIdx: int, dim: int, value: double): void

+ SetIndV

alues(indIdx: int, value: double[]): void

+ SetIndFitness(indIdx: int, value: double): void + GetIndV

alue(generation: int indIdx: int, dimension: int): do

+ GetIndV

alues(igeneration: int, indIdx: int) 

+ InitPopRandom(): void + InitPopRandGaus(mean: double, stdDev double): void + EuclideanDistance(generation: int, idx: int, idx2: int): dou + EuclideanDistA

verage(generation: int): double

+ SortCurPoptByFit(): void + FitnessStdtDevitation(generation: int) double + FitCoefV

ariation(generation: int): double

+ ReplaceInd(indIdx: int, individual: Individual): double + ClearCurPop(): void struct GenerationData + individual: 

Individual[] + fitnessA verage: double + stdDeviation:  double + coefV ariation:  double

APÊNDICE B – Descrição das Classes

Básicas do Motor Evolutivo

A representação por diagramação UML da classe que codifica o indivíduo ou solução candidata dos algoritmos populacionais no motor evolutivo é exibida na Fig. B.1. Os métodos da classe são representados pela nome seguido de parenteses.

Figura B.1 – Representação em UML da classe do indivíduo A descrição dos métodos e atributos da classe indivíduo são:

Tabela B.1 – Atributos e métodos da classe FloatIndividual.

NOME DESCRIÇÃO

id Código de identificação do indivíduo. É um tipo de dado string contendo um código de identificação de um indivíduo. Adota-se a terminologia GngP np, onde ng representa a geração em que o

indivíduo surgiu e np a posição do indivíduo nessa geração. Isso

configura um código único, já que indivíduos de mesma geração não podem ocupar a mesma posição numa coleção. Como exemplo, o id G5P42 indica o quadragésimo terceiro (a contagem se inicia em 0) indivíduo a surgir na geração 5.

fitness Valor de fitness ou adaptabilidade atribuído ao indivíduo.

dimensions Tamanho do vetor double que codifica uma solução (número de dimensões do problema)

value Vetor de doubles contendo os valores de cada parâmetro em suas posições.

Clone() Método que retorna um clone do próprio indivíduo, também conhe- cido como hard copy.

A classe que codifica a população implementa em seu interior um vetor de objetos do tipo indivíduo. Além desse vetor, a população carrega em si características particulares que potencializam sua aplicação, evitando que tenham de ser implementadas em outras partes do programa. O conteúdo da classe que implementa a população por ser observado no diagrama da Fig.B.2.

Figura B.2 – Representação em UML da classe da população

Os atributos e métodos da classe além de suas descrições estão disponíveis na TabelaB.2:

Tabela B.2 – Atributos e métodos da classe FloatPopulation.

NOME DESCRIÇÃO

individual Lista de objetos do tipo individual que compõem a população.

currentGen Armazena um valor inteiro indicando em qual geração a população se encontra.

popSize Indica o tamanho total da população (número de indi- víduos)

dimensions Indica o número de parâmetros codificados nos indiví- duos da população. Essencialmente define n do espaço de busca Rn.

minDimValue Vetor contendo os limites inferiores individuais de cada parâmetro ou dimensão.

maxDimValue Vetor contendo os limites superiores individuais de

Documentos relacionados