SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Problema quadrático de alocação (QAP)
Métodos construtivos
Busca local 2-opt
Busca tabu

Daniel Lemes Gribel
daniel.gribel@uniriotec.br
18 de dezembro de 2013
Métodos construtivos
Foram elaborados dois métodos construtivos gulosos,
ambos orientados a construir uma solução de tal forma
que o custo total seja mínimo.
1. FIA (Facilidade inicial arbitrária)
2. NFI (N facilidades iniciais)
Métodos construtivos
Método 1: FIA (Facilidade inicial arbitrária)
Algoritmo guloso que consiste em obter o menor custo total a cada atribuição
de facilidade a um local, sendo que a atribuição da primeira facilidade a um
local é arbitrária.
1. A facilidade 0 é alocada ao local 0.
2. Verifica-se dentre as facilidades disponíveis qual facilidade deveria ser
escolhida para ser alocada ao próximo local i, de tal forma que o custo total
seja mínimo.
3. Executa-se o passo 2 até a n-ésima facilidade, gerando uma permutação
que corresponde à solução final.
Métodos construtivos
Método 1: FIA (Facilidade inicial arbitrária)
1.
(n-1) iterações
2.
(n-2) iterações
3.
(n-3) iterações
4.
(n-4) iterações
5.
(n-5) iterações
…
n-1.(n-(n-1)) iterações

Complexidade:
O((n² - n)/2) ⇒ O(n²)
Métodos construtivos
Método 2: NFI (N facilidades iniciais)
Este método é um aprimoramento da construção FIA. Ele consiste em n execuções
do algoritmo FIA, atribuindo cada uma das n facilidades à facilidade inicial.
1. Executa-se o algoritmo FIA (com a facilidade i alocada ao local 0).
2. Armazena-se o custo da permutação pi
3. Repete-se os passos 1 e 2 atribuindo a facilidade i+1 ao local 0 até que todas as
n facilidades sejam testadas como sendo a facilidade inicial no algoritmo FIA.
4. A iteração que gerar o menor custo é sempre armazenada e a solução final é
então escolhida.
Métodos construtivos
Método 2: NFI (N facilidades iniciais)
1.
(n-1) iterações
2.
(n-2) iterações
3.
(n-3) iterações
4.
(n-4) iterações
5.
(n-5) iterações
…
n-1.(n-(n-1)) iterações

n vezes

Complexidade:
O(n × (n² - n)/2) ⇒ O(n³)
Métodos construtivos
Método 2: NFI (N facilidades iniciais)
def initial_solution(distance, flow):
n = int(math.sqrt(len(distance)))
best_cost_final = 0
m_x = []
for q in range(0, n):
m = [q]
m2 = [q]
j = 0
Métodos construtivos
# here FIA starts
while j < n-1:
k = get_minor(m, n)
m.append(k)
m2 = copy(m)
best_cost = cost(m, distance, flow)
if j == 0:
best_cost_final = best_cost
for i in range(0, n):
if i not in m:
m2[len(m2)-1] = i
c = cost(m2, distance, flow)
if c < best_cost:
m[len(m)-1] = i
best_cost = c
j = j + 1
# here FIA ends
if best_cost < best_cost_final:
best_cost_final = best_cost
m_final = copy(m)
Busca local
def iteration_2opt(p, dist, flow):

2-opt
Nesse método, as facilidades são transpostas
durante a execução do algoritmo. Se o número
de facilidades e locais for n, então o número de
transposições em cada iteração do algoritmo
será (n²-n)/2. Inicialmente, o algoritmo
considera a transposição das facilidades
alocadas nos locais 0 e 1. Se o valor da função
objetivo resultante para a solução for menor
que o valor da solução inicial, então esta
solução é armazenada como uma solução
candidata para o futuro. Caso contrário, ela é
descartada. O procedimento de transposições
continua até que todas as trocas de pares
sejam consideradas.

best_solution = []
best_solution = copy(p)
best_cost = cost(p, dist, flow)
size = len(p)
i = 0
for i in range(0, size-1):
for j in range(i+1, size):
posI = p.index(i)
posJ = p.index(j)
p[posI] = j
p[posJ] = i
current_cost = cost(p, dist, flow)
if(current_cost < best_cost):
best_solution = copy(p)
best_cost = current_cost
Busca local
2-opt

Effective heuristics and meta-heuristics for the quadratic assignment problem with tuned
parameters and analytical comparisons. Mahdi Bashiri, Hossein Karimi
Busca Tabu
A origem da palavra tabu remonta ao Tongan, um idioma da
Polinésia. A palavra era utilizada pelos nativos da ilha Tonga
para indicar objetos que não podiam ser tocados por serem
sagrados.
O nome deste método vem das listas tabu, que consistem em
listas com soluções (movimentos) não permitidas. Na sua forma
mais básica, contém os últimos elementos visitados. Outras
listas podem conter soluções proibidas devido a, por exemplo,
certos atributos da solução ou movimentos ilegais no contexto
do problema.
Busca Tabu
Movimentos Tabu: Ro-TS
Exemplo

Metaheuristics for Hard Optimization: Methods and Case Studies. Pag.
64. Johann Dréo, Alain Pétrowski, Patrick Siarry, Eric Taillard.
Busca Tabu
Parâmetros
void tabu_search(long n,

// problem size

type_matrix & a,

// flows matrix

type_matrix & b,

// distance matrix

type_vector & best_sol,

// best solution found

long & best_cost,

// cost of best solution

long min_size,

// parameter 1: 0.9n

long max_size,

// parameter 2: 1.1n

long aspiration,

// parameter 3: 2n²

long 1000000)

// number of iterations

Robust taboo search procedure for the quadratic assignment problem (c++ program). Eric Taillard
Busca Tabu
Movimentos Tabu
★ Pequeno número de movimentos tabu ⇒ descoberta de ótimos locais
★ Pequeno número de movimentos tabu ⇒ repetição de soluções
★ Grande número de movimentos tabu ⇒ diminui possibilidade de
repetições (confinamento) ⇒ aumenta possibilidade de visitar boas
soluções
★ Grande número de movimentos tabu ⇒ diminui probabilidade de
encontrar bons ótimos locais
Busca Tabu
Pequeno número de
movimentos tabu
Busca Tabu
Grande número de
movimentos tabu
Busca Tabu
Duração tabu aleatória
Para se obter o benefício simultâneo das vantagens oferecidas por um
pequeno número de movimentos tabu (permite a exploração profunda de um
vale) e por um grande número de movimentos tabu (permite pular de um vale
para outro), uma possibilidade é modificar essa duração durante o processo
de busca.
Por exemplo, pode ser usado um valor aleatório entre um limite inferior e
superior a cada iteração ou a cada n iterações.
Estes limites podem ser identificados, inclusive podem ser aumentados ou
diminuídos com base em certas características observadas durante a busca.
Busca Tabu
Duração tabu aleatória
// forbid reverse move for a fixed number of iterations
if(min_size == max_size) {
tabu_list[i_retained][p[j_retained]] = current_iteration + min_size;
tabu_list[j_retained][p[i_retained]] = current_iteration + min_size;
}
// forbid reverse move for a random number of iterations
else {
tabu_list[i_retained][p[j_retained]] = current_iteration + unif(min_size,max_size);
tabu_list[j_retained][p[i_retained]] = current_iteration + unif(min_size,max_size);
}
Robust taboo search procedure for the quadratic assignment problem (c++ program). Eric Taillard
Resultados
Ajuste de parâmetros
Duração da condição tabu
Busca Tabu
Critério de aspiração
Um movimento vai passar no critério de aspiração se:
★ for um movimento que leve à maior redução no
custo da solução atual
★ o movimento levar as facilidades à locais em que
ambos não tenham ocupado nas últimas t
iterações
Busca Tabu
Critério de aspiração
Exemplo
p = {3, 4, 2, 1, 5, 6}
m = (2, 5): 4 → 5, 5 → 2
last_assignment(4, 5) = i2; last_assignment(5, 2) = i8
current_i = 22
2 < 22 - a ?
8 < 22 - a ?
Qual valor atribuir ao parâmetro a?
a grande ⇒ maior possibilidade de “libertar” movimento ⇒ aspiração aceita!
a pequeno ⇒ menor possibilidade de “libertar” movimento (mais rígido) ⇒ aspiração negada!
Resultados
Ajuste de parâmetros
Critério de aspiração
Resultados
Resultados
Resultados
NFI, 2-opt + Ro-TS
Referências
QAPLIB - A Quadratic Assignment Problem Library. R .E. Burkard, E. Çela, S.
E. Karisch, F. Rendl. http://www.seas.upenn.edu/qaplib/
Robust taboo search for the quadratic assignment problem. E. Taillard.
Metaheuristics for Hard Optimization: Methods and Case Studies. Johann
Dréo, Alain Pétrowski, Patrick Siarry, Eric Taillard.
Robust taboo search procedure for the quadratic assignment problem (c++
program). http://mistic.heig-vd.ch/taillard/codes.dir/tabou_qap.cpp
Obrigado.
https://github.com/danielgribel/qap

Mais conteúdo relacionado

Mais procurados

Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2Rogerio Oliveira
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 
Exercícios resolvidos matematica 01
Exercícios resolvidos matematica 01Exercícios resolvidos matematica 01
Exercícios resolvidos matematica 01resolvidos
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Geração e Estimação de processos k-factor GARMA
Geração e Estimação de processos k-factor GARMAGeração e Estimação de processos k-factor GARMA
Geração e Estimação de processos k-factor GARMAAishameriane Schmidt
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 
Lista transforcacoes integrais
Lista transforcacoes integraisLista transforcacoes integrais
Lista transforcacoes integraisIago Lira
 

Mais procurados (20)

Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Lista2
Lista2Lista2
Lista2
 
Recorrência
RecorrênciaRecorrência
Recorrência
 
Exercícios resolvidos matematica 01
Exercícios resolvidos matematica 01Exercícios resolvidos matematica 01
Exercícios resolvidos matematica 01
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Funcoesvetorias
FuncoesvetoriasFuncoesvetorias
Funcoesvetorias
 
Aspectos de modelagem e imageamento usando equação da onda
Aspectos de modelagem e imageamento usando equação da ondaAspectos de modelagem e imageamento usando equação da onda
Aspectos de modelagem e imageamento usando equação da onda
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Geração e Estimação de processos k-factor GARMA
Geração e Estimação de processos k-factor GARMAGeração e Estimação de processos k-factor GARMA
Geração e Estimação de processos k-factor GARMA
 
Lista 05
Lista 05Lista 05
Lista 05
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Pmr3401 apostila09
Pmr3401 apostila09Pmr3401 apostila09
Pmr3401 apostila09
 
Lista transforcacoes integrais
Lista transforcacoes integraisLista transforcacoes integrais
Lista transforcacoes integrais
 

Destaque

Reservas do Bosque - Direcional Engenharia
Reservas do Bosque - Direcional EngenhariaReservas do Bosque - Direcional Engenharia
Reservas do Bosque - Direcional EngenhariaGuapo Criativa
 
How To Get Press For Your Startup
How To Get Press For Your StartupHow To Get Press For Your Startup
How To Get Press For Your StartupMWI Hong Kong
 
Construtora Escala - Institucional
Construtora Escala - InstitucionalConstrutora Escala - Institucional
Construtora Escala - InstitucionalConstrutora Escala
 
Pintura e molduras
Pintura e moldurasPintura e molduras
Pintura e molduraslgnogueira
 
Planejamento de Obra - Direcional Engenharia
Planejamento de Obra - Direcional EngenhariaPlanejamento de Obra - Direcional Engenharia
Planejamento de Obra - Direcional EngenhariaGuapo Criativa
 
Planejamento segurança obra
Planejamento segurança obraPlanejamento segurança obra
Planejamento segurança obramjmcreatore
 
Programa De Treinamento Mestres E Contramestres Jul09 Segmento
Programa De Treinamento Mestres E Contramestres Jul09 SegmentoPrograma De Treinamento Mestres E Contramestres Jul09 Segmento
Programa De Treinamento Mestres E Contramestres Jul09 Segmentoeng_guilherme
 
Microsoft Word ExecuçãO De Alvenaria NãO Estrutural RevisãO [11] 21.08
Microsoft Word   ExecuçãO De Alvenaria NãO Estrutural   RevisãO [11] 21.08Microsoft Word   ExecuçãO De Alvenaria NãO Estrutural   RevisãO [11] 21.08
Microsoft Word ExecuçãO De Alvenaria NãO Estrutural RevisãO [11] 21.08eng_guilherme
 
Janus power point brazil_2015
Janus power point brazil_2015Janus power point brazil_2015
Janus power point brazil_2015JanusEvents
 
Apostila administração da produção 1º semestre
Apostila administração da produção 1º semestreApostila administração da produção 1º semestre
Apostila administração da produção 1º semestreSamara Luna
 
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasilcitilog
 
ACII - SL05 - Armazenamento Distribuido
ACII - SL05 - Armazenamento DistribuidoACII - SL05 - Armazenamento Distribuido
ACII - SL05 - Armazenamento DistribuidoUFPB
 
Controle de qualidade, mão de obra e indicadores de produtividade
Controle de qualidade, mão de obra e indicadores de produtividadeControle de qualidade, mão de obra e indicadores de produtividade
Controle de qualidade, mão de obra e indicadores de produtividadeAlexandre Guimarães
 
Unidade 4 planejamento de depósitos e armazéns
Unidade 4   planejamento de depósitos e armazénsUnidade 4   planejamento de depósitos e armazéns
Unidade 4 planejamento de depósitos e armazénsDaniel Moura
 

Destaque (20)

Reservas do Bosque - Direcional Engenharia
Reservas do Bosque - Direcional EngenhariaReservas do Bosque - Direcional Engenharia
Reservas do Bosque - Direcional Engenharia
 
How To Get Press For Your Startup
How To Get Press For Your StartupHow To Get Press For Your Startup
How To Get Press For Your Startup
 
Planejamento da obra 1
Planejamento da obra 1Planejamento da obra 1
Planejamento da obra 1
 
Construtora Escala - Institucional
Construtora Escala - InstitucionalConstrutora Escala - Institucional
Construtora Escala - Institucional
 
Empreendimentos Tecnisa - Premiere - Jardim Aquarius
Empreendimentos Tecnisa - Premiere - Jardim AquariusEmpreendimentos Tecnisa - Premiere - Jardim Aquarius
Empreendimentos Tecnisa - Premiere - Jardim Aquarius
 
Pintura e molduras
Pintura e moldurasPintura e molduras
Pintura e molduras
 
Planejamento de Obra - Direcional Engenharia
Planejamento de Obra - Direcional EngenhariaPlanejamento de Obra - Direcional Engenharia
Planejamento de Obra - Direcional Engenharia
 
Cartilha saiba-mais-cub
Cartilha saiba-mais-cubCartilha saiba-mais-cub
Cartilha saiba-mais-cub
 
Planejamento segurança obra
Planejamento segurança obraPlanejamento segurança obra
Planejamento segurança obra
 
Canteiro de Obras
Canteiro de Obras Canteiro de Obras
Canteiro de Obras
 
Programa De Treinamento Mestres E Contramestres Jul09 Segmento
Programa De Treinamento Mestres E Contramestres Jul09 SegmentoPrograma De Treinamento Mestres E Contramestres Jul09 Segmento
Programa De Treinamento Mestres E Contramestres Jul09 Segmento
 
Planejamento de obra aula 43 e 44
Planejamento de obra   aula 43 e 44Planejamento de obra   aula 43 e 44
Planejamento de obra aula 43 e 44
 
Microsoft Word ExecuçãO De Alvenaria NãO Estrutural RevisãO [11] 21.08
Microsoft Word   ExecuçãO De Alvenaria NãO Estrutural   RevisãO [11] 21.08Microsoft Word   ExecuçãO De Alvenaria NãO Estrutural   RevisãO [11] 21.08
Microsoft Word ExecuçãO De Alvenaria NãO Estrutural RevisãO [11] 21.08
 
Janus power point brazil_2015
Janus power point brazil_2015Janus power point brazil_2015
Janus power point brazil_2015
 
Planejamento de obra aula 05 a 10
Planejamento de obra   aula 05 a 10Planejamento de obra   aula 05 a 10
Planejamento de obra aula 05 a 10
 
Apostila administração da produção 1º semestre
Apostila administração da produção 1º semestreApostila administração da produção 1º semestre
Apostila administração da produção 1º semestre
 
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil
21620617 as-oportunidades-do-mercado-de-self-storage-no-brasil
 
ACII - SL05 - Armazenamento Distribuido
ACII - SL05 - Armazenamento DistribuidoACII - SL05 - Armazenamento Distribuido
ACII - SL05 - Armazenamento Distribuido
 
Controle de qualidade, mão de obra e indicadores de produtividade
Controle de qualidade, mão de obra e indicadores de produtividadeControle de qualidade, mão de obra e indicadores de produtividade
Controle de qualidade, mão de obra e indicadores de produtividade
 
Unidade 4 planejamento de depósitos e armazéns
Unidade 4   planejamento de depósitos e armazénsUnidade 4   planejamento de depósitos e armazéns
Unidade 4 planejamento de depósitos e armazéns
 

Semelhante a QAP métodos construtivos e busca local/tabu

Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfItaloRainier1
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...Leandro de Castro
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoJonas Mendonça
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfSimoneSantos16595
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automáticabutest
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursaosamuelthiago
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Thaci Santos
 
Cálculo Numérico: Interpolação Polinomial com Bubble Sort
Cálculo Numérico: Interpolação Polinomial com Bubble SortCálculo Numérico: Interpolação Polinomial com Bubble Sort
Cálculo Numérico: Interpolação Polinomial com Bubble SortJohnnatan Messias
 
382 po apostila_completa_mais_livro
382 po apostila_completa_mais_livro382 po apostila_completa_mais_livro
382 po apostila_completa_mais_livroHedileno Monteiro
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslleyWeslley Assis
 

Semelhante a QAP métodos construtivos e busca local/tabu (20)

Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Inteligência Artificial - Busca com informação
Inteligência Artificial - Busca com informaçãoInteligência Artificial - Busca com informação
Inteligência Artificial - Busca com informação
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Math
MathMath
Math
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automática
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
 
Algoritmo0
Algoritmo0Algoritmo0
Algoritmo0
 
Cálculo Numérico: Interpolação Polinomial com Bubble Sort
Cálculo Numérico: Interpolação Polinomial com Bubble SortCálculo Numérico: Interpolação Polinomial com Bubble Sort
Cálculo Numérico: Interpolação Polinomial com Bubble Sort
 
382 po apostila_completa_mais_livro
382 po apostila_completa_mais_livro382 po apostila_completa_mais_livro
382 po apostila_completa_mais_livro
 
Matematica2 1
Matematica2 1Matematica2 1
Matematica2 1
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslley
 
13 slides
13 slides13 slides
13 slides
 

QAP métodos construtivos e busca local/tabu

  • 1. Problema quadrático de alocação (QAP) Métodos construtivos Busca local 2-opt Busca tabu Daniel Lemes Gribel daniel.gribel@uniriotec.br 18 de dezembro de 2013
  • 2. Métodos construtivos Foram elaborados dois métodos construtivos gulosos, ambos orientados a construir uma solução de tal forma que o custo total seja mínimo. 1. FIA (Facilidade inicial arbitrária) 2. NFI (N facilidades iniciais)
  • 3. Métodos construtivos Método 1: FIA (Facilidade inicial arbitrária) Algoritmo guloso que consiste em obter o menor custo total a cada atribuição de facilidade a um local, sendo que a atribuição da primeira facilidade a um local é arbitrária. 1. A facilidade 0 é alocada ao local 0. 2. Verifica-se dentre as facilidades disponíveis qual facilidade deveria ser escolhida para ser alocada ao próximo local i, de tal forma que o custo total seja mínimo. 3. Executa-se o passo 2 até a n-ésima facilidade, gerando uma permutação que corresponde à solução final.
  • 4. Métodos construtivos Método 1: FIA (Facilidade inicial arbitrária) 1. (n-1) iterações 2. (n-2) iterações 3. (n-3) iterações 4. (n-4) iterações 5. (n-5) iterações … n-1.(n-(n-1)) iterações Complexidade: O((n² - n)/2) ⇒ O(n²)
  • 5. Métodos construtivos Método 2: NFI (N facilidades iniciais) Este método é um aprimoramento da construção FIA. Ele consiste em n execuções do algoritmo FIA, atribuindo cada uma das n facilidades à facilidade inicial. 1. Executa-se o algoritmo FIA (com a facilidade i alocada ao local 0). 2. Armazena-se o custo da permutação pi 3. Repete-se os passos 1 e 2 atribuindo a facilidade i+1 ao local 0 até que todas as n facilidades sejam testadas como sendo a facilidade inicial no algoritmo FIA. 4. A iteração que gerar o menor custo é sempre armazenada e a solução final é então escolhida.
  • 6. Métodos construtivos Método 2: NFI (N facilidades iniciais) 1. (n-1) iterações 2. (n-2) iterações 3. (n-3) iterações 4. (n-4) iterações 5. (n-5) iterações … n-1.(n-(n-1)) iterações n vezes Complexidade: O(n × (n² - n)/2) ⇒ O(n³)
  • 7. Métodos construtivos Método 2: NFI (N facilidades iniciais) def initial_solution(distance, flow): n = int(math.sqrt(len(distance))) best_cost_final = 0 m_x = [] for q in range(0, n): m = [q] m2 = [q] j = 0
  • 8. Métodos construtivos # here FIA starts while j < n-1: k = get_minor(m, n) m.append(k) m2 = copy(m) best_cost = cost(m, distance, flow) if j == 0: best_cost_final = best_cost for i in range(0, n): if i not in m: m2[len(m2)-1] = i c = cost(m2, distance, flow) if c < best_cost: m[len(m)-1] = i best_cost = c j = j + 1 # here FIA ends if best_cost < best_cost_final: best_cost_final = best_cost m_final = copy(m)
  • 9. Busca local def iteration_2opt(p, dist, flow): 2-opt Nesse método, as facilidades são transpostas durante a execução do algoritmo. Se o número de facilidades e locais for n, então o número de transposições em cada iteração do algoritmo será (n²-n)/2. Inicialmente, o algoritmo considera a transposição das facilidades alocadas nos locais 0 e 1. Se o valor da função objetivo resultante para a solução for menor que o valor da solução inicial, então esta solução é armazenada como uma solução candidata para o futuro. Caso contrário, ela é descartada. O procedimento de transposições continua até que todas as trocas de pares sejam consideradas. best_solution = [] best_solution = copy(p) best_cost = cost(p, dist, flow) size = len(p) i = 0 for i in range(0, size-1): for j in range(i+1, size): posI = p.index(i) posJ = p.index(j) p[posI] = j p[posJ] = i current_cost = cost(p, dist, flow) if(current_cost < best_cost): best_solution = copy(p) best_cost = current_cost
  • 10. Busca local 2-opt Effective heuristics and meta-heuristics for the quadratic assignment problem with tuned parameters and analytical comparisons. Mahdi Bashiri, Hossein Karimi
  • 11. Busca Tabu A origem da palavra tabu remonta ao Tongan, um idioma da Polinésia. A palavra era utilizada pelos nativos da ilha Tonga para indicar objetos que não podiam ser tocados por serem sagrados. O nome deste método vem das listas tabu, que consistem em listas com soluções (movimentos) não permitidas. Na sua forma mais básica, contém os últimos elementos visitados. Outras listas podem conter soluções proibidas devido a, por exemplo, certos atributos da solução ou movimentos ilegais no contexto do problema.
  • 12. Busca Tabu Movimentos Tabu: Ro-TS Exemplo Metaheuristics for Hard Optimization: Methods and Case Studies. Pag. 64. Johann Dréo, Alain Pétrowski, Patrick Siarry, Eric Taillard.
  • 13. Busca Tabu Parâmetros void tabu_search(long n, // problem size type_matrix & a, // flows matrix type_matrix & b, // distance matrix type_vector & best_sol, // best solution found long & best_cost, // cost of best solution long min_size, // parameter 1: 0.9n long max_size, // parameter 2: 1.1n long aspiration, // parameter 3: 2n² long 1000000) // number of iterations Robust taboo search procedure for the quadratic assignment problem (c++ program). Eric Taillard
  • 14. Busca Tabu Movimentos Tabu ★ Pequeno número de movimentos tabu ⇒ descoberta de ótimos locais ★ Pequeno número de movimentos tabu ⇒ repetição de soluções ★ Grande número de movimentos tabu ⇒ diminui possibilidade de repetições (confinamento) ⇒ aumenta possibilidade de visitar boas soluções ★ Grande número de movimentos tabu ⇒ diminui probabilidade de encontrar bons ótimos locais
  • 15. Busca Tabu Pequeno número de movimentos tabu
  • 16. Busca Tabu Grande número de movimentos tabu
  • 17. Busca Tabu Duração tabu aleatória Para se obter o benefício simultâneo das vantagens oferecidas por um pequeno número de movimentos tabu (permite a exploração profunda de um vale) e por um grande número de movimentos tabu (permite pular de um vale para outro), uma possibilidade é modificar essa duração durante o processo de busca. Por exemplo, pode ser usado um valor aleatório entre um limite inferior e superior a cada iteração ou a cada n iterações. Estes limites podem ser identificados, inclusive podem ser aumentados ou diminuídos com base em certas características observadas durante a busca.
  • 18. Busca Tabu Duração tabu aleatória // forbid reverse move for a fixed number of iterations if(min_size == max_size) { tabu_list[i_retained][p[j_retained]] = current_iteration + min_size; tabu_list[j_retained][p[i_retained]] = current_iteration + min_size; } // forbid reverse move for a random number of iterations else { tabu_list[i_retained][p[j_retained]] = current_iteration + unif(min_size,max_size); tabu_list[j_retained][p[i_retained]] = current_iteration + unif(min_size,max_size); } Robust taboo search procedure for the quadratic assignment problem (c++ program). Eric Taillard
  • 20. Busca Tabu Critério de aspiração Um movimento vai passar no critério de aspiração se: ★ for um movimento que leve à maior redução no custo da solução atual ★ o movimento levar as facilidades à locais em que ambos não tenham ocupado nas últimas t iterações
  • 21. Busca Tabu Critério de aspiração Exemplo p = {3, 4, 2, 1, 5, 6} m = (2, 5): 4 → 5, 5 → 2 last_assignment(4, 5) = i2; last_assignment(5, 2) = i8 current_i = 22 2 < 22 - a ? 8 < 22 - a ? Qual valor atribuir ao parâmetro a? a grande ⇒ maior possibilidade de “libertar” movimento ⇒ aspiração aceita! a pequeno ⇒ menor possibilidade de “libertar” movimento (mais rígido) ⇒ aspiração negada!
  • 26. Referências QAPLIB - A Quadratic Assignment Problem Library. R .E. Burkard, E. Çela, S. E. Karisch, F. Rendl. http://www.seas.upenn.edu/qaplib/ Robust taboo search for the quadratic assignment problem. E. Taillard. Metaheuristics for Hard Optimization: Methods and Case Studies. Johann Dréo, Alain Pétrowski, Patrick Siarry, Eric Taillard. Robust taboo search procedure for the quadratic assignment problem (c++ program). http://mistic.heig-vd.ch/taillard/codes.dir/tabou_qap.cpp