Trabalho de Formatura - MAC499
Marcio Fumihiko Suenaga
http://www.linux.ime.usp.br/~tico
Projeto: Escala de Caravana Assistencial
http://www.linux.ime.usp.br/~tico/mac499
Orientador: Prof. Alfredo Goldman
Objetivos
●
●
Estudar os tipos de algoritmos de escala.
Selecionar o que melhor algoritmo que soluciona
o problema
●
Projetar um programa de escala.
●
Se formar!
O que é um problema de
escalonamento?
Como solucionar um problema de
escalonamento?
Exemplo: fila de banco
●
●
●
Antes: uma fila para cada caixa
Problema: nem sempre é justo
para quem chegou antes.
Solução: fila única.
ABEUNI
Aliança Beneficente Universitária
●
22 anos de trabalho voluntário
●
Universitários de qualquer área.
●
44 caravanas
●
Outros trabalhos beneficentes
●
Aproximadamente 300
voluntários ativos
www.abeuni.org.br
A caravana da ABEUNI
●
12 Departamentos
●
9 dias de evento
●
6 dias de atendimento
●
~300 voluntários
●
~50 novos voluntários
Problema: Escala de Calouros
●
Aproximadamente 50 calouros
●
12 departamentos
●
6 dias com 2 turnos por dia
●
12x6x2 = 600 pontos de escala
●
Eliminar o atual preenchimento
manual extremamente cansativo
após alguns dias de evento.
Agoritmos Conhecidos
Estudados em MAC5758
Introdução ao Escalonamento e
Aplicações
●
TABU
●
Contraint Programming
●
Genético
●
Ant-colony
Por que Programação por restrição?
●
Solução rápida
●
Simples
●
Pouco processamento
●
Solução não ideal mas boa.
Constraint Programming
restrição
Constraint Programming
Constraint Programming
Constraint Programming
Constraint Programming
Constraint Programming
Constraint Programming
Constraint Programming
with backtracking
Próximo passo
buscar outra tentativa
que chegue a uma solução
melhor
Constraint Programming
with backtracking
Constraint Programming
with backtracking
Constraint Programming
with backtracking
Restrição com pontuação
3
2
2
Restrição com pontuação
2
3
2
Restrição com pontuação
1
2
Restrição com pontuação
3
Restrição com pontuação
1
As restrições do problema
Restrições de alta prioridade
R1 - Calouros da área podem ser requisitado para o departamento
específico.
R2 – Deve-se aceitar mudanças e escolhas do operador.
R3 - O primeiro turno pode não ter atendimento em alguns
departamentos por falta de população a ser atendida então estes
departamentos poderão ser repetidos sem ser considerado uma repetição.
R4 - Alguns departamentos pedem um número de homens mínimo dentre
os calouros pedidos.
Restrições de baixa prioridade
B1 - Quando acontecer uma repetição, é melhor que a repetição não seja
consecutiva. De preferência o mais distante possível.
B2 - É bom empurrar as repetições para o fim do evento
O programa
Download

Apresentação - Rede Linux IME-USP