• Nenhum resultado encontrado

1 INTRODUÇÃO

2.6 Algoritmos Genéticos

2.6.2 Parâmetros de Influência e Configurações

2.6.2.7 Elitismo

O elitismo tem o objetivo de selecionar o melhor ou os melhores indivíduos de uma geração e automaticamente introduzi-los na geração seguinte, sem que aconteça o cruzamento. Assim, o algoritmo pode evitar que um resultado que seja muito bom seja perdido ou piorado.

3 METODOLOGIA

Nesse item, serão descritos todos os procedimentos utilizados, entre eles, os aspectos relacionados à implementação computacional, explorando o funcionamento e os recursos disponíveis para a análise estrutural e otimização de estruturas treliçadas via Algoritmos Genéticos. Este método de otimização encontra-se implementado no toolbox do MATLAB.

O código computacional do programa de otimização de treliças planas, criado pelo grupo de pesquisa do LECOM, passou por um processo de modificação durante o desenvolvimento dos estudos. MARTINS (2011), em seu trabalho de conclusão de curso, desenvolveu um programa computacional de otimização de treliças, utilizando o MEF para análise estrutural e, para otimização, o algoritmo de programação linear existente no MATLAB. No programa desenvolvido minimiza-se o peso da estrutura, utilizando como variáveis de projeto as seções transversais das barras, sob restrições de tensão, flexibilidade e flambagem local. Devido, aos avanços dos estudos, no emprego do Algoritmo Genético para otimização de estruturas, SELEGIN (2012), em seu projeto de pesquisa, modificou o algoritmo desenvolvido por MARTINS (2011), utilizando o mesmo método para análise estrutural, porém, no processo de otimização foi empregado o método do AG, estudando a influência dos parâmetros do algoritmo na eficiência deste. O programa desenvolvido possui a mesma função objetivo, entretanto, a mesma está submetida a restrição de tensão e deslocamento. Com relação, a última restrição, foi implementada apenas para um exemplo analisado, pois para implantação desta restrição em termos gerais, necessitariam de modificações computacionais mais significativas. Para atingir o objetivo inicial deste trabalho, que consiste em modificar o código computacional desenvolvido pelos alunos anteriores, melhorando seu desempenho, foram executadas as seguintes etapas:

a) Estudo e compreensão, dos fundamentos do Método dos Elementos Finitos (MEF) e sua aplicação na análise de estruturas;

b) Estudo e compreensão, do funcionamento dos Algoritmos Genéticos (AG) como técnica de otimização;

c) Compreensão das funções de Algoritmo Genético embutidas no MATLAB, através dos manuais fornecidos pelo software e de literatura específica;

d) Estudo e compreensão da metodologia do algoritmo de otimização de treliças planas, em desenvolvimento pelo grupo de pesquisa do LECOM.

Em sequência, iniciou-se o processo de desenvolvimento e modificação do algoritmo principal, implementado no programa MATLAB, o qual possui uma linguagem de alto nível e

uma boa performance. Esse programa possui aplicações chamadas toolboxes, que são compilações de funções pré-existentes mais elementares. O código computacional que foi desenvolvido, divide-se em quatro etapas: entrada de dados, processamento (análise estrutural: cálculo de esforços e deslocamentos), otimização (Método do Algoritmo Genético) e saída de dados (impressão dos resultados referentes à estrutura otimizada, esboços de gráficos e outras informações relevantes). Apresenta-se na Figura 24, o fluxograma do programa de otimização de treliças.

Figura 24 – Fluxograma do programa desenvolvido para otimização de treliças

Fonte: Autor (2016)

A primeira etapa é a leitura dos dados de entrada, realizada pela função implementada @dados_entrada, chamada pelo algoritmo do programa principal. Esta realiza a leitura do arquivo de texto de extensão “.txt”, que possui todos os dados da geometria da estrutura, propriedades dos materiais, condições de contorno e carregamento. Além disso, no arquivo de entrada, são definidos alguns parâmetros do AG (tamanho da população, taxa de mutação e número máximo de gerações).

Em seguida, o algoritmo realiza a análise estrutural via MEF, através da função implementada @trelica, calculando as matrizes de rigidez locais e matriz de rigidez global. Assim, obtém-se os esforços nas barras e deslocamentos nodais da estrutura.

O processo de otimização pelo AG, no software MATLAB, pode ser feito de duas formas: por chamada de linha de comando ou usando diretamente a janela gráfica. Para não precisar da intervenção do usuário quando executado o algoritmo implementado, neste trabalho, será utilizado a primeira opção, através do acionamento de uma referência ao AG, através desta sintaxe básica:

[x fval exitflag output] = ga (@funcaoaptidao, nsec, …, amin, amax, restricao, options)

onde os parâmetros de entrada são ‘funcaoaptidao’ (nome da função de aptidão utilizada), ‘nvars’ (número de variáveis de projeto), ‘amin’ (limite mínimo das variáveis de projeto), ‘amax’ (limite máximo das variáveis de projeto), ‘restrição’ (função de restrição da função optidão), ‘options’ (opções dos parâmetros de calibração do AG). E os parâmetros de saída são ‘x’ (nome da variável de projeto), ‘fval’ (valor da função objetivo correspondente a ‘x’), ‘exitflag’ (descreve a condição de saída do AG) e ‘output’ (retorna uma estrutura possuindo o número de gerações, total de avaliações da função, entre outras informações).

A função aptidão (@Volume_Trelica) implementada neste algoritmo, possui o objetivo de minimizar o volume das treliças estudadas. Isso foi umas das modificações realizadas neste trabalho, quando relacionado aos trabalhos anteriores desenvolvidos pelo grupo de estudo do LECOM, pois os mesmos, tinham o objetivo de reduzir a massa das treliças estudadas.

Além disso, foram implementadas três funções de restrição no programa em desenvolvimento, restrição de tensão (@RestricaoT_Trelica), restrição de deslocamento (@RestricaoD_Treliça) e restrição de tensão e deslocamento (@RestricaoTD_Trelica). Neste trabalho, a restrição de deslocamento, foi implementada computacionalmente, em termos gerais, não apenas para o caso desenvolvido por SELEGIN (2012). Outra modificação, ocorreu no âmbito da otimização, para cada geração no processo da técnica do AG, as variáveis de projeto são atualizadas, resultando em um melhor desempenho computacional.

As opções do AG, parâmetro de entrada da função do AG ‘options’, como tipo de seleção dos melhores indivíduos, geração dos filhos, tipo de recombinação, taxa de mutação, operadores genéticos de reprodução, entre outros, podem ser ajustadas através de outra linha de comando, através da seguinte sintaxe básica:

onde ‘options’ é o nome da varivável que vai guardar as preferências para as opções do AG, “op1”, “op2” e “opN” se referem as opções possíveis (colocadas entre aspas simples) e ‘op1val’, ‘op2val’ e ‘opNval’ se referem aos respectivos valores ou métodos modificadores das opções selecionadas.

Houve modificações em alguns parâmetros do AG neste trabalho, gerando melhores resultados quando comparados aos trabalhos anteriores. Os parâmetros modificados foram: População Viável (Feasible Population), que cria uma população inicial aleatória que satisfaça todos os limites e restrições lineares, resultando assim em indivíduos mais refinados ao problema, quando comparada a População Uniforme, dita como padrão, para os casos em que não possuem restrições, que baseia-se na criação de uma população inicial aleatória, em uma distribuição uniforme; Seleção Roleta (Roulette), que escolhe os pais simulando uma roleta, no qual a seção da mesma corresponde proporcionalmente à expectativa de um indivíduo. Essa modificação retornou melhores resultados, devido a uma estratégia de busca mais eficaz quando comparada a Seleção Uniforme, útil para testes; e a Recombinação Heurística (Heuristic), que retorna um filho que se encontra na linha que contém dois pais, com uma pequena distância do pai com o melhor valor de fitness e uma maior distância do pai de pior fitness, retornando um indivíduo com melhores características quando relacionada a Recombinação Dispersa (Scattered), a recombinação padrão do Algoritmo Genético.

Quando o AG é acionado no código implementado, o seu funcionamento interno é dado pelas seguintes etapas:

1- Recebe os métodos/parâmetros;

2- Cria uma população inicial aleatória, dentro dos limites especificados; 3- Avalia a função objetivo e de aptidão para cada indivíduo desta população;

4- Cria uma sequência de uma nova população para geração seguinte, aplicando os operadores genéticos de recombinação (crossover) e mutação, através da seleção dos mais aptos para reprodução;

5- Os critérios de parada são avaliados e a rotina segue.

O algoritmo utiliza cinco critérios de paradas, podendo serem modificados pelo usuário, que são eles:

 Quando o AG atingir o número máximo de gerações determinado pelo usuário;  Tempo de processamento determinado;

 Convergência, isto é, quando a tolerância da função aptidão da população traduz uma estagnação no seu valor após gerações consecutivas;

 Tolerância das restrições;

Neste trabalho foram analisados os seguintes parâmetros: tamanho e tipo da população inicial, taxa e tipo de mutação, taxa e tipo de recombinação (crossover), tipo de seleção, elitismo, fator de penalização e número máximo de gerações.

Outra modificação no código computacional do programa de otimização de treliças planas, realizado neste trabalho, está relacionada a função saída de dados (@Saida). Além do arquivo de texto com todas as informações da treliça otimizada, necessitou-se de arquivos de texto, para implementação da interface entre o código computacional desenvolvido e o programa comercial de pós-processamento GiD (versão 12.0.8). As saídas do programa geram três arquivos de textos. O primeiro, ficheiro “.txt”, contém as informações iniciais e o resultado da otimização do projeto. O segundo, ficheiro “.msh”, ao contrário do anterior, não serve para leitura dos resultados, mas sim para o pós-processamento realizado pelo GiD, que possui as informações de geometria da estrutura. O terceiro, ficheiro “.res”, é também utilizado pelo programa GiD, permite a visualização gráfica dos resultados obtidos.

No pós-processamento realizado pelo GiD, no qual temos uma resposta gráfica do problema, são plotadas a estrutura treliçada e os seus resultados (esforços nas barras, tensões nas barras, deslocamentos nodais na direção x e deslocamentos nodais na direção y). Para efeito visual da solução otimizada, o programa plota seus resultados de acordo com uma escala de cores, enriquecendo a qualidade gráfica.

Após a implementação e modificações necessárias do código do algoritmo, foi iniciada a fase de validação e calibração do programa, onde foram estudados quatro exemplos numéricos abordados na literatura clássica. O primeiro exemplo, treliça de 4 barras, abordado no trabalho de GHASEMI, et. al. (1997), sob restrição de tensão e deslocamento. O segundo exemplo, treliça de 10 barras, também abordado no trabalho de GHASEMI, et. al. (1997), sob restrição de tensão. O terceiro exemplo, treliça de 23 barras, abordado no trabalho de HULTMAN (2010), sob restrição de tensão. E o quarto exemplo, treliça de 47 barras, abordado no trabalho de CASTRO (2001), sob restrição de tensão.

4 RESULTADOS E DISCUSSÕES

Com o emprego da técnica de otimização do Algoritmo Genético, desenvolveu-se um programa computacional que auxilia na análise e dimensionamento ótimo de treliças planas, buscando reduzir o volume dessas estruturas. Nesse trabalho, foram consideradas as áreas das seções transversais das barras de treliça como variáveis contínuas de projeto, sob restrições de tensão e deslocamento.

Neste capítulo são apresentados os resultados computacionais encontrados para solução de problemas em otimização de treliças. Foram testados quatro exemplos numéricos, com configurações estruturais e restrições de projeto distintas, com objetivo de testar a eficiência e o desempenho do programa desenvolvido, através da comparação dos resultados obtidos com os resultados da literatura.

Para cada exemplo, realizou-se uma análise paramétrica, que consistiu na modificação do tamanho da população, e para as mesmas, foram consideradas três situações de taxa de mutação: 0,01 (1%), 0,1 (10%) e 0,3 (30%). Durante as avaliações realizadas, a variação do parâmetro tamanho da população, gerou variações nas variáveis de projeto, onde o mesmo foi calibrado, de forma que, os resultados se aproximaram aos resultados encontrados na literatura. Quanto a taxa de mutação, a mesma conclusão não pode ser aferida, observou-se que não ocorreram modificações nos resultados, acredita-se que a introdução dos novos indivíduos, com características diferentes dos existentes, não melhorou suas aptidões, e assim, não se multiplicaram para gerações futuras, ou seja, não aumentou a diversidade populacional. Portanto, os resultados mostrados no presente trabalho foram calculados para uma taxa de mutação de 1%.

Os parâmetros do AG para análise paramétrica dos quatros exemplos estão reunidos na Tabela 2:

Tabela 2 – Configuração paramétrica do AG.

Fonte: AUTOR (2016) População Inicial Tipo de Seleção Tipo de Mutação Tipo de Recombinação Função de Escalonamento Elitcount Crossover Fraction Fator de Penalização 1000 Parâmetros do AG Tipo

Viável (Feasible Population) Roleta (Roulette) Factível (Feasible) Heurística (Heuristic) Rank 5 0,85

Documentos relacionados