PROGRAMA
DE
PÓS-GREDUAÇÃO
EM
ENGENHARIA
ELETRICA
ESCALONAIVIENTO
DE TAREF
AS JOB-SHOP
REALISTAS
UTILIZANDO
ALGORITMOS
›A
GENÉTICOS
EM
MATLAB
Dissertação
submetida à
Universidade
Federalde Santa
Catarinacomo
partedos
requisitospara a
obtenção
do
grau
de
Mestre
em
Engenharia
ElétricaFELIPE
LUÍS
BECK
UTILIZANDO
ALGORITMOS
GENETICOS
EM
MA
T
LAB
_
Felipe
Luís
Beck
.
“Esta Dissertação foi
julgada
adequada
para obtenção
do
Títulode Mestre
em
Engenharia
Elétrica,Área
de Concentração
em
Controle,Automação,
e
Informática Industrial, e
aprovada
em
suaforma
final
peloPrograma de
Pós-Graduação
em
Engenharia
Elétricada
Universidade
Federalde Santa
Catarina.”Prof.
Cfistoph
Steffan Thomalla, Dr. Orientadori
r
fz
Prof.Ag~vem
e Sil Ph. D.Coordena
ordo Programa
deP
s-Graduaçaoem
Engenharia ElétricaBanca
Examinadora:
á/z.7z'zé›%
72%
/JÁ
Prof.
Cístoph
Steffan Thomalla, Dr.i
Presidente
Prof. Guilhmtne Bittencourt Dr.
~Í@
xa
-7
foi
Marcelo Ricardo Stemmer, Dr.rofa.
acquel~
Rolim, Dra.Em
primeiro lugar, eu gostaria de agradecer àminha
familia.É
dificil encontrar famíliascom
três gerações de curso superior.Todo
oempenho
e esforço necessários para tanto precisa serreconhecido. Agradeço, pois, ao
vovô Beck
(in memorían), por terdado
início a esta caminhada.Agradeço
aomeu
pai eminha
mãe, por terem feito todo o possível (e o impossível) parame
manterem
na escola, apesar das freqüentes ameaças, e por nunca teremme
deixado pensar que jáhavia feito o suficiente.
Agradeço
aomeu
irmão André, por terme
convencido tão habilmente a virpara Florianópolis.
As
fotos da PraiaMole
e seusbundafish
certamente ajudaram.Agradeço
àminha
irmãAna
emeu
irmãoMateus
pelo companheirismo, e por serem loucos o suficiente paracomerem
moqueca
no verão, apenas para darcabo
de quilos de peixes doados por pescadores daArmação.
Agradeço, ainda, a todo o resto desta gigantesca família, por serem, no final das contas,uma
Grande
Família. 'z
Agradeço
àminha
segunda família, o professorBranson
e sua esposa Judy, queme
acolheram durante cinco longos 'anos nos Estados Unidos.
As
lágrimas de saudadesempre
pareceram mais poéticas
quando
vistas por trás deum
copo
de rum-and-coke.Agradeço
ao Dr. Thomalla,meu
orientador e a todos os professores doLCMI
que, deuma
forma
ou
de outra,sempre
estiveram dispostos a ajudar. Agradeço,em
especial, aosmembros
destaBanca, por
não
terem dificultado muito omeu
trabalho. Isto, é claro, se elesaprovarem
estadissertação.
Além
destes, gostariade agradecer os professores queme
receberam tãobem
no
geladoWisconsin. Entre eles, destaco o Dr. Robert Johnson e o Dr.
Angus Menuge.
Também
agradeçoaos professores
Brune
e Sporket,do
antigo Colégio Sinodal, por terem acreditado e confiado, e porterem
me
dado
pontapésem
número
quase que suficiente. ,Agradeço
à Silvana eOscar
Lehenbauer, por teremme
dado
um
teto sob o qual viver.Agradeçoà
minha Neguinha
Magali, sua família, e seu computador.Sem
ela, eles, e ele, osúltimos dois anos teriam sido tristes,
sem
graça, e cinco anos, respectivamente.Agradeço
também
pela paciência da Rubelise, a voz chiadamas
encantadora da Karina, aamizade e risada da Michelle, o sotaque da Karen, a ajuda do Antônio, as discussões
com
o Alex, asbesteiras
do
Vallim,do
Hlima, do Fábio, edo
restodo
pessoal do laboratório,do
futebol, e doschurrascos.
E
como
esquecer o? Rodrigo e aAna,
apesar de eusempre
ter que estarbêbado
parapoder
me
comunicar na linguagem das Letras. Agradeço, e muito, aoAlemão
Blauth, ao HertonPoco, ao
Breno
Cupido, Rafael Pato Choco, e Gabriel Tatu,por
todos os anos, cervejas, piadas,brigas, e correspondências... Agradeço, ainda, a todos a
quem
eu não agradeci.Por
fim,
agradeço aogovemo,
através deCAPES,
pela bolsa dedicada. Espero que asgreves destes últimos anos
tenham
surtidoalgum
efeito, para que estas bolsas não se tornem tãoirreais quanto o salário mínimo! "
ESCALONAMENTO
DE
TAREFAS
JOB-SH
OP
REALISTAS
UTILIZANDO
ALGORITMOS
GENETICOS
EM MA
TLAB
_
Felipe
Luís
Beck
Novembro
/2000
Qrientador:
Cristoph
StetfanThomalla,
Dr.Area
de Concentração:
Controle,Automação
e Informática Industrial.Palavras-chave:
escalonamento job-shop
realista,MATLAB,
algoritmos genéticos.Número
de
Páginas: 106. -Esta
dissertaçãoaborda o desenvolvimento
ea implementação de
um
sistemapara
escalonamento de
tarefasdo
tipo job-shop.Com
o
sistemaque
foi desenvolvido,é
possívelo tratamento
não
apenas
de
problemas
clássicos,como também
de
problemas
realistas,que
levam
em
conta
Lungrande
número
de
características reais, ignoradasem
problemas
clássicos
de
escalonamento.
Estesproblemas
realistaspossuem
um
elevadonúmero
de
operações
emáquinas,
secomparados
a
problemas
clássicos,além
de
recursos adicionais,multiplicidade
de máquinas do
mesmo
tipo,e
váriosmodos
possíveisde
execução,
entreoutras' características.
Com
o
sistemadesenvolvido
é,também,
possível otratamento
de
problemas de escalonamento dos
tiposflow
eopen-shop
e, inclusive,de
problemas
que
mesclem
estes três tipos.Tendo
sidodesenvolvido
utilizandoMATLAB
e
uma
toolbox genética,mostra-se
\
que
um
sistema simples, construídoa
partirde
softwareamplamente
disponível, ésatisfatório
para a
utilizaçãoem
problemas
de
escalonamento.
Os
resultados obtidosem
testes
comprovam
a
eficiênciado
sistema criadono
tratamentode problemas
de
escalonamento
clássicos, etambém
a suaboa
performance
quando
são tratadosproblemas
realistas.
REALISTIC
JOB-SHOP
SCHEDULING
USING
'GENETIC
ALGORITHMS
IN
MA
T
LAB
Felipe
Luís
Beck
November/
2000
Advisor:
Cristoph
SteffanThomalla,
Dr.Area of
Concentration: IndustrialAutomation.
Keywords:
realisticjob-shop
scheduling,MATLAB,
genetic algorithms.Number
of
pages: 106.This
dissertation involves the designand
implementation
of
ajob-shop
schedulingsystem
The
developed system
is able to tackle notonly
classical schedulingproblems,
butmore
realistic schedulingproblems
as well.These
realisticproblems
requirea
great dealof
additional efi`ort for successfill scheduling, since they include
a
greatmany
restrictionsand
characteristics
not
present in traditional schedulingproblems.
As
an
example, realisticconcerns
taken
intoaccount
include multiplicityof
machines,
additional resources tobe
used, multiple
execution
modes
foreach
task, as well as other characteristics neglectedby
classical
problems.
The
developed system
is also able to successfullywork
with
flow
and
open
shop
schedulingproblems,
and
even problems
which
mix
these three variations.Having been
developed
for usewith
MATLAB,
a
readily availableand
inexpensivesystem,
and making
use
of
a
simple genetic toolbox, itshows
thatno
largecomputer
systems
are required for successfiil scheduling,even
with
increasingproblem
sizes.The
system°s eflticacy in tackling large scheduling
problems
is attestedby
the test resultsincluded. _ A . _
vi'
2. Escalonamento ... ..
OO\l-P-Jäf-“
1. Introdução ... ..
2.1. Definição do
Problema
Clássico .' ..._. 2.2. Critérios de Avaliação ... .. 2.3.
Métodos
de Resolução ... .. 2.3.1.Métodos
Exatos ... .. 9 2.3.2.Métodos
1-Ieurísticos ... .. 10 2.3.3. Algoritmos Genéticos ... .. 12 2.4. Construção de Escalas ... ._ 14 2.5. Problemas Realistas ... .. 15 3. Algoritmos Genéticos ... .. 183.1.0
Que
São?
... .. 18 3.2. Representação ... ._ 19 3.3.Função
Objetivo eFunção
de Ajuste ... .. 213.4. Seleção para
Reprodução
... .. 213.5.
Reprodução
eMutação
... .. 233.6.
A
Toolbox
Genética paraMATLAB®
... _. 25 4.O
Sistema Desenvolvido ... ._26
4.1. Representação ... ..26
4.2. Inicialização ... ..
29
4.3.
Definição
e Avaliação dos Problemas ...30
4.3.1.
Definição do Problema
Clássico ... .. 314.3.2. Avaliação dos
Casos
Clássicos ... 324.3.3.
Definição do Problema
Realista ... ._ 36 ' 4.3.4. Avaliação dosCasos
Realistas ... ..39
4.4. Cálculo da
Função
de Ajuste (Fitness) ... ._42
4.5. Seleção ... .. 434.6.
Reprodução
eMutação
... .; ... .. 434.7. Reinserção ... ..
44
4.8.
Término
do Algoritmo Genético ... ..44
5. Testes e Avaliação
do
Sistema ... ..46
6. Considerações Finais e Sugestões para Melhoria ... ._ 53
Anexo
A
- Problemas Utilizados na Avaliação ... .. 55Anexo
B
-Diagramas
de Fluxo do Sistema ... .. 78Referências
Bibliográficas ... ._ 100
Figura 2.1 - Escalonamento Ativo e Semi-Ativo ... ..
Figura 2.2 - Possível Relação de Precedência
em
Problemas Realistas ... ..Figura 2.3 - Possíveis
Modos
deExecução
de Tarefas ... ..Figura 3.1 - Funcionamento Básico dos Algoritmos Genéticos ... _.
Figura 3.2 - Operador
PMX
de Goldberg ... ..Figura 3.3 - Crossover de l e 2 Pontos ... _.
Figura 3.4 -
Mutação
Adjacente e Arbitrária ... ..Figura 4.1 -
Geração
de Elemento Inválido ... ..Figura 4.2 -
Função
CRTBP
... ..Figura 4.3 -
Função
TIEBREAK
... ._Figura 4.4 - Definição
do Problema
Clássico ... ..Figura 4.5 - Definição das Relações de Precedência ... ..
F
igira 4.6 - Organização da Matriz de Precedências3D
... _.Figura 4.7 - Períodos Ociosos da
Máquina
e Tarefa ... ..Figura 4.8 -
Combinações
Possíveis de Inícios de Períodos Ociosos ... ._Figura 4.9 - Interseções Inviáveis de Períodos Ociosos ... ..
Figura 4.10 - Interseções Viáveis de Períodos Ociosos ... ..
Figura 4.11 - Interseções Dependentes do
Tempo
deExecução
... ..Figura 4.12 - Matrizes de Precedência para Problemas Realistas ... ..
Figura 4.13 -
Definição
de Recursos eMáquinas
... ..Figura 4.14 - Definição das Operações ... .. ... ..
Figura 4.15 -
Definição
dosTempos
de Preparo Dependentes da SeqüênciaFigura 4.16 - Construção da Seqüência Preferencial de Rotas ... ._
Figura 4.17 -
Mudanças
em
Tempos
de Preparo deMáquina
... _.Figura 5.1 - Resultados
ABZ6
... ..Figura 5.2 - Resultados
CAR4
... ..Figura 5.3 - Resultados
LA22
... ..Figura 5.4 - Resultados
MT10
... ._Figura 5.5 - Resultados
Problema
Realista 1 ... ..Figura 5.6 - Resultados
Problema
Realista 2 ... ..Figura A.1 - Relações de Precedência entre Partes -
Problema
1 ... ..Figura A.2 - Relações de Precedência entre Partes -
Problema
2 ... ..Figura.B.1 -
Diagrama
de Fluxo - ScriptEXECVRGA.m
... ..Figura B.2 -
Diagrama
de Fluxo -Função
RDINPUT.m
... ..Figura B.3 -
Diagrama
de Fluxo -Função
T1EBREAK.m
... ..Figura B.4 -
Diagrama
de Fluxo -Função
CHKVALCH.m
... ..Figura B.5 -
Diagrama
de Fluxo -Função
DECOMP.m
... _.Figura B.6 -
Diagrama
de Fluxo -Função
EVALPOP.m
... ._Figura B.7 -
Diagrama
de Fluxo -Função
CHKPRCDC.m
... ..Figura B.8 -
Diagrama
de Fluxo -Função
FINDIDLE.m
... ..Figura B.9 -
Diagrama
de Fluxo -Função
INSERTAT.m
... ..Figura B. 10 -
Diagrama
de Fluxo -Função
INSERT.m
... ..Figura B.l 1 -
Diagrama
de Fluxo -Função
XOVMP2.m
... .. 89Figura B. 12 -
Diagrama
de Fluxo -Função
MUTATION.m
... ..Figura B.13 -
Diagrama
de Fluxo - ScriptEXECVRGA2.m
... ..Figura B. 14 -
Diagrama
de Fluxo -Função
INITCOMP2.m
... ..Figura B. 1 5 -
Diagrama
de Fluxo -Função
EVALPOP2.m
... ..Figura B.16 -
Diagrama
de Fluxo -Função
CHKPRCDC2.m
... ..Figura B.20 -
Diagrama
de Fluxo -Função
FINDIDLE2.m
... _.Figura B.2l -
Diagrama
de Fluxo -Função
COMBINE.m
... ..Tabela 5.1 - Melhores
Combinações
de Parâmetros ... ..Tabela A.l - Definição de
ABZ6
... ._Tabela A.2 - Definição de
CAR4
... _; ... _.Tabela A.3 - Definição de
LA22
... ..Tabela
A.4
-Definição
deMTIO
... ..Tabela A.5 -
Máquinas
e Recursos Adicionais -Problema
1 ... ..Tabela
A.6
-Defmição
das Operações -Problema
l ... ._Tabela
A.7
- Definição dosTempos
de Preparo Dependentes da Seqüência - Problema l .Tabela A.8 -
Máquinas
e Recursos Adicionais -Problema
2 ... ..Tabela
A.9
- Definição das Operações -Problema
2 ... ..Tabela
A.l0
- Definição dosTempos
de Preparo Dependentes da Seqüência - Problema 1\
-4
1.
Introduçao
Problemas de escalonamento ocorrem
em
praticamente todas as áreas, nas mais variadasformas, e sua resolução sempre é muito importante.
Nao
se poderiam fazer cirurgiasem
um
hospitalsem
que se decidisse, anteriormente,em
que salas seriam feitas as operações.Não
seriam obtidos osmelhores resultados se,
em
um
sistema de computadores, não houvesse forma de decidir a tarefa aser executada, quando, e por quanto tempo.
Podemos
ver,com
estes simples exemplos,que
problemas de escalonamento aparecem
em
muitas áreas e de fom1as bastante variadas.Sua
resolução, contudo, não é
uma
tarefa trivial. Por exemplo, a tarefa de alocar250
salas de hospitalaos mais variados tipos de pacientes, enfermeiros, aparelhagem, e assim por diante,
não
é fácil.Não
é simples manter 50 engenheiros de software trabalhando juntos
em
um
projetocomum.
Da
mesma
forma,
não
é trivial a tarefa de decidir,em uma
fábrica, que operaçõesdevem
ser executadasem
quais máquinas, quais os recursos a serem utilizados e
em
que ordem, para a construção deum
determinado
número
de partes desejadas. Escalonamento requer que se leveem
contaum
grandenúmero
de informações a respeitodo
problema a ser tratado.Ainda
no
exemplo da fábrica, é precisosaber das relações entre as variadas operações a serem executadas para
uma
parte a ser construida,as relações entre as variadas partes que
compõem
o
produto final, os processos a que cada partedeve ser submetida, que máquinas são necessárias para cada operação, quando estas
máquinas
precisam parar para manutenção, que recursos são necessários e estão disponíveis para a realização
de cada etapa do projeto, e assim por diante.
Também
não
é dificil concluir que é damaior
importância que se resolvam estes problemas de
forma
prática e eficiente.Um
erro qualquer, pormenor
que seja,pode
ser a diferença entreum bom
eum
péssimo resultado. Seo
paciente foimandado
parauma
determinada sala para que fosse feita a cirurgia, enquanto o médico foimandado
a outra, é bastante óbvio que o resultado nao seria dos melhores.
A
Nesta dissertação,
um
tipo específico de escalonamento será tratado:o
escalonamentodo
tipo job-shop. Poder-se-ia traduzir isto
como
“chão de fábrica”,mas
com
algum
receio de seruma
interpretação muito vaga, pois job-shop, na verdade, é
um
tipo específico de chão de fábrica,conforme será visto no próximo., capitulo.
Além
de escalonamento, isto é, a decisao doque
seráfeito, onde, e quando, -precisa-se tomar outras decisões, por exemplo,
como
algo deve ser feito(planejamento). Neste trabalho, abordar-se-á especificamente o problema de escalonamento de
tarefas. ' Planejamento
também
será feito,mas
deuma
formamenos
específica.H
Muito
já foi pesquisadocom
relação a este tipo de escalonamento, ou variações deste.De
acordo
com
WALL
[l], métodos de planejamentoou
escalonamento jávêm
sendo pesquisadossistemas de escalonamento condizentes
com
a dificuldade do problema.Em
alguns casos, garante-seque
uma
solução ótima será obtida,mas
não garante-se que isto ocorrerácom
a necessária rapidez(métodos ótimos).
Em
outros casos, pode-se garantir queuma
resposta será alcançada dentro deum
espaço limite de tempo,
mas
não se tem garantias de que sejauma
solução ótima (métodos deaproximação) [2].
Em
muitos casos, inclusive, acharuma
solução apenas viável já éuma
tarefa dasmais dificeis [1]. Isto porque problemas de escalonamento são NP-dificeis.
Em
outras palavras,ainda não se desenvolveu
um
algoritmo capaz de encontrar soluções ótimasem
tempo
polinomial.Um
pequeno
exemplo
deFRENCH
[3] é o de quatro rapazes tentando acharuma
maneira de todoslerem quatro jomais diferentes, dadas
uma
série de restriçoes (do tipo PessoaA
sópode
ler o Jornal2
depoisque
ler o Jornal I, e assim por diante). Para estas quatro pessoas, mais de330
milpossibilidades diferentes existem. Se
um
computador
pudesse verificar 1000 destas possibilidadespor segundo,
o
que é, até certo ponto, otimista,o tempo
necessário seria torno de cinco minutos emeio. Parece fácil,
mas
se o problema fossemodificado
para incluir apenas maisum
leitor, otempo
que o
computador
levaria para checar as possibilidades ultrapassaria 57 horas.Como
comparação,os problemas clássicos de escalonamento job-shop normalmente estudados
têm
mais de 10 máquinase 10 tarefas. Qualquer problema mais realista,
como
os que serão tratados nesta dissertação,facilmente extrapola estes
números
(um
dos problemas realistas que será tratado aqui inclui mais de500
operações a serem executadasem
mais de 80 unidades de máquinas e recursos adicionais).Métodos
de procurado
tipo força-bruta estão, obviamente, descartados. Já métodos heurísticos deprocura funcionam
bem
em
problemas de otimizaçãoquando
a complexidade é menor,mas também
falham
quando o
espaço de procuratem
muitas dimensõesou
é muito vasto [4].Algoritmos genéticosvsão ideais para a resolução de problemas NP-difíceis, por serem
um
método
aomesmo
tempo
forte e fraco [5].Fracos
no
sentido de seremamplamente
aplicáveis, istoé, aplicáveis,
sem
grandes modificações, auma
grande variedade de problemas, nas mais variadasáreas.
Por
outro lado, sistemas fortes são, geralmente, aqueles que necessitam deum
grandenúmero
de informações específicas sobre o problema e
o
domínio a serem tratados, isto dando-lhes maiseficiência
em
seus métodos de busca. Algoritmos genéticos, pordemandarem
queo
problema a serresolvido seja “traduzido” para
uma
formacom
a qual estespossam
lidar, atingem a força e aampla
aplicabilidade desejáveis
em
problemas de escalonamento. Elestêm
sido usadosem
problemas deescalonamento desde 1985,
quando
DAVIS
[6] publicouo
primeiro artigo unindo teoria deescalonamento job-shop e
um
algoritmo genético básico.Uma
infinidade de artigos publicados mostra que vasta pesquisatem
sido feita na aplicaçãode algoritmos genéticos a problemas de escalonamento, algumas demonstrando mais sucesso
que
outras.
Em
muitos casos, algoritmos genéticos são usados juntamentecom
outros métodos paraa tratar problemas de escalonamento clássicos que, senão irreais, são demasiadamente simples
devido ao grande
número
de restrições impostas.DORNDORF
ePESCH
[10] sugerem que, paraproblemas de escalonamento, os algoritmos genéticos sejam usados
em
sistemas híbridos,incorporando métodos altemativos de busca local para que se
obtenham
soluçoes de maior qualidade[10].
Ao
mesmo
tempo
que não se discute a validade desta afirmação, nesta dissertação tentar-se-ámostrar que
um
algoritmo genético puroobtém
resultados satisfatórios para problemas deescalonamento, tanto clássicos
como
reais.Tendo
sido usadosofiware
matemáticoamplamente
disponível
(MATLAB®),
mostra-se que não são necessários sistemas computacionais altamenteespecializados para resolução de problemas de escalonamento
com
algoritmos genéticos. Para talfim
foram
implementadas, sobreuma
toolbox genética já existente,uma
série de modificações erotinas adicionais, de
forma
quepossam
ser tratados tanto os problemas clássicos,como
algunsproblemas reais, propostos por
CÂNDIDO
[2];V
A
dissertação está organizada da seguinte forma: no segundo capítulo será caracterizado,com
maior rigor, o problema de escalonamento job-shop.Também
serão mostrados,com
um
pouco
mais de detalhe, métodos já utilizados na resolução destes problemas.
No
final destemesmo
capítulo, os problemas reais propostos serão analisados
No
terceiro capítulo, os algoritmosgenéticos e suas peculiaridades serão descritos, enquanto o quarto capítulo apresentará o sistema
proposto.
O
quinto capítulo trará os resultados obtidosem
testescom
os problemas clássicos ereais.
No
sexto capítulo, fazem-se as conclusões e considerações finais.Nos
anexos estãodisponibilizados
os
diagramas defluxo
das rotinas criadas e utilizadas, "além das descrições dosproblemas tratados.
'
2.
Escalonamento
2.1.
Definiçao
do
Problema
Clássico
O
problema de escalonamento,em
geral, é descritocomo
sendo a alocação de recursos aoperações (pertencentes a certas tarefas) durante
um
dado
espaço de tempo, respeitandouma
sériede restrições, para que se alcance
um
objetivo final. Esta definiçao faz uso dos termos maisimportantes
em
se falando de escalonamento, apesar de ser bastantevaga
epouco
descritiva.Evoluindo a partir dela, chegaremos a
uma
definição bastante mais precisa e descritiva. Recursossão, geralmente, máquinas, materiais, aparelhos, salas, pessoas, e qualquer outra coisa que precise
ser usada para que se complete
uma
dada operação.As
tarefas são compostas deuma
série deoperações que, juntas,
completam alguma
parte daquilo que precisa ser feito.As
restrições dizemrespeito a todo o tipo de limitações que são impostas à execução destas operações, como, por
exemplo, o fato de duas operações pertencentes à
mesma
tarefa nãopoderem
ser executadas aomesmo
tempo,ou
o fato deuma
máquina
só poder processaruma
operação por vez. Finalmente, oobjetivo diz respeito à
meta
que se pretende atingir, por exemplo, que recursos deum
certo tiposejam
minimamente
utilizados,ou
que se minimize otempo
total de funcionamento do sistema.Tendo
estavaga noção do
problema a ser tratado,podemos começar
a definircom
maisprecisão
o
que é escalonamento, e, mais especificamente, o que é escalonamento do tipo job-shop.Começaremos
com
a definição dos problemas clássicos, para depois tratarmos dos casos maisrealistas a serem abordados nesta dissertação.
FRENCH
[3] lista as imposições que normalmente são utilizadasno
tratamento de problemas de escalonamento. Muitos autoresusam
variações destasregras [1 1, 12], algumas das quais incluímos na lista a seguir.
1.
Cada
tarefa éuma
entidade independente, isto é, duas operações pertencentes àuma
mesma
tarefanão
podem
ser executadas simultaneamente, e não existem relações deprecedência entre operações de tarefas diferentes.
2.
Uma
vez iniciadauma
operação, esta precisa ser executada até que termine: o sistema é não-preemptivo.3.
Cada
tarefatem
omesmo
número
de operações, sendouma
operação por máquina.Em
outras palavras, não se permite que duas operações de
uma
mesma
tarefa sejamexecutadas
na
mesma
máquina, e não se permite a possibilidade deuma
tarefa não ternenhuma
operaçaoem
alguma
máquina.4.
Não
existe cancelamento.Todas
as tarefas precisam ser executadas até que estejam completas.5.
Os
tempos de processamento das operações independem das operações previamenteescalonadas.
Ou
seja, os tempos de preparo demáquina
(setup) são independentes daseqüência de operações, e tempos de transporte entre máquinas são ignorados.
6. Tarefas não precisam ser executadas continuamente, isto é, não é necessário que todas as
operações de
uma
tarefa sejam executadassem
intervalo entre elas.7.
Nao
existem restrições quanto ao horário de início de cada operaçao,ou
seja, respeitadasas relações de precedência, todas as operaçoes
podem
ser executadas a partir do início,quando
o processo de escalonamento inicia.8.
Só
existeuma
máquina
de cada tipo.9.
Máquinas
podem
flcar ociosas.l0.Máquinas nao
podem
processar mais deuma
operaçao por vez.i ll.Máquinas nunca
quebram
eficam
disponíveis durante todo o processo._ l2.Limitações tecnológicas são conhecidas de
antemão
e imutáveis.13.Todo
o sistema é determinístico.O
número
de tarefas é conhecido e constante, onúmero
de
máquinas
é conhecido e constante, os tempos de processamento são conhecidos econstantes.
Além
disto, todas as outras quantias quedefinem
o problema sao conhecidas e constantes._
Não
é dificil vercomo
muitas destas restrições são irreais, ou,no
mínimo, muito vagasem
se tratando de problemas
minimamente
realistas.Um
sem-número
de possibilidades são ignoradascom
estas restrições. Por exemplo, a possibilidade de se fazer serviços demontagem,
onde duaspartes são construídas simultaneamente e depois
montadas
junto.Máquinas
que nuncaquebram ou
que
nunca tenham
que ser submetidas a serviços demanutenção
são obviamente desejáveis,mas
absolutamente irreais. Estas são algumas das restrições que não serao observadas nos casos
realistas a serem analisados'mais adiante neste trabalho.
Matematicamente, a definição do problema clássico de escalonamento do tipo job-shop para
minimização do
tempo
total de execução das tarefas pode ser feita conformeHUSBAN
DS
[l3].São
dados
um
conjuntoJ
de tarefas,um
conjuntoM
de máquinas, eum
conjuntoO
de operações. Paracada operação
p e
O
existeuma
tarefa jpE J
à qual esta operação pertence, euma
máquina
mp
6
M
na qual esta operação precisa' ser processada porum
tempo
t,,e
N.
Existetambém
uma
relaçãobinária
¬›
de ordenamento temporal sobreO
quedecompõe
o conjuntoem
redes de ordenamentoparcial correspondente às tarefas. Isto é, se
x
¬\ y, então j,,=
jy, e não existeum
z¢x,
z¢
y, quefaça
x
-› zou
z-›
y.Em
outras palavras, o operador-›
determina a seqüência a ser seguida naexecução das operações de
uma
tarefa. Utilizando a função objetivo de minimização dotempo
necessário para completar a execução de todas as tarefas, o problema consiste
em
acharum
tempo
max,
E o(s,,+
tp)seja minimizado sujeito às seguintes restrições:
t,,
2
0,Vp
6
O
sx - s,._ 21,,
sey
¬>x,
x,y é'Ô
(s,- - s¡ 2t¡) v(s¡ - s,- 2t¿), se m,-
=
m¡, í,j e'O
Além
do escalonamento do tipo job-shop definido acima, muitas variações deste sãoabordadas na literatura.
Sendo
o escalonamento job~shop o mais geral e maiscomplexo
de todos osproblemas tradicionais de escalonamento [13], muitas vezes usam-se casos particulares deste
em
trabalhos.
Os
casos maiscomumente
tratados são os de escalonamento open-shop [12] eflow-shop
[l4, 15, l6].i.
Em
escalonamento do tipo open-shop, a grande diferença é que
não
existeuma
ordem
queprecise ser respeitada na execução das operações de tarefas.
Não
existe, isto é, qualquer relação deprecedência entre as operaçoes de
uma
mesma
tarefa. Este tipo de escalonamento nao é tao estudadocomo
os outros dois casos, apesar de ser muito importante, poismodela
um
grandenúmero
deproblemas comunsl.
Em
se tratando de escalonamentodo
tipoflow-shop,
a diferença é que asoperações precisam ser executadas na
mesma
seqüência para todas as tarefas.Ou
seja, as relaçõesde precedência entre operações são as
mesmas
para todas as tarefas.Um
exemplo
disto éo
procedimento de
pouso
para aviões: todos os aviões que precisam pousarem
um
determinado localdevem
executar exatamente0
mesmo
procedimento. Apesar destes problemastambém
seremsignificativos, apenas serão abordados nesta dissertação os problemas de escalonamento
do
tipo job-shop, justamente pelo fato dos outros dois serem casos especiais deste.
Como
já foi dito, os problemas clássicosfazem
uso deuma
série de suposições queacabam
por tomá-los demasiadamente simples. Eles não são representativos da grande maioria de problemas
de escalonamento que ocorrem na realidade. Apesar disto, serão tratados nesta dissertação
como
forma
de avaliação dodesempenho
deste trabalho. Isto se faz necessário porque a grande maioriados trabalhos de pesquisa aborda apenas os problemas clássicos. Nesta dissertação, serão
apresentados tanto algoritmos que lidam
com
problemas' clássicos quanto algoritmos para otratamento de problemas mais realistas, sugeridos por
CÂNDIDO
[2]como
problemas a seremutilizados para testes de sistemas que tratam de escalonamento realístico. Muitos problemas
clássicos, dos mais variados tipos e tamanhos, dentre os quais serão selecionados alguns para
'
Como
exemplos,FANG
et al. [l2] cita operações de manutenção ou consertosem
automóveis, ou tarefasde upgrade
em
computadores, onde as operaçõespodem
ser executadas de forma independenteuma
daavaliação deste trabalho, estão compilados
em
uma
biblioteca virtual para pesquisa operacionalmantida por
BEASLEY
[65].Na
definição matemática dada acima, considerou-se que o objetivo a ser atingindo era aminimização do
tempo
necessário para execução das tarefas.Apesar
deste objetivo sero
que maisfreqüentemente aparece na literatura, é preciso que se
definam
outros, pois, muitas vezes,combinações de objetivos são usadas. Por exemplo, pode-se querer minimizar o
tempo
de execuçãoe
também
o custo associado a esta execução.Na
seção seguinte, serão apresentados os modelos deavaliação mais freqüentemente utilizados.
2.2.
Critérios
de
Avaliaçao
Aqui
serão apenas listadas as métricas de avaliação maiscomuns
esem
o rigor matemáticoque
pode
ser encontradoem
[3]. Vale a pena ressaltar que estas métricas de avaliação são aplicáveisaos três tipos de problemas de escalonamento descritos na seção anterior. Basicamente, existem três
tipos diferentes de critérios de avaliação para escalas.
Os
critériospodem
ser divididos entre aquelesbaseados
em
tempo
de término, prazos de entrega,ou
custos de utilização e inventário. Dentro decada
uma
destas categorias, as medidas (critérios)podem
ser ainda divididas entre regularesou
não.Nos
bastarámantermos
clara a idéia de queuma
medida
regular de performance não pode sermelhorada atrasando-se a execução de
alguma
tarefaz.`
Dentre os critérios baseados
em
tempos de término de operações ou tarefas, destacam-sequatro.
O
tempo
máximo
queuma
tarefa leva para completar execução(maximum
flow-time), istoé, o
tempo
decorrido desdeque
a tarefa está pronta para ser processada até seu término, consideraque o custo do processo está diretamente relacionado
com
otempo
que se leva para executar a tarefamais longa.
Sem
se levarem
conta os prazos de liberação das tarefas (restriçãonúmero
sete daseção anterior), esta
medida
é igual aotempo
total de produção, otempo
decorrido entre o iniciodo
processo e o término da última tarefa
(maximum
completion-timeou
make-span). Igualmente, pode-se levar
em
consideração as médias destas duas medidas.Em
outras palavras, considera-se que ocusto do processo está diretamente relacionado ao
tempo médio
que as tarefas levam desde que sãoliberadas até seu término
(mean
flow-time),ou
otempo médio
que as tarefas precisam para estaremconcluídas
(mean
completíon-timeou
make-span). Estas quatro medidas de performance sãomedidas regulares. À'
Em
muitos casos, as tarefastêm
prazos de entrega pré-definidos (due-dates),ou
seja,um
prazo dentro do qual elas precisam estar concluídas, geralmente sendo punidas por atraso.
Medidas
óbvias de avaliação neste caso levam
em
conta a diferença detempo
entre o prazo de entrega dasprejuízos se completada antes
do
seu prazo de entregas. Por isto, duas medidas diferentespodem
serconsideradas aqui:
uma
que somente levaem
consideraçao o atraso (entrega estritamente após oprazo definido), e outra que leva
em
contatambém
o adiantamento deuma
tarefa (entrega antesdo
prazo definido, o que pode ser
bom
ou
ruim). Estas tantopodem
ser quantitativas, isto é, variar deacordo
com
o
quanto se atrasou, quanto qualitativas, ondeum
atraso deum
segundoou
deum
século é igual
(um
exemplo
seriaum
avião que, não pousando antes do prazo de término decombustivel, tanto faz se pousa
uma
hora ou dez dias atrasado, as conseqüências são as mesmas).Neste caso, pode-se apenas levar
em
conta onúmero
de tarefas atrasadas,sem
se considerar oquanto cada
uma
atrasou.Já
em
se tratando de custos associados à utilizaçãoou
inventário, pode-se levarem
conta onúmero
de tarefas ociosas (aquelas que nãotenham
nenhuma
operação sendo executadaem
um
dado
momento), à espera de que
máquinas
sejam liberadas para ,continuarem o processamento;ou
onúmero
de tarefas nao completadasem
um
determinadomomento,
o que afetaria custos de se manterinventário durante o processo. Pode-se escolher,
também, maximizar
onúmero
de tarefasem
operação
em
um
determinadomomento,
para reduzir otempo
ocioso das máquinas, possivelmentemelhorando a produtividade.
Pode-se ver que as formas de se avaliar
uma
ordem
de processamento são muitas e queavaliam diferentes partes
do
processo.Em
muitos casos, por esta razão, utilizam-se combinaçõesdestas medidas, para que se possa ter
uma
idéia maisampla
do que está sendo feitono
sistema. Porexemplo, pode-se tentar reduzir
o tempo
máximo
de conclusão das tarefas aomesmo
tempo
em
quese procura
maximizar
a utilizaçao deuma
dada máquina.Também
nao
é raro encontrarem se casosem
que estas medidas de avaliaçãopossuem
pesos de acordocom
a importância de cadauma
(isto é,cada
uma
das medidas é apenasuma
parte do custo total finaldo
processo);ou
em
que cadauma
dastarefas possui
um
peso diferentena
avaliação do processo.2.3.
Métodos de
Resolução
A
literatura disponível deixa claro que problemas de escalonamento, tanto clássicoscomo
realistas, já
foram
abordadoscom uma
variedade de métodos, alguns dos quais mostrando melhoresresultados que outros.
Conforme
já foi dito, o problemavem
sendo estudado, mais detalhadamente,desde os anos 60 [l].
Métodos
matemáticos, regras de despacho (dispatching rules), métodosbaseados
em
simulações, métodos baseadosem
inteligência artificial, heuristicas, e ainda,recentemente, paradigmas multi-agente de inteligência artificial distribuída são algumas das formas
2
Esta propriedade de alguns critérios de avaliação será útil para limitarmos o espaço de busca do algoritmo
utilizadas para a resolução de problemas de escalonamento
em
geral [7].Aqui
serão apresentadasalgumas destas abordagens, divididas de acordo
com
o tipo demétodo
utilizado, a saber, métodosexatos
ou
heurísticos. AOs
métodos heurísticospodem
ser, ainda, subdivididosem
estocásticos edeterminísticos [l].
No
final desta seção, apesar de ainda não termos entradoem
detalhes sobrealgoritmos genéticos (capitulo 3), apresentaremos algumas justificativas para o uso destes
em
problemas de escalonamento. Vale a pena mencionar que aqui não será feito
um
estudo exaustivodos métodos de resolução utilizados.
O
leitor interessado pode utilizar as referências mencionadas,ou
[2, 3, 9, 17, 18, 19, 20, 21, 22] paraum
estudo mais detalhado de alguns destes métodos.2.3.1.
Métodos
Exatos
Métodos
exatos são aqueles que sempreacham
alguma
solução (ótima) para o problemaproposto, ou, caso nao exista
uma
solução, geralmente daoalguma
indicaçao disto [1]. Paraescalonamento, os métodos mais
comumente
utilizados são o critical-pathmethod (CPM),
programação
linearou
de inteiros, e métodos enumerativos.Também
podem
ser utilizadosalgoritmos construtivos, que
compõem
soluções ótimas a partir das informaçõesdo
problema eseguindo
um
número
de regras pré-determinadas [3].O
método
CPM
sempre
acha omenor
prazo deexecução para
um
determinadonúmero
de tarefas a serem escalonadas,mas não
levaem
consideração restrições temporais
ou
materiais, limitando, assim, sua aplicabilidade [1]. Já osalgoritmos construtivos são aplicáveis a
uma
quantidademínima
de problemas, geralmente pequenose bastante restritivos quanto a
tempos
de processamento de tarefas [3].Métodos
deprogramação
linearou
de inteirostambém
requerem que muitas simplificaçõessejam adotadas nos problemas para
que
estespossam
ser resolvidos.Além
disto, não são facilmenteadaptáveis a variações no
tamanho
dos problemas, sendo utilizados apenasem
problemas depequeno porte [l].
DAVI$
[6] já haviamencionado
que problemas de escalonamento reais,com
suas muitas restrições e imposições, não são de fácil resolução por métodos matemáticos utilizados
em
pesquisa operacional.Conforme
FRENCH
[3], apesar destes métodos (deprogramação
deinteiros, por exemplo) parecerem bastante promissores
no
tratamento de problemas deescalonamento, na realidade eles não são. Gerahnente, faz-se
uma
tradução do problema deescalonamento para
um
formato que possa ser resolvido através de programas matemáticos.Contudo, e isto é que faz a diferença, este tratamento por métodos matemáticos não é,
em
nada, maisfácil que a resolução do problema original [3].
Entre os métodos enumerativos destacam-se as árvores de busca e técnicas de
programação
dinâmica.
Como
seunome
deixa claro, métodos enumerativos resolvem os problemas listando todas3
Um
exemplo disto é o método de trabalho de algumas fábricas de computadores que apenas
montam
oscomputadores para entrega direta ao consumidor final, evitando que tenham gastos
com
armazenamento deas possibilidades e eliminando as opções não-ótimas.
Em
métodos deenumeração
explícita, todas aspossibilidades são listadas e depois se faz
o
cancelamento daquelas que não são apropriadas.Procedimentos de busca
em
árvores, assimcomo
alguns dos métodos apresentados acima, não sãoaplicáveis a problemas de grande porte.
O
aumento
desenfreado dotamanho
da árvore de buscacom
pequenas adições ao problema
toma o método
muito demorado. Geralmente utilizam-se heuristicaspara limitar o
tamanho
destas árvores, permitindo, assim, a resolução de problemasum
pouco
maiores [1]
(mas
ainda limitados secomparados
a problemas reais de escalonamento). Outrométodo
enumerativo,mas
implícito (isto é, quenao
explora, explicitamente todas as possibilidades),é o
chamado
branchand
bound. Estemétodo
utilizauma
estratégia de procura especializada, quepode
determinar queum
certo ponto da árvore seja cortado por não apresentar características«z
dese J aveis, limitando, assim, o tem o necessário ara terminar a busca. Contudo, é
im
ortante notarque, nos piores casos, esta
enumeração
implícita setoma
uma
simplesenumeração
explícita [3].Mesmo
nos melhores casos, onde grande parte da árvore de busca é podada, otempo
necessário paraexecução é bastante grande, devido à grande quantidade de variações nas escalas geradas que
precisam ser analisadas [l2].
Programação
dinâmica, secomparada
àenumeração
completa, é muito mais rápida.A
maior diferença é causada pelo simples fato de métodos de enumeração completa gerarem toda a
árvore de busca, para só depois
começar
a eliminar galhos. Já os métodos deprogramação
dinâmicavão
eliminando possibilidades àmedida
que a árvore é construída. [3]. Isto fazcom
que o
tempo
deresolução
do
problema diminua bastante. Contudo, métodos dinâmicos apresentam outro problema.Como
estes métodos precisam guardar,em
memória,um
grandenúmero
de valores intermediários ['1'j¬ Os U'usados nos cálculos, a necessidade de
memória
computacional aumenta. vio que, hojeem
dia, amemória
de computadorespode
ser considerada infinita, mas, para que estamemória
seja infinita, épreciso que se utilizem meios
com
métodos de acesso lentos (secomparados
com
métodos de acessode
memória
interna), nos remetendo de volta ao problema de métodos deenumeração
completa(tempo).
FRENCH
[3] considera 25como
sendo onúmero
máximo
de tarefasem
um
problema deescalonamento para que este possa ser resolvido por métodos de programação dinâmica.
2.3.2.
Métodos
Heurísticos
_A
palavra heurística significa “algo que serve para encontrar”, o que não éuma
definiçãomuito precisa.
Em
muitos casos, a palavra é usadacomo
o oposto de algoritmicdi, e,em
se tratandode métodos de busca, para descrever qualquer função que estime o custo de
uma
solução [20].Heurísticas,
ou
métodos de aproximação,podem
ser descritascomo
sendo regras de escolha quecontrário dos métodos exatos, os métodos baseados
em
heurísticas não garantem queuma
soluçãoótima será encontrada,
mas
simuma
soluçãoboa
[36]. Estes métodos heurísticospodem
serdivididos
em
dois grupos: os estocásticos, que utilizam operações probabilistas (de forma quepodem
nunca
operar damesma
formaem
um
problema), e os determinísticos, queoperam
sempre damesma
forma
para cada problema.Também»
são utilizados métodos hfiaridos,com
resultados bastantevariados [7, 8, 9, 23].
Em
se falado de métodos determinísticos, geralmente a heurística é definidacomo
uma
regrade prioridade a ser utilizada para a escolha de
uma
dentreum
conjunto de operações ainda nãoescalonadas [1 l]. Heurísticas de escalonamento determinam
quando
uma
tarefa (ouuma
operaçãode
uma
tarefa) deve ser executada. Heurísticas de seqüenciamento determinam aordem
em
que astarefas
devem
ser executadas. Estas são geralmente utilizadasem
conjuntocom
árvores de busca edetemiinam
que
partes da árvoredevem
ser ignoradas e que partes da árvoredevem
ser expandidas.Já heurísticas hierárquicas consideram vários níveis de prioridade para
poderem
atingir váriosobjetivos
ao
mesmo
tempo
[l].O
exemplo maisfamoso
do uso de heurísticas determinísticas éo
Shzfting Bottleneck
Procedure
[18]. Neste procedimento, a cada iteração,um
sub-problema (queassume que
o problema écomposto
de apenasuma
máquina) é resolvido otimamente, sendo depoisre-otimizadas as seqüências de operações determinadas
em
iterações anteriores.HOLTHAUS
[19]apresenta
um
estudo onde, de acordocom
ameta
a ser atingida (0 critério a ser considerado paraavaliação), são criadas combinações de regras de prioridade que tendem a melhorar os resultados.
Já
CASKEY
eSTORCH
[17] concluem que a maioria das regras de prioridadecomumente
utilizadas são satisfatórias para minimização de atrasos, sendo que combinações de várias regras
não demonstraram
surtir grande efeito nos resultados.Em
[22],um
algoritmo heurístico é propostopara a resolução de problemas de escalonamento
com
tempos de preparo dependentes da seqüênciaescalonada.
KUMAR
eSRINIVASAN
[24]fazem
um
estudo utilizando algoritmos genéticos eregras de prioridade.
As
seis regras de prioridade mais estudadas na literatura (mais de 100 jáforam
estudadas) são apresentadas a seguir [3].
0
SPT
- Shortest ProcessingTime
- seleciona aquela operação que tem omenor tempo
deprocessamento;
0
FCFS
- FirstCome
First Served - seleciona as operações a serem escalonadas naordem
em
que elas entraramno
sistema;0
MWKR
-Most
Work
Remaining
- seleciona operações da tarefa que tem o maiortempo
de processamento total restante;
4
Apesar disto não estar inteiramente correto,
uma
vez quemesmo um
método heurístico pode utilizar0
LWKR
- LeastWork
Remainíng
- seleciona operaçoes da tarefa que tem omenor tempo
de processamento total restante;
0
MOPNR
-Most
OperationsRemaíning
- seleciona operações da tarefa quetem
o maiornúmero
de operações a serem escalonadas; '0
RANDOM
- seleciona operaçoes aleatoriamente.Estes métodos determinísticos são bastante efetivos na resolução de problemas
combinatórios de
menor
complexidade,mas
ainda assim falhamcom
grandes espaços de buscaou
quando
estes são multi-dimensionados.Os
problemas precisam, então, ser simplificados, confinandoo espaço de busca e
tomando
o sistemamenos
flexível [4]. _i
Métodos
heurísticostambém
incluem métodos estocásticos, dentre os quais se destacammétodos
que
utilizam inteligência artificial, algoritmos genéticos, simulações de processos fisicos,entre outros.
Métodos
como
sistemas especialistas,ou
sistemas baseadosem
conhecimento, sãoaltamente especializados e requerem
uma
grande quantidade de informações a respeitodo problema
a ser resolvido, de forma que se
tomam
bastante especificos paraum
dado
tipo de problema [l].Métodos
de procura baseadosem
melhorias iterativas incluem os procedimentos conhecidoscomo
hill-climbing e símulated annealing (têmpera simulada).O
procedimento de hill-clímbingsincorpora
um
sistema de laços de programação que continuamenteevoluem
na direção deum
valorcrescente (melhorando, a cada iteração, o resultado desejado).
São
três as maiores limitações destesmétodos, de acordo
com
RUSSEL
eNORVIG
[20].Máximos
locaisparam
o algoritmo, fazendocom
que
se interrompa a procuraem
posiçõesque
podem
estar bastante distantesdo
desejado.Platôs são áreas do espaço de busca onde os valores da fiinção de avaliação
formam
um
plano.Neste caso, a procura se
toma
igual auma
busca aleatória. Picos são locais ondeuma
mudança
deposição, por
menor
que seja,pode
significar estardo
outro lado da curva, fazendocom
que se percamuito
tempo
sem
evoluçãopara
valores melhores.Com
estas limitações, o algoritmo chega aum
ponto
em
que não seobtém
maior rendimento. Neste caso, pode-se fazer duas coisas: reiniciar deum
ponto diferente, ou permitir que se desçaum
pouco, para depois continuar a procura (piorar paramelhorar). Esta descida é que define o processo conhecido
como
simulação de annealing (têmpera,ou
recozimento). Permite-se que o algoritmo piore a função de avaliação(mudando
de posiçãono
espaço de procura), para depois continuar procurando a partir deste
novo
ponto.2.3.3.
Algoritmos
Genéticos
No
capítulo seguinte, os algoritmos genéticos serão descritosem
detalhe. Nesta seção,apenas justificaremos as opções pelas quais eles
foram
escolhidos para este trabalho.Conforme
jáfoi dito, escalonamento do tipo job-shop é
um
dos mais dificeis dos problemas de escalonamento.5 Escalada de
U
Além
disto. Grande parte dos problemas de escalonamento são considerados NP-dificeis [3]. Istodescarta a possibilidade de se utilizar métodos exatos na resolução de problemas
minimamente
complexos.
Na
seção anterior vimos alguns métodos que, porum
motivo ou outro, poderiam serutilizados na resolução destes problemas, especialmente os métodos heurísticos estocásticos.
Técnicas de inteligência artificial são mais úteis
que
métodos convencionais quando não sepode
representar
o
domíniodo
problema utilizando métodos matemáticos [4], justamenteo
caso dosproblemas de escalonamento [6]. Técnicas de busca
que fazem
uso de heurísticas para limitaro
tamanho
do espaço de busca não têm, sequer, a garantia de que encontrarão soluções aceitáveis,quanto mais boas
ou
ótimas. Técnicas que incorporam conhecimento específico a respeitodo
problema se
tomam
aplicáveis somente auma
determinada classe, limitando sua aplicabilidade [25].Problemas combinatórios similares,
como
oproblema do
caixeiro viajante, jáforam
resolvidos
com
sucesso através de algoritmos genéticos [26]. Algoritmos genéticos são bastanteflexíveis
no
aspecto de representação, pois o conhecimento a respeitodo
sistema que é preciso paraorientar a busca
pode
ser mantido separado da implementaçãodo
algoritmo propriamente dito. Istofaz
com
que, apesar de serum
método
geralmente descritocomo
fiaco,
isto é,um
método
quetem
ampla
aplicabilidade devido à generalidade, ele possa setomar
um
método
forte, isto é, bastanteespecífico [27].
Não
se sacrifica,em
outras palavras,ampla
aplicabilidade por poder de busca, enem
vice-versa. Elesunem
procura direcionada (fazendo uso de soluções boas já encontradas) eprocura estocástica [28], varrendo
o
espaço de busca aleatoriamente (mas não deforma
cega,sem
direção [29]) e eficientemente [30].
Ao
contrário demétodos
como
hill-climbing e simulatedannealing (que utilizam
uma
única solução durante a busca), os algoritmos genéticosfazem
uso deuma
população de possíveis soluções,aumentando
a rapidez e a eficiência da busca [3l], epermitindo
que
se explore as características desejáveiscomuns
a boas soluções.GOLDBERG
[29]resume
as quatro peculiaridades dos algoritmos genéticos:l. Algoritmos genéticos trabalham
com
uma
codificaçãodo
conjunto de parâmetros enão
diretamente
com
os parâmetros.2. Algoritmos genéticos fazem a busca
com
uma
população de pontos e nãocom
um
únicoponto.
3. Algoritmos genéticos
usam
informação derecompensa
(payofi), a função-objetivo, e nãoderivadas destas,
ou
conhecimento auxiliar.4. Algoritmos genéticos
usam
regras de transição probabilísticas e não determinísticas.A
força de busca dos algoritmos genéticos estáem
seus esquemas, partesdo cromossoma
que são
comuns
às soluções boas [32], e na maneiracomo
estesesquemas
tendem a crescer àmedida
que sua aptidão melhora. Já os esquemas que
demonstrarem
menor
aptidão tendem a desaparecer,genéticos,
HUSBAN
DS
[13] fazum
levantamento de usos de algoritmos genéticosem
problemas deescalonamento. e
TADEI
et al. [21] fazuma
comparação
entre vários métodos utilizados pararesolução de problemas de escalonamento.
Além
disto, referências auma
série de artigos utilizandoalgoritmos genéticos
com
escalonamento ou problemas combinatórios estão listados na bibliografia[2, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 22, 23, 24, 27, 3o, 31, 33, 34, 35, 36, 37, 38, 39,40, 63, 641.
2.4.
Construção de
Escalas
O
objetivo nesta seçãonão
é apresentarum
estudo compreensivo de métodos de construçãode escala.
O
objetivo, isto sim, é aprofundarum
pouco
o conhecimento a respeito das característicasde alguns algoritmos de construção de escala para poder, a partir daí, caracterizar algumas escolhas
que foram feitas para o projeto. Especificamente, trataremos de descrever três tipos de escalas:
escalas ativas (active schedules), escalas sem-atraso (non-delay), e escalas serni-ativas (semi-
active).
As
escalas sem-atraso sãouma
sub-classe das escalas ativas que, por sua vez, sãouma
sub-classe das escalas semi-ativas.
Escala Existente
Escalonamento
Semi-AtivoEscalonamento
AtivoMáquinas
E
E
E
tem po tem po tem po
,. /z / \`
ã
\\\ \s
~
Nova operação a serFigura
2.1 -Escalonamento Ativo
eSemi-Ativo
As
escalas semi-ativas são aquelasem
que todas as operações são escalonadas o mais cedopossível
após
as operações que já estão escalonadas, obedecendo, necessariamente, a todas asrestrições tecnológicas e a seqüência de processamento. Já escalas ativas são aquelas que garantem que
nenhuma
operaçãopode
ser iniciada mais cedosem
que isto atrase outra operação já escalonada,ou
viole as restrições do problema.Em
outras palavras, toda operação pode ser escalonadanuma
posição anterior às tarefas já escalonadas (respeitando as restrições), desde que isto não cause
um
atraso
em
alguma
destas operações já escalonadas.A
figura
2.1 mostra istocom
maior clareza. Jáescalas sem-atraso são aquelas
em
quenenhuma máquina permanece
ociosaquando
poderia estarprocessando