algoritmos genéticos aplicados ao problema da mochila multidimensional

30
Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional Bianca de Almeida Dantas Marcio Osshiro

Upload: bianca-dantas

Post on 08-Jul-2015

5.440 views

Category:

Education


1 download

DESCRIPTION

Apresentação realizada na disciplina de Algoritmos Paralelos do Doutorado em Ciência da Computação - FACOM/UFMS

TRANSCRIPT

Page 1: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Algoritmos Genéticos Aplicados ao

Problema da Mochila Multidimensional

Bianca de Almeida Dantas

Marcio Osshiro

Page 2: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Sumário

• Algoritmos Genéticos • Relembrando a Mochila 0-1 • Aplicações de AGs • Mochila Multidimensional • Representação da Mochila • AG aplicado à Mochila Multidimensional • Implementação Sequencial • AGs Paralelos • Implementação Paralela com MPI • Referências

Page 3: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Algoritmos Genéticos

• Algoritmos que buscam soluções para problemas de otimização e de busca com base na genética e na seleção natural da Teoria da Evolução de Darwin.

• Ideia desenvolvida por John Holland no início da década de 1970.

• Os indivíduos mais fortes, ou seja, mais adaptados ao ambiente, tem mais chance de sobreviver e gerar descendentes.

Page 4: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Quando aplicamos AGs à solução de problemas, representamos as possíveis soluções como indivíduos em uma população.

• Basicamente, existem três tipos de representação dos indivíduos: ▫ Binária: genes são codificados por 0 ou 1. ▫ Gray: permite a criação de adjacências entre

cromossomos binários, na qual um cromossomo se diferencia de seus adjacentes pela modificação de um bit.

▫ Real: os genes são números reais.

• A escolha da representação a ser utilizada influencia no desempenho e depende de análise detalhada.

Page 5: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Figura: Esquema de funcionamento de um Algoritmo Genético

Page 6: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AG – População Inicial

• Uma população composta de n indivíduos (cromossomos) gerada aleatoriamente para iniciar o processo de busca por soluções para o problema em questão.

• Pode-se especificar restrições na geração da população inicial, por exemplo, permitir somente soluções válidas.

• O tamanho da população inicial precisa ser definido.

Page 7: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AG - Avaliação

• A cada geração (representada por uma população), os indivíduos são avaliados de acordo com sua adaptação ao ambiente. Isso é feito através de uma função de avaliação denominada fitness.

• Permite comparar indivíduos para aplicar os mecanismos de seleção para criação das novas gerações.

Page 8: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AG - Seleção • Processo para escolha de quais indivíduos da

população atual serão utilizados para dar origem aos indivíduos da nova geração.

• Em geral, indivíduos com maior fitness tem maior chance de serem selecionados.

• Diferentes métodos: ▫ Roleta: probabilidade de escolha de um indivíduo

proporcional ao fitness. ▫ Torneio: seleção de pequenas subpopulações e

posterior seleção do melhor de cada subgrupo. ▫ Elitismo: os melhores cromossomos são copiados

para a nova população, os demais são gerados por reprodução.

Page 9: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AG - Reprodução

• Realizada através da aplicação de operadores genéticos que determinarão a composição dos novos indivíduos.

• Geralmente são utilizados dois:

▫ Crossover: gera descendentes baseado nos genes de dois pais.

▫ Mutação: permite a diversificação do espaço de soluções, evitando a conversão em torno de poucas soluções boas, que representam um ótimo local.

Page 10: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Tipos de crossover:

▫ Crossover de um ponto: uma posição P é escolhida aleatoriamente dentro do cromossomo e dois descendentes são gerados: um com os primeiros bits (até P) do primeiro pai e com os últimos do segundo pai, outro com os primeiros bits do segundo pai e os últimos do primeiro pai.

Page 11: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Figura: Exemplo de crossover de um ponto.

Page 12: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

▫ Crossover de dois pontos: similar ao crossover de um ponto, mas são escolhidas duas posições ao invés de uma.

▫ Burst crossover: o teste para o crossover é feito para todas as posições, podendo resultar em muitos pontos de crossover, dependendo na probabilidade selecionada.

Page 13: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Tipos de mutação:

▫ Mutação por indivíduo: cada indivíduo pode sofrer no máximo uma mutação em um gene aleatório.

▫ Mutação por bit: cada gene do cromossomo pode sofrer mutação.

▫ Mutação por troca: os valores de dois genes escolhidos aleatoriamente são trocados.

▫ Mutação invertida: similar à mutação por bit, mas os genes selecionados recebem o oposto do valor que possuíam anteriormente.

Page 14: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Após as operações de crossover e de mutação, é necessário definir quais serão os indivíduos que devem compor a população da próxima geração.

• Todo esse processo de Avaliação – Seleção – Reprodução é repetido até que se satisfaça alguma condição ou por um número de gerações predefinido.

Page 15: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Aplicações de AGs

• Os problemas de otimização de grande porte tem demandado a busca por soluções eficientes computacionalmente. Os AGs se adaptam a muitos desses problemas.

• Exemplos: roteamento, agendamento, jogos, problema do caixeiro viajante, otimização de consultas.

• Iremos nos concentrar no problema da mochila multidimensional.

Page 16: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Relembrando a Mochila 0-1

• Dados:

▫ uma mochila de compartimento único e com uma capacidade máxima.

▫ conjunto de itens, cada qual com um peso e um valor associados.

• Quais itens podem ser carregados na mochila sem exceder sua capacidade e maximizando o valor a ser carregado?

Page 17: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Formalmente:

▫ Dados um conjunto N de n objetos com valores

positivos pj, pesos wj e uma mochila de capacidade

inteira e positiva c, determine um vetor (x1, x2, ..., xn

que encontre:

𝑚𝑎𝑥 𝑝𝑗𝑥𝑗

𝑛

𝑗=1

Respeitando as condições 𝑤𝑗𝑥𝑗 ≤ 𝑐𝑛𝑗=1

e 𝑥𝑗 ∈ 0, 1 , 𝑗 = 1,… , 𝑛

Page 18: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Mochila Multidimensional

• Também chamado de mochila compartimentada.

• Bastante semelhante ao problema da mochila 0-1 clássico.

• Leva em consideração que a mochila possui mais de um compartimento (cada um com sua capacidade), o que acrescenta um novo conjunto de restrições.

Page 19: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Formalmente:

▫ Dados um conjunto de n objetos com valores positivos

pj, pesos wj e uma mochila com m compartimentos de

capacidade inteira e positiva ci, determine um vetor (x1,

x2, ..., xn) que encontre:

𝑧 = 𝑚𝑎𝑥 𝑝𝑗𝑥𝑗

𝑛

𝑗=1

Respeitando as condições 𝑤𝑗𝑥𝑗 ≤ 𝑐𝑖 , 𝑖 = 1,… ,𝑚𝑛𝑗=1

e 𝑥𝑗 ∈ 0, 1 , 𝑗 = 1,… , 𝑛

Page 20: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Vetor de valores dos itens com n posições;

• Vetor de capacidades dos compartimentos com m posições;

• Matriz m x n que representa o quanto cada item ocupa do compartimento.

• Vetor solução que especifica qual item deve ser levado ou não, composto de 0’s e 1’s.

Representação da Mochila

Page 21: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AG aplicado à Mochila Multidimensional

• Utilizamos a representação binária de cromossomos.

• Uma população inicial é gerada aleatoriamente. Escolhemos que somente existirão indivíduos válidos.

• A função de fitness é o cálculo do valor de z para cada indivíduo.

• Crossover de um ponto. • Mutação invertida. • Tamanho da população e número de gerações

como entrada.

Page 22: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Implementação Sequencial

• Código em C++

Page 23: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

AGs Paralelos

• AGs são bem estruturados por natureza e sua paralelização não é difícil.

• Permite divisão de tarefas entre os processadores de sistemas paralelos e distribuídos.

• Diferentes modelos de paralelização:

▫ Global (Mestre-Escravo)

▫ Granularidade Grossa

▫ Granularidade Fina

▫ Híbridos Hierárquicos

Page 24: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Modelo Mestre-Escravo

• Um nó será o “mestre” os demais serão os “escravos”.

• O mestre conterá a população e realizará maior parte das operações do AG.

• O mestre pode atribuir algumas tarefas computacionalmente intensivas para seus discípulos e, então, espera pelas respostas.

Page 25: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Modelo de Granularidade Grossa

• A população é dividida entre os nós de processamento. Cada nó executa o AG em sua subpopulação.

• Para assegurar que boas soluções sejam “espalhadas”, um nó pode ocasionalmente enviar um cromossomo escolhido para os demais.

• O cromossomo recebido pelos demais nós substituirá algum outro cromossomo (em geral, o indivíduo menos adaptado).

Page 26: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Modelo de Granularidade Fina

• Cada nó de processamento possui um único indivíduo.

• Os nós de computação estão, em geral, organizados em uma estrutura espacial que define com quais outros nós a comunicação pode ser feita.

• Para realizar as operação genéticas, um nó deve interagir com seus vizinhos.

• Grande sobrecarga de comunicação.

Page 27: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Modelo Híbrido Hierárquico

• Estruturado em dois níveis.

• Por exemplo: no nível mais alto trabalha com granularidade grossa e no nível mais baixo com granularidade fina.

• Combina os benefícios de seus componentes e tem maior potencial que uma única implementação.

Page 28: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Implementação Paralela com MPI

• Utiliza o modelo de granularidade grossa.

• A operação de migração é realizada em intervalos de X gerações, onde o X é fornecido como entrada do programa.

• No processo de migração implementado, todos os nós escolhem o melhor indivíduo de sua população local e envia para os demais.

• Os nós substituem seus indivíduos menos aptos pelos indivíduos recebidos.

Page 29: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

• Código C++ com MPI....

Page 30: Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Referências

• Chu, P.C.; Beasley, J.E. A Genetic Algorithm for the Multidimensional Knapsack Problem. Journal of Heuristics. 1998.

• Hoff, A.; Løkketangen, A.; Mittet, I. Genetic Algorithms for 0/1 Multidimensional Knapsack Problems. Proceedings Norsk Informatikk Konferanse. 1996.

• Puchinger, J.; Raidl, G.R.; Pferschy, U. The Core Concept for the Multidimensional Knapsack Problem. Proceedings of the 6th European Conference. 2006.

• Yussof, S.; Razali, R.A. Na Investigation on the Effect of Migration Strategy on Parallel GA-Based Shortest Path Routing Algorithm. Communications and Network. 2012.