heurÍsticas computacionais aplicadas À … de treliÇas bidimensionais dissertação apresentada...

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

Upload: dangthuan

Post on 21-May-2018

226 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

JOÃO PAULO GONÇALVES PEREIRA

HEURÍSTICAS

COMPUTACIONAIS APLICADAS

À OTIMIZAÇÃO ESTRUTURAL

DE TRELIÇAS BIDIMENSIONAIS

Dissertação de Mestrado

Page 2: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 3: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 4: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

3

Folha de aprovação. Esta folha será

fornecida pelo Programa de Pós-

Graduação e deverá substituir esta

página.

Page 5: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

4

“O rio sempre segue seu curso porque

aprendeu a contornar os obstáculos“.

(Provérbio chinês).

Page 6: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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”.

Page 7: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 8: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 9: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 10: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 11: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 12: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 13: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 14: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

12

LISTA DE ABREVIATURAS E SIGLAS

AC – Ant Colony – Colônia de Formigas.

AG – Algoritmos Genéticos.

BT – Busca Tabu.

JDK – Java Development Kit.

SA – Simulated Annealing.

VNS – Variable Neighborhood Search - VNS.

WWW – World Wide Web.

XML – Extensible Markup Language.

Page 15: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 16: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 17: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

15

1 INTRODUÇÃO

1

INTRODUÇÃO

Page 18: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 19: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 20: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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ória1. 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.

Page 21: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 22: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 23: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

21

2 HEURÍSTICAS COMPUTACIONAIS

2

HEURÍSTICAS COMPUTACIONAIS

Page 24: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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,

Page 25: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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;

Page 26: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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 torna-

se 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

Page 27: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 28: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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

Page 29: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

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.

Page 30: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

28

Neste trabalho foi desenvolvido o método VNS tradicional, que utiliza como

busca local o método VND (Variable Neighborhood Descent ou Descida em

Vizinhança Variável). Este método foi proposto por Nenad Mladenovic e Pierre

Hansen (1997) e também utiliza o conceito de estruturas de vizinhança no seu

processo de busca. A diferença é que, a partir de uma solução inicial, o método

pesquisa a melhor solução vizinha dela e, caso não encontre, modifica a estrutura

de vizinhança e recomeça a pesquisa. O processo é repetido até atingir um critério

de parada, que pode ser o número máximo de iterações ou então o tempo máximo

de processamento. O melhor valor para este critério é determinado por meio do

processo de experimentação, que é detalhado no capítulo seguinte. É importante

salientar que a pesquisa pelo melhor vizinho da solução inicial pode ser muito cara

computacionalmente e, dependendo do tipo de problema, até inviável de ser

realizada.

A busca pelo melhor vizinho de uma solução pode se tornar uma tarefa árdua

caso a estrutura de vizinhança contenha um número extremamente elevado de

soluções possíveis. Em um dos problemas tratados neste trabalho (a estrutura de 10

barras), a área de seção transversal das barras possui uma precisão de seis casas

decimais. Isto torna a pesquisa pelo melhor vizinho inviável devido à grande

quantidade de combinações possíveis para se obter as estruturas. Para resolver tal

inconveniente, faz-se necessário retornar o primeiro melhor vizinho encontrado ou

restringir a quantidade de vizinhos gerados, reduzindo o espaço de busca da

estrutura de vizinhança.

Com relação aos parâmetros de calibração, diferentemente dos Algoritmos

Genéticos que são extremamente flexíveis, o VNS possui apenas um parâmetro, que

corresponde a um valor para determinar seu critério de parada. Este parâmetro pode

ser definido como um número máximo de iterações ou um valor de tempo máximo

de processamento (que foi o critério adotado neste trabalho para colher os

resultados de cada algoritmo). A inferência do valor deste parâmetro é realizada pelo

processo de experimentação (executando o algoritmo várias vezes, modificando

seus parâmetros e analisando os resultados obtidos), que tem por objetivo calibrar o

algoritmo para que este apresente os melhores resultados para o problema tratado.

Vale lembrar que cada tipo de problema deve passar pelo processo de

Page 31: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

29

experimentação, pois problemas diferentes muitas vezes requerem parâmetros

distintos.

Existem vários métodos que podem realizar o procedimento de busca local.

Sendo assim, torna-se interessante utilizar um parâmetro que defina qual método de

busca local utilizar. Como este trabalho utiliza apenas o VND como busca local, tal

parâmetro não se fez necessário, mas é uma ferramenta muito útil que aumenta um

pouco mais a flexibilidade do algoritmo.

Vale lembrar que cada tipo de problema requer uma modelagem diferente das

estruturas de vizinhança. Tal modelagem deve ser bem estudada, pois influencia

diretamente na qualidade dos resultados encontrados. O método VNS desenvolvido

neste trabalho será mostrado em detalhes, incluindo seu pseudocódigo, no capítulo

seguinte.

2.3 GRASP

O método GRASP (Greedy Randomized Adaptive Search Procedure), também

conhecido por busca adaptativa gulosa e randomizada, foi proposto por Feo (1995).

É um procedimento que consiste em duas fases: uma fase de construção da solução

inicial e uma fase de busca local a partir dessa solução gerada. Na fase de

construção, cada elemento gerado é adicionado a uma lista de candidatos, com uma

ordenação pré-determinada. O processo de seleção destes candidatos é realizado

por uma função gulosa e adaptativa, regulada por um único parâmetro de ajuste,

que varia entre 0 e 1. Quanto mais próximo de zero, mais guloso se torna o

algoritmo, ou seja, se movendo sempre em direção à primeira melhor solução

encontrada (cada nova solução gerada é comparada com a solução inicial. A

primeira melhor, passa a ser a nova solução corrente), intensificando a busca.

Quanto mais próximo de um, mais aleatório se torna o algoritmo, diversificando a

busca.

A fase de construção de uma solução inicial é realizada elemento por elemento.

Para facilitar a compreensão, imagine que a solução de um determinado problema é

Page 32: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

30

representada por um vetor de n posições. Cada posição do vetor é calculada da

seguinte maneira: é gerada uma quantidade t de valores candidatos para a posição.

Estes valores são armazenados em uma lista de maneira ordenada (esta ordenação

se faz pelo critério de interesse do problema. Se o objetivo é minimizar, ordena-se

pela ordem crescente, caso contrário, decrescente).

A partir da lista de valores candidatos, uma nova lista é preenchida. Esta nova

lista é chamada de Lista de Candidatos Restrita (LCR). O tamanho desta lista é

determinado pelo parâmetro α (seu valor varia de 0 a 1). Deste modo, seu tamanho

pode, por exemplo, ser calculado multiplicando o valor de α por n. Na LCR são

inseridos os melhores candidatos contidos na lista de candidatos e dela é

selecionada, de maneira aleatória, o valor que ocupará uma posição no vetor.

Desta maneira observa-se que, um valor de α = 0 faz o com que a geração de

soluções seja puramente gulosa (escolhe sempre o primeiro melhor), enquanto um

valor de α = 1 gera soluções totalmente aleatórias. Portanto, é extremamente

importante passar pelo processo de experimentação com o objetivo de calibrar este

parâmetro em busca de um valor que retorne os melhores resultados.

O processo de construção citado acima é repetido para cada posição do vetor

até que todas as posições possuam seus valores estabelecidos, formando assim

uma solução inicial. Neste ponto inicia-se o processo de busca local a partir da

solução gerada. Ao finalizar a busca local, compara-se a solução resultante com a

melhor solução encontrada até o momento, atualizando-a caso seja necessário. O

processo de construção de uma nova solução inicial recomeça passando novamente

pela busca local e atualizando a melhor solução caso necessário. O procedimento é

repetido até que se atinja um determinado critério de parada, que pode ser um

número máximo de iterações ou um valor de tempo máximo de processamento. O

método GRASP desenvolvido neste trabalho será mostrado em detalhes, incluindo

seu pseudocódigo, no capítulo seguinte.

Cabe ao pesquisador realizar a calibração do parâmetro α baseado na

experimentação, levando em consideração o tipo de problema tratado. Este método

tem-se mostrado bastante eficiente na resolução de diversos tipos de problema,

Page 33: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

31

principalmente por proporcionar a calibração do nível de gulosidade e aleatoriedade

na fase de construção da solução inicial. Além do mais, outras heurísticas podem ser

utilizadas para realizar a busca local como forma de testar sua eficiência para cada

tipo de problema. Alguns exemplos de aplicações GRASP com outras heurísticas

podem ser encontrados em Costa (2003), Silva (2004) e Trindade (2004).

Alguns procedimentos mais sofisticados incluem um processo dinâmico para a

definição do valor de α (seu valor é modificado durante a execução do problema,

alterando o tamanho da LCR dinamicamente), o que promove resultados melhores

do que procedimentos com valores fixos de α.

2.4 RECOZIMENTO SIMULADO

Este método, do inglês - Simulated Annealing, foi proposto originalmente por

Kirkpatrick et al. (1983) e, da mesma maneira que o método Algoritmos Genéticos,

faz uma analogia a uma outra área: a Termodinâmica. O método desenvolve uma

simulação do processo de resfriamento de um conjunto de átomos aquecidos,

operação que deu origem ao seu nome: Recozimento Simulado.

Esta heurística inicia sua busca a partir de uma solução inicial qualquer e a partir

daí gera aleatoriamente, a cada iteração, uma única solução vizinha. Considerando

um problema de minimização (como é o caso deste trabalho), o método se move

para a solução gerada caso sua função objetivo possua um valor menor que o valor

calculado para a solução anterior.

No entanto, este método trabalha com uma possibilidade de aceitação de

soluções de piora baseada na avaliação de uma expressão matemática. Tal

expressão é calculada por meio de um parâmetro existente no método, onde tal

probabilidade é resultante da avaliação da expressão e-∆/T, onde T é a temperatura,

que é ajustada durante o processo de experimentação.

De acordo com Kirkpatrick et al. (1983), este método possui boa flexibilidade,

uma vez que trabalha com os seguintes parâmetros de ajuste:

Page 34: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

32

• Valor da temperatura inicial (T0);

• Valor de α (que varia de 0 a 1);

• Número máximo de iterações ou critério de parada por tempo máximo de

processamento.

Para compreender melhor seu funcionamento, considere uma solução inicial

qualquer. A partir desta solução o método inicia sua busca, e o faz enquanto o valor

da temperatura for maior que zero. Neste ponto já se percebe a importância da

calibragem do valor da temperatura inicial, pois a cada iteração a temperatura é

atualizada multiplicando seu valor por α. Como α varia de 0 a 1, T estará sempre

diminuindo e, desta maneira, seu valor inicial influencia diretamente na execução do

método.

Prosseguindo com sua execução, o método verifica se já atingiu o número

máximo de iterações (parâmetro de ajuste). Caso não tenha atingido, inicia a

construção de uma solução vizinha da solução inicial. A partir daí, o método avalia a

solução inicial, a solução vizinha gerada e a melhor solução encontrada até o

momento (que neste ponto é a própria solução inicial). A avaliação das soluções

consiste em pontuar cada solução de acordo com o critério objetivo do problema.

De posse destes valores, o método calcula a diferença entre os valores da

solução vizinha e da solução inicial (valorvizinho - valorinicial). Caso o resultado desta

diferença seja menor que zero, o método verifica se o valor da solução vizinha é

menor (caso o problema seja de minimização) que o valor da melhor solução

encontrada até o momento. Caso seja, atualiza a melhor solução. Caso não seja, o

método inicia a avaliação da expressão e-∆/T, gerando um valor entre 0 e 1 e

verificando se este valor é menor que o valor de e-∆/T. Caso seja, atualiza a solução

inicial atribuindo a esta a solução vizinha. Este processo é repetido até atingir o

número máximo de iterações. Quando este valor é atingido, atualiza-se o valor da

temperatura inicial, multiplicando-o pelo valor de α e reiniciando o contador de

iterações. O fluxo de execução recomeça verificando novamente se o valor de T é

menor do que zero. O método prossegue até que a temperatura atinja o valor zero.

Page 35: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

33

Porém, é importante ressaltar que, matematicamente, jamais o valor de T chegará

ao valor zero, uma vez que T é multiplicado por α (onde α varia de 0 a 1), portanto,

seu valor poderá chegar muito próximo a zero, mas nunca tal valor. Este

inconveniente é solucionado modificando a condição (ao invés de comparar com o

valor zero, compara-se com um valor muito próximo a zero). No caso deste trabalho,

os algoritmos foram desenvolvidos na linguagem Java, de maneira que T possui o

tipo de dado de dupla precisão. Este tipo de dado, assim como todos os tipos de

dados numéricos, possui um tamanho máximo para sua representação. Desse

modo, quando o valor de T atinge um valor extremamente pequeno, de maneira a

ocupar o tamanho máximo de representação deste tipo, ao executar a próxima

divisão é retornado o valor zero e o método encerra sua execução.

A eficiência deste método, aliada à flexibilidade fornecida pelos seus

parâmetros, faz com que ele seja empregado em vários tipos de problemas de

otimização, inclusive combinando suas funcionalidades com outros algoritmos.

Alguns exemplos podem ser encontrados em Kincaid (1992), Kincaid (1993) e

Salajegheh (2004).

2.5 BUSCA TABU

Originado dos trabalhos independentes de Glover (1986) e Hansen (1986), este

método tem como sua principal característica aceitar movimentos de piora como

estratégia para fugir de ótimos locais. Porém, o que realmente caracteriza este

método é a manutenção de uma lista de movimentos proibidos conhecida como Lista

Tabu, reduzindo o risco de ciclagem (execução em ciclo infinito) do algoritmo. O

tamanho da lista Tabu é calibrado de acordo com testes de experimentação,

buscando o melhor desempenho e eficiência para cada tipo de problema em

particular.

Este método possui apenas dois parâmetros de calibração: o tamanho máximo

da lista tabu e o número máximo de iterações (que também pode ser definido em

função do tempo máximo de processamento).

Page 36: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

34

A lista tabu exerce um papel fundamental no processo de pesquisa de soluções.

Para compreender melhor sua utilidade torna-se necessário detalhar seu fluxo de

execução. Para isto, considere uma solução inicial qualquer para um determinado

problema. Enquanto o número de iterações sem melhora não atingir o valor máximo

(passado como parâmetro) o método pesquisa pelo melhor vizinho da solução inicial,

de maneira que o movimento realizado para gerar a solução vizinha não esteja

contido na lista tabu.

Antes de prosseguir torna-se necessário elucidar o conceito de “movimento”. Um

“movimento” consiste em uma modificação sistemática de uma solução, de maneira

a gerar outra solução diferente desta. Esta modificação deverá seguir uma regra ou

modelo pré-estabelecido. Por exemplo, considere o problema de minimização de

uma função de x, de modo que seu objetivo é encontrar o valor mínimo. Para isto, os

valores são convertidos em números binários. Considere uma solução inicial de valor

100101. A modelagem de um movimento consiste em modificar um bit deste valor,

para gerar uma nova solução. Desta maneira, pode-se gerar o valor 100100, que é

obtido por meio do movimento de modificação da última posição. A modelagem do

movimento influencia diretamente na eficiência do método. Inclusive, o método de

Busca Tabu implementado neste trabalho teve sua modelagem de movimento

alterada durante os testes de experimentação. Os motivos e detalhes desta

modificação são demonstrados no capítulo seguinte.

Após compreender o conceito de movimento torna-se mais fácil seguir o fluxo de

execução do algoritmo. A pesquisa da melhor solução vizinha da solução inicial deve

retornar a melhor solução gerada por um movimento que não esteja na lista tabu.

Porém, existe ainda um critério conhecido como função de aspiração. Esta função

possibilita aceitar o melhor vizinho gerado mesmo que o movimento que o originou

esteja na lista tabu. Uma maneira de implementar a função de aspiração é

considerar que, se a melhor solução vizinha gerada for melhor que a melhor solução

encontrada até o momento, esta solução vizinha é aceita, mesmo que o movimento

que a originou esteja na lista tabu. Deste modo, o critério de aspiração é conhecido

como aspiração por objetivo.

Page 37: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

35

Prosseguindo com o fluxo, após retornar o melhor vizinho o método atualiza a

lista tabu (adicionando a esta o movimento que gerou o melhor vizinho). Neste ponto

é importante ressaltar que a lista tabu possui um tamanho fixo, determinado através

de um parâmetro do método. As inserções e retiradas desta lista funcionam como

uma fila com a política FIFO (first-in, first-out), de maneira quando um novo valor

entra, o valor mais antigo na lista é removido (quando a lista estiver cheia). Caso o

melhor vizinho retornado tenha sido aceito pelo critério de aspiração, a lista tabu não

é atualizada, pois o movimento já estará contido na lista.

Após atualizar a lista tabu, o método verifica se a solução vizinha gerada é

melhor do que a melhor solução encontrada até o momento. Caso seja, atualiza a

melhor solução encontrada. A partir daí, o método atualiza o contador de iterações e

recomeça o processo novamente até que a condição de parada seja satisfeita,

retornando a melhor solução encontrada. O método Busca Tabu desenvolvido neste

trabalho será mostrado em detalhes, incluindo seu pseudocódigo, no capítulo

seguinte.

A quantidade de iterações do método é determinada pelo número de iterações

sem melhora ou estipulando um tempo máximo para execução do método. O

número de iterações sem melhora corresponde à quantidade máxima de iterações

executadas sem que haja melhoria na qualidade da melhor solução encontrada.

Para calcular o valor de iterações sem melhora, basta armazenar a última iteração

que produziu uma solução melhor do que a melhor solução corrente.

Existem ainda algumas implementações que utilizam técnicas mais elaboradas

de maneira a determinar o tamanho da lista tabu de forma dinâmica (modificando

seu tamanho durante a própria execução). Para maiores detalhes é recomendada a

leitura de Dammeyer (1993).

Este método é extremamente eficiente, sendo amplamente utilizado em diversas

áreas de pesquisa. Porém, a calibração do parâmetro que define o tamanho da lista

tabu deve ser cuidadosamente realizada por meio dos testes de experimentação,

uma vez que não existe um tamanho ideal e, inclusive, o valor ideal varia de acordo

com o tipo de problema.

Page 38: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

36

Alguns exemplos de aplicações do método de Busca Tabu podem ser

encontrados em Kincaid (1993), Bland (1995) e Costa (2003).

2.6 COLÔNIA DE FORMIGAS

Este método foi proposto por Dorigo (1992) e simula o comportamento de um

grupo de formigas que trabalham em conjunto para resolver um determinado

problema. Os parâmetros deste método são:

a) ponderação do feromônio;

b) parâmetro de evaporação do feromônio;

c) quantidade de formigas;

d) número máximo de iterações.

As formigas possuem um mecanismo natural de orientação por meio de uma

substância que é depositada por cada agente ao percorrer um determinado

percurso. Esta substância é conhecida pelo nome de “feromônio”. Os valores

relacionados com a quantidade de feromônio depositada por cada formiga, assim

como o percentual de evaporação do feromônio, são regulados através dos

parâmetros citados anteriormente.

Tais parâmetros devem ser calibrados para cada problema específico e seu

funcionamento ocorre da seguinte forma: quanto mais vezes um determinado

caminho for percorrido, maior será a quantidade de feromônio deixada nesse rastro,

indicando a direção que a pesquisa tenderá a percorrer. O procedimento de busca é

repetido até que um número máximo de iterações seja atingido ou não se verifica

melhoria na qualidade das soluções obtidas após um determinado número de

iterações.

Page 39: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

37

Do mesmo modo que os métodos anteriormente citados, a implementação de

um mesmo algoritmo pode variar dependendo do tipo de problema tratado (pois

cada problema pode necessitar de uma modelagem distinta), de maneira que podem

surgir outros parâmetros ou até mesmo trabalhar com alguns destes parâmetros de

forma fixa (por exemplo, fixando a quantidade de formigas em um determinado valor

baseado em alguma referência, e modificando apenas os demais parâmetros).

O parâmetro de ponderação do feromônio determina qual a quantidade desta

substância que será depositada no caminho percorrido por cada formiga. O

parâmetro de evaporação está relacionado com a velocidade com que os caminhos

percorridos terão suas quantidades de feromônio reduzidas. A quantidade de

formigas determina quantas formigas farão parte do processo de busca pelo

alimento. E, por último, o número máximo de iterações determina a condição de

parada do método.

O funcionamento deste método, assim como o método de Algoritmos Genéticos,

é baseado no comportamento de um agente (ou um conjunto de agentes) existente

na natureza. Da mesma forma que os Algoritmos Genéticos se referem à geração de

novos indivíduos na natureza por meio de seus modificadores evolutivos, o método

“Colônia de Formigas” se refere ao comportamento de formigas em busca de

alimento.

A Figura 2.1 demonstra três possíveis caminhos para que uma formiga consiga

chegar até seu alimento. Inicialmente, como nenhuma formiga percorreu nenhum

caminho (não existindo ainda nenhum rastro de feromônio), cada um dos três

possíveis caminhos demonstrados possui igual probabilidade de ser percorrido.

Sendo assim, imagine que a primeira formiga percorra o caminho três até chegar ao

seu alimento. A segunda formiga terá uma probabilidade maior de escolher o mesmo

caminho da primeira formiga, uma vez que este caminho já possuirá um rastro de

feromônio depositado nele.

Page 40: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

38

Deste modo, todas as formigas, a partir da primeira, poderiam seguir sempre o

mesmo caminho que esta. Mas isto não acontece porque o feromônio possui um

determinado grau de evaporação, diminuindo sua intensidade com o tempo. Além

disso, o fato de existir um rastro de feromônio não significa que todas as demais

formigas seguirão este caminho, uma vez que alguma pode, aleatoriamente,

escolher um novo caminho. Deste modo, outros caminhos vão sendo descobertos

até que, em determinado momento, o melhor caminho (neste caso, aquele de menor

distância) é descoberto. Uma vez percorrido, por ser o menor caminho, os caminhos

de ida e volta ao alimento são percorridos mais rapidamente, reforçando cada vez

mais o rastro de feromônio e atraindo cada vez mais formigas, que também

reforçarão o caminho com seu feromônio e assim sucessivamente.

A explicação deste mecanismo natural facilita a compreensão do método aqui

implementado. Ainda assim, algumas adaptações foram necessárias de modo a

adequar o funcionamento do algoritmo com o tipo de problema a que este trabalho

se refere. O método Colônia de Formigas desenvolvido neste trabalho será mostrado

em detalhes, incluindo seu pseudocódigo, no capítulo seguinte.

A quantidade de formigas também influencia diretamente no método, uma vez

que um número muito baixo de formigas poderá não ser suficiente para descobrir

soluções consideradas de boa qualidade. E números muito elevados podem

influenciar diretamente no tempo de pesquisa.

Este método tem se mostrado muito eficiente em diversas áreas de pesquisa.

Porém, seu número elevado de parâmetros torna o processo de experimentação

uma tarefa um pouco mais árdua. Ainda assim, sua aplicação é encontrada em

FIGURA 2.1: Otimização por Colônia de Formigas.

Page 41: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

39

áreas diversificadas, tais como problemas para aplicações de atribuição quadrática

Coelho (2004), roteirização de veículos para pessoas portadoras de deficiência Baba

(2004), dentre outros.

Conhecendo o funcionamento básico de cada método heurístico utilizado neste

trabalho torna-se mais fácil compreender a modelagem do problema tratado e a

adaptação de cada algoritmo, que são devidamente detalhados no capítulo seguinte.

Page 42: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

40

3 MODELAGEM E IMPLEMENTAÇÃO DOS ALGORITMOS

3

MODELAGEM E IMPLEMENTAÇÃO DOS

ALGORITMOS

Page 43: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

41

Este capítulo descreve de maneira detalhada como cada algoritmo citado no

capítulo anterior foi adaptado e implementado para o tipo de problema tratado neste

trabalho. É importante destacar que nem todo método heurístico é diretamente

aplicável a uma determinada classe de problemas. Portanto, este capítulo é

dedicado ao detalhamento sobre a implementação de cada método e como os

mesmos foram adaptados de maneira a produzir os melhores resultados.

As seções seguintes descrevem os detalhes de cada método heurístico utilizado

neste trabalho e, para cada um, é detalhado um pseudocódigo para facilitar a

compreensão.

3.1 MODELAGEM DO PROBLEMA

O principal objetivo do processo de otimização, aplicado na classe de problemas

estudada neste trabalho, consiste em minimizar o peso de uma estrutura composta

por treliças bidimensionais, obedecendo às restrições impostas pelo projeto. Tais

restrições são diferentes para cada problema e são devidamente detalhadas no

Capítulo 5. Com o intuito de facilitar a compreensão do tipo de problema tratado e da

adaptação dos algoritmos descritos a seguir, torna-se necessário descrever como foi

realizada a modelagem do problema.

Um projeto estrutural composto por n barras foi representado por um vetor de n

posições, onde cada posição do vetor corresponde à área de seção transversal de

cada barra que compõe a estrutura. Por exemplo, uma estrutura composta por

quatro barras é representada por um vetor de quatro posições, de maneira que a

primeira posição armazena a área de seção transversal da barra 1, a segunda

posição armazena a área de seção transversal da barra 2, e assim sucessivamente.

Esta modelagem foi utilizada na implementação e adaptação de cada um dos

algoritmos utilizados neste trabalho. A seção seguinte descreve detalhadamente a

implementação de cada um dos métodos, incluindo seus parâmetros de calibração.

Page 44: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

42

3.2 IMPLEMENTAÇÃO DOS ALGORITMOS

No capítulo anterior, os algoritmos utilizados neste trabalho foram descritos em

sua forma genérica, sem nenhuma adaptação ou especialização com relação a

algum problema específico, de maneira a descrever apenas o funcionamento básico

de cada método. Os algoritmos adaptados ao tipo de problema tratado neste

trabalho, bem como os detalhes de implementação, são detalhados a seguir.

3.2.1 Algoritmos Genéticos

Os principais conceitos do Algoritmo Genético, detalhados no capítulo anterior,

foram mantidos no algoritmo desenvolvido neste trabalho. Porém, com o intuito de

melhorar a qualidade das soluções encontradas durante sua execução, alguns

operadores genéticos foram ligeiramente modificados e a construção da população

inicial foi alterada.

A implementação clássica do AG utiliza a representação binária, ou seja, o

cromossomo é representado por um vetor de bits, contendo apenas os valores 0 e 1.

Neste trabalho, a representação utilizada foi a representação real, de maneira que

cada posição do cromossomo é um valor real e não um número binário. A decisão

de utilizar a representação real está diretamente relacionada com o desempenho

dos algoritmos para o tipo de problema tratado, uma vez que realizar a conversão de

valores para cada gene de um cromossomo, para várias populações de várias

gerações, aumentaria consideravelmente o custo computacional. Um estudo

interessante relacionado com o desempenho dos algoritmos utilizando

representação binária e real pode ser encontrado em Catarina (2003).

Os parâmetros de calibragem utilizados inicialmente foram idênticos a Yokota et

al. (1998), uma vez que, em um primeiro momento, o objetivo era analisar o

comportamento dos operadores genéticos e estudar a influência da qualidade da

população inicial no processo de pesquisa. Em seguida, a alteração dos parâmetros

foi realizada durante os testes de calibração. Sendo assim, o tamanho da população

foi mantido em 20 indivíduos, o número máximo de gerações foi definido em 1500, e

Page 45: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

43

as probabilidades de ocorrer Mutação e Crossover foram inferidas, respectivamente,

em 0,3 e 0,6.

Neste trabalho, o cromossomo foi representado por um conjunto de valores, de

maneira que cada valor corresponde à área da seção transversal de uma

determinada barra da estrutura tratada.

Vale ressaltar que nem todo cromossomo é considerado uma solução viável

para o problema. Neste trabalho, devido às restrições de projeto, as primeiras

gerações possuem um determinado número de cromossomos não viáveis que vai se

reduzindo gradualmente a cada geração. Isto ocorre porque as soluções não viáveis

são consideradas como indivíduos de pouca aptidão, que vão perecendo pela ação

da Seleção Natural. Desta maneira, as gerações posteriores reduzem

gradativamente a ocorrência destes cromossomos, até que eles se extinguem.

O alto grau de flexibilidade apresentado deve-se à quantidade de parâmetros de

calibração presentes no método. Apesar de existir implementações diversas deste

método, existem alguns parâmetros que são comuns. Neste trabalho os seguintes

parâmetros foram considerados:

1) Tamanho da população: especifica a quantidade de cromossomos

existentes em uma população;

2) Tamanho do cromossomo: define o comprimento do cromossomo. Neste

trabalho, o comprimento do cromossomo equivale ao número de barras

existentes na estrutura tratada;

3) Probabilidade de cruzamento: estabelece a probabilidade de realizar um

cruzamento entre dois indivíduos selecionados;

4) Probabilidade de mutação: define a probabilidade de realizar mutação em

um indivíduo selecionado;

Page 46: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

44

5) Número máximo de gerações: estabelece a quantidade máxima de

gerações que o método irá produzir, funcionando como critério de

parada.

O parâmetro relacionado à maneira como ocorre a Seleção não foi considerado,

pois foi desenvolvido do seguinte modo: para cada geração o operador de Seleção

seleciona a metade dos indivíduos da população, escolhendo os mais aptos. Esta

técnica é conhecida como Elitismo. Algumas implementações utiliza o operador de

Seleção parametrizado, de maneira que é possível calibrar esta operação,

aumentado a flexibilidade do método. Porém, contribui para dificultar a calibração do

método por aumentar a quantidade de possíveis combinações na tentativa de obter

os parâmetros ideais.

Após os testes iniciais foi possível perceber que o algoritmo se mostrava muito

sensível à construção de uma população inicial de boa qualidade. Tal fato foi

constatado ao partir de uma população inicial aleatória, gerando grande quantidade

de indivíduos infactíveis (que não satisfazem aos requisitos impostos pelo projeto).

Ao partir desta população, a melhor solução encontrada não obteve uma qualidade

satisfatória.

Após alguns testes de experimentação, o processo de geração da solução inicial

foi aperfeiçoado, de maneira que não produzisse indivíduos infactíveis. Desse modo,

ao partir de um conjunto de soluções possíveis para o problema, o algoritmo obteve

uma melhora significativa na qualidade das soluções encontradas.

Buscando melhorar ainda mais os resultados obtidos, os operadores genéticos

de Seleção, Mutação e Crossover sofreram algumas adaptações. No caso da

Mutação, quando um indivíduo é selecionado para sofrer a ação deste operador, o

mesmo poderá tornar-se infactível. Sendo assim, o operador de mutação foi alterado

para que, ao realizar a mutação em um indivíduo e o mesmo se tornar infactível,

realizará outra mutação e assim sucessivamente, até que a factibilidade seja

atingida. Com isso, garante-se a qualidade do indivíduo gerado por meio da

mutação.

Page 47: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

45

O operador genético Crossover foi adaptado com o intuito de aprimorar as

características herdadas dos pais do indivíduo gerado. Com o operador de

Crossover clássico, escolhe-se um mesmo ponto nos cromossomos pais, e a partir

deste ponto, a metade inicial do primeiro pai, com a metade final do segundo pai

gera um filho. Na mesma linha, a metade inicial do segundo pai com a metade final

do primeiro pai gera o segundo filho. Em termos práticos funciona muito bem, mas,

para a classe de problemas estudada neste trabalho, gera muitos indivíduos

semelhantes em uma mesma geração. Sendo assim, foi adicionado um operador

Crossover adicional para funcionar da seguinte maneira: escolhem-se dois pontos

nos cromossomos pais, divindo-os em três partes que, para facilitar a compreensão

recebem o nome de X, Y e Z. A parte X do primeiro pai, se junta com a parte Y do

segundo pai e adiciona a parte Z do próprio filho gerado (pois neste caso, o filho já

possui todas áreas de seção transversal inicializadas de acordo com o intervalo

encontrado nas restrições de projeto, possuindo assim características próprias dele

mesmo). Do mesmo modo gera-se o segundo filho, invertendo X e Y dos pais e

mantendo Z do segundo filho. O operador clássico continua sendo utilizado, porém o

sistema determina, com uma probabilidade de 50% para cada operador, qual dos

dois será utilizado em cada cruzamento efetuado.

A inserção de um novo operador fez com que o algoritmo obtivesse um ganho

significativo na qualidade das soluções encontradas, uma vez que a variabilidade da

mutação, somada com a diversidade de informações herdadas dos pais e aquelas

aproveitadas dos filhos ampliou o espaço de soluções geradas. O funcionamento do

operador de Crossover clássico (i) e do operador adicionado (ii) podem ser

visualizados na Figura 3.1 a seguir.

FIGURA 3.1: Funcionamento dos operadores de Crossover utilizados no AG.

Page 48: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

46

Inicialmente o operador de seleção utilizado baseava-se nos princípios da roleta

russa (selecionando aleatoriamente os pais e realizando as operações obedecendo

às probabilidades de cada operador, garantindo apenas o não cruzamento de um

indivíduo com ele mesmo). Visando aprimorar este operador a idéia da roleta russa

foi substituída por uma política conhecida como Elitismo: dentre os n indivíduos

produzidos a cada geração, selecionam-se os n/2 mais aptos (neste problema, os

mais aptos são aqueles com menor peso) e realizam-se as operações nestes para

produzir os indivíduos da próxima geração.

Ao implantar o “Elitismo” no operador de Seleção, mesmo partindo de soluções

iniciais de qualidade inferior, o método atingiu ótimos resultados. Esta modificação

fez com que o método encontrasse a melhor solução mais rapidamente, utilizando

um número menor de gerações. Ao combinar soluções iniciais de boa qualidade com

a política de Elitismo, a melhor solução é encontrada mais rapidamente, aumentando

consideravelmente a eficiência do algoritmo. Vale lembrar que as modificações e

adaptações realizadas estão especificamente relacionadas com a classe de

problemas tratadas neste trabalho, podendo ou não atingir os mesmos resultados

em outras classes de problemas.

Após vários testes de experimentação, os valores dos parâmetros foram

alterados considerando os melhores resultados obtidos durante a calibração. Os

novos valores atribuídos foram: probabilidade de mutação (0,3), probabilidade de

crossover (0,6) e o número de gerações (1500). A quantidade de indivíduos por

população foi mantida em 20 indivíduos.

A necessidade de gerar indivíduos mais diversificados ocorreu durante os

testes, onde a partir de uma geração aleatória, muitos indivíduos começavam a se

repetir. Neste caso, o aumento da probabilidade de mutação promoveu uma

diversidade maior dos indivíduos.

Outra alternativa utilizada para melhorar a qualidade das soluções foi manter o

melhor indivíduo gerado dentro de cada geração. Isto porque ele possui

características (áreas de seção transversal) que podem ser herdadas por gerações

futuras, aprimorando a qualidade dos próximos indivíduos. O funcionamento se deu

Page 49: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

47

da seguinte maneira: cada geração é ordenada (por ordem de peso) para garantir a

seleção dos n/2 indivíduos pelo operador de Seleção. Antes da ordenação, substitui-

se o pior indivíduo da geração pelo melhor indivíduo gerado até o momento. Ao

ordenar, o melhor indivíduo sobe para o topo de lista, substituindo aquele de

qualidade inferior a ele. Suas características serão aproveitadas pelas futuras

gerações.

Realizadas as modificações acima citadas, e passando pelos testes de

experimentação, sentiu-se a necessidade de ampliar o espaço de soluções

pesquisadas. Foi introduzido um parâmetro de inicialização no sistema que recebeu

o nome de “tolerância_k”. Este parâmetro é utilizado para considerar aquelas

soluções que não satisfazem aos requisitos do problema, mas que estão muito

próximas de atendê-los. Isto faz com que um novo espaço de soluções seja

considerado na busca.

Vale ressaltar que tais soluções não podem ser consideradas melhores do que

aquelas que satisfazem os requisitos de projeto. Elas apenas são introduzidas na

população por possuírem características que poderão ser herdadas por gerações

futuras, contribuindo para produzir melhores indivíduos. O pseudocódigo do

algoritmo implementado é mostrado no Quadro 3.1 a seguir.

Page 50: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

48

3.2.2 Variable Neighborhood Search

O princípio básico deste método consiste em gerar uma solução inicial para o

problema e, a partir desta solução pesquisar novas soluções vizinhas buscando

melhorar a qualidade da solução inicial gerada. Porém, a busca por soluções

vizinhas não segue uma trajetória específica. Para entender melhor como isto

ocorre, considere uma possível solução 's para o problema estudado em Yokota et

al. (1998). Este problema está devidamente detalhado no capítulo 5, seção 1, Figura

5.1 deste trabalho. A solução 's , portanto, terá o formato de um vetor contendo 10

posições onde cada posição corresponde a área da seção transversal de uma

determinada barra da estrutura. Um vizinho de 's ( ''s ) seria gerado, por exemplo,

QUADRO 3.1: Pseudocódigo do AG implementado.

(1) Constrói população inicial (tamanho = n);

(2) Ordena a população pela função objetivo (peso);

(3) Enquanto não alcançar o número máximo de gerações faça:

a. Seleciona os n/2 melhores indivíduos que passarão ou pela mutação

ou pelo crossover ou pela clonagem ();

b. Até alcançar o tamanho da nova população repita:

i. Selecione dois indivíduos distintos ();

ii. Tenta realizar mutação (indivíduo) verificando a

probabilidade de mutação; //se um sofre mutação, o outro

também sofrerá;

iii. Caso não realizou mutação, tenta realizar crossover

(individuo i1, individuo i2), verificando a probabilidade de

crossover;

iv. Caso não realizou mutação nem crossover, clona ambos

indivíduos ();

v. Verifica se cada indivíduo é melhor que a melhor solução

encontrada ou pior que a pior solução encontrada () através

do cálculo da função objetivo () e atualiza o melhor e o pior

se necessário;

vi. Insere os novos indivíduos na nova população ();

c. Remove o pior indivíduo da população e insere o melhor encontrado

até o momento ();

d. Incrementa o contador de gerações ();

e. Ordena a população ();

(4) Apresenta o melhor indivíduo encontrado ();

Page 51: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

49

modificando uma posição aleatória do vetor (obedecendo ao limite inferior e superior

da área da seção transversal da barra selecionada). Desse modo, define-se um

espaço de vizinhança de 's como todos aqueles vizinhos que são gerados a partir

da modificação da área de apenas uma única barra da estrutura. Nessa mesma

linha, uma outra estrutura de vizinhança seria formada pelas soluções obtidas ao

efetuar a modificação da área de duas barras de 's simultaneamente, e assim

sucessivamente.

Seguindo os conceitos demonstrados no capítulo anterior, foram definidas

quatro estruturas de vizinhança distintas: k=1 (modificação de apenas uma única

barra), k=2 (modificação de duas barras simultaneamente), k=3 (modificação de três

barras simultaneamente) e k=4 (todas as barras da estrutura são modificadas).

Após gerar ''s a partir de 's , o método efetua uma busca local em ''s . Este

procedimento de busca local pode utilizar qualquer tipo de vizinhança, pois o

objetivo aqui é encontrar uma solução vizinha de qualidade superior a ''s . O método

VNS tradicional utiliza um procedimento para realizar a busca local conhecido como

Método de Descida em Vizinhança Variável, também chamado de VND (HANSEN,

1997). O presente trabalho utiliza também o VND para realizar a busca local.

Desta maneira, o método efetua uma busca local em ''s . Se o resultado da

busca local não melhorar a qualidade de ''s , incrementa-se o valor de k, alterando a

estrutura de vizinhança da próxima iteração. Se a busca local obtiver uma solução

melhor que ''s , o sistema atualiza a melhor solução e atribui a k o valor 1. Este

processo é repetido até que o método atinja o número máximo de iterações. O modo

pelo qual este valor foi calculado é explicado a seguir.

Os testes de experimentação foram realizados utilizando um único parâmetro de

ajuste: o número máximo de iterações do método VNS: VNSMAX. Este parâmetro

pode ser modificado para obedecer a um determinado tempo de processamento ou

ainda, um número pré-determinado de iterações sem melhora da solução. No

entanto, após passar pelo processo de experimentação, o método foi calibrado para

trabalhar com o parâmetro VNSMAX igual a 60 iterações.

Page 52: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

50

É importante destacar que a geração de um determinado vizinho é realizada de

maneira totalmente aleatória, ou seja, sorteia-se uma determinada barra e,

aleatoriamente, sorteia-se um valor de área que satisfaça o intervalo permitido da

barra selecionada. Assim, garante-se que não ocorra ciclagem no método, o que

poderia acontecer caso alguma regra determinística fosse empregada nesta

geração.

A construção da solução inicial foi implementada, em um primeiro momento,

utilizando uma geração aleatória de soluções. Porém, durante os testes de

experimentação, foi detectado que este tipo de geração, para o tipo de problema

tratado neste trabalho, gera muitos indivíduos infactíveis. Sendo assim, o processo

de geração da solução inicial foi modificado e passou-se a utilizar o método GRASP.

Sua aplicação foi implementada de maneira a produzir sempre soluções factíveis.

Ou seja, caso a primeira solução gerada não seja factível, o algoritmo executa o

procedimento GRASP novamente, até que uma solução factível seja gerada.

O Quadro 3.2 a seguir exibe o pseudocódigo do método VNS. Vale lembrar que

a etapa (1) demonstrada na figura sempre produz uma solução factível. O processo

de busca local é realizado pelo método VND. Porém, vale lembrar que qualquer

método heurístico pode ser utilizado nesta etapa. O VND foi escolhido por ser o

método utilizado na busca local do algoritmo VNS tradicional, conforme detalhado no

capítulo anterior.

QUADRO 3.2: Pseudocódigo do método VNS.

(1) Constrói solução inicial via GRASP ();

(2) Enquanto não atingir o número máximo de iterações faça:

a. Atribui a variável k de controle da estrutura de vizinhança o valor 1;

b. Enquanto k <= 4 faça:

i. Pesquise uma solução factível na estrutura de vizinhança (k);

ii. Aplique busca local (VND) na solução encontrada ();

iii. Verifique se a solução resultante da busca local é melhor do

que a melhor solução encontrada até o momento através do

cálculo da função objetivo ();

iv. Caso seja, atualiza a melhor solução e faça k=1;

v. Caso contrário: k++;

c. Incrementa o contador de iterações;

(3) Apresenta o melhor resultado encontrado ();

Page 53: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

51

3.2.3 Grasp

O funcionamento deste método consiste em construir soluções iniciais utilizando

uma lista restrita de soluções candidatas. O tamanho t desta lista é determinado

através de um parâmetro de inicialização do método (α), que neste trabalho

corresponde ao número de barras do problema multiplicado pelo valor de uma

variável α (podendo assumir valores maiores que zero e menores ou iguais a um.

Neste trabalho, após passar pelo processo de experimentação, seu valor foi definido

em 0,5. Neste caso, o tamanho da lista restrita de candidatos será sempre a metade

do número de barras do problema).

As soluções são construídas do seguinte modo: para cada barra do problema, o

sistema gera uma quantidade t de possíveis áreas de seção transversal, onde t

corresponde ao tamanho da lista restrita de candidatos, obedecendo às restrições

impostas pelo projeto. A lista é ordenada e, a partir daí, o método sorteia uma dentre

as t/2 melhores áreas da lista. Isto ocorre dividindo a lista ordenada pela metade e

realizando o sorteio na primeira metade da lista. Este processo é repetido para cada

barra até completar uma possível solução. Esta solução é avaliada e, se não for

factível, o processo é repetido até atingir a factibilidade.

De posse da solução inicial, o método aplica busca local na solução. O método

GRASP implementado neste trabalho utiliza o método VNS para aplicar a busca

local. Os parâmetros α e o parâmetro GRASPMAX (número máximo de iterações),

formam o conjunto de parâmetros de inicialização do método GRASP.

Após aplicar a busca local na solução inicial gerada, o método avalia, ao final da

busca, se a solução resultante da busca local é melhor (possuindo menor peso) do

que a melhor solução encontrada até o momento. Caso seja, o método atualiza a

melhor solução encontrada e constrói novamente outra solução inicial para aplicar

nova busca local. O processo se repete até que o número máximo de iterações

GRASPMAX seja atingido (o valor utilizado neste método, após passar pelos testes de

experimentação, foi definido em 50 iterações).

Page 54: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

52

A idéia de construir várias soluções iniciais e aplicar buscar local em cada uma

delas, armazenando a melhor solução encontrada, faz com que o método GRASP

seja de fácil calibragem por possuir poucos parâmetros, garantindo ainda a

facilidade de implementação como um todo.

O método GRASP também foi utilizado como construtor de solução inicial de

outros métodos implementados neste trabalho, garantindo boas soluções iniciais a

um baixo custo de processamento e implementação. A seguir o Quadro 3.3 exibe o

pseudocódigo do método GRASP.

3.2.4 Simulated Annealing

A idéia chave deste método segue alguns princípios da termodinâmica,

simulando o resfriamento de um determinado material, operação conhecida como

recozimento. O método possui três parâmetros de calibragem, sendo eles: o número

máximo de iterações SAMAX (definido em 40 iterações), a temperatura inicial (definido

em 1) e o valor de α (que varia de 0 a 1 e foi definido em 0,5) que é utilizado no

controle da temperatura. Os valores destes parâmetros foram inferidos durante o

processo de experimentação, de maneira que dentre os valores testados foram os

que alcançaram os melhores resultados.

É importante ressaltar que, se o valor de α for zero, o método será executado

apenas em SAMAX iterações. Isto acontece porque, a cada SAMAX iterações, a

temperatura é multiplicada por α, repetindo-se o processo até que a temperatura

QUADRO 3.3: Pseudocódigo do método GRASP.

(1) Enquanto não alcançar o número máximo de iterações faça:

a. Inicia o processo de construção da solução inicial factível utilizando uma lista

restrita de candidatos de tamanho (n x α);

b. Aplica a busca local na solução gerada (VNS);

c. Verifica se a solução resultante da busca local é melhor do que a melhor

solução encontrada até o momento através do cálculo da função objetivo. Caso

seja, atualiza a melhor solução;

d. Incrementa o contador de iterações;

(2) Apresenta a melhor solução encontrada ();

Page 55: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

53

alcance o valor zero ou muito próximo a ele. Sendo assim, após as primeiras SAMAX

iterações, ao multiplicar α por T, a temperatura atingirá o valor zero e o método

encerrará sua execução.

Para construir a solução inicial, neste trabalho foi utilizado o método GRASP,

avaliando sempre as soluções geradas para garantir a factibilidade da solução

inicial. O Quadro 3.4 a seguir detalha o pseudocódigo do método implementado.

Analisando o Quadro 3.4 torna-se mais fácil seguir a execução do algoritmo:

com a solução inicial s gerada, enquanto a temperatura T for maior que zero, o

método segue o seguinte fluxo: para cada iteração, o sistema gera uma solução

vizinha de s (s’). A partir daí, o sistema calcula a função objetivo de s, s’ e da melhor

solução encontrada até o momento. O cálculo da função objetivo deste problema é

realizado por meio da análise da solução gerada, calculando seu peso e verificando

as restrições de projeto. Caso alguma restrição seja violada, a solução é

inviabilizada utilizando uma penalização no cálculo de peso.

Baseado nos dados calculados, o sistema calcula o DELTA (que é a diferença

entre a função objetivo de s’ e a função objetivo de s). Caso DELTA seja menor que

zero, o método copia s’ em s e, se a função objetivo de s’ for menor do que a função

objetivo da melhor solução encontrada até o momento, copia s’ em melhor_s.

QUADRO 3.4: Pseudocódigo do método Simulated Annealing.

(1) Constrói solução inicial factível via método GRASP (s);

(2) Enquanto (T > 0) faça:

a. Enquanto não atingir número máximo de iterações faça:

i. Gera um vizinho da solução inicial (s’);

ii. Calcula a função objetivo da solução inicial (s) e do vizinho gerado (s’);

iii. Calcula o Delta (função objetivo (s’) – função objetivo (s));

iv. Se (Delta < 0) faça:

1. Se função objetivo (s’) < função objetivo da melhor solução

encontrada até o momento, copia (s’) na melhor solução;

2. Caso contrário, gera um número entre 0 e 1 (x);

3. Se (x < e-∆/T ) então copia o vizinho na solução inicial (s = s’);

v. Incrementa o contador de iterações;

b. Atualiza a temperatura (T = α x T );

(3) Apresenta a melhor solução encontrada ();

Page 56: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

54

Caso DELTA não seja menor do que zero, o sistema calcula a probabilidade de

aceitar um movimento de piora. Isto é feito gerando um número aleatório entre 0 e 1

e verificando se este número gerado satisfaz a expressão a seguir:

x < e-∆/T

Caso satisfaça, o método copia em s o valor de s’, atualizando assim a solução

inicial gerada e recomeçando pela geração do vizinho de s. Após todos estes

cálculos durante as SAMAX iterações, o sistema atualiza a temperatura T

multiplicando seu valor por α. Todo processo é repetido enquanto (T > 0).

Vale ressaltar que, se α é um valor entre 0 e 1 (excluindo o valor 0 para não

executar apenas SAMAX iterações), a condição (T > 0) seria sempre verdadeira,

portanto a condição deve ser estudada para extrair a melhor execução do método.

Após alguns testes de experimentação o método se mostrou bastante eficaz,

gerando inclusive ótimos resultados com um baixo computacional. Sua facilidade de

implementação aliada ao baixo número de parâmetros de calibragem e à qualidade

das soluções obtidas torna este método uma excelente opção para cálculos

relacionados com o tipo de problema tratado neste trabalho.

3.2.5 Busca Tabu

A idéia básica deste método consiste em gerar uma solução inicial e, a partir

desta solução, pesquisar o melhor vizinho de modo que o movimento realizado para

obter este melhor vizinho não esteja na lista de movimentos tabu.

Este método foi adaptado para o tipo de problema tratado neste trabalho de

maneira que a geração de um vizinho por meio de um movimento seria

correspondente à alteração do valor da área de seção transversal de uma

determinada barra. Porém, logo nas primeiras execuções foi verificado que, por

diversas vezes, o algoritmo não conseguia aprimorar uma solução considerada de

média qualidade (em relação ao valor de referência do problema tratado). Sendo

assim, o método foi alterado de maneira que um “movimento” fosse correspondente

Page 57: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

55

às alterações das áreas de x barras simultaneamente. Modelado desta maneira, o

algoritmo passou a apresentar resultados consideravelmente melhores, chegando a

soluções muito próximas aos valores de referência. Deste modo, a lista tabu conteria

um número t de valores (valores estes que correspondem ao número de barras

alteradas simultaneamente), onde t é o tamanho da lista tabu que é determinado por

um parâmetro do método.

Este método possui apenas dois parâmetros de calibragem, sendo eles: o

número máximo de iterações BTMAX (que neste trabalho, após vários testes de

experimentação, foi calibrado para 200 iterações) e o tamanho da lista tabu t, que

neste trabalho foi definido, após passar pelo processo de experimentação, em n/2,

onde n é o número de barras do problema de pesquisa. É importante ressaltar que o

valor máximo que poderá ser atribuído a t, para a modelagem aqui implementada, é

n, afinal t armazena a quantidade de barras modificadas simultaneamente e,

portanto, não poderá ter um tamanho maior que o número de barras existentes no

problema tratado.

A construção da solução inicial utiliza o método GRASP como garantia de

qualidade. Com a solução inicial gerada, o método executa a seguinte seqüência de

eventos: enquanto o número de iterações sem melhora (corresponde à quantidade

de iterações menos a melhor iteração, sendo esta a iteração que gerou a melhor

solução encontrada até o momento) for menor que o número máximo de iterações

(BTMAX), o algoritmo pesquisa o melhor vizinho da solução inicial corrente de

maneira a atender a seguinte condição: o melhor vizinho somente será aceito caso

tenha sido gerado a partir da modificação de x barras simultâneas de maneira que x

não esteja na lista tabu.

Ainda assim, existe um critério mais conhecido como função de aspiração que

aceita um vizinho gerado por um movimento que esteja na lista tabu se este melhor

vizinho for melhor que a melhor solução encontrada até o momento.

Após decidir a escolha do melhor vizinho gerado por meio da solução inicial, o

método atualiza a lista tabu adicionando a ela o movimento realizado na geração do

Page 58: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

56

vizinho. Vale lembrar que os movimentos de vizinhos aceitos pelo critério de

aspiração não são adicionados à lista, pois tais movimentos já existem na mesma.

A lista funciona como o tipo de dados fila de forma que o primeiro que entra é o

primeiro que sai. Para facilitar a compreensão deste procedimento, considere o

seguinte exemplo: em uma lista vazia com tamanho máximo de 4 elementos, o

sistema adiciona os valores 1, 4, 2, e por último, o valor 5. Para que o próximo valor

seja adicionado, o primeiro da lista (neste caso, o valor 1) será removido e todos os

demais valores terão seus índices subtraídos de uma unidade, sendo deslocados

para a esquerda na lista, cedendo a última posição para o próximo valor.

Com o melhor vizinho gerado, o método analisa se o mesmo é melhor do que a

melhor solução encontrada até o momento. Caso seja melhor, o método atualiza a

melhor solução e atualiza a variável que armazena a melhor iteração até o momento.

Após este cálculo, o sistema incrementa o contador de iterações e recomeça o

processo caso o número de iterações sem melhora não tenha atingido BTMAX.

O processo de calibragem deste método foi facilitado devido ao baixo número

de parâmetros. Sua principal desvantagem reside na implementação, pois a

manutenção da lista tabu e a pesquisa por vizinhos exigem um pouco mais de

atenção.

É importante salientar que nem sempre é possível encontrar qual o melhor

vizinho de uma determinada solução. Por exemplo, no caso de um dos problemas

tratados neste trabalho, encontrado em Yokota et al. (1998), as soluções são

calculadas com uma precisão de seis casas decimais. Sendo assim, devido a grande

quantidade de soluções possíveis, é impraticável gerar todos os possíveis vizinhos

de uma solução devido ao tamanho do espaço de busca. Sendo assim, o processo

de geração do melhor vizinho foi padronizado para construir vizinhos de uma

determinada solução até atingir BTMAX iterações sem melhora ou quando o primeiro

melhor for encontrado.

Sua execução se mostrou rápida, apresentando respostas com excelente

qualidade, mas devido à complexidade de sua implementação talvez não seja o

Page 59: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

57

método mais indicado àqueles que não estão mais intimamente familiarizados à área

computacional.

O Quadro 3.5 exibe em detalhes o pseudocódigo do método Busca Tabu

implementado neste trabalho.

3.2.6 Colônia de Formigas

Conforme detalhado no capítulo anterior, este método faz uma analogia ao

comportamento de um conjunto de formigas em busca de alimento. Durante esta

busca, cada formiga deposita uma substância no caminho percorrido, conhecida

como feromônio.

Neste trabalho, o ato de percorrer um determinado caminho até o alimento foi

primeiramente modelado como o ato de gerar uma solução vizinha a partir de uma

solução inicial, modificando um determinado componente (área de seção transversal

de uma determinada barra) de uma solução qualquer. Por exemplo, considerando

QUADRO 3.5: Pseudocódigo do método Busca Tabu.

(1) Constrói solução inicial factível via método GRASP (s);

(2) Inicializa a lista tabu de tamanho t, onde t é um parâmetro do método ();

(3) Enquanto (iterações – melhor iteração) < (número máximo de iterações) faça:

a. Selecione o melhor vizinho (s’) de s cujo movimento para gerá-lo não

esteja na lista tabu OU função de aspiração (se o melhor vizinho é

melhor que a melhor solução, o aceita mesmo que o movimento que o

gerou esteja na lista tabu);

b. Atualiza a lista tabu adicionando o movimento utilizado na geração do

melhor vizinho (); Caso a lista esteja cheia, remove o valor que está há

mais tempo na lista (política de fila first-in, first-out);

c. Atualiza a solução inicial com o melhor vizinho (s=s’);

d. Se o vizinho gerado for melhor que a melhor solução encontrada até o

momento, atualiza a melhor solução e armazena a iteração corrente

como a melhor iteração (melhor iteração = iteração);

(4) Apresenta a melhor solução encontrada ();

Page 60: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

58

uma solução representada por um vetor, a modificação do valor da barra 1 para

gerar a solução vizinha indica que o caminho 1 foi percorrido.

Inicialmente, esta modelagem apresentava alguns resultados satisfatórios,

porém ainda longe dos resultados esperados. Mesmo após passar pelo processo de

calibragem dos parâmetros, os resultados obtidos ainda poderiam ser melhorados.

Dessa maneira, a modelagem do “caminho” percorrido foi modificada. Ao invés

de considerar a barra modificada equivalente ao caminho percorrido, passou a ser

considerado a quantidade de barras alteradas simultaneamente. Por exemplo, o

valor 6 armazenado, não indicaria mais que a barra 6 foi modificada, mas sim que

seis barras tiveram suas áreas de seção transversal alteradas simultaneamente para

gerar a solução vizinha.

Desse modo os resultados obtiveram uma melhora significativa, demonstrando

que a maneira como um determinado tipo de problema é modelado possui uma

importância intrínseca na eficiência e na qualidade das soluções obtidas.

Obviamente a importância do processo de experimentação não deverá ser

minimizada, uma vez que a necessidade de alteração na modelagem do problema

somente foi descoberta por meio dos testes de execução.

Por meio do processo de experimentação, os parâmetros foram calibrados com

os seguintes valores: número máximo de iterações ACMAX (que foi definido em 50

iterações), quantidade de formigas (definido em 200 formigas), valor de incremento

do feromônio (definido com valor 1) e percentual de evaporação do feromônio

(definido em 0,5). O valor de incremento significa qual a quantidade de feromônio

que será depositada cada vez que uma formiga percorrer um determinado caminho.

Sendo assim, de acordo com o valor definido para o parâmetro, cada formiga

deposita 1 unidade de feromônio para cada caminho. O percentual de evaporação

corresponde ao valor que será multiplicado pela quantidade de feromônio de cada

caminho percorrido, simulando o fenômeno de evaporação do feromônio.

Para iniciar o processo, o método deverá gerar um caminho a partir de uma

determinada solução inicial. A construção de tal solução foi realizada pelo método

GRASP, sempre gerando soluções factíveis.

Page 61: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

59

Entende-se por “caminho” a alteração de uma determinada área de seção

transversal, de uma barra qualquer da solução inicial, que gere uma nova solução

factível. Implementado desta maneira, após as primeiras execuções, foi verificado

que o método não conseguia aperfeiçoar soluções consideradas de média qualidade

em relação ao valor de referência do problema tratado. Sendo assim, o “caminho”

passou a ser modelado como a alteração das áreas de x barras simultaneamente.

Com esta modificação o algoritmo conseguiu atingir ótimos resultados, gerando

soluções de ótima qualidade.

Para controlar a quantidade de feromônio do caminho percorrido por cada

formiga foi utilizada uma matriz, utilizando como índices a quantidade máxima de

barras pela quantidade de formigas. Esta matriz armazena a quantidade de

feromônio depositado por cada formiga a cada iteração do método e, antes de iniciar

o processo, seus valores são zerados. Para facilitar a compreensão, a Figura 3.2

exibe um esquema dessa matriz.

Sendo assim, a partir da solução inicial gerada, na primeira das ACMAX iterações,

a primeira formiga do processo sorteia um número n de barras para serem

modificadas simultaneamente (escolhendo, assim, um caminho a percorrer). Ao

modificar estas áreas, caso a estrutura se torne infactível, sorteia-se novamente uma

outra quantidade n de barras para modificação e assim sucessivamente até que uma

solução factível seja encontrada.

Atingida a factibilidade, o algoritmo verifica se a solução encontrada é melhor

que a melhor solução encontrada até o momento. Caso seja o método atualiza a

melhor solução.

FIGURA 3.2: Esquema da matriz de feromônio.

Page 62: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

60

Após percorrer o caminho a matriz de feromônio é atualizada e a próxima

formiga entra em ação. A partir daqui já existem caminhos percorridos, onde a

quantidade de feromônio de cada caminho (nesse caso, a quantidade de barras

modificadas simultaneamente) está armazenada na matriz de feromônios. Porém, se

todas as formigas, após a primeira, sempre seguissem o rastro de feromônio, a

quantidade de barras modificadas pela primeira formiga seria a mesma quantidade

de barras selecionada a todo instante para sofrer a alteração.

Para evitar este problema foi definido um percentual de 60% de chance de a

próxima formiga seguir o caminho com mais feromônio. Para realizar este controle, é

sorteado um valor qualquer entre 1 e 10. Caso o valor sorteado seja maior que 6, ou

seja, fora do percentual de chances de seguir o rastro de feromônio, a formiga

sorteia um novo caminho para percorrer, modificando a estrutura até atingir a

factibilidade. Caso o valor sorteado esteja dentro dos 60%, o algoritmo percorre a

matriz de feromônio e retorna uma lista ordenada da quantidade de barras alteradas

simultaneamente com maior quantidade de feromônio. A formiga então escolhe

alguma quantidade dentre as n/2 quantidade de barras da lista (onde n representa

quantidade de barras do problema tratado).

O processo é repetido para todas as formigas, cuja quantidade é um valor

definido como parâmetro do método. Quando todas as formigas já tiverem percorrido

algum caminho, a matriz de feromônio é atualizada, multiplicando todos os valores

pelo parâmetro de evaporação. O processo se reinicia para a próxima iteração até

atingir ACMAX iterações. Ao final do processo, a melhor solução é retornada.

Devido à quantidade de parâmetros de calibragem, requisitando mais tempo nos

testes de experimentação e, pelo tamanho da matriz de feromônios ser diretamente

proporcional à quantidade de barras do problema, este método pode ter seu custo

computacional muito elevado caso a estrutura possua um número muito elevado de

barras na sua composição. Entretanto, o método apresentou resultados de

qualidade satisfatória e sua implementação, modelada da forma aqui demonstrada,

é de fácil compreensão e de simples desenvolvimento. O Quadro 3.6 exibe em

detalhes o pseudocódigo do método Colônia de Formigas implementado.

Page 63: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

61

QUADRO 3.6: Pseudocódigo do método Colônia de Formigas.

(1) Constrói solução inicial factível via GRASP (s);

(2) Enquanto não alcançar o número máximo de iterações faça:

a. Enquanto não alcançar o número de formigas faça:

i. Enquanto não gerar uma solução factível a partir de s, faça:

1. Caso seja a primeira formiga, sorteia uma quantidade de

barras (que corresponde a um caminho até uma outra

solução);

2. Caso contrário verifica na matriz de feromônio quais as (n/2)

quantidade de barras simultâneas com mais feromônio () e

sorteia uma entre elas;

3. Verifica a probabilidade da formiga seguir o caminho

escolhido entre os n/2 melhores caminhos da matriz de

feromônio ();

4. Caso a probabilidade esteja dentro do limite determinado,

modifica a quantidade de barras escolhidas em s (gerando

s’) e avalia a factibilidade da solução gerada ();

5. Caso contrário sorteia-se uma quantidade de barras (novo

caminho), modificam-se as barras de s (gerando s’) e avalia

a factibilidade da solução gerada ();

ii. Avalia se a solução gerada (s’) é melhor que a melhor solução

encontrada até o momento através da função objetivo ();

iii. Caso seja, atualiza a melhor solução e atualiza s (s=s’);

iv. Atualiza a matriz de feromônios, incrementando o caminho escolhido

acima (quantidade de barras alteradas);

v. Incrementa o contador de formigas;

b. Incrementa o contador de iterações;

c. Atualiza a matriz de feromônio baseado no parâmetro de evaporação ();

(3) Apresenta a melhor solução encontrada ();

Page 64: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

62

4 DESENVOLVIMENTO

4

DESENVOLVIMENTO

Page 65: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

63

Este capítulo descreve alguns detalhes relacionados ao desenvolvimento deste

trabalho, inclusive a respeito do software utilizado na análise das estruturas geradas

pelos métodos heurísticos, bem como a maneira como foi implementada a sua

integração com o sistema aqui desenvolvido.

As seções seguintes foram dispostas da seguinte maneira: a Seção 4.1

descreve o software utilizado para realizar a análise das estruturas geradas pelas

heurísticas, de modo a atestar sua viabilidade quanto aos requisitos de projeto. A

Seção 4.2 descreve as variáveis de inicialização do sistema, que são lidas por meio

de um arquivo XML, e detalha a maneira pela qual ocorre a troca de informações

entre o sistema desenvolvido neste trabalho e o software utilizado na análise das

estruturas. O Anexo A, ao final deste trabalho, apresenta em detalhes como instalar

e configurar o ambiente de desenvolvimento utilizado.

4.1 O SOFTWARE INSANE E SUA INTEGRAÇÃO

Para a análise estrutural dos problemas investigados neste trabalho, o programa

escolhido foi o software INSANE, desenvolvido no Departamento de Engenharia de

Estruturas da UFMG (Fonseca, 2004). Sua interface gráfica é exibida na Figura 4.1.

Sua escolha se deve, principalmente, ao fato de sua implementação ter sido

elaborada na mesma linguagem (Java) que este trabalho, o que facilitou a troca de

informações entre os dois programas.

Page 66: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

64

Cada estrutura gerada pelo OtimoEstrutura deve ser analisada com relação à

sua viabilidade, ou seja, se a mesma atende os requisitos de projeto como

deslocamentos máximos permitidos e tensões máximas suportadas. Como o

INSANE trabalha com arquivos XML, a primeira idéia para realizar esta tarefa foi

gerar um arquivo XML para cada estrutura. A partir daí o INSANE carregaria tal

arquivo e analisaria a estrutura para atestar sua viabilidade, atualizando o arquivo

XML para informar ao OtimoEstrutura o resultado da análise. Esta idéia foi logo

descartada ao calcular em média a quantidade de soluções geradas pelos

algoritmos. Considerando tais empecilhos, a maneira encontrada foi incorporar o

INSANE ao OtimoEstrutura, de maneira a executá-lo (em segundo plano) durante a

execução do sistema aqui desenvolvido.

Para realizar esta tarefa, foi necessário adicionar um novo método principal no

INSANE. O método principal, também conhecido como método main(), é o primeiro

FIGURA 4.1: Interface do software INSANE.

Page 67: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

65

método invocado ao executar qualquer sistema desenvolvido na linguagem Java.

Sendo assim, foi adicionado outro método main(), de modo que o método criado

realizasse as mesmas operações do método main() original, exceto a execução do

comando que exibe a aplicação na tela. Desse modo, o INSANE aguarda, em

segundo plano, as estruturas que serão analisadas.

Após configurar o INSANE para executar em segundo plano, foi necessário

analisar o modo pelo qual as estruturas seriam transmitidas. A maneira adotada foi

utilizar um arquivo XML de inicialização para o OtimoEstrutura. Os detalhes a

respeito de seu funcionamento são exibidos na seção seguinte.

4.2 INICIALIZAÇÃO DE VARIÁVEIS

O arquivo XML de inicialização foi desenvolvido com o objetivo de fornecer os

dados necessários ao INSANE para a análise das soluções geradas. Neste arquivo

(IniFile.XML) estão as informações relacionadas à quantidade de barras da estrutura

do problema tratado, o deslocamento máximo permitido, a tensão máxima

suportada, a densidade do material, o intervalo de áreas de seção transversal

permitido para cada barra, o tempo máximo de execução para os algoritmos, a

precisão de casas decimais para os cálculos e o caminho do arquivo gerado no

INSANE.

Para cada problema tratado é necessário modificar este arquivo, de maneira a

relacionar os requisitos de projeto e intervalo permitido das áreas de seção

transversal correspondentes. A Figura 4.2 exibe um exemplo deste arquivo,

relacionado ao primeiro problema avaliado neste trabalho (Yokota et al., 1998).

Page 68: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

66

Para aplicar as heurísticas aqui implementadas a um determinado problema

estrutural, primeiramente é necessário modelar este problema no INSANE. Um

exemplo desta modelagem foi mostrado na Figura 4.1. Após modelar o problema é

necessário salvar o arquivo (de extensão “.ISN”). Feito isso, ao executar o

OtimoEstrutura, é necessário informar (através do IniFile.XML), qual o caminho do

arquivo “.ISN” no disco, juntamente com as restrições de projeto para que, ao

executar o INSANE em segundo plano, o mesmo carregue as informações

relacionadas ao modelo do problema tratado. Após realizar estes passos, o

OtimoEstrutura está pronto para ser executado. A Figura 4.3 abaixo é exibida ao

executar o OtimoEstrutura, solicitando que o usuário informe o arquivo de

inicialização citado.

FIGURA 4.2: Exemplo do arquivo de inicialização IniFile.XML.

FIGURA 4.3: Executando o sistema OtimoEstrutura.

<?xml version="1.0" ?>

<IniFile casasdecimais="6" numbarras="10"

deslocamentomaximo="5.000" densidade="0.1" stressmax="25000"

tempoMaxEmSegundos="480"

pathmodelo="C:\java\workspaces\jpgp\OtimoEstrutura\YOKOTA.ISN">

<AREA areamenor="11.5" areamaior="12.5" comprimento="360.0"/>

<AREA areamenor="8.0" areamaior="9.0" comprimento="360.0"/>

<AREA areamenor="0.1" areamaior="1.0" comprimento="360.0"/>

<AREA areamenor="5.5" areamaior="6.5" comprimento="360.0"/>

<AREA areamenor="5.5" areamaior="6.0" comprimento="509.12"/>

<AREA areamenor="8.0" areamaior="9.0" comprimento="509.12"/>

<AREA areamenor="8.0" areamaior="9.0" comprimento="509.12"/>

<AREA areamenor="0.1" areamaior="1.0" comprimento="509.12"/>

<AREA areamenor="0.1" areamaior="1.0" comprimento="360.0"/>

<AREA areamenor="0.1" areamaior="1.0" comprimento="360.0"/>

</IniFile>

Page 69: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

67

A Figura 4.4 mostra a interface gráfica do OtimoEstrutura, exibindo o menu onde

as heurísticas implementadas são selecionadas para execução.

Cada heurística foi implementada como uma classe, contendo seus atributos e

métodos definidos. Ao escolher qualquer heurística para execução, o sistema exibe

outra tela idêntica à Figura 4.3, solicitando que o usuário informe o arquivo de

inicialização da heurística correspondente. Este arquivo contém os valores dos

parâmetros de calibragem de cada um dos métodos. A Figura 4.5 mostra um

exemplo de um arquivo de inicialização do AG (IniAG.XML).

FIGURA 4.4: Interface gráfica do sistema OtimoEstrutura.

FIGURA 4.5: Exemplo do arquivo de inicialização do AG.

<?xml version="1.0" ?>

<IniAG mutacao="0.3" cruzamento="0.6" numerogeracoes="1500"

tamanhoindividuo="10" populacao="20">

</IniAG>

Page 70: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

68

Logo nos primeiros testes foi detectado que, durante a análise das estruturas, o

OtimoEstrutura gradualmente ocupava mais memória, diminuindo seu desempenho

e seguindo este padrão até ter sua execução interrompida. Este problema foi

solucionado removendo da memória os resultados calculados pelo INSANE a cada

análise estrutural. Esta tarefa foi realizada utilizando dois métodos existentes no

INSANE: Interface.cleanResults() e Interface.closeModelWithoutSaving(). O primeiro

método limpa os resultados da tela. Porém, ao executar somente ele, para cada

solução analisada pelo INSANE, este solicitava que o usuário salvasse ou não o

modelo analisado. Sendo assim, foi necessário desenvolver o segundo método,

implementado a partir de outro método do INSANE, chamado de

Interface.closeModel(). Esta implementação foi realizada apenas removendo a

opção de salvar o modelo, pois da maneira utilizada anteriormente (sem tais

comandos), cada análise estava acumulando os resultados anteriores.

As informações contidas no arquivo XML, exibido na Figura 4.2, são utilizadas

no OtimoEstrutura durante sua execução. As informações relacionadas aos

intervalos de áreas de seção transversal permitidas são utilizadas durante o

processo de construção de cada solução. A ordenação em que as áreas estão

dispostas no arquivo influenciam diretamente no processo de otimização. Por

exemplo, de acordo com a Figura 4.2, os valores de área permitidos para a barra “4”

variam de 5,5 a 6,5. Isto porque esta informação está disposta exatamente na quarta

linha da seção de informações a respeito dos intervalos de área (que corresponde

às tags nomeadas de “<AREA>”).

Desse modo, ao modelar qualquer problema no INSANE, deve-se nomear cada

barra com seu número correspondente para que o OtimoEstrutura possa relacionar

corretamente os valores permitidos para cada elemento da estrutura. Sendo assim,

conforme o exemplo acima citado, a barra 4 do modelo deverá ser nomeada por “4”,

e assim sucessivamente. A Figura 4.6 exibe um exemplo da nomenclatura que deve

ser utilizada para que cada barra possua um valor de área que corresponde ao

intervalo permitido, contido no arquivo de inicialização. De acordo com a Figura 4.6,

a área de seção transversal da barra selecionada (barra “6”, ligando o nó 4 ao nó 2)

possui o nome “6”, e portanto, corresponde à sexta tag <AREA> do arquivo

IniFile.XML (permitindo valores de área entre 8,0 in2 a 9,0 in2). Ou seja, no exemplo

Page 71: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

69

da Figura 4.6, o valor exibido (8,538694) está corretamente dentro do intervalo

permitido para esta barra.

O fluxo da transmissão de informações funciona da seguinte maneira: o

OtimoEstrutura gera uma determinada configuração de barras (possível solução) e

acessa o modelo do INSANE, modificando as áreas de seção transversal do modelo

de acordo com a configuração gerada (daí a importância de padronizar a

nomenclatura na estrutura). A partir daí, é executado o método analyseModel() da

classe StructuralMech do INSANE. Este comando analisa o modelo e retorna os

valores necessários para validar a solução. A Figura 4.7 exibe um diagrama de

sequência para facilitar a compreensão desta etapa.

FIGURA 4.6: Padronização de nomenclatura da modelagem de problemas no INSANE.

Page 72: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

70

O valor relacionado ao deslocamento máximo de cada nó da estrutura é obtido

por meio do comando “Math.abs(it.getModel().getDiscreteModel().getDriver().

getSolution().getXVector().getElement(a));”. Este comando é utilizado para

verificar o deslocamento no passo 8 da Figura 4.7. A função Math.abs retorna o valor

absoluto do deslocamento, uma vez que ele pode ser positivo ou negativo

dependendo do sentido em que ocorre. A variável “a” corresponde a cada nó da

estrutura. Desse modo, este valor é buscado para cada nó da estrutura e verifica-se

se o valor retornado é menor ou igual ao deslocamento máximo permitido no

problema. Caso seja maior, o OtimoEstrutura penaliza a solução gerada, associando

a ela um valor extremamente elevado para seu peso. Caso contrário a verificação

prossegue com o próximo requisito: a tensão máxima.

A tensão máxima de cada barra não é obtida diretamente pelo INSANE. O

INSANE calcula as ações nas extremidades de cada barra. Desse modo, o valor da

tensão é obtido dividindo este valor pela área da seção transversal da barra

correspondente. Para obter o valor correspondente às ações nas extremidades para

FIGURA 4.7: Seqüência de eventos e intercâmbio de dados com o software INSANE.

Page 73: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

71

cada barra é utilizada a expressão “Math.abs(((FrameElement)it.getModel().

getDiscreteModel(). getDriver(). getFemModel(). getElementsList(). get(j)).

getActionAtExtremity(0));”. A variável “j” corresponde a cada barra da estrutura,

de maneira que este comando é executado dentro de uma iteração. E para buscar o

valor da área de seção transversal é utilizada a expressão

“((FrameElement)it.getModel().getDiscreteModel().getDriver().getFemModel().

getElementsList().get(j)).getCrossSection().getArea();”. Dividindo o valor da

ação na extremidade pelo valor da área obtêm-se a tensão máxima suportada pela

barra. Este cálculo é realizado no passo 8 da Figura 4.7. Caso o valor esteja dentro

do valor máximo permitido, o cálculo do peso da estrutura é realizado. Caso

contrário a solução é penalizada, atribuindo a ela um valor extremamente alto para o

peso, de maneira que ela seja desconsiderada ao ser comparada com a melhor

solução corrente nas iterações seguintes.

O valor do peso da estrutura é calculado multiplicando-se a área da seção

transversal pelo comprimento (fornecido no IniFile.XML) e pela densidade (fornecido

no IniFile.XML).

Por meio do arquivo IniFile.XML é possível modificar a densidade do material

empregado na estrutura; modificar o intervalo considerado para a área de seção

transversal das barras; modificar o deslocamento máximo permitido e a tensão

máxima suportada; alterar o tempo máximo de processamento para cada algoritmo e

determinar a precisão dos cálculos realizados por cada algoritmo, garantindo

flexibilidade para trabalhar com diversos tipos de configurações estruturais.

Deste modo, a junção entre os dois sistemas funciona de maneira eficaz,

garantindo rapidez e eficiência na troca de informações sobre cada solução gerada,

fazendo com que o tempo gasto em cada análise seja muito pequeno, não afetando

o desempenho dos algoritmos.

Page 74: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

72

5 ANÁLISE DOS RESULTADOS OBTIDOS

5

ANÁLISE DOS RESULTADOS OBTIDOS

Page 75: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

73

Este capítulo descreve em detalhes cada um dos problemas utilizados neste

trabalho, apresentando os resultados obtidos para cada algoritmo aplicado. Com o

objetivo de atestar a eficiência e o desempenho dos métodos heurísticos aqui

desenvolvidos foram selecionados três problemas, com configurações estruturais e

restrições de projeto distintas.

Para cada problema foi elaborada uma análise dos resultados obtidos por meio

de gráficos, contendo a evolução da qualidade das soluções obtidas em função do

tempo de execução. Durante esta análise, os resultados considerados “excelentes”

são aqueles que obtiveram qualidade superior ao valor de referência. Os resultados

considerados “bons” são aqueles bem próximos e em alguns casos, até mesmo

iguais ao valor de referência. Resultados considerados “satisfatórios” estão próximos

ao valor de referência, mas ainda podem ser melhorados. E “ruins” são resultados

que não estão sequer próximos do valor de referência, demonstrando que, por

algum motivo, o algoritmo não apresentou resultados aceitáveis.

Vale ressaltar que cada ponto (X=tempo; Y=peso) considerado em cada

execução na construção do gráfico de um determinado algoritmo, corresponde ao

melhor resultado obtido durante a pesquisa a cada 10 segundos.

A partir deste ponto, com o intuito de facilitar a análise dos resultados, alguns

algoritmos serão abreviados da seguinte maneira: Algoritmos Genéticos (AG),

Simulated Annealing (SA), Busca Tabu (BT) e Colônia de Formigas (AC).

A Seção 5.1 descreve o problema apresentado em Yokota et al. (1998),

composto por uma configuração estrutural constituída de dez barras, juntamente

com a análise dos resultados obtidos por meio dos algoritmos aplicados. A Seção

5.2 descreve o problema proposto em Fawaz et al. (2005), composto por dezoito

barras e adaptado para realizar a otimização apenas das áreas de seção transversal

de cada barra. A análise dos resultados obtidos está incluída na mesma seção. E

por fim, a Seção 5.3 descreve o problema composto de quarenta e sete barras de

Castro (2001), também adaptado para realizar a otimização apenas das áreas de

seção transversal e incluindo também uma análise dos resultados obtidos.

Page 76: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

74

5.1 ESTRUTURA DE 10 BARRAS

5.1.1 Descrição do Problema

A figura 5.1 ilustra a configuração estrutural de barras do problema tratado.

A estrutura exibida na Figura 5.1 possui algumas restrições de projeto, as quais

são descritas na tabela abaixo:

11,5 in2 ≤ A1 ≤ 12,5 in2 8,0 in2 ≤ A2 ≤ 9,0 in2

0,1 in2 ≤ A3 ≤ 1,0 in2 5,5 in2 ≤ A4 ≤ 6,5 in2

5,5 in2 ≤ A5 ≤ 6,0 in2 8,0 in2 ≤ A6 ≤ 9,0 in2

8,0 in2 ≤ A7 ≤ 9,0 in2 0,1 in2 ≤ A8 ≤ 1,0 in2

0,1 in2 ≤ A9 ≤ 1,0 in2 0,1 in2 ≤ A10 ≤ 1,0 in2 E = 107 psi ρ = 0,1 lb/in3

| σ | ≤ 25000 (25 ksi) | v6 | ≤ 5,0 in l1 – 4, 9, 10 = 360 in P = 105 lbs l5 – 8 = 360√2 in

As variáveis Ai citadas na tabela correspondem ao intervalo permitido de valores

para a área da seção transversal de cada barra envolvida no processo. Por exemplo,

a área da seção transversal da barra 1 pode variar entre 11,5 e 12,5. Os coeficientes

assinalados na tabela acima são restrições que deverão ser consideradas durante o

processo de pesquisa, de maneira que cada estrutura gerada durante o processo

FIGURA 5.1: Topologia da estrutura com 10 barras. Fonte: Yokota et al. (1998).

TABELA 5.1: Restrições de projeto e valores de coeficientes. Fonte: Yokota et al. (1998).

Page 77: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

75

deverá obedecer a todos os requisitos estruturais acima citados, caso contrário

deverá ser descartada pois é infactível para o problema. Na Tabela 5.1, E é o

módulo de elasticidade longitudinal do material, σ é a tensão máxima suportada, li

corresponde ao comprimento de cada barra i, ρ corresponde à densidade do

material e v6 corresponde ao deslocamento vertical do nó 6, que deverá ser

menor ou igual a 5. Note que, no caso do deslocamento, o nó 6 é citado mas a

verificação é realizada em todos os nós. A implementação foi realizada desta

maneira para que o OtimoEstrutura possa trabalhar com qualquer tipo de

configuração estrutural. O nó 6 é citado em particular na tabela devido a sua

posição na configuração estrutural do problema, de maneira que ele é o nó que

mais se deslocará ao aplicar o peso P.

5.1.2 Resultados

Durante o processo de experimentação dos algoritmos foi percebido que

nenhum dos métodos utilizados conseguia alcançar a solução de referência, obtida

por Yokota et al. (1998). Ao analisar a solução de referência no INSANE, foi

constatado que, apesar de satisfazer o requisito de deslocamento máximo permitido,

a mesma não satisfazia o requisito de tensão máxima suportada. Para confirmar

este fato foi utilizado o software comercial LUSAS (2007), que realiza a análise

estrutural utilizando Elementos Finitos. Este software comprovou que a melhor

solução encontrada em Yokota et al. (1998) possui uma barra que atinge uma

tensão máxima (σ) de valor 27134 psi, de maneira que o máximo permitido, de

acordo com as restrições de projeto, seria até 25000 psi. Os demais valores obtidos

em Yokota et al. (1998) foram corretamente validados pelo INSANE. Sendo assim, o

valor de referência que passou a ser considerado é encontrado em Rozvany (1991).

Para a execução dos testes, cada algoritmo foi limitado em 8 minutos de

execução. Este valor foi definido durante o processo de experimentação do

problema tratado, estabelecido como critério de parada de cada algoritmo. Tal valor

foi definido por ter sido considerado o tempo gasto em média para que os algoritmos

estabilizem sua busca, de maneira a não melhorar significativamente a qualidade da

Page 78: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

76

melhor solução corrente. Os resultados demonstrados na Tabela 5.2 são os

melhores obtidos em dez execuções para cada algoritmo.

Algoritmo Utilizado Melhor Solução Encontrada Erro Rel.

AG [12.184564, 8.765164, 0.1, 6.011111, 5.567187, 8.404665,

8.675727, 0.1, 0.1, 0.1] - Peso: 2139.51531 lbs 0,019%

VNS [12.37530, 8.61023, 0.1, 6.25468, 5.56154, 8.21205, 8.71207,

0.15450, 0.12264, 0.1] - Peso: 2144.91843 lbs 0,271%

GRASP com VNS [12.16320, 8.28717, 0.1, 6.11155, 5.53106, 8.88064, 8.53061,

0.15408, 0.11889, 0.11336] – Peso: 2144.07353 lbs 0,232%

Simulated Annealing [12.21668, 8.737761, 0.1, 6.21331, 5.56808, 8.47098, 8.4574,

0.11148, 0.1, 0.1] - Peso: 2139.85444 0,035%

Busca Tabu [12.125599, 8.80142, 0.1, 5.975283, 5.561755, 8.599056, 8.521716,

0.1, 0.1, 0.1] - Peso: 2139.18689 lbs 0,004%

Colônia de Formigas [12.04866, 8.903371, 0.10296, 6.01019, 5.56551, 8.64850, 8.43207,

0.1, 0.1, 0.1] - Peso: 2139.5949 lbs 0,022%

DOC-FSD

[YOKOTA,1998] [12.126576, 8.827450, 0.1, 6.046585, 5.564322, 8.497882,

8.551163, 0.1, 0.1, 0.1] - Peso: 2139.198 lbs 0,004%

Dual

[YOKOTA,1998] [12.161174, 8.707029, 0.1, 6.040580, 5.560165, 8.573640,

8.542670, 0.1, 0.1, 0.1] - Peso: 2139.10498 lbs 0,000%

DCOC

[YOKOTA,1998] [12.161174, 8.707029, 0.1, 6.040580, 5.560165, 8.573640,

8.542670, 0.1, 0.1, 0.1] - Peso: 2139.10498 lbs 0,000%

[ROZVANY,1991]

(valor referência) [12.161174, 8.707029, 0.1, 6.040580, 5.560165, 8.573640,

8.542670, 0.1, 0.1, 0.1] - Peso: 2139.10498 lbs

A Tabela 5.3 a seguir exibe os valores obtidos de tensão máxima e

deslocamento máximo das melhores soluções obtidas de cada algoritmo.

Algoritmo Utilizado Tensão máxima (psi) Deslocamento máximo (in)

AG Barra 5: 24989,81 Nó 6: 4,999985944448685

VNS Barra 5: 24936,53 Nó 6: 4.999091569275484

GRASP com VNS Barra 5: 24988,57 Nó 6: 4.999770040553758

Simulated Annealing Barra 5: 24985,03 Nó 6: 4.999953947391877

Busca Tabu Barra 5: 24999,73 Nó 6: 4.999999442826388

Colônia de Formigas Barra 5: 24990,44 Nó 6: 4.999997735144299

[ROZVANY,1991]

(valor de referência) Barra 5: 25000,00 Nó 6: 4.999999993084772

TABELA 5.2: Melhores resultados obtidos em dez execuções para a treliça de 10 Barras.

TABELA 5.3: Tensão máxima e deslocamento máximo das soluções para a treliça de 10 Barras.

Page 79: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

77

5.1.3 Análise dos Resultados

Conforme relatado anteriormente, os gráficos foram elaborados utilizando dez

execuções para cada algoritmo, com o tempo máximo de processamento de 8

minutos para cada execução. Estes valores foram determinados após os testes de

experimentação, levando em consideração o tempo necessário para que cada

algoritmo se estabilizasse.

A Figura 5.2 exibe o gráfico elaborado por meio dos resultados obtidos em cada

execução do método AG, considerando o tempo máximo de 8 minutos. Durante a

execução dos testes para a geração dos gráficos, foi constatado que o algoritmo

atinge boas soluções, consumindo um baixo tempo computacional. Mesmo utilizando

um limite de 8 minutos, o algoritmo já apresenta bons resultados em apenas metade

deste tempo. É importante lembrar que o AG é o único método que não utiliza o

método GRASP na construção de soluções iniciais. Isto porque a utilização do

GRASP neste método implicaria construir todos os indivíduos da população inicial,

elevando o tempo computacional gasto. Sendo assim, a construção utilizada apenas

garante indivíduos factíveis.

Algoritmos Genéticos

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pes

o(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

FIGURA 5.2: Gráfico de Peso (lbs) x Tempo (s) do AG (10 Barras).

Page 80: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

78

A Figura 5.3 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método VNS. Analisando o gráfico nota-se que, mesmo utilizando o

método GRASP para as soluções iniciais, o VNS consome todos os 8 minutos para

atingir bons resultados.

VNS

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pe

so(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

A Figura 5.4 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método GRASP com VNS. Analisando suas execuções constata-se

que, similar ao VNS, consome todo o tempo disponível para atingir bons resultados.

FIGURA 5.3: Gráfico de Peso (lbs) x Tempo (s) do VNS (10 Barras).

Page 81: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

79

GRASP com VNS

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pes

o(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

A Figura 5.5 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método SA. Pela análise do gráfico nota-se que este algoritmo atinge

bons resultados, consumindo baixo tempo computacional.

Simulated Annealing

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pes

o(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

FIGURA 5.4: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (10 Barras).

FIGURA 5.5: Gráfico de Peso (lbs) x Tempo (s) do SA (10 Barras).

Page 82: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

80

A Figura 5.6 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método BT. Analisando o comportamento deste algoritmo percebe-se

ele converge rapidamente para bons resultados, consumindo menos de 80

segundos, que corresponde a menos de 17% do tempo total disponível para a

pesquisa.

Busca Tabu

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pe

so(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

A Figura 5.7 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método AC. Analisando seu comportamento nota-se que o mesmo

converge rapidamente, utilizando pouco tempo computacional para atingir bons

resultados.

FIGURA 5.6: Gráfico de Peso (lbs) x Tempo (s) da BT (10 Barras).

Page 83: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

81

Colônia de Formigas

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo(s)

Pe

so(l

bs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

Para facilitar a compreensão acerca do comportamento dos algoritmos com

relação ao problema em questão, foi elaborado o gráfico da Figura 5.8, reunindo as

melhores execuções de cada algoritmo para o problema tratado.

Melhor execução de cada algoritmo (10 Barras)

2100

2120

2140

2160

2180

2200

2220

2240

2260

2280

2300

0 40 80 120

160

200

240

280

320

360

400

440

Tempo (s)

Pes

o (

lbs)

VNSSAGRASPBTAGAC

FIGURA 5.7: Gráfico de Peso (lbs) x Tempo (s) do AC (10 Barras).

FIGURA 5.8: Melhores resultados de cada algoritmo (10 Barras).

Page 84: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

82

Analisando o comportamento dos algoritmos pelos gráficos anteriormente

exibidos, pode-se perceber que existem algumas características que os

assemelham, e que de certa maneira os dividem em dois grupos: o primeiro grupo é

composto os algoritmos AG, SA, BT e AC. O segundo grupo é composto pelos

algoritmos VNS e GRASP. Esta divisão por semelhança é fácil de ser detectada

analisando os gráficos das figuras 6.2 e 6.3 em comparação com os demais gráficos.

O comportamento dos algoritmos GRASP e VNS é muito parecido. Isto se deve,

principalmente, pelo fato de que o método GRASP utiliza como busca local o próprio

VNS.

O comportamento dos algoritmos GRASP e VNS se destaca dos demais,

considerando o tipo de problema em questão, por um fator muito importante: a

maneira pela qual é realizada a modelagem de um “movimento” para a geração de

soluções vizinhas. Um “movimento”, conforme já citado anteriormente, consiste em

uma modificação sistemática de uma solução, de maneira a gerar outra solução

diferente desta. Todos os demais algoritmos possuem em sua implementação a

possibilidade de modificar simultaneamente uma quantidade aleatória de barras,

enquanto que o método VNS foi modelado de maneira a trabalhar utilizando sua

implementação tradicional, com quatro estruturas de vizinhança distintas:

modificando uma barra, duas barras, três barras ou todas as barras da estrutura. Isto

faz com que a probabilidade de melhorar a qualidade da melhor solução encontrada

em um determinado momento seja menor do que nos demais algoritmos, uma vez

que o espaço de soluções é um pouco menor. Isto é percebido pela existência de

planícies nos gráficos das figuras 5.3 e 5.4. As várias planícies consecutivas

significam que o método consome um tempo maior de processamento para

conseguir melhorar sua solução devido às restrições de geração de novas soluções

impostas pela modelagem.

As planícies, citadas anteriormente, são identificadas como sendo pequenas

retas paralelas ao eixo X, podendo ser encontradas em cada execução,

demonstrando que o método tratado consome um tempo maior de processamento

para conseguir melhorar a solução corrente.

Page 85: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

83

Neste problema, os métodos VNS e GRASP com VNS, apresentaram regiões de

planície em pouco tempo de execução, enquanto os demais métodos somente

apresentaram tais regiões ao final de suas execuções, quando as soluções obtidas

já estavam muito próximas da solução de referência.

No caso do VNS e, consequentemente, do GRASP com VNS, caso fosse

modelada uma quantidade maior de estruturas de vizinhança, o tempo necessário

para aprimorar a qualidade da melhor solução corrente seria menor, uma vez que o

espaço de busca destas soluções seria maior. Porém, não existe uma quantidade

ideal de estruturas de vizinhança para um determinado tipo de problema. Mesmo

que novas estruturas fossem modeladas, problemas com uma quantidade maior de

barras em sua estrutura, por conseguinte, necessitariam de mais estruturas de

vizinhança, de maneira que este aumento pode melhorar um problema específico,

mas não toda uma classe de problemas.

No caso da classe de problemas tratada neste trabalho, a possibilidade de

modificação da área da seção transversal de várias barras simultaneamente

modelado como um único “movimento”, se mostrou extremamente eficaz,

principalmente ao observar o comportamento das heurísticas BT e AC ao modificar a

modelagem utilizada nas mesmas durante os testes de experimentação. Conforme

citado anteriormente, as heurísticas BT e AC, durante o processo de calibragem dos

parâmetros, não apresentavam resultados considerados satisfatórios (sequer

próximos da solução de referência do problema). Sendo assim, a modelagem de um

“movimento” para a geração de novas soluções nestes algoritmos foi modificada na

tentativa de melhorar a qualidade das soluções obtidas. Após tal modificação foi

percebido que, nos testes de experimentação, a qualidade das soluções obtidas,

tanto na AC quanto na BT, foi consideravelmente maior. Isto demonstra que a

modelagem do problema exerce um papel fundamental na eficiência do algoritmo

para o tipo de problema tratado.

Ainda assim, isto não significa que as heurísticas GRASP e VNS sejam

inadequadas, uma vez que tais métodos foram implementados considerando sua

modelagem tradicional. A definição de estruturas de vizinhanças mais elaboradas

pode ampliar o espaço de busca, contribuindo para a melhoria das soluções obtidas.

Page 86: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

84

Ainda assim, para o referido problema, os resultados obtidos foram considerados

bons.

Os métodos do primeiro grupo (AG, SA, BT e AC) se mostraram muito

eficientes. Os gráficos das figuras 5.2, 5.5, 5.6 e 5.7 demonstram que o tempo de

processamento consumido para atingir soluções de boa qualidade é muito pequeno.

O gráfico da Figura 5.8 ilustra o comportamento semelhante destes métodos. Dentre

eles, aquele que melhor obteve uma relação custo / benefício foi o método

Simulated Annealing. Sua facilidade de implementação, aliada à simples calibração,

faz deste método uma excelente opção, garantindo soluções de boa qualidade

consumindo um baixo tempo de processamento.

O método que obteve a solução de melhor qualidade dentre todos foi o método

Busca Tabu. Lembrando que, antes da modificação realizada na modelagem, tal

método atingia soluções consideradas apenas satisfatórias (sequer próximas do

valor de referência).

É importante destacar que nenhum dos algoritmos obteve o mesmo resultado duas

vezes para o problema tratado. Isto ocorre devido à grande diversidade de soluções

existentes para o problema, uma vez que os cálculos foram realizados utilizando

uma precisão de seis casas decimais, o que torna o espaço de soluções

extremamente vasto.

5.2 ESTRUTURA DE 18 BARRAS

5.2.1 Descrição do Problema

A estrutura analisada neste exemplo foi retirada de Fawaz et al. (2005). Em seu

trabalho, a otimização realizada é chamada de multiobjetiva pelo fato de possuir dois

objetivos que podem ter seus valores modificados: a área da seção transversal das

barras e as coordenadas de alguns nós da estrutura (de maneira que sua topologia

pode ser modificada durante o processo de otimização).

Page 87: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

85

A estrutura inicial em que a otimização foi aplicada é mostrada na Figura 5.9 a

seguir.

Os nós 1, 2, 4, 6 e 8 são fixos, ou seja, não podem ter suas coordenadas

alteradas. A cada um destes mesmos nós é aplicada uma força externa

correspondente a 20000 lbs. Desse modo, as seguintes restrições devem ser

consideradas:

a) Tensão máxima menor ou igual a 20 ksi (| σ | ≤ 20000);

b) As 18 barras são divididas em quatro grupos: o 1º grupo é composto das

barras 1, 4, 8, 12 e 16. O 2º grupo é composto pelas barras 2, 6, 10, 14 e 18.

O 3º grupo é composto pelas barras 3, 7, 11 e 15. O 4º e último grupo é

composto pelas barras 5, 9, 13 e 17. As barras que pertencem a um mesmo

grupo devem possuir áreas de seção transversal iguais;

c) Somente os nós 3, 5, 7 e 9 podem ter suas coordenadas modificadas;

d) As propriedades do material utilizado são: módulo de elasticidade (E) igual a

107 psi e a densidade é igual a 0,1 lb/in3;

e) Os valores das áreas de seção transversal podem variar de 0,2 in2 a 30 in2.

FIGURA 5.9: Topologia da estrutura com 18 barras. Fonte: Fawaz et al. (2005).

Page 88: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

86

O resultado do processo de otimização de Fawaz et al. (2005) aplicado na

configuração estrutural, considerando as restrições impostas pelo projeto, é exibido

na Figura 5.10.

A otimização aplicada acima foi realizada considerando dois tipos de variáveis: a

área da seção transversal e a coordenada dos nós 3, 5, 7 e 9. Porém, o presente

trabalho focaliza a otimização de maneira uniobjetiva, utilizando apenas uma

variável: a área de seção transversal. Desta maneira, o modelo da Figura 5.10 foi o

modelo utilizado para aplicar o processo de otimização através dos algoritmos aqui

implementados.

5.2.2 Resultados

A otimização é realizada seguindo o mesmo processo do problema anterior:

cada estrutura gerada durante o processo de busca é analisada pelo INSANE, que

analisa a estrutura fornecida e retorna os resultados referentes à tensão máxima e

deslocamento máximo. É importante destacar que este problema não possui

nenhuma restrição quanto ao valor do deslocamento máximo. Sendo assim, o valor

do deslocamento máximo informado nos parâmetros de inicialização do

OtimoEstrutura foi um valor elevado, de maneira que tal restrição jamais fosse ser

utilizada durante a pesquisa.

Ao analisar a solução otimizada no INSANE com o intuito de verificar os

cálculos, o valor do deslocamento máximo corresponde exatamente ao valor descrito

em Fawaz et al. (2005). Porém, a tensão máxima encontrada não corresponde ao

FIGURA 5.10: Topologia da estrutura de 18 barras otimizada. Fonte: Fawaz et al. (2005).

Page 89: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

87

valor mencionado no referido artigo, que é de 19997 ksi. O valor máximo calculado

pelo INSANE foi de 20087,56 ksi, correspondente à barra 17. Sendo assim, para que

o OtimoEstrutura pudesse realizar sua pesquisa no mesmo espaço de soluções, o

qual a solução otimizada foi encontrada, o limite máximo de tensão foi modificado

para 20089 ksi.

A definição deste valor foi realizada da seguinte maneira: se o referido artigo,

utilizando um limite de tensão máxima de 20000 ksi, obteve a melhor solução com

um valor de tensão máxima de 19997 ksi, a diferença entre o limite máximo

permitido e o valor máximo encontrado foi de 3 ksi. Deste modo, com o intuito de

manter o mesmo espaço de busca da pesquisa para este problema, o limite máximo

foi definido em 20089 ksi, uma vez que a tensão máxima calculada pelo INSANE

para a solução de Fawaz et al. (2005), foi de 20087,56 ksi.

Os resultados descritos na Tabela 5.4 são os melhores obtidos em 10

execuções de dez minutos para cada algoritmo. Este tempo foi estabelecido durante

o processo de experimentação, sendo considerado o tempo gasto em média para

que os algoritmos se estabilizassem. Este valor foi definido por ter sido considerado

o tempo mínimo necessário para que os algoritmos estabilizem sua busca, de

maneira a não melhorar significativamente a qualidade da melhor solução corrente.

O valor de referência é o valor do peso da estrutura otimizada da Figura 5.10 de

Fawaz et al. (2005).

Vale ressaltar que o resultado apresentado em Fawaz et al. (2005) é de 390,42

lbs. Entretanto, este valor está incorreto. Deste modo, o peso da estrutura otimizada

foi recalculado, de maneira que o valor correto é 3899,22 lbs.

É importante notar que os resultados da coluna de Erro Relativo com valores

negativos representam o percentual de melhora em relação ao valor de referência.

Page 90: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

88

Algoritmo Utilizado Melhor Solução Encontrada Erro Rel.

AG [11.39, 15.13, 1.93, 11.39, 4.38, 15.13, 1.93, 11.39, 4.38, 15.13,

1.93, 11.39, 4.38, 15.13, 1.93, 11.39, 4.38, 15.13]

Peso: 3884,69 lbs -0,373%

VNS [11.49, 15.28, 2.28, 11.49, 4.42, 15.28, 2.28, 11.49, 4.42, 15.28,

2.28, 11.49, 4.42, 15.28, 2.28, 11.49, 4.42, 15.28]

Peso: 3943,81 lbs 1,143%

GRASP com VNS [11.44, 15.15, 2.13, 11.44, 5.09, 15.15, 2.13, 11.44, 5.09, 15.15,

2.13, 11.44, 5.09, 15.15, 2.13, 11.44, 5.09, 15.15]

Peso: 3971,72 lbs 1,859%

Simulated Annealing [11.6, 15.29, 2.05, 11.6, 4.51, 15.29, 2.05, 11.6, 4.51, 15.29, 2.05,

11.6, 4.51, 15.29, 2.05, 11.6, 4.51, 15.29]

Peso: 3951,36 lbs 1,337%

Busca Tabu [11.39, 15.13, 1.87, 11.39, 4.38, 15.13, 1.87, 11.39, 4.38, 15.13,

1.87, 11.39, 4.38, 15.13, 1.87, 11.39, 4.38, 15.13]

Peso: 3880,6 lbs -0,478%

Colônia de Formigas [11.39, 15.13, 1.87, 11.39, 4.38, 15.13, 1.87, 11.39, 4.38, 15.13,

1.87, 11.39, 4.38, 15.13, 1.87, 11.39, 4.38, 15.13]

Peso: 3880,6 lbs -0,478%

Ref.

[FAWAZ, 2005]

[11.43, 15.21, 1.92, 11.43, 4.38, 15.21, 1.92, 11.43, 4.38, 15.21,

1.92, 11.43, 4.38, 15.21, 1.92, 11.43, 4.38, 15.21]

Peso: 3899.22 lbs

A Tabela 5.5 a seguir exibe os valores obtidos de tensão máxima e

deslocamento máximo das melhores soluções obtidas de cada algoritmo.

Algoritmo Utilizado Tensão máxima (psi) Deslocamento máximo (in)

AG Barra 17: 20087,56 Nó 1: 21,008551584529517

VNS Barra 16: 19905,85 Nó 1: 20,868994635115193

GRASP com VNS Barra 18: 20058,29 Nó 1: 20,960181019938027

Simulated Annealing Barra 18: 19874,63 Nó 1: 20,715979044740270

Busca Tabu Barra 17: 20087,56 Nó 1: 20,996553053334832

Colônia de Formigas Barra 17: 20087,56 Nó 1: 20,996553053334832

[FAWAZ,2005]

(valor de referência) Barra 17: 20087,56 Nó 1: 20,915188380539250

TABELA 5.4: Melhores resultados obtidos em dez execuções para a treliça de 18 Barras.

TABELA 5.5: Tensão máxima e deslocamento máximo das soluções para a treliça de 18 Barras.

Page 91: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

89

Para que a restrição de grupo (barras do mesmo grupo devem possuir o mesmo

valor de área de seção transversal) fosse considerada, o método responsável pela

análise de cada solução foi modificado para que, antes de avaliar uma solução, a

mesma fosse adequada às restrições de grupo.

Inicialmente, tal operação foi realizada sorteando uma barra de cada grupo e

igualando as demais barras do grupo à área da barra sorteada. Por exemplo,

considere que a barra 8 foi sorteada. Esta barra faz parte do primeiro grupo,

composto pelas barras 1, 4, 8, 12 e 16. Sendo assim, para adequar a restrição de

grupo, a área de seção transversal das barras 1, 4, 12 e 16 eram modificadas, sendo

igualadas ao valor da área de seção transversal da barra 8 sorteada. A mesma

operação era realizada com os demais grupos.

Porém, ao realizar os primeiros testes com o AG, foi detectada a necessidade

de um tratamento mais elaborado desta adequação. Isto porque, ao analisar um

indivíduo resultante de uma operação de Mutação, muitas vezes a nova

característica (nova área de seção transversal proveniente da mutação) era

sobrescrita ao realizar a adequação. Por exemplo, considere que o valor da área de

seção transversal da barra 4 é proveniente de uma mutação. Ao realizar a

adequação, conforme descrito anteriormente, se a barra sorteada do primeiro grupo

for, por exemplo, a barra 12, todas as demais barras (inclusive a barra 4) teriam seus

valores igualados ao valor da área da barra 12. Deste modo, o valor proveniente da

mutação realizada na barra 4 era sobrescrito.

Desta maneira, para os indivíduos provenientes de mutação, ao realizar a

adequação para a restrição de grupo, a área da barra modificada pela mutação

passou a ser propagada para todos os membros de seu grupo, de maneira que a

mutação não mais se perdesse. O mesmo foi desenvolvido para as demais

heurísticas, de modo a diminuir a perda de novas características pelo processo de

adequação da restrição por grupo.

Page 92: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

90

5.2.3 Análise dos Resultados

Da mesma maneira que o problema das 10 barras, os gráficos deste problema

foram elaborados utilizando dez execuções para cada algoritmo, porém com o tempo

máximo de processamento de dez minutos para cada execução. Estes valores foram

determinados após os testes de experimentação, levando em consideração o tempo

necessário para que cada algoritmo se estabilizasse.

A Figura 5.11 exibe o gráfico elaborado por meio dos resultados obtidos pela

aplicação do método AG. Analisando o gráfico nota-se que o AG converge

rapidamente para bons resultados, utilizando em média um terço do tempo

disponível para a pesquisa. Ao final de sua pesquisa o algoritmo obteve resultados

considerados excelentes (de qualidade superior em relação ao valor de referência

do problema tratado).

Algoritmos Genéticos

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

A Figura 5.12 a seguir exibe o gráfico construído por meio das execuções do

algoritmo VNS.

FIGURA 5.11: Gráfico de Peso (lbs) x Tempo (s) do AG (18 Barras).

Page 93: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

91

VNS

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

Analisando o gráfico anterior nota-se que o método VNS consome praticamente

todo o tempo disponível para alcançar resultados considerados satisfatórios (valores

próximos do valor de referência, mas que poderiam ser melhorados). A Figura 5.13

abaixo exibe o gráfico elaborado a partir das execuções do algoritmo GRASP com

VNS.

GRASP com VNS

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

FIGURA 5.12: Gráfico de Peso (lbs) x Tempo (s) do VNS (18 Barras).

FIGURA 5.13: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (18 Barras).

Page 94: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

92

Analisando o gráfico anterior percebe-se que o algoritmo consome todo o tempo

disponível para atingir resultados considerados satisfatórios, de maneira que a

qualidade das soluções finais encontradas poderia ser melhorada.

A Figura 5.14 abaixo exibe o gráfico construído através das execuções do

algoritmo SA.

Simulated Annealing

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

Analisando a Figura 5.14 nota-se que o algoritmo consome pouco tempo

computacional para convergir seus resultados. Porém, a qualidade dos resultados

alcançados pelo SA, no problema tratado, é considerada satisfatória (de maneira

que ainda poderia ser melhorada).

A Figura 5.15 a seguir exibe o gráfico construído através das execuções do

algoritmo BT. É possível perceber que o algoritmo converge rapidamente, obtendo,

ao final de sua pesquisa, resultados considerados excelentes (de qualidade superior

em comparação com valor de referência).

FIGURA 5.14: Gráfico de Peso (lbs) x Tempo (s) do SA (18 Barras).

Page 95: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

93

Busca Tabu

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

A Figura 5.16 a seguir exibe o gráfico construído por meio das execuções do

algoritmo AC. Nota-se que seu comportamento é semelhante ao algoritmo anterior,

e, inclusive, atingindo também resultados considerados excelentes (quando

comparados com o valor de referência).

Colônia de Formigas

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

Execução 1Execução 2Execução 3Execução 4Execução 5Execução 6Execução 7Execução 8Execução 9Execução 10

FIGURA 5.15: Gráfico de Peso (lbs) x Tempo (s) da BT (18 Barras).

FIGURA 5.16: Gráfico de Peso (lbs) x Tempo (s) do AC (18 Barras).

Page 96: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

94

Para facilitar a compreensão acerca do comportamento dos algoritmos com

relação ao problema em questão, foi elaborado o gráfico da Figura 5.17, contendo

as melhores execuções de cada algoritmo.

Melhor execução de cada algoritmo (18 Barras)

3600

4600

5600

6600

7600

8600

0 50 100

150

200

250

300

350

400

450

500

550

Tempo (s)

Pes

o (

lbs)

VNSSAGRASPBTAGAC

Analisando cada gráfico separadamente é possível perceber a mesma

semelhança entre os mesmos métodos, citada na seção anterior. Deste modo, os

mesmos dois grupos de algoritmos podem ser evidenciados: o VNS e GRASP com

VNS em um mesmo grupo, e os demais em outro grupo. O único parâmetro de

inicialização alterado para a execução deste problema em relação à treliça de 10

barras foi a Lista Tabu da Heurística BT, cujo tamanho foi ajustado para seis. Este

valor foi definido durante o processo de experimentação, sendo considerado o valor

que obteve os melhores resultados durante as execuções do algoritmo.

É importante salientar que, para este problema, muitos resultados repetidos

foram alcançados. Tal fato se deve à restrição de áreas de seção transversal

permitida, fazendo com que a probabilidade de uma mesma área ser escolhida em

FIGURA 5.17: Melhores resultados de cada algoritmo (18 Barras).

Page 97: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

95

outras execuções torne-se muito maior do que no problema das 10 barras. Isto

porque o intervalo de área deste problema varia de 0,2 in2 a 30 in2 (considerando, no

máximo, duas casas decimais). Já o problema das 10 barras, possui intervalos

pequenos (por exemplo, de 11,5 a 12,5), porém utilizando uma precisão de seis

casas decimais, o que faz com que a probabilidade de encontrar uma mesma

solução em diferentes execuções seja bem mais reduzida.

Vale notar que o desvio padrão das respostas obtidas entre as execuções de

cada algoritmo para este problema é bem maior do que no problema das 10 barras

pelo mesmo motivo citado acima. Isto se deve à grande diversidade de áreas de

seção transversal permitidas para o problema das 10 barras, que varia em grande

parte nas casas decimais de seus valores, de maneira que o peso final em cada

execução torna-se muito próximo uns dos outros. Porém, para o caso deste

problema, a área da seção transversal pode variar de 0,2 in2 a 30 in2, com precisão

de até duas casas decimais. Desta maneira, o valor da área de seção transversal de

cada barra pode variar mais nos algarismos inteiros, gerando soluções de peso

estrutural com maior desvio padrão entre as dez execuções de cada algoritmo.

Os algoritmos de Busca Tabu e Colônia de Formigas chegaram a um mesmo

resultado e obtiveram um comportamento muito semelhante durante suas

execuções, inclusive atingindo a melhor resposta de cada execução com um tempo

gasto bem reduzido.

Analisando o comportamento do Simulated Annealing pode-se dizer que o

mesmo atingiu um ótimo local. Isto pôde ser constatado ao perceber que a Busca

Tabu e a Colônia de Formigas obtiveram um resultado de qualidade superior

repetidas vezes, enquanto o SA obteve o mesmo resultado em todas as suas

execuções, porém de qualidade inferior. Ainda assim, se observarmos o

comportamento dos algoritmos aplicados a este problema apenas pelo gráfico da

Figura 5.17, equivocadamente chegar-se-ia a conclusão que o VNS foi superior ao

Simulated Annealing. Porém, ao analisar o gráfico de cada algoritmo

individualmente, é possível perceber que o SA apresentou um comportamento muito

mais constante (baixo desvio padrão entre suas execuções) em seus resultados do

que o VNS. Ainda que o melhor resultado do SA seja de qualidade inferior ao melhor

Page 98: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

96

resultado obtido pelo VNS, este último consome um tempo muito maior para atingir

bons resultados devido à modelagem de suas estruturas de vizinhança. Tal fato é

importante para perceber que a eficiência dos algoritmos não pode ser inferida

baseada apenas em uma única execução de cada método. É extremamente

importante executar o método várias vezes, durante e após o processo de

calibração, de modo a qualificar mais precisamente seu comportamento.

O Algoritmo Genético, antes de se perceber a falha do processo de adequação

citada anteriormente (em que o resultado da mutação muitas vezes se perdia), não

obtinha bons resultados. Isto porque, na maioria das vezes, o operador responsável

por inserir uma nova característica na população (Mutação) era ineficiente, pois tal

característica era sobrescrita pelo processo de adequação das áreas para membros

de um mesmo grupo. Esta suposta falha serve para demonstrar a importância do

operador de mutação no processo de pesquisa do AG. Sua existência é

indispensável, mesmo que sua probabilidade de ocorrer seja extremamente

pequena, na continuidade das gerações das populações de indivíduos. Se tal

operador não existir, todas as demais gerações de indivíduos serão sempre

provenientes de características herdadas da população inicial. Dessa maneira, a

mutação é a chave para inserir novas características nos indivíduos e,

conseqüentemente, nas futuras gerações. Ao corrigir o processo, os resultados

obtidos atingiram um nível de qualidade muito próximo dos resultados da Busca

Tabu e da Colônia de Formigas, sendo estes considerados os algoritmos mais

eficientes do presente trabalho.

5.3 ESTRUTURA DE 47 BARRAS

5.3.1 Descrição do Problema

A configuração estrutural composta por 47 barras foi retirada de Castro (2001) e

adaptada para os algoritmos aqui desenvolvidos. A Figura 5.18 ilustra a estrutura a

ser otimizada.

Page 99: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

97

A otimização realizada em Castro (2001) permite a modificação das áreas de

seção transversal das barras e das coordenadas de alguns nós da estrutura, de

maneira que a topologia da estrutura poderá ser alterada durante o processo de

otimização.

FIGURA 5.18: Topologia da torre de 47 barras. Fonte: Castro (2001).

Page 100: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

98

O objetivo principal do processo é o mesmo: minimizar o peso estrutural,

obedecendo a um conjunto de restrições impostas pelo projeto. Porém, cada

problema possui restrições distintas. Sendo assim, as seguintes restrições devem

ser consideradas:

a) Os nós 18, 19, 21 e 22 são fixos. Os nós 1 e 3 são semi-fixos (pois

podem ter suas coordenadas alteradas em relação ao eixo x). Os demais

nós são livres para ter suas coordenadas alteradas (adaptado neste

trabalho, de maneira que todos os nós são fixos, com o intuito de otimizar

apenas a área da seção transversal).

b) Nos nós 21 e 18 é aplicado uma força concentrada vertical de Fy= -14000

lbs em Y e horizontal de Fx= 6000 lbs em X.

c) O módulo de elasticidade é igual a 3x107 psi, tensão admissível de tração

igual a 20000 psi e tensão admissível de compressão igual a -15000 psi

(neste trabalho foi considerada somente uma tensão admissível de 20000

psi para compressão ou tração) e massa específica 0,3 lbs / in3.

d) Devido a restrições de simetria, as seguintes barras devem possui

mesma área de seção transversal: A1=A3; A2=A4; A5=A6; A8=A9;

A11=A12; A13=A14; A15=A16; A17=A18; A19=A20; A21=A22; A23=A24;

A25=A26; A29=A30; A31=A32; A34=A35; A36=A37; A39=A40; A41=A42;

A44=A45; A46=A47;

e) As áreas de seção transversal podem variar entre 0,1 in2 a 20 in2.

f) Nenhuma restrição é imposta para o deslocamento máximo permitido.

Sendo assim, o valor máximo do parâmetro foi inicializado com um valor

muito alto para não interferir na busca.

Page 101: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

99

5.3.2 Resultados

Devido às adaptações realizadas nas restrições da estrutura para sua utilização

neste trabalho e pelo fato da otimização aqui aplicada considerar a modificação de

apenas uma variável, os resultados obtidos não podem ser comparados com os

valores obtidos na referência.

Os resultados descritos na Tabela 5.6 são os melhores obtidos em 10

execuções de doze minutos para cada algoritmo. Este tempo foi estipulado após os

testes de experimentação, considerando o tempo gasto em média para que os

algoritmos se estabilizassem. A coluna de erro relativo foi calculada baseada na

melhor solução obtida, que foi encontrada pelo método Busca Tabu.

O valor obtido pelo algoritmo original, retirado de Castro (2001) é exibido ao final

da Tabela 5.6.

Algoritmo Utilizado

Melhor Solução Encontrada Erro Rel.

AG [6.0, 3.1, 6.0, 3.1, 1.5, 1.5, 5.2, 1.1, 1.1, 4.1, 6.3, 6.3, 1.8, 1.8, 5.7, 5.7, 4.0, 4.0,

5.4, 5.4, 6.2, 6.2, 4.9, 4.9, 6.4, 6.4, 6.5, 5.1, 4.2, 4.2, 2.2, 2.2, 6.2, 3.0, 3.0, 0.6,

0.6, 0.5, 3.7, 3.7, 1.6, 1.6, 7.1, 5.6, 5.6, 0.7, 0.7] - Peso: 4331,0 lbs 169,21%

VNS [5.4, 2.7, 5.4, 2.7, 1.3, 1.3, 1.9, 0.6, 0.6, 4.7, 1.9, 1.9, 2.6, 2.6, 6.4, 6.4, 2.8, 2.8,

2.3, 2.3, 2.0, 2.0, 5.3, 5.3, 2.5, 2.5, 6.7, 5.6, 3.2, 3.2, 3.5, 3.5, 3.0, 6.2, 6.2, 1.2,

1.2, 2.3, 6.6, 6.6, 1.9, 1.9, 2.4, 5.5, 5.5, 1.5, 1.5] - Peso: 4165,6 lbs 158,93%

GRASP

com VNS

[15.2, 3.4, 15.2, 3.4, 1.1, 1.1, 0.3, 2.6, 2.6, 6.7, 1.6, 1.6, 0.4, 0.4, 3.6, 3.6, 1.7,

1.7, 1.3, 1.3, 17.8, 17.8, 8.1, 8.1, 2.2, 2.2, 10.8, 2.9, 3.0, 3.0, 1.0, 1.0, 2.6, 3.5,

3.5, 1.2, 1.2, 1.8, 4.2, 4.2, 4.8, 4.8, 2.1, 3.4, 3.4, 0.7, 0.7] - Peso: 4205,7 lbs 161,42%

Simulated

Annealing

[2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 0.1, 2.2, 2.2, 8.5, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2,

2.2, 2.2, 0.1, 0.1, 2.2, 2.2, 2.2, 2.2, 10.5, 0.1, 6.4, 6.4, 2.2, 2.2, 2.2, 2.2, 2.2, 2.2,

2.2, 4.3, 4.3, 4.3, 2.2, 2.2, 2.2, 4.3, 4.3, 2.2, 2.2] – Peso: 3508,3 lbs 118,07%

Colônia de

Formigas

[2.3, 1.5, 2.3, 1.5, 0.5, 0.5, 0.2, 0.9, 0.9, 1.6, 1.8, 1.8, 0.6, 0.6, 1.0, 1.0, 1.6, 1.6,

0.4, 0.4, 0.4, 0.4, 1.9, 1.9, 2.1, 2.1, 1.4, 0.8, 2.4, 2.4, 1.5, 1.5, 1.0, 2.3, 2.3, 0.6,

0.6, 0.1, 2.9, 2.9, 0.5, 0.5, 0.2, 3.5, 3.5, 0.5, 0.5] - Peso: 1686,8 lbs 4,85%

Busca Tabu

(Valor de

Referência)

[2.3, 1.5, 2.3, 1.5, 0.5, 0.5, 0.2, 0.6, 0.6, 1.3, 1.7, 1.7, 0.4, 0.4, 0.5, 0.5, 1.6, 1.6,

0.3, 0.3, 0.9, 0.9, 2.2, 2.2, 2.5, 2.5, 1.6, 0.3, 2.4, 2.4, 0.8, 0.8, 0.6, 2.5, 2.5, 0.5,

0.5, 0.1, 3.0, 3.0, 0.5, 0.5, 0.2, 3.4, 3.4, 0.6, 0.6] - Peso: 1608,8 lbs

[Lemonge,1999]

apud

[Castro, 2001]

[3.8, 3.4, 3.8, 3.4, 0.8, 0.8, 0.9, 0.9, 0.9, 1.8, 2.1, 2.1, 1.2, 1.2, 1.6, 1.6, 2.1, 2.1,

0.7, 0.7, 0.9, 0.9, 1.7, 1.7, 1.7, 1.7, 1.4, 0.9, 3.7, 3.7, 1.5, 1.5, 0.7, 2.9, 2.9, 0.7,

0.7, 1.6, 3.7, 3.7, 1.6, 1.6, 0.7, 4.5, 4.5, 1.6, 1.6] - Peso: 2446,8 lbs *

TABELA 5.6: Melhores resultados obtidos em dez execuções para a treliça de 47 Barras.

* Resultado obtido utilizando valores de tensões admissíveis diferentes.

Page 102: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

100

A Tabela 5.7 a seguir exibe os valores obtidos de tensão máxima e

deslocamento máximo das melhores soluções obtidas de cada algoritmo.

Algoritmo Utilizado Tensão máxima (psi) Deslocamento máximo (in)

AG Barra 37: 15275,97 Nó 18: 1.4291726128710256

VNS Barra 9: 17530,52 Nó 18: 1,1495388094475552

GRASP com VNS Barra 45: 19769,12 Nó 18: 1,5776944264699788

Simulated Annealing Barra 3: 19287,86 Nó 18: 1,4900368711744065

Colônia de Formigas Barra 30: 19942,09 Nó 18: 2,2778998069655283

Busca Tabu Barra 30: 19998,79 Nó 18: 2,3514695284451386

[Castro, 2001] Barra 26: 20000,0 Nó 18: 1,6201567782764879

Para realizar a adequação das soluções devido às restrições de simetria deste

problema, foi utilizado um processo semelhante à adequação da restrição de grupo

do problema anterior. Do mesmo modo, cada solução gerada é modificada e

adequada à simetria do problema antes de serem analisadas pelo INSANE. Da

mesma maneira que no problema anterior, esta modificação foi implementada no

método responsável pela análise das soluções.

5.3.3 Análise dos Resultados

Da mesma maneira que o problema anterior, os gráficos deste problema foram

elaborados utilizando dez execuções para cada algoritmo, porém com o tempo

máximo de processamento de 12 minutos para cada execução. Este valor foi

determinado após os testes de experimentação, levando em consideração o tempo

necessário para que cada algoritmo se estabilizasse. A utilização deste problema foi

muito importante para determinar a eficiência de cada algoritmo ao trabalhar com

uma quantidade maior de barras na estrutura.

TABELA 5.7: Tensão máxima e deslocamento máximo das soluções para a treliça de 47 Barras.

Page 103: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

101

Os gráficos a seguir demonstram que a quantidade de barras existentes na

configuração estrutural do problema influencia diretamente no desempenho de

alguns algoritmos, como por exemplo, o AG. De acordo com Castro (2001), para

cromossomos de tamanho um pouco maiores, é necessário utilizar um operador de

cruzamento mais elaborado, o que aumentaria a diversidade entre os filhos gerados,

proporcionando um número maior de soluções diferentes provenientes da aplicação

do operador de Crossover. Como o objetivo deste trabalho é realizar uma análise

comparativa entre os algoritmos, o desenvolvimento de operadores mais elaborados

para estes casos é proposto como sugestão para futuros trabalhos.

A Figura 5.19 a seguir exibe o gráfico construído por meio das execuções do

algoritmo AG. Analisando o gráfico nota-se que, mesmo utilizando todo o tempo

disponível para a pesquisa, os resultados obtidos são considerados ruins, sendo

sequer próximos do valor de referência.

Algoritmos Genéticos

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

A Figura 5.20 a seguir exibe o gráfico elaborado por meio das execuções do

método VNS. Pelo gráfico é possível perceber que o VNS não atinge resultados

sequer satisfatórios. Inclusive, analisando o comportamento do algoritmo em todas

FIGURA 5.19: Gráfico de Peso (lbs) x Tempo (s) do AG (47 Barras).

Page 104: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

102

as execuções, percebe-se que, mesmo consumindo todo o tempo disponível, o

algoritmo não atinge resultados aceitáveis (em comparação com o valor de

referência).

VNS

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

A Figura 5.21 a seguir exibe o gráfico elaborado por meio das execuções do

método GRASP com VNS. Pela análise de suas execuções, percebe-se que, do

mesmo modo que o algoritmo anterior, mesmo consumindo todo o tempo disponível

para a pesquisa, o método não consegue atingir resultados sequer satisfatórios.

FIGURA 5.20: Gráfico de Peso (lbs) x Tempo (s) do VNS (47 Barras).

Page 105: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

103

GRASP com VNS

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

A Figura 5.22 a seguir exibe o gráfico das execuções do método SA.

Simulated Annealing

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

FIGURA 5.21: Gráfico de Peso (lbs) x Tempo (s) do GRASP com VNS (47 Barras).

FIGURA 5.22: Gráfico de Peso (lbs) x Tempo (s) do SA (47 Barras).

Page 106: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

104

Analisando o gráfico anterior é possível perceber que, para este problema, o

método SA não atinge soluções consideradas satisfatórias, mesmo consumindo todo

o tempo disponível para a pesquisa.

A Figura 5.23 a seguir exibe o gráfico elaborado por meio das execuções da

heurística BT. Analisando o gráfico é possível perceber que o algoritmo converge

rapidamente para excelentes soluções, consumindo baixo tempo computacional.

Busca Tabu

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

A Figura 5.24 a seguir exibe o gráfico elaborado por meio das execuções do

método AC. Pelo gráfico é possível perceber que o AC apresenta bons resultados

em pouco tempo, atingindo, ao final de sua pesquisa, excelentes soluções.

FIGURA 5.23: Gráfico de Peso (lbs) x Tempo (s) da BT (47 Barras).

Page 107: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

105

Colônia de Formigas

150025003500450055006500750085009500

1050011500125001350014500

0 50 100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

Execução 1

Execução 2

Execução 3

Execução 4

Execução 5

Execução 6

Execução 7

Execução 8

Execução 9

Execução 10

O gráfico da Figura 5.25 contém as melhores execuções de cada algoritmo para

o problema proposto.

Melhor execução de cada algoritmo (47 Barras)

150025003500450055006500750085009500

1050011500125001350014500

0

50

100

150

200

250

300

350

400

450

500

550

600

650

Tempo (s)

Pes

o (

lbs)

VNSSAGRASPBTAGAC

FIGURA 5.24: Gráfico de Peso (lbs) x Tempo (s) do AC (47 Barras).

FIGURA 5.25: Melhores resultados de cada algoritmo (47 Barras).

Page 108: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

106

Os algoritmos VNS e GRASP, de acordo com o gráfico da Figura 5.25, mais

uma vez exibiram resultados semelhantes. Analisando os gráficos individuais de

cada método percebe-se a existência de muitas planícies em pouco tempo de

execução, o que demonstra um gasto de tempo mais elevado para obter melhores

soluções.

O AG não obteve bons resultados devido aos operadores genéticos utilizados

em sua implementação. Conforme mencionado anteriormente, para cromossomos

de tamanho um pouco maior, é necessário desenvolver operadores genéticos

capazes de manter a diversificação entre as gerações durante a evolução da

população, de maneira que tal diversificação não é atingida ao trabalhar apenas com

os operadores clássicos.

Pela análise da Figura 5.25 pode-se perceber que o SA não obteve resultados

satisfatórios. Entretanto, ao analisar o comportamento das execuções do algoritmo

na Figura 5.22, percebe-se que o algoritmo tende a obter resultados mais

satisfatórios consumindo um tempo acima do limite estipulado. Deste modo, foi

realizado um teste estipulando um tempo máximo de 18 minutos e o resultado obtido

foi considerado satisfatório. Mesmo não obtendo bons resultados neste problema,

sua facilidade de implementação e calibração, juntamente com os resultados obtidos

nos problemas anteriores, faz com que este algoritmo seja uma boa alternativa ao se

levar em conta a relação custo / benefício.

Já os algoritmos de Busca Tabu e Colônia de Formigas consolidaram a

eficiência demonstrada nos problemas anteriores. Analisando o gráfico da Figura

5.25 é fácil perceber um comportamento muito semelhante entre eles. Porém, o

algoritmo Colônia de Formigas, ao possuir um número maior de parâmetros, dificulta

um pouco mais o processo de calibração em comparação com o algoritmo de Busca

Tabu.

Page 109: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

107

5.4 ANÁLISE COMPARATIVA ENTRE OS MÉTODOS

Ao analisar os gráficos das figuras 5.23 e 5.24 é possível perceber que os

algoritmos BT e AC conseguem atingir boas soluções utilizando-se de um tempo

computacional muito reduzido, o que demonstra um grande poder de pesquisa. Esta

característica, ao ser comprovada nos três problemas aqui estudados, faz destes

métodos os mais robustos e eficientes deste trabalho.

Sendo assim, o quadro a seguir foi elaborado para comparar os métodos em

níveis de dificuldade (definidos em alta, média e baixa) para os quesitos de:

• Flexibilidade: neste trabalho este quesito está diretamente relacionado

com a quantidade de parâmetros do método, de maneira que uma

quantidade elevada de parâmetros indica alta flexibilidade, permitindo

testar situações diversificadas no intuito de observar como ocorre a

evolução até a resposta;

• Calibração: quanto maior a quantidade de parâmetros, mais difícil torna-

se a tarefa de calibração destes parâmetros devido à quantidade de

possibilidades permitidas;

• Eficiência: diretamente relacionado com o tempo gasto e a qualidade das

respostas obtidas;

• Implementação: refere-se à facilidade de implementação e adaptação do

método a diversos tipos de problema.

Vale lembrar que os conceitos inferidos para cada quesito estão diretamente

relacionados com a classe de problemas tratada neste trabalho, juntamente com as

implementações aqui desenvolvidas, de maneira que os valores podem ser

diferentes para outras classes de problema. Os conceitos descritos na Tabela 5.8

são relacionados com o nível de dificuldade do requisito. “Alta” indica o nível de

dificuldade mais elevado, exigindo mais atenção, paciência e, inclusive, bons

conhecimentos na área computacional. “Média” indica um nível de dificuldade

Page 110: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

108

moderado, exigindo atenção e um nível razoável de conhecimentos em computação.

“Baixa” indica um nível de dificuldade baixa, de maneira que é interessante, mas não

necessária, uma boa formação computacional.

Flexibilidade Calibração Eficiência Implementação

AG Alta Alta Alta Média

VNS Baixa Baixa Média Baixa

GRASP com VNS Média Baixa Média Baixa

Simulated Annealing Média Baixa Alta Baixa

Busca Tabu Média Média Alta Alta

Ant Colony Alta Alta Alta Alta

O método ideal serial aquele que obtivesse os conceitos “Alta”, “Baixa”, “Alta”,

“Baixa”, respectivamente na ordem das colunas acima. Analisando o nível de

dificuldade de cada quesito da tabela, percebe-se que o único algoritmo que possui

alta eficiência e facilidade de implementação é o SA, o que evidencia sua relação

custo / benefício. Outro algoritmo que tem sido largamente utilizado nas mais

diversas áreas de pesquisa em otimização, por possuir grande eficiência e

flexibilidade, aliada a um custo de implementação moderado, é o AG. No caso dos

algoritmos VNS e GRASP com VNS, os mesmos não obtiveram bons resultados

para os dois últimos problemas tratados. Vale lembrar que tais métodos não

obtiveram bons resultados para a classe de problemas aqui propostos,

implementados em sua forma tradicional. Tais resultados podem ser ligeiramente

diferentes para implementações mais elaboradas ou quando aplicados a uma outra

classe de problemas. Os algoritmos BT e AC, mesmo com um grau elevado de

implementação, se mostraram os mais eficientes do trabalho, sendo os mais

indicados àqueles que primam pela qualidade de resultados, utilizando um tempo

computacional reduzido.

TABELA 5.8: Análise comparativa entre os algoritmos implementados.

Page 111: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

109

6 CONCLUSÃO

6

CONCLUSÃO

Page 112: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

110

Este capítulo contém as conclusões acerca deste trabalho, bem como

sugestões para futuras implementações e estudos na área de otimização estrutural

utilizando métodos heurísticos.

6.1 CONSIDERAÇÕES GERAIS

Os métodos aqui desenvolvidos, juntamente com a análise realizada por meio

da aplicação dos problemas propostos, fornecem um grande arcabouço de

experimentos aos profissionais e pesquisadores da área de otimização e

aperfeiçoamento de projetos estruturais.

A análise dos métodos heurísticos aplicados fornece um embasamento teórico e

prático necessário que poderá ajudar na escolha do algoritmo mais adequado ao

tipo de problema que se deseja otimizar.

6.2 CONCLUSÕES

O método de Algoritmos Genéticos se mostrou bastante eficiente nos dois

primeiros problemas e, ainda que os resultados obtidos no último problema não

tenham sido satisfatórios, sua utilização não deve ser descartada. Este método é

largamente utilizado nas mais diversas áreas de otimização, comprovando sua

eficiência e robustez em diversos tipos de problemas, o que pode ser comprovado

em Castro (2001), Yang (2002), dentre outros.

A utilização da codificação real para os cromossomos na implementação do AG

foi fundamental na eficiência deste algoritmo. A utilização de codificação binária para

problemas de grande porte (que necessitam de um tamanho elevado para os

cromossomos) é desencorajada, uma vez exige um grande esforço computacional

para codificação e decodificação de toda uma população. Um estudo sobre

Page 113: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

111

vantagens e desvantagens de cada tipo de codificação pode ser encontrado em

Catarina e Bach (2003).

O operador de Mutação se mostrou extremamente importante no processo de

construção de indivíduos para uma nova geração. Mesmo com baixa probabilidade,

ele garante novas características aos indivíduos em cada geração, de maneira que

tais características não poderiam ser adquiridas utilizando apenas o operador de

cruzamento.

Os métodos VNS e GRASP, mesmo não apresentando resultados satisfatórios

nos dois últimos problemas, são opções interessantes àqueles que desejam

ingressar na aplicação de heurísticas, devido a sua facilidade de desenvolvimento e

calibração.

O método Simulated Annealing comprovou ser o melhor método de relação

custo / benefício, por possuir fácil implementação e calibração, além de obter bons

resultados com um tempo computacional reduzido.

Por meio da implementação dos algoritmos Busca Tabu e Colônia de Formigas,

foi possível perceber a importância do papel da modelagem de um problema para a

aplicação dos métodos heurísticos. Tais heurísticas se mostraram extremamente

eficientes, tornando-se excelentes opções principalmente quando o problema tratado

exigir qualidade de respostas e baixo tempo computacional.

Os resultados obtidos foram considerados excelentes, principalmente ao

comparar os resultados dos Algoritmos Genéticos, Busca Tabu e Colônia de

Formigas com os valores de referência de Rozvany (1991) e Fawaz (2005). As

soluções encontradas possuem qualidade semelhante e até superior (no caso do

segundo problema) ao serem comparados com os valores de referência.

Page 114: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

112

6.3 SUGESTÕES PARA TRABALHOS FUTUROS

As sugestões apresentadas a seguir são algumas idéias que podem ser

abordadas em futuras pesquisas na área de otimização estrutural:

• Analisar um estudo comparativo considerando como novo objetivo para a

otimização a topologia da estrutura, permitindo a alteração das

coordenadas dos nós que compõem a configuração. Um exemplo prático

desta otimização pode ser encontrada em Castro (2001);

• Estudar o comportamento dos algoritmos quando aplicados a projetos

que utilizam treliças tridimensionais ou espaciais, analisando os

resultados obtidos;

• Desenvolver operadores genéticos mais elaborados que permitam ao AG

manter o alto nível de qualidade de suas respostas mesmo quando o

problema possuir um número elevado de barras em sua estrutura

(necessitando de um cromossomo de maior tamanho);

• Estudar o comportamento evolutivo do Algoritmo Genético por meio do

conhecimento dos pais e pontos de mutação de cada indivíduo. O

desenvolvimento realizado neste trabalho mantém armazenados os pais

e, quando ocorre, o ponto de mutação de cada indivíduo, permitindo

mapear o momento em que ocorre o surgimento de novas características

e até mesmo a construção da árvore genealógica de cada indivíduo;

• Desenvolver um algoritmo Simulated Annealing modificado, de maneira a

manter o nível de qualidade mesmo quando o problema possuir um

número elevado de barras em sua estrutura;

• Realizar o processo de otimização em vigas de concreto armado, onde

em geral, o custo não é proporcional ao peso, elaborando um estudo

comparativo entre as heurísticas implementadas;

Page 115: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

113

• Empregar a otimização em problemas considerados “fortemente” multi-

objetivo, como por exemplo, estruturas dinâmicas – peso x freqüências

naturais de vibração.

Page 116: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

114

REFERÊNCIAS

Page 117: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

115

BABA, C. M. Otimização da Colônia de Formigas aplicada ao Problema de programação e roteirização de veículos para o transporte de pessoas portadoras de deficiência. XXVI Encontro Nac. de Eng. de Produção – ENEGEP – 03 a 05 de Novembro de 2004 – Florianópolis – SC - Brasil. Pg. 2966-2973, 2004.

BLAND, J.A. Discrete-variable optimal structural design using tabu search. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 10, Number 2 / October, Pg. 87-93.,1995.

CASTRO, R. E. Otimização de Estruturas com Multi-Objetivos Via Algoritmos Genéticos de Pareto. Tese de Doutorado. COPPE / UFRJ. Rio de Janeiro - RJ. Brasil, 2001.

CATARINA, A. S. e BACH, Sirlei L. Estudo do efeito dos parâmetros genéticos sobre a solução otimizada e sobre o tempo de convergência em algoritmos genéticos com codificações binária e real. Acta Scientiarum. Technology. Maringá-SP, Brasil, v. 25, no. 2, Pg. 147-152, 2003. COELHO, L. S. e NETO, R. F. T., Colônia de Formigas: Uma Abordagem Promissora para Aplicações de Atribuição Quadrática e Projeto de Layout, XXIV ENEGEP, Florianópolis-SC, Brasil, 2004.

COSTA, F. P. Programação de Horários em Escolas via GRASP e Busca Tabu. Monografia de Graduação em Engenharia de Produção pela Universidade Federal de Ouro Preto – MG, Brasil, 2003.

DAMMEYER, F. e VOY, S. Dynamic tabu list management using the reverse elimination method. In P.L. Hammer, editor, Tabu Search, volume 41 of Annals of Operations Research, Pg. 31-46, Baltzer Science Publishers, Amsterdan, 1993.

DIMOU, C.K. e KOUMOUSIS V.K. Competitive genetic algorithms with application to reliability optimal design. Institute of Structural Analysis and Aseismic Research, National Technical University of Athens, Athens, Greece, 2003. Disponível via http://www.elsevier.com/locate/advengsoft.

DORIGO M., Optimization, Learning and Natural Algorithms, Ph.D.Thesis, Politecnico di Milano, Italy, 1992.

DORIGO, M. e CARO, G. DI. The Ant Colony Optimization Meta-Heuristic. In D. Corne, M. Dorigo and F. Glover, editors, New Ideas in Optimization, McGraw-Hill, Pg.11-32, 1999.

FAWAZ, Z., XU, Y.G. e BEHDINAN K. Hybrid evolutionary algorithm and application to structural optimization. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 30, Number 3 – Pg. 219-226 / September, 2005.

FEO, T.A. e RESENDE, M.G.C. Greedy randomized adaptive search procedures. Journal of Global Optimization, Volume 6, Pg. 109-133, 1995.

Page 118: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

116

FONSECA, F. T. e PITANGUEIRA, R. L. Um Programa Gráfico Interativo para Modelos Estruturais de Barras. Departamento de Engenharia de Estruturas, Universidade Federal de Minas Gerais. Belo Horizonte – MG, Brasil, 2004. Disponível via http://www.dees.ufmg.br/insane/artigos.

GLOVER, F. Future paths for Integer Programming and links to Artificial Intelligence. Computers and Operations Research, Volume 5, Pg. 553-549, 1986.

GLOVER, F. e LAGUNA, M. Tabu search. In: Colin, R. R. Modern heuristic techniques for combinatorial problems. New York, McGraw-Hill, Pg. 70-150, 1995.

GOLDBERG, D.E. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley, Berkeley, 1989.

HANSEN, P. The steepest ascent mildest descent heuristic for combinatorial programming. In Congress on Numerical Methods in Combinatorial Optimization, Capri, Italy, 1986.

JIVOTOVSKI, G. A gradient based heuristic algorithm and its application to discrete optimization of bar structures. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 19, Number 3 / May, Pg. 237-248, 2000.

KINCAID, R.K. Minimizing distortion and internal forces in truss structures via simulated annealing. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 4, Number 1 / March, Pg. 55-61, 1992.

KINCAID, R.K. Minimizing distortion in truss structures: A comparison of simulated annealing and tabu search. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 5, Number 4 / December, Pg. 217-224, 1993.

KIRKPATRICK, S., GELLAT, D.C. e VECCHI, M.P. Optimization by Simulated Annealing. Science, Number 220, Pg. 671-680, 1983.

LEMONGE, A. C. C., “Aplicação de Algoritmos Genéticos em Otimização Estrutural”. Tese de Doutorado do Programa de Engenharia Civil, COPPE / UFRJ, Rio de Janeiro, Junho de 1999.

LUSAS, FEA. Engineering Analysis Software. Available: http://www.lusas.com, 2007.

MAGALHÃES, J. R. M. e MALITE, M. Treliças metálicas espaciais: alguns aspectos relativos ao projeto e à construção. Cadernos de Engenharia de Estruturas. Departamento de Engenharia de Estruturas – USP, 1998.

MITCHELL M. An Introduction to Genetic Algorithms. MIT Press, 1998.

Page 119: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

117

MLADENOVIC, N. e HANSEN P. Variable Neighborhood Search. Computers and Operations Research, Volume 24 Pg. 1097 – 1100, 1997.

ROZVANY, G.I.N. e ZHON M. A note on truss design for stress and displacement constraints by optimality criteria methods. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 3, Number 1 / March, Pg. 45-50, 1991.

SALAJEGHEH, E. e HEIDARI, A. Optimum Design of Structures Against Earthquake by Adaptive Genetic Algorithm Using Wavelet Networks. Journal Structural and Multidisciplinary Optimization. Publisher Springer Berlin / Heidelberg. Issue Volume 28, Number 4 / October, Pg. 277-285, 2004.

SILVA, E. C. N. Técnicas de Otimização Aplicadas no Projeto de Peças Mecânicas. Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos. Escola Politécnica da USP, 2002.

SILVA, G. C. Análise de Heurísticas GRASP para o Problema da Diversidade Máxima. Dissertação de Mestrado submetida ao Programa de Pós-Graduação da Universidade Federal Fluminense – Niterói – RJ, 2004.

SOUZA, M. J. F. Apostila da disciplina Inteligência Computacional para Otimização. ICEB-UFOP. Ouro Preto-MG. Disponível via http://www.iceb.ufop.br/decom/~marcone, 2005.

TRINDADE, V. A. e OCHI, L. S. Proposta e Avaliação Experimental de Heurísticas GRASP para um Problema de Escalonamento de Veículos. Artigo publicado no XXXVI SBPO – São João Del Rey – MG, 2004.

YANG, Y. e SOH, C. K. Automated optimum design of structures using genetic programming. Nanyang Technological University, Singapore, 2002.

YOKOTA, T., TAGUCHI T. e GEN, M. A Solution Method for Optimal Weight Design Problem of 10 Bar Truss Using Genetic Algorithms. Department of Industrial and Systems Engineering. Ashikaga Institute of Technology, Ashikaga 326, Japan, 1998.

ZIMMER C. Livro de Ouro da Evolução. Ediouro, Pg. 4-9, 2003.

Page 120: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

118

ANEXOS

Page 121: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

119

ANEXO A – CONFIGURAÇÃO DO

AMBIENTE DE DESENVOLVIMENTO

O presente trabalho, que recebeu o nome de OtimoEstrutura, foi implementado

na plataforma Java (JDK versão 1.6.0), utilizando como ambiente de

desenvolvimento o Eclipse versão 3.2. A versão mais recente do pacote JDK pode

ser encontrada gratuitamente através do site http://www.sun.com. A versão mais

recente da ferramente Eclipse pode ser encontrada em http://www.eclipse.org. A

configuração utilizada nesta implementação foi um computador com o processador

Intel Core 2 Duo E6300, 2 GB de memória RAM e sistema operacional Windows XP

Service Pack 2. Para utilizar a ferramenta Eclipse é recomendável pelo menos 1GB

de memória RAM.

A configuração do ambiente é bem simples. Após realizar o download dos

aplicativos acima citados, é recomendada a criação da pasta C:\java (para melhor

organizar todas as ferramentas relacionadas com a aplicação). Antes de instalar o

pacote JDK, é necessário verificar (através do painel de controle) se existe na

máquina alguma aplicação do pacote JDK já instalada. Caso exista é aconselhável

remover, uma vez que poderá causar incompatibilidade de versão com o novo

pacote. Após realizar tal operação, basta instalar o pacote JDK de maneira que fique

na pasta C:\Java (Ex.: C:\Java\jdk1.6.0). O pacote instalará o JDK e o JRE. Ambos

deverão estar em C:\Java. Após instalar o JDK, o próximo passo é a configuração do

Eclipse.

A versão mais recente do Eclipse já vem com uma versão do JRE integrada.

Nas versões mais antigas (em que não é necessário instalar o aplicativo, pois o

mesmo vem em um arquivo .zip, que deverá apenas ser descompactado na pasta

C:\Java) é obrigatório a instalação do pacote do JDK. Mesmo na versão mais

recente, pode-se instalar uma versão do pacote JDK e configurar o Eclipse para que

este utilize o pacote instalado e não a versão nativamente integrada. Para todos os

Page 122: HEURÍSTICAS COMPUTACIONAIS APLICADAS À … DE TRELIÇAS BIDIMENSIONAIS Dissertação apresentada ao Curso de Mestrado em Modelagem Matemática e Computacional do Centro Federal de

120

casos (instalar ou descompactar) sua instalação deverá ser realizada na pasta

C:\Java (C:\Java\Eclipse).

Após a instalação da ferramenta, sua configuração é bem simples: basta

executar o Eclipse, acessar o menu Window, opção Preferences. Após abrir as

opções, clicar no ícone “+” da opção Java na lista à esquerda. Escolher a opção

Installed JREs e clicar em “adicionar”. No campo JRE name, basta digitar

“jdk<versão de sua instalação>”. Ainda na mesma tela, escolher o diretório em que

ele se encontra (C:\Java\jdk<versão>). Após realizar estas operações, basta

confirmar clicando em OK e verificar se a opção selecionada em Installed JREs

corresponde à opção que foi recentemente adicionada. Caso esteja correto, resta

apenas confirmar e reiniciar o Eclipse. Desde modo, o ambiente de desenvolvimento

está devidamente configurado.