SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Algoritmos Genéticos Aplicados ao
Problema da Mochila Multidimensional
 Bianca de Almeida Dantas
 Marcio Osshiro
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
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.
• 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.
Figura: Esquema de funcionamento de um Algoritmo Genético
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.
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.
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.
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.
• 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.
Figura: Exemplo de crossover de um ponto.
▫ 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.
• 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.
• 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.
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.
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?
• 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, … , 𝑛
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.
• 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, … , 𝑛
Representação da Mochila
• 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.
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.
Implementação Sequencial
• Código em C++
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
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.
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).
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.
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.
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.
• Código C++ com MPI....
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.

Mais conteúdo relacionado

Mais procurados

2.01 _luminotecnica_e_lampadas_eletricas_(apostila)
2.01  _luminotecnica_e_lampadas_eletricas_(apostila)2.01  _luminotecnica_e_lampadas_eletricas_(apostila)
2.01 _luminotecnica_e_lampadas_eletricas_(apostila)
shanthon
 
Como transformar usb em memory card para ps2
Como transformar usb em memory card para ps2Como transformar usb em memory card para ps2
Como transformar usb em memory card para ps2
Bruno Pereira
 
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-brWeg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
zetec10
 
M2 ficha de avaliação sumativa-pse
M2 ficha de avaliação sumativa-pseM2 ficha de avaliação sumativa-pse
M2 ficha de avaliação sumativa-pse
Rui Guimarães
 
Transistor bipolar
Transistor bipolarTransistor bipolar
Transistor bipolar
Ricardo Akerman
 

Mais procurados (20)

Comandos elétricos - simbologia
Comandos elétricos - simbologiaComandos elétricos - simbologia
Comandos elétricos - simbologia
 
As nuvens que andam no ar
As nuvens que andam no arAs nuvens que andam no ar
As nuvens que andam no ar
 
Apostila ele505 medidas eletricas
Apostila ele505   medidas eletricasApostila ele505   medidas eletricas
Apostila ele505 medidas eletricas
 
Carta "La Esquina De Mario"
Carta "La Esquina De Mario"Carta "La Esquina De Mario"
Carta "La Esquina De Mario"
 
Guia de aterramento
Guia de aterramentoGuia de aterramento
Guia de aterramento
 
2.01 _luminotecnica_e_lampadas_eletricas_(apostila)
2.01  _luminotecnica_e_lampadas_eletricas_(apostila)2.01  _luminotecnica_e_lampadas_eletricas_(apostila)
2.01 _luminotecnica_e_lampadas_eletricas_(apostila)
 
Como transformar usb em memory card para ps2
Como transformar usb em memory card para ps2Como transformar usb em memory card para ps2
Como transformar usb em memory card para ps2
 
Catalogo de motores
Catalogo de motoresCatalogo de motores
Catalogo de motores
 
Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)Manual de harmônicas (Manual of Harmonics)
Manual de harmônicas (Manual of Harmonics)
 
09 inversor(1)
09 inversor(1)09 inversor(1)
09 inversor(1)
 
Transistor em AC
Transistor em ACTransistor em AC
Transistor em AC
 
01 cabines primárias parte 1
01 cabines primárias   parte 101 cabines primárias   parte 1
01 cabines primárias parte 1
 
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-brWeg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
Weg guia-de-especificacao-de-motores-eletricos-50032749-manual-portugues-br
 
M2 ficha de avaliação sumativa-pse
M2 ficha de avaliação sumativa-pseM2 ficha de avaliação sumativa-pse
M2 ficha de avaliação sumativa-pse
 
Transformadas clark e park
Transformadas clark e parkTransformadas clark e park
Transformadas clark e park
 
Amplificador operacional
Amplificador operacionalAmplificador operacional
Amplificador operacional
 
Motores
MotoresMotores
Motores
 
Capitulo 1 grandezas elétricas
Capitulo 1   grandezas elétricasCapitulo 1   grandezas elétricas
Capitulo 1 grandezas elétricas
 
Transistor bipolar
Transistor bipolarTransistor bipolar
Transistor bipolar
 
Transformadores
TransformadoresTransformadores
Transformadores
 

Destaque

Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
Bianca Dantas
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
Bianca Dantas
 
Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3
Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1
Carlos Eduardo
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4
Carlos Eduardo
 

Destaque (20)

Apresentacao mochila - parte 1
Apresentacao mochila - parte 1Apresentacao mochila - parte 1
Apresentacao mochila - parte 1
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
Classes de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícilClasses de problemas p, np,np completo e np-difícil
Classes de problemas p, np,np completo e np-difícil
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco Mínimo
 
Algoritmo Guloso
Algoritmo GulosoAlgoritmo Guloso
Algoritmo Guloso
 
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
Programação Orientada a Objetos - Pós Graduação - Aula 5 - refactoring com ho...
 
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistênciaMini Curso - Programação de Interfaces Gráficas - aula extra persistência
Mini Curso - Programação de Interfaces Gráficas - aula extra persistência
 
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
Programação Orientada a Objetos - Pós Graduação - Aula 8 - Bad Smells & Desig...
 
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de ControleProgramação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
Programação Orientada a Objetos - Pós Graduação - Aula 7 - Inversão de Controle
 
Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2Programação Orientada a Objetos - Pós Graduação - Aula 2
Programação Orientada a Objetos - Pós Graduação - Aula 2
 
Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3Mini Curso - Programação de Interfaces Gráficas - aula 3
Mini Curso - Programação de Interfaces Gráficas - aula 3
 
Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1Mini Curso - Programação de Interfaces Gráficas - aula 1
Mini Curso - Programação de Interfaces Gráficas - aula 1
 
Java Lista Exercicios 04
Java Lista Exercicios 04Java Lista Exercicios 04
Java Lista Exercicios 04
 
Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4Mini Curso - Programação de Interfaces Gráficas - aula 4
Mini Curso - Programação de Interfaces Gráficas - aula 4
 
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OOProgramação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
Programação Orientada a Objetos - Pós Graduação - Aula 6 - Princípios OO
 
php 01 introducao
php 01 introducaophp 01 introducao
php 01 introducao
 
Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2Mini Curso - Programação de Interfaces Gráficas - aula 2
Mini Curso - Programação de Interfaces Gráficas - aula 2
 

Semelhante a Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

Semelhante a Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional (9)

Inteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos GenéticosInteligência Artificial - Aula15 - Algoritmos Genéticos
Inteligência Artificial - Aula15 - Algoritmos Genéticos
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Grafos De Bruijn para identificação de variações genéticas usando GBS
Grafos De Bruijn para identificação de variações genéticas usando GBSGrafos De Bruijn para identificação de variações genéticas usando GBS
Grafos De Bruijn para identificação de variações genéticas usando GBS
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de Programacao
 
cursoCalculoI-livro.pdf
cursoCalculoI-livro.pdfcursoCalculoI-livro.pdf
cursoCalculoI-livro.pdf
 
cursoCalculoI-livro.pdf
cursoCalculoI-livro.pdfcursoCalculoI-livro.pdf
cursoCalculoI-livro.pdf
 
Estrategia evolutiva
Estrategia evolutivaEstrategia evolutiva
Estrategia evolutiva
 
Machine learning.pptx
Machine learning.pptxMachine learning.pptx
Machine learning.pptx
 

Último

Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
RogrioGonalves41
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Último (20)

Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 

Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional

  • 1. Algoritmos Genéticos Aplicados ao Problema da Mochila Multidimensional Bianca de Almeida Dantas Marcio Osshiro
  • 2. 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
  • 3. 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.
  • 4. • 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.
  • 5. Figura: Esquema de funcionamento de um Algoritmo Genético
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. • 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.
  • 11. Figura: Exemplo de crossover de um ponto.
  • 12. ▫ 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.
  • 13. • 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.
  • 14. • 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.
  • 15. 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.
  • 16. 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?
  • 17. • 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, … , 𝑛
  • 18. 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.
  • 19. • 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, … , 𝑛
  • 20. Representação da Mochila • 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.
  • 21. 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.
  • 23. 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
  • 24. 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.
  • 25. 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).
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. • Código C++ com MPI....
  • 30. 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.