Você está na página 1de 116

Anlise de Problemas e

Heursticas para o Resource


Constrained Project Scheduling
Problem (RCPSP)

Instituto Superior Tecnico
Jos Pedro Coelho, Maro de 2000
Mestrado em Investigao Operacional e Engenharia de Sistemas
ndice Topo Problemas Heursticas Testes Implementao
Definio do RCPSP
Conjunto de
actividades e recursos
Cada actividade com:
Lista de precedncias
Consumo de recursos
Durao de execuo
Unidades de recurso
por unidade de tempo
Tempo
Nivel
de
Recurso Limite
0
10
20
0 10 20 30
ndice Topo Problemas Heursticas Testes Implementao
ndice
Problemas
Heursticas
Testes
Interface entre Algoritmos e Problemas
ndice Topo Problemas Heursticas Testes Implementao
Conjuntos de problemas RCPSP
Patterson
110 problemas
Alvarez
144 problemas
Kolisch, Sprecher e Drexl (KDS)
2040 problemas
JobShop e FlowShop (sub-classes do
RCPSP)
83 de JobShop e 31 de FlowShop

ndice Topo Problemas Heursticas Testes Implementao
Geradores, sem conjunto gerado
Elmaghraby
Dagen, baseado na representao actividades
nos arcos
Tavares, Ferreira, Coelho
RiskNet, tem como entrada de dados as
caractersticas morfolgicas das redes
pretendidas
permite a gerao de um conjunto de problemas
morfologicamente diverso
ndice Topo Problemas Heursticas Testes Implementao
Um problema Patterson
ndice Topo Problemas Heursticas Testes Implementao
Um problema Alvarez
ndice Topo Problemas Heursticas Testes Implementao
Um problema KDS
ndice Topo Problemas Heursticas Testes Implementao
Gerao Tavares
Conjunto I
1
I
2
I
4
Quantidade
25 0.2 0.1; 0.4 2
50 0.1; 0.2 0.1; 0.2; 0.4 6
75 0.1; 0.2 0.1; 0.2; 0.4 6
S
100 0.05; 0.1; 0.2 0.1; 0.2 6
200 0.05; 0.1; 0.2 0.05; 0.1; 0.2 9
400 0.05; 0.1; 0.2 0.05; 0.1; 0.2 9
600 0.05; 0.1; 0.2 0.05; 0.1; 0.2 9
M
800 0.05; 0.1; 0.2 0.05; 0.1; 0.2 9
1000 0.05; 0.1 0.05; 0.1 4
2000 0.05; 0.1 0.05; 0.1 4
3000 0.05; 0.1 0.05; 0.1 4
L
4000 0.05; 0.1 0.05; 0.1 4
ndice Topo Problemas Heursticas Testes Implementao
Um problema Tavares
ndice Topo Problemas Heursticas Testes Implementao
Gerao Elmaghraby
Indicador de Complexidade Nmero de Redes
1 6
2 6
4 6
6 10
8 8
ndice Topo Problemas Heursticas Testes Implementao
Um problema Elmaghraby
ndice Topo Problemas Heursticas Testes Implementao
Problemas Simples

Regras de Prioridade

UB
inicial


LB

Relaxamento Restries

Relaxamento Precedncias

UB
inicial
=LB

Problema Simples

Problema Dificil
SIM NO
Um problema simples um problema que se consegue achar uma soluo
ptima atravs de uma regra de prioridade
ndice Topo Problemas Heursticas Testes Implementao
Problemas dos diversos conjuntos
Conjunto Problemas Problemas Difceis Problemas Simples %
Elmaghraby 36 32 4 11%
KDS 2040 1223 817 40%
Tavares 72 72 0 0%
Alvarez 144 128 16 11%
Patterson 110 88 22 20%
JobShop 82 82 0 0%
FlowShop 31 31 0 0%
ndice Topo Problemas Heursticas Testes Implementao
Comparao Estatstica
Seleco das variveis a estudar
variveis morfolgicas
variveis de recursos
variveis de dificuldade do problema
Histogramas
Anlise Factorial
a todos os problemas
a cada conjunto separadamente
ndice Topo Problemas Heursticas Testes Implementao
Variveis em estudo
I
1
, N Nmero de actividades
I
2
Grau de paralelismo (tamanho do maior caminho-1 / N-1)
I
4
Intensidade das ligaes de comprimento 1 (0 mnimo, 1 mximo)
CI Nmero mdio de precedncias das actividades.
I
3*
Nmero de actividades do primeiro nvel progressivo / Nmero de
actividades do maior nvel progressivo
I
5**
Mdia de (nmero ligaes de comprimento k / nmero de ligaes de
comprimento k+1)
I
6
Comprimento da maior ligao / comprimento do maior caminho.
NRec Nmero de recursos
RF Resource Factor. Percentagem mdia de recursos no nulos
RS Resource Strength. Toma valores entre 0 e 1, e se 0 o limite de cada recurso
o mnimo possvel para realizar o projecto, e se 1, o recurso fica limitado
ao mximo utilizado, assumindo uma calendarizao o mais cedo possvel
D
1
Primeiro indicador de dificuldade, e a percentagem do UB acima do LB,
ou seja: (UB-LB)/LB
D
2
Segundo indicador de dificuldade, e diferena entre o pior resultado e o
melhor resultado das vrias regras de prioridade, a dividir pelo LB
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
1

I1
0
100
200
300
400
500
600
700
800
10 20 30 40 50 75 100 250 1000 5000
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
2
I2
0
200
400
600
800
1000
1200
1400
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
4
I4
0
500
1000
1500
2000
2500
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma CI

CI
0
100
200
300
400
500
600
700
800
900
1 1,5 2 2,5 3 3,5 4 4,5 5 6
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
3*
I3*
0
100
200
300
400
500
600
700
800
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
5*
I5**
0
50
100
150
200
250
300
350
400
450
500
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma I
6
I6
0
100
200
300
400
500
600
700
800
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma RF
RF
0
100
200
300
400
500
600
700
800
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma RS
RS
0
50
100
150
200
250
300
350
400
450
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ndice Topo Problemas Heursticas Testes Implementao
Histograma D
1
D1
0
200
400
600
800
1000
1200
1400
10% 20% 30% 40% 50% 60% 70% 80% 90% 90%+
ndice Topo Problemas Heursticas Testes Implementao
Histograma D
2
D2
0
200
400
600
800
1000
1200
10% 20% 30% 40% 50% 60% 70% 80% 90% 90%+
ndice Topo Problemas Heursticas Testes Implementao
Anlise dos Histogramas
Grande quantidade de problemas entre 50 e
250 actividades
No existem muitos problemas com elevado
grau de paralelismo
CI entre 1.5 e 2.5, havendo muito poucos
problemas com um CI mais elevado
H problemas cuja varincia das regras de
prioridade baixa, mas h tambm
problemas em que bastante elevada
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Global
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
I4
CI
I3_
I5_
I6
NREC
RF RS
D1
D2
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
-0,8 -0,4 0,0 0,4 0,8
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - JobShop
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
NREC
RF
D1
D2
-1,0
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
-1,0 -0,6 -0,2 0,2 0,6 1,0 1,4
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - FlowShop
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
NREC
RF
D1
D2
-0,3
-0,2
-0,1
0,0
0,1
0,2
0,3
0,4
0,5
0,6
-1,2 -0,8 -0,4 0,0 0,4 0,8 1,2
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Elmaghraby
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
I4
CI
I3_
I5_
I6
RF
RS
D1
D2
-0,4
-0,2
0,0
0,2
0,4
0,6
0,8
-1,2 -0,8 -0,4 0,0 0,4 0,8 1,2
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - KDS
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
I4
CI
I3_
I5_
I6
RF
RS
D1
D2
-1,0
-0,6
-0,2
0,2
0,6
1,0
-1,2 -0,8 -0,4 0,0 0,4 0,8 1,2
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Tavares
Factor Loadings, Factor 1 vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
t
o
r

2
I1
I2
I4
CI
I3_
I5_
I6
RF
RS
D1
D2
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
0,8
1,0
-0,8 -0,6 -0,4 -0,2 0,0 0,2 0,4 0,6 0,8 1,0
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Patterson
Factor Loadings, Factor 1vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
actor 2
I1
I2
I4
CI
I3_
I5_
I6
NREC
RF
RS
D1
D2
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
0,8
-0,8 -0,4 0,0 0,4 0,8 1,2
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Alvarez
Factor Loadings, Factor 1vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
actor 2
I1
I2
I4
CI
RF
RS
D1
D2
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
0,8
1,0
-1,0-0,8-0,6-0,4-0,20,0 0,2 0,4 0,6 0,8
ndice Topo Problemas Heursticas Testes Implementao
Anlise Factorial - Global*
Factor Loadings, Factor 1vs. Factor 2
Rotation: Unrotated
Extraction: Principal components
Factor 1
F
a
c
to
r 2
I1
JS
FS
ELM
KDS
TAV
PAT
ALV
I2
I4
CI
I3_
I5_
I6
-0,8
-0,6
-0,4
-0,2
0,0
0,2
0,4
0,6
0,8
-1,0 -0,6 -0,2 0,2 0,6 1,0 1,4
ndice Topo Problemas Heursticas Testes Implementao
Evidncias das Anlises Factoriais
Problemas Elmaghraby:
I
2
tem relao inversa com CI e I
1
Problemas KDS:
RS tem relao inversa com D
1
e D
2
I
1
relao inversa com I
2
e I
3

Problemas Patterson e Alvarez:
I
4
relao directa com CI
ndice Topo Problemas Heursticas Testes Implementao
Concluses da Anlise de
Problemas
So precisos problemas:
de maior dimenso
com maior grau de paralelismo
Os conjuntos que no apresentam relaes
entre as variveis estudadas so:
JobShop e FlowShop (morfologia esttica)
Tavares

ndice Topo Problemas Heursticas Testes Implementao
Heursticas
Estrutura de dados
Mnimos (LB, Lower Bound)
Os algoritmos de procura, retornam de imediato
caso atinjam o LB
Mximos (UB, Upper Bound)
Os algoritmos de procura, tm como soluo
inicial, o melhor UB
Operadores
Heursticas testadas
ndice Topo Problemas Heursticas Testes Implementao
Heursticas, RCPSP
Esquema de calendarizao
SSS, calendariza actividade a actividade
PSS, calendariza instante em instante de tempo
Representaes
Activity List
Random Key
Priority Rule
Shift Vector
ndice Topo Problemas Heursticas Testes Implementao
Estrutura de Dados
Definio do problema
gerado quando carregado o problema e
no mais duplicado ou alterado
Soluo
Activity List
Recursos
conjunto de dados auxiliares, que tm o nvel
de cada recurso
no necessita de valores inteiros
Tempo
Nivel
de
Recurso Limite
0
10
20
0 10 20 30
ndice Topo Problemas Heursticas Testes Implementao
Mnimos para o RCPSP (LB)
Relaxar recursos
durao do caminho crtico, um primeiro
mnimo que ser o ptimo no caso de os
recursos no restringirem o problema
Tempo
Nivel de
Recurso
Limite
0
10
20
0 10 20 30
excesso de utilizao, que dever ser
trasportado para a zona seguinte
Relaxar precedncias
actividades o mais
cedo possvel
nivelar cada recurso de
modo a que seja
respeitados os limites
ndice Topo Problemas Heursticas Testes Implementao
Regras de Prioridade
LST Latest Start Time
LFT Latest Finish Time
SPT Shortest Processing Time
GRPW Greatest Rank Positional Weight
MTS Most Total Successors
MTSPT Most Total Successors Processing Time
ndice Topo Problemas Heursticas Testes Implementao
Regras LST, e LFT
Calcula primeiro o tempo de inicio mais
tarde, ou o tempo de fim mais tarde
As actividades so ordenadas por esse valor
Desta forma d-se prioridade s actividades
que ou comeam j ou provocam um atraso
directo no projecto
Regras simples e muito usadas desde o
inicio da investigao nesta rea
ndice Topo Problemas Heursticas Testes Implementao
Regras SPT, e GRPW
Atribui prioridade s actividades com o
maior tempo de processamento
Desta forma colocam-se as actividades de
menor durao no fim, uma vez que estas a
serem mal colocadas, prejudicam menos
A regra GRPW, soma tambm o tempo das
actividades sucessoras directas, dando um
acrscimo de conhecimento ao SPT
ndice Topo Problemas Heursticas Testes Implementao
Regras MTS, e MTSPT
A prioridade dada s actividades com
maior nmero de actividades sucessoras,
directas ou indirectas
A regra MTSPT, d prioridade soma dos
tempos de processamento das actividades
sucessoras
Estas regras so as que requerem maior
tempo de calculo, mas obtm-se resultados
muito bons
ndice Topo Problemas Heursticas Testes Implementao
Operadores
Geraes Aleatrias
operadores de zero argumentos
Vizinha de Solues
operadores com um argumento
Operadores Crossover
operadores com dois argumentos
ndice Topo Problemas Heursticas Testes Implementao
Geraes Aleatrias, 1
SM (Sampling Method)
atravs da gerao de uma ordem de actividades
aleatria, gera solues completamente aleatrias
RBRS (Regret Biased Random Sampling)
probabilidade da actividade j ser calendarizada
de entre as actividades que o possam ser:

+
+
= +
i
i
j
j
o
o
c
c
) (
) (
) (
ndice Topo Problemas Heursticas Testes Implementao
Geraes Aleatrias, 2
GBRS (Global Biased Random Sampling)
peso pela qual as actividades vo ser ordenadas:
c = + = u
j
j) (
RBRS vs GBRS
RBRS requer a manuteno do conjunto das
actividades calendarizveis
GBRS requer uma correco de eventuais
violaes de precedncias
ndice Topo Problemas Heursticas Testes Implementao
Geraes Aleatrias, 3
STWB (Serial Time Window Bound)
Esta optimizao, consiste em ir verificando se
as actividades j colocadas, provocam j um
calendrio mais longo que o melhor actual
em todos os trs algoritmos de amostragem,
pode-se aplicar esta optimizao
basta corrigir o tempo de fim mais tarde, de
modo a que o projecto acabe no melhor tempo,
abortando logo que qualquer actividade igual o
seu tempo de fim mais tarde
ndice Topo Problemas Heursticas Testes Implementao
Vizinhana de Solues
Vizinho API (Adjacent Pair Interchange)

Vizinho PI (Pair Interchange)

Vizinho RS (Right-Shift)

Vizinho SHIFT
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
ndice Topo Problemas Heursticas Testes Implementao
Operadores Crossover, 1
One-Point Crossover, utilizado por
Hartmann
Hartmann conclui que a verso Two-Point
Crossover d melhores resultados
1 5 4 2 7 3 6
1 2 3 4 5 6 7
1 5 4 3 7 2 6
Pai
Me
Filho
Me Pai
ndice Topo Problemas Heursticas Testes Implementao
Operadores Crossover, 2
LJF (Late Join Function), proposto
no pai, troca a ordem das actividades adjacentes
que esto pela ordem inversa na me
1 5 4 2 7 3 6
1 2 3 4 5 6 7
1 4 2 3 7 6 5
Pai
Me
Filho
ndice Topo Problemas Heursticas Testes Implementao
Heursticas Testadas, 1
Heursticas de Amostragem
foram testados todos os trs geradores
aleatrios com e sem a optimizao STWB,
perfazendo um total de 6 heursticas
Heursticas de Procura Local
sobre as quatro vizinhanas definidas, foram
testados 4 algoritmos:
Procura Local com Recomeo
Arrefecimento Simulado
Pesquisa Tabu (duas configuraes)
ndice Topo Problemas Heursticas Testes Implementao
Heursticas Testadas, 2
Algoritmos Genticos
foram testados ambos os operadores crossover,
sobre 4 configuraes:
Config. Populao Melhores Sobrev. Filhos Mutantes Estrang.
1 10 2 2 2 2 2
2 25 4 7 7 7 0
3 100 5 25 30 20 20
4 40 40 0 40 2 0
ndice Topo Problemas Heursticas Testes Implementao
Indicadores de Performance, 1
Percentagem acima do ptimo / UB / LB
uma heurstica nula, classificada com um valor
no nulo
d importncia diferente aos problemas,
dependente da distncia da soluo inicial ao UB
a existncia de problemas simples, no conjunto
de teste, melhora o rendimento das heursticas
os testes no so comparveis entre diferentes
conjuntos
ndice Topo Problemas Heursticas Testes Implementao
Indicadores de Performance, 2




R
i
, valorao da soluo de partida
V
i
, valorao da soluo obtida pela heurstica
UB
i
, melhor soluo obtida neste problema
N, nmero de problemas com UB
i
diferente de
R
i

=
N
i
i i
i i
UB R
V R
N
e Performanc
1
1
ndice Topo Problemas Heursticas Testes Implementao
Indicadores de Performance, 3
Performance
uma heurstica nula, classificada com o valor
nulo
d a mesma importncia a cada problema
a existncia de problemas simples, no conjunto
de teste, no afecta o indicador
os testes so comparveis entre diferentes
conjuntos
ndice Topo Problemas Heursticas Testes Implementao
Indicadores de Performance, 4
Problema 1 Problema 2 Problema 3
Soluo Inicial 110 85 50
Algoritmo 1 110 85 40
Algoritmo 2 100 84 50
Melhor Valor 100 84 40
Mtodo de
Classificao
Problema 1 Problema 2 Problema 3 Mdia
Percentagem 10% 1% 0% 4%
Alg1
Performance 0% 0% 100% 33%
Percentagem 0% 0% 25% 8%
Alg2
Performance 100% 100% 0% 67%
ndice Topo Problemas Heursticas Testes Implementao
Testes
Foram testados:
30 algoritmos
1656 problemas no simples
em 4 ritmos de tempo
Foram analisadas, ao todo,159.364.665
solues, de RCPSP
O tempo de procura dispendido, foi de
1.296.858 segundos

ndice Topo Problemas Heursticas Testes Implementao
Performance
Ritmo 01 1 5 20
HARTG7 34% 58% 68% 79%
HARTG2 35% 59% 70% 78%
LJFG2 35% 58% 70% 77%
SHIFTLS 34% 56% 71% 76%
RSLS 34% 57% 70% 75%
PILS 35% 57% 70% 75%
LJFG7 35% 57% 67% 74%
LJFG4 34% 53% 61% 71%
HARTG4 34% 52% 61% 70%
GBRS 44% 60% 66% 68%
Ritmo 01 1 5 20
HARTG6 34% 56% 63% 68%
LJFG6 34% 56% 63% 68%
RSSA 19% 42% 57% 64%
SGBRS 34% 52% 58% 60%
SHIFTSA 19% 39% 53% 60%
PISA 17% 38% 52% 60%
SHIFTTS2 22% 44% 56% 60%
APILS 26% 43% 54% 59%
SHIFTTS 21% 44% 56% 59%
PITS 22% 41% 53% 56%
Ritmo 01 1 5 20
PITS2 21% 41% 54% 56%
RBRS 18% 35% 48% 54%
RSTS 22% 41% 52% 53%
SM 17% 35% 46% 52%
RSTS2 22% 41% 52% 52%
APITS 9% 18% 24% 51%
APITS2 9% 18% 23% 48%
SRBRS 14% 29% 40% 47%
APISA 8% 21% 35% 46%
SSM 13% 29% 39% 46%
ndice Topo Problemas Heursticas Testes Implementao
Percentagem acima do UB
Ritmo 01 1 5 20
HARTG7 2,0% 1,7% 1,6% 1,3%
HARTG2 2,0% 1,7% 1,5% 1,3%
LJFG2 2,0% 1,8% 1,6% 1,4%
SHIFTLS 2,2% 1,9% 1,5% 1,4%
RSLS 2,1% 1,8% 1,5% 1,5%
PILS 2,1% 1,8% 1,5% 1,5%
LJFG7 2,0% 1,8% 1,8% 1,6%
LJFG4 2,1% 2,0% 2,0% 1,7%
HARTG4 2,0% 2,0% 2,1% 1,7%
HARTG6 2,1% 1,9% 2,0% 1,9%
Ritmo 01 1 5 20
LJFG6 2,1% 1,9% 1,9% 2,0%
GBRS 1,7% 1,7% 1,8% 2,0%
RSSA 2,7% 2,5% 2,2% 2,1%
SGBRS 1,9% 1,8% 2,0% 2,2%
SHIFTSA 2,7% 2,7% 2,4% 2,3%
PISA 2,8% 2,7% 2,5% 2,3%
SHIFTTS2 2,6% 2,5% 2,3% 2,4%
SHIFTTS 2,7% 2,5% 2,3% 2,4%
APILS 2,4% 2,5% 2,4% 2,5%
PITS 2,6% 2,6% 2,5% 2,6%
Ritmo 01 1 5 20
RBRS 2,6% 2,7% 2,6% 2,6%
SM 2,6% 2,6% 2,6% 2,6%
PITS2 2,7% 2,6% 2,4% 2,6%
SRBRS 2,7% 2,8% 2,8% 2,7%
SSM 2,7% 2,7% 2,7% 2,7%
RSTS 2,6% 2,6% 2,6% 2,8%
RSTS2 2,7% 2,6% 2,5% 2,9%
APITS 3,1% 3,7% 4,1% 2,9%
APITS2 3,1% 3,7% 4,2% 3,1%
APISA 3,2% 3,5% 3,5% 3,2%
ndice Topo Problemas Heursticas Testes Implementao
Testes - Comentrios
A performance dos algoritmos, no
constante para os diversos ritmos
As melhores heursticas so as mesmas em
5s/problema, que a 20s/problema, mas tal
no se verifica para os dois ritmos inferiores
Nenhuma heurstica ultrapassou a barreira
dos 90% de performance, mas esta
crescente com ritmos mais lentos (mais
tempo por problema)
ndice Topo Problemas Heursticas Testes Implementao
Estatsticas - Top 5
Indicadores HARTG7 HARTG2 LJFG2 SHIFTLS RSLS
Performance 81% 81% 79% 77% 76%
UBs 45% 36% 32% 31% 27%
Estados 2.686 2.537 2.421 2.780 3.093
Passos 63 421 402 162 187
Avaliao 85% 82% 80% 91% 93%
Gerao 13% 15% 18% 8% 6%
Estratgia 2% 2% 2% 1% 1%
ndice Topo Problemas Heursticas Testes Implementao
Top 5, Comentrios 1
A performance sobe no caso de se ignorar
algumas heursticas
Nenhuma heurstica consegue 50% de UBs:
h classes de problemas em que umas
heursticas funcionam melhor que outras
preciso mais tempo para que as heursticas
encontrem uma melhor soluo

ndice Topo Problemas Heursticas Testes Implementao
Top 5, Comentrios 2
A procura local vs algoritmos genticos
A procura local analisa mais solues que os
algoritmos genticos
O operador de vizinhana (6 a 8%) mais
rpido que o operador crossover (13 a 18%)
Algoritmos genticos
configurao G2 com muito mais geraes que
a configurao G7
o operador HART mais rpido (15%) que o
operador LJF (18%)
ndice Topo Problemas Heursticas Testes Implementao
Top 5, Problemas
Conjunto Problemas Uteis %
Elmaghraby 36 14 39%
KDS 2040 849 42%
Tavares 72 66 92%
Alvarez 144 60 42%
Patterson 110 20 18%
JobShop/FlowShop 113 108 96%
ndice Topo Problemas Heursticas Testes Implementao
Testes, Concluses 1
Problemas
Reuniu-se e comparou-se os principais
conjuntos de problemas de RCPSP
Os problemas Tavares bem como os FlowShop
e JobShop, tm mais utilidade a distinguir
heursticas
ndice Topo Problemas Heursticas Testes Implementao
Testes, Concluses 2
Heursticas de Amostragem
As heursticas de amostragem foram as piores
para ritmos de 5 e 20s/problema
A nossa proposta GBRS, foi a que deu
melhores resultados
foi a melhor nos ritmos de 0.1 e 1s/problema
ficou com uma performance de 10% abaixo da
melhor para 20s/problema


ndice Topo Problemas Heursticas Testes Implementao
Testes, Concluses 3
Procura Local
Foi uma desiluso as procuras TabuSearch e
Simulated Anealing, que ficaram a cerca de
20% piores que a melhor heurstica
A procura local com recomeo, foi um sucesso
Em qualquer um dos operadores estudados
o melhor foi o operador SHIFT, tendo este operador
funcionado melhor tambm nos restantes algoritmos
Foi a melhor heurstica para o ritmo de 5s/problema

ndice Topo Problemas Heursticas Testes Implementao
Testes, Concluses 4
Algoritmos Genticos
Foram os algoritmos que funcionaram melhor
O operador HART apresenta ligeira vantagem
sobre o operador LJF
A configurao G7 apresenta tambm alguma
vantagem sobre a configurao G2
As configuraes G4 e G6 revelam-se
inferiores
ndice Topo Problemas Heursticas Testes Implementao
Interface entre Algoritmos e
Problemas
Filosofia Adoptada
Classificao e Modelao de Problemas
Classificao de Algoritmos
Interfaces
Tecnologia
Implementaes de Algoritmos e Problemas
Ferramenta de Integrao
ndice Topo Problemas Heursticas Testes Implementao
Filosofia Adoptada
Pretende-se que o desenvolvimento dos
algoritmos e problemas fique separado
preciso uma classificao para problemas de
optimizao combinatria
e tambm outra classificao para os algoritmos
e ainda uma interface para problemas e outra para
algoritmos
Uma alterao no algoritmo no deve requerer
uma recompilao do problema e vice-versa


ndice Topo Problemas Heursticas Testes Implementao
Classificao de Problemas
Uni-Decisor
Multi-Decisor
Conhecimento
Total
Conhecimento
Parcial
Espao de Problemas
ndice Topo Problemas Heursticas Testes Implementao
Modelaes de Problemas
Solues Completas
Solues Parciais
Abordagem Melhorativa Abordagem Construtiva
sempre preciso definir uma funo de
valorao
ndice Topo Problemas Heursticas Testes Implementao
Abordagem Melhorativa
Pode-se definir nesta abordagem:
Gerador aleatrio de solues completas
Vizinhana de uma soluo
Soluo gerada a partir de duas outras
Estes operadores tm zero, um e dois
argumentos respectivamente
Algoritmos de amostragem, de procura
local e algoritmos genticos, podem ser
implementados com estes operadores
ndice Topo Problemas Heursticas Testes Implementao
Abordagem Construtiva
Definir o espao das solues parciais
tem que existir a soluo parcial vazia
e tambm o conjunto das solues completas
Definir uma relao de construo
esta relao tem que ligar a soluo vazia a
todas as solues
normalmente de fcil implementao, pois
apenas adiciona um pormenor soluo parcial
Uma boa funo de valorao essencial

ndice Topo Problemas Heursticas Testes Implementao
Classificao de Algoritmos
Uni-Decisor com Conhecimento Total
Algoritmos de Amostragem
Procura Local
Algoritmos Exactos
Algoritmos Genticos
Multi-Decisor e/ou Conhecimento Parcial
Decisor 1
Decisor 2
Soluo Completa
Espao de Estados
ndice Topo Problemas Heursticas Testes Implementao
Interfaces
Programa
Estado
Procura
ISearch
IState
ndice Topo Problemas Heursticas Testes Implementao
Interface IState, 1
Clone - duplica o objecto
Equal - testa a igualdade de duas solues
Load - l o problema de um ficheiro
Save - grava a soluo para um ficheiro
GetData - devolve os dados de modo a
serem visualizados de forma genrica
Reset - inicia com uma soluo aleatria, ou
a soluo parcial vazia, ou uma soluo tipo
ndice Topo Problemas Heursticas Testes Implementao
Interface IState, 2
GetValue - valorao da soluo actual
PutValue - informa o objecto que apenas tm
interesse solues superiores a um valor
GetMinimizing - sentido da optimizao
GetSolution - teste para soluo completa
GetNDecisors - devolve nmero de decisores
GetDecisor - nmero do decisor actual
PutDecisor - para o qual se quer a valorao
ndice Topo Problemas Heursticas Testes Implementao
Interface IState, 3
FirstNeib - devolve a primeira soluo
vizinha / soluo parcial sucessora
NextNeib - prximo vizinho
RandNeib - baralha a ordem dos vizinhos,
devendo ser chamada antes do FirsNeib
GetActualNeib - nmero do vizinho actual
PutActualNeib - muda vizinho actual
ndice Topo Problemas Heursticas Testes Implementao
Interface IState, 4
FirstMove - devolve o primeiro lance
NextMove - prximo lance
MakeMove - executa o lance
UndoMove - desfaz o lance
Join - junta duas solues (crossover)
Mute - devolve um estado mutante
GetHashCode / GetExtraSearch /
PutExtraSearch - funes para multi-decisor

ndice Topo Problemas Heursticas Testes Implementao
Interface ISearch, 1
SetState - fornecesse um problema para o
algoritmo resolver
Search - executa a procura
GetState - obtm-se a soluo resultante
LimitTime - tempo limite
LimitStates - nmero de estados limite
LimitSteps - nmero de passos limite
LimitLevel - nvel limite
ndice Topo Problemas Heursticas Testes Implementao
Interface ISearch, 2
UsedTime - tempo utilizado
UsedStates - nmero de estados analisados
UsedSteps - nmero de passos efectuados
UsedLevel - nvel mximo atingido
UsedAvaliationTime - % de avaliao
UsedGenerationTime - % de gerao
UsedComparationTime - % de comparao
GetParameter / PutParameter - outros
ndice Topo Problemas Heursticas Testes Implementao
Tecnologia - Propostas
IState e ISearch so ficheiros header onde
esto declaradas as funes da interface
IState e ISearch so declaraes da classe
Estado e da classe Procura respectivamente
IState e ISearch so classes abstractas, sendo
Estado e Procura classes derivadas
IState e ISearch so interfaces Java
Estado e Procura so objectos COM que
implemento a interface IState e ISearch
ndice Topo Problemas Heursticas Testes Implementao
Tecnologia - Concluses
A primeira e a segunda proposta, no
permitem a implementao simultnea de
vrios problemas / algoritmos
A terceira e a quarta proposta necessitam de
compilao de todos os mdulos, aps a
alterao de algum deles
A quinta proposta no tem as desvantagens
anteriores, e permite at que os diferentes
mdulos estejam em linguagens diferentes
ndice Topo Problemas Heursticas Testes Implementao
Implementaes
Algoritmos
Heursticas Uni-Decisor
Algoritmos Exactos
Heursticas de Multi-Decisor
Problemas Exemplo
Oito Damas
Quatro em Linha
Leiles
FutureTec
ndice Topo Problemas Heursticas Testes Implementao
Heursticas Uni-Decisor
Algoritmos de Amostragem
gera solues aleatrias at atingir algum limite
Procura Local
First Fit width restart
Simulated Anealing
Tabu-Search
Algoritmos Genticos
ndice Topo Problemas Heursticas Testes Implementao
Procura Local
Inicio da Procura
Soluo Actual =
Soluo Tpica ou
Aleatria
Analizar o Vizinho
seguinte da Soluo
Actual
Soluo Actual =
Vizinho
ltimo? Melhor?
Sim Sim
No No
Soluo Actual = Soluo
Aleatria ou Melhor
Vizinho
A
B
C
ndice Topo Problemas Heursticas Testes Implementao
Procura Local
Algoritmos Bloco A Bloco B Bloco C
Escalada do Monte
Ordem Aleatria Melhor Valor Soluo Aleatria
Pesquisa Tabu
Todos os Vizinhos
excepto os que forem
parecidos com as K
ltimas solues
Falso Melhor Vizinho
Arrefecimento Simulado
Ordem Aleatria Melhor Valor ou
Probabilidade
Indiferente
a Temperatur
l CustoActua ho CustoVizin
e

ndice Topo Problemas Heursticas Testes Implementao
Algoritmos Genticos
Grupos:
populao - nmero de indivduos
melhores - elite que passa directamente
sobreviventes - passam com uma probabilidade
relativamente ao seu valor
filhos - resultado do cruzamento dos pais
mutuantes - mutaes de indivduos da gerao
anterior
estrangeiros - indivduos completamente novos

ndice Topo Problemas Heursticas Testes Implementao
Algoritmos Exactos
Branch-And-Bound
percorre a rvore em profundidade
guarda a melhor soluo completa
corta ramos que j so piores que o melhor
A*
explora a cada passo a soluo mais
prometedora
ID-A*
ndice Topo Problemas Heursticas Testes Implementao
Branch-And-Bound
Branch-And-Bound
(Soluo Actual SA)
Retorna
Melhor
?
Sim
No
Avalia SA, e compara com
a valorao do Melhor
Teste de Soluao Completa
Ok?
No
Sim
Regista Melhor e Retorna
Branch-And-Bound
(prximo vizinho de SA)
Ok?
No
Sim
Teste de Vizinhos a SA
Retorna
ndice Topo Problemas Heursticas Testes Implementao
A*
A*
Insere Soluo
Parcial Vazia nas
Solues por Expandir
Retira a melhor
soluo das Solues
por Expandir
Teste de Soluao
Completa
Ok?
No
Sim
Retorna a Soluo
Ok?
No
Sim
Teste de Vizinhos
Avalia o vizinho
seguinte e insere-o
nas Solues por
Expandir
ndice Topo Problemas Heursticas Testes Implementao
ID-A*
Branch-And-Bound
(Soluo Parcial Vazia)
Ok?
Sim
No
Valorao do Melhor =
minorante
Retorna
ID-A*
Incrementa
Valorao do Melhor
ndice Topo Problemas Heursticas Testes Implementao
Heursticas de Multi-Decisor
Teoria nesta rea destina-se a dois decisores
foi generalizada aqui a N decisores
O algoritmo de base, MiniMax, muito
parecido com o Branch-And-Bound
Cortes Alfa-Beta
Decisor de aleatrio
Nveis de Ordenao
Nveis de Procura Extra
ndice Topo Problemas Heursticas Testes Implementao
MiniMax
MiniMax
(Soluo Actual SA)
Teste de Soluao
Completa ao prximo
vizinho de SA
Ok?
No
Sim
Retorna as valoraes
da soluo, com a
melhor valorao para o
decisor da Soluo
Actual SA
Ok?
Sim
No
Teste de Vizinhos a SA
Calcula as valoraes
do vizinho de SA
Limite?
Ok
Atingido
MiniMax
(vizinho de SA)
ndice Topo Problemas Heursticas Testes Implementao
MiniMax / Alfa-Beta
MiniMax/Alfa-Beta (Soluo Actual
SA, Valores de Corte VC)
Teste de Soluao Completa ao prximo
vizinho de SA
Ok?
No
Sim
Retorna as valoraes da soluo,
com a melhor valorao para o
decisor da Soluo Actual SA
Ok?
Sim
No
Teste de Vizinhos a SA
Calcula as valoraes do
vizinho de SA
Limite?
Ok
Atingido
MiniMax/Alfa-Beta
(vizinho de SA, VC)
Teste Alfa, com VC
Corta?
No
Sim
Actualizao Beta, de VC
Retorna as valoraes do vizinho de
SA actual
ndice Topo Problemas Heursticas Testes Implementao
Problemas Exemplo
Pretende-se exemplificar a generalidade das
interfaces dos problemas e dos algoritmos
Problemas Implementados:
Oito Damas
Quatro em Linha
Leiles
ndice Topo Problemas Heursticas Testes Implementao
Oito Damas
Problema Uni-Decisor/Conhecimento Total
Representao: matriz 8x8
Apenas tem sentido o operador de construo
Soluo parcial vazia o tabuleiro vazio
O operador de construo insere uma dama,
na primeira linha que no tiver dama
insere apenas em locais permitidos
s apenas numa linha, para assim ter um nmero
reduzido de vizinhos
ndice Topo Problemas Heursticas Testes Implementao
Oito Damas - Operador
1 2 3 4
ndice Topo Problemas Heursticas Testes Implementao
Oito Damas, Resultados
Todos os trs algoritmos exactos resolveram
o problema em instantes
O sucesso deve-se ao operador escolhido. Se
fosse escolhido um operador que posicionasse a
dama em qualquer lugar em todo o tabuleiro, os
resultados j no seriam positivos
Algoritmo Estados Passos
Branch-And-Bound 172 161
A* 172 161
ID-A* 172 160
ndice Topo Problemas Heursticas Testes Implementao
Quatro em Linha
Problema de Multi-Decisor/Informao Total
Representao: matriz 7x7
Apenas interessa o operador de construo
Soluo parcial vazia o tabuleiro vazio
O operador de construo est definido pelas
regras do jogo
Funo de valorao muito importante!
Resulta de Intuio / Palpite / Anlise ao Jogo
ndice Topo Problemas Heursticas Testes Implementao
Quatro em Linha - Operador
1
2
3
4 5
6 7
ndice Topo Problemas Heursticas Testes Implementao
Quatro em Linha - Resultados
Foram testadas duas configuraes no
algoritmo, ordenando ou no.
No parece haver vantagem de ordenar
Ordenar No Ordenar
Nvel Passos Estados Tempo Nvel Passos Estados Tempo
1 8 63 0.0s 1 8 56 0.0s
2 57 455 0.1s 2 57 399 0.1s
3 400 3115 0.8s 3 400 2716 0.7s
4 2758 21651 5.3s 4 2717 18935 4.7s
ndice Topo Problemas Heursticas Testes Implementao
Leiles
Problema de Multi-Decisor/Informao Total
mais do que dois decisores!
Caractersticas do leilo testado:
trs jogadores, com 2 mil contos cada
8 artigos, de valor mil contos cada
cada jogador pode:
licitar o artigo actual, por um montante superior
passar
caso todos passem duas vezes, o artigo vendido
ndice Topo Problemas Heursticas Testes Implementao
Leiles - Resultados
Nvel Passos Estados Tempo Nvel Passos Estados Tempo
1 3 6 0.0s 6 127 254 0.1s
2 7 14 0.0s 7 255 510 0.3s
3 15 30 0.0s 8 511 1022 0.4s
4 31 62 0.0s 9 1023 2046 0.9s
5 63 126 0.0s 10 2047 4094 1.8s
Para o leilo ser simulado razoavelmente,
teria-se de poder chegar at ao nvel 30, o
que de todo impossvel
ndice Topo Problemas Heursticas Testes Implementao
Ferramenta de Integrao (FI)
Interface entre objectos que implementem
IState e ISearch, com o utilizador
apenas uma ferramenta de
desenvolvimento
No substitui um eventual programa final
Desta forma, a implementao de um
problema, fica livre da necessidade de
construir um programa do princpio ao fim
ndice Topo Problemas Heursticas Testes Implementao
FI - Caractersticas Desejveis
Identificao do problema e algoritmo
Navegao manual no espao de solues
Visualizao do problema
tal seria simples para um problema, mas dever
ser uma visualizao independente do problema
Obteno das estatsticas decorrentes da
procura efectuada
Efectuar testes de coerncia
ndice Topo Problemas Heursticas Testes Implementao
SearchView
SearchView aps uma procura nivel 4, no
jogo do quatro em linha
ndice Topo Problemas Heursticas Testes Implementao
SearchView - Funcionalidades
Identificao do problema e algoritmo,
atravs do ProgID, no canto inferior direito
Navegao pelo espao de soluo, atravs
da TreeList de lances, e da ListBox com o
histrico, ou seja a partida, ou caminho
Visualizao genrica de dados, neste caso
matricial
Estatsticas de procura, independente do
algoritmo ou problema escolhido
ndice Topo Problemas Heursticas Testes Implementao
SearchView - Escolha e
configurao de Algoritmos
Local



Global
Genetic



Game
ndice Topo Problemas Heursticas Testes Implementao
SearchView - Testes
Testes de Coerncia
copiar um objecto (Clone) e testar para ver se
igual (Equal)
executar um lance (MakeMove), e de seguida
desfazer (UndoMove) e verificar se o estado
igual
Testes de Velocidade
ndice Topo Problemas Heursticas Testes Implementao
SearchView - Outras
Funcionalidades
Inicializao de Solues



Carregamento Problemas / Gravao de
Solues
Conjuntos de Teste
Visualizao Animada da Procura

Você também pode gostar