• Sonuç bulunamadı

İşlevsel Görme Puanından (İGP), diplopi, sürekli göz sulanması, kapak fonksiyon bozuklukları bulunması durumunda, sonraki sayfalarda, “Diğer Yapısal ve Fonksiyonel Kayıplar” alt

DAMAR HASTALIKLARI

6. İşlevsel Görme Puanından (İGP), diplopi, sürekli göz sulanması, kapak fonksiyon bozuklukları bulunması durumunda, sonraki sayfalarda, “Diğer Yapısal ve Fonksiyonel Kayıplar” alt

As principais classes do programa BIO e suas relac¸˜oes s˜ao mostradas na Figura 56. Assim como mostrado para o programa FAST, tal diagrama n˜ao representa relac¸˜oes hier´arquicas entre as classes, mas relac¸˜oes do tipo ”has a”. A seguir, cada uma das classes ser´a explicada separadamente.

Figura 56 – Estrutura Geral do Programa BIO.

Fonte: Elaborada pelo autor.

A classe do algoritmo de otimizac¸˜ao, cOptAlg, ´e respons´avel por controlar o pro- cesso de otimizac¸˜ao, com a criac¸˜ao e destruic¸˜ao de indiv´ıduos, aplicac¸˜ao de operadores gen´eticos e controle da convergˆencia e crit´erios de parada. Atualmente, somente o algoritmo gen´etico para

problemas laminados, cLamGA, est´a implementado, mas novos algoritmos podem ser futura- mente derivados da classe base. O objeto da classe algoritmo possui objetos para as classes Problema, Penalidade, Selec¸˜ao e Indiv´ıduo.

A classe Problema, cProblem, lida com os aspectos relacionados ao problema de otimizac¸˜ao a ser resolvido, com a definic¸˜ao das vari´aveis de projeto e seus limites e com a rotina de avaliac¸˜ao da Func¸˜ao Objetivo e das Restric¸˜oes de um dado indiv´ıduo. ´E importante ressaltar, portanto, que a classe do algoritmo n˜ao lida com os valores reais das vari´aveis, mas apenas com sua representac¸˜ao genot´ıpica. J´a a classe problema ´e a respons´avel pelo processo de decodificac¸˜ao e, portanto, lida com a representac¸˜ao fenot´ıpica das vari´aveis. Ressalta-se tamb´em que a classe cProblem n˜ao armazena os valores das vari´aveis de cada indiv´ıduo, mas apenas as listas com os poss´ıveis valores de cada vari´avel. A Figura 57 mostra a atual hierarquia da classe cProblem.

Figura 57 – Hierarquia da Classe cProblem.

Fonte: Elaborada pelo autor.

Dois tipos principais de problema est˜ao implementados. Os problemas da classe cBenchmark s˜ao problemas num´ericos simples cujas soluc¸˜oes est˜ao dispon´ıveis na literatura. Tais problemas s˜ao utilizados para validar e verificar novas implementac¸˜oes realizadas no pro- grama antes de tratar problemas mais complexos. J´a a classe cLaminated lida com proble- mas relacionados a comp´ositos laminados, com a definic¸˜ao de func¸˜oes comuns para qualquer tipo de problema comp´osito, como a decodificac¸˜ao e considerac¸˜ao de laminados sim´etricos e sim´etricos-balanceados. Dela s˜ao derivados os dois tipos de problema utilizados nesta disser- tac¸˜ao, a classe cLamShell e a classe cLamShellNL. Em ambas, a an´alise de cascas ´e tratada utilizando o programa FAST, descrito anteriormente.

A classe cLamShell trata da otimizac¸˜ao de problemas de casca lineares, cujas tens˜oes e matrizes constitutivas s˜ao pr´e-integradas na sec¸˜ao transversal. Devido a este fato, os crit´erios de falha s˜ao calculados diretamente no programa de otimizac¸˜ao a partir dos esforc¸os resultantes em cada ponto de Gauss lidos do arquivo de sa´ıda do programa FAST. Para isso, a matriz ABD (Equac¸˜ao 36) do laminado ´e calculada e utilizada para encontrar as tens˜oes em cada ponto da espessura do mesmo. As tens˜oes s˜ao ent˜ao utilizadas para calcular os fatores de seguranc¸a de

falha da primeira lˆamina (FPF) utilizando algum dos crit´erios implementados (M´axima Tens˜ao, Tsai-Hill, Tsai-Wu).

J´a na classe cLamShellNL, os problemas com n˜ao-linearidade f´ısica ou geom´etrica s˜ao tratados. Neles, a sec¸˜ao transversal da casca ´e integrada durante a an´alise e os crit´erios de falha j´a s˜ao avaliados dentro do programa FAST. Assim, a implementac¸˜ao do problema de otimizac¸˜ao ´e simplificada e somente a leitura dos valores de carga e deslocamento de cada passo da an´alise ´e realizada.

A classe Penalidade, cPenalty, cont´em os m´etodos de penalidade descritos na Sec¸˜ao 5.2.2, utilizados em problemas de otimizac¸˜ao com restric¸˜ao. A sua hierarquia ´e mostrada na Figura 58, contendo uma classe base abstrata e uma classe derivada para cada m´etodo. A func¸˜ao delas ´e receber um conjunto de indiv´ıduos e calcular a func¸˜ao objetivo penalizada de cada um deles.

Figura 58 – Hierarquia da classe cPenalty.

Fonte: Elaborada pelo autor.

J´a a classe Selec¸˜ao, cSelection, cont´em os dois m´etodos de c´alculo de probabilidade de selec¸˜ao mostrados na Sec¸˜ao 5.2.3. Sua estrutura hier´arquica ´e mostrada na Figura 59. ´E importante ressaltar que ambos os m´etodos de selec¸˜ao utilizam a estrat´egia da Roleta para sele- cionar indiv´ıduos. Futuramente, outros m´etodos, como o Torneio e a Amostragem Estoc´astica, podem ser incorporados. O objetivo dos m´etodos ´e receber uma populac¸˜ao de indiv´ıduos e retornar outra populac¸˜ao de indiv´ıduos selecionados a partir dos primeiros.

Figura 59 – Hierarquia da classe cSelection.

Fonte: Elaborada pelo autor.

A classe Indiv´ıduo, cIndividual, ´e respons´avel por armazenar os valores das vari´a- veis de projeto (gen´otipo) e os valores da func¸˜ao objetivo, func¸˜ao objetivo penalizada e aptid˜ao.

Cada objeto representa, portanto, um indiv´ıduo. Al´em de armazenar tais dados, a classe ´e res- pons´avel pelos operadores gen´eticos, cujas formulac¸˜oes podem variar dependendo do tipo de indiv´ıduo utilizado. A hierarquia atual da classe ´e mostrada na Figura 60. Por fim, a classe Populac¸˜ao, cPopulation, ´e respons´avel por armazenar e gerenciar um conjunto de indiv´ıduos, auxiliando na criac¸˜ao e ordenac¸˜ao dos mesmos. Para os problemas num´ericos da classe cBen- chmark, utiliza-se indiv´ıduos cujas vari´aveis s˜ao armazenadas em um vetor de n´umeros inteiros (cIndivIntVec), enquanto que para problemas laminados utiliza-se indiv´ıduos do tipo cIndivInt- Mat, cujas vari´aveis s˜ao armazenadas em uma matriz de inteiros.

Figura 60 – Hierarquia da classe cIndividual.

Fonte: Elaborada pelo autor.

Utilizando as classes apresentadas, o fluxo da resoluc¸˜ao de um problema usando o algoritmo proposto nesta dissertac¸˜ao pode ser representado pela sequˆencia de passos mostrada na Figura 61. Nela, ´e importante ressaltar que o elitismo ´e aplicado como consequˆencia da substituic¸˜ao dos piores indiv´ıduos da populac¸˜ao corrente pelos novos indiv´ıduos gerados pelo cruzamento. Assim, em uma populac¸˜ao de 100 indiv´ıduos e utilizando uma taxa de cruzamento igual a 0.80, os 80 piores indiv´ıduos ser˜ao substitu´ıdos pelos filhos gerados e os 20 melhores permanecer˜ao por elitismo.