Reparação e Melhoramento Iterativo de Buscas de Serviço · um conjunto de recursos ao longo de...

69
Reparação e Melhoramento Iterativo de Buscas de Serviço Tiago dos Reis Carrapa Maduro Dias Dissertação para obtenção do Grau de Mestre em Engenharia Informática e de Computadores Júri Presidente: Prof. Ana Paiva Orientador: Prof. Ernesto Morgado Co-orientador: Doutor Ricardo Saldanha Vogais: Prof. João Pavão Martins, Prof. Fausto Almeida Novembro de 2008

Transcript of Reparação e Melhoramento Iterativo de Buscas de Serviço · um conjunto de recursos ao longo de...

Reparação e Melhoramento Iterativo de Buscas de Serviço

Tiago dos Reis Carrapa Maduro Dias

Dissertação para obtenção do Grau de Mestre em

Engenharia Informática e de Computadores

Júri

Presidente: Prof. Ana Paiva

Orientador: Prof. Ernesto Morgado

Co-orientador: Doutor Ricardo Saldanha

Vogais: Prof. João Pavão Martins, Prof. Fausto Almeida

Novembro de 2008

AbstractThe Rostering Problem deals generically with the assignment of resources to the execution of certain tasks

or sequences of tasks and is an integral part of the everyday life of several companies and public services.

This problem, and its variant Crew Rostering Problem (CRP) in particular, is of particular significance in

complex planning realities, like those of commercial airlines and railways. This is specially true in these days

of increased competition, which promotes the search for an optimised balance between the satisfaction of the

human resources and the efficiency of operation. In this work, a general definition for the CRP is presented

and several methods for solving the problem are proposed, employing techniques from Operations Research

(OR), Artificial Intelligence (AI) and a combination of both. This last hybrid method is of particular interest

because it shows the ability of combining the best of OR and AI to achieve both efficiency and great flexibility

with regards to the variety of rules it can represent, making it a likely candidate to be successfully applied to

several different realities. The proposed methods are tested on a large-scale instance, taken from real data,

of the CRP applied to railways. The obtained results improve significantly on those of a reference method

which, in turn, has already shown the capacity to produce results that are better by a large margin than those

produced manually by expert planners.

Keywords: artificial intelligence, combinatorial optimisation, crew rostering problem, mixed-integer linearprogramming, operations research.

i

ResumoO Problema de Planeamento de Escalas (PPE) lida, genericamente, com a afectação de tarefas ou sequên-

cias de tarefas a recursos e é uma parte integrante do quotidiano de muitas empresas e serviços. O problema,

em especial a sua variante para planeamento de pessoal, adquire particular importância em realidades de

planeamento complexas como a aviação comercial ou os caminhos-de-ferro, especialmente nos dias de hoje,

em que o aumento da concorrência coloca ainda maior ênfase na necessidade de se encontrar um balan-

ceamento eficaz entre a satisfação dos trabalhadores e a eficiência da operação. Neste trabalho, define-se

o PPE de forma geral e propõem-se vários métodos para a sua resolução, aplicando técnicas de Investi-

gação Operacional (IO), Inteligência Artificial (IA) e a combinação de ambas. Este último método híbrido

revela-se particularmente interessante, por se mostrar capaz de combinar as vantagens da IO com as da IA

para tornar possível resolver o PPE de forma eficiente mas igualmente com grande flexibilidade na variedade

de regras que permite modelar, sendo promissora a sua aplicação a realidades para além da estudada. Os

métodos propostos são testados com um problema de grande dimensão, baseado em dados reais, de pla-

neamento de longo-prazo de caminhos-de-ferro, e mostram capacidade para melhorar significativamente os

resultados obtidos por um método de referência que, por sua vez, já havia dado provas de obter resultados

muito superiores aos de planeadores humanos experientes.

Palavras-chave: inteligência artificial, investigação operacional, optimização combinatória, problema de pla-neamento de escalas, programação linear inteira-mista.

iii

AgradecimentosSaltando todos aqueles que, ao longo da história, criaram as condições técnicas e científicas para que

pudesse desenvolver o trabalho aqui apresentado e em cujos ombros me apoiei, não posso deixar de referir

algumas pessoas em especial, sem as quais certamente não teria percorrido esta distância.

Em primeiro lugar, agradeço aos meus Pais, pelo apoio que me prestaram ao longo de toda a minha vida,

em particular nos momentos de maior dúvida ou desalento. Uma palavra muito especial à minha namorada,

Cristiana, pela paciência, apoio, pelo carinho e, com destaque, pelos puxões de orelhas amiúde necessários.

Um agradecimento sentido ao meu orientador, o Professor Ernesto Morgado, pelo entusiasmo, compre-

ensão e, sobretudo, pela sabedoria que disponibilizou e a qual espero ter acolhido e feito minha, pelo menos

em parte. Uma palavra para os Drs. Carlos António e João Varanda, pela compreensão e motivação durante

todo o processo, ambas indispensáveis e reconhecidas. Um apreço particular também pelo Doutor Ricardo

Saldanha e pelos Drs. Jorge Roussado e Luís Albino, que sempre se disponibilizaram a esclarecer alguma

dúvida existencial e foram indispensáveis no processo criativo, ouvindo e criticando pacientemente.

Uma palavra para a SISCOG como um todo, pelas condições que proporcionou, indispensáveis para a

aquisição do conhecimento e realização deste trabalho.

Finalmente, obrigado ao meu irmão, Miguel, por muito e em especial por todas as vezes em que, perante

fases esmagadoras do trabalho, me ajudou a conseguir uma distracção completa, mesmo que momentânea.

v

Conteúdo

Abstract i

Resumo iii

Agradecimentos v

Lista de Figuras ix

Lista de Tabelas xi

List of Acronyms xiii

1 Introdução 1

2 Problema 3

2.1 Conceitos do Problema Generalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Enquadramento do Planeamento de Escalas . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.2 Escalas cíclicas e Escalas instanciadas . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.3 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.4 Factores de Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.5 Classes de Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Definição formal do PPE Generalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3 Classes do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.1 Administração Pública . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.2 Aviação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Caminhos-de-ferro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.4 Enfermagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Estado da Arte 15

3.1 Técnicas de Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 Procura Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.2 Programação Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2 Aviação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3 Caminhos-de-Ferro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.4 Enfermagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4 Proposta 21

4.1 Descrição do Problema a Resolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.1 Análise do Trabalho a Planear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.2 Regras e Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.1.3 Análise da Dimensão do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.2 Resolução por Melhoria Iterativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

vii

4.3 Abordagem ao Problema Completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.3.1 Conceitos Subjacentes ao Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3.2 Modelo base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.3.3 Modelo específico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.4 Resolução Iterativa por Sub-Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.5 Resolução por Relaxação Iterativa do Espaço de Estados . . . . . . . . . . . . . . . . . . . . 37

4.5.1 Estratégia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5.2 Modelo base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.5.3 Modelo para Cálculo de Descansos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.5.4 Afectação de Agrupamentos e Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5 Resultados 45

6 Conclusão 49

Bibliografia 51

viii

Lista de Figuras

2.1 Fases de planeamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Exemplo de escala cíclica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4.1 Distribuição do trabalho em períodos do dia. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2 Distribuição do trabalho ao longo do dia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Distribuição do trabalho ao longo da semana. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4.4 Pseudo-código para o algoritmo de melhoria iterativa. . . . . . . . . . . . . . . . . . . . . . . 28

4.5 Vista sobre um grafo hipotético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.6 Entradas e saídas incluindo o grafo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.7 Sumário do algoritmo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.8 Pseudo-código do algoritmo de melhoria iterativa de sub-problemas. . . . . . . . . . . . . . . 35

4.9 Pseudo-código para o processo de escolha das escalas a optimizar. . . . . . . . . . . . . . . 37

ix

Lista de Tabelas

4.1 Configuração da resolução dos sub-problemas. . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.1 Parametrização CPLEX para os métodos baseados na resolução do Problema Completo. . . . 45

5.2 Parametrização CPLEX para o método baseado na em relaxação do espaço de estados. . . . 45

5.3 Resultados com um problema com uma escala de 8 linhas . . . . . . . . . . . . . . . . . . . . 47

5.4 Resultados com um problema com três escalas num total de 36 linhas . . . . . . . . . . . . . 47

5.5 Resultados com um problema com 7 escalas num total de 82 linhas . . . . . . . . . . . . . . 47

5.6 Resultados com um problema com 15 escalas num total de 190 linhas . . . . . . . . . . . . . 48

5.7 Resultados com um problema com 23 escalas num total de 304 linhas . . . . . . . . . . . . . 48

xi

Lista de SiglasIA Inteligência Artificial

IO Investigação Operacional

PA Problema de Afectação

PCC Problema de Cobertura de Conjuntos

PIM Programação Inteira Mista

PPC Problema de Particação de Conjuntos

PPEC Problema de Planeamento de Escalas Cíclicas

PPE Problema de Planeamento de Escalas

xiii

1 Introdução

Uma empresa prestadora de transportes regulares, a enfermaria de um hospital ou um departamento típico

de administração pública, são três exemplos de realidades com propósitos e exigências distintas, mas que

convergem em pelo menos um factor relevante: a necessidade de projectar ou planear o trabalho dos seus

recursos, humanos e materiais, com o propósito de retirar destes um máximo rendimento para um custo

mínimo, um processo que envolve, normalmente, distribuir no tempo alguma representação dos factores de

interesse relacionados com o trabalho dos recursos.

Este problema, conhecido na literatura como Problema de Planeamento de Escalas (PPE), pode ser

visto como consistindo, genericamente, em encontrar a afectação óptima de elementos de planeamento a

um conjunto de recursos ao longo de vários dias, mediante tanto restrições operacionais como laborais e

sociais, no caso do planeamento de recursos humanos.

Os exemplos referidos de início servem para ilustrar como gestores das mais variadas actividades tratam

regularmente da resolução deste problema. Em certos casos, os elementos de planeamento serão períodos

de tempo em que um trabalhador estará a recolher bilhetes numa portagem. Noutros, corresponderão a

uma sequência de actividades cuidadosamente dispostas para obter o máximo rendimento do trabalhador

durante aquele período, como no caso de um maquinista no domínio ferroviário, onde as tarefas a realizar

podem chegar a ser especificadas ao minuto (ou ao segundo no caso de metropolitanos) e factores como o

tempo que o maquinista demora a atravessar uma plataforma podem ser determinantes na validade de uma

sequência de tarefas a executar. Alternativas como o clássico binómio trabalho/férias também podem ofere-

cer expressividade suficiente para o planeamento do trabalho num departamento de administração pública,

onde o objectivo é (ou devia ser) controlar a capacidade de resposta a variações de necessidades de esforço

ao longo dos meses de cada ano.

Pode-se, portanto, dizer que há uma grande variedade de classes de interesse que se enquadram na

definição apresentada. No entanto, como é fácil perceber, diferentes classes introduzem factores de com-

plexidade específicos. Em muitas destas realidades, a resolução do problema é trivial ou, pelo menos, tão

simples que tabelas criadas numa aplicação de folha de cálculo podem prestar apoio suficiente a uma reso-

lução eficaz. Já no caso de empresas de transportes em massa, como operadoras de caminhos-de-ferro,

aviação, metropolitanos ou redes de autocarros, o impacto de uma resolução optimizada do PPE pode ser

significativo, justificando um estudo aprofundado para encontrar a solução do problema combinatório implícito

ao PPE [KK04] [CTVF98]. De facto, os PPE mais interessantes têm sido propostos por este último mercado,

estando o presente trabalho orientado para ele, embora as considerações tecidas sejam apresentadas de

uma forma genérica o suficiente para permitir a sua aplicação a outras classes de interesse.

Podem-se sumarizar as contribuições deste trabalho em quatro vertentes principais:

• Definição do PPE generalizado, com uma visão geral das particularidades de várias classes de inte-

resse do problema como casos particulares;

• Proposta de um Modelo Linear Inteiro para o PPE generalizado;

• Estudo da aplicação do modelo a uma realidade complexa, extraída de dados reais, no contexto de um

processo de resolução faseada com recurso a relaxação do espaço de estados; e, relacionado com

este ponto,

1

• Apresentação de uma solução que conjuga técnicas de Investigação Operacional e Inteligência Artificial

para abordar a resolução de um PPE de grande dimensão.

O Capítulo 2 define o PPE de forma geral, enquadrando-o no âmbito de algumas classes de interesse

onde ele é aplicado. No Capítulo 3, são descritas as principais técnicas divulgadas na literatura para a

resolução automática do problema, sendo estas analisadas sob uma perspectiva global, dada a definição

inicialmente explicitada. Conjuntamente, é dada uma visão geral das técnicas empregues neste trabalho.

O Capítulo 4 apresenta um modelo para o PPE generalizado e um estudo sobre a sua aplicação a uma

realidade concreta de grande complexidade, retirada de dados reais, sendo os resultados obtidos descritos

no Capítulo 5. Um sumário, com as conclusões a que este trabalho levou, é apresentado no Capítulo 6. Neste

último capítulo são, também, analisadas algumas oportunidades de investigação futura, tanto no âmbito do

PPE como do desenvolvimento da solução proposta.

2

2 Problema

Ao contrário de outros problemas de planeamento, como o de planeamento de turnos, para o qual já existem

vários métodos de resolução interessantes na literatura, o PPE está longe de poder ser considerado um

problema resolvido, especialmente na sua forma de planeamento de Escalas Cíclicas (ver Secção 2.1.2),

como se torna óbvio seguindo o Capítulo 3. Historicamente, foram estudadas várias abordagens, com origem

em vários quadrantes de investigação, desde a Inteligência Artifical à Investigação Operacional. Algumas

destas abordagens obtiveram bastante sucesso, mas normalmente só em casos particulares do problema,

dificilmente podendo ser consideradas abordagens genéricas. O desafio proposto neste trabalho, é inferir, a

partir do trabalho já feito nesta área, uma aproximação eficiente ao PPE na sua forma mais geral, aplicável a

várias realidades.

Por forma a dar resposta ao desafio proposto, é útil, antes de mais, especificar com rigor esta definição

mais geral do PPE, para que o problema a resolver seja perfeitamente claro. Primeiro, são apresentados

vários conceitos relevantes relacionados com o PPE na Secção 2.1, que serve como uma introdução in-

formal ao problema. A Secção 2.2 especifica o problema, de forma rigorosa, tendo por base os conceitos

previamente explicitados. Na Secção 2.3, é estabelecida a relação entre os conceitos apresentados e as

classes de interesse mais específicas.

2.1 Conceitos do Problema Generalizado

Nesta secção, são apresentados vários conceitos relacionados com o PPE, vários dos quais serão explo-

rados de forma mais rigorosa no resto do trabalho. Em particular, na Secção 2.1.1 procura-se enquadrar

a resolução do problema nos processos de gestão de várias entidades, sendo introduzidas duas variantes

principais do PPE, descritas com maior detalhe na Secção 2.1.2. Na Secção 2.1.3, são referidos os principais

objectivos normalmente em foco na resolução de instâncias do PPE e na Secção 2.1.4, os parâmetros que

afectam a complexidade do problema. As regras validadas durante a resolução de instâncias do problema

são agrupadas em classes na Secção 2.1.5.

2.1.1 Enquadramento do Planeamento de Escalas

Admita-se a existência de um conjunto de actividades ou tarefas previamente calendarizadas (i.e., sabe-

se quando e onde deverão ser realizadas). O objectivo da resolução PPE é projectar quais os recursos,

humanos ou materiais, que estarão envolvidos na sua realização. Em realidades suficientemente complexas

(conjunto que coincide com as realidades de interesse para este estudo), esta projecção é feita sobre as

normalmente designadas escalas de serviço ou, simplesmente, escalas.

Escalas podem definir o trabalho que os recursos irão realizar durante períodos que variam desde alguns

dias a vários meses, sendo de destacar dois tipos fundamentais (detalhados na Secção 2.1.2):

• escalas abstractas, correspondendo a um plano base para um período alargado de tempo, em que de-

talhes particulares desse período são ignorados, tais como a existência de dias feriado que introduzam

alterações na operação; e

• escalas instanciadas, que definem o trabalho de recursos para dias de calendário concretos.

3

Em qualquer um dos casos, pode-se dizer que, no caso limite, o PPE tem como objectivo a afectação

de tarefas a recursos, isto pelo menos no plano teórico, já que, historicamente, e por forma a reduzir a

complexidade do problema, os elementos planeados no âmbito da resolução do PPE são muitas vezes o

resultado de um processo prévio onde são agrupados em períodos de trabalho [Alm06], tirando partido do

facto de uma distribuição optimizada das tarefas em períodos de trabalho facilitar a construção de escalas

interessantes. Neste contexto, há que considerar ainda um argumento adicional para a existência deste

processo inicial: a definição destes grupos de tarefas tem a utilidade de reunir o trabalho em unidades mais

facilmente tratáveis pelos recursos humanos envolvidos na operação, desde os próprios planeadores aos

recursos cujo o trabalho é planeado. Em geral, pode-se assumir a existência de factores históricos, derivados

da componente humana do processo, que introduzem ineficiências às quais o PPE está alheio e para as quais

será sempre difícil encontrar solução. Por estas razões, as técnicas para a resolução automática do PPE são,

normalmente, enquadradas num sistema pericial de apoio à decisão orientado para os métodos de trabalho

do seu cliente.

Uma característica interessante do PPE é que, para um mesmo processo global de planeamento, o

PPE pode surgir em vários momentos. Por exemplo, no caso de uma companhia de caminhos-de-ferro, o

processo de planeamento engloba, historicamente, para um conjunto de actividades extraídas dos horários,

planear, por ordem, o material motor e os recursos humanos que irão realizar o trabalho. Em ambas as

situações, está-se perante a resolução de uma formulação do PPE com regras distintas mas de acordo com

a definição fundamental já apresentada. Mais ainda, dado o número de recursos envolvidos, o planeamento

é normalmente dividido em três estágios: Longo-prazo, Curto-prazo e Despacho em tempo real. No Longo-

prazo, são planeadas escalas abstractas, com o intuito de estabelecer um plano base para os recursos

que estarão envolvidos na realização dos horários sem olhar a particularidades como disponibilidade dos

recursos concretos ou mudanças de horários em certos dias ou períodos do ano (como a quinzena natalícia).

Este plano, uma vez estabelecido, é sujeito a refinamentos sucessivos à medida que a data de realização

efectiva do plano se aproxima (planeamento de Curto-prazo), podendo ainda sofrer alterações no próprio

dia (Despacho em tempo real). A Figura 2.1 mostra uma visão sobre este processo de planeamento. As

fases que implicam a resolução de alguma forma do PPE (ajustado às necessidades da fase e dos recursos

envolvidos), são apresentadas a traço mais pronunciado.

Longo-prazo (vários meses antes da operação) Despacho (poucos dias à volta da operação)

Curto-prazo (entre alguns dias a poucos meses)

planeamento de material

planeamento de turnos de

pessoal

planeamento de escalas

instanciadasajustes em tempo-real

planeamento de escalas

cíclicas

tempo

Figura 2.1: Fases de planeamento.

4

2.1.2 Escalas cíclicas e Escalas instanciadas

No caso de realidades de grande dimensão e alguma regularidade, como a dos caminhos-de-ferro, o PPE

considera, normalmente, um planeamento faseado. É costume, no planeamento de Longo-prazo, ser em-

pregue o conceito de escala abstracta. Nesta formulação, o objectivo é definir implicitamente o trabalho de

vários recursos para um período de tempo abstracto e um domínio de elementos tipo. Estas descrições

abstractas são, depois, instanciadas no tempo, ou seja, especificadas para datas concretas, dando origem a

várias escalas instanciadas, que serão, por sua vez, atribuídas a recursos reais.

Embora seja um conceito genérico e abrangente, podendo ser visto como estando presente, em alguma

medida, em várias variantes do PPE, a forma mais comum e mais estudada de escala abstracta é a deno-

minada escala cíclica, dando origem ao Problema de Planeamento de Escalas Cíclicas (PPEC) [HHAK06].1

Em escalas cíclicas, o trabalho é agrupado em várias linhas, com cada linha a corresponder a uma sequên-

cia de dias, normalmente uma semana. Neste tipo de escalas, o trabalho de cada linha n + 1 segue-se, por

definição, ao de uma qualquer linha n, sendo que se n for a última linha da escala, o trabalho seguinte será

o da primeira linha. Tome-se o exemplo apresentado na Figura 2.2, que mostra uma escala que contém:

• dias de descanso (“D”);

• dias de reserva (“R”); e

• dois turnos que ocorrem em vários dias (frequências), identificados com um traço etiquetado, em que

um ocorre nos dias de semana (o número 1) e o outro é realizado todos os dias, incluíndo fins-de-

semana (o número 2).

D21

2 1

D

R

R R D D

1

1

1

1

segunda terça quarta sábado domingo

2

2

3 22

D

sextaquinta

D2

2

Figura 2.2: Exemplo de escala cíclica.

O uso de escalas cíclicas é particularmente útil em situações onde há uma grande regularidade no tra-

balho para um período considerável. Por exemplo, quando durante alguns meses é sistematicamente neces-

sário realizar um mesmo conjunto de turnos a cada dia da semana, admitindo-se apenas algumas variações

pontuais. Esta abordagem tem a característica importante de garantir que o trabalho roda por todos os

recursos de forma equitativa, importante tanto no caso de recursos humanos (distribuição do trabalho agra-

dável e desagradável de forma igual entre os trabalhadores) como no caso de recursos materiais (desgaste

repartido pelo material). Adicionalmente, tem a vantagem de permitir uma primeira aproximação ao plano

de trabalho de vários recursos para muitos meses (período normalmente coincidente com um ano de horá-

1O termo rotação é também usado para referir uma escala cíclica, sobretudo quando os recursos são veículos. Por exemplo,

rotações de material motor.

5

rio (“timetable-year”), por oposição a planear o mesmo período dia-a-dia. Visto definir o trabalho de muitos

recursos e durante um período de tempo considerável, a obtenção de soluções optimizadas para o PPE

aplicado a escalas cíclicas é de grande interesse.

Depois da definição completa das escalas cíclicas, estas são concretizadas num período de tempo. Para

uma escala cíclica de n linhas, são definidas n escalas instanciadas. Cada escala instanciada começa no

primeiro dia da i-ésima linha (com i a variar entre 1 e n) e segue a escala cíclica tantos dias quantos os

do período de tempo definido. Este processo corresponde à definição do trabalho que um recurso anónimo

deverá realizar no período de tempo estabelecido. De notar que, como as regras laborais são validadas na

definição da escala cíclica, as escalas instanciadas produzidas a partir de escalas cíclicas são necessaria-

mente válidas. No caso da escala apresentada na Figura 2.2, uma escala instanciada a partir da segunda

linha teria a seguinte sequência de trabalho durante as primeiras três semanas: 1 1 2 D 1 2 O O 2 O 1 D D

2 2 D 1 2 2 D D . . .

Uma consequência curiosa do uso de escalas cíclicas, é elementos planeados na escala poderem con-

tribuir mais que uma vez para a validação de uma regra, como no caso de regras aplicáveis a um número de

dias superior ao número de dias de uma escala. Por exemplo, validar o número máximo de turnos nocturnos

em 21 dias numa escala de 14 dias. Na prática, é razoável dizer que o uso de escalas cíclicas promove

uma maior inter-relação entre as decisões de planeamento tomadas para um dia e os dias circundantes em

comparação com o planeamento de escalas instanciadas.

É importante notar que nem todas as realidades empregam o conceito de escala cíclica ou mesmo de

escala abstracta no seu planeamento, conforme se percebe na Secção 2.3. Em vários casos, as escalas ins-

tanciadas são geradas directamente, podendo ser aplicados métodos de afectação directa, onde as escalas

são geradas tendo em consideração preferências e restrições específicas dos recursos. Esta situação acon-

tece, por exemplo, no domínio da aviação, onde o planeamento é normalmente feito numa base mensal, já

em função dos recursos disponíveis e de factores associados ao trabalho para aquele mês, como descrito

na Secção 2.3.2.

2.1.3 Objectivos

No planeamento de escalas, estão presentes as restrições fundamentais do planeamento, como os elemen-

tos de planeamento não se poderem sobrepôr na afectação a um recurso num mesmo espaço de tempo

[Alm06]. No entanto, existem outras preocupações, mesmo para lá das derivadas directamente de limitações

físicas ou obrigações contratuais, como são as regras laborais acordadas com os sindicatos ou a preocupa-

ção operacional de um hospital garantir que exista uma certa proporção de enfermeiras experientes todos

os dias, para poderem substituir outras caso faltem. Estas restrições delimitam o que são consideradas

soluções válidas ou oferecem medidas para a avaliação da qualidade de soluções.

Em particular, destacam-se alguns objectivos de fundo que podem até influenciar a técnica aplicada na

resolução de escalas. A maioria dos objectivos presentes nos PPE pode ser reduzido a uma forma dos

apresentados:

6

Optimização da quantidade de recursos necessários.

Minimizar o número de escalas instanciadas necessárias para a realização do trabalho corresponde a

reduzir o número de trabalhadores necessários e, assim, os custos. No caso de escalas-cíclicas, corres-

ponde a construir escalas com o menor número de linhas possível. Na prática, este objectivo corresponde

a minimizar o tempo livre ou desocupado dos recursos, sem violar restrições rígidas. Soluções que tenham

neste o seu principal objectivo de optimização tendem, por exemplo, a apresentar elementos de planeamento

próximos entre si e médias perto do limite.

Optimização da robustez do planeamento.

Fixando o número de escalas ou linhas de uma escala cíclica, tornar o planeamento mais uniforme e

robusto. Este objectivo traduz-se normalmente na introdução de margens de segurança no planeamento,

potenciado a introdução de alterações de última hora ao planeamento sem necessidade de compensações

extraordinárias aos trabalhadores. Soluções robustas normalmente têm os elementos de planeamento afas-

tados e médias longe do limite, o que permite reduzir a probabilidade de alterações em parte do trabalho

terem impacto noutras partes do planeamento, o que obrigaria a um maior esforço logístico perto da hora de

operação e, possivelmente, à necessidade de pagar compensações aos trabalhadores, por terem de realizar

trabalho muito diferente do inicialmente acordado.

Satisfação dos trabalhadores.

Estabelecendo regras que visem a construção de escalas agradáveis de realizar, por vezes tendo em

conta factores como a senioridade dos trabalhadores. Escalas construídas com base neste critério podem

ser caracterizadas, por exemplo, por respeitarem tempos de protecção antes e depois de dias de descanso ou

por não terem vários dias consecutivos com trabalho desagradável, como pode ser a realização de trabalho

nocturno em dias consecutivos.

Cada um destes objectivos pode ser visto como definindo um espaço ortogonal aos outros, cada com

uma importância pré-definida. Salvo a realização de estudos teóricos, não será normal que um dos objectivos

apresentados se sobreponha totalmente aos restantes. A expectativa é, antes, que os objectivos referidos

sejam, tipicamente, pesados um em relação aos outros.

Outro ponto interessante de notar é a variação da importância dos objectivos (e respectivos sub-objectivos)

consoante a distância à realização efectiva das actividades a serem planeadas. Tome-se o exemplo de um

problema grave perto da hora de operação. Por forma a ser resolvido, um planeador pode considerar a

hipótese de violar alguma regra relacionada com a satisfação dos trabalhadores, sendo que a mesma vio-

lação poderia não ser de todo aceitável durante o planeamento de escalas abstractas no Longo ou até no

Curto-prazo, onde se procura fazer um plano base satisfatório para um período de tempo mais alargado.

Em suma, pode-se dizer que estes objectivos, por serem tão abrangentes, estão presentes, de forma

mais ou menos evidente, em todas as formas do PPE, embora o peso atribuído a cada um possa variar

consoante a realidade específica e a fase planeamento.

7

2.1.4 Factores de Complexidade

A complexidade dos PPE pode ser vista como um espaço de várias dimensões, onde cada dimensão repre-

senta um factor de exigência cuja importância depende da instância do problema em causa. Neste contexto,

complexidade refere-se à dificuldade em encontrar soluções válidas com alguma qualidade, já que os objec-

tivos do planeamento descritos na Secção 2.1.3 representam por si só outras dimensões de complexidade.

É de notar que cada factor de complexidade pode potenciar o efeito de outro, por exemplo, se as regras

de planeamento forem pouco exigentes e os turnos muito regulares, a dimensão do problema poderá deixar

de ser um problema significativo, quando é, normalmente, um factor com impacto determinante. Pode, tam-

bém, acontecer que certas regras permitam dividir o problema e, assim, reduzir a sua combinabilidade, por

exemplo, se certos conjuntos de elementos de planeamento tiverem necessariamente de ser planeados em

escalas com determinadas características. Este tipo de situação ocorre, por exemplo, quando um problema

é dividido em várias bases de operação.

Dimensão do problema.

Uma medida proporcional ao número de elementos de planeamento que fazem parte do problema. O

número de dias de escala também é um factor, na medida em que potencia a combinabilidade dos elementos

a planear. No entanto, o número de escalas terá normalmente uma relação de proporção linear com o número

de elementos a planear, pelo que se poderá definir a dimensão do problema em função destes últimos.

Regularidade do trabalho.

Medida que se refere à variabilidade dos elementos de planeamento no que diz respeito a características

como a sua duração, hora de início, hora de fim ou outras características dependentes da instância do

PPE. Por exemplo, num contexto onde há a divisão entre elementos de planeamento nocturnos, matutinos

e vespertinos, a medida de regularidade estará relacionada com a distribuição dos elementos existentes

por estes conjuntos: quanto mais uniforme for a distribuição, mais variados serão os elementos, no que diz

respeito a este factor (por oposição a haver um conjunto dominante que concentra a grande maioria dos

elementos).

Regras de planeamento.

Medida abrangente, relacionada com a variedade, quantidade e tipo de restrições que uma solução válida

deve respeitar. Se, em certos casos, estas regras podem potenciar significativamente outros factores de

complexidade, em outros, regras de planeamento oferecem oportunidades para dividir o problema sem perda

de generalidade. Este tópico é explorado com maior detalhe na Secção 2.1.5.

Regras de distribuição de descansos.

Regras que determinam a distribuição dos trabalhos de manutenção, no caso de planeamento de escalas

de material motor, ou descansos de recursos humanos. Em realidades onde estas regras sejam permissíveis,

i.e., permitam muitas combinações válidas, o espaço de escalas válidas pode aumentar de forma significativa,

por oposição a realidades onde distribuição é feita segundo padrões pré-definidos. O impacto destas regras

cresce especialmente na presença de regras como tempo de protecção antes ou depois dos descansos, uma

vez que introduz uma inter-relação entre o trabalho planeado e os descansos.

8

Tempo de resposta.

O tempo esperado para que o PPE seja resolvido. Quando o PPE está longe da hora de operação, é

normal haver mais tempo disponível para a sua resolução (pode até ser aceitável esperar um ou dois dias

por uma solução muito boa). Perto da hora de operação, o tempo disponível para a obtenção de uma solução

torna-se um recurso escasso. Fixando os outros factores de uma instância do PPE, os requisitos sobre o

tempo de resposta podem potenciar as dificuldades na resolução de forma satisfatória do PPE. De notar,

no entanto, que este factor está relacionado com a medida de desempenho, sendo, normalmente, aceites

soluções de qualidade suficiente, mas não necessariamente óptima, desde que obtidas em tempo útil quando

o planeamento é feito perto da operação.

2.1.5 Classes de Regras

Para poder ser considerada válida, uma solução do PPE deve verificar um conjunto de regras pré-estabelecidas

e que fazem parte da definição da instância do PPE. Argumenta-se que a maioria destas regras podem ser

consideradas instâncias de uma hierarquia de classes de regras, na medida em que é possível criar um

algoritmo que, dada uma solução, as verifique da mesma forma, a menos de alguns factores (parâmetros)

específicos a cada regra concreta.

Nesta secção, são apresentadas as principais categorias de regras que podem afectar o PPE, inferidas a

partir dos vários trabalhos estudados durante o desenvolvimento desta dissertação e da experiência profissi-

onal do autor. De notar que algumas regras só são de interesse para algumas classes do PPE. Ao explicitar

as classes de regras, torna-se possível avaliar o poder expressivo de uma solução que se pretenda aplicável

a várias classes do PPE, como é o caso deste trabalho.

Uma separação útil é entre regras locais e globais, também chamadas, respectivamente, de horizontais

e verticais em [KK04], onde o domínio é mais específico e refere-se somente a escalas instanciadas.

2.1.5.1 Regras Locais

Correspondem a regras cuja verificação é unicamente em função de uma escala. A maioria das regras

reais são instâncias de algum tipo destas regras. Pode-se dizer que, tipicamente, estas regras verificam a

admissibilidade de uma escala.

Compatibilidade com Escala.

Verificação sobre a admissibilidade de planear um elemento de planeamento numa determinada escala.

Regras desta classe podem garantir, por exemplo, que o conhecimento associado a uma determinada escala

é verificado pelo trabalho que é atribuído a ela. No caso específico de escalas instanciadas, para as quais

já haja um conjunto de restrições conhecido, como férias e descansos de um trabalhador concreto, regras

formuladas desta forma também podem servir para excluir trivialmente elementos que, por exemplo, se so-

breponham às férias ou estejam demasiado próximos dos dias de descanso. Em geral, informação sobre

regras deste tipo pode ser reunida durante um pré-processamento por forma a excluir trivialmente hipóteses

durante o processamento real. Estas regras são normalmente fáceis de implementar e verificar de forma

eficiente.

9

Sequências.

Verificação de validade de sequências entre dois elementos de planeamento. Dentro desta classe incluem-

se regras como a existência de tempo de descanso suficiente entre elementos de planeamento. Estas regras

são caracterizadas por poderem ser verificadas durante um pré-processamento sem recurso a análise com-

binatória.

Valores acumulados.

Regras que validam condições sobre uma dada característica dos elementos planeados num dado con-

junto de dias de escala. No caso geral, esta validação pode ser vista como a aplicação de uma inequação ao

resultado de uma operação sobre a característica dos elementos de planeamento a considerar (por exemplo,

MIN, MAX, S UM, AVG). A situação mais normal é que as regras deste tipo só estabeleçam limites num

dos extremos, mas há exemplos que obrigam a que o valor final esteja entre um limite inferior e um superior.

Regras muito comuns são as relacionadas com a quantidade máxima de trabalho admissível numa semana

de escala (forma alternativa de validar a média de horas de trabalho para um determinado período) ou o

número máximo de elementos com uma dada característica que podem existir numa escala (por exemplo,

número máximo de turnos nocturnos).

Padrões de Descansos.

É normal haver, em todas as realidades, regras para a existência de um ou mais dias de descanso

ao fim de uma série de dias consecutivos de trabalho. Em certos casos, estas regras podem contemplar,

por exemplo, a existência regular de descansos ao fim-de-semana. Noutros, estabelecem-se relações de

proporcionalidade entre o número de dias de trabalho consecutivos e os descansos que se seguem.

2.1.5.2 Regras Globais

Regras que impõem algum objectivo sobre mais que uma escala. A este nível, as regras correspondem

normalmente a restrições operacionais sobre uma solução interessante. Não é comum haver regras de

admissibilidade a este nível.

Restrições Globais.

Um objectivo comum no âmbito do planeamento de escalas, tanto cíclicas como instanciadas, é a distri-

buição equitativa de trabalho. Neste âmbito, podem existir regras que procurem uniformizar a distribuição de

uma dada característica por várias escalas, possivelmente um sub-conjunto das escalas do problema (por

exemplo, escalas a atribuir a recursos seniores). No caso concreto de escalas instanciadas, pode ser útil de-

finir metas sobre a solução produzida, como haver uma satisfação global de preferências dos trabalhadores

superior a um dado limiar.

Complemento entre escalas.

Restrições que planear um turno numa dada escala impõe sobre as escalas remanescentes. Estes tipos

de regras surgem sobretudo no âmbito do planeamento de escalas instanciadas e estão relacionadas, por

exemplo, com planear actividades que possam requerer mais que um recurso, sendo que, podendo cada

uma ser realizada por recursos com menos experiência, surge a obrigatoriedade de uma complementar ser

realizada por um recurso experiente. Outros exemplos são a incompatibilidade entre os recursos (obriga

10

a que estes não executem nunca actividades em conjunto) ou a necessidade de haver pelo menos alguns

recursos afectos à realização de actividades complementares que falem uma determinada língua.

2.2 Definição formal do PPE Generalizado

Em realidades de grande dimensão, é normal o controlo da operação ser distribuído, por razões logísticas,

por várias bases operacionais. Esta separação diz respeito, normalmente, a divisões físicas (por exem-

plo, operação em cidades diferentes). Admita-se, no entanto, no âmbito deste trabalho, que o conceito de

base operacional (ou base) é lógico, no sentido em que também pode dizer respeito a questões como dife-

rentes divisões de pessoal ou qualquer outro critério que tenha como consequência a operação ser planeada

e controlada por grupos diferentes e independentes. Note-se que esta separação podia ser vista como uma

regra de partição do problema (um tipo de verificação de compatibilidade com escala). No entanto, dado o

impacto e a forma como normalmente reflecte características organizacionais relevantes, é útil que a sepa-

ração seja explicitada.

Seja B o conjunto de bases operacionais do PPE.

Este conceito de base operacional permite dividir os elementos de planeamento do PPE em conjuntos

menores, reduzindo a complexidade global do problema.

Considere-se então que, para cada base b ∈ B, existe um conjunto de elementos de planeamento Tb.

Admita-se que estes elementos podem existir com igual conteúdo mas a diferentes abstracções de frequência

Ω, podendo estas abstracções corresponder a dias da semana abstractos (Ω = seg, ter, qua, qui, sex, sab, dom,

por exemplo, significando que o elemento é válido a “todas as segundas” ou “semanalmente, de segunda

a sexta”), datas concretas (por exemplo, Ω = 02/05/2008, 03/05/2008, . . .) ou alguma outra representação

tida interessante para a instância do PPE em causa.

De forma similar aos elementos de planeamento, as escalas presentes no PPE também são diferentes

em função de cada base (i.e., em função dos recursos disponíveis, reais ou estimados).

Admita-se que, para cada base b ∈ B, existe um conjunto de linhas de escala Σb, com este último conjunto

a corresponder a todas as linhas de todas as escalas da base b consideradas no problema. Note-se que é

fácil considerar uma função kb : Σb → Rb, que associa uma linha em Σb a uma escala Rb, sendo que cada

linha poderá corresponder a uma e uma só escala.

Sobre estes conceitos, Saldanha [Sal03] define formalmente uma solução do PPE para cada base b como

um termo (Tb,Σb, fδ) composto, respectivamente, pelo conjunto de elementos de planeamento, o conjunto de

linhas da escala e uma função de afectação, que relaciona os elementos de planeamento com as linhas de

escala onde estas estão planeadas na solução.

Naturalmente, existe todo um universo de funções de afectação possíveis. Destas funções, só uma

fracção corresponderá a afectações válidas.

Seja Fσb = f | f : Tb × Ω → Σb o conjunto de todas as funções de afectação que atribuem uma linha a

cada par (t,w) ∈ Tb×Ω, representando um elemento particular t ocorrendo à frequência abstracta w ∈ Omega.

Considere-se agora que a definição apresentada para a solução de uma escala admite a existência de

restrições cσb : Fσb → B, que determinam a validade das afectações, respondendo verdade, se a função

11

corresponde a uma afectação válida, ou falso, caso contrário.

Esta função é, assim, responsável por validar todas as regras de admissibilidade apresentadas anteri-

ormente (ver Secção 2.1.5). Aplicando-a a cada função de afectação f ∈ Fσb tem-se todas as afectações

válidas (ou seja, soluções admissíveis) para a base b. No entanto, pretende-se obter soluções que respei-

tem certos critérios de qualidade (ver Secção 2.1.3). Saldanha introduz uma função ϕσb : Fσb → R, que

apresenta uma medida sobre a qualidade da solução definida por cada função de afectação f ∈ Fσb .

Partindo das definições apresentadas, tem-se que a solução do PPE é definida como o conjunto de

funções de afectação Fσb que torne verdadeira a proposição de admissibilidade cσb ( f ) e para a qual ϕσb ( f )

seja máximo, para cada b ∈ B.

Como se vê, a definição apresentada é muito flexível e pode incorporar facilmente conceitos como o de

escala cíclica. Para isso, bastaria definir Σb com uma dada ordem, respeitando as escalas originais, sendo

que as regras podem ser validadas por cσb ( f ) tendo em conta a sua circularidade. Por sua vez, o conceito de

escala instanciada corresponde a definir as linhas de escala com a dimensão do período a planear e Ω de

acordo. Quando as escalas instanciadas correspondem a planear trabalho em recursos concretos, a função

de admissibilidade cσb ( f ) pode ser usada para validar as restrições específicas desse recurso, por exemplo,

períodos de férias e elementos de planeamento que estejam de acordo com restrições de conhecimento do

recurso.

De forma similar, é possível encontrar configurações desta definição para cobrir as várias instâncias do

PPE apresentadas na Secção 2.3 e no Capítulo 3.

2.3 Classes do Problema

Como já discutido, o conceito de escala é aplicável a praticamente todas as realidades de emprego, existindo

inclusivamente vários pacotes de software comercial que permitem efectuar esta gestão para realidades

relativamente simples.2 No caso de realidades mais complexas é, no entanto, necessário desenvolver fer-

ramentas especializadas. Nesta secção são descritas algumas particularidades das principais classes de

interesse do PPE, para onde tem sido direccionado mais esforço de investigação.

2.3.1 Administração Pública

Um Departamento de Administração Pública exemplifica a forma mais simples do PPE. O planeamento das

férias de cada recurso pode ser visto como correspondendo ao planeamento de escalas preferenciais. Os

restantes dias estarão normalmente pré-definidos: trabalho ou fim-de-semana/dias feriados. Em certos ca-

sos, a afectação também poderá contemplar o trabalho em diferentes secretarias ou secções.

Sendo um problema trivial, é normalmente resolvido com recurso a ferramentas simples ou mesmo ge-

neralistas, como é o caso de aplicações de folhas-de-cálculo.

2Sugere-se uma procura na Internet por “rostering software”, para uma série de resultados relacionados com este tópico.

12

2.3.2 Aviação

O PPE aplicado a empresas de aviação é historicamente caracterizado pela definição de escalas para recur-

sos individuais (instanciadas), por oposição a escalas abstractas. As escalas são construídas no curto-prazo,

tendo já em vista um período específico do ano, normalmente um mês [KK04]. Na Europa, é comum com-

panhias aéreas construírem escalas preferenciais (“preferential bidding”), onde as escalas são construídas

tendo em vista os desejos dos recursos os quais a escala será afecta. Nos Estados Unidos é muito comum

o conceito de bidline, onde são construídas várias escalas instanciadas e os recursos concorrem para a que

lhes é mais favorável, segundo critérios da companhia como senioridade, podendo, para aumentar as suas

hipóteses de as conseguirem, oferecer contrapartidas à entidade empregadora, por exemplo, dias de férias

ou horas de trabalho extra.

Na perspectiva dos recursos, a atribuição por bidline tem a vantagem de permitir ao recurso ter a cons-

ciência exacta da escala, enquanto que da outra forma só pode expressar preferências que poderão ou não

ser verificados na escala atribuída.

Independentemente da forma como as escalas são atribuídas aos recursos, o objectivo para o PPE nesta

realidade passa sempre por construir um número normalmente pré-determinado de escalas, onde o propósito

é equilibrar a satisfação dos recursos com as necessidades operacionais da companhia. A dificuldade maior

em relação às escalas cíclicas coloca-se, normalmente, na necessidade de verificar as regras globais na

definição das escalas, sendo comum haver um grau significativo de inter-relação entre estas. No caso das

escalas cíclicas, esta inter-relação é muitas vezes implicitamente validada na definição das próprias escalas

(que corresponderão a várias escalas instanciadas, depois de devidamente desdobradas no tempo). No

caso das bidlines, as regras aplicadas serão, necessariamente, mais gerais, ficando a satisfação individual a

cargo de cada um no sistema de eleição.

2.3.3 Caminhos-de-ferro

Com a progressiva liberalização do mercado de transportes em massa e a privatização das grandes com-

panhias estatais, houve um significativo acréscimo de exigências à eficiência operacional das companhias

de caminhos-de-ferro.3. O custo com pessoal é um dos factores mais relevantes nas despesas das compa-

nhias, apenas precedido por custos com combustível, pelo que a optimização dos recursos humanos durante

a operação tem merecido uma atenção especial e natural.

Historicamente são usadas escalas cíclicas para definir o trabalho de longo-prazo dos vários recursos,

dada a quantidade de serviços normalmente a cargo das empresas de caminhos ferroviários e número de

recursos necessários para os realizar. De facto, as escalas cíclicas correspondem ao modelo base da escala

de trabalho que um dado recurso irá realizar durante um ano de horário. As escalas individuais resultantes

da afectação de recursos às linhas das escalas cíclicas são, depois, sujeitas a revisões para acomodar as

férias dos recursos, ou outras restrições que entretanto surjam no curto-prazo.

Pode-se considerar que é a complexidade dos caminhos-de-ferro que leva à existência das escalas cí-

clicas como primeira abstracção na definição do trabalho base dos recursos, correspondendo, às revisões

3Olbertz analisa o impacto da privatização nos caminhos de ferro europeus [Olb02]

13

referidas, o planeamento de escalas preferenciais, como se verifica na realidade da aviação (ver 2.3.2).

De facto, muitas das técnicas aplicadas na realidade da aviação podem ser utilizadas no planeamento de

curto-prazo da realidade de caminhos-de-ferro.

2.3.4 Enfermagem

O planeamento de turnos de enfermagem é um caso particular do planeamento de escalas onde os turnos

são trivialmente definidos com base nas necessidades de cargas dos hospitais. A situação típica é a de

definição de turnos em função de determinados horários previamente estabelecidos, normalmente divididos

em diurnos e nocturnos, que, por sua vez, podem ser divididos em sub-tipos, dependendo da realidade. Os

recursos são tipicamente contratados para realizar, para um período pré-estabelecido, um padrão de d turnos

diurnos ou, alternativamente, um padrão n turnos nocturnos, com d > n.

Este problema é normalmente caracterizado pelo planeamento de escalas personalizadas, onde é dada

grande importância à satisfação dos recursos, tipicamente considerando as preferências de cada recurso, a

senioridade e história recente como, por exemplo, várias semanas a realizar padrões de turnos nocturnos

quando se prefere os diurnos. Uma solução admissível deve verificar tanto regras locais, como o número

máximo de turnos nocturnos, como globais, por exemplo, garantir uma certa proporção de pessoal de enfer-

magem sénior que possa substituir o júnior em caso de faltas não programadas.

Ao contrário das realidades de caminhos-de-ferro (ver 2.3.3) e aviação (ver 2.3.2), é muitas vezes pra-

ticável enumerar todas as combinações admissíveis, tanto porque os períodos de tempo considerados são

muitas vezes pequenos (por exemplo, uma semana), como porque há poucas alternativas para cada dia.

Tome-se o exemplo de uma enfermeira contratada para realizar 5 turnos diurnos ou 4 turnos nocturnos por

semana. Para uma qualquer semana existem, trivialmente, C75 = 21 padrões de turnos diurnos e C7

4 = 35

padrões de turnos nocturnos. Mesmo assumindo que são todos admissíveis para o período concreto da

escala personalizada, são 56 hipóteses. Sendo assim, o problema pode normalmente ser reduzido a alguma

forma do Problema de Afectação (“Assignment Problem”) eventualmente sujeito a restrições adicionais.

14

3 Estado da Arte

No Capítulo 2, descreve-se o PPE de uma forma geral e são apresentadas várias variantes para classes de

realidades distintas. As características particulares de cada realidade motivam abordagens diferentes, sendo

os métodos baseados em técnicas de Investigação Operacional (IO) os mais populares, especialmente para

problemas de grande dimensão. Esta é, de resto, uma tendência em problemas de planeamento de recursos.

As principais técnicas usadas para a resolução de problemas de planeamento são descritas na Sec-

ção 3.1. As secções seguintes focam-se nos métodos disponíveis para abordar as principais classes de

problemas identificadas na Secção 2.3, com ênfase para técnicas com algumas provas dadas em problemas

reais. A Secção 3.2 foca-se na aviação comercial e a Secção 3.3 nos caminhos-de-ferro, claramente as duas

realidades que apresentam os PPE mais exigentes. A realidade de planeamento de turnos de enfermagem

também tem mostrado grande actividade e é coberta na Secção 3.4.

3.1 Técnicas de Resolução

Historicamente têm sido utilizadas uma variedade de técnicas para o planeamento de recursos, bem como

uma multitude de variantes e combinações. Destacam-se duas famílias de técnicas que têm sido repetida-

mente usadas com sucesso e são aplicadas neste trabalho. As técnicas de Procura Local introduzidas pela

IA (Secção 3.1.1) e as de Programação Linear da IO (Secção 3.1.2).

3.1.1 Procura Local

A Inteligência Artificial apresentou ao longo do tempo uma grande variedade de métodos para efectuar

uma procura sistemática num espaço de estados, tais como a procura em profundidade primeiro (“depth-

first search”); procura em largura primeiro (“breadth-first search”); procura A* ou, mais recentemente a pro-

cura de discrepância limitada [Pea84] [Kor85] [HG95]. A garantia da procura ser sistemática é conseguida

guardando em memória um ou mais caminhos no espaço de estados e registando as alternativas que foram

exploradas.

Em certos casos, o caminho entre o estado inicial e a solução não é relevante. É suficiente encontrar

o estado de menor custo, preferencialmente de forma eficaz. Quando é esse o objectivo, pode-se avaliar a

utilização de uma família alternativa de algoritmos que não mantém qualquer informação sobre o caminho

percorrido, chamados Algoritmos de Procura Local. Os algoritmos desta classe oferecem duas vantagens

significativas: (1) ocupam pouca memória, muitas vezes constante (basta guardar na estrutura de controlo a

representação do estado e, eventualmente, alguma informação de suporte - o resto do conhecimento estará

modelado de forma funcional); e (2) podem ser particularmente eficazes a explorar espaços de estados de

grande dimensão, para os quais uma procura sistemática se revele inadequada. Estas duas característi-

cas tornam-nos particularmente apetecíveis em problemas de planeamento de recursos, especialmente de

grande dimensão e se puderem partir de uma boa solução inicial.

O mais clássico dos algoritmos de procura local é o trepar-a-colina (“hill climbing”), onde, a partir de um

estado inicial, é escolhido, em cada momento, o melhor sucessor possível, havendo um compromisso total

com este, na medida em que não é guardada qualquer informação que permita um retrocesso. O algoritmo

15

continua até convergir para um máximo (mínimo), um estado sobre o qual não é possível aplicar acções de

melhoria. Foram estudadas muitas variantes que versam sobre aspectos como reinicio em locais aleatórios

(“random-restart hill climbing”) ou probabilidade de escolha do (aparentemente) melhor sucessor (“stochas-

tic hill climbing”). Em qualquer caso, é fácil ver que, no caso geral, um algoritmo que nunca permita piorar

a situação será incompleto, podendo ficar preso em máximos (mínimos) locais. Para prevenir a situação em

que a procura pode entrar em ciclo, passando repetidamente pelos mesmos estados, pode ser usada a cha-

mada lista tabu, que corresponde a um conjunto de estados, normalmente os últimos percorridos, que não

podem ser considerados sucessores válidos. Esta técnica é importante em variantes que permitam ao algo-

ritmo piorar ou seguir por alternativas neutras (que também não melhorem estritamente a solução), quando

está perante um planalto (vários estados de custo igual).

Uma alternativa popular ao algoritmo trepar-a-colina, é o algoritmo de procura com têmpera simulada

(“simulated annealing”), um caso particular do algoritmo trepar-a-colina estocástico. Neste caso, a escolha

do sucessor é feita de forma aleatória, admitindo-se acções que piorem a situação com uma probabilidade

menor que 1. Ao longo do tempo, a probabilidade de escolha de sucessores maus vai decrescendo segundo

uma função pré-determinada. É possível provar que, se essa probabilidade decrescer suficientemente de-

vagar, a procura garante encontrar um óptimo global. Infelizmente, poderá, no caso geral, demorar mais

tempo do que explorar o espaço de estados de forma exaustiva. O nome têmpera advém da técnica homó-

nima usada na indústria metalúrgica, onde metais ou vidros são aquecidos a altas temperaturas e, depois,

arrefecidos gradualmente, no caso com o propósito de os endurecer.

Manter somente um nó em memória pode parecer uma abordagem radical ao problema da limitação de

memória. A procura feixe local (“local beam search”), estudada na literatura, mantém k estados que são

expandidos em simultâneo, sendo escolhidos, do conjunto resultante, que inclui os estados pai e filho, os

melhores k, que passam a constituir o conjunto que será expandido no passo seguinte. Embora, à partida,

este comportamento possa parecer semelhante ao de executar k procuras em paralelo, há que considerar

que, como são escolhidos os melhores k estados em cada momento, possivelmente incluindo alguns já

existentes, o estados menos promissores do referido conjunto k inicial começarão a ser progressivamente

excluídos. Pode-se dizer que existe uma comunicação implícita entre os vários estádos durante a procura,

que faz com que o conjunto k acabe por convergir para a área mais promissora e, em última análise, para

um máximo (mínimo).

Os algoritmos genéticos, uma classe particular dos chamados algoritmos evolutivos, correspondem, es-

sencialmente, a uma variante da procura feixe local, onde são empregues alguns dos princípios evolutivos

promovidos por Darwin. Nesta variante, os k estados constituem a população, sendo cada estado um indiví-

duo. Analogamente à evolução humana, em busca do espécime perfeito, um passo do algoritmo corresponde

a combinar características de dois indivíduos da população para gerar um novo indivíduo que fará parte do

grupo, eventualmente com a introdução com uma certa probabilidade de ocorrerem mutações aleatórias

durante essa transição. Tal como na procura feixe local, os k melhores indivíduos do conjunto resultante

serão escolhidos. Uma diferença fundamental entre os algoritmos genéticos e outras procuras locais, é que

pode ser difícil modelar problemas com restrições inter-relacionadas de forma a permitir uma combinação

eficaz dos estados. Em qualquer caso, foram estudadas muitas variantes destes princípios, aplicadas a uma

16

multitude de realidades [Gol89].

3.1.2 Programação Linear

Se a Investigação Operacional é uma disciplina com grande sucesso na resolução de problemas de optimi-

zação combinatória, muito se deve ao chamado método simplex, introduzido por Dantzig em 1947 [HL05].

Este método revelou-se uma ferramenta poderosa para a resolução de problemas de Programação Linear,

uma classe de problemas de Programação Matemática, onde a formulação é feita com base em restrições

(representando regras de admissibilidade) e numa função objectivo que se pretende minimizar (maximizar).

No caso da Programação Linear, tanto as restrições como a função objectivo devem ser lineares, havendo

métodos, como o referido, que permitem a resolução de problemas de grande dimensão de forma exacta e,

muitas vezes, em tempo útil.

O método simplex é um procedimento algébrico. No entanto, os seus conceitos subjacentes baseiam-se

em princípios geométricos. A ideia é relativamente simples: navegar através dos pontos de intersecção de

todos os planos definidos pelas restrições, até encontrar um que maximiza (minimiza) a função objectivo.

Note-se que os pontos de intersecção que verificam todas as restrições correspondem a soluções admissí-

veis, daí o nome (“corner-point feasible solutions”) ou CPF pelo qual são conhecidos na literatura. Na prática,

o algoritmo não necessita de enumerar todas as intersecções. A partir de uma solução inicial, possivelmente

trivial, são calculados os pontos de intersecção directamente adjacentes e é escolhido aquele que oferece

maior taxa de melhoria. Um ponto de intersecção cujas arestas não tenham uma taxa de melhoria positiva

(ou negativa para problemas de minimização) corresponde à solução óptima.

Embora o método simplex seja muito eficaz, em certos problemas, pode necessitar de muito tempo para

convergir. O método do ponto interior (“interior point”) foi desenvolvido por Karmarkar para dar resposta a

esta limitação. Tal como o método simplex, o método do ponto interior também é iterativo, mas, ao contrário

de percorrer as arestas do espaço, o método do ponto interior percorre pontos contidos na região admissí-

vel. A grande limitação deste método é o tempo médio de cada iteracção, muito superior ao do simplex e

incomportável para problemas de pequena dimensão. Por outro lado, o número de iteracções necessárias

não cresce significativamente com o aumento da dimensão dos problemas. Recentemente tem-se assistido

à apllicação de bastante esforço na investigação de métodos híbridos que combinam as vantagens destes

dois métodos.

No caso de problemas de grande dimensão, aplicar um optimizador sobre o problema completo pode-se

tornar incomportável. Uma técnica muito usada nestes casos é a de geração de colunas, onde o próprio

domínio do problema é alterado ao longo do tempo. Aproveitam-se propriedades bem conhecidos do pro-

blema dual para, dada uma proposta de variável (coluna), ser possível estimar o seu contributo para o pro-

blema global. Se o contributo for positivo, a coluna é acrescentada ao problema, o que dará margem para a

obtenção de uma solução melhor. Na prática, a aplicabilidade de métodos baseados em geração de colunas

está muito dependente da quantidade e tipo de restrições impostas.

17

3.2 Aviação

Ao contrário do que acontece com o PPE aplicado a caminhos-de-ferro, há uma grande variedade de méto-

dos propostos na literatura para resolver os problemas historicamente propostos na aviação comercial que,

como descrito na Secção 2.3.2, se dividem em duas classes: escalas preferenciais e bidlines. A maioria das

técnicas apresentadas para resolução de cenários reais baseiam-se em técnicas de Investigação Operaci-

onal, havendo algumas tentativas de conjugar estes métodos com métodos de programação por restrições

(“constraing programming”) entre outros.

Kohl e Karisch descrevem [KK04] os princípios da solução empregue na aplicação comercial da Jeppe-

sen Sanderson para planeamento de escalas preferenciais para a aviação comercial. O modelo baseia-se

na aplicação do princípio de geração-e-optimização sobre um Problema de Partição de um Conjunto (PPC,

“Set Partitioning Problem”). O sistema proposto é suportado por três módulos: o gerador, responsável por

gerar escalas válidas, o sistema de regras, responsável por verificar a validade das escalas geradas e o op-

timizador, que resolve o PPC, procurando encontrar o melhor sub-conjunto de escalas que não contenham

turnos repetidos. O processo segue iterativamente, com a geração de alternativas às escalas previamente

consideradas. As alternativas são obtidas escolhendo um período (como uma semana) e produzindo várias

combinações de planeamento para esse período. Uma forma alternativa de geração de escalas durante o

melhoramento iterativo consiste na aplicação do princípio de geração de colunas, neste caso escalas, redu-

zido à resolução de um algoritmo de caminho mais curto (“shortest path”). É considerada uma generalização

onde os nós do grafo são etiquetados com etiquetas multi-dimensionais intituladas como variáveis de recurso

(“resource variables”). Para o conjunto adequado de variáveis de recurso, é possível provar que a validação

de um caminho corresponde a testar se as variáveis de recurso estão no domínio válido. Embora promissora,

esta abordagem é dificilmente aplicada a problemas do mundo real, na medida em que a transformação de

um conjunto complexo de regras e objectivos em variáveis de recurso não é trivial. Por isso, embora aplicado

em algumas realidades, existe a alternativa mais flexível que emprega o k-caminho mais curto, onde a pro-

cura tenta sucessivamente o caminho mais curto e, se não for válido, o segundo, etc. Métodos similares a

estes (baseados na resolução do PPC com geração de colunas) são explorados em [GSV+98], [GSMD99] e

[GS93].

Sellmann e outros, em [SZSF02] e [SZSF00], sugerem um método baseado em programação por res-

trições. O método proposto procura contrariar as dificuldades que abordagens baseadas em técnicas de

geração de colunas tradicionalmente sentem em lidar com problemas de grande dimensão e onde as co-

lunas válidas têm de verificar muitas condições. Nestes casos, métodos clássicos de geração de colunas

requerem um esforço de processamento significativo. No trabalho, é apresentado um gerador de colunas que

usa programação por restrições para cortar o grafo de suporte à geração de colunas. Este gerador é conju-

gado com um algoritmo de satisfação de restrições (“constraint satisfaction”) que opera sobre os resultados

do gerador de colunas para efectuar optimizações locais. São testadas várias formas de combinar as duas

abordagens com resultados superiores aos métodos individuais. Os métodos resultantes são relativamente

promissores, embora a sua configuração apropriada dependa do conhecimento disponível sobre o problema

em causa e a sua aplicação só compense no caso de problemas com grande combinabilidade e sujeitos a

18

muitas restrições. Neste último caso, a mera aplicação de métodos heurísticos poderia resultar numa grande

proporção de tentativas de geração falhadas, levando a uma grande ineficiência no processo de geração.

Outra abordagem sobre o mesmo princípio geral é estudada em [KK00].

Em [CG04], Cappanera e Gallo estudam uma abordagem baseada em modelos de fluxo para múltiplos

produtos (“multicommodity-flow”) com restrições adicionais, onde cada recurso corresponde a um produto.

Com esta formulação, encontrar o planeamento mensal para um empregado corresponde a encontrar um

caminho sobre um grafo definido de forma adequada. O modelo proposto revela uma capacidade de opti-

mização interessante, embora mostre alguma dificuldade em lidar com problemas de grande dimensão. Já

[Thi08] explora aspectos particulares do problema, nomeadamente a variante de problema de planeamento

orientado a equipas.

3.3 Caminhos-de-Ferro

Ao contrário da aviação comercial, a variante PPEC, típica da realidade de caminhos-de-ferro, não tem sido

alvo de muito estudo na literatura. Esta situação deve-se, em boa medida, às dificuldades que os problemas

introduzem, problemas esses bastas vezes de grande dimensão e com especificidades intrincadas que tor-

nam a criação de um método geral particularmente difícil. A particularidade das escalas serem cíclicas, o

que implica que planear um turno pode afectar muitos dias adjacentes, em certos casos inclusive o próprio,

também fazem deste problema um desafio particularmente aliciante.

A primeira abordagem de relevo só surge em 1995 com o trabalho que ganhou a competição FARO

organizada pela companhia Italiana de caminhos-de-ferro [CTVF98]. Neste estudo, o objectivo é minimizar

o número de escalas necessárias para cobrir um conjunto pré-determinado de turnos. O método proposto

baseia-se numa procura onde a heurística é guiada por informação recolhida da resolução de um modelo

matemático para determinar o caminho óptimo para percorrer um grafo com todos os turnos a planear, bem

como descansos ou outros elementos de planeamento. Esta abordagem é refinada em [CFL+98], onde é

complementada pelo uso de Programação Lógica por Restrições (“Constraint Logic Programming”).

Em [CMT01], estuda-se a hipótese de introduzir alguma interacção entre o planeamento de escalas e

de turnos. Neste sistema, uma abordagem clássica de geração-optimização pura é seguida, com todos os

turnos válidos (ou, pelo menos, uma aproximação útil a este conjunto) a serem geradas, sendo depois apli-

cado um algoritmo de optimização baseado em vários critérios heurísticos, para escolher, de entre os turnos

gerados, o conjunto de menor custo, no âmbito da resolução de um Problema de Cobertura de Conjuntos

(“Set Covering Problem”). Neste trabalho, propõe-se vários ajustes às heurísticas e ao algoritmo de optimi-

zação por forma a incluir alguma informação extraída dos resultados de resolver o PPE sobre as soluções

que são sucessivamente obtidas pelo optimizador.

Uma alternativa consideravelmente diferente (e já mais semelhante à que é proposta no Capítulo 4) é

sugerida em [SN04] para resolver o problema de planeamento no Metro de Londres. O problema é resolvido

em 3 fases: (1) cálculo do padrão de descansos; (2) afectação de tipos de dia (matutino, nocturno, vespertino,

...) e (3) afectação de turnos concretos sujeitos aos tipos de dia pré-determinados. Embora muito promissor,

o método, tal como é proposto, tira partido de alguma regularidade imposta pelas restrições do problema

19

concreto, que reduzem a combinabilidade e interacção possível entre os elementos de planeamento, por

exemplo, não é normalmente admissível combinar dias de tipos diferentes contiguamente. Uma variante

deste método é aplicada à empresa estatal holandesa de caminhos-de-ferro em [HHAK06], para optimizar

escalas com turnos pré-atribuídos (ou seja, a decisão sobre que turnos vão para que escala é feita à cabeça,

reduzindo, assim, a complexidade do problema).

3.4 Enfermagem

Uma das primeiras abordagens ainda hoje referenciada é encontrada em [War76]. Um sistema que procura

ter em conta preferências do pessoal no planeamento de um período de 4 a 6 semanas, resolvendo o

problema em dois passos: numa primeira fase encontra uma solução admissível, tendo em conta todas as

restrições; e, num segundo estágio, procura acções que melhorem a situação do planeamento relativamente

às preferências dos recursos. A solução proposta em [AR81] tem a particularidade de sugerir a separação

entre a afectação de descansos e o planeamento do trabalho propriamente dito, abordagem também usada

com sucesso, por exemplo, no planeamento de escalas em caminhos-de-ferro.

Em [BKS03], Burke e outros estudam uma abordagem baseada no conceito de hiper-heurística, for-

malizado no mesmo trabalho. A ideia proposta é a de definir um conjunto de estratégias de melhoria de

uma solução (as heurísticas) e aplicá-las no âmbito de uma procura local tabu que gere a utilização das

heurísticas com base no seu sucesso ao longo do tempo. O método é comparado com vantagem a uma

abordagem baseada num Algoritmo Genético (AG), mostrando alguma promessa, em particular por se tratar

de uma abordagem genérica. Uma estratégia que partilha os princípios gerais desta, embora segundo outra

perspectiva, é encontrada em [Dow98].

Várias variantes de algoritmos genéticos também têm sido estudadas, como em [Sch00], onde se mostra

que a aplicação directa de AG encontra dificuldades em resolver o problema, dada a quantidade de restrições

interdependentes e objectivos concorrentes. Torna-se necessário introduzir vários processos complementa-

res com conhecimento específico do problema para serem obtidos resultados interessantes. Em [AD04] é

sugerida uma alternativa a esse método, onde o AG opera não sobre uma representação directa do problema

mas sobre permutações de escalas geradas por um processo autónomo. Várias estratégias são estudadas

sobre este algoritmo, que é apresentado, curiosamente, como obtendo melhores resultados que o de Burke

e outros, descrito anteriormente.

Em [MK98] é estudada uma abordagem baseada em Programação Linear que modela o problema como

Problema de Caminho-mais-curto (“Shortest-path Problem”) sujeito a restrições adicionais. O modelo apre-

sentado oferece a curiosidade de poder representar tanto problemas cíclicos como não-cíclicos, de forma

semelhante à sugerida na Secção 2.2. Os métodos propostos em [JSV98] e [BP05] também aplicam Progra-

mação Linear, mas no âmbito de soluções baseadas em geração-de-colunas. A solução proposta em [VH00]

é de especial interesse por ser semelhante, no princípio, à solução proposta nesta dissertação, uma vez que

conjuga a resolução de um modelo matemático do problema com uma procura local, para obter um método

híbrido, mais eficiente que o possível com uma resolução completa do modelo matemático.

20

4 Proposta

Durante o desenvolvimento deste trabalho, foram estudadas várias abordagens para a resolução de um

PPEC de grande dimensão, baseado em dados reais (ver Secção 4.1), aplicando tanto técnicas de Investiga-

ção Operacional como de Inteligência Artificial (IA). Este problema foi escolhido com o intuito de proporcionar

uma base de trabalho sobre a qual se pudessem tirar conclusões facilmente expansíveis a outras realidades.

Embora lidando com o planeamento a partir do zero, os métodos propostos empregam processos de melho-

ria sistemática das soluções calculadas inicialmente, pelo que todos podem ser usados tanto para encontrar

soluções para novos cenários de planeamento como para melhorar soluções existentes.

Como referência, utilizou-se um método de resolução conhecido do autor, baseado em técnicas de IA

(ver Secção 4.2), que foi capaz de apresentar resultados interessantes na resolução da instância proposta,

consideravelemnte superiores aos de planeadores humanos. Este método emprega uma fase construtiva,

para obter uma solução base tão boa quanto possível, seguida da aplicação de uma procura local para

melhoria iterativa da solução inicial. Uma das vantagens determinantes deste método é a sua capacidade

para lidar com problemas de grande dimensão, tendo mostrado apenas algumas dificuldades para optimizar

certos aspectos da solução que requeriam uma visão mais global.

Com o intuito de procurar soluções que obviassem a essa limitação, optou-se por estudar a aplicação de

técnicas de IO ao problema. Num primeiro estágio (ver Secção 4.3), aprofundou-se o conhecimento sobre

o problema estudando uma primeira abordagem ao problema como Programa Inteiro Misto (PIM, “Mixed-

Integer Program”), isto sem considerar abstracções ou simplificações. Embora o modelo obtido tenha uma

expressividade muito interessante e seja eficaz para problemas de pequena dimensão, tornou-se óbvio que

tinha dificuldades em lidar com a explosão combinatória que ocorria mesmo para problemas que se podem

denominar de dimensão média.

Mesmo assim, revelando a ferramenta grande capacidade de optimização, procuraram-se soluções onde

esta poderia ser aplicada várias vezes a sub-problemas no âmbito de um processo de melhoramento itera-

tivo (ver Secção 4.4). De facto, nestes moldes, tornou-se possível abordar problemas de dimensão muito

superior. No entanto, mesmo nessas condições, foi aparente a existência de um limiar a partir do qual seria

necessário que os próprios sub-problemas fossem maiores que a capacidade do método, para serem obtidas

melhorias adicionais.

Uma das características que tornam o PPE tratável, mesmo com grandes dimensões, é a relativa seme-

lhança entre os vários elementos de planeamento (ver Regularidade do trabalho na Secção 2.1.4). Em qual-

quer das soluções estudadas inicialmente, não se tirou explicitamente partido desse factor, considerando-se

todos os elementos de planeamento individualmente, mesmo que tivessem, por exemplo, a hora de início

e fim muito próximas. Na terceira abordagem (ver Secção 4.5), propõe-se um processo de resolução do

PPE por níveis de relaxação do espaço de estados, onde o problema completo é resolvido considerando-se

conjuntos progressivamente mais restritivos de regras e agrupamentos (“clusters”) de elementos de planea-

mento. Em cada fase, obtêm-se soluções globalmente muito boas para certos aspectos da solução. Dessas

soluçoes retira-se informação que irá posteriormente impôr restrições à fase seguinte, tornando esse pro-

blema mais fácil de tratar. No final deste processo, é obtida uma solução global válida e muito optimizada

segundo alguns parâmetros que requerem uma visão mais global. A esta solução é, então, aplicado o mesmo

21

processo de melhoria usado no método de resolução de referência, que poderá encontrar algumas melhorias

adicionais.

É interessante notar a conjugação de técnicas de IO com IA neste último processo. Em particular, a

existência do processo de melhoria oferece a oportunidade adicional de relaxar ou nem sequer considerar

algumas regras durante a resolução inicial do problema, facilitando a formulação do problema e reduzindo

a sua complexidade. Esta facilidade permite a obtenção de soluções numa vizinhança próxima do óptimo

global de forma eficiente, mesmo em problemas de grande dimensão. Por outro lado, ao partir de uma

solução que já é muito interessante segundo os objectivos globais mais importantes e difíceis de tratar pelo

método de melhoria, este pode mais facilmente convergir para um máximo próximo do máximo global.

Os resultados de cada um dos métodos estudados são apresentados no Capítulo 5.

4.1 Descrição do Problema a Resolver

Pretende-se resolver o PPE aplicado ao planeamento de longo-prazo de recursos humanos, baseado na

realidade de uma companhia de caminhos-de-ferro, que funciona como operadora principal de uma capital

da União Europeia. No caso da companhia em causa, o planeamento de longo-prazo corresponde ao pla-

neamento de escalas-cíclicas. Da solução do problema, é retirado o planeamento base para até 8 meses de

trabalho, pelo que a sua optimização a este nível é de grande importância para a companhia. Dado o relativo

pouco tempo que os planeadores normalmente têm para resolver este problema, a existência de um sistema

pericial de apoio eficiente é uma ajuda importante.

Mais especificamente, o problema corresponde ao planeamento da maior base de pessoal da companhia

em causa. Esta base tem 23 escalas, totalizando 304 semanas de trabalho, onde devem ser planeados 1459

turnos de trabalho.1

Na Secção 4.1.1 procura-se uma visão geral sobre alguns aspectos do trabalho a planear. A Sec-

ção 4.1.2 apresenta as regras a validar e os vectores de qualidade das soluções. Finalmente, na Secção 4.1.3

encontra-se um breve estudo sobre a dimensão do problema em causa.

4.1.1 Análise do Trabalho a Planear

Os 1459 turnos de trabalho são caracterizados pelo tipo de dia a que correspondem:

• Nocturno (do Inglês night), se intersecta o período temporal ]1:30; 4:30[;

• Matutino (early), se não é nocturno e intersecta o período temporal [4:30; 6:00[;

• Vespertino (late), se não é nocturno ou matutino e intersecta o período temporal [17:00; 1:30];

• Diurno (day), se não é nenhum dos outros tipos e intersecta o período temporal [6:00; 17:00[.

A Figura 4.1 mostra a distribuição dos 1459 turnos por períodos do dia. Para melhor compreender os

dados, é importante reforçar que o período vespertino engloba todos os turnos que, não intersectando os

períodos correspondentes aos turnos nocturnos ou matutinos, intersectam o período entre as 17:00 da tarde

1Neste contexto, um turno corresponde a um período de trabalho a realizar a um dia da semana. A este nível já não são consideradas

as abstracções por frequência comuns no planeamento de turnos, onde um turno pode representar trabalho a realizar em vários dias

da semana.

22

e as 1:30 do dia seguinte. Isto significa, por exemplo, que a generalidade dos turnos que comecem depois

das 12:00 serão considerados vespertinos, já que a sua duração (normalmente perto de 7h), os levará a

acabar depois das 17:00, justificando-se assim o número notoriamente superior de turnos vespertinos do

problema face aos outros tipos.

Figura 4.1: Distribuição do trabalho em períodos do dia.

A Figura 4.2 apresenta uma aproximação à distribuição do trabalho durante o dia. Cada coluna corres-

ponde ao número de turnos que intersectam o período de meia hora correspondente. Pode-se ver que existe

uma quantidade de trabalho gradualmente crescente durante a manhã até por volta do meio dia e, depois,

outro pico por volta das seis da tarde, seguido de uma curva descendente acentuada. Note-se, por respeito

ao rigor, que estas estatísticas são construídas com base nos turnos e nos seus tempos limite, que podem

conter tempos de repouso, períodos de entrada ao serviço ou outros espaços sem trabalho efectivo. Mesmo

assim, estas estatísticas permitem inferir a tendência geral da distribuição da carga, que é o pretendido.

Figura 4.2: Distribuição do trabalho ao longo do dia.

23

Para completar a visão geral do trabalho a planear, encontra-se na Figura 4.3 a distribuição de turnos

durante uma semana. É interessante notar o considerável decréscimo de trabalho durante o fim-de-semana.

Figura 4.3: Distribuição do trabalho ao longo da semana.

Como se percebe facilmente, as escalas, totalizando 304 semanas, correspondem a 2128 dias a ser

planeados. Para além dos turnos de trabalho, estes dias podem ser ocupados com os seguintes elemen-

tos de planeamento:

• Dia de Descanso, correspondendo a um descanso oficial com o qual a companhia assume um compro-

misso segundo regras laborais em vigor no país ou acordadas com os sindicatos dos trabalhadores;

• Dia de Descanso Complementar, um dia de descanso para além dos descansos oficiais - contabiliza 0

horas para efeitos de cálculo de média e pode ser usado como último recurso para baixar a média de

trabalho numa dada sequência de dias, por forma a cumprir com as regras relacionadas com a carga

de trabalho;

• Dia de Reserva, um dia em que o recurso está de prevenção, disponível para efectuar trabalhado

definido no curto prazo - contabiliza 7 horas para efeitos de cálculo da média;

4.1.2 Regras e Objectivos

A realidade em causa considera várias regras laborais e de planeamento, de entre as quais é escolhido um

conjunto modelo de regras a validar no âmbito deste trabalho. Pretende-se que o conjunto seja suficien-

temente variado para permitir testar o modelo com vários exemplos representativos das classes de regras

referidas na Secção 2.1.5. Para facilidade de rastreamento, separam-se as regras sobre o trabalho planeado

das regras do padrão de descansos.

O problema proposto obedece às seguintes regras de admissibilidade (note-se que todas as regras devem

ser validadas contemplando a circularidade das escalas):

• [R1.1] Repouso entre turnos, o tempo mínimo admissível para repouso entre dois turnos é de 11 horas;

• [R1.2] Carga por linhas, a média de trabalho por dia de quaisquer duas linhas consecutivas de cada

escala não pode ser superior a 7:30;

24

• [R1.3] Carga por escala, a média total de trabalho de uma escala não pode ser superior a 7 horas;

• [R1.4] Turnos nocturnos consecutivos, não podem ser planeados mais do que 2 turnos nocturnos

consecutivos;

• [R1.5] Turnos nocturnos em 31 dias, não podem ser planeados mais do que 9 turnos nocturnos a cada

31 dias consecutivos;

• [R1.6] Média de turnos nocturnos por semana, não podem ser planeados mais do que 1.35 turnos

nocturnos por semana de uma escala.

Relativamente à distribuição dos descansos oficiais, consideram-se as seguintes regras:

• [R2.1] Descansos duplos ao fim-de-semana, é obrigatório haver um descanso duplo (dois dias de

descanso consecutivos) intersectando um fim-de-semana a cada duas semanas de trabalho;

• [R2.2] Descansos simples, não pode haver mais do que 5 dias consecutivos sem descansos;

• [R2.3] Número total de descansos simples, no contexto de cada escala devem existir tantos descansos

simples como semanas de trabalho;

• [R2.4] Número total de descansos duplos, no contexto de cada escala devem existir tantos dias de

descansos duplos como semanas de trabalho (contando dois dias por cada descanso duplo);

Os objectivos de planeamento são retirados do exemplo real e contemplam os seguintes vectores, apre-

sentados por ordem de importância (excepto os objectivos [O4] e [O5], de importância equivalente):

• [O1] Quantidade de trabalho planeado, uma solução deve ter o máximo de trabalho possível planeado.

Neste caso, só é considerada válida se todos os turnos estiverem planeados (critério de operacionali-

dade do planeamento);

• [O2] Repouso entre turnos, os tempos de repouso entre turnos devem ser, preferencialmente, supe-

riores a 13 horas, por forma a permitir alguma folga para trocas de trabalho perto da operação sem

violar as 11 horas de repouso mínimo, regra laboral que não pode ser violada (critério de robustez do

planeamento);

• [O3] Aproveitamento das escalas, o número de dias de descanso complementar deve ser mínimo - é

preferível usar dias de reserva ou descansos oficiais nos dias em que não sejam planeados turnos de

trabalho (critério de operacionalidade do planeamento);

• [O4] Tempo de protecção antes de um descanso, um turno não deve terminar a menos de 4h de um dia

de descanso oficial, i.e., depois das 20h do dia anterior (critério de satisfação dos recursos humanos);

• [O5] Tempo de protecção depois de um descanso, um turno não deve começar antes das 6h depois

de um dia de descanso oficial (critério de satisfação dos recursos humanos).

• [O6] Tipo de dia preferencial de escalas, quando exista, prefere-se que os turnos de um dado tipo de

dia sejam planeados em escalas que tenham preferência por turnos do mesmo tipo de dia (critério de

satisfação dos recursos humanos).

A qualidade de uma solução é, assim, definida em função do nível de cumprimento destes objectivos.

Note-se que, nesta realidade, não são especificadas regras globais, o que significa que tanto a validação

de admissibilidade de soluções como o cálculo da função de custo pretendida pode ser feita, respectiva-

mente, como uma combinação linear da validade e custo de cada escala individualmente.

25

4.1.3 Análise da Dimensão do Problema

Em [CL96], Chuin Lau mostra que o PPE é, em geral, NP-difícil. Para se ter uma ideia intuitiva da dimensão

do problema proposto, tome-se o exemplo da aplicação de uma procura heurística em espaço de estados de

IA a um problema desta dimensão (por exemplo, usando o algoritmo de procura em profundidade primeiro).

Admita-se a situação ideal, que não contempla qualquer relaxação do espaço de estados, i.e., cada turno

corresponde a um elemento a planear.

Considere-se, como medida de complexidade, o factor de ramificação b e a profundidade d da árvore de

procura. Tem-se, usando a notação do O, que a complexidade temporal e espacial é proporcional ao número

de estados bd, ou seja, O(bd) como discutido em [Pea84].

O valor de d pode ser visto como correspondendo ao número de decisões a tomar. Neste caso, este valor

é constante e igual ao número total de dias nas escalas, logo d = 304 × 7 = 2128.

No caso específico deste problema, a ramificação b varia em função do dia d, já que os turnos são

consumidos durante o processo de planeamento. Por simplicidade, tome-se a aproximação b = b(d).

Considerando que em cada dia podem ser planeados um dos quatro tipos de elementos de planeamento,

sendo que, no caso dos turnos, existem, em média, 14597 = 208 alternativas de planeamento, tem-se que, em

cada dia, podem ser planeados no máximo 211 elementos. Para se aproximar b(d), considere-se ν = 1459304×7 ,

o número médio de turnos planeados por dia de escala. Tome-se, assim, a aproximação b(d) = (211− ν× d),

que dá o número de alternativas de planeamento na decisão a tomar para o dia d, admitindo uma distribuição

uniforme dos turnos pelas escalas. Obtém-se, portanto, que b(d) =∑2127

d=0 b(d)2128 ≈ 107.

Dados os valores para o factor de ramificação médio b ≈ 107 e profundidade d = 2128, é possível

aproximar a dimensão do espaço de estados a 1072128, o que corresponde, por curiosidade, a um número

com 4319 dígitos.

Este valor aplica-se, naturalmente, à situação limite onde não são impostas quaisquer restrições sobre

a solução. Em qualquer caso, mesmo considerando que restrições poderiam reduzir a ramificação média

em 50% ou até mais, é fácil ver que o problema será sempre de grande dimensão e que uma abordagem

eminentemente construtiva que dependa de retrocesso para reconsiderar opções previamente tomadas terá

dificuldades em obter soluções optimizadas [RN03].

O problema só se torna tratável ao considerar aspectos como a existência de alguma regularidade no

trabalho a planear e alguma tolerância relativamente à qualidade das soluções (pode-se dizer que o óptimo,

embora desejável, não se traduz necessariamente em ganhos relevantes face a soluções na sua órbita),

que permitem relaxar o espaço de estados sem perda de eficácia na obtenção de soluções com qualidade.

Métodos que envolvam procura local também se mostram eficazes a partir de uma vizinhança de um máximo

local.

4.2 Resolução por Melhoria Iterativa

Uma forma de contornar os desafios colocados pela dimensão do PPEC escolhido é a aplicação de procuras

locais, em particular do tipo trepar-a-colina (ver Secção 3.1), que permite explorar várias combinações sem

a carga adicional da gestão de alternativas em árvores de procura que poderiam, por exemplo, rapidamente

26

esgotar a memória disponível. O autor tem conhecimento de um método que implementa vários dos concei-

tos de procuras locais e que se tem mostrado promissor na resolução de instâncias de grande dimensão do

PPEC.

Neste método de resolução, parte-se de um conjunto de turnos a planear e de escalas vazias, procedendo-

se a uma resolução faseada do problema. Numa primeira etapa, encontra-se um padrão de descansos que

tenha em conta a distribuição de turnos por dias nos candidatos. Fixado o padrão de descansos, calcula-se

uma solução aplicando um método semi-construtivo, onde são sucessivamente tomadas decisões para cada

dia de escala, admitindo-se um processo de reparação local para simular retrocessos pontuais por forma a

ultrapassar conflitos que possam surgir a partir do momento em que a estratégia construtiva fique demasiado

restringida pelas decisões tomadas anteriormente. Finalmente, aplica-se um processo de reparação global

ou melhoria iterativa, que conduz a solução obtida até um máximo local.

O algoritmo de melhoria iterativa da solução é relevante para o método proposto neste trabalho, pelo que

é interessante analisá-lo com maior detalhe. Este algoritmo considera um conjunto de objectivos genéricos,

que podem incluir tanto regras laborais como objectivos preferenciais a optimizar. Estes objectivos podem

ser vistos como vectores representando critérios concorrentes a melhorar. A sua importância é diferenciada

através da sua organização em grupos de objectivos de importância equivalente, sendo que aqueles que

correspondem a regras laborais estarão, normalmente, em grupos de maior prioridade.

O algoritmo proposto itera sucessivamente pelos grupos de objectivos e procura acções que melhorem

a situação dos objectivos que pertençam ao grupo activo em cada momento, reunindo os conflitos (desvios

face à situação ideal pretendida por um dado objectivo) relacionados com cada objectivo do grupo e tentando

melhorar a situação de cada conflito individualmente. Por forma a controlar a explosão combinatória, man-

tendo a procura orientada, não são admitidas acções que piorem a situação global de objectivos de maior

prioridade já processados. É apresentado na Figura 4.4 o pseudo-código da implementação deste algoritmo,

para melhorar um conjunto de escalas E considerando o conjunto de grupos de objectivos G.

4.3 Abordagem ao Problema Completo

O objectivo deste exercício é propor um modelo para a resolução do PPE generalizado como Problema de Afec-

tação (PA, “Assignment Problem”) sujeito a restrições adicionais, com recurso a Programação Linear Inteira

[HL05]. O problema define-se, neste contexto, como a afectação de elementos de planeamento ou, sim-

plesmente, elementos, a escalas, eventualmente cíclicas, dependendo da formulação das restrições. Neste

contexto, usa-se o termo elemento para referir as várias entidades que se podem considerar envolvidas no

planeamento, como turnos de trabalho, dias de descanso ou dias de reserva (no caso do PPE ser aplicado

ao planeamento de recursos humanos) ou dias dedicados a manutenção (no caso do PPE ser aplicado a

recursos materiais).

O modelo apresentado neste corresponde ao que se poderá chamar de formulação do problema com-

pleto, na medida em que, este modelo resolve, num só passo, o planeamento de descansos e a afectação de

elementos às escalas, mostrando grande capacidade de optimização. No entanto, dada a complexidade do

problema, o modelo mostrou pouca resistência à explosão combinatória que ocorre à medida que a dimensão

27

MS(E,G)

1 para cada O′ em G

2 faz

3 C′ ← RC(E,O′)

4 para cada con f lito em C′

5 faz

6 accaoMelhoria← EAMV(con f lito, E,G)

7 se accaoMelhoria

8 então

9 AA(accaoMelhoria, E)

10 devolve E

Figura 4.4: Pseudo-código para o algoritmo de melhoria iterativa.

dos problemas a resolver cresce.

A Secção 4.3.1 descreve os princípios que servem de base à construção do modelo. Na Secção 4.3.2 é

apresentado o modelo base, estando as restrições que se acrescentam para lidar com o problema específico

em causa descritas na Secção 4.3.3.

4.3.1 Conceitos Subjacentes ao Modelo

Conceptualmente, a solução baseia-se na criação de um grafo cíclico direccionado que representa todas as

possibilidades de ligação entre elementos de planeamento. Uma solução óptima do modelo pode ser vista

como consistindo em encontrar, para as |R| escalas do problema, igual número de sub-ciclos independen-

tes no grafo, tais que os sub-ciclos preencham completamente as escalas, minimizando o custo global da

solução.

Por definição, cada elemento a uma frequência abstracta f está ligado a todos os elementos de frequência

f + 1, desde que essa ligação não viole nenhuma regra de admissibilidade. Admita-se que elementos de pla-

neamento correspondendo a dias desocupados (por exemplo, dias de reserva ou dias de descanso) são

inferidos a partir das dimensões das escalas. A sua inclusão no grafo permite relacionar todos os elementos

que estejam separadas por mais do que um dia, garantindo as propriedades de transitividade e reflexividade

do grafo relativamente a elementos que representem trabalho a planear. Segue, também, que, se forem in-

troduzidos, como dias desocupados, todos os dias das escalas a planear, o espaço de soluções é completo.

Argumenta-se que esta característica oferece alguma flexibilidade ao modelo no que toca à variedade de

conceitos e restrições que permite representar, face a outras soluções (como [CFT+97] e [KK04]) onde os

elementos que não de trabalho são incluídos no grafo como ligações tipificadas, implicando alterações mais

profundas ao próprio modelo para representar conceitos novos, que possam surgir em diferentes realidades.

A Figura 4.5 apresenta uma vista sobre um grafo hipotético onde estão presentes 7 turnos (um por dia da

semana) e onde se assume que, por alguma regra, só nos dias 2 e 3 são admitidos descansos. Neste caso,

elementos correspondentes a estes descansos são automaticamente inferidos e introduzidos com base na

28

informação disponível sobre as escalas a planear. Note-se que estes elementos podem ser planeadas em

qualquer posição, desde que, do seu planeamento, resulte uma solução admissível.

seg. domqui-sábqua.

turno1

ter.

turno2

desc 1

turno3

desc 2

turno7...

Figura 4.5: Vista sobre um grafo hipotético.

Note-se que, do grafo proposto, pode ser trivialmente retirada informação de custo e admissibilidade de

sequências de unidades, que é usada para alimentar o modelo, permitindo uma formulação mais simples

e mais expressiva. O diagrama apresentado na Figura 4.6 representa as entradas e saídas do problema

contemplando o grafo discutido.

Modelo do Problema

Turnos

Escalas

Regras de Admissibilidade

Critérios de Qualidade

Grafo AfectaçãoTurnos→Escalas

Figura 4.6: Entradas e saídas incluindo o grafo.

4.3.2 Modelo base

Nesta secção são descritos os parâmetros e variáveis do modelo base. Define-se como modelo base o

conjunto de definições que correspondem à validação estrutural das soluções (por exemplo, que asseguram

a correcta semântica das variáveis no contexto de um problema de afectação). Pressupõe-se que a gene-

ralidade das instâncias de problemas poderão tirar partido deste componente, podendo ser acrescentadas

restrições no contexto de uma implementação concreta.

Os seguintes parâmetros fazem parte da definição fundamental do problema e estarão presentes inde-

pendentemente da realidade:

• Seja e ∈ E um qualquer elemento a planear (incluam-se elementos representando dias desocupados);

29

• Seja r ∈ R uma escala a preencher;

• Seja n ∈ Nr um dia da escala r;

• Seja kri j, r ∈ R, i, j ∈ E o custo de planear o elemento i e o elemento j em sequência na escala r;

• Seja vri j, r ∈ R, i, j ∈ E o parâmetro binário que toma o valor 0 se o elemento i e o elemento j não

podem ser planeadas em sequência na escala r;

• Seja mrni, r ∈ R, n ∈ Nr, i ∈ E o parâmetro binário que toma o valor 1 se o elemento i tem de ser

planeado na posição n da escala r.

Note-se que kri j, para i e j elementos de planeamento, pode ser definido como a combinação linear

de vários custos derivados de critérios de qualidade. Segue-se a convenção de que o custo de planear o

elemento i na escala r é acrescentado a todos os custos kri j para qualquer j ∈ E.

No seguimento da definição apresentada na Secção 2.2, o número mínimo de variáveis que permitem

descrever o PPE é dado por:

• yelr, variável binária, onde e ∈ E, r ∈ R e l representa a linha de escala onde e será planeado, admitindo

que existe uma função f (e) que permite obter o dia da semana onde e está definido.

Seguindo esta abordagem, seria necessário introduzir uma variável auxiliar que representasse a situação

em que dois elementos se encontravam planeados contiguamente na solução, para facilitar a definição de

restrições:

• zi j, variável binária, i, j ∈ E.

Esta abordagem tem o inconveniente de não permitir restringir os valores de j em função da posição

de i, o que constitui uma optimização interessante numa implementação concreta, para excluir trivialmente

combinações impossíveis pela definição já apresentada (como ligar um turno a uma Segunda-feira com

outro que só ocorra na sexta). Sem esta capacidade, e num contexto onde se admitem vários tipos de

dias desocupados, é preciso, por forma a garantir a completude do modelo, incluir todas as alternativas de

dias desocupados em j. Isto significa que, durante a resolução do modelo, seria necessário, para encontrar

uma solução, tomar a decisão sobre qual o elemento concreto correspondente a um dia desocupado que

deveria ser planeado a seguir a j, num contexto onde todos estes elementos são perfeitamente equivalentes.

Esta solução torna-se, neste cenário, claramente sub-óptima, na medida em que não permite representar

o problema com um conjunto mínimo de váriaveis. Por forma a ultrapassar estas dificuldades, propõe-se a

agregação das variáveis:

• Seja xrni j, r ∈ R, n ∈ Nr, i, j ∈ E a variável binária que determina que o elemento i está planeado na

posição n da escala r sendo o elemento j o que se lhe segue na escala.

Como se vê, a variável x corresponde à agregação das variáveis y e z. A utilização da posição n explícita

em detrimento da linha l, como sugerido inicialmente na definição da variável y, visa facilitar a definição de

restrições sobre sequências de dias. Note-se que as representações podem ser equivalentes no que toca

ao número de variáveis. Basta que se considere uma definição de f para dias de escala e Enr = e|e ∈ E :

f (n) = f (e), n ∈ Nr. Neste trabalho vê-se esta optimização como um pormenor de implementação, pelo

que as restrições apresentadas não a contemplam. De notar que esta solução também facilita a definição

30

eficiente de restrições num contexto onde se pretenda definir que certas posições das escalas têm afectação

fixa à partida.

O modelo base propõe a seguinte função objectivo:

min∑r,n,i, j

kri jxrni j, r ∈ R, n ∈ Nr, i, j ∈ E (4.1)

Conceptualmente, a função 4.1 captura o objectivo fundamental do planeamento de minimizar o tempo

global que não é aproveitado tanto para trabalho como para descansos oficiais, com os quais a companhia

se compromete. Na prática, e como é expectável que aconteça normalmente, o custo pode não ser somente

em função do tempo desocupado, mas reflectir algum outro critério, como distância a um tempo de referência

entre turnos (por exemplo, para permitir maior robustez no planeamento) ou custo adicional para sequências

indesejadas por algum motivo (por exemplo, preferências por sequências de turnos que comecem progres-

sivamente mais tarde). No entanto, há que notar que o modelo proposto promove a resolução de problemas

cuja função objectivo dependa unicamente de pares de elementos.

Seguem-se as restrições que definem o problema de afectação. Assuma-se a existência da função

rem(n, d) que devolve o resto da divisão inteira de n por d. Considere-se, também, que a definição apresen-

tada de γ depende dos valores que as variáveis que a compõe tomam no contexto das iterações em que a

definição está inserida. Estas convenções facilitam a descrição de restrições sobre escalas cíclicas e são

seguidas no resto deste trabalho.

∑r,n, j

xrni j ≤ 1, r ∈ R, n ∈ Nr, i, j ∈ E (4.2)

∑i, j

xrni j = 1, r ∈ R, n ∈ Nr, i, j ∈ E (4.3)

∑i

xrni j =∑

k

xrγ jk, γ = rem(n + 1, |Nr |), r ∈ R, n ∈ Nr, i, j, k ∈ E (4.4)

xrni j ≤ vri j, r ∈ R, n ∈ Nr, i, j ∈ E, (4.5)

xrni j ≥ mrn j, r ∈ R, n ∈ Nr, i, j ∈ E, (4.6)

As restrições 4.2 e 4.3 estabelecem que cada elemento deve estar planeado em uma e só uma posição

das escalas. A restrição 4.4 garante a integridade de posições consecutivas das escalas em relação à

variável x. A restrição 4.5 garante que só são consideradas as atribuições definidas no grafo. A restrição 4.6

valida a solução em relação a posições pré-definidas.

Note-se, ainda, que, dadas as variáveis e restrições acima, é possível que nem todos os turnos sejam

atribuídos a escalas. De facto, estes só são atribuídos na medida em que permitam reduzir o custo da

função objectivo face às alternativas de planear sequências de dias desocupados que, normalmente, serão

implementadas como tendo custos mais elevados.

31

4.3.3 Modelo específico

Como descrito na Secção 4.3.2, o modelo base proposto para o PPE contempla restrições estruturais do

PPE, como a unicidade dos elementos planeados e a sua correcta disposição em sequência nas escalas.

Para modelar as regras e objectivos específicos ao caso de estudo proposto, usam-se uma combinação de

restrições adicionais e uma função de custo ajustada à realidade pretendida.

Considerem-se os seguintes parâmetros auxiliares:

• o ∈ O, com O ⊂ E, um dia de descanso simples;

• oo ∈ OO, com OO ⊂ E, uma parte de um dia de descanso duplo;

• n_roster_linesr, o número de linhas da escala r ∈ R;

• NDr, os primeiros índices de linhas que devem conter descansos duplos na escala r ∈ R;

• N1r, r ∈ R, os primeiros índices de cada linha da escala r ∈ R (correspondendo à frequência 1);

• isNighte, parâmetro binário que determina se e ∈ E é um turno nocturno;

• duratione, a duração do elemento e para efeitos de cálculos de carga de trabalho.

Todas as regras de admissibilidade são modeladas como restrições. A experiência sugeriu que esta deci-

são não introduzia complexidade adicional significativa ao problema, garantindo, por outro lado, a correcção

das soluções.

As regras [R1.2] e [R1.3], para verificar as médias de trabalho, podem ser escritas como validação da

valores acumulados para n dias, no caso horas de trabalho:

n+13∑n′=n

(∑

(i, j)∈P×P

xrγi jdurationi) ≤ 75: 00, γ = rem(n′, |Nr |), r ∈ R, n ∈ N1r (4.7)

∑(n,i, j)∈Nr×P×P

xrni jdurationi ≤ 7: 24 × n_roster_linesr, r ∈ R (4.8)

Relativamente aos descansos, têm-se as seguintes restrições:

∑(n,i, j)∈Nr×O×P

xrni j = n_roster_linesr, r ∈ R (4.9)

n+5∑n′=n

(∑

(i, j)∈O×P

xrγi j +∑

(i, j)∈OO×P

xrγi j) ≥ 1, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr (4.10)

n+7∑n′=n+4

∑(i, j)∈OO×P

xrγi j = 2, γ = rem(n′, |Nr |), r ∈ R, n ∈ NDr (4.11)

∑(n,i, j)∈Nr×OO×P

xrni j = n_roster_linesr, r ∈ R (4.12)

As regras [R2.2] e [R2.3] são validadas pelas restrições 4.9 e 4.10, respectivamente. A restrição 4.11

verifica a regra [R2.1] e a restrição 4.12 garante o cumprimento da regra [R2.4]. Note-se o uso do conjunto

NDr, que restringe as linhas de escalas que podem ter descansos duplos. Na prática, como as escalas são

cíclicas e a regra obriga a que haja um descanso duplo a cada duas semanas (ou seja, linhas), basta con-

vencionar que esses descansos devem ocorrer nas linhas par ou ímpar. A esta convenção não corresponde

32

qualquer perda de completude, antes uma redução para metade de soluções equivalentes, apenas com uma

linha de desfazamento, o que é um ganho interessante.

As regras [R1.4], [R1.5] e [R1.6] são validadas como limite ao número de turnos que ocorrem em n dias

verificando uma dada condição, no caso o número de turnos nocturnos. Como já foi discutido, este pode ser

visto como um caso particular de regras de acumulação de valores (no caso 1, representando o contributo

unitário de um turno verificar a condição “turno nocturno”) para cada n dias consecutivos de escala.

n+2∑n′=n

(∑

(i, j)∈P×P

xrγi j × isNighti) ≤ 2, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr (4.13)

n+30∑n′=n

(∑

(i, j)∈P×P

xrγi j × isNighti) ≤ 9, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr (4.14)

∑(n,i, j)∈Nr×P×P

xrni j × isNighti ≤ 1.35 × n_roster_linesr, r ∈ R (4.15)

4.4 Resolução Iterativa por Sub-Problemas

Uma forma de contornar as limitações do método proposto na Secção 4.3, é contextualizar a sua capacidade

de optimização, procurando obter melhorias localizadas no âmbito de um problema de maior dimensão, como

o proposto.

Admita-se que todas as escalas são iniciadas com uma afectação (possivelmente parcial) de elemen-

tos de planeamento. Admita-se, também, que o custo global da solução é resultado de uma combinação

linear dos custos de cada escala individualmente. Propõe-se uma resolução faseada onde é escolhido ite-

rativamente um sub-conjunto das escalas do problema a ser optimizado. O sub-problema é definido pelo

sub-conjunto de escalas escolhido e pelos turnos afectos a estas junto com os que estão, por hipótese, por

planear. O sub-problema é resolvido aplicando o algoritmo proposto anteriormente e os resultados são inte-

grados no problema global antes da iteracção seguinte. Uma solução de um sub-problema só é considerada

válida se melhorar a situação relativamente ao custo da situação inicial do sub-problema. Desta forma, a

uma melhoria local corresponderá, por definição, uma melhoria global.

Na Figura 4.7 é apresentado um sumário dos passos do algoritmo, onde está explícita a fase de melho-

ramento.

A escolha do sub-conjunto de escalas a optimizar, em cada passo da iteração, é feita segundo critérios

heurísticos que procuram estimar a melhoria possível para o sub-conjunto, escolhendo as escalas de tama-

nho razoável com maior margem para melhoria. Note-se que, com este comportamento, uma escala que,

individualmente, apresenta grande margem de melhoria, pode subverter o comportamento da heurística.

Para obviar este problema, o algoritmo prevê um passo preliminar OptimizaçãoInicial cujo objectivo é reduzir

o ruído que poderia ser causado, por escalas claramente sub-óptimas, na aplicação das heurísticas. Con-

cretamente, durante esta fase, cada escala é optimizada individualmente, partindo o processo de melhoria,

com âmbito mais global, de um estado onde já não será possível obter melhorias com a mera recombina-

ção dos elementos dentro de cada escala, melhorando os upper-bounds dos sub-problemas das iteracções

seguintes, já sobre mais escalas. Na realidade, este comportamento poderia ser obtido com a configuração

33

Estratégia Construtriva

Escalas

Escalas

fase construtiva

EscolheEscalas

OptimizaEscalas

Escalas

E'

fase de melhoramento

OptimizaçãoInicial

Figura 4.7: Sumário do algoritmo.

apropriada da componente iterativa pura, mas, sendo um passo conceptualmente relevante do algoritmo,

optou-se por explicitá-lo.

Chame-se, à função que implementa o algoritmo de melhoria iterativa, MelhoraEscalas, cuja implemen-

tação em pseudo-código é apresentada na Figura 4.8.

Este algoritmo estabelece o contexto onde a função de optimização, OptimizaEscalas, é executada.

Como já referido, por definição, a função de optimização não piora o custo da solução para as escalas da-

das. O argumento maxS ubIter estabelece o número de vezes que se admite uma optimização sem melhoria

antes de ter início uma nova iteração global, sendo o limite destas determinado por maxGlobalIter. No caso

do problema estudado neste trabalho, configura-se o algoritmo para realizar duas iteracções globais e três

sub-iteracções. Admite-se a existência de um limiar ε > 0 abaixo do qual a melhoria num dos passos de

optimização é tida como insuficiente, sendo os contadores de iteracções actualizados sem necessidade de

haver esforço de optimização, por exemplo, se a diferença entre o upper-bound e o lower-bound for inferior

a um dado limiar, já não será possível obter ganhos de monta, pelo que fará sentido procurar outros sub-

problemas. O princípio subjacente, é que a evolução das iterações globais, conforme definidas, é um factor

interessante para controlar a estratégia de escolha de escalas: o aumento das iterações globais implicará

uma progressiva dificuldade em obter melhorias, justificando o aumento do âmbito do passo de replanea-

mento.

Na prática, outras restrições heurísticas adicionais são usadas durante a procura, para aumentar a sua

eficiência, conforme apresentado na Tabela 4.1. Pretende-se evitar novamente que o algoritmo invista muito

esforço a tentar optimizar um sub-problema quando existam outras melhorias mais acessíveis. Por outro

34

ME(R,maxS ubIter,maxIterGlobais, ε)

1 nGlobalIter ← 0

2 nS ubIter ← 0

3 con juntoTabu← ∅

4 para cada r em R

5 faz

6 R′ ← OE(r)

7 R← (R \ r) ∪ R′

8 enquanto nGlobalIter < maxIterGlobais

9 faz

10 R′antes ← EE(R, con juntoTabu, nGlobalIter)

11 con juntoTabu← R′antes

12 R′depois ← ∅

13 se MM(R′antes) > ε

14 então

15 R′depois ← OE(R′antes)

16 se R′depois ⊆ ∅

17 então

18 nS ubIter ← nS ubIter + 1

19 senão

20 R← (R \ R′antes) ∪ R′depois

21 se nS ubIter >= maxS ubIter

22 então

23 nGlobalIter ← nGlobalIter + 1

24 devolve R

Figura 4.8: Pseudo-código do algoritmo de melhoria iterativa de sub-problemas.

35

lado, como uma solução só é aceitável quando melhora a solução prévia, o que pode suceder na pior das

hipóteses é sub-problemas muito promissores serem várias vezes seleccionados até convergirem para a

melhor solução passível de ser encontrada em tempo útil. Outra ressalva é que melhorias de pormenor não

são muito interessantes, face a grandes saltos na qualidade das soluções. Em qualquer caso, estes valores

são heurísticos e dependem do problema em causa. Por exemplo, em problemas em que todas as escalas

tenham mais do que 28 linhas, pelo menos a dimensão máxima usada na iteracção 2 teria necessariamente

que ser ajustada. A Iteracção 1 referida na tabela corresponde ao primeiro processamento sobre todas as

escalas.

Restrição Iteracção 1 Iteracção 2 Iteracção 3

Tolerância em relação ao lower-bound 0.1% 2.5% 5%

Tempo máximo de execução (min.) 5 5 20

Dimensão máxima do sub-problema (linhas de escala) Sem limite 28 34

Tabela 4.1: Configuração da resolução dos sub-problemas.

Para promover a variedade e evitar máximos locais, segue-se uma abordagem clássica usada em algo-

ritmos de procura local, considerando-se a existência de um conjunto tabu, que refere as últimas escalas

optimizadas. A reutilização da mesma combinação não é permitida em iteracções consecutivas, conforme

se vê na implementação em pseudo-código da função EscolheEscalas, apresentada na Figura 4.9.

Admita-se que CombinaEscalas devolve as várias combinações possíveis do conjunto dado. O processo

de escolha de escalas consiste em encontrar uma escala de referência a optimizar e a procurar conjuntos

de escalas com os quais essa escala possa ser combinada. A função MargemProgresso devolve uma

medida numérica estimada da margem de progresso expectável para a optimização das escalas. Considera-

se que esta função pode devolver −∞ quando a dimensão das escalas a resolver é demasiado grande para

o número de iterações globais já efectuadas. A função EscolheEscalaRef é de particular importância. A

escolha de uma escala de referência a replanear, permite reduzir a quantidade de alternativas a explorar para

determinar as escalas a optimizar em cada passo. Argumenta-se que, num contexto iterativo, como é o caso,

e admitindo uma implementação interessante para a função EscolheEscalaRef, as perdas desta abordagem

serão mínimas, já que as alternativas suficientemente interessantes acabarão por ser escolhidas durante a

procura. Num contexto onde exista uma menor combinabilidade entre escalas, soluções alternativas podem

ser seguidas, onde sejam analisadas, em cada passo, todas as combinações possíveis.

Na aplicação deste algoritmo ao problema proposto neste trabalho, a função EscolheEscalaRef está

configurada para devolver a combinação linear da quantidade de violação de tempos de protecção de des-

cansos com a quantidade de tempo não aproveitado na escala, contando os dias de descanso complementa-

res como 7:00 para este factor. Pretende-se, assim, identificar as escalas menos optimizadas em relação aos

dois factores principais a optimizar, procurando-se depois combinar estas escalas com aquelas que mostrem

maior promessa de evolução. A função MargemProgresso é implementada como a diferença entre o valor

da solução corrente da escalas com o resultado da resolução da relaxação linear do modelo. Desta dife-

rença (que, na prática, corresponde ao delta entre o limite superior e inferior do custo da solução) retira-se

36

EE(R, con juntoTabu, nGlobalIter)

1 escalaRe f ← EER(R)

2 escalasEscolhidas← ∅

3 margemEscalasEscolhidas← 0

4 para cada R′ em CE(R)

5 faz

6 se (R′ \ con juntoTabu) ⊃ ∅

7 então

8 escolhaAlternativa← R′ ∪ escalaRe f

9 margemEscolhaAlternativa← MP(escolhaAlternativa)

10 se margemEscolhaAlternativa > margemEscalasEscolhidas

11 então

12 escalasEscolhidas← escolhaAlternativa

13 margemEscalasEscolhidas← margemEscolhaAlternativa

14 devolve escalasEscolhidas

Figura 4.9: Pseudo-código para o processo de escolha das escalas a optimizar.

a margem de progressão possível, admitindo-se que será mais provável obter ganhos interessantes perante

uma diferença grande do que perante uma diferença reduzida.

Note-se que a solução proposta, embora podendo ser vista como uma implementação de uma procura lo-

cal do tipo trepar-a-colina, tem uma grande capacidade de recuperação de decisões erradas, já que, em cada

iteração, a operação de optimização tem oportunidade de rever várias decisões, correspondendo à afectação

de vários turnos a várias escalas. É, também, uma solução flexível do ponto de vista da sua aplicação no

contexto de um sistema pericial. A uma rápida melhoria no início, segue-se um processo progressivamente

mais abrangente, que pode ser interrompido a qualquer momento. No entanto, a sua aplicação a problemas

de grande dimensão apresentou algumas dificuldades difíceis de contornar, em particular devido às limita-

ções, espaciais e temporais que o modelo colocava quando lidava com sub-problemas de dimensão superior

a duas ou três escalas, necessidade que surgia para se obterem melhorias a partir de determinado ponto.

Adicionalmente, pode-se considerar o cenário possível de haver escalas de dimensão superior à que o mo-

delo suporta. Optimização de partes de escalas seria uma hipótese, mas encontrar um critério suportar um

processo desse género não se antevê fácil.

4.5 Resolução por Relaxação Iterativa do Espaço de Estados

Uma das características que torna problemas de planeamento de escalas de grande dimensão tratáveis é

encontrar-se, invariavelmente, algum nível de sobreposição do trabalho a planear, sobretudo nos períodos

do dia com maior exigência em relação à quantidade de serviços prestados. É comum existirem vários

turnos com horas de início e fim praticamente coincidentes, por exemplo, a menos de 10 ou 15 minutos.

Para efeitos de planeamento de escalas, sobretudo em planeamento de longo-prazo, estas diferenças são,

37

normalmente, negligenciáveis, pelo que a escolha sobre qual destes turnos deve ser planeado é irrelevante.

De facto, um planeador humano que lide com o problema de planeamento de escalas terá tendência, de

forma mais ou menos consciente, a tirar partido desta particularidade, navegando pelo que se poderá chamar

de espaço de padrões de soluções, onde as decisões serão do tipo “planear um turno nocturno seguido de

um turno vespertino”. Dada esta decisão, o planeador procede à afectação de turnos concretos aos dias,

admitindo rever as decisões mais tarde, trocando turnos com características semelhantes.

Outro princípio, que se torna facilmente evidente quando o comportamento do método de resolução do

problema completo é analisado (ver Secção 5), é que uma forma de controlar o crescimento da combina-

bilidade do problema é assumir uma abordagem faseada, por exemplo, onde é calculado um padrão de

descansos à partida, o que permite reduzir o espaço de soluções admissíveis nas fases seguintes.

O método apresentado nesta secção tira partido destas duas abstracções para construir uma solução

inicial interessante para a aplicação do método de melhoria iterativa usado no método de referência e descrito

na Secção 4.2.

No remanescente desta secção são apresentados traços gerais da solução e algoritmo correspondente

na Secção 4.5.1. O componente estrutural do modelo, que define o tipo de problema a resolver, é des-

crito na Secção 4.5.2. As secções 4.5.3 e 4.5.4 apresentam as restrições adicionais propostas para (1) o

planeamento de descansos e (2) a afectação principal e afectação final, respectivamente.

4.5.1 Estratégia

Tome-se o problema de determinar o padrão óptimo de descansos para o PPE proposto. Tem-se, por defini-

ção, que o padrão é tão melhor quanto permita, verificando as regras de admissiblidade, que o planeamento

de turnos cumpra os objectivos definidos. Em particular, constata-se facilmente que os objectivos [O1], [O4]

e [O5] estão directamente relacionados com o cálculo do padrão de descansos.

Note-se que sobretudo os objectivos [O4] e [O5] introduzem um desafio interessante: os turnos que

têm impacto no planeamento de descansos (por terminarem muito tarde ou começarem muito cedo) têm

particularidades adicionais (tipo de dia, duração média) que os diferenciam dos outros. Considerar todos os

turnos por igual no planeamento dos descansos, num contexto onde há validações (média de trabalho) ou

objectivos (escalas com preferência para turnos de um dado tipo de dia) que dependem destas propriedades,

poderá resultar numa solução para o padrão de descansos que leve a resultados globalmente sub-óptimos

depois do planeamento de turnos. Por outro lado, considerar cada turno individualmente corresponderá a

resolver o problema completo, o que introduz, como se percebe na análise a esse método, limitações à

dimensão de problemas que podem ser considerados.

Propõe-se, estendendo este raciocínio, um método que resolve o problema de forma faseada mas onde,

em cada estágio é considerado um conjunto limitado de regras e objectivos. O trabalho a planear é distribuído

em agrupamentos de turnos, que partilham características consideradas representativas para os objectivos

de cada fase. Assim, em vez de se planear cada turno individualmente, o modelo exprime unicamente a

necessidade de planear o número de turnos de trabalho que pertencem a cada agrupamento, representados

por um turno modelo cujas características são inferidas a partir do valor médio das propriedades dos turnos

que compõe o agrupamento. O princípio subjacente é o de considerar o máximo de informação relevante no

38

modelo, enquanto se ignora o detalhe desnecessário, tendo em vista a fase que está a ser resolvida. Desta

forma, é possível controlar a explosão combinatória que ocorre quando o problema cresce em dimensão,

obtendo-se, mesmo assim, aproximações globalmente interessantes a soluções válidas.

No caso da realidade concreta em estudo, são propostas três fases: uma para o cálculo do padrão de

descansos, uma para a afectação de agrupamentos aos dias remanescentes e uma final onde são atribuídos

turnos concretos aos dias de trabalho, sujeitos à condição de pertencerem ao agrupamento que foi previa-

mente atribuído ao dia.

A desvantagem natural de usar esta abstracção é a perda da garantia de optimalidade. Basta ver que,

para as soluções do modelo serem representativas, é necessário que este inclua a validação de regras

de admissibilidade. Estas regras terão de ser necessariamente validadas sobre os turnos modelo de cada

agrupamento. Ora, é possível que os turnos pertencentes a dois agrupamentos não possam ser, em média,

planeados contiguamente, embora, dentro de cada agrupamento, existam turnos que formem sequências

válidas, por hipótese pertencentes à solução óptima. Para minimizar os efeitos desta situação, admite-se que

a resolução faseada tem como objectivo a obtenção de uma solução inicial interessante segundo objectivos

particularmente difíceis de resolver com uma visão local. Uma vez obtida esta solução inicial, torna-se

possível aplicar o algoritmo de melhoria iterativa proposto na Secção 4.2. Este mostra-se particularmente

eficaz trabalhando sobre uma solução globalmente interessante e já considerando o detalhe dos turnos

individuais. Esta decisão oferece ainda uma ferramenta adicional tendo em vista a desejável aplicabilidade

deste modelo a várias realidades: esta última fase pode funcionar como rede de segurança, permitindo ao

modelo ignorar ou simplificar certas regras mais intrincadas, complicadas de descrever em programação

linear, e sobre as quais o algoritmo de melhoria iterativa se revele particularmente eficaz.

4.5.2 Modelo base

Os parâmetros que servem de suporte ao modelo base proposto são semelhantes aos já sugeridos para o

método de resolução do problema completo (ver Secção 4.3.2).

• Seja c ∈ C um agrupamento de elementos a planear;

• Seja r ∈ R uma escala a preencher;

• Seja n ∈ Nr um dia da escala r;

• Seja f ∈ F uma frequência de planeamento;

• Seja Lr f , r ∈ R, f ∈ F um conjunto com todos os dias da escala r à frequência f ;

• Seja tc f , c ∈ C, f ∈ F o número de elementos pertencentes ao agrupamento c à frequência f ;

• Seja k1cr, c ∈ C, r ∈ R o custo de planear elementos pertencentes ao agrupamento c na escala r;

• Seja vi j, i, j ∈ C o parâmetro binário que toma o valor 0 se elementos do agrupamento i e elementos

do agrupamento j não podem ser planeadas em sequência;

• Seja mrnc, r ∈ R, n ∈ Nr, c ∈ C o parâmetro binário que toma o valor 1 se a posição n da escala r tem

necessariamente de conter um elemento pertencente ao agrupamento c;

• Seja g ∈ G um objectivo a considerar no custo da solução;

39

Como se vê, os parâmetros permitem uma expressividade semelhante à do problema completo, mas fo-

ram adaptados ao novo conceito de agrupamento. O conjunto Lr f é meramente um instrumento auxiliar para

as definições apresentadas de seguida. As frequências são explicitadas (conjunto F) porque se convenciona

que um agrupamento pode ter turnos de várias frequências. Esta solução é em tudo equivalente a considerar

a frequência como critério de separação de agrupamentos, mas eventualmente mais intuitiva, em particular

dada a definição do problema generalizado apresentada na Secção 2.2.

Uma das desvantagens da formulação para o problema completo apresentada, é a quantidade de variá-

veis que requer, por forma a suportar uma função de custo contínua sobre as sequências de turnos. Mesmo

considerando o conceito de agrupamento, opta-se por uma abordagem alternativa: usar uma variável que

exprime a afectação de um agrupamento a uma posição de escala, sem relação com qualquer informação de

contexto adicional. Se, por um lado, é obtida uma redução dramática no número de combinações possíveis

para representar a afectação de agrupamentos a dias, por outro, é retirada uma forma simples de exprimir o

custo como função contínua.

• Seja arnc, r ∈ R, n ∈ Nr, c ∈ C a variável binária que determina que a posição n da escala r contém um

elemento pertencente ao agrupamento c.

A resolução faseada, com recurso a uma última fase para melhoria/reparação da solução obtida até então,

permite contornar a falta de expressividade que o modelo proposto tem para representar uma função de custo

contínua. Os objectivos da fase construtiva são modelados com aproximações binária (cumpre/não cumpre),

com um custo ou peso associado. Esta formulação pode ser vista como correspondendo a uma aproximação

discreta da função de custo real. Admitindo que os objectivos são bem escolhidos, é expectável que a

solução inicial obtida constitua um ponto de partida interessante para a fase de melhoria iterativa. Esta sim,

pode operar sobre uma função de custo contínua, permitindo ajustes de pormenor. Os referidos objectivos

são modelados através da nova variável wgrn, que representa a existência de desvios face um dado objectivo

g. O parâmetro K2g representa o custo de uma violação ao objectivo.

• Seja k2g, g ∈ G o parâmetro que determina o custo de violar o objectivo g;

• Seja wgrn, g ∈ W, r ∈ R, n ∈ Nr a variável binária que determina que existe um desvio face ao objectivo

g na posição n da escala r.

A função de custo sugerida contempla, para além dos objectivos validados por w, um custo base para o

planeamento de um dado agrupamento numa escala. Esta faculdade é particularmente útil sobre agrupa-

mentos de elementos de planeamento que não representem turnos (por exemplo, dias de reserva ou dias de

descanso complementar), sendo desejável associar um custo, normalmente elevado, ao planeamento destes

em detrimento de trabalho explícito, dado o objectivo [O1].

min∑r,n

(∑

g

k2gwgrn +

∑c

kcrarnc), r ∈ R, n ∈ Nr, c ∈ C, g ∈ G (4.16)

As seguintes restrições representam efectivamente a modelação do problema como Problema de Afecta-

ção sujeito a restrições adicionais:

∑c

arnc = 1, r ∈ R, n ∈ Nr, c ∈ C (4.17)

40

∑r

∑n

arnc ≤ tc f , r ∈ R, f ∈ F, n ∈ Lr f , c ∈ C (4.18)

arnc ≥ mrnc, r ∈ R, n ∈ Nr, c ∈ C (4.19)

arni + ar(rem(n+1,|Nr |)) j ≤ vi j + 1, r ∈ R, n ∈ Nr, i, j ∈ C (4.20)

A restrição 4.17 obriga a que cada dia tenha no máximo um agrupamento afecto, sendo a dimensão dos

agrupamentos validada na restrição 4.18. A possibilidade de considerar uma afectação pré-definida para

o problema é suportada pela restrição 4.19. A validade de planear agrupamentos de forma consecutiva é

verificada pela restrição 4.20.

4.5.3 Modelo para Cálculo de Descansos

O modelo estrutural apresentado na Secção 4.5.2 é complementado com restrições e parâmetros que expri-

mem as regras de admissibilidade para que um padrão de descansos seja considerado válido.

Considerem-se os seguintes parâmetros auxiliares:

• c ∈ C um agrupamento;

• o ∈ O, com O ⊂ C, um agrupamento de descansos simples;

• oo ∈ OO, com OO ⊂ C, um agrupamento de descansos duplos;

• oo1 ∈ OO1, com OO1 ⊂ OO, um agrupamento de descansos duplos a começar à Sexta-feira;

• oo2 ∈ OO2, com OO2 ⊂ OO, um agrupamento de descansos duplos a começar ao Sábado;

• oo3 ∈ OO3, com OO3 ⊂ OO, um agrupamento de descansos duplos a começar ao Domingo;

• n_roster_linesr, o número de linhas da escala r ∈ R;

• NDr, os primeiros índices de linhas que devem conter descansos duplos na escala r ∈ R;

• durationc, c ∈ C, a duração do elemento c para efeitos de cálculos de carga de trabalho.

Os agrupamentos usados nos parâmetros O, OO e OOn são gerados a partir da dimensão do problema

(é possível estimar o número máximo de dias de descanso que o problema pode ter). Analogamente, agru-

pamentos que representam dias de reserva e de descanso complementares são acrescentados trivialmente

a C, que inclui agrupamentos para todos os turnos de trabalho, criados com base nas seguintes regras:

• tipo de dia, se é nocturno, matutino, diurno ou vespertino;

• hora de início entre as 0:00 e as 5:00, identifica turnos que violam de forma grave o tempo de protecção

de um descanso se o dia anterior for um descanso oficial;

• hora de início entre as 5:00 e as 6:00, identifica turnos que violam de forma ligeira o tempo de protecção

de um descanso se o dia anterior for um descanso oficial;

• hora de fim entre as 20:00 e as 23:00, identifica turnos que violam de forma ligeira o tempo de protecção

de um descanso se o dia seguinte for um descanso oficial;

• hora de fim entre as 23:00 e as 26:00, identifica turnos que violam de forma grave o tempo de protecção

de um descanso se o dia seguinte for um descanso oficial;

41

O agrupamento de um turno é determinado pela disjunção das regras acima. Como se percebe facil-

mente, todos os turnos estarão em pelo menos um agrupamento.

As regras para o que é considerado um descanso válido são validadas pelas seguintes restrições:

∑n

arno = n_roster_linesr, r ∈ R, n ∈ Nr, o ∈ O (4.21)

∑n

arno = n_roster_linesr, r ∈ R, n ∈ Nr, oo ∈ OO (4.22)

n+7∑n′=n+4

∑o

arγo = 2, γ = rem(n′, |Nr |), r ∈ R, n ∈ NDr, o ∈ OO (4.23)

ar(l+5)o = ar(l+6)o, r ∈ R, n ∈ NDr, o ∈ OO1 (4.24)

n+5∑n′=n

∑o

arγo ≥ 1, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr, o ∈ O ∪ OO (4.25)

n+3∑n′=n

∑o

arγo ≤ 2, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr, o ∈ O ∪ OO (4.26)

As restrições 4.21 e 4.22 verificam o número de descansos simples e duplos na solução. A restrição 4.23

garante que existe um número suficiente de descansos duplos nas semanas que devem conter descansos

duplos. A restrição 4.24 garante que, se um dos dias Sexta ou Sábado (frequências 5 e 6) de uma semana

tiverem um descanso duplo a começar à Sexta-feira, então o dia complementar também terá de ter um

descanso desse tipo. Restrições análogas são definidas para descansos duplos ao Sábado e Domingo. As

restrições 4.25 e 4.26 garantem, respectivamente, que há pelo menos um descanso oficial a cada 6 dias

mas não mais do que 2 a cada 4, o que corresponde a uma preferência de planeamento de descansos, para

garantir que estes se encontram distribuídos ao longo da escala.

Como discutido na Secção 4.5.1, é intuitivamente vantajoso ter em conta, na função de custo, objectivos

que possam ser particularmente influenciados pelo padrão de descansos escolhido. Neste caso, para além

do custo superior que será normalmente atribuído a planear reservas ou descansos complementares em vez

de turnos de trabalho, consideram-se dois níveis de violação (ligeira e severa) para os objectivos [O4] e [O5].

Admita-se que existem os seguintes parâmetros:

• Seja isLateDutyS o f tc, c ∈ C o parâmetro binário que identifica os turnos do agrupamento c como

ultrapassando o limite considerado para violação ligeira do tempo de protecção antes de um descanso;

• Seja isLateDutyHardc, c ∈ C o parâmetro binário análogo ao anterior mas para o limite severo.

Os objectivos são incorporados na função de custo com recurso à variável auxiliar w, admitindo-se uma

configuração apropriada de k21 e k2

2 para representar os custos. Para cada uma das equações seguintes,

considere-se que n ∈ Nr, r ∈ R, o ∈ O ∪ OO, c ∈ C, γ = rem(n + 1, |Nr |).

w1rn ≥∑

c

arncisLateDutyHardc +∑

o

arγo − 1 (4.27)

42

w2rn ≥∑

c

arncisLateDutyS o f tc +∑

o

arγo − 1 (4.28)

A validação do objectivo [O5] pode ser feita de forma análoga.

Para terminar, também as médias são validadas, com o propósito de tornar o problema parcial o mais

completo possível, mesmo que, nesta fase, só sejam considerados agrupamentos muito abrangentes. Res-

pectivamente, as equações seguintes garantem a validade da carga de trabalho de cada duas linhas conse-

cutivas de escala e para cada escala completa.

n+13∑n′=n

∑c

arγcdurationc ≤ 75: 00, γ = rem(n′, |Nr |), r ∈ R, n ∈ N1r, c ∈ C (4.29)

∑(n,c)∈Nr×C

arncdurationc ≤ 7: 24 × n_roster_linesr, r ∈ R (4.30)

4.5.4 Afectação de Agrupamentos e Final

Na segunda fase, determinam-se as afectações de agrupamentos a dias. Neste caso, já são consideradas

regras para definição de agrupamentos mais detalhadas, sendo o aumento de complexidade correspondente

compensado pelo facto de ser imposto como restrição o padrão de descansos calculado anteriormente:

• tipo de dia, se é nocturno, matutino, diurno ou vespertino;

• hora de início entre as 0:00 e as 5:00, identifica turnos que violam de forma grave o tempo de protecção

de um descanso se o dia anterior for um descanso oficial;

• hora de início entre as 5:00 e as 6:00, identifica turnos que violam de forma ligeira o tempo de protecção

de um descanso se o dia anterior for um descanso oficial;

• hora de início em intervalos de 2:00 entre as 6:00 e as 26:00,2 permite detalhar com maior precisão o

turno planeado;

• hora de fim entre as 20:00 e as 23:00, identifica turnos que violam de forma ligeira o tempo de protecção

de um descanso se o dia seguinte for um descanso oficial;

• hora de fim entre as 23:00 e as 26:00, identifica turnos que violam de forma grave o tempo de protecção

de um descanso se o dia seguinte for um descanso oficial;

• hora de fim em intervalos de 2:00 entre as 6:00 e as 20:00, permite detalhar com maior precisão o

turno planeado;

• duração do turno em intervalos de 1:00 entre as 6:00 e as 9:00, permite detalhar com maior precisão o

turno planeado;

O modelo para cálculo de descansos é já muito completo, seguindo o princípio de dotar os modelos

com o máximo de informação relevante em cada momento, pelo que a única diferença significativa para o

modelo de afectação de agrupamentos em termos de restrições é a introdução de validações relativamente

ao planeamento de turnos nocturnos, de forma análoga às apresentadas na Secção 4.3.3:

2Regras deste tipo condensam várias regras correspondentes aos intervalos, neste caso de 2:00, a começar no início do período

dado e a terminar no fim, ou seja, seria equivalente a definir uma regra para turnos a começar entre as 6:00 e as 8:00, outra para o

intervalo entre as 8:00 e as 10:00, etc.

43

n+2∑n′=n

(∑

c

xrγc × isNightc) ≤ 2, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr, c ∈ C (4.31)

n+31∑n′=n

(∑

c

xrγc × isNightc) ≤ 9, γ = rem(n′, |Nr |), r ∈ R, n ∈ Nr, c ∈ C (4.32)

∑(n,c)∈Nr×C

arnc × isNightc ≤ 1.35 × n_roster_linesr, r ∈ R (4.33)

Note-se que, uma vez que o padrão de descansos oficiais é um dado de entrada desta fase, não é ne-

cessário incluir explicitamente as restrições relativamente aos descansos, embora a sua inclusão resultasse

unicamente em algum trabalho adicional para o pre-solver da ferramenta de optimização usada, já que as

restrições seriam trivialmente verificadas.

No último estágio, é meramente considerada uma restrição adicional que obriga a que a afectação esco-

lhida (já com elementos de planeamento concretos) esteja dentro do agrupamento previamente determinado

para cada dia. Admitindo-se a existência dos seguintes parâmetros:

• Seja E o conjunto de elementos de planeamento pertencentes ao problema;

• Seja Urn ⊂ E o conjunto de elementos de planeamento que podem ser planeados na posição n ∈ Nr

da escala r ∈ R.

Tem-se a seguinte verificação adicional no modelo:

∑c

arnc = 1, r ∈ R, n ∈ Nr, c ∈ Urn (4.34)

44

5 Resultados

Na Secção 4 são descritos quatro métodos alternativos para resolver o problema. Nesta secção, os métodos

são concretizados e aplicados a vários cenários de planeamento extraídos do problema proposto. O método

baseado em melhoria iterativa é utilizado como método de referência.

Os vários métodos estudados são identificados da seguinte forma nesta secção. Um método baseado

em descansos fixos pressupõe a execução do mesmo processo utilizado no método de referência:

• REF, acrónimo para Método de Referência (ver Secção 4.2);

• COM-DYN, acrónimo para Método Completo com Descansos Dinâmicos (ver Secção 4.3);

• COM-FIX, acrónimo para Método Completo com Descansos Fixos (ver Secção 4.3);

• ITER, acrónimo para Método Iterativo por Sub-Problemas, implementado sobre o método COM-FIX

(ver Secção 4.4);

• SSR, acrónimo para Método de Relaxação Iterativa do Espaço de Estados (ver Secção 4.5);

Os resultados que envolvem a resolução de problemas de PIM foram obtidos usando a versão 11 do

optimizador comercial CPLEX da ILOG, correndo num computador Intel Core 2 Duo 1.8 GHz com 2GB/Go

DDR2 SDRAM, sem recurso a optimização em paralelo. Nos métodos COM e, por inerência, ITER, que lidam

com um modelo mais expressivo, o optimizador é configurado com parâmetros mais agressivos, conforme

apresentado na Tabela 5.1. No método SSR, a experiência levou à utilização dos parâmetros referidos na

Tabela 5.2. Neste último caso, constatou-se que não havia um grande benefício a retirar de uma estratégia

agressiva, nomeadamente no que toca a cortes.

Parâmetro Valor

bound strengthening 1

feasibility pump 2

repeat presolve 3

symmetry breaking 5

Tabela 5.1: Parametrização CPLEX para os métodos baseados na resolução do Problema Completo.

Parâmetro Valor

cutting plane passes 1

mip heuristic frequency 50

mip variable selection strategy 4

Tabela 5.2: Parametrização CPLEX para o método baseado na em relaxação do espaço de estados.

Como as funções de custo não são iguais, embora procurem representar os mesmos objectivos, para

efeitos de comparação são apresentadas estatísticas relevantes de cada solução:

• Tempo útil, tempo total de execução no caso do método REF e de optimização nos restantes métodos,

em horas, minutos e segundos;

45

• Tempo real, no caso dos métodos baseados em programação linear, o tempo total incluindo preparação

dos dados;

• Turnos, número de turnos planeados. No caso da estratégia SSR, apresenta-se entre parêntesis o

número de agrupamentos com que o modelo lidou durante a fase de afectação de agrupamentos. É

interessante notar como o número não varia muito, o que significa que o crescimento do problema fica

reduzido a uma dimensão (o número de dias de escala) e não a duas (a um número superior de dias

de escala também corresponde um número superior de turnos);

• Descansos Compl., número de dias de descanso complementares;

• Média, duração média dos turnos planeados em horas, minutos e segundos (valor influenciado pelo

número de descansos complementares e pelo trabalho planeado);

• Violação Protecções, quantidade de violação do tempo de protecção antes ou depois de um descanso

oficial em horas e minutos;

• Dias Preferenciais, número de turnos que respeitam os dias preferenciais das escalas. Esta estatística

só é aplicável aos quarto e quinto cenários, onde os efeitos de considerar este objectivo podem ser

melhor avaliados sem viciar os resultados, como poderia acontecer nos cenários de menor dimensão.

Há uma ressalva importante a colocar relativamente à estatística tempo real: nos protótipos desenvolvi-

dos, não foi investido esforço de engenharia em tornar a preparação dos dados eficiente. Nomeadamente,

em todas as chamadas à optimização feitas no método ITER, é compilada e recalculada toda a informa-

ção de estado relevante, que é escrita de forma persistente, fornecida a um tradutor e só depois lida pelo

CPLEX. Todo este processo poderia ser facilmente melhorado, mantendo uma representação do estado e

executando o optimizador no âmbito do mesmo processo, minimizando custos de comunicação. No entanto,

este esforço não traria benefícios para a prova de conceito pretendida. Para efeitos comparativos, o valor

realmente significativo é o do tempo útil, já que é o único que depende de mudanças no algoritmo para ser

melhorado. O outro valor é fornecido meramente para completude da informação disponibilizada. No caso

do método SSR, o tempo útil apresentado é a soma das várias fases do processo, incluindo a reparação

final. Foram utilizados limites de 2600 (∼0h43) e 10000 segundos (∼2h46) para a primeira e segunda fases

respectivamente. Estes valores foram sistematicamente atingidos, embora em muitos casos a optimização

tenha convergido rapidamente para um valor muito próximo do óptimo (< 1%). Numa situação real, seria

possível estimar limites de execução mais ajustados, por exemplo, em função da dimensão do problema, ou

aplicar outros critérios para evitar o tempo de processamento adicional necessário para o optimizador provar

ter sido encontrada a solução óptima.

O primeiro cenário consiste no planeamento de 38 turnos numa escala de 8 linhas (ver Tabela 5.3). Torna-

se imediatamente óbvia a vantagem de usar PIM, já que é obtida, mesmo para um exemplo pequeno como

este, uma redução do tempo de violação de protecções. Outra constatação relevante é que, se o cálculo

dinâmico de descansos permite ganhos adicionais, faz a combinabilidade do problema crescer para lá de

um nível tratável. De facto, só neste cenário foi possível obter resultados com este método. De notar que o

método ITER, para uma escala, reduz-se à utilização do COM-FIX, justificando-se assim a sua omissão.

No segundo cenário, cujos resultados são apresentados na Tabela 5.4, os métodos são testados com um

problema que consiste em planear 171 turnos em três escalas com um número total de 36 linhas. Neste caso,

46

REF COM-FIX COM-DYN

Tempo útil 0:00:01 0:00:01 0:03:00 (0.13%)

Tempo real 0:00:03 0:03:04

Turnos 38 38 38

Descansos Compl. 1 1 1

Média 6:59:58 6:59:58 6:59:58

Violação Protecções 24:21 11:18 7:50

Tabela 5.3: Resultados com um problema com uma escala de 8 linhas

constata-se que o método COM-DYN já não é capaz de encontrar uma solução em tempo útil, demorando

8 horas até o processo ter sido interrompido. O algoritmo ITER converge para uma solução equivalente à

obtida pela aplicação do método COM-FIX a todo o problema, o que ilustra o potencial de uma resolução

sobre sub-problemas (relembra-se que o número máximo de cada sub-problema está definido como sendo

34 linhas, o que implica que, em nenhum momento, um passo do método ITER é equivalente a aplicar o

COM-FIX, já que o problema completo proposto neste cenário tem 36 linhas).

REF COM-FIX COM-DYN ITER

Tempo útil 0:00:02 01:00:00 (2.06%) 08:00:00 (+∞) 00:54:50

Tempo real 01:02:12 08:03:08 01:11:03

Turnos 171 171 171

Descansos Compl. 3 2 2

Média 6:56:53 6:59:13 6:59:13

Violação Protecções 81:37 33:46 33:46

Tabela 5.4: Resultados com um problema com três escalas num total de 36 linhas

A Tabela 5.5 mostra os métodos aplicados a um problema com 394 turnos e 82 linhas em 7 escalas. O

método SSR não consegue melhorar face ao método ITER, o que é facilmente explicado pela dimensão do

problema ainda não ser relevante e não terem sido feitos ajustes às regras de definição de agrupamentos

para permitir ao modelo tirar partido da dimensão do problema.

REF ITER SSR

Tempo útil 0:00:19 3:04:20 3:23:35

Tempo real 5:32:13 3:27:10

Turnos 394 394 394 (41)

Descansos Compl. 4 1 1

Média 6:55:30 6:59:35 6:59:35

Violação Protecções 105:40 31:44 52:35

Tabela 5.5: Resultados com um problema com 7 escalas num total de 82 linhas

47

O quarto cenário corresponde a um problema já de dimensão interessante. A Tabela 5.6 mostra os

resultados obtidos com um problema que consiste em planear 906 turnos em 15 escalas com um total de

190 linhas. É interessante ver como o método ITER consegue resultados melhores nos objectivos mais

localizados, enquanto o método SSR já se revela mais eficaz nos objectivos globais, como a optimização da

média, mantendo-se melhor que o método de referência nos outros parâmetros.

REF ITER SSR

Tempo útil 0:01:39 5:45:35 3:24:27

Tempo real 11:40:42 3:30:15

Turnos 906 906 906 (44)

Descansos Compl. 10 8 7

Média 6:58:11 6:59:04 6:59:31

Violação Protecções 276:41 97:40 210:23

Dias Preferenciais 588 746 626

Tabela 5.6: Resultados com um problema com 15 escalas num total de 190 linhas

O cenário final consiste na resolução total do problema, com o planeamento de 1459 turnos nas 304 linhas

das 23 escalas do problema. Os resultados são apresentados na Tabela 5.7. Neste caso já é possível ver

como o método SSR converge para uma solução globalmente muito interessante em relativamente pouco

tempo. De resto, este factor sugere que ainda seria possível refinar a definição de agrupamentos para,

eventualmente, serem obtidas melhorias adicionais. Para um problema desta dimensão, o método ITER já

tem dificuldades em convergir.

REF ITER SSR

Tempo útil 0:03:07 7:57:16 3:25:55

Tempo real 24:07:37 3:35:16

Turnos 1459 1459 1459 (47)

Descansos Compl. 17 13 10

Média 6:57:44 6:58:50 6:59:40

Violação Protecções 317:01 170:44 114:59

Dias Preferenciais 1102 1088 1168

Tabela 5.7: Resultados com um problema com 23 escalas num total de 304 linhas

48

6 Conclusão

Neste trabalho, estuda-se o Problema de Planeamento de Escalas, apresentado de uma forma geral e com

as suas variantes explicitadas em termos de classes de problemas aplicáveis a várias realidades. Aborda-se

uma instância de grande dimensão da variante do problema chamada Problema de Planeamento de Esca-

las Cíclicas, com a investigação de vários métodos para a sua resolução, tanto de Inteligência Artificial como

de Investigação Operacional. Chega-se a um método que combina os benefícios da Programação Linear

com uma das técnicas clássicas de Inteligência Artificial, a procura local, permitindo a construção de um

método de resolução que permite, não só a obtenção de resultados superiores aos possíveis com outras

técnicas existentes na literatura, como, também, que isso seja conseguido com base num processo mais

abrangente e flexível em relação ao domínio de problemas que pode abarcar. Esta última, uma característica

fundamental para que este método possa ser aplicado em várias realidades com igual sucesso e, assim,

fazer parte de um sistema pericial abrangente. Os outros métodos estudados também são promissores em

cenários mais restritos. Entre outras conclusões, destaca-se a ideia do benefício que poderá ser extraído

de calcular um padrão de descansos de forma informada, idealmente englobando este factor no problema a

optimizar.

Espera-se que seja possível aplicar o método proposto à resolução de problemas com escalas instancia-

das por oposição a escalas cíclicas. Em princípio, esta transição não oferece um desafio de monta, havendo

a expectativa de serem obtidos resultados igualmente interessantes. Outra evolução simples poderá ser

conseguida com a utilização da funcionalidade de optimização em paralelo da ferramenta CPLEX.

Um dos pressupostos fundamentais do método proposto é a possibilidade de os turnos poderem ser

agrupados em conjuntos significativos no que toca aos objectivos macro que se pretende optimizar. Embora

o processo de encontrar critérios para esse agrupamento se tenha revelado bastante simples para o exemplo

estudado, e passível de ser feito manualmente, será interessante avaliar o uso de algoritmos de clustering

para uma inferência automática dos melhores agrupamentos em função dos dados. Uma situação onde

facilmente seriam obtidas melhorias prende-se com a dimensão do problema a resolver: neste trabalho,

todos os cenários criados foram resolvidos com base nos mesmos critérios, quando seria intuitivamente

vantajoso usar regras mais refinadas para a definição dos agrupamentos em problemas de menor dimensão.

Outra melhoria potencial poderá advir da criação de uma pool de soluções para distribuição de descansos.

Dado o impacto que os descansos têm nas soluções, também pode ser explorada a possibilidade de fixar

alguns descansos mas permitir dinamismo a outros, dando ao modelo mais flexibilidade na optimização.

No caso de realidades ainda mais complexas, em dimensão ou exigências sobre a qualidade de solução,

admite-se que se torne difícil encontrar agrupamentos úteis, no sentido em que estes sejam, simultanea-

mente, abrangentes o suficiente para reduzir a combinabilidade do problema e representantivos dos objecti-

vos a optimizar. Nestes casos, espera-se que seja possível obter bons resultados com a aplicação do método

no âmbito de uma procura iterativa sobre sub-problemas, de forma análoga à estudada no método intermé-

dio proposto na Secção 4.4. De facto, fica a ideia, pelos resultados obtidos, que uma optimização iterativa

de partes do problema seleccionadas criteriosamente pode levar à obtenção de resultados de optimização

interessantes. A falta de capacidade do sub-processo utilizado em lidar com problemas de dimensão útil

foi a principal razão para o seu insucesso global. Em situações limite, espera-se que, combinando os dois

49

métodos, se possam contornar obstáculos adicionais.

50

Bibliografia

[AD04] U. Aickelin and K.A. Dowsland. An indirect Genetic Algorithm for a nurse-scheduling problem.

Computers and Operations Research, 31(5):761–778, 2004.

[Alm06] F. Almeida. Planeamento de Recursos Móveis por Melhoramento iterativo. PhD thesis, Instituto

Superior Técnico, 2006.

[AR81] J.L. Arthur and A. Ravindran. A Multiple Objective Nurse Scheduling Model. IIE Transactions,

13(1):55–60, 1981.

[BKS03] EK Burke, G. Kendall, and E. Soubeiga. A Tabu-Search Hyperheuristic for Timetabling and Ros-

tering. Journal of Heuristics, 9(6):451–470, 2003.

[BP05] J.F. Bard and H.W. Purnomo. A column generation-based approach to solve the preference sche-

duling problem for nurses with downgrading. Socio-Economic Planning Sciences, 39(3):193–213,

2005.

[CFL+98] A. Caprara, F. Focacci, E. Lamma, P. Mello, M. Milano, P. Toth, and D. Vigo. Integrating constraint

logic programming and operations research techniques for the crew rostering problem. Software

Practice and Experience, 28(1):49–76, 1998.

[CFT+97] A. Caprara, M. Fischetti, P. Toth, D. Vigo, and P.L. Guida. Algorithms for railway crew management.

Mathematical Programming, 79(1):125–141, 1997.

[CG04] P. Cappanera and G. Gallo. A Multicommodity Flow Approach to the Crew Rostering Problem.

Operations Research, 52(4):583–596, 2004.

[CL96] H. Chuin Lau. On the complexity of manpower shift scheduling. Computers and Operations

Research, 23(1):93–102, 1996.

[CMT01] A. Caprara, M. Monaci, and P. Toth. A Global Method for Crew Planning in Railway Applications.

Computer-Aided Scheduling of Public Transport, Lecture Notes in Economics and Mathematical

Systems, 505:17–36, 2001.

[CTVF98] A. Caprara, P. Toth, D. Vigo, and M. Fischetti. Modeling and Solving the Crew Rostering Problem.

Operations Research, 46(6):820–830, 1998.

[Dow98] K.A. Dowsland. Nurse scheduling with tabu search and strategic oscillation. European Journal of

Operational Research, 106(2-3):393–407, 1998.

[Gol89] D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-

Wesley Longman Publishing Co., Inc. Boston, MA, USA, 1989.

[GS93] M. Gamache and F. Soumis. A method for optimally solving the rostering problem. Les Cahiers du

GERAD, 1993.

51

[GSMD99] M. Gamache, F. Soumis, G. Marquis, and J. Desrosiers. A column generation approach for large-

scale aircrew rostering problems. Operations research, 47(2):247–263, 1999.

[GSV+98] M. Gamache, F. Soumis, D. Villeneuve, J. Desrosiers, and E. Gelinas. The Preferential Bidding

System at Air Canada. Transportation Science, 32(3):246–255, 1998.

[HG95] W.D. Harvey and M.L. Ginsberg. Limited Discrepancy Search. International Joint Conference on

Artificial Intelligence, 14:607–615, 1995.

[HHAK06] A. Hartog, D. Huisman, EJW Abbink, and LG Kroon. Decision support for crew rostering at NS.

Econometric Institute Report 2006-04, 2006.

[HL05] Frederick S. Hillier and Gerald J. Lieberman. Introduction to Operations Research, 8th ed.

McGraw-Hill Higher Education, New York, NY, USA, 2005.

[JSV98] B. Jaumard, F. Semet, and T. Vovor. A generalized linear programming model for nurse scheduling.

European Journal of Operational Research, 107(1):1–18, 1998.

[KK00] N. Kohl and S.E. Karisch. Integrating Operations Research and Constraint Programming Techni-

ques in Crew Scheduling. Proceedings of the 40th Annual AGIFORS Symposium, pages 20–25,

2000.

[KK04] N. Kohl and S.E. Karisch. Airline Crew Rostering: Problem Types, Modeling, and Optimization.

Annals of Operations Research, 127(1):223–257, 2004.

[Kor85] R.E. Korf. Depth-First Iterative-Deepening: An Optimal Admissible Tree Search. Artificial Intelli-

gence, 27(1):97–109, 1985.

[MK98] H.H. Millar and M. Kiragu. Cyclic and non-cyclic scheduling of 12 h shift nurses by network pro-

gramming. European Journal of Operational Research, 104(3):582–592, 1998.

[Olb02] J. Olbertz. The Impacts of Privatizing Existing Railway Networks, 2002.

[Pea84] Judea Pearl. Heuristics: intelligent search strategies for computer problem solving. Addison-

Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1984.

[RN03] Stuart J. Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Pearson Education,

2003.

[Sal03] R. Saldanha. Afectação de Tripulantes - Um Propagador de Restrições Global para Geração de

Turnos. PhD thesis, Instituto Superior Técnico, 2003.

[Sch00] J. Sched. Exploiting problem structure in a genetic algorithm approach to a nurse rostering pro-

blem. J. Sched, 3(139):153, 2000.

[SN04] M.M.S. Sodhi and S. Norris. A Flexible, Fast, and Optimal Modeling Approach Applied to Crew

Rostering at London Underground. Annals of Operations Research, 127(1):259–281, 2004.

52

[SZSF00] M. Sellmann, K. Zervoudakis, P. Stamatopoulos, and T. Fahle. Integrating direct CP search and

CP-based column generation for the airline crew assignment problem. Proceedings of the CP-AI-

OR’00, pages 001–2000, 2000.

[SZSF02] M. Sellmann, K. Zervoudakis, P. Stamatopoulos, and T. Fahle. Crew Assignment via Constraint

Programming: Integrating Column Generation and Heuristic Tree Search. Annals of Operations

Research, 115(1):207–225, 2002.

[Thi08] M.P. Thiel. Team-Oriented Airline Crew Rostering for Cockpit Personnel. LECTURE NOTES IN

ECONOMICS AND MATHEMATICAL SYSTEMS, 600:91, 2008.

[VH00] C. Valouxis and E. Housos. Hybrid optimization techniques for the workshift and rest assignment

of nursing personnel. Artificial Intelligence In Medicine, 20(2):155–175, 2000.

[War76] D.M. Warner. Scheduling nursing personnel according to nursing preference: A mathematical

programming approach. Operations Research, 24(5):842–856, 1976.

53