HEURÍSTICAS COMPUTACIONAIS APLICADAS À OTIMIZAÇÃO ESTRUTURAL DE TRELIÇAS BIDIMENSIONAIS



Documentos relacionados
CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

Inteligência Computacional Aplicada a Engenharia de Software

Módulo 4. Construindo uma solução OLAP

A Otimização Colônia de Formigas

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Dadas a base e a altura de um triangulo, determinar sua área.

Inteligência de Enxame: ACO

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Meta-heurísticas. Métodos Heurísticos José António Oliveira meta-heurísticas

Árvores Binárias de Busca

4 Arquitetura básica de um analisador de elementos de redes

Análise e Complexidade de Algoritmos

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

PLANEJAMENTO DA MANUFATURA

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

INF 1771 Inteligência Artificial

Inteligência Computacional: resolvendo problemas difíceis da vida real

Software livre: solução ou problema? Autores: Prates, C. F., Souza, C. H. F. B., Castro, C. V., Vilela, D. R. G., Almeida, N. M

Manual SAGe Versão 1.2 (a partir da versão )

Memória Cache. Prof. Leonardo Barreto Campos 1

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

ALGORITMOS GENÉTICOS

IW10. Rev.: 02. Especificações Técnicas

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Guia de Especificação de Caso de Uso Metodologia CELEPAR

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Simulação Computacional de Sistemas, ou simplesmente Simulação

Requisitos de Software

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Introdução. 1. Introdução

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Resolução de problemas e desenvolvimento de algoritmos

Perfil de investimentos

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Guia Site Empresarial

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

Feature-Driven Development

Engenharia de Software III

Introdução a Avaliação de Desempenho

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

INSTITUTO FLORENCE DE ENSINO COORDENAÇÃO DE PÓS-GRADUAÇÃO CURSO DE PÓS-GRADUAÇÃO EM (TÍTULO DO PROJETO) Acadêmico: Orientador:

Orientação a Objetos

O QUE É E COMO FUNCIONA O CREDIT SCORING PARTE I

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Aplicação do algoritmo genético na otimização da produção em indústrias de açúcar e álcool

5 Mecanismo de seleção de componentes

Este documento foi elaborado sob a licença

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

1. Conceitos de sistemas. Conceitos da Teoria de Sistemas. Conceitos de sistemas extraídos do dicionário Aurélio:

4 Segmentação Algoritmo proposto

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Curso de Graduação em Administração. Administração da Produção e Operações I

O DNA é formado por pedaços capazes de serem convertidos em algumas características. Esses pedaços são

6 Construção de Cenários

Gestão da Qualidade em Projetos

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Protocolo em Rampa Manual de Referência Rápida

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Uma Heurística para o Problema de Redução de Padrões de Corte

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Arquitetura de Rede de Computadores

3 Qualidade de Software

MELHORAMENTO DE PLANTAS AUTÓGAMAS POR HIBRIDAÇÃO

Modelagem e Simulação

ISO/IEC 12207: Gerência de Configuração

Manual de regras do Programa de valorização de boas idéias

Entendendo como funciona o NAT

CAPÍTULO 5 CONCLUSÕES, RECOMENDAÇÕES E LIMITAÇÕES. 1. Conclusões e Recomendações

Introdução às Redes Neurais Artificiais

Projeto de Sistemas I

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

3 Estratégia para o enriquecimento de informações

Simulação Transiente

PLANOS DE CONTINGÊNCIAS

O que é RAID? Tipos de RAID:

GUIA DE REDAÇÃO PARA TRABALHO DE EM974

RELATÓRIO TREINAMENTO ADP 2013 ETAPA 01: PLANEJAMENTO

SUGESTÕES PARA ARTICULAÇÃO ENTRE O MESTRADO EM DIREITO E A GRADUAÇÃO

Visite o hotsite do livro:

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Transcrição:

JOÃO PAULO GONÇALVES PEREIRA HEURÍSTICAS COMPUTACIONAIS APLICADAS À OTIMIZAÇÃO ESTRUTURAL DE TRELIÇAS BIDIMENSIONAIS Dissertação de Mestrado

1 JOÃO PAULO GONÇALVES PEREIRA HEURÍSTICAS COMPUTACIONAIS APLICADAS À OTIMIZAÇÃO ESTRUTURAL DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de Educação Tecnológica de Minas Gerais, como requisito parcial à obtenção do título de Mestre em Modelagem Matemática e Computacional. Área de concentração: Sistemas Inteligentes. Orientador: Prof. Dr. Gray Farias Moita Belo Horizonte Centro Federal de Educação Tecnológica de Minas Gerais Diretoria de Pesquisa e Pós-Graduação 2007

2 P436h Pereira, João Paulo Gonçalves 2007 Heurísticas computacionais aplicadas à otimização estrutural de treliças bidimensionais. 2007. 120 f. Orientador: Gray Farias Moita Dissertação (mestrado) Centro Federal de Educação Tecnológica de Minas Gerais. 1. Programação heurística. 2. Otimização combinatória. 3. Análise estrutural. I. Moita, Gray Farias. II. Centro Federal de Educação Tecnológica de Minas Gerais. III. Título. CDD 519.6

3 Folha de aprovação. Esta folha será fornecida pelo Programa de Pós- Graduação e deverá substituir esta página.

4 O rio sempre segue seu curso porque aprendeu a contornar os obstáculos. (Provérbio chinês).

5 AGRADECIMENTOS A Deus por me conceder a honra e o privilégio de estar vivendo este momento. Obrigado! Ao meu orientador, Prof. Dr. Gray Farias Moita, pela amizade, paciência, orientação e por acreditar em mim. Ao Prof. Dr. Roque Pitangueira da UFMG, por fornecer o software INSANE para a realização deste trabalho. À minha família, especialmente minha avó Helena, fonte de ensinamentos; meu avô José, por todo o carinho e apoio, meus tios Maria Helena e Victor, pelo ombro nas horas difíceis, e aos meus pais pelo incentivo. Aos meus sogros Wamberto e Margareth, a vocês toda minha gratidão por me receberem como o quarto filho da família e pela confiança depositada em mim. A Linkcom Informática LTDA, por possibilitar a realização deste projeto, permitindo conciliar trabalho e estudo. Aos professores do Cefet, aos meus colegas de mestrado Alexandre, João Paulo Xará, Jeferson, Magela, Manoel e aos demais; todos os amigos e companheiros do trabalho, obrigado pelo incentivo. E à minha noiva Carolina, futura esposa, amiga e eterna companheira, a você eu dedico cada página, pela sua paciência, pelo seu carinho, pelo seu amor. Dizem que, na história, por trás de todos os grandes homens existiu sempre uma grande mulher. Eu posso não ser um grande homem, mas com certeza você é uma grande mulher. De todo meu coração, muito obrigado. A vida é como o mar, incansável na busca pela onda perfeita, até descobrir que a perfeição está na própria busca.

6 SUMÁRIO LISTA DE FIGURAS...7 LISTA DE TABELAS...10 LISTA DE QUADROS...11 LISTA DE ABREVIATURAS E SIGLAS...12 RESUMO...13 ABSTRACT...14 1 INTRODUÇÃO...15 1.1 Considerações iniciais...16 1.2 Introdução às Heurísticas...17 1.3 Motivação e Objetivos do Trabalho...18 1.4 Organização do Trabalho...20 2 HEURÍSTICAS COMPUTACIONAIS...21 2.1 Algoritmos Genéticos...22 2.2 VNS...26 2.3 GRASP...29 2.4 Simulated Annealing...31 2.5 Busca Tabu...33 2.6 Colônia de Formigas...36 3 MODELAGEM E IMPLEMENTAÇÃO DOS ALGORITMOS...40 3.1 Modelagem do Problema...41 3.2 Implementação dos Algoritmos...42 3.2.1 Algoritmos Genéticos...42

7 3.2.2 VNS...48 3.2.3 GRASP...51 3.2.4 Simulated Annealing...52 3.2.5 Busca Tabu...54 3.2.6 Colônia de Formigas...57 4 DESENVOLVIMENTO...62 4.1 O Software INSANE e sua Integração...63 4.2 Inicialização de variáveis...65 5 ANÁLISE DOS RESULTADOS OBTIDOS...72 5.1 Estrutura de 10 Barras...74 5.1.1 Descrição do Problema...74 5.1.2 Resultados...75 5.1.3 Análise dos Resultados...77 5.2 Estrutura de 18 Barras...84 5.2.1 Descrição do Problema...84 5.2.2 Resultados...86 5.2.3 Análise dos Resultados...90 5.3 Estrutura de 47 Barras...96 5.3.1 Descrição do Problema...96 5.3.2 Resultados...99 5.3.3 Análise dos Resultados...100 5.4 Análise Comparativa entre os métodos...107 6 CONCLUSÃO...109 6.1 Considerações Gerais...110 6.2 Conclusões...110 6.3 Sugestões para Trabalhos Futuros...112 REFERÊNCIAS...114 ANEXO A CONFIGURAÇÃO DO AMBIENTE DE DESENVOLVIMENTO...119

7 LISTA DE FIGURAS FIGURA 2.7: Otimização por Colônia de Formigas....38 FIGURA 3.1: Funcionamento dos operadores de Crossover utilizados no AG. 45 FIGURA 3.8: Esquema da matriz de feromônio....59 FIGURA 4.1: Interface do software INSANE...64 FIGURA 4.2: Exemplo do arquivo de inicialização IniFile.XML....66 FIGURA 4.3: Executando o sistema OtimoEstrutura....66 FIGURA 4.4: Interface gráfica do sistema OtimoEstrutura...67 FIGURA 4.5: Exemplo do arquivo de inicialização do AG....67 FIGURA 4.6: Padronização de nomenclatura da modelagem de problemas no INSANE...69 FIGURA 4.7: Seqüência de eventos e intercâmbio de dados com o software INSANE...70 FIGURA 5.1: Topologia da estrutura com 10 barras. Fonte: Yokota et al. (1998)....74 FIGURA 5.2: Gráfico de Peso (lbs) x Tempo (s) do AG (10 Barras)....77 FIGURA 5.3: Gráfico de Peso (lbs) x Tempo (s) do VNS (10 Barras)....78 FIGURA 5.4: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (10 Barras)....79

8 FIGURA 5.5: Gráfico de Peso (lbs) x Tempo (s) do SA (10 Barras)...79 FIGURA 5.6: Gráfico de Peso (lbs) x Tempo (s) da BT (10 Barras)....80 FIGURA 5.7: Gráfico de Peso (lbs) x Tempo (s) do AC (10 Barras)....81 FIGURA 5.8: Melhores resultados de cada algoritmo (10 Barras)....81 FIGURA 5.9: Topologia da estrutura com 18 barras. Fonte: Fawaz et al. (2005)....85 FIGURA 5.10: Topologia da estrutura de 18 barras otimizada. Fonte: Fawaz et al. (2005)...86 FIGURA 5.11: Gráfico de Peso (lbs) x Tempo (s) do AG (18 Barras)....90 FIGURA 5.12: Gráfico de Peso (lbs) x Tempo (s) do VNS (18 Barras)....91 FIGURA 5.13: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (18 Barras)...91 FIGURA 5.14: Gráfico de Peso (lbs) x Tempo (s) do SA (18 Barras)...92 FIGURA 5.15: Gráfico de Peso (lbs) x Tempo (s) da BT (18 Barras)....93 FIGURA 5.16: Gráfico de Peso (lbs) x Tempo (s) do AC (18 Barras)....93 FIGURA 5.17: Melhores resultados de cada algoritmo (18 Barras)....94 FIGURA 5.18: Topologia da torre de 47 barras. Fonte: Castro (2001)....97 FIGURA 5.19: Gráfico de Peso (lbs) x Tempo (s) do AG (47 Barras)....101 FIGURA 5.20: Gráfico de Peso (lbs) x Tempo (s) do VNS (47 Barras)....102

9 FIGURA 5.21: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (47 Barras)...103 FIGURA 5.22: Gráfico de Peso (lbs) x Tempo (s) do SA (47 Barras)...103 FIGURA 5.23: Gráfico de Peso (lbs) x Tempo (s) da BT (47 Barras)....104 FIGURA 5.24: Gráfico de Peso (lbs) x Tempo (s) do AC (47 Barras)....105 FIGURA 5.25: Melhores resultados de cada algoritmo (47 Barras)....105

10 LISTA DE TABELAS TABELA 5.1: Restrições de projeto e valores de coeficientes. Fonte: Yokota et al. (1998)...74 TABELA 5.2: Melhores resultados obtidos em dez execuções para a treliça de 10 Barras...76 TABELA 5.3: Tensão máxima e deslocamento máximo das soluções para a treliça de 10 Barras....76 TABELA 5.4: Melhores resultados obtidos em dez execuções para a treliça de 18 Barras...88 TABELA 5.5: Tensão máxima e deslocamento máximo das soluções para a treliça de 18 Barras....88 TABELA 5.6: Melhores resultados obtidos em dez execuções para a treliça de 47 Barras...99 TABELA 5.7: Tensão máxima e deslocamento máximo das soluções para a treliça de 47 Barras....100 TABELA 5.8: Análise comparativa entre os algoritmos implementados....108

11 LISTA DE QUADROS QUADRO 3.1: PSEUDOCÓDIGO DO AG IMPLEMENTADO...48 QUADRO 3.2: PSEUDOCÓDIGO DO MÉTODO VNS....50 QUADRO 3.3: PSEUDOCÓDIGO DO MÉTODO GRASP...52 QUADRO 3.4: PSEUDOCÓDIGO DO MÉTODO SIMULATED ANNEALING...53 QUADRO 3.5: PSEUDOCÓDIGO DO MÉTODO BUSCA TABU....57 QUADRO 3.6: PSEUDOCÓDIGO DO MÉTODO COLÔNIA DE FORMIGAS...61

12 LISTA DE ABREVIATURAS E SIGLAS AC AG BT JDK SA VNS WWW XML Ant Colony Colônia de Formigas. Algoritmos Genéticos. Busca Tabu. Java Development Kit. Simulated Annealing. Variable Neighborhood Search - VNS. World Wide Web. Extensible Markup Language.

13 RESUMO Este trabalho visa mostrar o funcionamento de métodos computacionais, conhecidos como Heurísticas, na pesquisa de boas soluções para problemas de análise estrutural. O problema de otimização estrutural foi tratado estudando estruturas com treliças bidimensionais para obter as dimensões mínimas suficientes para as áreas de seção transversal de cada barra, obedecendo às restrições impostas pelo projeto. As heurísticas computacionais implementadas aqui são utilizadas com o intuito de fornecer métodos alternativos para minimizar o peso e, conseqüentemente, o custo destas estruturas. As vantagens e desvantagens de cada heurística implementada são descritas, analisando os resultados obtidos por meio de sua aplicação em três problemas com configurações estruturais distintas. Espera-se, através da análise de comportamento de cada heurística e dos resultados alcançados em cada problema, contribuir para fornecer métodos auxiliares à engenharia como forma de aprimorar projetos de construção de estruturas e ao mesmo tempo incorporar um arcabouço de conhecimentos em heurísticas computacionais e suas aplicações. PALAVRAS-CHAVE: Otimização estrutural, Heurísticas computacionais, Treliças bidimensionais.

14 ABSTRACT The present work is focused on demonstrating the functioning of the computational method known as heuristics, as used on the search of a solution for structural analysis. The problem of structural optimization was approached by optimizing plane trussed structures to obtain their minimal cross sectional area, restricted to the limitations imposed by the project. Computational Heuristics was used with the goal of finding alternative shapes to minimize the weight - and therefore the costs - of such structures. The advantages and drawbacks of each method are demonstrated, including the analysis of the results obtained in three different structural problems, as compared to the results of the methods applied on the different tests. This work and its results are aimed to contribute to the use of auxiliary methods in the field of Engineering as a mean to improve the structural projects, and to simultaneously compile a knowledge base on heuristics and its applications. KEY WORDS: Optimization, Computational heuristical, Plane trusses.

15 1 INTRODUÇÃO 1 INTRODUÇÃO

16 Este capítulo contém uma introdução ao estudo do problema de pesquisa tratado neste trabalho, que se refere à avaliação de métodos computacionais, conhecidos como heurísticas, aplicados a uma classe específica de problemas de otimização: projetos estruturais. Neste trabalho foi estudado um modelo específico, conhecido como Treliça. A Seção 1.1 descreve uma breve introdução contendo os conceitos relacionados com o problema tratado. A Seção 1.2 contém um pequeno resumo sobre heurísticas computacionais. A Seção 1.3 apresenta os principais motivos que idealizaram este estudo e a Seção 1.4 descreve a organização deste trabalho. 1.1 CONSIDERAÇÕES INICIAIS Nos dias atuais é muito comum utilizar estruturas treliçadas em projetos de grandes construções. Tais estruturas podem ser encontradas em diversos locais, como por exemplo, ginásios cobertos, estádios de futebol, viadutos, frutos da criatividade e inteligência humana. Treliças são estruturas compostas por barras articuladas nas extremidades - interligadas por rótulas e, por isso, unicamente sujeitas a esforços axiais. Essa configuração faz com que a estrutura seja leve e ao mesmo tempo resistente. Sendo assim, a idéia deste trabalho consiste em diminuir os custos de projetos que utilizam treliças em suas construções, reduzindo a quantidade de material empregado nestas estruturas, com o intuito de diminuir seu peso, mas de acordo com as restrições impostas pelo projeto. Para realizar o processo de otimização estrutural proposto foi utilizado um conjunto de métodos conhecidos como heurísticas computacionais. A seção seguinte descreve como tais métodos são utilizados na busca pela diminuição do peso estrutural e, principalmente, como estes métodos podem atingir boas soluções a um baixo custo computacional.

17 1.2 INTRODUÇÃO ÀS HEURÍSTICAS Segundo Castro (2001), o conceito de otimização de qualquer tarefa ou processo está diretamente ligado à sua realização, do modo mais eficiente possível. Esta eficiência pode ser avaliada de inúmeras maneiras, como por exemplo, a minimização de tempo gasto na limpeza de um jardim, a maximização de velocidade de processamento de um chip, dentre outros. Existem várias formas de realizar a otimização. A primeira linha de métodos desenvolvidos para este fim foi a Programação Matemática. Esta linha de pesquisa trata o problema de maneira iterativa e determinista, através de operações matriciais, gradientes, etc. A programação matemática é mais adequada para problemas que possuem um espaço de soluções viáveis bem definido, suavidade da função objetivo e convexidade do problema. Sua desvantagem é que ainda não existe nenhum método que possibilite a busca de soluções ótimas globais, ou seja, a busca pode convergir e se prender a qualquer solução ótima local. Sendo assim, devido a estas características, a programação matemática não é indicada para a classe de problemas estudada neste trabalho. Uma outra linha de métodos desenvolvidos para realizar a otimização é formada por um conjunto de técnicas compostas de algoritmos conhecidos como heurísticas computacionais. Para compreender melhor a idéia por trás dos métodos heurísticos veja a descrição a seguir: O desafio é produzir, em tempo reduzido, soluções tão próximas quanto possível da solução ótima. Muitos esforços têm sido feitos nessa direção e heurísticas muito eficientes foram desenvolvidas para diversos problemas. Entretanto, a maioria dessas heurísticas desenvolvidas é muito específica para um problema particular, não sendo eficiente (ou mesmo aplicável) na resolução de uma classe mais ampla de problemas. (SOUZA, 2005, p.2) Analisando a citação anterior, podem-se perceber dois conceitos distintos: o primeiro revela que as heurísticas podem atingir bons resultados, mas não garante em nenhum momento que a solução encontrada é a melhor solução global para o problema (porém, diferentemente da programação matemática, existem estratégias

18 que permitem escapar de ótimos locais). O segundo, e não menos importante, demonstra a necessidade da experimentação. Como cada heurística é desenvolvida para um problema em particular, a mesma pode não ser tão eficiente para outros problemas de explosão combinatória 1. Neste caso, os métodos devem ser calibrados para o problema em questão, e tal calibragem somente é possível por meio de inúmeros e variados testes, ajustando os parâmetros de cada uma das heurísticas, a fim de obter os melhores resultados. 1.3 MOTIVAÇÃO E OBJETIVOS DO TRABALHO A decisão de se trabalhar com métodos heurísticos reside nas respostas de duas perguntas: a) Tempo é considerado primordial? b) É preciso atingir boas soluções com um custo baixo de processamento? Estas duas perguntas descrevem exatamente as vantagens de se utilizar métodos heurísticos na resolução de problemas de pesquisa operacional. Com o objetivo de analisar o comportamento dos métodos heurísticos foi escolhida a área de otimização estrutural, utilizando treliças planas, por ser extremamente ampla e largamente utilizada atualmente. A utilização de heurísticas computacionais neste tipo de problema mostra-se muito vantajosa, podendo inclusive encorajar aqueles que buscam formas alternativas de reduzir os custos de seus projetos com um baixo tempo computacional. Contextualizando estas vantagens é possível, por exemplo, produzir a diminuição dos custos de um projeto de estruturas por meio de métodos heurísticos, visando diminuir a área da seção transversal das barras de aço utilizadas no projeto inicial. Uma redução de 30%, por exemplo, poderia significar uma grande redução nos custos totais da obra e, ainda assim, os requisitos de sustentação continuariam 1 Problemas classificados na literatura como NP-Dificeis, que não podem ser resolvidos em tempo polinomial, de maneira que um computador pode levar vários anos para encontrar a melhor solução.

19 sendo atendidos. O mesmo processo poderia ser empregado em outra variável, por exemplo, o tipo de material, ou até mesmo permitir a alteração das coordenadas dos nós que compõem a estrutura, permitindo que sua topologia seja modificada. Tal otimização poderia ainda inferir que determinadas barras que compõem o projeto poderiam ser removidas e, ainda assim, os requisitos de sustentação continuariam sendo atendidos. Estes são apenas alguns exemplos das inúmeras possibilidades que este processo de aperfeiçoamento pode oferecer. Para aplicar tal processo foram selecionadas algumas das principais heurísticas computacionais utilizadas atualmente. Dentro deste contexto, o presente trabalho possui os seguintes objetivos: Analisar cada heurística aplicada com o intuito de descobrir, para a classe de problemas analisada, quais os métodos mais eficientes, os métodos menos eficientes, e os métodos de melhor relação custo / benefício, onde o custo está relacionado à facilidade de implementação e o benefício diretamente ligado à eficiência e qualidade das soluções obtidas; Determinar a importância da modelagem do problema e sua direta influência no desempenho do algoritmo; Analisar o papel do operador de Mutação no processo de pesquisa do Algoritmo Genético; Executar testes de experimentação e calibração para determinar fatores como eficiência e facilidade de implementação de cada método, aplicados em problemas existentes na literatura. Muitos trabalhos vêm sendo realizados com relação à utilização de métodos heurísticos na resolução de problemas das mais diversas áreas. Na área de otimização aplicada à engenharia de estruturas, pode-se citar Castro (2001), Yang (2002), Fonseca e Pitangueira (2004), Dimou e Koumousis (2003), entre outros.

20 Espera-se que, por meio da análise dos algoritmos e dos resultados obtidos, este trabalho possa fornecer um arcabouço de conhecimentos àqueles que lidam diariamente com projetos estruturais. 1.4 ORGANIZAÇÃO DO TRABALHO O capítulo 2 introduz as heurísticas computacionais por meio de uma revisão de sua bibliografia. As heurísticas empregadas neste trabalho são detalhadas, fornecendo a teoria necessária para a compreensão de suas aplicações. O capítulo 3 descreve em detalhes como, a partir dos conceitos relacionados no capítulo 2, os algoritmos foram implementados e adaptados para o tipo de problema proposto. O capítulo 4 descreve o ambiente de desenvolvimento, bem como a maneira como foi realizada a integração do sistema aqui desenvolvido com o software INSANE, e suas variáveis de inicialização. O capítulo 5 exibe os problemas estruturais utilizados para a aplicação dos métodos heurísticos, juntamente com suas restrições e resultados obtidos para cada algoritmo implementado. Ainda neste capítulo é realizada uma análise dos resultados obtidos em cada problema através da aplicação de cada algoritmo, citando as vantagens e desvantagens de cada heurística utilizada. O capítulo 6 descreve as conclusões obtidas com este trabalho, bem como as contribuições e sugestões para futuros trabalhos na área de otimização estrutural.

21 2 HEURÍSTICAS COMPUTACIONAIS 2 HEURÍSTICAS COMPUTACIONAIS

22 Este capítulo contém uma revisão da bibliografia das diversas Heurísticas Computacionais utilizadas ao longo deste trabalho. Exemplos de aplicações que utilizam tais métodos, suas funcionalidades e suas características individuais serão detalhadas com o intuito de fornecer um embasamento teórico que será um facilitador para o entendimento dos algoritmos implementados neste trabalho. A Seção 2.1 descreve em detalhes as características e o funcionamento do método Algoritmos Genéticos. A Seção 2.2 detalha o método de Pesquisa em Vizinhança Variável, também conhecido como Variable Neighborhood Search VNS. A Seção 2.3 explica o método GRASP - Busca Gulosa e Randomizada. A Seção 2.4 descreve o método de Recozimento Simulado, conhecido como Simulated Annealing. A Seção 2.5 detalha o método Busca Tabu e a Seção 2.6 descreve o método Colônia de Formigas. 2.1 ALGORITMOS GENÉTICOS Dimou e Koumousis (2003) descrevem esta heurística de maneira simples e clara: Algoritmos genéticos são algoritmos de busca baseados nos conceitos de seleção natural e sobrevivência do indivíduo mais apto. São compostos por uma seqüência de rotinas computacionais, elaboradas com o intuito de simular o comportamento da evolução natural por meio do computador. Para compreender melhor seu funcionamento são descritos brevemente alguns conceitos associados à seleção natural e à genética, facilitando assim o entendimento do algoritmo ao perceber sua semelhança com a biologia. Charles Darwin (1809-1882) revolucionou as idéias acerca da evolução da vida e da origem das espécies. Durante suas pesquisas, Darwin observou que nem todos os organismos que nascem se reproduzem ou até mesmo sobrevivem. Darwin percebeu que os organismos que conseguiam sobreviver o faziam pelo fato de possuírem determinadas características que facilitavam sua adaptação ao ambiente. Tais organismos, devido a essas características que os permitia sobreviver, teriam uma probabilidade maior de se reproduzir, deixando descendentes. Desta maneira,

23 as características que proporcionavam maior adaptabilidade do organismo ao ambiente seriam passadas de geração a geração, garantindo a sobrevivência da espécie. De modo semelhante, as características que dificultavam a adaptabilidade iam sendo extintas, pois dificultavam a sobrevivência dos organismos que as possuíam e, por isso, não eram passadas de geração a geração. Zimmer (2003) relata que, segundo Darwin, este processo de evolução é lento, contínuo e aleatório, pois surge por meio de várias gerações, cada qual contribuindo para diversificar as características genéticas da espécie. Sua grande contribuição para a teoria da evolução foi o conceito de Seleção Natural, sendo esta composta das seguintes premissas (maiores detalhes podem ser encontrados nos livros de Darwin: Sobre a Origem das Espécies por Meio da Seleção Natural e A Descendência do Homem e Seleção em Relação ao Sexo ), segundo suas observações: 1. Indivíduos de uma mesma espécie exibem modificações aleatórias tanto em sua fisiologia quanto em sua forma; 2. Parte de tais modificações é transmitida aos seus descendentes; 3. Nem todos os indivíduos de uma mesma espécie se reproduzem. Caso isto ocorresse, as populações de inúmeras espécies cresceriam de forma exponencial; 4. Os seres de uma população lutam pela sua sobrevivência, pois os recursos disponíveis no meio ambiente são limitados; 5. Desta maneira, somente os indivíduos mais aptos (e que nem sempre são os mais fortes, e sim mais adaptados às condições ambientais) sobrevivem, possuindo mais chance de se reproduzirem; 6. Por conseguinte, as espécies de gerações futuras passam a ser compostas por indivíduos cada vez mais adaptados ao meio ambiente;

24 O processo de evolução realiza-se por meio de modificações, totalmente aleatórias, das características genéticas dos indivíduos que compõem a população. Ainda neste mesmo processo, a presença de uma ou mais características vantajosas à adaptação dos indivíduos aumenta de forma gradual à medida que os indivíduos mais adaptados se reproduzem. Este processo ocorre na natureza por meio da ação da Seleção Natural. Segundo Mitchell (1998), o primeiro passo em busca de um modelo matemático que representasse a teoria de Darwin surgiu com a obra The Genetic Theory of Natural Selection, elaborado pelo biólogo evolucionista R. A. Fisher. Logo em seguida, John H. Holland elaborou os Algoritmos Genéticos, juntamente com seus alunos e colegas da Universidade de Michigan em meados dos anos 60 e 70. Como resultado deste trabalho, Holland publica o livro Adaptation in Natural Systems e, no ano de 1989, David Goldberg (1989) publica Genetic Algorithms in Search, Optimization and Machine Learning, considerado até hoje um dos livros mais importantes sobre os Algoritmos Genéticos. De acordo com Mitchell (1998), baseado nas informações acima descritas tornase mais fácil descrever o Algoritmo Genético: é um conjunto de técnicas computacionais, normalmente empregadas na resolução de problemas de otimização, dotadas de uma plausibilidade biológica que se relaciona com a genética e as teorias de evolução e seleção natural. As variáveis dos problemas são representadas como genes em um cromossomo (também chamado de indivíduo ). Uma população é composta de vários indivíduos. Novos indivíduos são gerados por meio de operadores genéticos como Mutação, Seleção, Cruzamento e Clonagem, dando origem a uma nova população. A cada geração uma nova população é construída e esta, por sua vez, corresponde a um conjunto de possíveis soluções para um dado problema. A cada geração é aplicado o princípio da Seleção Natural, de maneira que somente os indivíduos mais aptos (que representam as melhores soluções para o problema naquele momento) sofrerão ação dos operadores genéticos (podendo

25 sofrer Mutação, Cruzamento, Clonagem, entre outros), enquanto os demais (menos aptos) serão descartados. Desta maneira pode-se compreender a evolução de um Algoritmo Genético como um processo de busca pela melhor solução para o problema tratado. Apesar de existirem diferentes implementações de Algoritmos Genéticos, algumas características são comuns entre elas: A partir de uma população inicial (geração zero), inicia-se a construção de novas populações (gerações futuras) pela aplicação dos operadores genéticos. Os operadores mais utilizados são: Mutação, Cruzamento e Clonagem. Podem existir algumas diferenças na maneira como os operadores são implementados, mas basicamente as regras são as mesmas: a Mutação seleciona um gene do indivíduo e modifica este gene, introduzindo assim uma nova característica na população; o Cruzamento é realizado entre dois indivíduos (pais), cruzando seus genes para a construção de novos indivíduos (filhos); e a Clonagem copia um indivíduo gerando outro novo idêntico a ele, que irá fazer parte da nova população. A Seleção, como o próprio nome sugere, seleciona os indivíduos mais aptos da população que irão sofrer ação destes operadores, como forma de produzir novos indivíduos para a próxima geração; Apresentam muita flexibilidade, no sentido de permitir, sem muita dificuldade, uma grande quantidade de modificações em sua implementação, permitindo fácil hibridização. O alto grau de flexibilização permite testar situações diversificadas no intuito de observar como ocorre a evolução até a resposta. Por outro lado, torna difícil a calibração do método uma vez que permite um número elevado de combinações entre os parâmetros.

26 Cada indivíduo da população recebe o nome de cromossomo e, segundo Souza (2005), cada cromossomo está associado a uma solução do problema e cada gene está associado a um componente da solução. Desta maneira, cada cromossomo da população é considerado um ponto entre os vários pontos existentes no espaço de busca. O fato de que cada cromossomo está associado a uma solução do problema não significa que esta solução seja viável. O processo de avaliação e seleção dos indivíduos está diretamente relacionado com a análise de viabilidade destas soluções, de maneira que indivíduos considerados de baixa ou nenhuma adaptabilidade são aqueles estão associados a soluções inviáveis ou de baixa qualidade. Para maiores detalhes é recomendada a leitura de Goldberg (1989). 2.2 PESQUISA EM VIZINHANÇA VARIÁVEL Este método, do inglês VNS (Variable Neighborhood Search), foi proposto por Mladenovic e Hansen (1997). É um método de busca local que realiza modificações sistemáticas das estruturas de vizinhanças para explorar o espaço de soluções. Sua idéia mais interessante reside no fato de que ele não segue uma trajetória específica em busca da solução. Ele explora vizinhanças cada vez mais distantes da solução corrente e redireciona a busca por uma nova solução se e somente se acontecer uma melhora na qualidade da solução encontrada. A busca se inicia da mesma maneira que os Algoritmos Genéticos: partindo de uma solução inicial, buscando novas soluções a partir desta e terminando quando atingir um critério de parada. A diferença é que o AG inicia sua pesquisa com uma população inicial (ou seja, vários cromossomos que representam várias soluções candidatas), enquanto o VNS parte de uma única solução inicial que, a partir desta, soluções vizinhas são geradas dentro da estrutura de vizinhança corrente. Para compreender melhor o funcionamento da pesquisa nas estruturas de vizinhança, torna-se necessário utilizar um problema de otimização como exemplo. Sendo assim, considere o problema do Caixeiro Viajante. Partindo de uma

27 determinada cidade, o viajante deverá visitar as demais cidades uma única vez e retornar à cidade de origem, de maneira a percorrer a menor distância possível. Trata-se de um problema de minimização de distâncias, em que o principal objetivo é diminuir os custos reduzindo a distância total percorrida. Considere um trajeto qualquer elaborado aleatoriamente. Este trajeto, por ser o primeiro, pode ser melhorado, mas serve de ponto de partida para a geração de um novo trajeto (nova solução) através de seu refinamento. Sendo assim, considere a elaboração de vários trajetos partindo do trajeto inicial, em que cada novo trajeto é construído modificando a ordem de visitação entre apenas duas cidades simultaneamente. Desta maneira, várias novas soluções são elaboradas e avaliadas, em que a única regra consiste na modificação da ordem de visitação de apenas duas cidades por vez. Sendo assim foi estabelecida uma estrutura de vizinhança do projeto inicial, composta por todos os trajetos elaborados a partir do trajeto inicial, modificando-se apenas a ordem de visitação entre somente duas cidades simultaneamente. De modo semelhante, uma outra estrutura de vizinhança poderia ser composta por todos os trajetos elaborados modificando-se a ordem de visitação entre somente quatro cidades por vez. Deste modo, trajetos cada vez mais distintos serão elaborados, diversificando a pesquisa e ampliando de forma gradual o espaço de soluções. A compreensão acerca do funcionamento das estruturas de vizinhança se faz necessária para o entendimento do método como um todo. A partir do trajeto inicial, o método inicia sua pesquisa gerando novas soluções, que estão contidas em uma determinada estrutura de vizinhança. A cada solução gerada é aplicado um método de busca local (que será explicado posteriormente). Se a solução resultante desta busca for melhor que a melhor solução encontrada até o momento, o método atualiza a melhor solução e redireciona a busca para a primeira estrutura de vizinhança. Caso contrário, o método modifica a estrutura de vizinhança e pesquisa uma nova solução dentro da nova estrutura. O processo é repetido até atingir um critério de parada, conforme será explicado posteriormente.