• Nenhum resultado encontrado

Abordagens Vencedoras da Competi¸c˜ao MISTA2013

Dentre as abordagens apresentadas na competi¸c˜ao, ´e discutido nesta se¸c˜ao as propostas finalistas. O terceiro lugar foi obtido pela autora deste trabalho juntamente com uma equipe pertencente ao GOAL (Grupo de Otimiza¸c˜ao e ALgoritmos) da Universidade Federal de Ouro Preto (Toffolo et al., 2013) e ser´a descrita no decorrer do trabalho. Mais detalhes sobre as abordagens podem ser consultados no MISTA2013 Proceedings 27-29 de agosto de 2013.

Asta et al. (2013), vencedores da competi¸c˜ao, propuseram uma abordagem combi- nando os m´etodos Monte-Carlo (m´etodo estat´ıstico, no qual se utiliza uma sequˆencia de n´umeros aleat´orios para a realiza¸c˜ao de uma simula¸c˜ao (Metropolis, 1949)) e Hy- per -Heur´ıstica (heur´ıstica que pode ser utilizada para lidar com qualquer problema de otimiza¸c˜ao, desde que sejam fornecidos alguns parˆametros, como estruturas e abstra¸c˜oes, relacionados ao problema considerado (Sucupira, 2007)).

Nessa abordagem foi utilizado uma representa¸c˜ao por sequˆencia definida atrav´es das aloca¸c˜oes das atividades em uma programa¸c˜ao. Assim ´e poss´ıvel constru´ır outra pro-

Revis˜ao Bibliogr´afica 25

grama¸c˜ao alocando as atividades uma a uma no tempo mais cedo poss´ıvel. Essa repre- senta¸c˜ao ´e vantajosa por ser mais f´acil obter programa¸c˜oes vi´aveis. Duas etapas s˜ao necess´arias para produzir solu¸c˜oes fact´ıveis e de alta qualidade.

Na primeira etapa referente `a constru¸c˜ao, atrav´es de inspe¸c˜oes realizadas sobre as boas solu¸c˜oes, Asta et al. (2013) definiram que um bom construtor deve criar sequˆencias iniciais que imitam uma ordena¸c˜ao de uma programa¸c˜ao parcial (in´ıcio, meio e fim). Logo, foi utilizado um m´etodo r´apido que gera programa¸c˜oes aleat´orias, onde a ordem das atividades dentro de cada programa¸c˜ao parcial ´e escolhida ao acaso respeitando as precedˆencias. Essas programa¸c˜oes s˜ao usadas como amostragem na tomada de decis˜ao. Na segunda etapa referente `a melhoria, os movimentos s˜ao controlados por uma combina¸c˜ao de metaheur´ıstica e hyper -heur´ıstica, com uma base populacional e ideias de algoritmos mem´eticos (incorpora conceitos culturais e de aprendizagem, permitindo precis˜ao e convergˆencia mais r´apida (Ong et al., 2010)). Todos os movimentos geram sequˆencias que respeitam as rela¸c˜oes de precedˆencia. Os movimentos citados foram (Asta et al., 2013):

1. SwapJobs: troca duas atividades em uma sequˆencia .

2. InsertJob: insere uma atividade em um novo local na sequˆencia da solu¸c˜ao. 3. SetMode: altera o modo de uma atividade para outro modo escolhido aleatoria-

mente .

4. MoveUniform: um conjunto de atividades ´e selecionado uniformemente de forma aleat´oria. O movimento tem trˆes op¸c˜oes: mover atividades, alterar modos ou am- bos. Ao mover as atividades selecionadas as mesmas s˜ao embaralhadas aleatoria- mente. Ao alterar os modos, os mesmos s˜ao atribu´ıdos `as atividades selecionadas de maneira aleat´oria.

5. MoveLocal : ´e semelhante ao MoveUniform, com a diferen¸ca que as atividades s˜ao selecionadas usando uma distribui¸c˜ao n˜ao uniforme, mas que est´a centrada em torno de uma posi¸c˜ao e largura em cada sequˆencia.

6. MoveOneProject: ´e semelhante ao MoveUniform, mas a sele¸c˜ao das atividades est´a voltada para um projeto selecionado aleatoriamente.

7. MoveBiasedGlobalResource: ´e semelhante ao MoveUniform, mas favorece a sele¸c˜ao das atividades que tˆem uma maior capacidade remanescente dos recursos globais.

26 Revis˜ao Bibliogr´afica

8. MoveEndBiased : ´e semelhante ao MoveBiasedGlobalResource, mas favorece as ati- vidades que possui a posi¸c˜ao perto do fim de seu projeto.

9. FILS swapJobs/insertJobs/setMode: esses trˆes movimentos s˜ao os primeiros pro- cedimentos de melhoria de busca local com base na troca, inser¸c˜ao ou altera¸c˜ao dos modos dos vizinhos.

10. SwapTwoProjects: troca dois projetos selecionados aleatoriamente na sequˆencia. 11. MutationOneExtreme: as atividades, de um projeto selecionado aleatoriamente,

s˜ao todas realocadas em uma posi¸c˜ao aleatoriamente selecionada na sequˆencia. 12. MutationOne: troca todas as atividades, de um projeto selecionado aleatoria-

mente, por um n´umero fixo de posi¸c˜oes na sequˆencia.

13. MoveProjects: extrai a sequˆencia dos projetos em uma solu¸c˜ao (com base nas posi¸c˜oes das ´ultimas atividades em cada projeto) e seleciona v´arios projetos para ent˜ao movˆe-los tanto para o in´ıcio como para o fim da sequˆencia.

Basicamente essa abordagem consiste em construir um m´etodo que trabalha a se- quˆencia na qual as atividades s˜ao passadas para um construtor de programa¸c˜ao. A constru¸c˜ao de uma sequˆencia da atividade inicial ´e feita por um h´ıbrido que gera pro- grama¸c˜oes aleat´orias e particionamento dos projetos. A fase de melhoria usa um grande n´umero de movimentos atrav´es de vizinhos controlados por metaheur´ısticas, algoritmos mem´eticos e hyper -heur´ısticas em um contexto multi-thread.

Geiger (2013), segundo colocado na competi¸c˜ao, propˆos um VNS Iterativo Variable Neighborhood Search (m´etodo de busca local que explora o espa¸co de solu¸c˜oes atrav´es de trocas sistem´aticas de estruturas de vizinhan¸ca (Mladenovi´c e Hansen, 1997)). Nessa abordagem ´e apresentado um conjunto de programa¸c˜oes vi´aveis X associado a dois vetores, M = (m1, ..., mn) e S = (S1, ..., SN ). Onde M representa o modo de execu¸c˜ao escolhido mj para cada atividade j e S ´e a permuta¸c˜ao dos ´ındices das atividades.

Para gerar as programa¸c˜oes iniciais vi´aveis, essa abordagem atribui aleatoriamente modos ao vetor M . Caso M seja invi´avel em rela¸c˜ao aos recursos n˜ao renov´aveis ´e aplicado um procedimento que altera aleatoriamente os valores at´e que a viabilidade seja garantida e um n´umero de itera¸c˜ao permitido seja alcan¸cado. Caso a viabilidade n˜ao seja obtida M ´e reconstru´ıdo novamente. Posteriormente a sequˆencia S da programa¸c˜ao ´e constru´ıda atrav´es de um esquema de gera¸c˜ao em serial, conceito explicado na se¸c˜ao 3.3. A prioridade ´e da atividade que possui o menor tempo de in´ıcio.

Revis˜ao Bibliogr´afica 27

A busca local ´e aplicada `a programa¸c˜ao X constru´ıda, baseada no VNS e ILS (Ite- rated Local Search) (Louren¸co et al., 2010), onde atrav´es de uma programa¸c˜ao inicial, vizinhos s˜ao gerados por meio de v´arios movimentos e testados para aceita¸c˜ao. Caso seja alcan¸cada uma programa¸c˜ao que n˜ao pode mais ser melhorada ´e realizada uma perturba¸c˜ao e a busca continua. Quatro movimentos de vizinhan¸ca foram propostos:

1. Troca (EX): troca a posi¸c˜ao de duas atividades em S, o conjunto dos vizinhos de X ´e denotado por EX e o operador por EX(X). Uma solu¸c˜ao vizinha X′

∈ EX(X) ´e aceita se F (X′

) < F (X).

2. Invers˜ao (INV): inverte uma subsequˆencia de atividades em S. ´E aceito X′

∈ IN V(X) se, e somente se, F (X′

) < F (X).

3. Troca de modo ´unico (SMC): altera o modo de atribui¸c˜ao de um ´unico modo em M. X′

∈ SM C(X) ´e aceito se F (X′

) < F (X) ∧ X′

∈ X.

4. Altera dois modos (TMC): altera a atribui¸c˜ao do modo de dois elementos em M . ´

E aceito X′

∈ T M C(X) se, e somente se, F (X′

) ≤ F (X) ∧ X′

∈ X, esta regra de aceita¸c˜ao difere das demais, pois aceita alternativas de igual qualidade, podendo resultar em um efeito ben´efico para o movimento.

A busca local ´e executada em paralelo. Uma vez que o ´otimo local ´e atingido a melhor alternativa encontrada at´e ent˜ao ´e atualizada e a busca continua com essa melhor alternativa conhecida. Atrav´es do paralelismo todos os n´ucleos ficam concentrados em uma ´unica solu¸c˜ao, dividindo-se somente na investiga¸c˜ao das vizinhan¸cas.

Documentos relacionados