Busca Tabu Marcone Jamilson Freitas Souza Departamento de Computação

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

MBA DE LOGÍSTICA | FCAP- UPE
Algoritmos em Grafos.
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Programação de Horário em Escolas
Geometria Computacional Fecho Convexo II
Celso C. Ribeiro Caroline T. Rocha
O Problema de Roteamento de Veículos (PRV)
Estruturas de Repetição
MÁQUINAS UNIVERSAIS Fabrício Dias
OTIMIZAÇÃO DO PROJETO DE REDES URBANAS BASEADO NO PROBLEMA DE STEINER
Celso C. Ribeiro Caroline T. Rocha
School Timetabling Problem
Problemas de fluxo numa rede
INVESTIGAÇÃO OPERACIONAL
CONCEITOS BÁSICOS DA META-HEURÍSTICA TABU SEARCH
1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo.
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Meta - heurísticas Prof. Aurora
GRASP Greedy Randomized Adaptative Search Procedure
Dárlinton B. Feres Carvalho
INTELIGÊNCIA COMPUTACIONAL PARA OTIMIZAÇÃO
Inteligência Computacional para Otimização
Relaxação Adaptativa Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Iterated Local Search (ILS)
Colônia de Formigas (Ant Colony Optimization)
São João del-Rei, 23 a 26 de novembro de 2004
Alocação de Salas Via Simulated Annealing
Métodos Numéricos e Estatísticos
Algoritmos Genéticos Marcone Jamilson Freitas Souza
Busca Tabu - Revisão Marcone Jamilson Freitas Souza
Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Introdução à Otimização
Busca Dispersa Scatter Search
Reconhecimento de Padrões Seleção de Características
Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Maximização de Funções usando Simulated Annealing
Universidade Federal de Ouro Preto Universidade Federal Fluminense
Rodrigo Geraldo Ribeiro Denis Pinto Pinheiro Camila Leles Rezende
XXXV SBPO - PROGRAMAÇÃO DE TRIPULAÇÕES DE ÔNIBUS URBANO:
Marcone Jamilson Freitas Souza
Inteligência Computacional para Otimização
OTIMIZAÇÃO DE PESO EM TRELIÇAS METÁLICAS VIA VND E VNS
Branch-and-Bound Marcone Jamilson Freitas Souza
Inteligência Computacional para Otimização
Problema da Mochila Inteira (Bounded Knapsack)
Aquisições LINHA EXISTENTE Dimensionamento da Frota para Percursos Longos (Tc > Tp) O tempo de viagem de ida mais volta (Tv )mais os tempos.
Inteligência Artificial
Balanceamento de Linhas
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
INF 1771 – Inteligência Artificial
Meta - heurísticas Prof. Aurora
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Aurora Pozo– UFPR – Meta-Heurísticas
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Salas de Matemática.
Análise e Projeto de Sistemas Levantamento de Requisitos
Introdução e Busca Cega
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Conceitos básicos em grafos
PROGRAMAÇÃO MATEMÁTICA MÉTODO SIMPLEX
Algoritmos de Busca Local
Cálculo da Direção de Caminhada: Gradiente de f(x)
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Construção e Análise de Algoritmos
Métodos de Resolução Solução Analítica Solução Numérica
Métodos Construtivos x Aprimoramento
Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto
Marcone Jamilson Freitas Souza Departamento de Computação – UFOP Variable Neighborhood Descent (VND) e Variable Neighborhood.
Transcrição da apresentação:

Busca Tabu Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto www.decom.ufop.br/prof/marcone E-mail: marcone@iceb.ufop.br

Sumário Metaheurísticas Aplicações Busca Tabu Classroom Assignment Problem Bus Crew Scheduling

Metaheurísticas Métodos heurísticos, de caráter geral, com capacidade para escapar de ótimos locais Podem ser baseados em Busca Local ou Busca Populacional. Os métodos baseados em Busca Local são fundamentados na noção de vizinhança: Dada uma solução s, diz-se que s’ é um vizinho de s, se s’ é obtido de s a partir de um movimento m, isto é: s’  s  m A estrutura de vizinhança varia de acordo com o problema tratado Os métodos baseados em Busca Populacional partem de um conjunto de soluções, aplicando sobre estes operadores que visam à melhoria desse conjunto.

Problema de Alocação de Salas (Classroom Assignment Problem) Diz respeito à designação de salas para as aulas de uma instituição de ensino O horário das aulas é previamente conhecido O PAS é um subproblema do Problema de Programação de Horários (timetabling) Pode ser tratado de forma isolada ou de forma integrada à programação de horários

Problema de Alocação de Salas (Classroom Assignment Problem) Restrições: Não pode haver sobreposição de turmas; As salas têm que comportar as turmas etc. Objetivos: Manter as aulas de uma mesma turma em uma mesma sala ao longo da semana; Minimizar o fluxo de alunos mudando de sala após uma aula; Sempre que possível, alocar a uma mesma sala alunos de um mesmo curso e período etc.

Problema de Alocação de Salas (Classroom Assignment Problem) Movimento de Realocação

Problema de Alocação de Salas (Classroom Assignment Problem) Movimento de Troca

Problema de Alocação de Salas (Classroom Assignment Problem) Algumas possíveis estruturas de vizinhança: N1(s) = {s’ | s’  s  movimento de realocação} N2(s) = {s’ | s’  s  movimento de troca} N(s) = {s’ | s’  s  mov. de realocação ou troca}

Busca Tabu Fred Glover (1986) & Pierre Hansen (1986)

1ª Idéia: Utilizar heurística de descida

1ª Idéia: Utilizar heurística de descida

1ª Idéia: Utilizar heurística de descida Problema: Fica-se preso no primeiro ótimo local

2ª Idéia: Mover para o melhor vizinho O melhor vizinho pode ser de piora!

2ª Idéia: Mover para o melhor vizinho Problema: Ciclagem

3ª Idéia: Criar Lista Tabu

3ª Idéia: Criar Lista Tabu

Problemas com uma Lista Tabu de soluções: É computacionalmente inviável armazenar todas as soluções geradas! Idéia: Armazenar apenas as últimas |T| soluções geradas Observação: Uma lista com as |T| últimas soluções evita ciclos de até |T| iterações Problema: Pode ser inviável armazenar |T| soluções e testar se uma solução está ou não na Lista Tabu Idéia: Criar uma Lista Tabu de movimentos reversos Problema: Uma Lista Tabu de movimentos pode ser muito restritiva (impede o retorno a uma solução já gerada anteriormente e também a outras soluções ainda não geradas)

Exemplo de que uma Lista Tabu de movimentos pode ser restritiva H\S 1 2 3 A D C 4 B s0 s1 T = {} T={<4,3,1>} Movimento = <Horário de início, Sala antiga, Sala nova>

Exemplo de que uma Lista Tabu de movimentos pode ser restritiva H\S 1 2 3 A D C 4 B s2 s3 T = {<4,3,1>, <2,1,3>} Fazendo-se o movimento tabu <4,3,1> geramos s3  s0

4ª Idéia: Critério de Aspiração Retirar o status tabu de um movimento sob determinadas circunstâncias Exemplo: aceitar um movimento, mesmo que tabu, se ele melhorar o valor da função objetivo global (Critério de aspiração por objetivo)

Procedimento Busca Tabu procedimento BT 1. Seja s0 solução inicial; 2. s*  s; {Melhor solução obtida até então} 3. Iter  0; {Contador do número de iterações} 4. MelhorIter  0; {Iteração mais recente que forneceu s*} 5. Seja BTmax o número máximo de iterações sem melhora em s*; 6. T  ; {Lista Tabu} 7. Inicialize a função de aspiração A; 8. enquanto (Iter – MelhorIter  BTmax) faça 9. Iter  Iter + 1; 10. Seja s’  s  m o melhor elemento de V  N (s) tal que o movimento m não seja tabu (m  T) ou s’ atenda a condição de aspiração ( f(s’) < A(f(s))); 11. Atualize a Lista Tabu T; 12. s  s’; 13. se f(s) < f(s*) então 14. s*  s; 15. MelhorIter  Iter ; 16. fim-se; 17. Atualize a função de aspiração A; 18. fim-enquanto; 19. Retorne s*; fim BT;  

Busca Tabu aplicada ao Problema da Mochila 0-1 Seja um conjunto de objetos, uma unidade de cada, com peso e benefício dado abaixo e uma mochila de capacidade b = 23

Busca Tabu aplicada ao Problema da Mochila 0-1 Representação de uma solução: s = (s1,s2,...,s5), onde sj  {0,1} Movimento m = troca no valor de um bit Lista tabu = {<posição do bit alterado>} |T| = 1; BTmax = 1; Aspiração por objetivo.

Busca Tabu aplicada ao Problema da Mochila 0-1 Função de avaliação:

Busca Tabu aplicada ao Problema da Mochila 0-1

Busca Tabu aplicada ao Problema da Mochila 0-1

Busca Tabu aplicada ao Problema da Mochila 0-1

Busca Tabu aplicada ao Problema da Mochila 0-1

Busca Tabu aplicada ao Problema da Mochila 0-1

Escala de motoristas e cobradores (Bus Crew Scheduling) Fazer a programação da tripulação de uma empresa do Sistema de Transporte Público satisfazendo a uma série de requisitos, tais como: A jornada de trabalho diária é de 6h40min para quem faz pegada dupla ou 7h para quem faz pegada simples Em sua jornada diária de trabalho, o tripulante que faz pegada simples deve ter 20 minutos de intervalo para repouso e alimentação, o qual pode ser dividido em dois intervalos de 10 minutos O que exceder a 6h40min de trabalho no caso de pegada dupla (ou 7h no caso de pegada simples) é computado como hora extra Entre uma jornada de trabalho diária e outra deve haver um período de descanso de pelo menos 11 horas.

Movimento de realocação Tripulação i Tarefa a Tarefa c Tarefa d ... Tripulação j Tarefa b ... Tarefa e Tripulação i Tarefa a ... Tarefa c Tarefa d Tripulação j Tarefa b Tarefa e ... ... Tripulação i Tarefa a Tarefa d Tripulação j ... Tarefa b Tarefa c Tarefa e

Movimento de troca ... Tarefa e Tarefa a Tarefa c Tripulação i Tarefa f Tarefa b Tarefa d Tripulação j ...