You are on page 1of 182

UNIVERSIDADE DO MINHO

Departamento de Produo e Sistemas

Resoluo de Problemas de Programao de


Mquinas Paralelas pelo Mtodo de Partio e
Gerao de Colunas

Manuel Joaquim Pereira Lopes

Tese de Doutoramento

Realizada sob a orientao de


Professor Doutor Jos Manuel Valrio de Carvalho,
Professor Catedrtico do Departamento de Produo e Sistemas da
Universidade do Minho

Braga, Dezembro de 2004


Aos meus pais

II
Agradecimentos

Ao Professor Doutor Valrio de Carvalho com quem tive o privilgio de trabalhar


durante os ltimos anos. Para alm dos muitos ensinamentos cientficos e a forma
dedicada como exerceu a orientao guardo tambm a sua amizade.

Ao Professor Coordenador Afonso Fernandes e ao Professor Coordenador Ismael


Cavaco do Instituto Superior de Engenharia do Porto pelo seu apoio e amizade.

Ao Instituto Superior de Engenharia do Porto e Universidade do Minho pela


disponibilizao dos seus meios.

A todos aqueles que directa ou indirectamente contriburam para este trabalho.

minha famlia pelo seu apoio e compreenso.

Este trabalho foi realizado ao abrigo de uma Bolsa do PRODEP concedida no concurso
pblico n 4/5.3/PRODEP/2000.

III
Resumo

O problema de programao de mquinas paralelas no-idnticas com tempos de


preparao dependentes da sequncia uma generalizao do problema de programao
de mquinas paralelas que envolve a determinao da melhor afectao e
sequenciamento de n trabalhos a m mquinas, com tempos de preparao dependentes
da sequncia de trabalhos processados, de forma a minimizar uma funo de custo.

Neste trabalho, apresentamos um novo algoritmo de optimizao para a soluo de


problemas de mquinas paralelas no-idnticas com tempos de preparao dependentes
da sequncia e datas de disponibilidade para as mquinas e para os trabalhos, de forma a
minimizar a soma ponderada dos desvios positivos (atrasos) s datas de entrega dos
trabalhos.

apresentada uma primeira formulao matemtica em que a funo de custo no-


linear. Pela aplicao do mtodo de decomposio de Dantzig-Wolfe obtemos uma
formulao de programao inteira equivalente em que cada varivel de deciso
(coluna) representa uma sequncia de afectao numa mquina. A relaxao linear desta
formulao resolvida pelo mtodo de gerao de colunas, onde as colunas so geradas
em m subproblemas, em que cada um deles representa um problema de programao de
mquina nica. Colunas vlidas so adicionadas soluo inicial admissvel pela
resoluo de um problema de caminho mais curto com datas de disponibilidade das
mquinas e dos trabalhos, usando programao dinmica. So estudados vrios modelos
de programao dinmica e proposto um mtodo para melhorar a eficincia do modelo
adoptado.

IV
A soluo da relaxao linear obtida fornece geralmente um bom limite inferior, que
usado num algoritmo de partio e avaliao para resolver a formulao de
programao inteira. desenvolvida uma regra especfica de partio que reduz
significativamente o nmero de nodos explorados na rvore de pesquisa. ainda
desenvolvida uma heurstica para determinar uma soluo inicial para o problema.

So apresentados mtodos de acelerao e estabilizao do algoritmo de gerao de


colunas e proposto um novo mtodo que designamos por primal boxstep.

Por ltimo, so apresentados resultados de testes computacionais para uma gama


alargada de problemas com diferentes caractersticas e diferentes nveis de
congestionamento do sistema, que mostram que esta aproximao capaz de resolver
problemas de dimenso significativa em tempo computacional considerado razovel.

V
Summary

We consider a class of scheduling problems of unrelated parallel machines with


sequence-dependent setup times which involves finding the best assignment and
sequencing of n jobs to m machines, with sequence-dependent setup times, to minimize
a cost function.

In this work, we develop a new optimization algorithm for the solution of the unrelated
parallel machines with sequence-dependent setup times and release dates for the
machines and the jobs scheduling problem, to minimize the weighted tardiness of the
jobs.

First we give a mathematical formulation for the problem where the cost function is
non-linear. By applying the Dantzig-Wolfe decomposition to this formulation we obtain
an equivalent integer programming formulation where each decision variable (column)
represents a single machine schedule. The linear programming relaxation of the integer
programming formulation is solved by column generation, where columns are generated
on m subproblems which are single-machine scheduling problems. Feasible columns are
added as needed by solving a shortest path problem with release dates for the jobs and
machines, using dynamic programming. Several dynamic programming models are
studied and a method to increase the efficiency of the model chosen is proposed.

The linear programming solution obtained generally provides a strong lower bound that
is used in a branch-and-bound algorithm to solve the integer formulation. A specific
branching rule that reduces significantly the number of nodes explored is presented.

Column generation stabilization and accelerating methods are presented and a new
method designated by primal boxstep is proposed.

VI
A heuristic was developed to find an initial solution for the problem.

The computational results show that the approach is capable of solving problems of
large size to optimality within reasonable computational time for a wide variety of
problems with different characteristics and levels of congestion of the system.

VII
ndice

CAPTULO 1 INTRODUO.............................................................................................. 1
1.1. Motivaes................................................................................................................................... 3
1.2. Contribuies da Tese ................................................................................................................ 6
1.3. Estrutura da Tese ....................................................................................................................... 7

CAPTULO 2 PROBLEMAS DE PROGRAMAO DE MQUINAS PARALELAS... 10


2.1. Introduo ................................................................................................................................. 10
2.2. Definies................................................................................................................................... 11
2.3. Classificao.............................................................................................................................. 18

CAPTULO 3 MTODO DE PARTIO E GERAO DE COLUNAS........................ 20


3.1. Introduo ................................................................................................................................. 20
3.2. Decomposio de Dantzig-Wolfe ............................................................................................. 22
3.3. Gerao de Colunas.................................................................................................................. 25
3.4. Mtodo de Partio e Avaliao .............................................................................................. 27
3.5. Mtodo de Partio e Gerao de Colunas............................................................................. 29

CAPTULO 4 REVISO DA LITERATURA.................................................................... 32


4.1. Introduo ................................................................................................................................. 32
4.2. Mtodos Heursticos ................................................................................................................. 33
4.2.1. Mtodos Heursticos baseados em Regras de Deciso ....................................................... 33
4.2.2. Mtodos Heursticos baseados em Pesquisa Local ............................................................. 35
4.2.3. Mtodos Heursticos baseados em Enumerao Parcial ..................................................... 37

4.3. Mtodos Exactos ....................................................................................................................... 37


4.3.1. Programao Dinmica....................................................................................................... 38

VIII
4.3.2. Mtodo de Partio e Avaliao ......................................................................................... 38
4.3.3. Mtodo de Partio e Gerao de Colunas ......................................................................... 39
4.3.3.1. Problema P || w j C j .............................................................................................. 40
4.3.3.2. Problema P || w jU j .............................................................................................. 43
4.3.3.3. Extenso a Mquinas No-Idnticas........................................................................... 44
4.3.3.4. ( )
Problemas P || u j E j + v j T j ................................................................................ 44
4.3.3.5. Problemas de Programao com Tempos de Preparao............................................ 47
4.3.3.6. Problemas de Programao de Trabalhos e Actividades de Manuteno ................... 49

CAPTULO 5 FORMULAO DO PROBLEMA............................................................. 53


5.1. Introduo ................................................................................................................................. 53
5.2. Definio do Problema ............................................................................................................. 53
5.3. Formulao de Programao Inteira...................................................................................... 56
5.4. Decomposio de Dantzig-Wolfe ............................................................................................. 59
5.4.1. Representao em Rede...................................................................................................... 59
5.4.2. Reformulao do Problema ................................................................................................ 61
5.4.3. Transferncia de Informao Dual para os Subproblemas ................................................. 67

5.5. Formulao dos Subproblemas ............................................................................................... 68


5.5.1. Modelo 1............................................................................................................................. 69
5.5.2. Modelo 2............................................................................................................................. 69
5.5.3. Modelo 3............................................................................................................................. 71
5.5.4. Sequncias de Afectao de Custo Reduzido Decrescente................................................. 73
5.5.5. Um Algoritmo de Programao Dinmica para a Resoluo dos Subproblemas ............... 78

5.6. O Algoritmo de Partio e Avaliao...................................................................................... 81


5.6.1. Estratgia de Partio ......................................................................................................... 81
5.6.2. Regra de Seleco do Nodo ................................................................................................ 83
5.6.3. Regra de Seleco da Varivel ........................................................................................... 84
5.6.4. Implementao da Estratgia de Partio ........................................................................... 87
5.6.5. Relaxao das Sequncias de Afectao de Custo Reduzido Decrescente ......................... 90
5.6.6. Convergncia do Mtodo.................................................................................................... 93

CAPTULO 6 ESTABILIZAO E ACELERAO DA GERAO DE COLUNAS .. 94


6.1. Introduo ................................................................................................................................. 94

IX
6.2. Limites Inferiores ..................................................................................................................... 95
6.2.1. Limites Inferiores na Programao Linear ......................................................................... 95
6.2.2. Limites Inferiores na Programao Inteira ......................................................................... 99

6.3. Estabilizao do Algoritmo de Gerao de Colunas.............................................................. 99


6.3.1. O Modelo de Cobertura de Conjuntos .............................................................................. 101
6.3.2. O Mtodo de Estabilizao ............................................................................................... 106

6.4. Estratgia de Restrio Primal.............................................................................................. 108


6.5. Aplicao da Estratgia de Restrio Primal ao Problema ................................................ 110
6.5.1. Relaxao Linear .............................................................................................................. 113
6.5.2. Partio e Gerao de Colunas ......................................................................................... 116

CAPTULO 7 IMPLEMENTAO COMPUTACIONAL E RESULTADOS................ 118


7.1. Implementao Computacional............................................................................................. 118
7.1.1. Introduo......................................................................................................................... 118
7.1.2. Obteno do Primeiro Problema Primal Restrito.............................................................. 119
7.1.2.1. Soluo Inicial Artificial........................................................................................... 119
7.1.2.2. Soluo Inicial Heurstica......................................................................................... 122
7.2. Gerao das Instncias de Teste............................................................................................ 127
7.3. Resultados dos Testes Computacionais................................................................................. 129
7.4. Anlise de Sensibilidade ......................................................................................................... 139
7.4.1. Horizonte Temporal Curto................................................................................................ 139
7.4.2. Datas de Disponibilidade dos Trabalhos........................................................................... 142
7.4.2.1. rj=0............................................................................................................................ 143
7.4.2.2. r j = 0 e r j = U[1, ( p + s )(n / m 1)] .................................................................. 146
7.5. Extenses ao Modelo .............................................................................................................. 149

CAPTULO 8 CONCLUSES E TRABALHO FUTURO............................................... 152

Bib liogr af ia 155


An exo A Programa PMPNI 163
An exo B Biblioteca de Funes CPLEX 166

X
ndice de Figuras

Figura 3.1 Algoritmo de gerao de colunas ....................................................................................... 27


Figura 3.2 Algoritmo de partio e gerao de colunas....................................................................... 30
Figura 5.1 Preparao das mquinas e afectao de trabalhos ............................................................ 56
Figura 5.2 Estrutura angular em blocos ............................................................................................... 58
Figura 5.3 Representao em rede....................................................................................................... 61
Figura 5.4 Rede do exemplo................................................................................................................ 62
Figura 5.5 Formulao completa ......................................................................................................... 66
Figura 5.6 Espao de solues do Modelo 2 - (AB) ......................................................................... 72
Figura 5.7 Espao de solues do Modelo 3 - AD (D=B\C) ............................................................ 72
Figura 5.8 Sequncia de afectao de custo reduzido decrescente ...................................................... 77
Figura 5.9 Comparao de regras de seleco do nodo ....................................................................... 84
Figura 5.10 Comparao de regras de partio.................................................................................... 86
Figura 5.11 Restries de partio na rede do subproblema................................................................ 88
Figura 5.12 Restries de partio sobre arcos no fonte.................................................................... 89
Figura 5.13 Restries de partio sobre arcos fonte .......................................................................... 90
Figura 5.14 Situao 1-a)..................................................................................................................... 91
Figura 5.15 Situao 1-b) .................................................................................................................... 92
Figura 5.16 Situao 2 ......................................................................................................................... 92
Figura 6.1 Convergncia dos valores das variveis duais (ISP) ........................................................ 103
Figura 6.2 Convergncia dos valores das variveis duais (ISC)........................................................ 103
Figura 6.3 Evoluo dos valores da funo objectivo ....................................................................... 105
Figura 6.4 Evoluo dos valores da funo objectivo ....................................................................... 108
Figura 6.5 Programas no balanceados/balanceados ......................................................................... 111
Figura 7.1 Matriz identidade das variveis artificiais........................................................................ 120
Figura 7.2 Matriz das variveis artificiais ......................................................................................... 121
Figura 7.3 Pseudo cdigo para a heurstica de soluo inicial........................................................... 124

XI
Figura 7.4 Diagrama de Gantt da soluo inicial heurstica .............................................................. 126
Figura 7.5 Relao entre o nvel de congestionamento e a % de trabalhos com atraso ..................... 129
Figura 7.6 Eficincia do mtodo em funo do nmero de trabalhos (n) .......................................... 136
Figura 7.7 Eficincia do mtodo em funo do nmero de mquinas (m)......................................... 136
Figura 7.8 Eficincia do mtodo em funo da dimenso do problema (m,n)................................... 137
Figura 7.9 Eficincia do mtodo em funo do nvel de congestionamento do sistema.................... 138

XII
ndice de Tabelas

Tabela 7.1 Resultados computacionais para q=1............................................................................... 131


Tabela 7.2 Resultados computacionais para q=2............................................................................... 132
Tabela 7.3 Resultados computacionais para q=3............................................................................... 133
Tabela 7.4 Resultados computacionais para q=4............................................................................... 134
Tabela 7.5 Resultados computacionais para q=5............................................................................... 135
Tabela 7.6 Resultados computacionais para o horizonte temporal curto e q=1................................. 140
Tabela 7.7 Resultados computacionais para o horizonte temporal curto e q=2................................. 141
Tabela 7.8 Resultados computacionais para o horizonte temporal curto e q=3................................. 141
Tabela 7.9 Resultados computacionais para o horizonte temporal curto e q=4................................. 141
Tabela 7.10 Resultados computacionais para o horizonte temporal curto e q=5............................... 142
Tabela 7.11 Resultados comparativos - horizonte temporal curto e longo ........................................ 142
Tabela 7.12 Resultados computacionais para rj=0 e q=1................................................................... 143
Tabela 7.13 Resultados computacionais para rj=0 e q=2................................................................... 144
Tabela 7.14 Resultados computacionais para rj=0 e q=3................................................................... 144
Tabela 7.15 Resultados computacionais para rj=0 e q=4................................................................... 144
Tabela 7.16 Resultados computacionais para rj=0 e q=5................................................................... 145
Tabela 7.17 Tabela comparativa - rj=0 e rj=[0,100] .......................................................................... 145
Tabela 7.18 Resultados computacionais para q=1............................................................................. 147
Tabela 7.19 Resultados computacionais para q=2............................................................................. 147
Tabela 7.20 Resultados computacionais para q=3............................................................................. 147
Tabela 7.21 Resultados computacionais para q=4............................................................................. 148
Tabela 7.22 Resultados computacionais para q=5............................................................................. 148
Tabela 7.23 Tabela comparativa........................................................................................................ 148
Tabela 7.24 Resultados computacionais para o problema R a k , r j , s ij w j Fj ............................... 150

Tabela 7.25 Tabela comparativa - Tw e Fw......................................................................................... 151

XIII
ndice de Exemplos

Exemplo 5.1 Preparao das mquinas e afectao de trabalhos......................................................... 55


Exemplo 5.2 Estrutura angular em blocos ........................................................................................... 58
Exemplo 5.3 Representao do problema em rede.............................................................................. 60
Exemplo 5.4 Solues PI-I e caminhos na rede................................................................................... 62
Exemplo 5.5 Formulao completa baseada no modelo de partio de conjuntos .............................. 66
Exemplo 5.6 Sequncia de afectao de custo reduzido decrescente .................................................. 76
Exemplo 5.7 Restries de partio sobre os arcos ............................................................................. 88
Exemplo 6.1 Convergncia dos valores das variveis duais.............................................................. 102
Exemplo 6.2 Evoluo dos valores da funo objectivo ................................................................... 104
Exemplo 6.3 Programas balanceados ................................................................................................ 111
Exemplo 7.1 Heurstica de soluo inicial......................................................................................... 124

XIV
Captulo 1
Introduo

Os problemas de programao, designados na literatura anglo-saxnica como


scheduling problems, tm sido objecto de intensa investigao ao longo das ltimas
dcadas dando corpo a uma literatura muito vasta. Com cerca de uma centena de
captulos dedicados a reas especficas e contribuies de cerca de uma centena de
autores, o manual Handbook of Scheduling: Algorithms, Models, and Performance
Analysis de Joseph Leung (2004), constitui uma referncia nesta rea. A revista
Journal of Scheduling dedicada exclusivamente a esta rea e lanada em 1998 ou os
recursos na internet, dos quais destacamos uma biblioteca de recursos sobre
programao, http://benli.bcc.bilkent.edu.tr/~lors/ (Library of Online Resources on
Scheduling), so outros exemplos da importncia desta rea cientfica.

Os problemas de programao desempenham na actualidade um papel crucial tanto na


indstria como nos servios. A comprov-lo esto os livros recentes publicados sobre
este tema: Scheduling: Theory, Algorithms, and Systems de Pinedo (2001) e
Operations Scheduling with Applications in Manufacturing and Services de Pinedo e
Chao (1999).

O problema bsico de programao o da afectao de recursos limitados a actividades


ao longo do tempo. Trata-se de um processo de deciso que visa a optimizao de um
ou vrios objectivos. Os recursos e as actividades podem tomar variadas formas. Os
recursos podem ser mquinas num centro de trabalho, tripulaes de avies,
processadores de computadores (cpu), camies de distribuio, etc. As actividades

1
Captulo 1 - Introduo
2

podem assumir a forma de operaes num processo produtivo, aterragens e descolagens


de avies num aeroporto, encomendas a distribuir pelos clientes, operaes a executar
no computador, etc.

Os objectivos podem tambm assumir vrias formas sendo mais comuns os baseados
nos tempos de concluso e nas datas de entrega das actividades. No actual ambiente de
elevada competio, a utilizao eficiente dos recursos disponveis ou o cumprimento
das datas de entrega acordadas com os clientes tornaram-se factores fundamentais para
a sobrevivncia das empresas.

Os problemas de programao so normalmente difceis tanto do ponto de vista tcnico


como do ponto de vista da implementao das solues. As dificuldades tcnicas esto
normalmente relacionadas com a sua natureza combinatria enquanto que as
dificuldades de implementao esto relacionadas com a modelao de problemas reais
e a aquisio de dados (Pinedo, 2001).

As muitas situaes reais onde a programao desempenha um papel crucial e a sua


grande complexidade (ver http://www.mathematik.uni-osnabrueck.de/research/OR/
class/ para a classificao de complexidade de problemas) inspiraram investigadores de
diferentes reas, tais como, Gesto Industrial, Cincias de Computao, Investigao
Operacional, Matemtica e Gesto, a estudar intensivamente este tema construindo uma
forte base de conhecimento que a transformou numa rea terica com resultados muito
interessantes.

Neste trabalho apresentado um mtodo de resoluo para uma classe de problemas de


programao de grande complexidade (NP-difceis) com relevncia terica e prtica
(ver Seco 1.1 para um exemplo real): a programao de mquinas paralelas no-
idnticas (unrelated parallel machines scheduling). Esta classe de problemas de
programao trata o caso mais geral de uma famlia mais vasta de problemas de
programao de mquinas paralelas (parallel machines scheduling) que inclui as
mquinas paralelas idnticas (identical parallel machines) e as mquinas paralelas
uniformes (uniform parallel machines).
Captulo 1 - Introduo
3

A programao de mquinas paralelas pode ser considerada com um processo em duas


fases. Em primeiro lugar, determinar em que mquina que cada um dos trabalhos vai
ser processado e, em segundo lugar, determinar a sequncia de processamento dos
trabalhos afectados a cada uma das mquinas.

A programao matemtica considerada como uma forma natural de formular este tipo
de problemas (para uma reviso de formulaes de programao matemtica para
problemas de programao de mquinas ver Blazewicz, Dror e Weglarz, 1991).

O desenvolvimento de tcnicas numricas e algortmicas sofisticadas, muitas vezes


explorando a estrutura particular do problema em estudo, em conjunto com o enorme
progresso tecnolgico dos computadores, tm permitido importantes avanos na
abordagem de problemas combinatrios de grande dimenso e considerados difceis,
atravs de mtodos de soluo exacta.

A utilizao de procedimentos baseados na combinao de gerao diferida de colunas


com o mtodo de partio e avaliao para a soluo destes modelos constitui uma
abordagem muito promissora. Embora os mtodos enunciados sejam j conhecidos h
mais de trs dcadas, o desenvolvimento de procedimentos baseados na sua combinao
bastante recente. Na literatura anglo-saxnica, esta tcnica de soluo tem sido
designada por branch-and-price. No nosso trabalho, utilizamos este mtodo de soluo
exacta para a resoluo de problemas de programao de mquinas paralelas no-
idnticas.

1.1. Motivaes
A motivao para a realizao deste trabalho surge na sequncia de um contacto
estabelecido com uma empresa txtil multinacional implantada no norte de Portugal.
Atravs deste contacto foi-nos dado a conhecer um problema de programao da
produo relacionado com a seco de Tinturaria (este problema comum a outras
empresas txteis que possuem seces de Tinturaria).
Captulo 1 - Introduo
4

Se bem que tenha existido um grande interesse inicial por parte da empresa acima
referida, o mesmo no foi confirmado posteriormente a ponto de permitir uma parceria
no desenvolvimento de um projecto com interesse relevante comum aos mundos
acadmico e empresarial. Contudo, ficaram a forte convico de se tratar de um
problema real importante (para esta indstria e muitas outras) e a esperana de um dia
poder complementar o trabalho acadmico entretanto desenvolvido com uma
implementao em ambiente real.

Entendendo que muita da informao, de carcter geral, entretanto recolhida na empresa


poderia ajudar a uma melhor compreenso do problema em questo, resolvemos
apresent-la aqui. neste sentido que devem ser entendidos os pargrafos seguintes
desta subseco.

Esta empresa possui uma estrutura vertical que vai desde a Tricotagem at Confeco
e opera num ambiente Make-to-Order. Os seus clientes so sobretudo clientes
internacionais muito exigentes, principalmente ao nvel da qualidade e do cumprimento
dos prazos de entrega. Enfrentam forte concorrncia na Europa, por parte sobretudo de
empresas italianas e turcas.

Processam entre 200 a 250 encomendas por semana a que corresponde cerca de 10
toneladas de fio processado por dia. Tipicamente, recebem um pedido de fabrico de uma
amostra ao qual se segue uma grande encomenda. O prazo de entrega tpico de 4 a 6
semanas e existem penalizaes por entregas em atraso mas as entregas antes da data
acordada no representam qualquer problema para os seus clientes.

As encomendas so recebidas pelos Servios Comerciais que as enviam para o


Planeamento Central que efectua uma programao para trs (backward scheduling)
para determinar as datas limite de lanamento das encomendas, como ordens de fabrico,
no sistema de produo e as datas da sua concluso nas vrias reas de produo por
onde estas tm de passar. As ordens de fabrico so lanadas no sistema de produo o
mais cedo possvel tentando assim garantir o cumprimento das datas de entrega
acordadas.
Captulo 1 - Introduo
5

A deciso relativa ao momento exacto em que cada operao, constante do roteiro de


produo de cada encomenda, levada a cabo, tomada localmente e da
responsabilidade de cada encarregado fabril da respectiva rea de produo.

As matrias-primas so aprovisionadas de acordo com as necessidades especficas de


cada encomenda. Existem, contudo, algumas matrias-primas que so comuns maioria
das encomendas (tal como o fio) e que so aprovisionadas para stock permitindo, assim,
reduzir os prazos de entrega.

A rea de Tinturaria tem como rea de produo vizinha a montante a Tecelagem e


como reas de produo vizinhas a jusante, a rea de Embalamento, para as encomendas
de tecido em rolo, e a rea de Corte de Tecido para as restantes encomendas.
constituda por mquinas de tingimento, com o nome tcnico de "Jets", com
capacidades e velocidades de processamento diferentes e todas elas controladas por
computador.

Estas mquinas representam um grande investimento (superior a 500 mil euros por
mquina) e tm custos, relativos a consumos de energia elctrica, produtos qumicos,
gua e tempo do operador e da mquina, e tempos de mudana de cor, dependentes da
sequncia de cores a processar, elevados, constituindo o gargalo produtivo (bottleneck)
tpico.

Encontrar o melhor programa de produo que tenha em considerao as caractersticas


especficas desta rea crtica, o problema que os responsveis do Planeamento e da
Produo enfrentam regularmente.

A ideia defendida pelos responsveis da empresa, em termos genricos, a de que,


partindo das datas limite de concluso das ordens de fabrico, determinadas pelo
backward scheduling, para a rea de Tinturaria e as datas mais cedo a que a rea
imediatamente precedente (rea de Tecelagem) pode terminar o processamento das
ordens de fabrico em-curso, determinadas por um planeamento para a frente (forward
scheduling), fosse possvel determinar o programa de produo que melhor utilizao
fizesse dos recursos instalados na rea de Tinturaria minimizando a soma dos atrasos
Captulo 1 - Introduo
6

ponderados pela prioridade atribuda a cada encomenda, que uma funo do cliente e
das caractersticas particulares da encomenda. O programa de produo optimizado para
a rea de Tinturaria definiria novas datas limite de concluso das ordens de fabrico para
a rea imediatamente precedente (rea de Tecelagem).

De referir que esta aproximao sugerida pelos responsveis da empresa se encontra


referenciada na literatura como critical resource schedule ou bottleneck schedule.
O princpio que lhe est subjacente o de que o uso eficiente de um recurso crtico
tornar o sistema globalmente mais eficiente. No bottleneck schedule, o recurso crtico
programado em primeiro lugar para depois os outros recursos serem programados em
funo do programa determinado para o primeiro.

Os modelos apresentados neste trabalho (Captulo 5) fazem uma abstraco deste


problema real, tentando capturar, entre o grande nmero de factores presentes num
problema de programao da produo, no mais do que a complexidade fundamental
para a resoluo de um problema de programao de mquinas paralelas.

1.2. Contribuies da Tese


Salientam-se as seguintes contribuies deste trabalho:

- A apresentao de um algoritmo de resoluo exacta do problema de


programao de n trabalhos, com datas de disponibilidade e datas de entrega, em
m mquinas paralelas no-idnticas, com datas de disponibilidade e tempos de
preparao dependentes da sequncia de trabalhos a processar. Este problema
um caso geral dos problemas de programao de mquinas paralelas e o
algoritmo desenvolvido pode ser aplicado a outros casos particulares com
medidas de desempenho regulares;

- A apresentao de um modelo de programao matemtica e a sua decomposio


pelo mtodo de Dantzig-Wolfe que conduz a uma reformulao do problema que
resolvida utilizando o mtodo de partio e gerao de colunas;
Captulo 1 - Introduo
7

- O desenvolvimento de um mtodo (custos reduzidos decrescentes) para melhorar


a eficincia do algoritmo de programao dinmica proposto para a resoluo
dos subproblemas;

- O desenvolvimento de uma regra especfica de partio que diminui


significativamente o nmeros de nodos explorados na rvore de pesquisa;

- O desenvolvimento de uma heurstica para a obteno de solues para o


problema, nomeadamente uma soluo inicial;

- O desenvolvimento de uma estratgia de acelerao dos processos de gerao de


colunas, que designamos por primal boxstep, baseada numa restrio temporria
do espao de solues primal, o que favorece uma mais rpida convergncia do
algoritmo para uma regio prxima da soluo ptima, e se traduz numa reduo
muito significativa do tempo de resoluo computacional;

- A apresentao de um estudo computacional com a resoluo de instncias com


caractersticas muito diversificadas;

- A verificao de que possvel, usando o modelo que resulta da decomposio


de Dantzig-Wolfe e estratgias de acelerao, resolver instncias de dimenso
significativa em tempo computacional razovel.

1.3. Estrutura da Tese


No Captulo 2 feita a apresentao formal dos problemas de programao de mquinas
paralelas. Depois de uma breve introduo aos modelos mquinas paralelas,
apresentada uma definio para os problemas de programao de mquinas paralelas.
Por ltimo, apresentada uma notao para a sua classificao.

No Captulo 3 introduzido o mtodo de partio e gerao de colunas para um


problema genrico de programao inteira. Este mtodo pode ser encarado como uma
combinao (no trivial) dos mtodos de gerao de colunas e de partio e avaliao o
que justifica a sua anlise neste Captulo.
Captulo 1 - Introduo
8

No Captulo 4 apresentamos uma reviso da literatura sobre mquinas paralelas focada


principalmente nos mtodos de soluo exacta, em geral, e no mtodo de partio e
gerao de colunas, em particular. Antes de abordar os mtodos de soluo exacta,
fazemos uma muito breve abordagem aos mtodos heursticos.

No Captulo 5 comeamos por apresentar a definio formal do problema de


programao. Segue-se a apresentao da formulao matemtica para o problema de
programao de mquinas paralelas no-idnticas em estudo. Depois de apresentada
uma formulao compacta de programao inteira, descrita a aplicao do mtodo de
decomposio de Dantzig-Wolfe ao problema em estudo. Segue-se a descrio de trs
modelos de programao dinmica para a resoluo do subproblema que representam
um percurso evolutivo na seleco do modelo mais eficiente para o problema em
estudo. ainda apresentado um mtodo para melhorar a eficincia do algoritmo de
programao dinmica proposto. Finalmente, apresentado o algoritmo de partio e
avaliao, onde se referem as estratgias de pesquisa mais frequentes e a estratgia
escolhida, e provada a sua convergncia.

No Captulo 6 so apresentadas estratgias para a estabilizao e acelerao do


algoritmo de gerao de colunas e a aplicao ao problema em estudo daquelas que nos
pareceram mais adequadas. Por ltimo, propomos um mtodo de acelerao do
algoritmo de gerao de colunas baseado na restrio do espao primal (primal
boxstep).

No Captulo 7 refere-se a implementao efectuada e apresentam-se e discutem-se duas


formas de obter o primeiro problema primal restrito vlido, necessrio para a
inicializao do mtodo de gerao de colunas. Para a obteno de uma soluo inicial,
descrita uma heurstica que foi desenvolvida tendo em conta a especificidade do nosso
problema. Apresentam-se ainda os resultados dos testes computacionais efectuados em
instncias com diferentes caractersticas e uma anlise de sensibilidade do mtodo
variao dos parmetros do problema. Finalmente, so apresentadas extenses do
modelo desenvolvido a outras funes de custo.
Captulo 1 - Introduo
9

No Captulo 8 so apresentadas as principais concluses extradas deste trabalho e


apontadas algumas direces para trabalho futuro.
Captulo 2
Problemas de Programao de
Mquinas Paralelas

Neste Captulo feita a apresentao formal dos problemas determinsticos de


programao de mquinas paralelas segundo uma verso adaptada de Blazewicz,
Lenstra e Kan (1983) e Pinedo (1995). Depois de uma breve introduo aos modelos
mquinas paralelas (Seco 2.1), apresentada uma definio para este tipo de
problemas (Seco 2.2). Por ltimo, apresentada uma notao para a sua classificao
(Seco 2.3).

2.1. Introduo
O estudo dos problemas de mquinas paralelas constitui um tema importante tanto do
ponto de vista terico como do ponto de vista prtico. Do ponto de vista prtico,
importante porque a ocorrncia de recursos em paralelo frequente no mundo real. Do
ponto de vista terico, trata-se de uma generalizao da mquina nica e um caso
particular de um sistema de produo flexvel. Tambm, as tcnicas aplicadas aos
problemas de mquinas paralelas so frequentemente usadas em procedimentos de
decomposio para sistemas multi-estratgia.

No difcil apresentar exemplos prticos de programao de mquinas paralelas. Na


rea das cincias de computao, temos o exemplo dos processadores em paralelo. Nos
sistemas de produo tipo Flow Shop, existe muitas vezes mais do que uma mquina do

10
Captulo 2 - Problemas de Programao de Mquinas Paralelas
11

mesmo tipo para evitar que todo o sistema pare quando uma nica mquina avaria. Mais
ainda, a existncia de mais do que uma mquina do mesmo tipo reduz a possibilidade de
ocorrncia de situaes de gargalo produtivo (bottleneck). Nos sistemas de produo
tipo Job Shop, a adio de um nmero apropriado de mquinas pode aumentar a sua
flexibilidade que, por sua vez, pode reduzir o tempo de fluxo dos trabalhos (Murty,
1995).

A programao de mquinas paralelas pode ser vista como um processo em dois passos.
Em primeiro lugar, determina-se a afectao das mquinas aos trabalhos; em segundo
lugar, determina-se a sequncia de processamento dos trabalhos.

Uma simplificao do problema das mquinas paralelas considerar as mquinas como


um sistema agregado. Neste caso, os resultados da teoria de programao da mquina
nica podem ser aplicados aos sistemas de mquinas paralelas. A limitao desta
aproximao que o modelo, focado somente no desempenho global do sistema, perde
informao sobre o desempenho individual de cada mquina. Apesar desta
simplificao, a programao de um nico sistema agregado no , de forma alguma,
um problema de fcil resoluo.

Matematicamente, um problema de mquinas paralelas envolve um nvel de


complexidade semelhante ao da mquina nica ao qual adicionado mais um nvel de
complexidade resultante da afectao das mquinas aos trabalhos. Assim, a
complexidade geral dos problemas de mquinas paralelas inflacionada, muitas vezes
exponencialmente, quando o nmero de mquinas ou trabalhos ou ambos aumentam.

Para uma reviso de literatura sobre mquinas paralelas ver Cheng e Sin (1990) e
Hoogeveen, Lenstra e van de Velde (1997).

2.2. Definies
No texto, iremos usar o termo tarefa para designar uma operao elementar a ser
realizada numa mquina e o termo trabalho (job) como um subconjunto de tarefas. Para
o caso particular da programao de mquinas paralelas, os termos tarefa ou trabalho
Captulo 2 - Problemas de Programao de Mquinas Paralelas
12

sero usados indiferentemente j que assumido que cada trabalho realiza uma nica
operao elementar numa mquina. Tambm os termos medida de desempenho, critrio
de optimalidade ou funo objectivo, sero usados indiferentemente ao longo do texto.

Os problemas de programao de mquinas paralelas so caracterizados pelas seguintes


entidades:

- Conjunto das n tarefas, T={T1 ,T2 ,...,Tj,...,Tn};

- Conjunto das m mquinas, M={M1 ,M 2,...,Mk,...,Mm};

- Conjunto dos s recursos adicionais (operadores, ferramentas, etc.), R={R1 ,


R2,...,Rs}.

Um problema de programao de mquinas paralelas normalmente significa afectar


mquinas de M a tarefas de T, de forma a concluir o seu processamento respeitando as
condies impostas. O nmero de tarefas representado por n e o nmero de mquinas
representado por m. Normalmente, os ndices i e j referem-se s tarefas e o ndice k
refere-se mquina.

Existem duas condies gerais na teoria clssica da programao:

- Cada tarefa deve ser processada em uma mquina de cada vez, no mximo;

- Cada mquina capaz de processar uma tarefa de cada vez, no mximo.

Existem algumas novas aplicaes em que a primeira restrio relaxada.

A especificao de um problema de programao de mquinas paralelas requer a


descrio das caractersticas das mquinas, das caractersticas das tarefas e do critrio
de optimalidade. As mquinas podem ser dos seguintes tipos:

- Paralelas: executam o mesmo tipo de funes;

- Dedicadas: especializadas na execuo de certas tarefas.


Captulo 2 - Problemas de Programao de Mquinas Paralelas
13

Dentro das mquinas paralelas, dependendo da sua velocidade de processamento das


tarefas, podemos distinguir trs tipos de mquinas diferentes:

- Idnticas (identical): iguais velocidades de processamento das tarefas;

- Uniformes (uniform): diferentes velocidades de processamento das tarefas mas a


velocidade de cada mquina constante no dependendo da tarefa a processar;

- No-idnticas (unrelated): velocidade de processamento dependente da tarefa


particular a ser executada.

De uma forma geral, uma mquina k M caracterizada pela seguinte informao:

- Vector do estado inicial das mquinas L=[l1 ,l2,...,lm ], onde lk representa a tarefa
em processamento na mquina k antes de esta ficar disponvel;

- Vector das datas de disponibilidade A=[a 1 ,a2 ,...,am ] onde ak o instante de


tempo em que a mquina k fica disponvel para poder ser utilizada.

De uma forma geral, uma tarefa j T caracterizada pela seguinte informao:

- Vector de tempos de processamento Pj=[p j1,pj2,...,pjm ], para j=1, 2, ...,n, onde pjk
o tempo necessrio para a mquina k processar a tarefa j. No caso de mquinas
idnticas, teremos p jk=pj, k=1, 2,...,m. Se as mquinas forem uniformes ento
teremos p jk=pj/bk, onde pj o tempo de processamento standard (normalmente
medido na mquina mais lenta) e b k o factor de velocidade de processamento
da mquina k;

- Vector das datas de disponibilidade (release dates) R=[r1 ,r2 ,...,rn ], onde rj o
instante de tempo em que a tarefa j fica disponvel para ser processada;

- Vector das datas de entrega (due dates) D=[d 1 ,d 2,...,dn ], onde dj o limite de
tempo at ao qual a tarefa j deve ficar concluda. Normalmente so definidas
funes de penalidade para a violao das datas de entrega;
Captulo 2 - Problemas de Programao de Mquinas Paralelas
14

~ ~ ~
[ ~
]
- Vector das datas limite de entrega (deadline), D = d1 , d1 ,..., d n que define o limite
de tempo at ao qual a tarefa j tem que ser impreterivelmente concluda;

- Vector dos pesos/prioridades W=[w1 ,w2,...,wn ], onde wj representa o peso


associado tarefa j; podem expressar custos de processamento, custos de
imobilizao, penalidades associadas a avanos ou atrasos, ou a urgncia relativa
da tarefa j;

- Vector de tempos de preparao (setup) da mquina dependentes da sequncia de


tarefas a processar S j=[s1j,s2j,...,snj], para j=1,2,...,n, onde sij o tempo de
preparao da mquina se o processamento da tarefa j for realizado
imediatamente aps o processamento da tarefa i. No caso dos tempos de
preparao da mquina entre as tarefas i e j serem dependentes da mquina,
includo o ndice k referente mquina e skij o tempo de preparao da
mquina k se o processamento da tarefa j for realizado imediatamente aps o
processamento da tarefa i; sl k j representa o tempo de preparao da mquina k
quando a primeira tarefa a ser processada a tarefa j. Se os tempos de
preparao das mquinas so independentes da sequncia de tarefas a processar
podem simplesmente ser adicionados aos tempos de processamento;

- Necessidades de recursos (se necessrios).

Assumimos que todos estes parmetros tomam valores inteiros. Na prtica, esta
assuno no se torna muito restritiva j que ela afecta sobretudo os parmetros
definidos pela varivel tempo e, para esta varivel, o factor escala permite uma grande
flexibilidade. Assumimos tambm que os recursos so afectados s tarefas quando o
processamento destas se inicia ou se reinicia, e que so libertados quando o
processamento das tarefas est concludo ou interrompido.

Uma programao diz-se interrompida (preemptive) se o processamento de cada tarefa


pode ser interrompido em qualquer momento e reiniciado mais tarde, sem custo
adicional, possivelmente noutra mquina. Se o processamento das tarefas no pode ser
interrompido, a programao diz-se no-interrompida (nonpreemptive).
Captulo 2 - Problemas de Programao de Mquinas Paralelas
15

Podem ser definidas restries de precedncia entre as tarefas do conjunto T. TiTj

significa que o processamento da tarefa i deve ser concludo antes de se dar incio ao
processamento da tarefa j. As tarefas do conjunto T dizem-se dependentes se a ordem de
execuo de pelo menos duas das suas tarefas tem uma restrio de precedncia. Caso
contrrio, as tarefas dizem-se independentes.

A tarefa j diz-se disponvel no instante de tempo t se rj t e todas as tarefas suas


predecessoras j estiverem concludas.

Vamos agora apresentar algumas definies relativamente programao e critrios de


optimalidade.

Um programa uma afectao de mquinas do conjunto M (e possivelmente recursos


do conjunto R) a tarefas do conjunto T num tempo tal que as seguintes condies sejam
satisfeitas:

- Em qualquer momento cada mquina est a processar uma tarefa, no mximo, e


cada tarefa est, no mximo, a ser processada por uma mquina1,

- A tarefa j processada no intervalo de tempo [rj, ),

- Todas as tarefas esto concludas,

- Se as tarefas i e j esto relacionadas em NiNj, o processamento da tarefa j no

pode comear antes da tarefa i estar concluda,

- No caso de programao no-interrompida nenhuma tarefa interrompida (o


programa diz-se no-interrompido), caso contrrio o nmero de interrupes de
cada tarefa finito e a programao diz-se interrompida,

- As restries associadas aos recursos, se existentes, so satisfeitas.

1
Como j mencionamos, esta restrio pode ser relaxada
Captulo 2 - Problemas de Programao de Mquinas Paralelas
16

Para representar programas vamos usar diagramas de Gantt. Os seguintes parmetros


podem ser calculados para cada tarefa j=1,2,...,n, processada num dado programa:

- Tempo de concluso (completion time) - Cj;

- Tempo de fluxo (flowtime) Fj = Cj-rj, como a soma dos tempos de espera e


processamento;

- Desvio data de entrega (lateness) - Lj=Cj-d j;

- Avano (earliness) - Ej=max{d j-Cj, 0};

- Atraso (tardiness) - Tj=max{Cj-dj, 0};

- Tarefa com atraso (tardy job) - Uj = 1 se Cj > dj ; caso contrrio, Uj = 0 ;

Para avaliar programas podemos usar vrias medidas de desempenho (critrios de


optimalidade ou funes objectivo) de entre as quais destacamos:

Baseadas no tempo de concluso


- Makespan (durao mxima), C max=max{Cj};

- Soma dos tempos de concluso (total completion time), C = j =1 C j , ou soma


n

ponderada dos tempos de concluso (total weighted completion time),


Cw = j =1 w j C j ;
n

Baseadas no tempo de fluxo

- Tempo de fluxo total (total flowtime), F = j =1 Fj , ou soma ponderada dos


n

tempos de fluxo (total weighted flowtime), F = j =1 w j F j ;


n

Baseadas na data de entrega


- Desvio mximo data de entrega (maximum lateness), L max=max{Lj};
Captulo 2 - Problemas de Programao de Mquinas Paralelas
17

- Soma dos atrasos (total tardiness), T = j =1T j , ou soma ponderada dos atrasos
n

(total weighted tardiness), Tw = j =1 w jT j ;


n

- Nmero total de tarefas com atraso (number of tardy jobs), U = j =1U j , ou


n

nmero total ponderado de tarefas com atraso (weighted number of tardy jobs),
Uw = j =1 w jU j ;
n

j =1 (E j + T j ) , ou
n
- Soma dos avanos e atrasos (total earliness-tardiness penalty),

soma ponderada dos avanos e atrasos (weighted total earliness-tardiness

j =1 (u j E j + v jT j ) , em que podem tambm ser atribudos pesos diferentes


n
penalty)

aos avanos e atrasos, u j e vj, respectivamente.

Podemos ainda ter valores mdios para as medidas de desempenho do tipo aditivo (por
exemplo, tempo de fluxo mdio, F = 1 / n j =1 F j , ou mdia ponderada do tempo de fluxo,
n

F w = j =1 w j F j / j =1 w j ).
n n

importante referir alguns aspectos relacionados com o significado prtico e utilizao


das medidas de desempenho atrs referidas.

Makespan: a sua minimizao conduz, normalmente, a nveis elevados de utilizao das


mquinas porque uma vez que todas as tarefas estejam processadas as mquinas ficam
disponveis para outras tarefas. Para situaes de uma nica mquina, este objectivo s
tem interesse quando existem tempos de preparao das mquinas dependentes da
sequncia. De outra forma, o makespan igual soma dos tempos de processamento e,
portanto, independente da sequncia. Quando tratamos de mquinas em paralelo, este
objectivo tem um interesse significativo. Na prtica, o problema de balanceamento das
cargas nas mquinas em paralelo ocorre frequentemente e a minimizao do makespan
assegura bons resultados.

Medidas de desempenho relacionadas com os tempos de concluso: a sua minimizao


resulta num menor tempo mdio de permanncia no sistema de produo o que resulta
Captulo 2 - Problemas de Programao de Mquinas Paralelas
18

num menor tempo mdio de resposta aos pedidos dos clientes e menor custo mdio de
stocks em-curso de fabrico. Note-se ainda que as medidas de desempenho relacionadas
com o tempo de fluxo fazem sentido quando as datas de disponibilidade rj das tarefas
no so iguais.

Medidas de desempenho relacionadas com as datas de entrega: estas medidas de


desempenho so de grande importncia especialmente em ambientes make-to-order e
normalmente tm um impacto directo na fidelizao dos clientes e podem constituir
uma vantagem competitiva. A sua minimizao resulta num melhor servio prestado ao
cliente. De referir que as medidas de desempenho relacionadas com os atrasos so
adequadas quando o processamento das tarefas antes da data de entrega no traz
qualquer penalidade; existem s penalidades associadas s entregas tardias. Na prtica,
as medidas de desempenho relacionadas com o nmero de tarefas em atraso so muitas
vezes usadas para medir a percentagem de encomendas concludas a tempo (on-time
delivery). Quando existe a possibilidade de as encomendas sofrerem atrasos
inaceitveis, so usadas medidas de desempenho que tm em conta o valor dos atrasos
(Lmax ou T). Para ambientes do tipo JIT (Just-in-time) as medidas de desempenho
devem ter em conta os avanos e os atrasos (E e T).

2.3. Classificao
A grande variedade de problemas de programao da produo, originou a necessidade
de introduzir uma notao sistemtica para a sua classificao, de forma a facilitar a sua
apresentao e discusso. Iremos descrever e seguir a notao proposta por Graham,
Lawler, Lenstra e Rinnooy Kan (1979) e Blazewicz, Lenstra e Kan (1983), limitando a
nossa descrio ao mbito das mquinas paralelas.

A notao composta por trs campos ||, com os seguintes significados:

- =1 2 descreve o tipo de mquina e o seu nmero;

1 =1: uma nica mquina;


Captulo 2 - Problemas de Programao de Mquinas Paralelas
19

1 =P: mquinas idnticas;

1 =Q: mquinas uniformes;

1 =R: mquinas no-idnticas;

2 = nmero de mquinas do problema (quando no mencionado


significa que o nmero de mquinas varivel).

- descreve as caractersticas das tarefas e recursos adicionais. neste campo que


so indicadas caractersticas como a existncia de datas de disponibilidade,
deadlines, e tempos de preparao das mquinas.

- denota a medida de desempenho.

Um programa cujo valor de uma determinada varivel de medida de desempenho est


no seu mnimo ser chamado de ptimo, e o correspondente valor de ser designado
por * . Podemos agora definir um problema de programao como um conjunto de
parmetros descritos nesta seco e um critrio de optimalidade, sem lhes associar
valores numricos. Uma instncia I do problema obtida pela especificao dos
valores particulares para todos os parmetros do problema.

Um algoritmo de programao um algoritmo que constri um programa para um dado


problema .
Captulo 3
Mtodo de Partio e Gerao de
Colunas

Neste captulo, fazemos uma introduo ao mtodo de partio e gerao de colunas que
tem por objectivo servir de suporte sua utilizao que feita nos Captulos seguintes.

3.1. Introduo
Se bem que j estejam decorridas mais de quatro dcadas sobre a publicao do
princpio da decomposio de Dantzig-Wolfe (1960) foi nas duas ltimas dcadas que
este mtodo revelou todo o seu potencial na resoluo de problemas de grande
dimenso. Se bem que os conceitos bsicos se tenham mantido inalterados, a sua
associao ao mtodo de partio e avaliao, chamada de mtodo de partio e gerao
de colunas (branch and price), e o desenvolvimento notvel da tecnologia
computacional, tornaram possvel a soluo exacta de problemas de programao inteira
de grande dimenso.

O mtodo de partio e gerao de colunas tem vindo a ser aplicado com sucesso na
resoluo de diversos tipos de problemas difceis tais como, programao de rotas
(vehicle routing) - Desrochers, Desrosiers e Solomon (1992), graph colouring -
Mehrotra e Trick (1996), afectao (generalized assignment) - Savelsbergh (1997),
corte (cutting stock) - Vance (1998), empacotamento (bin-packing) - Valrio de
Carvalho (1999), e lot sizing - Kang, Malik e Thomas (1999). Para uma reviso da

20
Captulo 3 - Mtodo de Partio e Gerao de Colunas
21

literatura na utilizao de gerao de colunas na resoluo de problemas de


programao inteira, ver Barnhart, Johnson, Nemhauser, Savelsbergh e Vance (1998).

Os princpios bsicos da decomposio de Dantzig-Wolfe (1960) podem ser descritos da


seguinte forma. Os problemas de programao linear podem apresentar no s um
elevado nmero de variveis como tambm um elevado nmero de restries. Uma
forma de ultrapassar esta dificuldade transformando o problema numa formulao
equivalente de programao linear com menos restries mas com mais variveis. So
depois usados procedimentos de gerao de colunas para resolver o problema
equivalente.

A adopo de formulaes com um elevado nmero de variveis para a obteno de


solues para problemas de programao inteira justifica-se por vrias razes:

(i) A formulao original pode apresentar uma relaxao linear fraca.


Frequentemente a relaxao linear pode ser reforada por uma reformulao
que envolve um elevado nmero de variveis. esta a principal razo para a
aplicao do mtodo em problemas de corte e empacotamento (Valrio de
Carvalho, 1999) e no problema de afectao generalizado (Savelsbergh, 1997).
Note-se que, muitas vezes, a motivao para a aplicao da decomposio no
acelerar a resoluo da relaxao linear, j que, a relaxao linear do
problema reformulado pode ser mais difcil que a relaxao linear do problema
original, mas sim a obteno de limites (inferiores/superiores) mais apertados.

(ii) A formulao original pode apresentar simetria que provoca a falta de


efectividade das parties efectuadas. Isto significa que quando uma soluo
fraccionria excluda num qualquer nodo da rvore de pesquisa, aparece
novamente num outro nodo da rvore de pesquisa com diferentes valores das
variveis, tornando praticamente intil a partio efectuada.

(iii) A decomposio do problema num problema principal e subproblemas pode


ter uma interpretao natural no contexto do problema em estudo permitindo a
incorporao de novas e importantes restries no subproblema.
Captulo 3 - Mtodo de Partio e Gerao de Colunas
22

(iv) No ser possvel obter uma formulao com um nmero reduzido de variveis.

A programao de mquinas constitui um bom exemplo de duas formulaes diferentes


para o mesmo problema. As primeiras formulaes para este problema adoptaram
variveis de deciso que representavam o instante de tempo em que o trabalho j era
iniciado na mquina k. Uma formulao alternativa passa por considerar variveis de
deciso associadas a sequncias de afectao admissveis dos trabalhos s mquinas
para depois as combinar de forma a obter um programa admissvel.

A primeira destas formulaes apresenta desvios significativos entre os valores da


funo objectivo da relaxao linear do problema de programao inteira e da soluo
ptima inteira. A segunda formulao requer a gerao das sequncias de afectao
admissveis como input do problema sendo que o seu nmero pode ser muito grande.
Contudo, apesar de o problema poder apresentar uma maior dimenso, conduz
tipicamente a desvios menores entre os valores da funo objectivo para a relaxao
linear do problema de programao inteira e o valor da soluo ptima inteira.

Diz-se que uma formulao mais forte (ou de melhor qualidade) quando este desvio
menor. sabido (Nemhauser e Wolsey, 1988) que a qualidade das formulaes um
factor crucial no processo de resoluo de problemas de programao inteira atravs do
mtodo de partio e avaliao. Assim, a adopo de formulaes mais fortes permite a
abordagem de problemas de maior dimenso.

Para o problema em estudo, para alm desta razo existe uma segunda razo para a
reformulao; o facto da expresso de clculo do custo ser no linear e a utilizao de
mtodos convencionais de linearizao conduzir normalmente a formulaes fracas.

3.2. Decomposio de Dantzig-Wolfe


Muitos dos problemas de programao inteira (e as respectivas relaxaes lineares)
encontrados em muitas das suas aplicaes prticas exibem estruturas em que as
matrizes dos coeficientes tecnolgicos so tipicamente dispersas (sparse), com um
nmero de elementos no nulos de uma ordem de grandeza de 1%, ou menos, devido ao
Captulo 3 - Mtodo de Partio e Gerao de Colunas
23

facto de muitas das actividades associadas s variveis de deciso apenas participarem


directamente num pequeno nmero de restries. Tambm muitas vezes possvel
identificar uma segmentao hierrquica, geogrfica ou lgica na estrutura do problema
em que os elementos no nulos se encontram agrupados formando subsistemas
independentes de variveis, possivelmente ligados por um conjunto distinto de
restries e/ou variveis. Este tipo de estrutura designa-se habitualmente por estrutura
angular em blocos.

A ideia geral do mtodo de decomposio de Dantzig-Wolfe a de tratar a estrutura de


ligao a um nvel superior, de coordenao, e o(s) subsistema(s) independente(s) a um
nvel inferior explorando a sua estrutura.

Consideremos o seguinte problema geral com dois conjuntos de restries e restries


de integralidade:

min c( x )
suj. a Ax b
(3.1)
xP
x inteiro.

A funo c(x) no necessita de ser linear. O nmero de variveis e o nmero de


restries deste modelo podem ser limitados por uma funo polinomial do nmero de
tarefas e mquinas do problema. Por essa razo, esta formulao conhecida na
literatura por formulao compacta (compact formulation).

No mtodo da decomposio de Dantzig-Wolfe, as restries do problema original so


divididas em dois conjuntos: o primeiro conjunto engloba as restries gerais Ax b,
enquanto o segundo, x P, contm um conjunto de restries que normalmente tm
uma estrutura especial. O primeiro conjunto de restries define o problema principal
que habitualmente designado na literatura anglo-saxnica por master problem. O
segundo conjunto define um ou vrios subproblemas.

Seja X o conjunto de pontos inteiros pertencentes a P. De acordo com o Teorema de


Minkowski e Weyl (ver Nemhauser e Wolsey, 1988), a envolvente convexa de X,
Captulo 3 - Mtodo de Partio e Gerao de Colunas
24

designada por conv(X), um poliedro que pode ser definido por um conjunto finito de
pontos extremos e um conjunto finito de raios extremos. Vamos considerar que o
poliedro X tem I pontos extremos, que sero designados por X1 ,X2,,XI, e K raios
extremos, que sero designados por R1 ,R2 ,,Rk. Qualquer ponto x do conjunto X pode
ser expresso como uma combinao convexa dos pontos extremos de X mais uma
combinao no-negativa dos raios extremos de X:

I K I

X = x P Z n : i X i + k Rk , i = 1, i 0, i, k 0, k
+ (3.2)
i =1 k =1 i =1

No que se segue, vamos considerar que o conjunto X um conjunto fechado e, como tal,
qualquer ponto x do conjunto X pode ser expresso como uma combinao convexa dos
pontos extremos de X,

I I
x = i X i , i = 1, i 0, i (3.3)
i =1 i =1

Se substituirmos x pela expresso (3.3) no modelo (3.1), obtemos a seguinte formulao


equivalente do problema:

c ( X i )i
I
min
i =1

( AX i )i b
I
suj. a
i =1
I
i = 1
i =1 (3.4)
i 0
I
x = i X i
i =1

x inteiro.

As variveis de deciso do problema reformulado so as variveis i. Tipicamente, esta


formulao tem um maior nmero de variveis e um menor nmero de restries que o
modelo original. Por este motivo, habitualmente designada por formulao extensiva
Captulo 3 - Mtodo de Partio e Gerao de Colunas
25

(extensive formulation). O termo cXi representa os coeficientes da funo objectivo e as


colunas AXi so os coeficientes tecnolgicos das restries.

i=1 i = 1
I
A equao referida como sendo a restrio de convexidade referente aos

pontos extremos de conv(X).

Este problema o problema principal, que equivalente formulao original.


Qualquer soluo vlida em termos das variveis do problema principal pode ser
traduzida numa soluo vlida para o problema original.

De uma forma geral, requerendo a integralidade das variveis de deciso i no conduz


a um problema de programao inteira equivalente ao problema original. Como as
variveis originais x tm de ser inteiras, so usadas como fonte de informao para
guiar decises de partio que conduzem soluo ptima inteira do problema original.

Quando relaxamos a restrio de integralidade para x, a formulao (3.4) torna-se


separvel em x e e possvel tambm relaxar a sua restrio de ligao x = i =1 i X i ,
I

obtendo um problema de programao linear nas variveis de deciso i. Este problema


de programao linear resolvido por um procedimento de gerao de colunas que
descrito na prxima Seco.

3.3. Gerao de Colunas


O nmero de pontos extremos de um poliedro exponencialmente grande, sendo
impraticvel fazer a sua enumerao completa. Contudo, existem muitos pontos
extremos que correspondem a variveis que no so atractivas para o problema principal
e, como tal, no precisam de ser nele includos para determinar a soluo ptima.
Dizemos que os pontos extremos no so enumerados explicitamente, mas
implicitamente.

A relaxao linear do problema principal vai ser resolvida atravs de um procedimento


de enumerao implcita, o algoritmo de gerao de colunas: comeamos com apenas
Captulo 3 - Mtodo de Partio e Gerao de Colunas
26

um subconjunto restrito das variveis de deciso (colunas), formando o problema primal


restrito (Restricted Master Problem), sendo que as restantes so tratadas de uma forma
implcita.

O problema primal restrito (PPR) coordena a gerao de solues em cada um dos


subproblemas. Estes dois problemas so resolvidos alternadamente, trocando
informao entre eles, at se atingir uma soluo que corresponde soluo do
problema original.

Em cada iterao, a avaliao dos pontos extremos feita com base na informao dual
da soluo ptima do problema primal restrito. Sejam 1,2,,m, e as variveis duais
associadas s primeiras m restries e restrio de convexidade, respectivamente. A
soluo dual ptima dada pelo vector cBB-1=(1, 2,,m,).

Cada varivel de deciso do problema reformulado corresponde a um ponto extremo do


conjunto X e pode ser caracterizado por uma coluna Ai=(AXi) de coeficientes
tecnolgicos, e pelo coeficiente de custo ci=(cX i). O seu custo reduzido dado pela
expresso,

cBB-1Ai-ci=Ai+1*-ci=(AXi)+1*-(cXi)=(A-c)Xi+

O valor mnimo do custo reduzido pode ser determinado resolvendo o seguinte


subproblema:

min (A-c)Xi +
suj. a: Xi X

Se este valor for negativo, a coluna correspondente ao ponto extremo ptimo uma
coluna atractiva para o problema primal restrito.

A este processo chamamos processo de gerao de colunas. A articulao do problema


primal restrito e do(s) subproblema(s) feita do modo descrito na Figura 3.1.
Captulo 3 - Mtodo de Partio e Gerao de Colunas
27

O problema primal restrito, que resolvido atravs do mtodo simplex, fornece ao(s)
subproblema(s) a soluo dual ptima do problema que necessria para a avaliao
das colunas. Por sua vez, o(s) subproblema(s) prope ao problema primal restrito
colunas com custo reduzido negativo que designaremos por colunas atractivas. Caso o
ptimo do(s) subproblema(s) no produza uma coluna atractiva, ento nenhuma outra
soluo atractiva, pelo que a soluo corrente do problema primal restrito ptima.

Problema
Primal restrito -PPR
(Programao Linear- Simplex)
Valores das Colunas com
Variveis Custo
Duais Reduzido
Negativo
Subproblema(s)

Figura 3.1 Algoritmo de gerao de colunas

A soluo ptima do problema primal restrito tambm a soluo ptima da relaxao


linear do problema principal. Se a soluo inteira a soluo ptima para o problema
original. Caso contrrio, a soluo ptima inteira para o problema original
determinada associando ao algoritmo de gerao de colunas o mtodo de partio e
avaliao que descrito na Seco seguinte.

3.4. Mtodo de Partio e Avaliao


Para problemas de programao inteira, como o caso do problema em estudo, no so
conhecidas condies gerais de optimalidade como existem para a programao linear
(Murty, 1995). Uma das formas de obter solues ptimas inteiras envolve a
Captulo 3 - Mtodo de Partio e Gerao de Colunas
28

enumerao do conjunto de solues possveis. Um dos mtodos mais usados para


efectuar essa enumerao o mtodo de partio e avaliao (branch and bound). Neste
processo, muitas solues so enumeradas implicitamente, por ser possvel reconhecer
que elas no podem ser solues ptimas, pelo que este mtodo tambm designado por
mtodo de enumerao implcita.

O mtodo de partio e avaliao um processo de enumerao usado para determinar a


soluo ptima de problemas de programao inteira. O processo envolve a soluo de
um problema que constitui uma relaxao do problema original e baseado nas
operaes de partio (branch) e de avaliao (bound).

A partio consiste na criao de subproblemas, feita atravs da imposio de restries


adicionais. Trivialmente, as restries so do tipo x j x j e x j x j . Cada
subproblema d, por sua vez, origem a outros subproblemas, sendo criada uma rvore
de pesquisa neste processo de enumerao, cujos nodos correspondem aos subproblemas
criados. Para um dado nodo da rvore de pesquisa, a regra de partio deve eliminar a
soluo fraccionria do respectivo subproblema, e garantir que nenhuma das solues
vlidas do problema original perdida. O incumbente corresponde ao valor da melhor
soluo inteira encontrada at iterao actual do processo de partio e avaliao.
Cada nodo da rvore de pesquisa corresponde a um espao de solues vlidas, definido
pelas restries lineares do problema e pelas restries de partio que foram impostas
nos ramos da rvore de pesquisa que definem o caminho que vai desde a raiz at esse
nodo.

A operao de avaliao destina-se a analisar o interesse em prosseguir a explorao de


uma dada sub-rvore. As seguintes situaes permitem abandonar a pesquisa de uma
sub-rvore:

1. o problema com a restrio adicional que foi imposta no nodo impossvel;

2. o valor da soluo obtida para o nodo garante que no possvel obter solues
vlidas de melhor qualidade que a do incumbente;

3. a soluo obtida no nodo inteira e pior que o incumbente.


Captulo 3 - Mtodo de Partio e Gerao de Colunas
29

Se alguma destas situaes se verificar o nodo abandonado porque a explorao dos


seus descendentes nunca fornecer uma soluo melhor que o incumbente. Caso
contrrio, o processo de partio continua e so criados novos nodos na rvore de
pesquisa.

A seleco do prximo nodo a avaliar feita usando regras que determinam o modo
como os nodos da rvore de pesquisa so percorridos. Destacamos as seguintes regras
de pesquisa:

- Pesquisa em profundidade (depth first search) um mtodo em que so


explorados em primeiro lugar os nodos com uma maior profundidade em relao
raiz da rvore de pesquisa. Depois de cada partio explorado o nodo
descendente mais esquerda.

- Pesquisa em largura (breadth first search) um mtodo em que so explorados


em primeiro lugar todos os nodos de um mesmo nvel de profundidade antes de
passar aos nodos do nvel seguinte, comeando pelo nodo mais esquerda.

- Pesquisa do melhor (best first) um mtodo em que so explorados em primeiro


lugar os nodos com o valor de soluo mais prximo do valor da soluo na raiz
da rvore de pesquisa.

Estas regras simples podem ainda ser combinadas e dar lugar a regras de pesquisa
compostas. Um exemplo de regra de pesquisa composta a regra depth first search mais
best first que funciona da seguinte forma: se o nodo em avaliao no abandonado
usada a regra depth first search para seleccionar o prximo nodo da rvore de pesquisa
a ser avaliado; caso contrrio, usada a regra de best first.

3.5. Mtodo de Partio e Gerao de Colunas


Em modelos que resultam de uma decomposio de Dantzig-Wolfe que so resolvidos
por gerao de colunas, uma das formas de obter uma soluo inteira consiste em
Captulo 3 - Mtodo de Partio e Gerao de Colunas
30

associar o mtodo de partio e avaliao ao mtodo de gerao de colunas. O mtodo


resultante desta associao designado por mtodo de partio e gerao de colunas.

O processo inicia-se com a resoluo da relaxao linear do problema principal. Quando


os subproblemas no geram mais colunas com custo reduzido negativo, o algoritmo
Simplex fornece a soluo ptima da relaxao linear do problema principal. Se a
soluo inteira a soluo ptima para o problema original. Caso contrrio,
necessitamos de explorar uma rvore de pesquisa, e podem ser geradas colunas
adicionais em cada partio. O nodo raiz corresponder ao problema de programao
linear original (relaxao das condies de integralidade). Os seus descendentes
correspondero ao mesmo problema adicionado de restries de partio.

O fluxograma do mtodo de partio e gerao de colunas apresentado na Figura 3.2

PPR
+
Restries de Partio
Restries de
Soluo ptima Partio
actual Colunas com
Valores das Algoritmo de Custo
Variveis Partio e Avaliao Reduzido
Duais Negativo

Restries de
Partio

Subproblema(s)
+
Restries de Partio

Figura 3.2 Algoritmo de partio e gerao de colunas

O problema primal restrito fornece a soluo ptima actual ao algoritmo de partio e


avaliao que vai verificar se foi encontrada a soluo ptima inteira do problema
Captulo 3 - Mtodo de Partio e Gerao de Colunas
31

principal. Neste caso, o processo termina; caso contrrio, vo ser geradas novas
restries de partio que vo ser adicionadas ao problema primal restrito e ao(s)
subproblema(s). O novo problema primal restrito reoptimizado e fornece a soluo
dual ptima ao(s) subproblema(s) que, por sua vez, propem ao problema primal restrito
colunas atractivas. Caso o ptimo do(s) subproblema(s) no produza uma coluna
atractiva, ento nenhuma outra soluo atractiva, pelo que a soluo corrente do
problema primal restrito ptima e o processo reiniciado.

Numa primeira abordagem, poder parecer que a combinao dos mtodos de gerao
de colunas e de partio e avaliao no envolve mais do que a juno dos dois
mtodos: em cada nodo da rvore de pesquisa do mtodo de partio e avaliao,
resolve-se o problema de programao linear at optimalidade, utilizando o mtodo de
gerao de colunas (se no fosse permitida a gerao de colunas nos nodos da rvore,
poder-se-ia concluir erradamente que no existia uma soluo inteira para o problema
ou obter uma soluo no ptima).

No entanto, o problema a resolver em cada nodo da rvore inclui restries de partio


que no estavam presentes na relaxao linear do problema original. Estas restries
podem alterar ou destruir a estrutura do subproblema, tornando impraticvel a avaliao
da atractividade das variveis que no fazem parte do problema primal restrito a
resolver em cada nodo de pesquisa.

Assim, o desafio que se coloca ao aplicar o mtodo de partio e gerao de colunas a


um dado problema o de definir regras de partio compatveis com o subproblema.
Soumis (1997) apresenta uma reviso bibliogrfica anotada sobre mtodos de
decomposio e gerao de colunas.
Captulo 4
Reviso da Literatura

Neste captulo, apresentamos uma reviso da literatura sobre mquinas paralelas focada
principalmente nos mtodos de soluo exacta, em geral, e no mtodo de partio e
gerao de colunas, em particular. Tambm se abordam problemas de mquina nica
porque eles ocorrem nos subproblemas que resultam da decomposio de Dantzig-
Wolfe. Antes de abordar os mtodos de soluo exacta, fazemos uma muito breve
abordagem aos mtodos heursticos.

4.1. Introduo
O problema de programao de mquinas paralelas tem merecido uma ateno
considervel por parte da comunidade cientfica (para uma reviso dos problemas de
programao de mquinas paralelas ver Cheng e Sin, 1990, e Hoogeven, Lenstra e van
de Velde 1997). O interesse por este tipo de problemas provm do facto de eles serem
frequentes em ambientes industriais e de possurem uma grande complexidade (NP-
difceis). Por este motivo, foram muitas vezes propostos mtodos heursticos para a sua
resoluo, geralmente baseados em regras de deciso. Foram tambm desenvolvidos
alguns procedimentos de soluo exacta, seguindo mtodos de enumerao, mas que se
mostraram incapazes de resolver problemas de dimenso real. Mais recentemente, a
utilizao de mtodos de enumerao implcita, em particular o mtodo de partio e
gerao de colunas, permitiu o desenvolvimento de algoritmos de soluo exacta para
problemas de grande dimenso.

32
Captulo 4 - Reviso da Literatura
33

4.2. Mtodos Heursticos


Os mtodos heursticos mais usados para a resoluo de problemas de programao de
mquinas paralelas so as regras de deciso, os mtodos de pesquisa local e as tcnicas
de enumerao parcial. Segue-se uma abordagem muito genrica a este tipo de mtodos.
Uma abordagem mais completa pode ser encontrada em Morton e Pentico (1993),
Pinedo e Chao (1999), Pinedo (2001) e Leung (2004).

4.2.1. Mtodos Heursticos baseados em Regras de


Deciso
Os mtodos heursticos baseados em regras de deciso constroem programas de uma
forma sequencial seleccionando a prxima tarefa usando regras de deciso relacionadas
com as mquinas ou com as tarefas. Por exemplo, podemos considerar os tempos de
processamento das tarefas (SPT Shortest Processing Time, etc.), a disponibilidade das
mquinas (LFM- Least Flexible Machine, etc.), etc.

Baker e Merten (1973) propem e comparam regras de deciso para o problema de


programao de mquinas paralelas. Panwalker e Iskander (1977) citam 113 regras de
seleco de uma actividade que foram propostas ou que so aplicadas na indstria. Uma
actualizao pode ser encontrada em Panwalker (1990).

Pinedo (1995) generalizou uma condio de dominncia estabelecida por Emmons


(1969), para o problema 1 || T j , ao problema 1 || w jT j : se existirem dois trabalhos i e

j com didj, pipj e wiwj, ento existe uma sequncia ptima em que o trabalho i
aparece antes do trabalho j.

As regras de deciso mais complexas so geralmente construdas a partir de regras


simples. Uma descrio detalhada de regras de deciso compostas pode ser encontrada
em Bhaskaran e Pinedo (1992). Alguns exemplos so apresentados de seguida.

Lee, Bhaskaran, e Pinedo (1997) propem uma heurstica baseada numa composio de
vrias regras de deciso para o problema 1 | sij | w jT j - a heurstica ATCS (Apparent
Captulo 4 - Reviso da Literatura
34

Tardiness Cost with Setups). Esta heurstica combina as regras WSPT (Weighted
Shortest Processing Time first) que processa os trabalhos em ordem no crescente dos
rcios wj/pj, MS (Minimum Slack first ) que processa os trabalhos em ordem no
decrescente da folga entre a data de entrega e data actual, e SST (Shortest Setup Time
first) que processa os trabalhos em ordem no decrescente dos tempos de preparao.

A heurstica funciona do seguinte modo. programado um trabalho de cada vez;


sempre que a mquina fica disponvel, calculado um ndice para os trabalhos ainda
no programados e seleccionado o trabalho com o maior valor do ndice. O ndice
referente ao processamento do trabalho j logo aps a concluso do processamento do
trabalho i no instante de tempo t calculado atravs da seguinte expresso:

wj max(d j p j t ,0) s
I j (t , i ) = exp exp ij
pj k1 p k2 s

em que p e s so as mdias dos tempos de processamento e de preparao,


respectivamente, dos trabalhos que ainda no foram programados, k1 um parmetro de
escala relativo s datas de entrega e k2 um parmetro de escala relativo aos tempos de
preparao.

A escolha destes parmetros visa uma adaptao da heurstica a diferentes condies,


em funo de trs factores:

(i) O factor de aperto das datas de entrega = 1 d / C max , onde d representa a


mdia das datas de entrega. Valores de prximos de 1 indicam que as datas
de entrega so apertadas e valores prximos de 0 indicam que as datas de
entrega so largas.

(ii) O factor de intervalo das datas de entrega R = ( d max d min ) / C max . Um valor

elevado de R indica um intervalo largo de datas de entrega enquanto um valor


baixo indica um intervalo apertado de datas de entrega.

(iii) O factor de severidade dos tempos de preparao = s / p .


Captulo 4 - Reviso da Literatura
35

O valor do makespan dependente do programa j que os tempos de preparao


dependem da sequncia de processamento dos trabalhos. Uma forma simples de o
estimar a seguinte: C max = j =1 p j + ns .
n

Para obter bons resultados, os valores de k1 e k2 devem ser adequados instncia


particular do problema. Isto pode ser feito atravs de uma anlise estatstica preliminar
aos dados da instncia. Contudo, um estudo experimental desta regra, embora
inconclusivo, sugeriu as seguintes regras para a seleco dos parmetros k1 e k2:

- k1=4.5+R, R0.5 e k1=6-2R, R0.5

- k2 = /( 2 )

Esta regra pode tambm ser aplicada ao problema de mquinas paralelas P | sij | w jT j .

Neste caso, os parmetros k1 e k2 so tambm dependentes do nmero de mquinas m.

Em certos casos, possvel determinar um limite superior para o erro mximo do


algoritmo heurstico. Graham, Lawler, Lenstra e Rinnooy Kan (1979) apresentam estes
limites para vrios tipos de problemas e diferentes heursticas.

4.2.2. Mtodos Heursticos baseados em Pesquisa


Local
Os mtodos heursticos baseados em pesquisa local verificam se possvel melhorar um
programa j existente pesquisando na vizinhana da soluo actual. Wilkerson e Irwin
(1971) utilizaram este mtodo para resolver o problema 1 || w j C j . Ho e Chang (1991)

estenderam este trabalho ao problema de mquinas paralelas idnticas. Van de Velde


(1991) desenvolveu uma heurstica dual para o problema de programao de mquinas
paralelas em que a vizinhana explorada segundo as direces de pesquisa obtidas
atravs dos multiplicadores de Lagrange.

Os mtodos de Tabu-Search e Simulated Annealing efectuam igualmente uma pesquisa


na vizinhana da soluo, mas permitem a possibilidade de movimentos para solues
Captulo 4 - Reviso da Literatura
36

vizinhas piores do que a actual. A diferena fundamental entre estes dois mtodos tem a
ver com o mecanismo usado para aprovar os movimentos candidatos. No Tabu-Search
este mecanismo baseado num processo de natureza determinstica enquanto que no
Simulated Annealing baseado num processo de natureza probabilstica (Pinedo, 1995).

Frana, Gendreau, Laporte e Muller (1996) usaram o Tabu-Search para a resoluo do


problema de minimizao do makespan em mquinas paralelas com tempos de
preparao dependentes da sequncia. Potts e Van Wassenhove (1991) e Tan,
Narasinham, Rubin e Ragatz (2000), comparam o Simulated Annealing com outras
heursticas para a resoluo de problemas 1 || w jT j .

Tan e Narasinham (1997), propuseram o Simulated Annealing para a resoluo do


problema de minimizao dos atrasos em uma mquina com tempos de preparao
dependentes da sequncia. Koulamas, Antony e Jaen (1994) e Barnes (1993) apresentam
revises da utilizao dos mtodos Simulated Annealing e Tabu-Search,
respectivamente, no domnio da programao.

Os Algoritmos Genticos constituem uma classe de tcnicas de pesquisa local mais


gerais e mais abstractas do que os mtodos de Tabu-Search e Simulated Annealing
(Pinedo, 1995). Nos Algoritmos Genticos, as sequncias de afectao ou programas
so vistos como indivduos que so membros de uma populao.

O procedimento funciona de uma forma iterativa e em cada iterao criada uma nova
gerao de indivduos que contm indivduos sobreviventes da anterior gerao e novos
indivduos (novas solues) obtidos a partir da anterior gerao. Normalmente, o
nmero de indivduos da populao mantm-se constante. Em cada gerao, h um
processo de reproduo em que as caractersticas dos melhores indivduos (melhores
solues) so usadas para gerar novos elementos da populao que substituem os piores
indivduos (piores solues), que so eliminados. Este processo de determinao da
composio da prxima gerao pode ser complexo.

Rubin e Ragatz (1995) aplicaram esta tcnica a um conjunto de problemas de


programao de mquina-nica num ambiente de tempos de preparao dependentes da
Captulo 4 - Reviso da Literatura
37

sequncia. Cheng e Gen (1997) e Frana, Mendes e Moscato (1999) usaram uma classe
de algoritmos genticos hbridos (Memetic Algorithms) para resolverem problemas de
programao de mquinas paralelas. Mendes, Muller, Frana e Moscato (1999)
comparam a tcnica de Tabu-Search com os Memetic Algorithms na resoluo do
problema de minimizao do makespan em mquinas paralelas idnticas com tempos de
preparao dependentes da sequncia.

4.2.3. Mtodos Heursticos baseados em Enumerao


Parcial
Os mtodos heursticos de enumerao parcial so geralmente baseados no mtodo de
partio e avaliao mas onde nem todos os nodos de um determinado nvel da rvore
de pesquisa so avaliados. S os nodos mais promissores so seleccionados para
partio. Os restantes so eliminados de uma forma definitiva. A avaliao e seleco
dos nodos mais promissores, em cada nvel da rvore de pesquisa, feita atravs de um
procedimento heurstico. Muitos dos mtodos de enumerao propostos para a soluo
exacta de problemas podem ser utilizados para gerar solues heursticas quando so
terminados prematuramente. A qualidade da soluo obtida depende do nmero de
possibilidades exploradas e das direces de pesquisa escolhidas.

Morton e Ramnath (1992) descrevem um procedimento de enumerao parcial, que


explora apenas certas pores da rvore de pesquisa com base numa funo de avaliao
aproximada dos subproblemas de um mesmo nvel (Guided Search), para a resoluo
aproximada de problemas de minimizao dos atrasos em mquina nica.

4.3. Mtodos Exactos


Nesta Seco comeamos por fazer uma breve abordagem a dois mtodos gerais de
soluo exacta, a programao dinmica e o mtodo de partio e avaliao (para uma
abordagem mais completa ver Cheng e Sin, 1990 e Hoogeven, Lenstra e van de Velde,
Captulo 4 - Reviso da Literatura
38

1997), para depois abordar de uma forma mais completa o mtodo de partio e gerao
de colunas.

A programao dinmica e o mtodo de partio e avaliao so muitas vezes usados


para determinar solues exactas para problemas de pequena e mdia dimenso para
medir a qualidade de vrios tipos de heursticas.

4.3.1. Programao Dinmica


Na programao dinmica, so construdos sequencialmente programas utilizando
princpios de optimalidade. Os programas parciais so comparados e as regras de
dominncia permitem eliminar aqueles que no conduzem soluo ptima. Foram
desenvolvidas algumas aplicaes para problemas de programao de uma mquina e
propostas generalizaes para o problema de mquinas paralelas. Contudo, estas ltimas
so de difcil aplicao dado o elevado nmero de estados que so gerados.

Rothkopf (1966) apresentou equaes de recorrncia para problemas de mquinas


idnticas e tarefas independentes. Lawler e Moore (1969) consideram vrios critrios de
optimalidade para o problema de mquina nica e discutem as generalizaes para o
caso das mquinas paralelas. Os algoritmos pseudo-polinomiais desenvolvidos podem

ser resolvidos em tempo O n ( ( p ) ) ,


n
j =1 j
m 1
tornando-se impraticveis quando m ou

j=1 p j
n
crescem. Sahni (1976) prope um algoritmo para o problema de m mquinas

paralelas idnticas e o objectivo Cmax. Leung (1982) considera o problema de


minimizao do makespan para m mquinas paralelas idnticas e tarefas com tempos de
processamento restritos a k valores e apresenta um algoritmo de complexidade
O(logpmaxlogmn2(k-1)).

4.3.2. Mtodo de Partio e Avaliao


Para alm das tcnicas de programao dinmica, existem na literatura tcnicas de
clculo de limites inferiores que podem ser usadas em algoritmos de partio e
Captulo 4 - Reviso da Literatura
39

avaliao. O mtodo de partio e avaliao consiste na diviso do espao de solues


em subespaos mais pequenos. So calculados limites (superiores ou inferiores) para o
valor da soluo ptima que permitem eliminar partes da rvore de pesquisa.

Os procedimentos propostos na literatura diferem sobretudo ao nvel das estratgias de


partio e pesquisa e no clculo dos limites. Eastman, Even e Isaacs (1964), propuseram
um limite inferior para o valor ptimo que serviu de base aos algoritmos de partio e
avaliao de Elmaghraby e Park (1974), Barnes e Brennan (1977 ) e Sarin, Ahn e
Bishop (1988). Em particular, o algoritmo de Barnes e Brennan (1977) para o problema
P || w jT j mostrou-se capaz de resolver problemas at 20 trabalhos e 4 mquinas.

Mais recentemente, Webster (1992, 1993, 1995) props limites inferiores para o valor
ptimo baseado na ideia de considerar um trabalho como uma coleco de subtrabalhos
ligados por uma restrio de grupo. Contudo, no so conhecidos algoritmos de partio
e avaliao baseados nestes limites inferiores.

Ragatz (1993) aplicou este mtodo ao problema de minimizao dos atrasos numa
mquina nica com tempos de preparao dependentes da sequncia, conseguindo obter
solues ptimas apenas para pequenas instncias.

Belouadah e Potts (1995) formularam este problema como um problema de


programao inteira e desenvolveram um algoritmo de partio e avaliao, baseado
num esquema de relaxao Lagrangiana para calcular limites inferiores, que se mostrou
capaz de resolver problemas de dimenso at 20 trabalhos e 5 mquinas ou 30 trabalhos
e 4 mquinas.

4.3.3. Mtodo de Partio e Gerao de Colunas


Nas Subseces seguintes fazemos uma reviso da literatura mais recente da aplicao
deste mtodo a problemas de programao de mquinas paralelas, tentando fazer o seu
enquadramento numa estrutura cronolgica de desenvolvimento de algoritmos de
soluo exacta. Como, na literatura, este problema tem sido estudado considerando
diferentes tipos de mquinas, diferentes parmetros para as tarefas a processar e
Captulo 4 - Reviso da Literatura
40

diferentes critrios de optimalidade, apresentamos esta reviso de literatura organizada


por classes de problemas comeando por aquele que o mais comum: o problema de
programao de mquinas paralelas idnticas com o objectivo de minimizar a soma
ponderada dos tempos de concluso, P || w j C j .

4.3.3.1. Problema P || w j C j

Smith (1956) mostrou que o problema 1 || w j C j pode ser resolvido em tempo de

ordem O(n log n ) . Este algoritmo baseado na observao de que um programa ptimo
possui as duas seguintes propriedades:

- Os trabalhos so processados continuamente a partir de t=0.

- Os trabalhos esto sequenciados em ordem no crescente dos rcios wj/pj.

Como para o caso de mltiplas mquinas em paralelo as mquinas so independentes


entre si, a partir do momento em que o conjunto de trabalhos subdividido pelas vrias
mquinas sabemos que existe um programa ptimo em que cada mquina processa os
trabalhos por ordem no crescente dos rcios wj/pj e de uma forma contnua (sem
tempos espera). Isto implica que a dificuldade associada resoluo deste problema tem
a ver com a determinao de uma subdiviso ptima dos trabalhos pelas mquinas.

Van den Akker, Hoogeveen e van de Velde (1999) e Chen e Powell (1999a),
propuseram procedimentos de partio e avaliao onde o limite inferior obtido
atravs da resoluo da relaxao linear de uma formulao de programao inteira
atravs de um algoritmo de gerao de colunas. Os resultados computacionais
mostraram que os limites inferiores obtidos na resoluo da relaxao linear do
problema so de grande qualidade, apresentando muitas vezes solues ptimas inteiras.
Quando a soluo obtida na relaxao linear no inteira, so impostas restries de
partio sobre as colunas geradas que podem ser facilmente incorporadas no algoritmo
do subproblema. Os procedimentos propostos so idnticos divergindo apenas nas
estratgias de partio.
Captulo 4 - Reviso da Literatura
41

A estratgia de partio proposta por Van den Akker, Hoogeveen e van de Velde (1999)
baseada na partio do intervalo de tempo de processamento dos trabalhos. Para cada
trabalho definida uma janela de processamento baseada no seguinte teorema:

Teorema 4 .1 (Elmaghraby e Park, 1974) Existe um programa ptimo quando se


verificam as seguintes propriedades:

- Os trabalhos so processados continuamente a partir de t=0 e nenhuma


mquina est desocupada antes de todos os trabalhos estarem disponveis.

- O ltimo trabalho a ser processado, em qualquer uma das mquinas,


H min = j =1 p j / m ( m 1) pmax / m
n
concludo entre o tempo e o tempo

H max = j =1 p j / m + ( m 1) pmax / m onde pmax = max jN {p j } .


n

- Em cada mquina, os trabalhos esto sequenciados em ordem no crescente dos


rcios wj/pj.

- Se wiwj e pipj, onde pelo menos uma das desigualdades estrita, ento existe
um programa ptimo em que o processamento do trabalho i nunca iniciado
depois do incio do processamento do trabalho j.

Em cada nodo da rvore de pesquisa, so identificados os trabalhos com valor


fraccionrio e, caso existam, so criados dois nodos descendentes para o trabalho
fraccionrio de menor ndice: o primeiro impe que C j C min
j e o segundo impondo que

C j C min
j + 1 . A primeira condio define uma nova data limite de processamento para o
trabalho j; a segunda condio define uma nova data de disponibilidade para o trabalho
j, que superior actual.

Esta estratgia de partio no s reduz a janela temporal de execuo do trabalho j,


como, com base na propriedade (iv), pode reduzir as janelas temporais de outros
trabalhos. O mais interessante nesta estratgia de partio que as condies impostas
so facilmente incorporadas no algoritmo do subproblema, que pode ser resolvido em
( )
tempo O n j =1 p j , no existindo a necessidade de modificar as equaes de recorrncia.
n
Captulo 4 - Reviso da Literatura
42

Contudo, pode acontecer que as janelas temporais de processamento dos trabalhos


correspondentes a um dado nodo da rvore de pesquisa conduzam a uma soluo
impossvel. Como o problema de decidir se existe ou no um programa que obedea s
condies impostas NP-completo, apenas verificada a condio necessria para a
existncia de uma soluo admissvel. As datas limite de processamento dos trabalhos
so substitudas por datas de entrega e calculado um limite inferior para o problema de
optimizao P | rj | Lmax usando o procedimento proposto por van de Velde, Hoogeveen,
Hurkens e Lenstra (1997) que corre em tempo O( n2). Existe um programa que obedece
s condies impostas quando o limite inferior calculado positivo; caso contrrio, o
nodo abandonado.

Tambm pode acontecer que o actual conjunto de colunas do problema primal restrito
no constitua uma soluo admissvel aps a introduo das novas restries de
partio. Este problema resolvido removendo as colunas correspondentes a sequncias
de afectao no admissveis e que no faam parte da actual soluo e aumentando o
custo das colunas correspondentes a sequncias de afectao no admissveis que faam
parte da actual soluo para um valor muito elevado, permitindo que exista uma soluo
admissvel mas com um custo muito elevado.

A estratgia de partio proposta por Chen e Powell (1999a) baseada na sequncia de


processamento dos trabalhos includos em cada sequncia de afectao. Assim, dada a
soluo ptima da relaxao linear do problema de programao inteira, podemos
calcular para cada par de trabalhos (i,j), em que o trabalho i imediatamente precedente
do trabalho j, o valor total das variveis de deciso xs (colunas) em que o par de
trabalhos (i,j) est presente, s Si j , yij = sS x s .
ij

Caso existam pares de trabalhos (i,j) com valor yij fraccionrio, seleccionada para
partio a varivel yij com valor fraccionrio mais prximo de 0,5 e so criados dois
nodos na rvore de pesquisa: um impondo que o valor yij igual a zero e outro impondo
que o valor yij igual a um. Em ambos os nodos, so removidas do problema primal
restrito as colunas que no satisfazem as condies impostas pelas restries de
partio.
Captulo 4 - Reviso da Literatura
43

Note-se que, na prtica, quando impomos que yij=1, estamos a impor uma relao de
precedncia entre os trabalhos i e j, e quando impomos que yij=0 estamos a eliminar do
espao de solues admissveis as sequncias de afectao que incluem o par de
trabalhos (i,j), em que o trabalho i imediatamente precedente do trabalho j.
Consequentemente, o subproblema necessita de ser ajustado para fazer reflectir estas
novas condies o que faz aumentar o seu tempo de execuo de um factor O(n).

Se bem que no existam estudos comparativos dos tempos computacionais dos dois
algoritmos atrs apresentados, podemos referir alguns aspectos gerais relativamente
sua comparao. O algoritmo proposto por Van den Akker, Hoogeveen e van de Velde
(1999) apresenta a vantagem de o seu tempo de execuo no ser influenciado pela
estratgia de partio enquanto que o algoritmo proposto por Chen e Powell (1999a)
mais simples de implementar j que, em cada nodo da rvore de pesquisa, possvel
encontrar um conjunto de colunas que constitua uma soluo ptima. Finalmente,
ambos os algoritmos se mostraram capazes de resolver problemas com n=100 e m=10
em tempo computacional considerado razovel.

Nas subseces seguintes vamos apresentar outros problemas, indicando apenas as


diferenas mais significativas relativamente ao que foi descrito nesta subseco.

4.3.3.2. Problema P || w jU j

Para o problema P || w jU j , existe um programa ptimo quando cada mquina

processa, em primeiro lugar, os trabalhos com atraso nulo em ordem decrescente das
datas de entrega e, em segundo lugar, os trabalhos com atraso em qualquer ordem
(Lawler e Moore, 1969 e Potts e Van Wassenhove, 1992). Os trabalhos com atraso so
processados na parte irrelevante do programa, sendo indiferente quando e onde (em que
mquina) so processados. Isto significa que o subproblema se reduz gerao de
sequncias de afectao com atraso nulo em que os trabalhos esto sequenciados por
ordem crescente das datas de entrega. Para uma reviso mais detalhada ver Chen e
Powell (1999a).
Captulo 4 - Reviso da Literatura
44

4.3.3.3. Extenso a Mquinas No-Idnticas


Quando as mquinas so no-idnticas, os tempos de processamento dependem da
mquina onde o trabalho processado. Isto implica que a aplicao das regras de
prioridade pode apresentar resultados diferentes para cada uma das mquinas e,
consequentemente, necessitamos de tratar cada mquina separadamente, usando o
algoritmo do subproblema m vezes (uma vez para cada mquina).

Van den Akker, Hoogeveen e van de Velde (1999) e Chen e Powell (1999a) estudaram a
extenso dos algoritmos de resoluo do subproblema (apresentados na Subseco
4.3.3.1) aos problemas R || w j C j e R || w jU j . Se bem que esses algoritmos

possam continuar a ser usados, apresentando agora complexidades de ordem


( ) ( )
O k =1 n j =1 p jk e O k =1 n 2 j =1 p jk , respectivamente, a estratgia de partio proposta
m n m n

por Van den Akker, Hoogeveen e van de Velde (1999) deixa de ser vlida.

4.3.3.4. Problemas P || (u j E j + v j T j )

Estes problemas so motivados pela filosofia JIT (just-in-time) onde desejvel que os
trabalhos sejam concludos o mais prximo possvel das suas datas de entrega. Se um
trabalho concludo antes da sua data de entrega (com avano) necessita de ser
armazenado incorrendo num custo de stock. Consequentemente, para alm dos atrasos
necessitamos de considerar tambm os avanos na medida de desempenho. Podem
tambm ser atribudos pesos diferentes aos avanos e atrasos, u j e vj, respectivamente.

Existem dois tipos de problemas estudados na literatura: a data de entrega um ponto


no tempo e a data de entrega um intervalo de tempo. No primeiro modelo, s no
existe penalidade quando o trabalho concludo exactamente na data de entrega. O
segundo modelo existe penalidade quando o trabalho concludo fora do intervalo de
tempo associado data de entrega.

Este segundo modelo, para alm de ser mais realista, inclui o primeiro modelo como
caso particular quando o intervalo de tempo da data de entrega um ponto. Uma data de
Captulo 4 - Reviso da Literatura
45

entrega comum a todos os trabalhos considerada larga e no restritiva quando


d j =1 p j . Da mesma forma, quando d < j =1 p j a data de entrega comum a todos os
n n

trabalhos considerada estreita e restritiva.

Chen e Powell (1999b) usaram o mtodo de partio e gerao de colunas para resolver
o problema de programao de n trabalhos, com uma data de entrega comum larga e no
restritiva d, em m mquinas paralelas idnticas de forma a minimizar a soma ponderada
dos avanos e atrasos. Como a data de entrega comum, os trabalhos so penalizados
quando no so concludos exactamente nesta data.

O problema foi inicialmente formulado como um problema de programao inteira e


depois reformulado, usando a decomposio de Dantzig-Wolfe, como um problema de
partio de conjuntos com restries adicionais. A relaxao linear do problema de
programao inteira resolvida pelo algoritmo de gerao de colunas onde as colunas
representam sequncias de afectao parciais e so geradas resolvendo dois
subproblemas de programao de mquina nica.

Estes dois subproblemas reflectem a circunstncia de que uma sequncia de afectao


apresenta uma primeira parte em que os trabalhos so processados com avano e uma
segunda parte em que os trabalhos so processados com atraso. Como a data de entrega
larga, existe sempre um trabalho que concludo exactamente na data de entrega d.
Existe uma soluo ptima em que os trabalhos da primeira parte da sequncia de
afectao (com avano) so processados em ordem no decrescente do rcio uj/pj, sendo
que o ltimo trabalho concludo na data d, e os trabalhos da segunda parte da
sequncia de afectao (com atraso) so processados em ordem no crescente do rcio
vj/pj, sendo que o primeiro trabalho inicia o seu processamento na data d.

Os dois subproblemas so resolvidos de forma independente at que no seja possvel


gerar sequncias de afectao de custo reduzido negativo para ambos. A soluo ptima
inteira obtida atravs do algoritmo de partio e avaliao. Os resultados
computacionais mostram que o algoritmo capaz de resolver problemas com um
mximo de n=60 em tempo computacional considerado razovel.
Captulo 4 - Reviso da Literatura
46

Chen e Lee (2002) generalizaram o problema de data de entrega comum ao problema de


janela de entrega comum. Neste caso, os trabalhos so penalizados apenas quando so
concludos fora da janela de entrega [d1,d2 ]. Em contraste com o problema anterior, no
assumido que o limite inferior, d1, largo. Consequentemente, no existe garantia de
que um trabalho vai concluir o seu processamento na data d1 ou d2. As sequncias de
afectao apresentam trs partes:

- Uma sequncia de afectao parcial early em que os trabalhos so processados


com avano em ordem no decrescente do rcio uj/pj, sendo que o ltimo
trabalho concludo antes ou na data d1;

- Uma sequncia de afectao parcial tardy em que os trabalhos so processados


com atraso em ordem no crescente do rcio vj/pj, sendo que o primeiro trabalho
inicia o seu processamento na data d2 ou depois;

- Uma sequncia de afectao parcial intermdia.

A primeira e a segunda partes podem ser conjuntos vazios.

O problema formulado como um modelo de partio de conjuntos com restries


adicionais em que se procura encontrar no mais do que m sequncias de afectao
parciais de cada um dos tipos descritos (early, intermdia e tardy) que possam ser
concatenadas para formar um programa admissvel, isto , para cada sequncia de
afectao parcial early que termina em t1, existe uma sequncia de afectao parcial
intermdia que se inicia em t1 e termina em t2 e, da mesma forma, para cada sequncia
de afectao parcial intermdia que termina em t2 existe uma sequncia de afectao
tardy que se inicia em t2.

Em cada iterao do algoritmo de gerao de colunas so resolvidos trs subproblemas


que determinam as sequncias de afectao parciais early, tardy e intermdia, de menor
custo reduzido. De entre elas, a sequncia de afectao parcial de menor custo reduzido
inserida no problema primal restrito. A soluo ptima encontrada quando nenhum
dos subproblemas consegue encontrar sequncias de afectao parciais de custo
reduzido negativo.
Captulo 4 - Reviso da Literatura
47

A estratgia de partio semelhante usada por Chen e Powell (1999a) e descrita na


Subseco 4.3.3.1. Os resultados computacionais mostram que o algoritmo
desenvolvido capaz de resolver problemas com n=40 e qualquer nmero de mquinas
em tempo computacional considerado razovel.

4.3.3.5. Problemas de Programao com Tempos de


Preparao

Chen e Powell (2003) estudaram uma extenso do problema P || w j C j envolvendo

tempos de preparao. Os trabalhos so divididos em vrias famlias tal que o


processamento consecutivo de trabalhos de uma mesma famlia no requer qualquer
tempo de preparao. Por outro lado, o processamento consecutivo de trabalhos de
diferentes famlias requer um tempo de preparao. Este problema conhecido por
problema de programao de mltiplas famlias (MJF Multiple Job Family).

Foram estudadas duas variantes deste problema: tempos de preparao dependentes da


sequncia de trabalhos a processar, P | suv | w j C j , e tempos de preparao

independentes da sequncia de trabalhos a processar, P | su | w j C j . Para o primeiro

caso, assumido que os tempos de preparao so definidos de forma a satisfazer o


princpio das desigualdades triangulares, isto , sij+sjvsiv, para todos os i,j,v. Vamos
apenas descrever o caso mais geral de tempos de preparao dependentes da sequncia
de trabalhos a processar.

O problema foi formulado como um modelo de partio de conjuntos com restries


adicionais e depois resolvido por um algoritmo de partio a avaliao. Em cada nodo
da rvore de pesquisa do algoritmo de partio a avaliao, resolvida a relaxao
linear da formulao de partio de conjuntos atravs de um procedimento de gerao
de colunas. As colunas so geradas num subproblema que resolve um problema de
programao de mquina nica atravs de um algoritmo de programao dinmica. Este
algoritmo baseado na observao de que um programa ptimo possui as seguintes
propriedades:
Captulo 4 - Reviso da Literatura
48

- (Monma e Potts, 1989) Os trabalhos dentro de cada famlia e em cada mquina


so processados numa ordem no crescente dos rcios wj/pj.

- (Chen e Powell, 2003) Para m =1, C j sou + iK pi j Nu , 1ub, em que b


j

representa o nmero de famlias, s0u o tempo de preparao do primeiro trabalho


da famlia u a ser processado na mquina e Kj representa o subconjunto de
trabalhos da mesma famlia, Nu, que precedem o trabalho i (dentro de cada
famlia, os trabalhos esto ordenados numa ordem no crescente dos rcios
wj/pj).

- (Chen e Powell, 2003) Cjmin( j,j), j Nu, 1ub, onde


j = (S + P) / m + (m 1)(qu + p j ) / m , j = S + P iN \ K (qu + pi ) ,
u j
P = jN p j ,

u =1 nu q u ,
b
S = q u = max 0lb s lu e nu representa o nmero de trabalhos da

famlia u.

Apesar de estas propriedades permitirem reduzir o espao de solues do subproblema,


o nico algoritmo conhecido capaz de resolver o problema P | suv | w j C j o algoritmo

de programao dinmica proposto por Ghosh (1994), de complexidade O (b 2 n b ) , e este


mostra-se incapaz de resolver problemas para alm da muito pequena dimenso. Por
este motivo, foi adoptada uma formulao alternativa de complexidade pseudo-
polinomial, inicialmente proposta por Desrochers, Desrosiers e Solomon (1992), em que
permitida a seleco de colunas correspondentes a sequncias de afectao no
admissveis em que o mesmo trabalho processado mais do que uma vez. Estas
sequncias de afectao so chamadas de cclicas.

A integralidade das variveis de deciso garante que as solues inteiras do problema


no incluem sequncias de afectao cclicas. A estratgia de partio semelhante
usada por Chen e Powell (1999a) e descrita na Subseco 4.3.3.1. Os resultados
computacionais mostram que o algoritmo capaz de resolver problemas at 40
trabalhos para qualquer nmero de famlias e duas ou mais mquinas.
Captulo 4 - Reviso da Literatura
49

4.3.3.6. Problemas de Programao de Trabalhos e


Actividades de Manuteno
Em muitas situaes, as mquinas so alvo de actividades de manuteno peridica para
prevenir a ocorrncia de avarias. Durante o perodo de manuteno, a mquina no est
disponvel para o processamento de trabalhos. A programao de actividades de
manuteno pode ser determinada antes da programao dos trabalhos ou
conjuntamente com a programao dos trabalhos.

No primeiro caso, os perodos de manuteno so pr-determinados e fixos e as


mquinas ficam indisponveis para o processamento de trabalhos durante os respectivos
perodos de manuteno. Este problema normalmente referido na literatura como
programao com restries de disponibilidade das mquinas ( scheduling with machine
availability constraints). O segundo caso, trata a programao conjunta de actividades
de manuteno e processamento de trabalhos de forma a optimizar uma dada medida de
desempenho.

Lee e Chen (2000) estudaram uma outra extenso do problema P || w j C j envolvendo

actividades de manuteno preventiva. Cada mquina sujeita a uma actividade de


manuteno de durao t no perodo de tempo [0,T ], em que T um limite superior para
a concluso das actividades de manuteno, tal que Tt; os trabalhos podem ser
concludos aps T. Foram estudadas duas variantes deste problema dependendo da
capacidade de manuteno que pode ser de uma mquina ou infinita.

Se a capacidade de manuteno infinita, qualquer nmero de mquinas pode ser


mantido em simultneo e, como tal, as sequncias de afectao das mquinas so
independentes relativamente s actividades de manuteno. A notao para este
problema P | ind | w j C j . O problema formulado como um modelo de partio de

conjuntos em que as variveis de deciso representam sequncias de afectao parciais


de um subconjunto de trabalhos de T e uma actividade de manuteno numa mquina.
Pretende-se encontrar exactamente m sequncias de afectao parciais que processam
uma nica vez cada trabalho. As m sequncias de afectao parciais garantem que cada
mquina sujeita a uma actividade de manuteno.
Captulo 4 - Reviso da Literatura
50

Se a capacidade de manuteno de uma mquina, no pode haver sobreposio de


actividades de manuteno entre diferentes mquinas, isto , as sequncias de afectao
das mquinas so dependentes relativamente s actividades de manuteno. A notao
para este segundo problema P | dep | w j C j e, neste caso, assumido que Tmt para

que possam existir sequncias de afectao admissveis.

A formulao adoptada semelhante do primeiro problema exceptuando que, agora,


existe uma distino entre as mquinas j que estas so mutuamente dependentes no que
diz respeito s actividades de manuteno. ainda introduzida uma restrio adicional
que, baseando-se na assuno de que as mquinas so mantidas pela ordem do seu
ndice, impe que a diferena entre os tempos de concluso das actividades de
manuteno em duas mquinas consecutivas tem de ser superior ou igual sua durao
t.

A formulao do subproblema, que resolve um problema de programao de trabalhos e


uma actividade de manuteno em uma mquina, idntica que foi descrita na
Subseco anterior permitindo a incluso do mesmo trabalho mais do que uma vez na
mesma sequncia de afectao. Os trabalhos so ordenados por ordem no crescente do
rcio wj/pj e a actividade de manuteno considerada como sendo o trabalho n+1.
Depois so criados mais n trabalhos, n+2,,2n+1, tal que o trabalho n+j+1 igual ao
trabalho j; o primeiro conjunto de trabalhos s pode ser processado antes da actividade
de manuteno e o segundo conjunto de trabalhos s pode ser processado depois da
actividade de manuteno.

Nesta nova formulao, o subproblema resolve o problema de encontrar, para uma


mquina, um subconjunto ordenado do primeiro conjunto de trabalhos e um subconjunto
ordenado do segundo conjunto de trabalhos, de menor custo reduzido, tal que, a
actividade de manuteno concluda no mais tarde do que T e so verificadas as
seguintes condies de optimalidade:

- (Lee e Chen, 2000) Num programa ptimo, as sequncias de afectao so


constitudas por dois subconjuntos de trabalhos separados por uma actividade de
manuteno e em cada um dos subconjuntos, os trabalhos esto ordenados por
Captulo 4 - Reviso da Literatura
51

ordem no crescente do rcio wj/pj, e no existem tempos de espera das


mquinas e as actividades de manuteno iniciam em t=0 ou no tempo de
concluso de um qualquer trabalho.

- (Lee e Chen, 2000) Para o problema P | ind | w j C j , existe um programa ptimo

tal que no existem tempos de espera das mquinas e as actividades de


manuteno iniciam em t =0 ou no tempo de concluso de um qualquer trabalho.

- (Lee e Chen, 2000) Para o problema P | ind | w j C j , existe um programa ptimo

tal que, em cada mquina, o ltimo trabalho a ser processado antes da actividade
de manuteno concludo nunca depois de R1 = [P + ( m 1)t pmax ] / m + pmax , e o
ltimo trabalho a ser processado depois da actividade de manuteno concludo
nunca depois de R2 = [P pmax ] / m + t + pmax , tal que, P = jN p j e

pmax = max jN {p j } .

- (Lee e Chen, 2000) Para o problema P | dep | w j C j , existe um programa

ptimo tal que, em cada mquina, o ltimo trabalho a ser processado antes da
actividade de manuteno concludo nunca depois de
R3 = [P + (m 1)t + (m 2) pmax ]/ m + pmax , e o ltimo trabalho a ser processado

depois da actividade de manuteno concludo nunca depois de


R4 = [P + (m 1) pmax ] / m + t + pmax .

A estratgia de partio semelhante usada por Chen e Powell (1999a) e descrita na


Subseco 4.3.3.1. Contudo, para o problema P | dep | w j C j , ao ser aplicada a partio

no sucessor imediato, pode acontecer que no seja possvel encontrar uma soluo
ptima inteira, apesar dos autores referirem que esta situao nunca aconteceu nos
testes computacionais realizados.

Recorde-se que, como podem existir tempos de espera da mquina por uma actividade
de manuteno, os mesmos trabalhos podem estar presentes em duas colunas diferentes,
mas em que as actividades de manuteno tm diferentes tempos de concluso. Neste
Captulo 4 - Reviso da Literatura
52

caso, a partio efectuada sobre os tempos de concluso dos trabalhos. Os resultados


computacionais mostram que o algoritmo capaz de resolver problemas at 40
trabalhos e duas ou mais mquinas.
Captulo 5
Formulao do Problema

Neste Captulo apresentada a definio formal do problema de programao mquinas


paralelas no-idnticas em estudo, proposta uma formulao para a sua representao
matemtica, e proposto um algoritmo de partio e gerao de colunas para a sua
resoluo exacta.

5.1. Introduo
Depois da definio formal do problema de programao mquinas paralelas no-
idnticas em estudo na Seco 5.2, apresentada uma formulao compacta de
programao inteira na Seco 5.3, e descrita a aplicao do mtodo de decomposio
de Dantzig-Wolfe ao problema em estudo na Seco 5.4. Na Seco 5.5 so descritos
trs modelos de programao dinmica para a resoluo do subproblema, proposto um
mtodo para aumentar a eficincia do modelo escolhido e apresentado um algoritmo
para a sua implementao. Por ltimo, apresentado na Seco 5.6 o algoritmo de
partio e avaliao.

5.2. Definio do Problema


Neste trabalho, consideramos uma classe de problemas de programao de mquinas
paralelas em que pretendemos afectar e sequenciar um conjunto de n trabalhos

53
Captulo 5 - Formulao do Problema
54

independentes, N={1,2,,n}, em m mquinas no-idnticas, M={1,2,,m}, com o


objectivo de minimizar a soma ponderada dos atrasos (total weighted tardiness).

Cada mquina k M tem uma data de disponibilidade ak (a mquina no est disponvel


antes desta data) e uma configurao inicial lk que representa o ltimo trabalho
processado antes da mquina ficar disponvel.

Cada trabalho j N deve ser processado por exactamente uma das mquinas e tem m
tempos de processamento pjk (k M), uma prioridade wj, uma data de disponibilidade rj,
e uma data de entrega dj. O processamento dos trabalhos nas mquinas implica um
tempo de preparao dependente da sequncia de trabalhos a processar sij, sempre que
ij, sendo que o tempo de preparao inicial dado por sl k j se o trabalho j for o
primeiro a ser processado na mquina k. Se um trabalho for concludo aps a sua data
de entrega dj incorre numa penalidade wj por cada unidade de tempo de atraso.

Uma mquina (disponvel) pode aguardar pela disponibilidade de um trabalho,


permanecendo inactiva (idle) durante o perodo de espera. No entanto, a preparao da
mquina pode ser levada a cabo durante o perodo de espera.

Assume-se que todos os parmetros so determinsticos e tomam valores inteiros no


negativos. Tambm, como normalmente assumido na literatura (Potts and Kovalyov,
2000), os tempos de preparao so definidos de forma a satisfazer o princpio das
desigualdades triangulares, ist , sij+sjvsiv, para todos os i,j,v N, com a excepo dos
tempos de preparao iniciais dados por sl j .
k

A notao matemtica para este problema a seguinte:

R|ak,rj,sij|wjTj (5.1)

Este problema fortemente NP-difcil porque uma generalizao do problema


P||wjTj que conhecido como sendo fortemente NP-difcil, mesmo quando m=1
(Lenstra, Kan e Brucker, 1977). tambm um caso geral dos problemas de
programao de mquinas paralelas j que engloba os casos em que no existem datas
Captulo 5 - Formulao do Problema
55

de disponibilidade para as mquinas (ak=0, k M), datas de disponibilidade para os


trabalhos (rj=0, j N), tempos de preparao dependentes da sequncia (sij=0, i,j
N), ou em que as mquinas so iguais (pjk=pj, j N, k M) ou uniformes (pjk=pj/bk,
j N, k M e onde pj o tempo de processamento standard e bk o factor de
velocidade de processamento da mquina k). Engloba tambm o caso particular da
programao de mltiplas famlias (MJF) em que o processamento consecutivo de
trabalhos de diferentes famlias requer um tempo de preparao.

Uma sequncia de afectao (machine schedule) a afectao e o sequenciamento de


um subconjunto de trabalhos de N a uma mquina de M. Uma sequncia de afectao
admissvel ( feasible machine schedule) uma sequncia de afectao em que os
trabalhos so processados uma nica vez e que satisfaz as restries de disponibilidade
da mquina e dos trabalhos.

Pretendemos encontrar o conjunto (m) de sequncias de afectao admissveis que


processam todos os trabalhos j N e minimizam a soma ponderada dos atrasos.

Exemplo 5.1 Preparao das mquinas e afectao de trabalhos


No diagrama de Gantt apresentado na Figura 5.1 podemos ver um exemplo ilustrativo
de uma possvel sequncia de afectao de trs trabalhos a duas mquinas. A mquina 1
vai processar os trabalhos 2 e 3 e a mquina 2 vai processar o trabalho 1.

A mquina 1 fica disponvel na data a 1 e apresenta uma configurao inicial l1 o que vai
originar um tempo de preparao para processar o primeiro trabalho, j=2, igual a sl 2 .
1

Entretanto, quando termina esta preparao inicial, o trabalho 2 j est disponvel


(r2<a1+ sl 2 ) e fica a aguardar pela disponibilidade da mquina. Segue-se o seu
1

processamento durante o perodo de tempo p21, para estar concludo no instante de


tempo t=C2. Segue-se o tempo de preparao da mquina 1 para processar a trabalho 3
depois de ter processado o trabalho 2, s23. Como o trabalho 3 s vai ficar disponvel no
instante de tempo r3>(C2+s23), a mquina 1 vai ter de esperar pelo trabalho 2
Captulo 5 - Formulao do Problema
56

permanecendo inactiva durante um perodo de tempo r3-(C2+s23). Finalmente,


processado o trabalho 3, que fica concludo no instante de tempo t=C3.

a1 r2 C2 r3 C3

Mquina 1 sl12 p21 s23 p31

C1
Mquina 2 sl21 p12

a2=r1=0

Legenda: - tempo de preparao - tempo de processamento


- tempo de inactividade

Figura 5.1 Preparao das mquinas e afectao de trabalhos

A mquina 2 fica disponvel na data a1=0 e apresenta uma configurao inicial l2 o que
vai originar um tempo de preparao para processar o primeiro trabalho, j=1, igual a
sl 2 . Como o trabalho 1 fica disponvel na data r1<a2+ sl 2 , tem que esperar pela
1 1

concluso da preparao da mquina seguindo-se o seu processamento durante o


perodo de tempo p12, para estar concludo no instante de tempo t=C1.

Do conhecimento que temos da literatura sobre a aplicao de mtodos de soluo


exacta a problemas de programao de mquinas paralelas, trata-se do problema mais
geral (e mais prximo daqueles que podemos encontrar em ambientes industriais) pois
considera datas de disponibilidade para as mquinas e para os trabalhos, datas de
entrega para os trabalhos e tempos de preparao das mquinas dependentes da
sequncia de trabalhos a processar, e a sua soluo exacta nunca foi tentada antes.

5.3. Formulao de Programao Inteira


Vamos definir as seguintes variveis binrias (0,1) para i,j N e k M.
Captulo 5 - Formulao do Problema
57

- xijk =1 se o trabalho j processado imediatamente aps o trabalho i na mquina k;

xijk =0 no caso contrrio.

- x0k j =1 se o trabalho j o primeiro a ser processado na mquina k; x0k j =0 no caso

contrrio.

- x kj ,n+1 =1 se o trabalho j o ltimo a ser processado na mquina k; x kj ,n+1 =0 no caso

contrrio.

A formulao de programao inteira (PI-I) para o problema em estudo a seguinte:

PI - I :
min max(C j d j ,0)w j (5.2)
jN

Sujeito a :
(5.3)
x k
ij = 1, j N
kM iN {0} i j
(5.4)
x0k j 1, k M
jN
(5.5)
xijk = x kji , j N , k M
iN {0} i j iN {n +1} i j
(5.6)
x {0,1}, i N {0}, j N {n + 1}, k M
k
ij

sendo o tempo de concluso


Cj = [max(Ci + sij , rj ) + p jk ]xijk , j N (5.7)
kM iN {0} i j

com C0 = ak e s0 j = sl j , lk L
k

A funo objectivo (5.2) minimiza a soma ponderada dos atrasos. O conjunto de


restries (5.3) garante que cada trabalho processado exactamente uma nica vez e o
conjunto de restries (5.4) garante que cada mquina utilizada uma vez, no mximo.
As restries (5.5) so restries de conservao do fluxo que garantem um
sequenciamento correcto dos trabalhos que conduza a sequncias de afectao
admissveis. As restries (5.6) impem a integralidade binria das variveis de
deciso, e a equao (5.7) define o tempo de concluso dos trabalhos.
Captulo 5 - Formulao do Problema
58

Este um problema de programao inteira de grande dimenso cuja resoluo difcil


j que envolve uma expresso no linear (5.7). Por este motivo se recorre a mtodos de
decomposio, e resoluo de um problema reformulado. Assim, esta formulao
tambm conhecida na literatura por formulao original.

Podemos tambm observar que este problema de programao matemtica composto


por subsistemas semelhantes, representados pelas m mquinas, onde as matrizes dos
coeficientes tecnolgicos apresentam uma estrutura angular em blocos, isto , um ou
mais blocos independentes ligados por equaes de ligao, onde se podem identificar
submatrizes de grande dimenso constitudas somente por zeros. Isto acontece porque
muitas das actividades associadas s variveis de deciso apenas participam
directamente num pequeno nmero de restries.

Exemplo 5.2 Estrutura angular em blocos


A tabela da Figura 5.2 representa a matriz de coeficientes tecnolgicos que resulta da
aplicao do modelo PI-I a um problema com dois trabalhos e duas mquinas onde
claramente visvel uma estrutura angular em blocos (definidos pelas mquinas) e onde
tambm se pode verificar a existncia de submatrizes de grande dimenso constitudas
somente por zeros.

x01
1
x121 x02
1
x121 x11,n+1 x21 ,n+1 x012 x212 x 022 x122 x12,n+1 x22,n+1

T1 1 1 0 0 0 0 1 1 0 0 0 0 =1
T2 0 0 1 1 0 0 0 0 1 1 0 0 =1
M1 1 0 1 0 0 0 0 0 0 0 0 0 1
M2 0 0 0 0 0 0 1 0 1 0 0 0 1
T1M1 1 1 0 -1 -1 0 0 0 0 0 0 0 =0
T2M1 0 -1 1 1 0 -1 0 0 0 0 0 0 =0
T1M2 0 0 0 0 0 0 1 1 0 -1 -1 0 =0
T2M2 0 0 0 0 0 0 0 -1 1 1 0 -1 =0

Figura 5.2 Estrutura angular em blocos


Captulo 5 - Formulao do Problema
59

Por exemplo, a coluna referente varivel de deciso x121 , que representa o


processamento do trabalho 1 logo aps o processamento do trabalho 2 na mquina 1,
apenas apresenta coeficientes no nulos nas linhas que representam o trabalho 1 (T1) e a
mquina 1 (M1), respectivamente, e como o fluxo sai da tarefa 2 para a tarefa 1, tem o
coeficiente -1 na linha que representa a tarefa 1 e a mquina 1 (T1M1), e o coeficiente 1
na linha que representa a tarefa 2 e a mquina 1 (T2M1), respectivamente.

Podemos explorar esta estrutura especial e aplicar o mtodo de decomposio de


Dantzig-Wolfe, decompondo o problema PI-I em m subproblemas, com espaos de
solues definidos pelas restries (5.5) e (5.6) e a funo de custo (5.7), e num
problema principal (PP) que consiste na funo objectivo (5.2) e nas restries (5.3) e
(5.4).

5.4. Decomposio de Dantzig-Wolfe

5.4.1. Representao em Rede


Seja G=(N,A) uma rede onde A representa o conjunto de arcos e N representa o conjunto
de nodos. O conjunto de nodos contm n+2 nodos, N={0,1,,n,n+1}. O nodo 0
representa o nodo fonte (source node) e o nodo n+1 representa o nodo terminal (sink
node). No problema em estudo, estes nodos representam o incio e o fim de uma
sequncia de afectao, respectivamente. Os restantes nodos representam os trabalhos.

O conjunto de arcos A consiste nos arcos (i,j), para todos ij, i N{0}, j N{n+1}.
Um caminho p na rede G pode ser definido como uma sequncia de nodos (j0,j1,..., jH,
jH+1), tal que cada um dos arcos (jh,jh+1) pertence a A, para 0hH e Hn. Todos os
caminhos se iniciam no nodo j0=0 e terminam no nodo jH+1=n+1. A cada arco (i,j) A
esto associados um custo cij e uma durao tij (que funo do tempo de
processamento pjk, do tempo de preparao sij e da data de disponibilidade do trabalho
rj). Por definio, o custo e a durao associados aos arcos terminais (i,n+1) so nulos.
Captulo 5 - Formulao do Problema
60

Pode-se facilmente verificar que um caminho acclico (simples) na rede G corresponde


a uma sequncia de afectao admissvel para uma dada mquina k, sendo que as
variveis xijk representam o valor do fluxo nos arcos (i,j). Podemos ento definir uma

sequncia de afectao acclica ou admissvel, como o caminho que se inicia no nodo 0,


processa uma nica vez um subconjunto de trabalhos de N, e termina no nodo n+1,
satisfazendo todas as restries definidas.

Uma sequncia de afectao que contenha ciclos, isto , que repita o processamento de
pelo menos um dos trabalhos, designa-se por sequncia de afectao cclica ou no-
admissvel. Seja tambm p0 a sequncia de afectao nula (caminho nulo), um caminho
que se inicia no nodo 0 e termina no nodo n+1, no processando qualquer trabalho de N.

k
Seja tambm P o conjunto de sequncias de afectao (acclicas ou cclicas) p para a
mquina k.

Exemplo 5.3 Representao do problema em rede


Na Figura 5.3, est representada a rede G de qualquer mquina k M, para um
problema com dois trabalhos.

As sequncias de afectao iniciam-se no nodo 0 e terminam no nodo n+1,


equivalendo a caminhos na rede G. O espao de solues deste problema, Pk, contm 5
sequncias de afectao e est representado na Figura 5.3.

O caminho (0,1,2,n+1) que se inicia no nodo 0, processa uma nica vez os trabalhos 1 e
2 e termina no nodo n+1, um exemplo de uma sequncia de afectao acclica ou
admissvel. Aos arcos (0,1) e (1,2) esto associados os custos c01 e c12 e as duraes t01 e
t12, respectivamente. O custo e a durao associados ao arco terminal (2,n+1) so nulos.

A sequncia de afectao nula (caminho nulo) representada pelo caminho (0,n+1) que
se inicia no nodo 0 termina no nodo n+1, no processando qualquer trabalho de N.
Captulo 5 - Formulao do Problema
61

1
k
x01
x12k k
x21 x1k,n +1
k
x02
0
k
2
x2k,n +1
x 0 , n +1

n+1

Espao de solues:
(0, n+1), (0, 1, n+1), (0, 2, n+1),
(0, 1, 2, n+1), (0, 2, 1, n+1)

Figura 5.3 Representao em rede

Esto ainda representadas na Figura 5.3, as variveis de valor do fluxo nos arcos xijk .

Para a sequncia de afectao (0,2,1,n+1), as variveis x02k , x21k e x1k,n+1 tomam o valor 1 e

as restantes, x 01
k
, x12k , x2k,n+1 e x0k,n+1 , tomam o valor zero.

5.4.2. Reformulao do Problema


Seja Xk o conjunto de valores de fluxo nos arcos, xijk , para a mquina k. Sabemos, da

teoria das redes, que um caminho numa rede corresponde a um ponto extremo, X kp = (X ijpk ) ,
do poliedro definido pela envolvente convexa do conjunto de pontos Xk - conv(Xk).
Consequentemente, podemos exprimir qualquer fluxo nos arcos, xijk , como uma

combinao convexa de fluxos nos caminhos:

x ijk = k
k
X ijp y kp , (i, j ) A, k M (5.8)
pP

y k
p = 1, k M
(5.9)
pP k

y kp 0, p P k , k M (5.10)
Captulo 5 - Formulao do Problema
62

a expresso (5.9) referida como sendo a restrio de convexidade.

Note-se que, se a mquina k no for utilizada, a varivel y kp , que corresponde ao0

caminho nulo p0, toma o valor 1, representando o ponto extremo do espao de solues
da mquina k relativo origem das coordenadas, o que assegura a validade de (5.9). No
nosso caso, vamos deixar a sequncia de afectao nula fora da formulao j que o seu
custo nulo, passando a escrever a restrio de convexidade como uma desigualdade
().

Exemplo 5.4 Solues PI-I e caminhos na rede


A rede seguinte representa um problema de programao de dois trabalhos (j=2) numa
qualquer mquina k, onde o caminho nulo (0,n+1) no est representado.

0 n+1

Figura 5.4 Rede do exemplo

Este problema tem quatro sequncias de afectao correspondentes aos caminhos


(0,1,3), (0,2,3), (0,1,2,3), (0,2,1,3), representadas no espao de solues conv(Xk) pelos
k k k k
respectivos pontos extremos X1 , X2 , X3 e X4 .

Ao aplicarmos a formulao PI-I a este mesmo exemplo, obtemos o seguinte conjunto


de solues admissveis,

(x01k = 1, x02k = 0, x12k = 0, x13k = 1, x21k = 0, x23k = 0) ,


Captulo 5 - Formulao do Problema
63

(x01k = 0, x02k = 1, x12k = 0, x13k = 0, x21k = 0, x23k = 1) ,

(x01k = 1, x02k = 0, x12k = 1, x13k = 0, x21k = 0, x23k = 1) ,

(x01k = 0, x02k = 1, x12k = 0, x13k = 1, x21k = 1, x23k = 0 ) .

fcil de verificar que a cada uma das solues admissveis do problema PI-I
corresponde um caminho p na rede, representado pelos pontos extremos k
Xp .

Substituindo agora as expresses (5.8) a (5.10) na formulao PI-I, obtemos a seguinte


formulao extensa (PI-II),

PI - II :
min max(C j d j ,0)w j , (5.11)
jN

sujeito a :
(5.12)
k
X ijp y kp = 1, j N
kM pP k iN {0} i j
(5.13)
X 0k jp y kp 1, k M
pP k jN
(5.14)
y kp 1, k M
pP k

sendo
Cj = [max(Ci + sij , rj ) + p jk ]X ijpk y kp , j N (5.15)
kM pP k iN {0} i j

com C0 = ak e s0 j = sl j , l L k

xijk = k
X ijp y kp , (i,j ) A, k M (5.16)
pP k

xijk {0,1}, i N {0}, j N {n + 1}, k M (5.17)

Nesta formulao (PI-II), as restries de conservao do fluxo (5.5) esto


implicitamente consideradas nas sequncias de afectao representadas pelos pontos
extremos X kp = (X k
ijp
) . A equao (5.16) preserva a ligao entre as variveis de deciso o
que nos vai permitir ter sempre rastreabilidade ao problema original. Como as variveis
xijk s podem tomar valores binrios, ento, todos os pontos inteiros do conjunto

fechado Xk so tambm pontos extremos do poliedro convexo definido por conv(Xk)


Captulo 5 - Formulao do Problema
64

porque os valores das variveis xijk so obtidos atravs de uma combinao convexa

trivial de apenas um ponto extremo do espao de solues definido por conv(Xk), e,


consequentemente, os valores que as variveis y kp tomam tambm so binrios,

tomando o valor 1 se a sequncia de afectao p usada e 0 no caso contrrio. O


inverso tambm se verifica, isto , xijk {0,1} y kp {0,1} .

Verifica-se facilmente que a expresso iN {0} i j X ijpk representa o nmero de vezes que a

sequncia de afectao p Pk processa o trabalho j N e que a expresso (5.13) pode


ser simplificada j que a utilizao da mquina representada pela varivel y kp que

toma o valor 1 se a sequncia de afectao p da mquina k usada e 0 no caso contrrio.

Se C kj for o tempo de concluso do trabalho jh na sequncia de afectao (j 0,j1,..., jH,


h

jH+1), na mquina k, o tempo de concluso do prximo trabalho na sequncia, C kj , pode h +1

ser obtido pela seguinte expresso:

C kj = max (rj , C kj + s j , j
h +1 h +1 h h h +1
)+ p jh +1 ,k
(5.18)
com C kj = ak e C kj = C kj , p , k M ,1 h H
0 H +1 H

O custo de um arco (j h,jh+1) funo do tempo de concluso do trabalho jh+1 na


sequncia de afectao. Ento, podemos definir o custo de um arco (jh,jh+1) da sequncia
de afectao p na mquina k, como o custo de completar o trabalho jh+1 imediatamente
aps ter completado o processamento do trabalho jh (no tempo C kj ), h

c kj , j = w j [max (max (rj , C kj + s j , j


h h +1 h +1 h h h +1
)+ p jh +1 ,k - d j ,0 )]
h +1 (5.19)

O custo de uma sequncia de afectao p, c kp , igual soma dos custos dos arcos

pertencentes a p, e pode ser obtido pela seguinte expresso:

H
c kp = c kj , j h h +1 (5.20)
h =0
Captulo 5 - Formulao do Problema
65

Desta forma, podemos escrever uma formulao equivalente (ISP) que conhecida por
problema principal (PP) da decomposio de Dantzig-Wolfe,

ISP :
min c kp y kp , (5.21)
kM pP k

sujeito a :
a kjp y kp = 1, j N (5.22)
kM pP k

y kp 1, k M (5.23)
pP k

y kp {0,1}, p P k , k M (5.24)
onde
a kjp = k
X ijp , j N , p P k , k M (5.25)
iN {0}|i j

xijk = X ijpk y kp , (i,j ) A, k M (5.26)


pP k

O primeiro conjunto de restries (5.22) garante que cada trabalho processado uma
nica vez; o segundo conjunto de restries (5.23) garante que cada mquina utilizada
no mximo uma vez. A varivel a kjp representa o nmero de vezes que o trabalho j

includo na sequncia de afectao p Pk. A equao (5.26) mantida nesta formulao


para explicitar a necessidade de preservar a ligao s variveis de deciso do problema
original.

Note-se que a funo objectivo agora linear e que quando relaxamos a restrio de
integralidade de y kp (5.24) tambm podemos relaxar a restrio de ligao (5.26) entre

y kp e xijk .

Nesta formulao, baseada no modelo de partio de conjuntos (ISP-modelo de partio


de conjuntos com restries adicionais), pretendemos, a partir do conjunto N dos
trabalhos, encontrar Sm subconjuntos de N, Ps (representados pelas sequncias de
S
afectao p Pk), disjuntos que minimizem uma funo de custo, tal que s=1 Ps = N e

com a restrio adicional de pertencerem todos a mquinas diferentes. Os subconjuntos


Captulo 5 - Formulao do Problema
66

de trabalhos e o seu custo so gerados nos m subproblemas que resolvem problemas de


programao de uma mquina.

As principais razes para esta reformulao so de facto duas; a primeira razo o facto
da expresso de clculo do custo (5.7) ser no linear; a segunda razo tem a ver com o
facto de que a relaxao linear do PP ser mais forte do que a relaxao linear da
formulao original (PI-I) j que as solues fraccionrias de PI-I que no so
combinaes convexas dos pontos extremos do espao de solues do PP so no
admissveis para PP.

Relativamente a PI-I, esta formulao apresenta um maior nmero de variveis de


deciso e um menor nmero de restries. Se bem que este problema de programao
inteira binria possa ser resolvido atravs da sua relaxao linear, o nmero de variveis
de deciso y kp , correspondentes a sequncias de afectao, cresce exponencialmente

com o nmero de trabalhos e o nmero de mquinas, tornando a resoluo deste


problema de forma directa (por procedimentos de enumerao completa) s possvel
para problemas de pequena dimenso.

Exemplo 5.5 Formulao completa baseada no modelo de partio de conjuntos


Para um (muito) pequeno problema com duas mquinas (M1 e M2) e dois trabalhos (T1
e T2) apresentada na tabela seguinte o conjunto de colunas referente a uma
enumerao completa.

y11 y 12 y31 y 14 y12 y 22 y32 y 42


T1 1 1 1 1 1 1 =1
T2 1 1 1 1 1 1 =1
M1 1 1 1 1 <=1
M2 1 1 1 1 <=1
c11 c12 c31 c 14 c12 c22 c32 c42

Figura 5.5 Formulao completa


Captulo 5 - Formulao do Problema
67

O espao de solues para cada uma das mquinas tem quatro sequncias de afectao
correspondentes aos caminhos (0,1,3), (0,2,3), (0,1,2,3), (0,2,1,3).

Exemplificando o preenchimento da tabela, temos que a sequncia de afectao 4 na


mquina 1, representada pela varivel de deciso y14 , corresponde ao caminho (0,2,1,3)

que processa os trabalhos T2 e T1 na mquina M1 e tem um custo c14 .

Relativamente ao Exemplo 5.2, onde est representada uma formulao PI-I para este
mesmo problema, verifica-se que esta formulao apresenta um menor nmero de
restries

Nota: tambm se verifica que, para este exemplo, esta formulao apresenta um menor
nmero de variveis de deciso mas isso s acontece porque se trata de um problema de
muito pequena dimenso.

Alternativamente enumerao completa, a relaxao linear deste problema vai ser


resolvida atravs de um procedimento de enumerao implcita, o algoritmo de gerao
de colunas. Comeamos com apenas um subconjunto restrito das variveis de deciso
(colunas), formando o problema primal restrito, sendo que as restantes so tratadas de
uma forma implcita. O problema primal restrito coordena a gerao de sequncias de
afectao p em cada um dos m subproblemas, que resolvem um problema de
determinao do caminho mais curto numa rede G com custos modificados.

5.4.3. Transferncia de Informao Dual para os


Subproblemas
Da teoria da programao linear, sabemos que a soluo de um problema de
minimizao ptima se o custo reduzido de cada uma das variveis no negativo. O
algoritmo simplex fornece o conjunto de valores das variveis duais j e k, para todos
os j N e k M, associados com o primeiro e segundo conjunto de restries do
problema de programao linear, respectivamente, necessrios para a resoluo dos
subproblemas.
Captulo 5 - Formulao do Problema
68

O custo reduzido do arco (jh,jh+1) de uma sequncia de afectao p, na mquina k, c jk , j , h h +1

pode ser obtido pela seguinte expresso:

ckj h , jh +1
= ck
jh , jh +1
j
h +1
(5.27)

e o custo reduzido de uma sequncia de afectao p, c pk , ,

H
c pk = k + c k j h , j h +1
(5.28)
h =0

Na prxima seco apresentamos a formulao dos subproblemas.

5.5. Formulao dos Subproblemas


Os subproblemas devem ser capazes de representar todas as sequncias de afectao
para cada uma das mquinas e de as avaliar da forma mais eficiente possvel. Nesta
seco, vamos apresentar trs modelos de programao dinmica para determinar a
soluo ptima dos subproblemas.

O primeiro modelo (Modelo 1) determina todas as sequncias de afectao admissveis


mas no so conhecidos algoritmos eficientes para a sua resoluo. O segundo modelo
(Modelo 2), tem um espao de solues que contm, para alm das sequncias de
afectao admissveis, sequncias de afectao no-admissveis, mas apresenta uma
complexidade pseudo-polinomial para o caso mais difcil (worst case). O terceiro
modelo (Modelo 3), uma verso do Modelo 2 ao qual foi adicionado um esquema de
eliminao dos ciclos de ordem 2. Finalmente, propomos um mtodo que tira partido da
estrutura especial do subproblema para aumentar muito significativamente a eficincia
do Modelo 3.
Captulo 5 - Formulao do Problema
69

5.5.1. Modelo 1
Seja Fjk ( S , t ) , o mnimo custo reduzido da sequncia de afectao que vai do nodo

mquina 0 at ao nodo do trabalho j processando uma nica vez todos os trabalhos do


conjunto S, tendo completado o processamento do trabalho j no instante de tempo t, na
mquina k. F jk ( S , t ) pode ser calculado atravs das seguintes equaes de recorrncia:

F k ({}, ak ) = k ;
0

F k ( S , t ) = min {F k ( S { j}, t ' ) + cijk | t ' t sij p jk },


j i
( i , j )A

t = min {max(t '+ sij + p jk , rj + p jk ) | t ' {F k ( S { j}, t ' )}}


i
( i , j )A

para todos os j , S , k tal que j N , S N , k M

Um caso especial deste problema o problema de programao de uma nica mquina


1||wjTj que, como j foi referido, considerado um problema fortemente NP-difcil e
no so conhecidos algoritmos pseudo-polinomiais para a sua resoluo.

5.5.2. Modelo 2
Christofides, Mingozzi e Toth (1981) propuseram uma relaxao do espao de estados
para problemas de programao dinmica de forma a obter limites inferiores da funo
objectivo, fceis de calcular. Podemos aplicar esta tcnica definindo um mapeamento do
espao de estados original (S,t) em um novo espao de estados (j,t) e definindo novas
transies. Cada estado (S,t) mapeado no estado (j,t), e G k ( j , t ) o mnimo custo
reduzido da sequncia de afectao que vai desde o nodo 0 at ao nodo j, tendo
completado o processamento do trabalho j no instante de tempo t, na mquina k. Seja
tambm Tk um limite superior para a durao total de uma sequncia de afectao na
mquina k.

As novas equaes de recorrncia so:


Captulo 5 - Formulao do Problema
70

G k (0, ak ) = k ;
G k ( j , t ) = min {G k (i, t ' ) + cijk | t ' t p jk sij },
( i , j )A

para todos os j , k , t tal que j N , k M e (rj + p jk ) t T k

Pelo facto de a grandeza fsica que identifica um estado estar associada ao tempo j
decorrido e no conter nenhuma informao sobre os estados j visitados, pode
acontecer que uma soluo processe o mesmo trabalho mais do que uma vez, ou seja, a
soluo pode ser uma sequncia de afectao cclica.

Tratando-se de uma relaxao do modelo original, este segundo modelo tem um espao
de solues mais largo do que o Modelo 1 j que permite a existncia de ciclos.
Aplicado a uma instncia de trs trabalhos (e m mquinas), tem como espao de
solues as sequncias de afectao acclicas, mais as seguintes sequncias de afectao
cclicas: (0,1,2,1,4), (0,1,3,1,4), (0,2,1,2,4), (0,2,3,2,4), (0,3,1,3,4) e (0,3,2,3,4).

Com uma implementao computacional apropriada, a complexidade deste algoritmo ,


no pior dos casos, O(n2T) porque a rede tem (n+1)T+1 estados e o tempo de computao
para cada um deles 2n (n aces por estado com n somas e n comparaes).

Este novo problema um caso particular do problema saco-mochila, e tambm NP-


difcil. Contudo, existem algoritmos pseudo-polinomiais para o resolver, baseados em
programao dinmica.

As colunas adicionadas ao PPR sero seleccionadas de sequncias de afectao acclicas


ou cclicas. Contudo, a integralidade binria das variveis de deciso y kp e o primeiro

conjunto de restries do PP garantem que as solues inteiras no contm sequncias


de afectao acclicas.

Note-se que Desrochers, Desrosiers e Solomon (1992) e van den Akker, Hurkens e
Savelsbergh (2000) usaram uma aproximao semelhante na formulao dos seus
problemas.
Captulo 5 - Formulao do Problema
71

Na prxima seco iremos descrever uma verso deste modelo que elimina os ciclos de
ordem 2.

5.5.3. Modelo 3
Um nmero muito significativo de sequncias de afectao cclicas inclui partes do tipo
(i,j,i). Estes ciclos so conhecidos como ciclos de ordem 2 (2-cycles). Para o problema
TSP (Travelling Salesman Problem), Houck, Picard, Queyranne e Vemuganti (1980)
mostraram que para um problema com n nodos, o rcio do nmero de caminhos
admissveis com ciclos de ordem 2 relativamente ao nmero de caminhos admissveis
sem ciclos de ordem 2 de (1+1/(n-3))n -3. Este rcio indicativo da reduo do nmero
de caminhos admissveis que possvel eliminar do espao de solues quando os
ciclos de ordem 2 so eliminados.

A verso do modelo de eliminao dos ciclos de ordem 2 que vamos descrever


baseada no procedimento proposto por Houck, Picard, Queyranne e Vemuganti (1980).
O procedimento de eliminao dos ciclos de ordem 2, basicamente, regista, para cada
estado (j,t), duas sequncias de afectao: H k ( j , t ) , a sequncia de afectao com o
mnimo custo reduzido (best), que completa o trabalho j no instante de tempo t
imediatamente aps ter completado o trabalho i no instante de tempo t e H 2k ( j , t ) , a
sequncia de afectao com o mnimo custo reduzido (next best), que completa o
trabalho j no instante de tempo t imediatamente aps ter completado o trabalho v no
instante de tempo t, tal que vi. Da mesma forma, as variveis g ( j , t ) e g 2 ( j , t )
registam o nmero de trabalhos processados nas sequncias de afectao
correspondentes aos estados H k ( j , t ) e H 2k ( j , t ) , respectivamente.

Se definirmos h(j,t) como sendo o trabalho precedente associado ao estado (j,t), as


novas equaes de recorrncia so:
Captulo 5 - Formulao do Problema
72

H k (0, ak ) = k ;
H k ( j , t ) = min {[ H k (i, t ' ) + cijk | j h(i, t ' ), t ' t p jk sij ],
( i , j )A

[ H (i, t ' ) + cijk | j = h(i, t ' ), t ' t p jk sij ]}


k
2

H k ( j , t ) = min {[ H k (i, t ' ) + cijk | j h(i, t ' ), i h( j , t ),


2
( i , j )A

t ' t p jk sij ], [ H 2k (i, t ' ) + cijk | j h(i, t ' ), i = h( j , t ), t ' t p jk sij ]},

para todos os j , k , t tal que j N , k M e (rj + p jk ) t T k

Este modelo de programao dinmica tem um espao de solues maior do que o do


Modelo 1 mas mais pequeno do que o Modelo 2 j que elimina as sequncias de
afectao com ciclos de ordem 2. A Figura 5.6 e a Figura 5.7 pretendem ilustrar esta
situao.

A
Sequncias de Sequncias de Afectao
Cclicas
Afectao Acclicas B
Sequncias de
C Afectao Cclicas
Ordem 2

Figura 5.6 Espao de solues do Modelo 2 - (AB)

A
Sequncias de Sequncias de Afectao
Afectao Acclicas Cclicas
D Ordem >2

Figura 5.7 Espao de solues do Modelo 3 - AD (D=B\C)


Captulo 5 - Formulao do Problema
73

Aplicado mesma instncia de trs trabalhos (e m mquinas), podemos verificar que


levaria eliminao de todas as sequncias de afectao acclicas j que todas elas
apresentam ciclos de ordem 2 - (0,1,2,1,4), (0,1,3,1,4), (0,2,1,2,4), (0,2,3,2,4),
(0,3,1,3,4) e (0,3,2,3,4).

tambm um caso particular do problema saco-mochila, logo NP-difcil, mas,


semelhana do Modelo 2, existem algoritmos pseudo-polinomiais para o resolver,
baseados em programao dinmica.

5.5.4. Sequncias de Afectao de Custo Reduzido


Decrescente
Nesta seco, vamos apresentar um mtodo que, tirando partido da estrutura especial
dos subproblemas, consegue reduzir o espao de estados do Modelo 3, melhorando de
uma forma significativa a eficincia do algoritmo de programao dinmica.

Como j foi referido, o espao de solues do Modelo 3 inclui sequncias de afectao


acclicas e cclicas, sendo que as sequncias de afectao cclicas possuem ciclos de
ordens superiores a 2.

No processo de gerao de colunas, dizemos que uma sequncia de afectao, acclica


ou cclica, atractiva quando o seu custo reduzido negativo e, como tal, pode ser
adicionada ao PPR como uma nova coluna. Para cada mquina, pretendemos encontrar a
sequncia de afectao de custo reduzido mais negativo. Ou seja, vamos enumerar todas
as solues do espao de solues do modelo 3 com o objectivo de identificar a
sequncia de afectao de menor custo reduzido.

Contudo, uma soluo inteira para a formulao PP somente incluir sequncias de


afectao acclicas porque qualquer sequncia de afectao que inclua mais do que uma
vez o mesmo trabalho, ao tomar um valor igual a 1, viola a restrio relativa ao
processamento desse trabalho. No entanto, as sequncias de afectao cclicas so
admissveis para a relaxao linear, porque as variveis de deciso podem tomar valores
fraccionrios.
Captulo 5 - Formulao do Problema
74

Da que, se em qualquer momento do processo de gerao de colunas soubssemos da


no existncia de mais sequncias de afectao acclicas com custos reduzidos
negativos, poderamos terminar o processo j que a soluo actual da relaxao linear
do PPR seria a melhor soluo para a relaxao linear do PP. A questo que, usando o
Modelo 3, no sabemos da no existncia de mais sequncias de afectao acclicas com
custos reduzidos negativos, e, como tal, s podemos parar o processo de gerao de
colunas quando no conseguirmos gerar mais sequncias de afectao, acclicas ou
cclicas, com custos reduzidos negativos.

No estudo que a seguir desenvolvemos, iremos identificar propriedades dos


subproblemas que nos permitem no s saber se no existem mais sequncias de
afectao acclicas com custos reduzidos negativos como tambm reduzir
significativamente o espao de estados do Modelo 3.

Definio 5.1
Uma sequncia de afectao chamada de sequncia de afectao de custo reduzido
decrescente (CRD) se os custos reduzidos dos seus arcos (j h ,jh+1), c jk h , j h +1 , para todos

os h tal que 1hH e H2, e tambm para quando 0hH e H=1, so negativos. Caso
contrrio, chamada de sequncia de afectao de custo reduzido no-decrescente.

Proposio 5.1
Para funes objectivo regulares e tarefas independentes, as sequncias de afectao
acclicas de custo reduzido mais negativo so sequncias de afectao de custo
reduzido decrescente.

Prova. O custo reduzido de uma sequncia de afectao, c pk , uma funo do custo

reduzido dos seus arcos (jh,jh +1), c jk , j , que, para funes objectivo regulares, so
h h +1

tambm funo dos tempos de concluso C kj , C kj2 ,..., C kj . Como os tempos de preparao
1 H
Captulo 5 - Formulao do Problema
75

das mquinas e os tempos de processamento so maiores do que zero, temos que


C kj < C kj , e, de uma forma geral, C kj < C kj2 < ... < C kj .
h h +1 1 H

A prova do resultado considera dois casos:

Caso 1. 1hH e H2 - Consideremos uma sequncia de afectao acclica de custo


reduzido no-decrescente p, que inclu um nico arco (jh ,jh +1), para todos os h tal que
1hH e H2, com um custo reduzido no negativo, c jk , j 0 . Como as tarefas so h h +1

independentes (no existem relaes de precedncia entre elas), se o nico arco de custo
reduzido no negativo (jh,jh +1) e, consequentemente, (jh+1,jh +2), forem removidos da
sequncia de afectao p e o arco (jh ,jh +2) for adicionado, obteremos uma sequncia de
afectao acclica p, em que, como os tempos de preparao das mquinas satisfazem o
princpio das desigualdades triangulares, sij+sjvsiv, para todos os i,j,v N, temos que
C kj ' C kj ,..., C kj ' C kj (note-se que a igualdade possvel pela existncia de datas de
h+2 h+2 H H

disponibilidade para as tarefas) e, consequentemente, c kj , j c kj h h+ 2 h +1 , jh + 2


. Mais ainda, como

os custos dos arcos so por definio no negativos, temos que c k jh , j h + 2


ck j h , j h +1
+ ck
j h +1 , j h + 2
.

O custo reduzido da sequncia de afectao p, pode ser obtido pela seguinte expresso:

c pk' = c pk + c k ( j h , jh + 2
j h+ 2
) - (c k
jh , jh +1
j h +1
) (c k
jh +1 , jh + 2
j h+2
) .

Simplificando e rearranjando os termos temos,

c pk' = c pk + c k jh , j h + 2
- ck( jh , jh +1
+ ck jh +1 , jh + 2
)+ j h +1 .

Como c k jh , jh + 2
ck
jh , jh +1
+ ck jh +1 , jh + 2
logo c pk' c pk + j h +1
. Dado que o custo reduzido do arco

(jh,jh +1) no negativo, (c k


jh , jh +1
j h +1
) 0 , e ckjh , jh +1
0 , temos que j 0 h +1
e,

consequentemente, c pk' c pk .

Temos tambm que o custo reduzido do arco (jh,jh +2) negativo, c kj ( h +1 , j h + 2


)
jh + 2 < 0 , e

sendo c kj c kj , temos que c kj , j jh + 2 c kjh +1 , jh + 2 jh + 2 < 0 , ou seja, o custo


h , jh + 2 h +1 , j h + 2 h h+2
Captulo 5 - Formulao do Problema
76

reduzido do arco (jh +1,jh +2) negativo, o que faz com que todos os arcos da sequncia de
afectao p tenham custos reduzidos negativos e que esta seja uma sequncia de
afectao de custo reduzido decrescente, o que prova que, para funes objectivo
regulares e tarefas independentes, sempre possvel obter, a partir de uma sequncia de
afectao acclica de custo reduzido no-decrescente, uma sequncia de afectao
acclica de custo reduzido decrescente cujo custo reduzido menor ou igual ao da
sequncia de afectao original.

Note-se que quando o primeiro trabalho a processar for igual configurao inicial da
mquina, j1=lk, o tempo de preparao da mquina nulo, slkj1=0, possibilitando que
s0j+sjv<s0v. Nestes casos, o arco (j 0,j1), da sequncia de afectao acclica de custo
reduzido mais negativo, pode ter um custo reduzido no negativo. Esta a razo que
leva a que o arco (j0,j1) no esteja considerado na Definio 5.1 para sequncias de
afectao em que H2, isto , quando a sequncia de afectao inclui pelos menos dois
trabalhos.

Caso 2. 0hH e H=1 Este caso considera as sequncias de afectao que incluem um
nico trabalho e, como tal, so acclicas. Estas sequncias de afectao so constitudas
por apenas dois arcos, (j0,j1) e (j1,jn +1) e, sendo por definio c jk , j = 0 , fcil de
1 n +1

verificar que qualquer sequncia de afectao em que o custo reduzido do arco fonte
(j0,j1) tenha um valor negativo, c jk , j < 0 , tem um custo reduzido, c pk , de menor valor do
0 1

que no caso contrrio.

Exemplo 5.6 Sequncia de afectao de custo reduzido decrescente


Na Figura 5.8 est representada uma sequncia de afectao acclica, (0,1,2,3,n+1), para
uma instncia com trs trabalhos.
Captulo 5 - Formulao do Problema
77

c01k < 0 c12k 0 c23k < 0 c3k, n +1 = 0


0 t 01k 1 t12k 2 t 23k 3 t3k, n +1 = 0 n+1

c13k < 0
c c +c
k
13
k
12
k
23 t13k
3

Figura 5.8 Sequncia de afectao de custo reduzido decrescente

fcil de verificar que ao removermos da sequncia de afectao o arco de custo


reduzido no negativo (1,2), obtemos uma nova sequncia de afectao tambm acclica
(0,1,3,n+1). Como os tempos de preparao satisfazem o princpio das desigualdades
triangulares temos que t13k t12k + t23k o que implica que c13k c23k . Ento, a nova sequncia
de afectao de custo reduzido decrescente e tem um custo reduzido menor ou igual
ao custo reduzido da sequncia de afectao original.

De referir que a condio das tarefas serem independentes deixa de ser satisfeita
aquando da introduo das restries de partio e, como tal, este resultado no
directamente aplicvel na fase de partio e gerao de colunas. Esta questo ser mais
desenvolvida na Subseco 5.6.1 onde iremos descrever as alteraes necessrias a este
modelo.

Proposio 5.2
Para funes objectivo regulares e tarefas independentes, se no existirem sequncias
de afectao de custo reduzido decrescente, com c pk <0, ento no existem sequncias

de afectao acclicas com custo reduzido negativo.

Prova. fcil de verificar, a partir da Proposio 5.1, que se as sequncias de afectao


acclicas de custo reduzido mais negativo so sempre sequncias de afectao de custo
reduzido decrescente, ento se no existirem sequncias de afectao de custo reduzido
decrescente, tambm no existem sequncias de afectao acclicas de custo reduzido
negativo.
Captulo 5 - Formulao do Problema
78

Estas so propriedades muito interessantes dos subproblemas que nos permitem que,
durante a resoluo da relaxao linear do PP, em qualquer estado rotulado (i,t) de uma
sequncia de afectao parcial em gerao no subproblema, s necessitemos de
considerar os estados subsequentes (j,t) com custo reduzido negativo, para obter
sequncias de afectao de custo reduzido decrescente, reduzindo os espaos de
solues dos subproblemas. Isto equivale a remover das redes de programao dinmica
todos os arcos com custos reduzidos no negativos, com a excepo j referida para os
arcos fonte (0, j) em que os tempos de preparao das mquinas sejam nulos.

O novo modelo de programao dinmica o seguinte:

H k (0, ak ) = k ;
H k ( j , t ) = min {[ H k (i, t ' ) + cijk | cijk < 0 or sij = 0, j h(i, t ' ), t ' t p jk sij ],
( i , j )A

[ H 2k (i, t ' ) + cijk | cijk < 0 or sij = 0, j = h(i, t ' ), t ' t p jk sij ]}

H k ( j , t ) = min {[ H k (i, t ' ) + cijk | cijk < 0 or sij = 0, j h(i, t ' ), i h( j , t ), t ' t p jk sij ],
2
( i , j )A

[ H (i, t ' ) + cijk | cijk < 0 or sij = 0, j h(i, t ' ), i = h( j , t ), t ' t p jk sij ]},
k
2

para todos os j , k , t tal que j N , k M e rj + p jk t T k

Os resultados computacionais preliminares mostram que este mtodo reduz os tempos


computacionais do Modelo 3 num factor superior a 7,0.

5.5.5. Um Algoritmo de Programao Dinmica para a


Resoluo dos Subproblemas
Para a implementao do novo modelo de programao dinmica (descrito na subseco
anterior), vamos adoptar o mtodo reaching para tirar vantagem do facto das solues
em que o trabalho j concludo no tempo t dominam as solues em que o trabalho j
concludo num tempo t>t.
Captulo 5 - Formulao do Problema
79

Definamos S como o conjunto que regista os estados (j,t) rotulados mas ainda no
resolvidos. Sejam tambm Bjt e B2jt estruturas que registam a informao acerca das
sequncias de afectao best e next best, respectivamente, que vo desde o nodo 0 ao
nodo j, tendo concludo o trabalho j no instante de tempo t, e que nos permite
reconstruir para trs (backward) as respectivas sequncias de afectao.

Dado que as sequncias de afectao podem conter ciclos, torna-se necessrio definir
um limite superior para a durao das sequncias de afectao, Tk. Para o nosso
problema, T k depende de vrios factores: da mquina, dos tempos de preparao, das
datas de disponibilidade das mquinas e das datas de disponibilidade dos trabalhos. Isto
torna o seu clculo numa tarefa que no simples quando pretendemos obter um limite
superior de qualidade (apertado). Por este motivo, vamos usar um limite superior bvio
que n, o nmero total de trabalhos a processar. A varivel g(j,t) regista o nmero de
trabalhos processados na sequncia de afectao que vai desde o nodo 0 at ao nodo j,
tendo completado o processamento do trabalho j no instante de tempo t.

O algoritmo de programao dinmica o seguinte:


Captulo 5 - Formulao do Problema
80

Inicializao
H k (0, ak ) = k , g (0, ak ) = 0, S = {(0, ak )}, c pk* = +, j k* = 0, t k* = 0, T k = ak ;
H k ( j , t ) = +, H 2k ( j , t ) = +, B jt = Null, B 2 jt = Null, para todo o j N e t T k
While S { }
Select estado (i, t ') S com menor t ' e g (i, t ' ) < n
S = S {(i, t ')};
For j = 1,..., n
If (i, j ) A
t = max(rj , t '+ sij ) + p jk , cij = max(t d j ,0) w j j ;
if t > T k
H k ( j , t ) = +, H 2k ( j , t ) = +, B jt = Null, B 2 jt = Null;
T k = t;
If j = Bit ' i (if 2 - cycle)
c p = H 2k (i, t ' ) + cij , q = g 2 (i, t ' );
cycle2 = true;
else
c p = H k (i, t ' ) + cij , q = g (i, t ' );
cycle2 = false;
If (cij < 0 or sij = 0) and q < n
If c p < H k ( j , t ) (actualiza " best" )
If j B jt i (actualiza " next - best" )
H 2k ( j , t ) = H k ( j , t ), g 2 ( j , t ) = g ( j , t );
B 2 jt i = B jt i , B 2 jt t = B jt t ;
B 2 jt cycle2 = B jt cycle2 ;
If H k ( j , t ) = + then (novo estado)
S = S + {( j , t )}; (adiciona aos estados rotulados)
H ( j , t ) = c p , g ( j , t ) = q + 1;
k

B jt i = i , B jt t = t , B jt cycle2 = cycle2;
If H k ( j , t ) < H k* then (regista estado de mnimo custo reduzido)
c pk* = H k ( j , t ), j k* = j , t k* = t ;
Else If c p < H k ( j , t ) and j B jt i (regista " next - best" )
2

H ( j , t ) = c p , g 2 ( j , t ) = q + 1;
k
2

B 2 jt i = i , B 2 jt t = t , B 2 jt cycle2 = cycle2;
Captulo 5 - Formulao do Problema
81

5.6. O Algoritmo de Partio e Avaliao


Nesta seco, propomos um algoritmo de partio e avaliao para determinar a soluo
ptima inteira do nosso problema.

A soluo ptima da relaxao linear do PP obtida quando os subproblemas no so


capazes de gerar mais colunas (sequncias de afectao) com custo reduzido negativo.
Se os valores das variveis de deciso y kp so todos inteiros, ento a soluo ptima da

relaxao linear do PP tambm a soluo ptima do problema original (PI-I). Caso


contrrio, alguns dos valores das variveis de deciso y kp so fraccionrios, sendo

necessrio explorar uma rvore de pesquisa para encontrar a soluo ptima inteira.

O desenho do esquema de partio e avaliao de grande importncia num processo de


gerao de colunas porque a partio feita a partir das colunas com solues
fraccionrias, e estas decises tm que ser compatveis com a estrutura do subproblema
para a gerao de novas colunas.

Em cada nodo da rvore de pesquisa resolvemos uma relaxao linear do PPR, com
restries adicionais impostas aos m subproblemas, usando o algoritmo de gerao de
colunas.

5.6.1. Estratgia de Partio


A estratgia apresentada faz partio sobre os arcos e no sobre as variveis de deciso
do PP. A estratgia tradicional de efectuar partio sobre as variveis de deciso do PP
torna-se impraticvel para os ramos em que as variveis de deciso tomam o valor zero.

Note-se que perfeitamente possvel fixar o valor de uma varivel de deciso y kp com

valor fraccionrio no valor inteiro de 1, j que esta informao facilmente transferida


para o subproblema fixando o valor do fluxo em cada arco da sequncia de afectao no
valor 1, isto , removendo da rede todos os outros arcos incidentes nos nodos visitados
pela respectiva sequncia de afectao.
Captulo 5 - Formulao do Problema
82

Contudo, impraticvel fixar directamente o valor da varivel y kp no valor 0 porque

seria necessrio explorar muitas das combinaes dos valores de fluxo (0,1) para os
arcos de uma sequncia de afectao. Por este motivo, iremos efectuar partio sobre as
variveis de deciso xijk do problema original (PI-I).

A estratgia de partio adoptada baseada na representao em rede do problema. A


raiz da rvore de pesquisa corresponde rede G e os nodos descendentes so verses da
rede G modificadas pela imposio de restries sobre caminhos admissveis. Cada
iterao do processo de partio cria dois novos nodos na rvore de pesquisa que sero
resolvidos atravs do algoritmo de gerao de colunas.

Se o valor da soluo ptima do nodo avaliado maior ou igual ao valor do incumbente


o nodo abandonado porque a explorao dos seus descendentes nunca fornecer uma
soluo melhor que o incumbente. Caso contrrio, o processo de partio continua e so
criados dois novos nodos na rvore de pesquisa.

O fluxo total no arco (i,j) das sequncias de afectao da mquina k, p Pk, xijk ,

expresso em funo das variveis de deciso y kp , pela seguinte expresso:

x ijk = X ijpk y kp , (i, j ) A, k M (5.29)


pP k

fcil de verificar que:

- Se os valores das variveis bsicas no-nulas forem inteiros, ento os valores de


fluxo nos arcos, xijk , das respectivas sequncias de afectao, tambm so

inteiros;

- Se existirem arcos com valores de fluxo fraccionrios, ento tambm existem


variveis bsicas com valores fraccionrios;

- Se todas as variveis bsicas apresentarem valores binrios (0,1), ento os


valores de utilizao das mquinas tambm so binrios.
Captulo 5 - Formulao do Problema
83

O seguinte resultado, derivado para os problemas de mquinas paralelas (idnticas,


uniformes ou no-idnticas) com funes de custo aditivas wjC j e w jU j , tambm
se aplica ao problema em estudo.

Proposio 5.3 (Chen, Z.-L., and W. Powell, 1999)


Se todos os valores de fluxo nos arcos, xijk , so binrios, ento os valores das variveis

bsicas tambm so binrios.

Este resultado deve-se ao facto das colunas geradas pelo algoritmo de gerao de
colunas serem sempre diferentes o que implica que, no caso de existirem colunas de
valor fraccionrio, pelo menos uma delas possui um arco que no est presente nas
restantes colunas fraccionrias, sendo que o fluxo neste arco ser tambm fraccionrio.

Resulta do atrs exposto que, uma soluo ptima em que todos os valores de fluxo nos
arcos so binrios tambm uma soluo ptima para o problema original (PI-I).

5.6.2. Regra de Seleco do Nodo


No algoritmo de partio e avaliao , normalmente, necessrio tomar dois tipos de
decises. Uma chamada de seleco do nodo a explorar que define a forma de
percorrer a rvore de pesquisa. A outra a seleco da varivel com valor fraccionrio
sobre a qual se ir efectuar a partio.

A seleco do prximo nodo a explorar feita usando a regra best-first. Os nossos


testes computacionais preliminares mostraram que esta regra tem um desempenho
superior a outras regras de seleco do nodo (Figura 5.9).

A Figura 5.9 apresenta um grfico comparativo do desempenho de trs regras de


seleco do nodo da rvore de pesquisa a explorar. A primeira a regra depth-first
(primeiro em profundidade) que muito usada na prtica. A segunda uma combinao
da regra depth-first com a regra best-first (primeiro o melhor). Nesta regra, se o nodo
avaliado no abandonado, aplicada a regra de primeiro em profundidade. Caso
Captulo 5 - Formulao do Problema
84

contrrio, aplicada a regra de o melhor primeiro. Por ltimo, a terceira regra a regra
best-first.

110%
100% 100% 100%
100%
88% 90% 89%
90% 81%
80%
80% 74%
70%
60%
50%
40%
30%
20%
10%
0%
Tempo Colunas BP Nodos

Depth-First(DF) DF+BF Best-First(BF)

Figura 5.9 Comparao de regras de seleco do nodo

Foram avaliadas trs medidas de desempenho: o tempo computacional, o nmero de


colunas geradas na fase de partio e gerao de colunas e o nmero de nodos avaliados
na rvore de pesquisa. Os resultados mostram que o desempenho da regra best-first
superior s outras duas tanto em tempo computacional como tambm no nmero de
colunas e nodos avaliados.

5.6.3. Regra de Seleco da Varivel


Uma das regras de seleco da varivel para partio mais referida na literatura revista
na Seco 4.3.3, e uma das mais usadas na prtica, a regra do arco com valor total de
fluxo mais fraccionrio - min| xijk -0,5|. Contudo, para algumas das instncias do nosso

problema, esta regra no produz bons resultados j que so geradas muitas parties na
rvore de pesquisa sem que o valor da soluo nos nodos descendentes se altere de
forma a permitir um rpido progresso para a soluo ptima. Este fenmeno de
mergulho na rvore de pesquisa resulta em tempos computacionais incomportveis.
Captulo 5 - Formulao do Problema
85

Conforme foi referido na Seco 3.4, um princpio geral a que as regras de partio
devem obedecer a de que as decises mais fortes devem ser tomadas no incio. A
anlise da estrutura das solues para este problema revelou uma certa hierarquia de
decises ao longo da sequncia de afectao em que as decises mais importantes so
tomadas no incio, comeando pela deciso entre afectar um trabalho de tempo de
preparao nulo ou um outro, at ao momento em que os trabalhos comeam a
apresentar atrasos.

A partir daqui, a afectao dos trabalhos mquina segue, na maior parte dos casos,
uma lgica de prioridade decrescente, isto , tipicamente os trabalhos menos prioritrios
ficam na cauda da sequncia de afectao. Por outro lado, fcil de perceber que, numa
sequncia de afectao, os trabalhos a montante afectam todos os trabalhos
subsequentes ou, dito de outra forma, quanto mais a montante da sequncia de afectao
um trabalho se encontrar, maior ser a sua influncia no resultado global da sequncia
de afectao.

Com base no atrs exposto, desenvolvemos uma regra de partio multicritrio, que
chamamos de regra MFMC (Mais Fraccionrio e Mais Cedo), que passamos a
descrever.

A regra de partio MFMC, pondera dois valores para cada arco (i,j) com valor de fluxo
no nulo:

1. O valor do desvio integralidade - min| xijk -0,5|;

2. A menor posio que o arco (i,j) ocupa na sequncia de afectao da mquina k.

Relativamente ao ponto 2, ponderamos de forma diferente os chamados arcos fonte


(0,j). Estes arcos ao serem seleccionados para partio apresentam uma vantagem
adicional, para alm da sua posio mais a montante, que o facto de definirem uma
posio fixa na sequncia de afectao, isto , definem que o primeiro trabalho a ser
processado na mquina k o trabalho j. Mais ainda, definem implicitamente as posies
dos arcos de ligao subsequentes na sequncia de afectao.
Captulo 5 - Formulao do Problema
86

Se o arco (0,j) tem a posio 0, o arco (j,v) ter obrigatoriamente a posio 1 na


sequncia de afectao, e assim sucessivamente. Pelo contrrio, se a restrio de
partio for sobre um arco (i,j)|i0 e jn+1, este arco poder aparecer em qualquer
posio da sequncia de afectao, excepto nas posies 0 e H.

A Figura 5.10 apresenta um grfico comparativo do desempenho das duas regras de


partio acima referidas: mais fraccionrio e MFMC. Foram avaliadas trs medidas de
desempenho: o tempo computacional, o nmero de colunas geradas na fase de aplicao
do mtodo de partio e gerao de colunas e o nmero de nodos avaliados na rvore de
pesquisa.

110%
100% 100% 100%
100%
90%
80%
70%
60%
50%
40% 35%
30%
20% 15% 16%
10%
0%
Tempo Colunas BP Nodos

Mais Fraccionrio MFMC

Figura 5.10 Comparao de regras de partio

Os resultados mostram que o desempenho da regra MFMC claramente superior regra


do mais fraccionrio tanto em tempo computacional como tambm no nmero de
colunas geradas e nodos avaliados.
Captulo 5 - Formulao do Problema
87

5.6.4. Implementao da Estratgia de Partio


A estratgia de partio implementada no valor de fluxo nos arcos, xijk , da rede que

representa as sequncias de afectao para a mquina k. Para as variveis bsicas no-


nulas ( y kp > 0 ), somamos o valor do fluxo nos respectivos arcos, xijk . Depois, atribumos

uma pontuao aos arcos de acordo com a seguinte expresso:

m
Pontuao = 0,25 xijk 0,5 | 0 < xijk < 1, = 0,3 (5.30)
n
A varivel =0,1,,H, representa a posio do arco na sequncia de afectao e a
varivel uma varivel binria que toma o valor 1 caso se trate de um arco fonte (0,j)
e 0 caso contrrio. A constante representa um factor de correco ao nmero de
posies existentes numa sequncia de afectao que funo da relao entre o
nmero de trabalhos e o nmero de mquinas.

A varivel fraccionria com a maior pontuao seleccionada para partio.

Para a varivel seleccionada para partio so criados dois ramos na rvore de pesquisa:

- Um impondo que o fluxo total no arco (i,j), na mquina k, igual a um - xijk = 1 ,

i.e., estabelece uma relao de precedncia ij entre os trabalhos i e j e

estabelece que o arco (i,j) s pode ser usado na rede G do subproblema que
representa a mquina k;

- O outro impondo que o fluxo total no arco (i,j), na mquina k, igual a zero -
xijk = 0 , i.e., o arco (i,j) no pode ser usado na rede G do subproblema que

representa a mquina k.

Como j foi referido, as restries de partio tm de ser compatveis com a estrutura


do subproblema. Isto implica que a rede G que define o subproblema seja modificada
para fazer reflectir as restries de partio impostas:
Captulo 5 - Formulao do Problema
88

- Se xijk toma o valor zero, o arco (i,j) simplesmente removido da rede G do

subproblema que representa a mquina k, eliminando a gerao de sequncias de


afectao para a mquina k que incluam o arco (i,j) - Figura 5.11 b);

- Se xijk toma o valor 1, os arcos (i,v) A|v j e (l,j) A|li so removidos da rede

G do subproblema que representa a mquina k- Figura 5.11 a).

i j i j

a) b)

Figura 5.11 Restries de partio na rede do subproblema

Exemplo 5.7 Restries de partio sobre os arcos


Na Figura 5.12 esto representadas as modificaes introduzidas para compatibilizar o
nosso subproblema com o problema primal restrito, pelas restries de partio sobre
arcos no fonte, x12k = 1 e x23k = 1 , na rede da mquina k para um problema com trs
trabalhos.

Restrio de partio x12k = 1

Para compatibilizar o nosso subproblema com o problema primal restrito, vamos


remover os arcos incidentes no nodo 2 com origem em nodos diferentes do nodo 1
arcos (0,2) e (3,2), e os arcos com origem no nodo 1 que incidem em nodos diferentes
do nodo 2 arcos (1,3) e (1,n+1). Note-se que a posio do arco (1,2) nas sequncias de
afectao (caminhos) na rede modificada a) no fica estabelecida, j que, na sequncia
de afectao (0,1,2,3,n+1) aparece na posio 1 enquanto que na sequncia de afectao
(0,3,1,2,n+1) aparece na posio 2. De referir ainda que esta restrio de partio no
Captulo 5 - Formulao do Problema
89

obriga a utilizao do arco (1,2) em todas as sequncias de afectao na rede


modificada a); a sequncia de afectao (0,3,n+1) admissvel e no inclui o arco (1,2).

1 1 1

0 2 0 2 0 2

n+1 n+1 n+1

3 3 3

a) (1,2)=1 b) (2,3)=1

Figura 5.12 Restries de partio sobre arcos no fonte

Restrio de partio x23k = 1

Da mesma forma, vamos remover os arcos incidentes no nodo 3 com origem em nodos
diferentes do nodo 2 arco (0,3), e os arcos com origem no nodo 2 que incidem em
nodos diferentes do nodo 3 arcos (2,1) e (2,n+1).

Na Figura 5.13 esto representadas as modificaes introduzidas pelas restries de


partio x01k = 1 e x12k = 1 , sendo que a primeira sobre um arco fonte, na rede da
mquina k para um problema com trs trabalhos. A rede modificada apresentada na
Figura 5.12 b). Podemos verificar agora que qualquer sequncia de afectao inclui os
arcos (1,2) e (2,3).

Restrio de partio x01k = 1

Para compatibilizar o nosso subproblema com o problema primal restrito, vamos


remover os arcos incidentes no nodo 1 com origem em nodos diferentes do nodo 0
arcos (2,1) e (3,1), e os arcos com origem no nodo 0 que incidem em nodos diferentes
do nodo 1 arcos (0,3) e (0,2). Note-se agora que a posio do arco (0,1) fica
estabelecida (posio 0), e que a utilizao do arco (0,1) obrigatria para todas as
sequncias de afectao (caminhos) na rede modificada b).
Captulo 5 - Formulao do Problema
90

1 1 1

0 2 0 2 0 2

n+1 n+1 n+1

3 3 3

a) (0,1)=1 b) (1,2)=1

Figura 5.13 Restries de partio sobre arcos fonte

Restrio de partio x12k = 1

Da mesma forma, vamos remover os arcos incidentes no nodo 2 com origem em nodos
diferentes do nodo 1 arco (3,2), e os arcos com origem no nodo 1 que incidem em
nodos diferentes do nodo 2 arcos (1,3) e (1,n+1).

Finalmente, se xijk toma o valor zero, o custo de todas as colunas do PPR que usam o

arco (i,j) e a mquina k so penalizados. Se xijk toma o valor 1, o custo de todas as

colunas do PPR que usam a mquina k, e os arcos (i,v) A|vj e (l,j) A,li, so
penalizados. Em ambos os casos, a soluo actual do PPR continua vlida mas apresenta
agora um custo muito elevado. Aps a reoptimizao do PPR, novas colunas so
geradas pelo algoritmo de gerao de colunas at que seja obtida uma nova soluo
ptima para o PPR.

5.6.5. Relaxao das Sequncias de Afectao de


Custo Reduzido Decrescente
Como j foi mencionado na Subseco 5.5.4, aps a introduo de restries de
partio, a Proposio 5.2 perde validade devido ao facto das restries de partio
imporem relaes de precedncia aos trabalhos sobre os quais incidem, logo, a condio
de independncia dos trabalhos deixa de ser satisfeita. De facto, pode existir uma nica
sequncia de afectao acclica atractiva que inclui um arco de custo reduzido no
Captulo 5 - Formulao do Problema
91

negativo, sobre o qual incide uma restrio de partio, que obriga a que este arco tenha
de ser considerado. As seguintes situaes podem acontecer:

1. O arco (i,j) da rede que representa a mquina k toma o valor 1;

O arco (i,j) tem um custo reduzido no negativo mas tem de ser considerado
porque todos os arcos (i,v) A|vj so removidos da rede que representa
a mquina k e existe um sequncia de afectao acclica
(0,,i,j,v,,n+1) com custo reduzido negativo que inclui a sequncia
parcial de trabalhos (i,j,v). Esta situao est representada na Figura
5.14. Podemos verificar que, como a ligao entre i e v no possvel de
estabelecer devido restrio de partio sobre o arco (i,j), se apenas
forem geradas sequncias de afectao de custo reduzido decrescente, o
arco arco (i,j) no considerado e, consequentemente, o arco de custo
reduzido negativo (j,v) tambm no o , podendo, assim, eliminar
sequncias de afectao acclicas de custo reduzido negativo quando
cijk + c jvk < 0 ;

cijk + c jvk < 0


cijk 0 c jvk < 0
0 i j v n+1

Figura 5.14 Situao 1-a)

O arco (i,j) tem um custo reduzido negativo mas no considerado porque


todos os arcos (v,j) A|v i so removidos da rede que representa a
mquina k e existe um sequncia de afectao acclica (0,,v,i,j,,n+1)
com custo reduzido negativo que inclui a sequncia parcial de trabalhos
(v,i,j). Esta situao est representada na Figura 5.15. Verificamos que,
como a ligao entre v e j no possvel de estabelecer devido
restrio de partio sobre o arco (i,j), se apenas forem geradas
Captulo 5 - Formulao do Problema
92

sequncias de afectao de custo reduzido decrescente, o arco arco (v,i)


no considerado e, consequentemente, o arco de custo reduzido
negativo (i,j) tambm no o , podendo, assim, eliminar sequncias de
afectao acclicas de custo reduzido negativo quando cvik + cijk < 0 ;

cvik + cijk < 0


cvik 0 cijk < 0
0 v i j n+1

Figura 5.15 Situao 1-b)


2. O arco (i,j) da rede que representa a mquina k toma o valor 0. Neste caso, os
arcos (i,v) A|vj com um custo reduzido no negativo devem ser considerados
porque o arco (i,j) removido da rede que representa a mquina k e existe um
sequncia de afectao acclica (0,,i,v,j,,n+1) com custo reduzido negativo
que inclui a sequncia parcial de trabalhos (i,v,j). Esta situao est representada
na Figura 5.16 onde podemos verificar que, como a ligao entre i e j no
possvel de estabelecer devido restrio de partio sobre o arco (i,j), se
apenas forem geradas sequncias de afectao de custo reduzido decrescente, o
arco arco (i,v) no considerado e, consequentemente, o arco de custo reduzido
negativo (v,j) tambm no o , podendo, assim, eliminar sequncias de afectao
acclicas de custo reduzido negativo quando civk + cvjk < 0 ;

civk + cvjk < 0

0 i j n+1

civk 0 cvjk < 0


v

Figura 5.16 Situao 2


Nas situaes atrs descritas, a condio expressa na Proposio 5.2, de gerar apenas
sequncias de afectao com custo reduzido decrescente, relaxada. Para alm dos
Captulo 5 - Formulao do Problema
93

estados (j,t) subsequentes aos estados rotulados (i,t) e com custo reduzido negativo, so
tambm considerados os estados (j,t) com qualquer valor de custo reduzido quando
existem restries de partio sobre o trabalhos i ou j. fcil de verificar que esta
relaxao resolve qualquer uma das situaes atrs referidas; na situao 1 a), o arco
(i,j) passa a ser considerado porque tanto o trabalho i como o trabalho j so objecto de
uma restrio de partio; na situao 1 b), o arco (v,i) passa a ser considerado porque o
trabalho i objecto de uma restrio de partio; na situao 2, o arco (i,v) passa a ser
considerado porque o trabalho i objecto de uma restrio de partio.

Isto implica que tenhamos de gerar nos subproblemas mais do que sequncias de
afectao de custo reduzido decrescente para no eliminar sequncias de afectao
acclicas atractivas.

5.6.6. Convergncia do Mtodo


O nmero de caminhos e circuitos de uma rede (sequncias de afectao acclicas e
cclicas) finito, embora exponencialmente elevado relativamente aos nodos da rede.
Por outro lado, as restries de partio sobre os arcos garantem que, na soluo inteira,
no vo existir caminhos com ciclos (sequncias de afectao com trabalhos a serem
processados mais do que uma vez) e, sendo o nmero destas restries de partio
tambm finito, existe a garantia de o mtodo obter a soluo ptima num nmero finito
de passos, que pode ser exponencial.
Captulo 6
Estabilizao e Acelerao da Gerao
de Colunas

Neste captulo, fazemos uma apresentao global de estratgias de estabilizao e


acelerao do algoritmo de gerao de colunas e estudamos a implementao daquelas
que nos pareceram mais adequadas ao problema em estudo. Por ltimo, propomos um
mtodo de acelerao do algoritmo de gerao de colunas baseado na restrio do
espao primal.

6.1. Introduo
O algoritmo de gerao de colunas conhecido pela sua lenta convergncia. Enquanto
que solues prximas do valor ptimo so atingidas de uma forma relativamente
rpida, a partir daqui, a progresso do algoritmo at soluo ptima feita de uma
forma lenta, exibindo uma longa cauda. Este fenmeno, conhecido na literatura por
efeito de cauda longa (tailing off effect), induzido por comportamentos indesejveis
tais como a degenerescncia do primal ou a excessiva oscilao das variveis duais.
Este tpico foi objecto de muito trabalho de investigao nos ltimos anos e foram
propostas algumas estratgias para a sua correco. Globalmente, estas estratgias
beneficiam da sua adaptao s caractersticas especficas do problema.

94
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
95

6.2. Limites Inferiores


Uma das ideias mais simples para corrigir o efeito de cauda longa a de terminar a
execuo do algoritmo antes de este fenmeno ocorrer. Mais precisamente, o algoritmo
de gerao de colunas interrompido quando o desvio da soluo actual do problema de
programao linear relativamente a um limite inferior calculado (para problemas de
minimizao), inferior a um determinado valor. Infelizmente, o algoritmo de gerao
de colunas faz uma aproximao ao valor ptimo por cima, isto , em cada iterao gera
um novo limite superior para o valor ptimo. Por este motivo, terminar prematuramente
o algoritmo de gerao de colunas pode conduzir a um valor da soluo da relaxao
linear que no um limite inferior para a soluo ptima inteira.

O mtodo proposto originalmente por Gilmore e Gomory (1963) de terminar o


algoritmo de gerao de colunas quando o decrscimo relativo da funo objectivo,
aps um determinado nmero de iteraes, fosse inferior a um dado valor percentual,
pode tambm conduzir a valores de soluo no ptimos pela ocorrncia de patamares
temporrios de estagnao do valor da funo objectivo.

Contudo, Lasdon (1970) apresenta um mtodo simples e fcil de implementar para o


clculo de um limite inferior da relaxao linear em cada iterao do algoritmo de
gerao de colunas. Este mtodo e uma sua extenso, mais geral, so apresentados na
Subseco 6.2.1. Na Subseco 6.2.2, alargamos a utilizao destes limites inferiores
aos problemas de programao inteira.

6.2.1. Limites Inferiores na Programao Linear


Seja Z PPR o valor da soluo ptima do problema primal restrito e ck* o valor do menor
custo reduzido do subproblema correspondente mquina k, para uma dada iterao do
algoritmo de gerao de colunas. Seja tambm Z RLPP
*
o valor da soluo ptima da

relaxao linear do problema principal (PP). Um limite inferior para Z RLPP


*
pode ser
obtido a partir das expresses gerais propostas por Lasdon (1970).
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
96

O modelo da relaxao linear do problema principal (RLPP) o seguinte

RLPP :
min Z = c kp y kp , (6.1)
kM pP k

sujeito a :
(6.2)
a kjp y kp = 1, j N
kM pP k

y kp 1, k M (6.3)
pP k

y kp 0, p P k , k M (6.4)

e na sua forma aumentada,

RLPP :
min Z = c kp y kp , (6.5)
kM pP k

sujeito a :
a kjp y kp = 1, j N (6.6)
kM pP k

y kp + sk = 1, k M (6.7)
pP k

y kp , sk 0, p P k , k M (6.8)

onde sk representa as variveis de folga.

Multiplicando as restries pelas respectivas variveis duais e efectuando a sua soma


fica:

a kjp y kp j = j (6.9)
jN kM pP k jN

y kpk + sk k = k (6.10)
kM pP k kM kM

Subtraindo estas expresses funo objectivo, obtemos


Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
97

Z j k = c kp y kp a kjp y kp j y kpk skk (6.11)


jN kM kM pPk jN kM pPk kM pPk kM

ou

Z j k = y kp c kp a kjp y kp j k skk (6.12)
jN kM kM pP k
jN kM

onde podemos verificar que a expresso entre parntesis representa o custo reduzido
associado coluna p da mquina k, c pk . Como ykp no negativo, c pk pode ser

substitudo pelo seu valor mnimo ck* , ficando

(6.13)
Z j + k + y kp ck* sk k
jN kM kM pP k
kM

Da mesma forma, como pP k


y kp 1, k M podemos simplificar a expresso (6.13),

Z j + k + ck* skk (6.14)


jN kM kM kM

Da teoria da dualidade sabemos que o valor da soluo ptima actual do problema


primal restrito, Z PPR , igual ao valor da soluo dual correspondente

WPPR = jN j + kM k . Substituindo esta expresso na expresso (6.14) obtemos um

limite inferior para a relaxao linear do problema primal restrito,

Z RLPP
*
Z PPR + ck* sk k (6.15)
k M k M

Os resultados computacionais preliminares da aplicao deste mtodo ao nosso


problema mostram que, na prtica, no reduz ou reduz marginalmente o nmero de
iteraes do algoritmo de gerao de colunas.

Este limite inferior pode tambm ser usado para calcular, em cada iterao, o desvio
percentual relativamente soluo ptima e, desta forma, terminar o algoritmo quando
for atingido um determinado valor mximo para esse desvio.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
98

Quando c0, podemos usar um mtodo mais geral (Farley, 1990) para o clculo de um
limite inferior da relaxao linear em cada iterao do algoritmo de gerao de colunas
que no depende de ck* .

Os modelos primal e dual da relaxao linear do problema principal, na forma matricial,


so os seguintes:

RLPP : DRLPP :
min Z = cy, max W = + , (6.16)
sujeito a : sujeito a :
(6.17)
ay = 1 a + c
y 1 (6.18)
y, c 0 urs, 0, c 0 (6.19)

Seja ( , ) a soluo ptima dual para uma dada iterao do algoritmo de gerao de

colunas. Definamos kp = a kp + k , p P k , k M . Se kp 0, p P k , k M ento

( , ) a soluo ptima do dual completo e, pela teoria da dualidade, y a soluo


ptima do primal completo. Caso contrrio, seja cu / u = min kM , pP {c kp / kp | kp > 0}.
k

Como cu 0 , resulta que cu / u 0 .

Teorema 6.1 Para o problema RLPP cycu / u um limite inferior para o valor

ptimo da funo objectivo.

Prova. (a prova deste teorema decorre da que foi feita por Farley, 1990, para a classe de
problemas min{cx : Ax b, x 0, c 0} ).

Sabemos da teoria da dualidade que uma soluo admissvel para o problema dual
(DRLPP) um limite inferior para a soluo ptima do problema primal (RLPP). Em
particular, se ( , )cu / u uma soluo admissvel para o modelo DRLPP, ento o seu
valor um limite inferior para a soluo ptima do modelo RLPP. Para estabelecer a
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
99

validade de ( , )cu / u no modelo DRLPP necessrio demonstrar que

(a , )cu / u c e que cu / u 0 . Para a restrio p da mquina k a primeira condio

fica (v kp + k )cu / u c kp ou kp cu / u c kp . Se kp 0 ento kp cu / u 0 c kp j que

c kp 0 . Se kp > 0 ento necessrio que cu / u c kp / kp o que verdadeiro pela

definio de cu / u . Como cu 0 resulta que cu / u 0 e sendo 0 a segunda

condio cu / u 0 satisfeita, provando o resultado.

No entanto, este mtodo necessita de um maior esforo computacional para ser obtido, e
por este motivo no foi utilizado.

6.2.2. Limites Inferiores na Programao Inteira


Quando pretendemos uma soluo inteira, o nico propsito da resoluo da relaxao
linear do problema de programao inteira o de obter um limite inferior para a soluo
ptima do problema de programao inteira. Se as colunas apresentam valores inteiros
para os custos (o que pode ser obtido atravs de um factor de escala apropriado), o
processo de gerao colunas pode ser terminado quando Z PPR
*
= LI , sendo LI um
dos limites inferiores apresentados na Seco anterior. Este valor garante que a soluo
ptima inteira do problema original Z * = LI .

Este limite inferior pode ser usado no esquema de partio e avaliao permitindo que
um nodo da rvore de pesquisa seja abandonado quando Z = LI , em que Z representa
o valor actual do incumbente.

6.3. Estabilizao do Algoritmo de Gerao de


Colunas
Uma outra forma de acelerar a convergncia do algoritmo de gerao de colunas pela
estabilizao dos valores das variveis duais. Os processos de gerao de colunas so
algoritmos de cortes duais (Lasdon, 1970). Da perspectiva do dual, os processos de
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
100

gerao de colunas podem ser vistos da seguinte forma: em cada iterao, so


adicionados cortes duais para eliminar a anterior soluo dual no admissvel. O espao
dual sucessivamente restringido at que uma soluo dual admissvel seja encontrada.

A estabilizao dos valores das variveis duais normalmente obtida atravs da


restrio do espao dual admissvel ou, alternativamente, guiando os valores das
variveis duais. Esta a estratgia seguida pelos mtodos que a seguir descrevemos.

O mtodo boxstep (Marsten, Hogan e Blankenship, 1975) segue a estratgia de guiar os


valores das variveis duais criando caixas (boxes) de dimenso fixa volta dos valores
da soluo dual do problema primal restrito que funcionam como limites inferiores e
superiores aos valores das variveis duais. Este novo problema primal restrito
reoptimizado. Se a nova soluo dual se encontrar na fronteira da caixa, esta
deslocada na direco do limite atingido. Caso contrrio, a soluo ptima dual
encontra-se no interior da caixa e esta tambm a soluo ptima do PPR original.

O trust region method de Kallehauge, Larsen e Madsen (2001) usa um conceito similar
mas onde os intervalos (caixas) para os valores das variveis duais podem ser ajustados
automaticamente dependendo da forma como o dual do PPR se aproxima do dual
Lagrangiano.

Du Merle, Villeneuve, Desrosiers e Hansen (1999), propuseram uma estratgia de


estabilizao que permite que, ao longo do processo de gerao de colunas, haja
solues fora da caixa definida. A essas solues atribuda uma penalidade, definida
por uma funo linear por troos, que depende da distncia caixa. Alm disso, a
dimenso e o centro das caixas so actualizadas de uma forma dinmica e tambm
introduzida uma pequena perturbao do lado direito do problema primal para
ultrapassar problemas de degenerescncia.

Mais recentemente Ben Amor, Desrosiers e Valrio de Carvalho (2003) mostraram que,
se conhecermos a priori uma soluo dual ptima para o problema, esta informao
pode ser usada para guiar o processo de gerao de colunas e obter uma soluo ptima
muito mais rapidamente. Valrio de Carvalho (2004), derivou cortes duais ptimos para
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
101

o problema de corte e mostrou que a introduo destes cortes duais antes do incio do
algoritmo de gerao de colunas, o que corresponde a restringir o espao dual durante
todo o processo de gerao de colunas, acelera o algoritmo.

Outros mtodos, como o bundle (Urruty e Lemarchal, 1993), analytic center cutting
plane (du Merle, Goffin e Vial, 1998), foram usados para prevenir a variao excessiva
das variveis duais.

Nas Subseces 6.3.1 e 6.3.2 estudamos a aplicao de dois mtodos de estabilizao do


algoritmo de gerao de colunas ao problema em estudo e na Subseco 6.4 propomos
um mtodo de restrio do espao primal que permite a resoluo dos subproblemas de
uma forma muito mais eficiente.

6.3.1. O Modelo de Cobertura de Conjuntos


O problema principal do nosso problema de programao de mquinas paralelas foi
formulado, na Seco 5.4, com base no modelo de partio de conjuntos (ISP).
Contudo, na implementao do algoritmo e durante a fase de relaxao linear, vamos
usar uma formulao baseada no modelo de cobertura de conjuntos (ISC).

A diferena entre as duas formulaes, do ponto de vista do dual, a seguinte: no


modelo ISP, os valores das variveis duais, correspondentes a restries do tipo
igualdade, so no limitados em sinal, enquanto, no modelo ISC, as variveis duais so
no negativas. Portanto, ao adoptar o modelo ISC, estamos a restringir o espao dual, o
que influencia positivamente a convergncia do processo de gerao de colunas
(Valrio de Carvalho, 2004). Em consequncia disso, a resoluo da relaxao linear da
formulao baseada no modelo de cobertura de conjuntos numericamente muito mais
estvel do que a formulao baseada no modelo de partio de conjuntos.

A formulao do nosso problema com base no modelo ISC a seguinte:


Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
102

ISC :
min c kp y kp , (6.20)
kM pP k

sujeito a :
a kjp y kp 1, j N (6.21)
kM pP k

y kp 1, k M (6.22)
pP k

y kp {0,1}, p P k , k M (6.23)
onde
a kjp = k
X ijp , j N , p P k , k M (6.24)
iN {0}|i j

xijk = X ijpk y kp , (i,j ) A, k M (6.25)


pP k

O primeiro conjunto de restries (6.20) garante que cada trabalho processado pelo
menos uma vez; o segundo conjunto de restries (6.21) garante que cada mquina
utilizada no mximo uma vez. Tal como na formulao ISP, quando relaxamos a
integralidade de y kp , (6.23) tambm podemos relaxar a restrio de ligao (6.25) entre

y kp e xijk .

Exemplo 6.1 Convergncia dos valores das variveis duais


A Figura 6.1 e a Figura 6.2 mostram a convergncia dos valores das variveis duais das
formulaes baseadas nos modelos ISP e ISC, respectivamente, para uma instncia de
10 mquinas e 70 trabalhos. No eixo das ordenadas esto representados os valores das
variveis duais referentes aos trabalhos e no eixo das abcissas est representado o
nmero de colunas geradas.

Pela observao destas duas figuras, podemos constatar o problema referido no ponto 2
acima (os valores das variveis duais oscilam entre valores negativos e positivos para o
modelo ISP enquanto para o modelo ISC esto restringidos a valores positivos) e
verificar que a convergncia do processo de gerao de colunas aproximadamente
15% mais rpida na formulao ISC.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
103

500000

400000

300000
Valores das Variveis Duais

200000

100000

-100000

-200000

-300000

-400000

-500000
1

101

201

301

401

501

601

701

801

901

1001

1101

1201

1301

1401

1501

1601

1701
Colunas

Figura 6.1 Convergncia dos valores das variveis duais (ISP)

500000

400000

300000
Valores das Variveis Duais

200000

100000

-100000

-200000

-300000

-400000

-500000
1

101

201

301

401

501

601

701

801

901

1001

1101

1201

1301

1401

1501

1601

1701

Colunas

Figura 6.2 Convergncia dos valores das variveis duais (ISC)


Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
104

A formulao ISC constitui uma relaxao da formulao ISP. Em geral, sempre que
uma subcoluna de uma coluna admissvel define uma outra coluna tambm admissvel e
com menor custo, ento uma soluo ptima do problema de cobertura de conjuntos
ser tambm uma soluo ptima do problema de partio de conjuntos.

Contudo, o nosso problema no se enquadra nesta definio por duas razes:

1. O custo associado a uma coluna (sequncia de afectao) pode ser nulo;

2. Uma soluo ptima para a formulao ISC pode ter um valor inferior soluo
ptima para formulao ISP. Isto pode acontecer quando mquinas diferentes
possuem configuraes iniciais, lk, iguais podendo ambas beneficiar de tempos
de preparao nulos caso a primeira tarefa a ser processada no implique uma
alterao na sua configurao, isto , j1 =lk. Nestes casos, o princpio das
desigualdades triangulares, aplicado aos tempos de preparao das mquinas,
pode ser violado e permitir solues de menor custo quando a mesma tarefa
afectada a mquinas diferentes, com tempos de preparao nulos.

No entanto, a formulao ISC pode ser usada na resoluo da relaxao linear do PP


com vantagens para a eficincia do algoritmo de gerao de colunas j que se verifica
que o processo de gerao de colunas mais lento na fase inicial pelo facto dos valores
das variveis duais oscilarem bastante (Figura 6.1), e durante esta fase a formulao
ISC apresenta melhor desempenho (Figura 6.2).

A formulao ISC utilizada num processo em duas fases: numa primeira fase, o PP
assume a forma da formulao ISC at que a soluo da sua relaxao linear seja
encontrada, atravs do procedimento de gerao de colunas; na segunda fase, o PP
assume a forma da formulao original (ISP) e novamente resolvida a sua relaxao
linear atravs do mesmo procedimento.

Exemplo 6.2 Evoluo dos valores da funo objectivo


A Figura 6.4 mostra a evoluo do valor da funo objectivo para uma instncia de 10
mquinas e 70 trabalhos. No eixo das ordenadas esto representados os valores da
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
105

funo objectivo e no eixo das abcissas est representado o nmero de colunas geradas.
A linha de cima representa o processo original de gerao de colunas e a linha de baixo
representa o processo de gerao de colunas com estabilizao.

600000

500000
Valor da Funo Objectivo

400000

300000

200000

100000

0
1
49
97
145
193
241
289
337
385
433
481
529
577
625
673
721
769
817
865
913
961
Colunas

Figura 6.3 Evoluo dos valores da funo objectivo

Mais importante que a visvel reduo do nmero de colunas geradas so os ganhos em


tempo computacional para determinar a soluo ptima da relaxao linear do PP. Estes
ganhos so explicados no s pelo facto de serem geradas menos colunas mas tambm
pelo facto dos subproblemas serem resolvidos mais rapidamente, j que as variveis
duais, ao assumirem valores mais baixos, proporcionam ganhos de eficincia ao mtodo
dos custos reduzidos decrescentes proposto na Seco 5.5.4.

Os resultados computacionais preliminares mostram que normalmente a soluo ptima


encontrada na primeira fase tambm a soluo ptima da relaxao linear da
formulao original (ISP) e que este processo acelera o processo de gerao de colunas
em mais de 10%.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
106

6.3.2. O Mtodo de Estabilizao


Baseados na ideia do mtodo boxstep de Marsten, Hogan e Blankenship (1975), Du
Merle, Villeneuve, Desrosiers e Hansen (1999), propuseram um conceito de caixa mais
flexvel e que pode ser usado directamente no algoritmo de gerao de colunas.
~ ~
Definamos o problema primal P e o seu dual D da seguinte forma:

P: D:
min cT x y + + y+ max bT w w+ +
s. a: Ax y + y+ = b s. a: AT c
y - w
y+ + w+ +
x, y , y+ 0 w , w+ 0

~
No problema primal P , y e y+ so vectores de variveis de folga e excesso que
introduzem uma perturbao do lado direito do primal, de valor situado no intervalo
[ , + ] , com o objectivo de ultrapassar os problemas de degenerescncia. Estas

variveis so penalizadas na funo objectivo pelos vectores e + , respectivamente.


~
No problema dual D , isto representa a penalizao das variveis duais ~ quando estas
se encontram fora do intervalo [ , + ] , pelos montantes e + , respectivamente.

Quando a soluo ptima fornecida pelo modelo no uma soluo ptima do problema
original, a dimenso das caixas actualizada, o que equivale a redefinir as penalidades.
Esta actualizao feita de uma forma dinmica, tem um carcter heurstico e deve ter
em conta as especificidades do problema em questo.

Na aplicao deste mtodo ao nosso problema, seguimos uma estratgia semelhante


adoptada por Du Merle, Villeneuve, Desrosiers e Hansen (1999). O intervalo inicial de
variao permitido s variveis duais ~ (que representam os trabalhos) definido em
funo do valor da soluo inicial do PPR e do nmero de trabalhos do problema:
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
107

Z / n j Z / n + 500, j N . Os vectores dos parmetros e + so seleccionados

aleatoriamente nos intervalos [0,2] e [0,10-4], respectivamente.

Sempre que um valor da soluo actual das variveis duais se encontra na fronteira do
intervalo ou para alm deste, o intervalo da respectiva varivel actualizado na
direco do limite atingido ou ultrapassado, pelo valor constante de 500, i.e., somado
ou subtrado o valor de 500 a ambos os limites do intervalo.

Quando o algoritmo atinge a soluo ptima, as colunas relativas s variveis y e y+


so removidas do PPR modificado de forma a regressar formulao original do PPR.
O PPR original ento reoptimizado e a sua soluo ptima obtida atravs do algoritmo
de gerao de colunas. Foram feitas algumas experincias de avaliao do impacte da
aplicao desta estratgia ao problema em estudo, cujos resultados so apresentados de
seguida.

A Figura 6.4 mostra a evoluo do valor da funo objectivo para uma instncia de 10
mquinas e 70 trabalhos. No eixo das ordenadas esto representados os valores da
funo objectivo e no eixo das abcissas est representado o nmero de colunas geradas.
A linha de cima representa o processo original de gerao de colunas e a linha de baixo
representa o processo de gerao de colunas com estabilizao.

claramente visvel uma reduo significativa do nmero de colunas geradas para


determinar a soluo ptima da relaxao linear do PP. Em particular, o patamar inicial,
constitudo por uma sequncia de solues de igual valor, o que indicia uma forte
degenerescncia do problema primal, praticamente eliminado.

Contudo, os ganhos em tempo computacional no so to significativos dado o maior


esforo computacional exigido por este mtodo, em resultado das necessrias
actualizaes de valores. De realar ainda que para obter bons resultados os valores dos
parmetros devem ser definidos tendo em conta as especificidades do problema. Por
estes motivos, decidimos adoptar o mtodo proposto na Seco 6.3.1 - O Modelo de
Cobertura de Conjuntos, para estabilizao do processo de gerao de colunas, dados os
bons resultados obtidos e a sua simplicidade e facilidade de implementao.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
108

240000

200000
Funo Objectivo

160000

120000

80000
1 40 79 118 157 196 235 274 313 352 391 430 469 508 547 586 625 664 703 742 781 820 859
Nmero de colunas geradas

Figura 6.4 Evoluo dos valores da funo objectivo

6.4. Estratgia de Restrio Primal


Neste trabalho introduzimos uma estratgia de restrio temporria do espao de
solues primal que designamos por estratgia de restrio do primal (primal boxstep).

A ideia consiste em identificar caractersticas estruturais a que a soluo ptima primal


verosimilmente obedece, e traduzir essas caractersticas em restries do espao primal.
Essas restries definem um subdomnio do domnio original (uma caixa) no qual se
determina uma soluo ptima. Em seguida avalia-se se essa soluo ptima encontrada
no espao restrito soluo ptima do domnio original. Caso no o seja, a restrio
progressivamente relaxada at a soluo ptima do domnio original ser encontrada.
Desejavelmente esta estratgia conduzir a uma acelerao do algoritmo de gerao de
colunas.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
109

As estratgias de restrio do espao primal podem ser implementadas incluindo na


formulao compacta as restries encontradas. Contudo, este processo pode no se
traduzir em melhorias significativas se implementado desta forma. A forma de
implementar estas estratgias num processo de gerao de colunas consiste em transferir
essas restries para o subproblema com o objectivo de tornar a sua resoluo muito
mais rpida.

Claramente, em processos de optimizao deste tipo sempre importante identificar


propriedades da soluo ptima primal que se possam traduzir em restries do espao
primal que, quando transferidas para o subproblema, se possam traduzir numa
acelerao da sua resoluo. No mtodo primal boxstep so derivadas caractersticas
verosmeis das solues ptimas que, no havendo garantia de ser observadas, podem
contudo produzir um efeito semelhante. Em problemas menos estruturados onde a
identificao dessas propriedades pode no ser fcil, o recurso a esta estratgia pode
significar a possibilidade de resolver problemas de maior dimenso.

A motivao para o uso deste mtodo a seguinte. Muito possivelmente a soluo


encontrada no espao primal restrito uma soluo ptima do problema original e todo
o processo de gerao de colunas decorre de uma forma muito mais rpida, no s por a
resoluo do subproblema ser mais rpida mas tambm por haver uma convergncia
mais rpida para o valor final atingido no processo de gerao de colunas, dada a
restrio das solues que o subproblema pode enumerar.

Se a soluo ptima no for encontrada, pelo menos expectvel que seja determinada
uma soluo de boa qualidade. Subsequentemente, quando se relaxa a restrio
utilizada, garante-se que no excluda nenhuma soluo ptima. No entanto, so
eliminadas implicitamente do processo de gerao de colunas outras solues com
maior valor de funo objectivo do que a soluo encontrada que eventualmente seriam
percorridas no processo normal.

Do ponto de vista do dual, este processo corresponde a uma relaxao do espao dual.
Conforme j foi referido, alguns autores verificaram que a restrio do espao dual pode
ser vantajosa. No contrariando esse princpio, na prtica, o que se passa que, usando
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
110

este mtodo, se encontra um espao dual reduzido rapidamente, constitudo por


restries duais vlidas, no se enumerando muitas restries que acabariam por ser
redundantes.

de salientar que este mtodo essencialmente diferente do mtodo de gerao rpida


de colunas (fast column generation), usada por exemplo por Puchinger e Raidl (2004),
em que se aplicam tcnicas heursticas para a gerao de colunas numa primeira fase do
processo, recorrendo-se depois resoluo exacta do subproblema para a determinao
da soluo ptima do problema original. No mtodo de gerao rpida de colunas no
possvel identificar restries do espao primal. O que se faz resolver o subproblema
de uma forma aproximada procurando uma soluo no domnio original completo. Alm
disso, quando se recorre a heursticas, nem sempre usada a informao dual que
gerada pelo problema primal restrito.

6.5. Aplicao da Estratgia de Restrio Primal


ao Problema
A resoluo dos subproblemas representa a maior parte do tempo computacional gasto
na resoluo do nosso problema de programao. O algoritmo de programao dinmica
pseudopolinomial e a sua eficincia depende muito do valor de T (valor mximo para
o tempo de concluso das sequncias de afectao geradas nos subproblemas). Os
limites superiores (upper bounds) para o valor de T impem limites durao das
sequncias de afectao geradas pelos subproblemas. Um limite superior bvio para T
seria o valor do makespan da soluo ptima para o problema de programao, caso este
fosse conhecido a priori.

Uma forma diferente de definir limites superiores limitando o tamanho das sequncias
de afectao geradas pelos subproblemas a um nmero mximo de trabalhos
processados. Um limite superior trivial corresponde a limitar o tamanho das sequncias
de afectao geradas pelos subproblemas a um nmero mximo n (nmero total de
trabalhos a processar) de trabalhos processados. Contudo, a este limite superior pode
corresponder um elevado valor para T. Recorde-se que o facto das sequncias de
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
111

afectao geradas nos subproblemas poderem conter ciclos obriga definio de um


limite superior para o seu tamanho.

Se bem que no conheamos o valor do makespan da soluo ptima a priori,


verosmil pensarmos que uma soluo ptima para o nosso problema de programao
dever apresentar um certo balanceamento de cargas nas mquinas. O exemplo que se
segue tenta ilustrar esta ideia.

Exemplo 6.3 Programas balanceados


Vamos considerar um problema com duas mquinas e trs trabalhos. Em cada um dos
subproblemas, temos de resolver um problema de mquina nica e trs trabalhos. Na
Figura 6.5, lado esquerdo, esto representados os diagramas de Gantt do espao de
solues de um subproblema.

ESPAO SOLUES SUBPROBLEMA ESPAO SOLUES SUBPROBLEMA


PROGRAMA NO BALANCEADO PROGRAMA BALANCEADO

1 1

2 2

3 3

1 2 1 2

1 3 1 3

2 1 2 1

2 3 2 3

3 1 3 1

3 2 3 2

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

Figura 6.5 Programas no balanceados/balanceados


Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
112

Conforme foi referido, quando o problema apresenta mais do que uma mquina, parece
razovel admitir que existir um certo balanceamento de cargas entre as vrias
mquinas, isto , os trabalhos so distribudos pelas vrias mquinas permitindo a sua
concluso mais cedo. Neste caso, o espao de solues de cada subproblema pode ser
reduzido de uma forma significativa, conforme se tenta ilustrar no lado direito da Figura
6.5 onde est representado o espao de solues reduzido para um subproblema de um
problema de programao com trs trabalhos e duas mquinas.

Neste exemplo, o comprimento das sequncias de afectao est reduzido de trs


trabalhos para dois trabalhos, permitindo eliminar as sequncias de afectao com trs
trabalhos - (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2) e (3,2,1), que representam 40% do
total.

Esta ideia ainda reforada pela seguinte propriedade que mostra que a transferncia de
um trabalho de uma sequncia de afectao mais longa para uma outra mais curta,
dando origem a um programa mais balanceado, no aumenta global da soluo nas
condies a seguir referidas.

Propriedade 6.1
Seja iH o ltimo trabalho processado numa dada sequncia de afectao da mquina k,
com tempo de concluso Ci' , e jH o ltimo trabalho processado numa dada sequncia
H

de afectao da mquina k, com tempo de concluso C j . Se o trabalho jH pode ser


H

transferido da ltima posio da sequncia de afectao da mquina k para a ltima


posio da sequncia de afectao da mquina k, com tempo de concluso C 'j , tal que H

C j C ' = max(Ci' + si
H jH H H jH , rj ) + p j
H Hk'
ento, o custo total deste novo programa no

superior ao do anterior.

Prova. Como a funo de custo regular (no decrescente com os tempos de concluso)
e funo dos tempos de concluso e a transferncia do trabalho no afecta os restantes
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
113

trabalhos j que feita da ltima posio de uma sequncia para a ltima posio de
uma outra, bvio que se C ' C j o custo total do novo programa no aumenta.
jH H

Para pr em prtica esta ideia vamos, numa primeira fase, comear por restringir o
conjunto de sequncias de afectao que podem ser geradas nos subproblemas impondo
um valor estimado para T. A soluo ptima deste conjunto restrito de colunas
determinada. Se esta soluo ptima no for a soluo ptima do problema completo o
valor de T aumentado, permitindo gerar sequncias de afectao de maior durao nos
subproblemas (alargando o espao de solues dos subproblemas). Este processo
sucessivamente repetido at que a soluo ptima do problema completo seja
encontrada. Do ponto de vista do dual, significa utilizar um conjunto restrito de cortes
duais para restringir o espao dual e obter tentativamente uma soluo dual de
qualidade.

A verificao se, para um valor de T restringido, a soluo ptima actual tambm a


soluo ptima do problema completo, toma diferentes formas consoante se trate da
fase de relaxao linear ou da fase de partio e gerao de colunas.

6.5.1. Relaxao Linear


Seja C kj o tempo de concluso da sequncia de afectao de maior durao da soluo
H

ptima para o actual valor de T. Para avaliar se esta soluo ptima no a soluo
ptima do problema completo o valor de T aumentado para permitir a incluso de mais
um (qualquer) trabalho na sequncia de afectao de maior durao.

Se o novo valor de T for T = max {C kj } + max { s ij } + max { p jk } , passa a existir espao


H
k M i , j N k M , j N

para a incluso de qualquer novo trabalho na sequncia de afectao, porque este espao
igual soma do maior valor dos tempos de preparao com o maior valor dos tempos
de processamento. Contudo, como as sequncias de afectao devem ser de custos
reduzidos decrescentes (ver Subseco 5.5.4), este espao adicional s pode ser usado
por trabalhos com arcos de custo reduzido negativo.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
114

O resultado que se segue mostra que, se os subproblemas no conseguem gerar novas


sequncias de afectao de custo reduzido decrescente para o novo valor de T, no
existem mais colunas atractivas para o problema completo, para qualquer valor maior
do que T.

Proposio 6.1
Durante a resoluo da relaxao linear, se no existirem sequncias de afectao
atractivas de durao mxima T e os subproblemas no conseguirem gerar novas
sequncias de afectao de custo reduzido decrescente para um novo
T = max {C kj } + max { s ij } + max { p jk } , ento no existem mais colunas atractivas para
H
k M i , j N k M , j N

qualquer valor maior do que T, e a soluo ptima actual a soluo ptima para o
problema completo.

Prova. Como j foi referido, as sequncias de afectao geradas na fase de relaxao


linear so sequncias de afectao de custo reduzido decrescente. O valor inicial
(estimado) de T cobre o processamento de todos os trabalhos e, consequentemente,
cobre todas as datas de disponibilidade dos trabalhos e das mquinas.

Seja QT o conjunto de sequncias de afectao geradas nos subproblemas para o valor


T, em cada iterao do algoritmo de gerao de colunas. Quando todas as sequncias de
afectao p QT tiverem custos reduzidos no negativos (colunas no atractivas) o
valor de T aumentado para T = max {C kj } + max { s ij } + max { p jk } , permitindo a
H
k M i , j N k M , j N

incluso de qualquer trabalho j N.

Verifica-se facilmente que, como a funo de custo regular e aditiva, prefervel


adicionar um novo trabalho no novo espao de tempo disponibilizado do que em
qualquer outro momento posterior a T e, consequentemente, se existir um trabalho j
correspondente a um arco de custo reduzido negativo quando adicionado sequncia de
afectao p, ser adicionado a p gerando uma nova sequncia de afectao de custo
reduzido decrescente.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
115

A soluo gerada pela heurstica, descrita na Subseco 7.1.2.2, usada para determinar
o valor inicial para T atravs da expresso, T = max {C kj } + max { s ij } + max { p jk } , onde
H
k M i , j N k M , j N

C kj o tempo de concluso do ltimo trabalho processado na sequncia de afectao da


H

mquina k gerada pela heurstica. Note-se que o valor inicial de T permite a adio de
qualquer trabalho j N sequncia de afectao de maior durao gerada pela
heurstica.

Aps a determinao do valor inicial para T, o processo de gerao de colunas


efectuado em duas fases:

1. Na primeira fase, o valor estimado para T usado para gerar sequncias de


afectao de custo reduzido decrescente nos subproblemas tal que C kj menor H

ou igual a T. Quando o algoritmo no conseguir gerar mais colunas de custo


reduzido negativo, passamos segunda fase;

2. Na segunda fase, o valor de T ajustado para


T = max {C kj } + max { s ij } + max { p jk } e o algoritmo de programao dinmica
H
k M i , j N k M , j N

usado para tentar gerar mais colunas de custo reduzido negativo e trs situaes
podem ocorrer:

- Se forem geradas novas colunas de custo reduzido negativo, so adicionadas


ao PPR, at que uma nova soluo ptima seja encontrada e T novamente
ajustado repetindo-se a execuo do ponto 2;

- Se forem geradas novas colunas de custo reduzido decrescente mas no


negativo, T novamente ajustado repetindo-se a execuo do ponto 2;

- Se no forem geradas novas colunas o processo pra (observa-se a Proposio


6.1).

No limite, este processo pra quando for atingido o limite superior ao nmero de
trabalhos que podem ser includos numa sequncia de afectao que se mantm no valor
n em todo este processo.
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
116

Este limite superior para o tempo reduz drasticamente o espao de estados do modelo de
programao dinmica dos subproblemas e, durante o processo de gerao de colunas,
so tipicamente muito poucos os ajustes efectuados ao valor de T.

6.5.2. Partio e Gerao de Colunas


Durante a fase de partio e gerao de colunas, podem existir sequncias de afectao
acclicas que incluem arcos (i,j), para i,j N, com custos reduzidos no negativos e,
como tal, a Proposio 6.1 no se aplica. O resultado que se segue mostra que, se os
subproblemas no conseguem gerar novas sequncias de afectao para o novo valor de
T, no existem mais colunas atractivas para o problema completo, para qualquer valor
maior do que T.

Proposio 6.2
Durante a fase de partio e gerao de colunas, se no existirem sequncias de
afectao atractivas de durao mxima T e os subproblemas no conseguirem gerar
novas sequncias de afectao para um novo T = max {C kj } + max { s ij } + max { p jk } ,
H
k M i , j N k M , j N

ento no existem mais colunas atractivas para qualquer valor maior do que T, e a
soluo ptima actual a soluo ptima para o problema completo.

Prova. A prova semelhante que foi efectuada para a Proposio 6.1. O novo valor de
T, T = max {C kj } + max { s ij } + max { p jk } , permite a incluso de qualquer trabalho j N
H
k M i , j N k M , j N

e, como a funo de custo regular e aditiva, prefervel adicionar um novo trabalho


no novo espao de tempo disponibilizado do que em qualquer outro momento posterior
a T.

A adio de um novo trabalho j s no ocorrer em duas situaes: quando o nmero de


trabalhos includos na sequncia de afectao for igual a n (limite superior baseado no
nmero mximo de trabalhos que uma sequncia de afectao pode conter), ou quando
os trabalhos correspondentes ao arco a adicionar, (i,j), no estiverem abrangidos por
Captulo 6 - Estabilizao e Acelerao da Gerao de Colunas
117

restries de partio e o arco tiver um custo reduzido no negativo (ver Subseco


5.6.1 - Estratgia de Partio). Caso estas duas situaes no se verifiquem, um novo
trabalho j adicionado gerando uma nova sequncia de afectao.

O processo proposto na Subseco anterior alterado tomando a seguinte forma:

1. Na primeira fase, o valor estimado para T usado para gerar sequncias de


afectao de custo reduzido decrescente nos subproblemas tal que C kj menor H

ou igual a T. Quando o algoritmo no conseguir gerar mais colunas de custo


reduzido negativo, passamos segunda fase;

2. Na segunda fase, o valor de T ajustado para


T = max {C kj } + max { s ij } + max { p jk } e o algoritmo de programao dinmica
H
k M i , j N k M , j N

usado para tentar gerar mais colunas de custo reduzido negativo e trs situaes
podem ocorrer:

- Se forem geradas novas colunas de custo reduzido negativo, so adicionadas


ao PPR, at que uma nova soluo ptima seja encontrada e T novamente
ajustado repetindo-se a execuo do ponto 2;

- Se forem geradas novas colunas mas de custo reduzido no negativo, T


novamente ajustado repetindo-se a execuo do ponto 2;

- Se no forem geradas novas colunas nos subproblemas, a Proposio 6.2


observada e o processo pra.

Os resultados computacionais preliminares mostram que esta estratgia de acelerao do


algoritmo de gerao de colunas, tendo em conta o conjunto das duas fases (relaxao
linear e partio e gerao de colunas), acelera o algoritmo num factor superior a 4.0,
quando comparada com a estratgia de utilizao do limite superior n para o nmero
mximo de trabalhos que podem ser includos numa sequncia de afectao.
Captulo 7
Implementao Computacional e
Resultados

Neste captulo refere-se a implementao efectuada e apresenta-se a estrutura do


programa desenvolvido. Para a obteno de uma soluo inicial, so descritos mtodos
baseados em solues artificiais e proposta uma heurstica que foi desenvolvida tendo
em conta a especificidade do problema. Apresentam-se ainda os resultados dos testes
computacionais efectuados em instncias com diferentes caractersticas e uma anlise
de sensibilidade do modelo desenvolvido a variaes nos principais parmetros do
problema. Por ltimo, estudada a extenso do modelo a outras funes de custo
regulares.

7.1. Implementao Computacional

7.1.1. Introduo
O programa que corresponde implementao do mtodo apresentado neste trabalho foi
desenvolvido na linguagem de programao Microsoft Visual C++ Verso 6.0 e serve-
se da biblioteca de funes CPLEX ("CPLEX Callable Library Version 6.0) ILOG
(1998) para resolver os problemas de programao linear. A esse programa foi dado o
nome de PMPNI. A descrio da sua estrutura apresentada no Anexo A. Uma
descrio sucinta do funcionamento da biblioteca de funes CPLEX apresentada no

118
Captulo 7 - Implementao Computacional e Resultados
119

Anexo B. Os testes computacionais foram efectuados num computador porttil com um


processador 1.8 GHz Pentium IV Mobile e 512 Mb de RAM.

7.1.2. Obteno do Primeiro Problema Primal Restrito


Para inicializar o mtodo de gerao de colunas necessrio um problema primal
restrito que seja vlido, no sentido de permitir o clculo do valor das variveis duais
que sero utilizadas no subproblema para avaliao da atractividade das colunas. Nesta
Seco vamos apresentar dois modelos para a obteno de uma soluo inicial
admissvel baseados em variveis artificiais e uma heurstica desenvolvida para o
mesmo efeito.

7.1.2.1. Soluo Inicial Artificial


Uma forma de obter um problema primal restrito vlido incluir n variveis artificiais
que correspondem a n sequncias de afectao em que a sequncia de afectao
artificial Aj processa o trabalho j, para j=1,2,..,n, e com um coeficiente na funo
objectivo que torne qualquer soluo que inclua estas variveis artificiais pior do que
qualquer outra soluo que no as inclua, constituindo uma matriz identidade nn no
quadro do problema primal restrito. Desta forma, garantimos que existe sempre uma
soluo que satisfaz todas as restries relativas aos trabalhos (=1), isto , todos os
trabalhos so processados uma e uma s vez. Os coeficientes nulos das variveis
artificiais para as linhas das restries relativas s mquinas (1), garantem, por sua
vez, que estas restries so sempre satisfeitas.

O quadro do problema primal restrito, para as variveis artificiais, teria a seguinte


configurao:
Captulo 7 - Implementao Computacional e Resultados
120

A1 A2 ... An
T1 1 ... =1
T2 1 ... =1
... ... ... ... ... ...
Tn ... 1 =1
M1 0 0 ... 0 <=1
M2 0 0 ... 0 <=1
... ... ... ... ... ...
Mm 0 0 ... 0 <=1
C M M ... M

Figura 7.1 Matriz identidade das variveis artificiais

O problema primal restrito, baseado no modelo de partio de conjuntos seria ento,

ISPA - I :
min c kp y kp + MAj , (7.1)
kM pP k

sujeito a :
a kjp y kp + Aj = 1, j N (7.2)
kM pP k

y kp 1, k M (7.3)
pP k

y kp {0,1}, p P k , k M (7.4)

onde a varivel Aj uma varivel artificial e M uma constante de valor muito elevado
em comparao com os custos unitrios das outras sequncias de afectao.

Note-se que uma soluo vlida para o modelo de partio de conjuntos tambm
vlida para a formulao baseada no modelo de cobertura de conjuntos.

Outra forma, mais simples, de obter um problema primal restrito vlido incluir uma
nica varivel artificial que corresponda a uma sequncia de afectao que use todos os
trabalhos e com um coeficiente na funo objectivo que torne qualquer soluo que
inclua esta varivel artificial pior do que qualquer outra soluo que no a inclua.
Captulo 7 - Implementao Computacional e Resultados
121

Tambm fcil verificar que, desta forma, garantimos que existe sempre uma soluo
vlida para o problema primal restrito.

O quadro do problema primal restrito, para as variveis artificiais, teria a seguinte


configurao:

A
T1 1 =1
T2 1 =1
... ... ...
Tn 1 =1
M1 0 <=1
M2 0 <=1
... ... ...
Mm 0 <=1
C M

Figura 7.2 Matriz das variveis artificiais

Para esta outra forma, o primeiro problema primal restrito, baseado no modelo de
partio de conjuntos, seria ento,

ISPA - II :
min c kp y kp + MA, (7.5)
kM pP k

sujeito a :
(7.6)
a kjp y kp + A = 1, j N
kM pP k
(7.7)
y kp 1, k M
pP k

y kp {0,1}, p P k , k M (7.8)

onde a varivel A uma varivel artificial e M uma constante de valor muito elevado
em comparao com os custos unitrios das outras sequncias de afectao.
Captulo 7 - Implementao Computacional e Resultados
122

A desvantagem desta forma relativamente primeira que, quando a soluo for


impossvel (o que no o caso no nosso problema j que a soluo sempre possvel), a
primeira forma permite saber quais os trabalhos que inviabilizam uma soluo vlida
para o problema original (atravs do respectivo valor das variveis artificiais), enquanto
que a ltima apenas nos informa de que a soluo para o problema original
impossvel.

Se bem que a implementao dos dois modelos apresentados seja simples, os resultados
computacionais preliminares mostram que a sua utilizao provoca uma grande
instabilidade inicial no processo de gerao de colunas, o que se reflecte negativamente
no desempenho do algoritmo. Uma possvel justificao para este comportamento o
facto de estes modelos no incorporarem qualquer informao sobre a estrutura de uma
possvel soluo ptima para o problema, produzindo valores para as variveis duais
que no direccionam o algoritmo de gerao de colunas de uma forma eficiente. Esta
situao justifica a determinao de uma soluo inicial atravs de uma heurstica, que
apresentada na subseco seguinte.

7.1.2.2. Soluo Inicial Heurstica


O objectivo a que nos propusemos foi o de desenvolver uma heurstica que, tendo em
conta a especificidade do problema, fosse capaz de produzir solues iniciais
admissveis de qualidade razovel em tempo computacional considerado irrelevante
(inferior a 1 segundo). Este tipo de soluo pareceu-nos a mais indicada tendo em conta
que, por um lado, o principal objectivo deste trabalho o estudo da aplicao de um
algoritmo de soluo exacta a um problema complexo de programao de mquinas
paralelas e, por outro lado, estvamos interessados em estudar o comportamento do
algoritmo de gerao de colunas nas mais variadas situaes incluindo aquelas em que a
soluo inicial admissvel mas se encontra claramente afastada da soluo ptima.

A heurstica desenvolvida baseada no princpio de dominncia para o problema


1 || w jT j apresentado na Seco 4.2: se existirem dois trabalhos i e j com didj, pipj e

wiwj, ento existe uma sequncia ptima em que o trabalho i aparece antes do trabalho
Captulo 7 - Implementao Computacional e Resultados
123

j. Se bem que este princpio de dominncia no se aplique ao problema em estudo,


esperado que a sua utilizao produza boas solues.

O princpio de funcionamento desta heurstica muito simples:

1. Construir uma lista ordenada dos trabalhos por ordem crescente do rcio dj/wj
(os trabalhos com datas de entrega curtas e prioridades elevadas tm um menor
valor do rcio);

2. Seleccionar o primeiro trabalho da lista ordenada e encontrar, no conjunto das


mquinas, a que representa o menor custo de afectao para o trabalho
seleccionado; em caso de empate, seleccionar a mquina que representa o menor
tempo de afectao (tempo de preparao + tempo de processamento), isto , o
menor valor de ( p jk + sij ) . Remover o trabalho afectado da lista ordenada e

registar a afectao na mquina seleccionada;

3. Se a lista ordenada ainda contm trabalhos reiniciar o processo no passo 2; caso


contrrio, est encontrada uma soluo inicial admissvel para o problema e o
processo termina.

Um pseudo cdigo para esta heurstica apresentado na Figura 7.3.

X representa o vector dos trabalhos ainda no afectados, Cik o tempo de concluso do


ltimo trabalho (i) processado na mquina k; l representa o trabalho seleccionado para
ser afectado mquina m. O vector Yk regista a sequncia de afectao na mquina k.

Esta heurstica , no pior dos casos, de complexidade O(n2+nm) j que contm um


primeiro ciclo de ordenao dos n trabalhos (n*n) e um segundo ciclo de afectao dos n
trabalhos s m mquinas (n*m).

O Exemplo que se segue ilustra a aplicao desta heurstica a uma pequena instncia
com duas mquinas e quatro trabalhos.
Captulo 7 - Implementao Computacional e Resultados
124

Begin
X = { }; Y k = { }k M
while( X N )
d
l = arg min j ;
j
jN \ X w

X = X + {l};
while( X { })
l = X 1;

m = arg min (max(max(C k + sil , rl ) + plk ) d l ,0 ) * wl ;
i
kM
Y = Y + {l}
m m

X = X {l}
End

Figura 7.3 Pseudo cdigo para a heurstica de soluo inicial

Exemplo 7.1 Heurstica de soluo inicial

Os dados da instncia gerada aleatoriamente so os seguintes:

Jj rj dj pj1 pj2 wj Mk ak lk sij 1 2 3 4


1 35 66 31 51 95 1 0 1 1 - 38 38 31
2 13 70 30 31 62 2 45 2 2 26 - 25 24
3 15 1 10 72 49 55 3 27 30 - 28
4 55 81 26 60 68 4 30 30 26 -

1 Iterao

X = { }; Y k = { } k M ;
X = {1, 2, 4,3};
l = X 1 = 1;
Captulo 7 - Implementao Computacional e Resultados
125

c11 = (max (max( C 01 + s01 , r1 ) + p11 ) d1 ,0 ) * w1 =

= (max (max( 0 + 0,35 ) + 31 ) 66 ,0 ) * 95 = max( 66 66 ,0 ) * 95 = 0;

c12 = (max (max( 45 + 26 ,35 ) + 51) 66 ,0 ) * 95 = max( 122 66 ,0 ) * 95 = 5320 ;

m = 1;
Y 1 = Y 1 + {1}; X = X {1};

Afectamos o trabalho l=1 mquina m=1 com um custo nulo.

2 Iterao

l = X 1 = 2;
c12 = (max (max( C11 + s12 , r2 ) + p 21 ) d 2 ,0 ) * w2 =

c12 = (max (max( 66 + 38 ,13 ) + 30 ) 70 ,0 ) * 62 = max( 134 70 ,0 ) * 62 = 3968 ;

c22 = (max (max( 45 + 0,13 ) + 31 ) 70 ,0 ) * 62 = max( 76 70 ,0 ) * 62 = 372 ;

m = 2;
Y 2 = Y 2 + {2}; X = X {2}.

Afectamos o trabalho l=2 mquina m=2 com um custo=372.

3 Iterao

l = X 1 = 4;
c14 = (max (max( 66 + 31,55 ) + 26 ) 81,0 ) * 68 = max( 123 81,0 ) * 68 = 2856 ;

c42 = (max (max( 76 + 24 ,55 ) + 60 ) 81,0 ) * 68 = max( 160 81,0 ) * 68 = 5372 ;

m = 1;
Y 1 = Y 1 + {4}; X = X {4}.

Afectamos o trabalho l=4 mquina m=1 com um custo=2856.


Captulo 7 - Implementao Computacional e Resultados
126

4 Iterao

l = X 1 = 3;
c31 = (max (max( 123 + 26 ,15 ) + 72 ) 110 ,0 ) * 55 = max( 221 110 ,0 ) * 55 = 6105 ;

c32 = (max (max( 76 + 25 ,15 ) + 49 ) 110 ,0 ) * 55 = max( 150 110 ,0 ) * 55 = 2200 ;

m = 2;
Y 2 = Y 2 + {3}; X = X {3}.

Afectamos o trabalho l=3 mquina m=2 com um custo=2200.

O custo total da soluo heurstica obtida c=0+372+2856+2200=5428. A aplicao do


mtodo exacto a esta instncia permitiu verificar que esta soluo ptima.

As sequncias de afectao resultantes da aplicao desta heurstica ao Exemplo esto


representadas na Figura 7.4.

a1=0 r1=35 C1=66 C4=123

Mquina 1 sl11=0 p11=31 s14=31 p41=26

C2=76 C3=150
Mquina 2 p22=31 s23=25 p32=49

a2=45, sl22=0

Legenda: - tempo de preparao - tempo de processamento

- tempo de inactividade

Figura 7.4 Diagrama de Gantt da soluo inicial heurstica


Captulo 7 - Implementao Computacional e Resultados
127

7.2. Gerao das Instncias de Teste


Os testes computacionais foram desenhados no sentido de observar o comportamento do
modelo desenvolvido em diferentes situaes. Assim, para alm da situao clssica de
estudar o comportamento do modelo para diferentes intervalos dos tempos de
processamento e dos tempos de preparao, e diferentes nveis de congestionamento do
sistema, foi tambm estudada a sensibilidade do modelo a diferentes valores dos
parmetros das datas de disponibilidade dos trabalhos.

Para os vrios conjuntos de testes efectuados, houve sempre a preocupao de tentar


alinhar os valores dos parmetros usados para gerar as instncias com o que mais
comum encontrar na literatura para problemas de programao de mquinas paralelas.
Em particular, frequentemente referido na literatura (ver por exemplo, Van den Akker,
Hoogeveen e Van de Velde, 1999, Chen e Powell, 1999b, e Chen e Lee, 2002) que, para
um mesmo nmero de mquinas e trabalhos, o tempo total de processamento dos
trabalhos mais o tempo total de preparao das mquinas, tm uma influncia com
significado no desempenho do algoritmo; maiores valores destes tempos penalizam o
desempenho do algoritmo devido a aumentarem o horizonte temporal de programao.

Por este motivo, as instncias para o nosso principal conjunto de testes foram geradas
para o caso mais desfavorvel (esta questo vai ser analisada com mais detalhe na
Subseco 7.4.1) em que os tempos de processamento dos trabalhos e os tempos de
preparao das mquinas foram definidos de forma a concretizar um horizonte temporal
de programao equivalente ao valor mais desfavorvel que mais frequentemente
referido na literatura (entre outros, Van den Akker, Hoogeveen e Van de Velde, 1999,
Chen e Powell, 1999a, 1999b, e Chen e Lee, 2002).

As instncias para o conjunto de testes com horizonte temporal de programao mais


longo foram geradas da seguinte forma:

- Nmero de trabalhos n {20,30,40,50,60,70,80,90,100,120, 150,200,220}.

- Nmero de mquinas m {2,4,6,8,10,20,30,50}.


Captulo 7 - Implementao Computacional e Resultados
128

- Pesos dos trabalhos wj=U[1,100].

- Tempos de processamento pjk=U[10,80].

- Datas de disponibilidade das mquinas ak=U[0,50].

- Configurao inicial das mquinas lk=U[1,n].

- Datas de disponibilidade dos trabalhos rj=U[0,100].

- Tempos de preparao dependentes da sequncia sij=U[20,40].

- Nveis de congestionamento do sistema q {1,2,3,4,5}.

- Datas de entrega dj (adaptado de Ho e Chang, 1995):

dj = max {j, q} tal que

j= minkM{p jk + max(ak,rj) + maxiN(sji)}

q=U[1,160r/q], r=n/m

De notar ainda que a distribuio dos tempos de preparao dependentes da sequncia


foi escolhida de forma a satisfazer o princpio das desigualdades triangulares, sij+sjvsiv,
i.e., min{sij}+min{sjv}max{siv} (por exemplo, para o primeiro conjunto de testes,
20+2040). O valor de q indica o nvel de congestionamento do sistema a programar.
Quanto maior o seu valor, mais congestionado estar o sistema e mais trabalhos
sofrero atrasos relativamente s suas datas de entrega. Foram testados cinco nveis de
congestionamento (q=1,2,3,4,5).

A Figura 7.5 ilustra a relao entre o nvel de congestionamento e o nmero de


trabalhos com atraso obtida nos nossos testes computacionais.

Para alm da j referida preocupao de alinhar os valores escolhidos para cada um dos
parmetros com o que frequente encontrar na literatura, existiram outras preocupaes
de carcter mais estratgico que a seguir se descrevem.

Os valores relativos dos tempos de processamento e dos tempos de preparao


dependentes da sequncia, foram escolhidos de forma a englobarem trs situaes:
tempos de processamento menores, iguais e maiores que os tempos de preparao.
Captulo 7 - Implementao Computacional e Resultados
129

90
80
% Trabalhos com Atraso

70
60
50
40
30
20
10
0
1 2 3 4 5
q - Nvel de Congestionamento

Figura 7.5 Relao entre o nvel de congestionamento e a % de trabalhos com atraso

Os valores das datas de disponibilidade dos trabalhos foram definidos de forma a


reflectirem a situao de estes estarem disponveis para processamento em t=0 ou
ficarem disponveis a curto prazo (t100).

Por ltimo, os valores das datas de disponibilidade das mquinas foram definidos de
forma a reflectirem a situao de as mquinas j estarem disponveis para
processamento em t=0 ou estarem a processar o ltimo trabalho antes de iniciarem um
novo programa (t50).

7.3. Resultados dos Testes Computacionais


Para cada nvel de congestionamento, foi seleccionado um par de valores de nmero de
mquinas (m) e nmero de trabalhos (n), e foram geradas aleatoriamente 10 instncias
de teste a partir das distribuies associadas aos seus parmetros, num total de 28 pares
(m,n) diferentes e 1250 instncias de teste.

Os resultados dos testes computacionais efectuados so apresentados em tabelas, sendo


que a cada tabela corresponde um nico nvel de congestionamento. Os dados
apresentados nas colunas das tabelas so os seguintes:
Captulo 7 - Implementao Computacional e Resultados
130

- q - nvel de congestionamento;

- m - nmero de mquinas;

- n - nmero de trabalhos;

- LP-IP Gap - a diferena percentual entre o valor da soluo ptima da


relaxao linear (LP) e o valor da soluo ptima inteira (IP);

- RL - a percentagem de problemas cuja soluo ptima inteira foi


encontrada na fase de relaxao linear;

- Colunas Geradas - o nmero de colunas geradas na fase de relaxao


linear (RL) e na fase de partio e gerao de colunas (B&P) para obter a
soluo ptima inteira;

- Tempo de CPU - o tempo computacional (em segundos) gasto na fase RL e


na fase B&P para obter a soluo ptima inteira;

- Nodos Avaliados - nmero de nodos avaliados na rvore de pesquisa para


obter a soluo ptima inteira.

Os resultados computacionais para o primeiro conjunto de testes so apresentados nas


Tabelas seguintes.
Captulo 7 - Implementao Computacional e Resultados
131

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 1 Gap RL B&P RL B&P Total Avaliados
m n Mdia Mx % Mdia Mx Mdia Max Mdia Mx Mdia Max Mdia Mx Mdia Mx

2 20 0,00% 0,00% 40% 47 94 366 503 1 2 3 6 2 8 26 38

2 30 0,00% 0,00% 10% 87 145 821 1004 6 11 22 30 26 36 50 56

2 40 0,00% 0,00% 50% 99 163 1296 1524 14 18 73 93 51 109 74 76

2 50 0,00% 0,00% 0% 128 186 1862 2479 31 56 408 519 439 575 90 96

4 30 0,00% 0,00% 50% 38 93 466 534 1 1 4 6 2 6 41 48

4 40 0,00% 0,00% 0% 108 154 809 961 2 3 18 21 20 24 67 72

4 50 0,00% 0,00% 10% 129 182 1051 1351 6 10 57 157 58 165 90 98

4 60 0,14% 1,47% 0% 140 190 1611 2011 23 29 222 329 245 358 104 114

6 40 0,00% 0,00% 0% 98 130 595 728 2 3 7 8 10 11 59 68

6 50 0,00% 0,00% 0% 113 162 960 1180 5 7 23 26 28 33 84 92

6 60 0,00% 0,00% 0% 137 178 1211 1300 11 14 54 63 65 75 104 114

6 70 0,00% 0,00% 10% 168 229 1476 1886 21 29 175 228 178 253 117 228

8 40 0,00% 0,00% 0% 107 137 449 543 1 2 4 5 5 6 49 54

8 50 0,00% 0,00% 0% 107 162 702 841 3 5 11 14 16 17 76 88

8 60 0,00% 0,00% 10% 136 225 941 1049 6 8 28 34 32 42 96 108

8 70 0,00% 0,00% 0% 168 216 1179 1354 13 16 87 95 101 111 104 122

8 80 0,70% 7,00% 0% 202 277 1512 2031 25 29 189 221 215 245 130 148

10 50 0,00% 0,00% 0% 92 168 575 664 1 3 7 9 8 10 70 82

10 70 0,00% 0,00% 0% 181 277 1108 1281 10 12 45 49 55 59 118 126

10 90 0,00% 0,00% 0% 186 432 1732 2162 22 31 153 174 175 213 162 170

10 100 0,09% 0.94% 0% 234 385 1768 2352 43 51 350 426 394 477 169 183

20 100 0,00% 0,00% 0% 257 374 1265 1443 15 18 71 82 86 101 160 172

20 120 0,00% 0,00% 0% 274 351 1666 1928 33 41 184 216 218 256 206 220

20 150 0,00% 0,00% 0% 407 605 2254 2696 104 146 707 950 811 1096 248 266

30 150 0,00% 0,00% 0% 686 992 1970 2091 55 63 328 378 384 434 245 266

50 150 0,00% 0,00% 0% 372 594 1330 1501 14 23 95 117 110 129 205 228

50 180 0,00% 0,00% 0% 436 579 2395 2832 45 56 370 460 415 516 235 264

50 220 0,00% 0,00% 0% 550 684 2954 3884 147 213 1106 1305 1254 1496 316 335

Tabela 7.1 Resultados computacionais para q=1


Captulo 7 - Implementao Computacional e Resultados
132

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 2 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 20 0,20% 2,40% 30% 150 207 323 441 4 6 4 6 7 9 12 30

2 30 1,10% 11,00% 0% 207 407 1307 1681 16 35 42 64 57 81 32 54

2 40 1,00% 1,00% 10% 337 604 2230 3696 54 109 172 337 208 436 45 74

2 50 2,30% 19,30% 0% 481 1045 2408 8363 142 379 1600 4531 1743 4781 59 83

4 30 0,00% 0,00% 0% 173 231 382 491 3 5 4 5 7 9 16 34

4 40 0,60% 3,30% 0% 207 301 1350 2585 8 14 29 62 38 65 43 82

4 50 0,00% 0,00% 0% 205 293 1659 1934 17 25 58 68 76 89 72 80

4 60 0,01% 0,17% 0% 309 481 2706 3830 44 82 295 476 339 558 77 100

6 40 0,40% 4,00% 10% 216 329 587 855 4 9 7 10 11 16 25 42

6 50 0,30% 3,00% 0% 274 445 1195 1383 11 18 25 34 36 49 46 64

6 60 0,20% 1,80% 0% 298 378 1858 2267 18 26 64 82 83 105 73 102

6 70 0,38% 2,00% 0% 343 445 2698 3622 40 66 220 301 261 367 83 112

8 40 1,00% 7,00% 0% 221 286 275 449 2 4 2 3 5 6 14 28

8 50 0,40% 4,00% 0% 258 312 768 889 6 10 11 17 17 26 35 52

8 60 0,40% 3,10% 0% 296 375 1349 1707 11 17 29 37 41 50 61 92

8 70 0,05% 0,53% 0% 333 500 1960 2521 20 26 98 117 118 135 72 88

8 80 0,07% 0,70% 0% 377 534 2473 3062 39 64 186 220 226 268 90 114

10 50 0,00% 0,00% 0% 263 347 489 689 4 5 5 6 9 11 30 50

10 70 0,70% 2,50% 0% 346 481 1531 1731 14 20 40 51 55 69 67 84

10 90 1,38% 13,80% 0% 397 513 2559 3182 39 73 135 164 172 214 127 138

10 100 0,04% 0,26% 0% 476 715 3259 4700 82 128 388 505 470 607 117 158

20 100 0,40% 3,00% 0% 479 576 1248 1500 15 22 33 42 50 60 77 102

20 120 0,10% 1,00% 0% 548 706 2306 2801 30 43 122 141 153 175 135 168

20 150 0,55% 2,60% 0% 705 816 2499 5143 115 193 600 726 716 801 174 223

30 150 0,45% 1,70% 0% 888 942 2207 2617 42 46 141 173 184 215 149 192

50 150 0,10% 1,60% 0% 803 892 481 724 13 19 16 22 30 40 48 72

50 180 0,47% 2,12% 0% 824 1013 1258 1738 24 34 67 130 92 164 97 137

50 220 0,15% 0,82% 0% 1114 1217 2390 2739 71 84 264 322 336 389 128 179

Tabela 7.2 Resultados computacionais para q=2


Captulo 7 - Implementao Computacional e Resultados
133

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 3 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 20 1,40% 13,60% 80% 219 261 433 638 4 7 10 15 6 18 16 26

2 30 1,50% 6,80% 10% 421 511 114 237 32 43 114 237 135 268 15 36

2 40 1,10% 2,80% 0% 710 1091 1500 3833 144 235 380 1034 524 1177 15 48

4 30 0,40% 1,20% 40% 302 376 156 370 6 8 4 11 8 18 4 8

4 40 1,20% 3,50% 10% 495 546 495 1326 28 37 41 108 66 130 12 40

4 50 2,80% 6,00% 10% 689 757 1492 2019 81 111 278 364 331 447 24 32

6 40 1,20% 8,90% 50% 402 446 247 603 9 12 11 24 15 35 10 30

6 50 1,50% 5,00% 10% 579 624 478 624 32 46 54 105 81 134 12 28

6 60 1,80% 4,40% 0% 761 874 1046 2220 80 99 192 375 272 452 25 60

6 70 2,48% 8,95% 0% 928 1045 1671 3239 321 383 889 2333 1210 2658 28 76

8 40 1,00% 4,00% 30% 353 404 110 256 4 6 3 7 6 11 5 14

8 50 1,90% 3,50% 20% 472 527 458 911 13 17 35 76 41 89 25 52

8 60 1,80% 9,50% 0% 663 760 496 1870 38 49 72 343 110 380 17 102

8 70 1,79% 4,44% 0% 761 959 1102 2961 122 147 390 1381 512 1510 38 192

8 80 2,10% 3,70% 0% 958 1085 1914 4091 274 341 961 2711 1236 2975 47 124

10 50 1,20% 4,00% 20% 446 531 227 605 6 8 9 30 14 37 12 44

10 70 1,70% 3,50% 0% 759 806 595 1051 44 50 96 210 140 253 18 42

10 90 1,18% 2,50% 0% 1023 1116 1492 2242 145 196 418 1001 563 1197 29 52

20 100 1,00% 2,00% 0% 978 1031 598 1140 42 51 116 364 158 407 29 90

20 120 1,80% 2,80% 0% 1181 1279 1827 2987 100 132 537 1465 637 1586 84 168

30 150 1,84% 3,13% 0% 1490 1573 1389 2631 117 142 651 1909 768 2038 108 316

50 150 1,70% 2,70% 0% 1358 1406 1075 1518 37 40 435 1030 473 1070 378 1018

50 180 2,35% 4,17% 0% 1424 1515 1558 2871 79 96 1822 5900 1901 5976 484 1696

Tabela 7.3 Resultados computacionais para q=3


Captulo 7 - Implementao Computacional e Resultados
134

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 4 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 20 0,03% 0,27% 80% 205 236 97 132 4 6 2 4 4 8 2 2

2 30 0,40% 2,00% 50% 428 488 512 1058 34 42 46 92 57 127 4 10

2 40 0,50% 1,10% 10% 718 894 1930 3618 158 203 499 953 608 1114 16 36

4 30 0,10% 0,60% 60% 312 369 91 106 7 8 2 4 8 12 2 4

4 40 0,20% 0,70% 50% 560 704 381 877 37 53 36 85 55 118 8 22

4 50 0,50% 2,00% 0% 763 821 655 2255 120 134 156 596 277 722 9 38

6 40 0,09% 0,30% 40% 430 476 101 165 11 13 5 9 14 20 2 4

6 50 0,20% 0,50% 20% 606 676 283 447 40 50 32 52 66 95 5 10

6 60 0,90% 2,40% 10% 807 964 952 2203 119 161 253 658 347 788 24 60

6 70 0,69% 1,53% 0% 1062 1420 892 1991 535 738 783 1963 1319 2428 15 50

8 40 0,10% 1,00% 60% 368 394 171 402 4 5 5 14 6 18 8 24

8 50 0,40% 1,00% 10% 522 635 246 811 16 18 19 68 34 84 9 38

8 60 0,30% 1,00% 40% 708 838 463 831 55 66 84 170 106 224 12 26

8 70 0,62% 1,36% 0% 844 943 658 1362 204 230 324 837 528 1059 16 46

8 80 1,41% 2,69% 0% 1020 1096 1865 3314 503 616 2011 3882 2515 4482 50 96

10 50 0,70% 1,40% 10% 456 514 220 477 7 9 11 26 17 33 12 32

10 70 0,60% 1,20% 0% 788 874 483 1045 67 78 114 282 181 360 13 34

10 90 1,90% 3,50% 0% 1113 1256 2623 3827 308 422 2399 4636 2708 4979 98 212

20 100 1,00% 1,50% 0% 1034 1086 1015 1419 58 67 348 637 407 703 72 116

20 120 1,48% 2,08% 0% 1251 1435 1875 3597 285 340 2681 6276 2967 6616 152 382

30 150 1,52% 2,28% 0% 1589 1657 2365 4159 196 227 3686 9060 3883 9254 325 932

50 150 0,60% 1,30% 0% 1403 1431 810 1875 40 45 302 1093 343 1134 263 1040

50 180 1,21% 1,62% 0% 1512 1674 1961 2802 101 129 3674 8379 3776 8481 841 1936

Tabela 7.4 Resultados computacionais para q=4


Captulo 7 - Implementao Computacional e Resultados
135

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 5 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 20 0,10% 0,70% 80% 207 241 145 204 4 7 4 6 5 10 3 4

2 30 0,20% 1,00% 40% 455 566 455 842 37 47 45 84 64 117 3 8

2 40 0,10% 0,40% 40% 715 791 857 2283 158 183 213 507 286 638 6 22

4 30 0,01% 0,10% 70% 318 375 85 114 7 8 3 4 7 10 2 4

4 40 0,10% 0,60% 30% 545 696 282 419 37 55 27 47 56 81 5 12

4 50 0,30% 0,80% 10% 790 1148 623 1450 131 209 149 371 266 489 7 24

6 40 0,10% 0,50% 50% 429 471 161 238 11 15 8 12 15 27 4 8

6 50 0,20% 0,80% 30% 635 713 407 1034 44 52 407 1034 44 52 8 18

6 60 0,50% 1,80% 0% 806 923 889 2378 125 145 264 799 389 919 20 78

6 70 0,40% 0,87% 20% 1140 1467 1043 2263 620 816 938 2367 1371 2891 16 46

8 40 0,20% 0,80% 50% 371 383 160 295 4 5 4 8 6 13 8 16

8 50 0,20% 0,80% 20% 546 617 190 426 17 22 14 35 29 52 5 16

8 60 0,20% 0,95% 30% 718 848 423 832 57 68 78 171 112 232 11 26

8 70 0,39% 1,00% 10% 878 1021 595 1625 227 283 310 948 506 1161 13 48

8 80 0,46% 1,11% 0% 1106 1267 862 1426 606 752 889 1690 1496 2274 14 38

10 50 0,20% 0,70% 40% 478 536 235 428 8 10 10 19 14 27 10 20

10 70 0,50% 0,90% 0% 811 885 453 935 70 78 106 278 176 353 12 40

10 90 0,40% 1,10% 0% 1188 1264 1177 2128 378 450 953 2075 1332 2466 26 66

20 100 0,40% 1,00% 0% 1052 1111 548 1342 57 70 152 416 210 469 30 110

20 120 0,72% 1,14% 0% 1267 1350 1150 2058 315 368 1277 3143 1592 3456 50 154

30 150 0,85% 1,41% 0% 1634 1739 1840 2958 208 225 2883 6909 3092 7123 218 522

50 150 0,40% 1,00% 0% 1428 1477 737 1482 40 45 231 749 271 791 191 676

50 180 0,67% 1,09% 0% 1535 1667 1527 2351 102 130 1844 4448 1947 4562 366 1018

Tabela 7.5 Resultados computacionais para q=5

A partir dos resultados apresentados (Tabela 7.1 a Tabela 7.5), podemos tecer as
seguintes consideraes:
Captulo 7 - Implementao Computacional e Resultados
136

- A eficincia do mtodo decresce medida que o nmero de trabalhos aumenta


(para um nmero de mquinas fixo) (Figura 7.6) e cresce com o aumento do
nmero de mquinas (para um nmero de trabalhos fixo) (Figura 7.7).

1200

1000

800
Tempo (s)

600

400

200

0
10,30 10,50 10,70 10,80 10,90
Problema de teste (m ,n )

Figura 7.6 Eficincia do mtodo em funo do nmero de trabalhos (n)

1600
1400
1200

1000
Tempo (s)

800
600

400
200

0
2,50 4,50 6,50 8,50 10,50
Problema de teste (m ,n )

Figura 7.7 Eficincia do mtodo em funo do nmero de mquinas (m).


Captulo 7 - Implementao Computacional e Resultados
137

- Se bem que o rcio entre o nmero de trabalhos e o nmero de mquinas (n/m)


seja um factor importante para a eficincia do mtodo, verifica-se que esta
depende tambm da dimenso do problema. A Figura 7.8 mostra que, para um
rcio constante (n/m=5), a eficincia do mtodo decresce com a dimenso do
problema.

200
180
160
140
Tempo (s)

120
100
80
60
40
20
0
4,20 6,30 8,40 14,70 20,100
Problema de teste (m ,n )

Figura 7.8 Eficincia do mtodo em funo da dimenso do problema (m,n).

- A eficincia do mtodo maior para os nveis de congestionamento mais baixos


(Figura 7.9).

- O valor da soluo fornecida pela resoluo do problema de relaxao linear


encontra-se muito prximo do valor da soluo ptima do problema inteiro
constituindo um excelente limite inferior (o desvio mdio global, LP-IP gap,
de 0,61%). Acresce o facto da resoluo da relaxao linear do problema de
programao inteira apresentar tempos computacionais muito interessantes, em
que a mdia global de 80 segundos e o valor mximo de 816 segundos. Estes
dois factos permitem que esta aproximao possa ser encarada como uma boa
plataforma para determinar limites para aferir a qualidade de solues
heursticas.
Captulo 7 - Implementao Computacional e Resultados
138

700

600
Tempo Mdio Global (s)

500

400

300

200

100

0
1 2 3 4 5
q

Figura 7.9 Eficincia do mtodo em funo do nvel de congestionamento do sistema.

- Uma anlise repartio de tempos entre as duas fases do algoritmo (relaxao


linear e partio e gerao de colunas) indica que uma parte muito substancial do
tempo computacional (> 80%) gasto na fase de partio e gerao de colunas.
O mesmo tipo de anlise agora feito sobre a repartio de tempos entre o
algoritmo simplex e a resoluo dos subproblemas indica que uma parte muito
substancial do tempo computacional (> 90%) gasto na resoluo dos
subproblemas. Estas so indicaes claras de direces de investigao para a
melhoria do mtodo.

- O nosso algoritmo mostrou-se capaz de resolver problemas de dimenso


significativa em tempo computacional considerado razovel; (m,n)={(10,90),
(20,120),(50,180)} e mdia global de 620 segundos para os nveis mdio e alto
de congestionamento do sistema (q=3,4,5); (m,n)={(10,100), (20,150),(50,220)}
e mdia global de 195 segundos para os nveis de baixo congestionamento do
sistema (q=1,2).
Captulo 7 - Implementao Computacional e Resultados
139

7.4. Anlise de Sensibilidade


Nesta Seco apresentado a anlise de sensibilidade do modelo desenvolvido a
diferentes valores dos principais parmetros do problema. Em primeiro lugar,
analisado o comportamento do modelo para a situao de um horizonte temporal de
programao mais curto. Seguem-se anlises semelhantes para diferentes valores das
datas de disponibilidade dos trabalhos. O processo de gerao das instncias de testes
segue o esquema descrito na Seco 7.2, sendo que, do conjunto das combinaes (m,n)
possveis, vamos testar apenas um seu subconjunto de 6 combinaes (m,n) diferentes e
300 instncias de teste, que consideramos significativo e suficiente para atingir os
objectivos pretendidos.

7.4.1. Horizonte Temporal Curto


A adopo de diferentes valores para o horizonte temporal de programao, traduzido
pela soma dos tempos de processamento dos trabalhos mais a soma dos tempos de
preparao das mquinas, pode ter um efeito significativo no desempenho dos
algoritmos de soluo. Da que seja comum proceder-se anlise do comportamento
dos algoritmos desenvolvidos para diferentes valores dos referidos tempos. Van den
Akker, Hoogeveen e Van de Velde (1999), Chen e Powell (1999b) e Chen e Lee (2002),
entre outros, realizaram esta anlise e reportaram uma deteriorao significativa dos
tempos computacionais com o aumento dos tempos de processamento dos trabalhos.

Nesta Subseco, propomo-nos efectuar o mesmo tipo de anlise. Como o principal


conjunto de testes foi realizado com o horizonte temporal de programao mais longo,
que passaremos a designar por horizonte temporal longo (HTlongo), a adopo agora de
um horizonte temporal mais curto permite concretizar o objectivo pretendido.

O intervalo dos tempos de processamento foi reduzido de pjk=U[10,80] para


pjk=U[10,50], o intervalo dos tempos de preparao dependentes da sequncia foi
reduzido de sij=U[20,40] para sij=U[10,20], e o intervalo das datas de disponibilidade
dos trabalhos foi reduzido de rj=U[0,100] para rj=U[0,50].
Captulo 7 - Implementao Computacional e Resultados
140

Para cada par de valores (m,n) foram geradas 10 instncias de teste que apresentam,
relativamente Seco 7.2, as seguintes diferenas nos valores dos respectivos
parmetros:

- Tempos de processamento pjk=U[10,50]

- Datas de disponibilidade dos trabalhos rj=U[0,50]

- Tempos de preparao dependentes da sequncia sij=U[10,20]

- Datas de entrega dj (adaptado de Ho e Chang, 1995):

dj = max {j, q} tal que

j= minkM{p jk + max(ak,rj) + maxiN(sji)}

q=U[1,110r/q], r=n/m

Os resultados computacionais obtidos so apresentados na Tabelas seguintes.

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 1 Gap RL B&P RL B&P Total Avaliados
m n Mdia Mx % Mdia Mx Mdia Max Mdia Mx Mdia Max Mdia Mx Mdia Mx

2 40 0,00% 0,00% 30% 70 143 857 1311 7 13 52 78 43 89 69 78

6 60 0,00% 0,00% 0% 128 173 965 1027 6 7 45 50 51 57 103 110

10 70 0,00% 0,00% 20% 152 214 916 1035 5 7 36 43 34 49 110 122

10 90 0,00% 0,00% 0% 424 592 1732 2162 38 60 153 174 191 219 162 170

20 100 0,00% 0,00% 0% 419 532 1265 1443 17 23 71 82 89 104 160 172

50 150 0,00% 0,00% 0% 389 541 1726 2286 13 17 142 231 155 248 177 219

Tabela 7.6 Resultados computacionais para o horizonte temporal curto e q=1


Captulo 7 - Implementao Computacional e Resultados
141

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 2 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,00% 0,00% 0% 217 411 1901 3088 18 37 119 259 138 296 54 68

6 60 0,20% 1,90% 0% 262 337 1581 2022 10 15 58 72 68 82 69 92

10 70 0,20% 1,40% 0% 300 373 1281 1787 7 10 36 43 43 53 72 90

10 90 1,38% 13,80% 0% 506 657 2559 3182 27 37 135 164 162 198 127 138

20 100 0,40% 3,00% 0% 588 681 1248 1500 14 18 33 42 48 56 77 102

50 150 0,02% 0,10% 10% 810 967 345 553 15 23 9 16 23 34 34 56

Tabela 7.7 Resultados computacionais para o horizonte temporal curto e q=2

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 3 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 2,20% 5,80% 10% 693 840 1513 2864 114 140 279 518 393 617 13 36

6 60 0,80% 4,20% 0% 611 800 842 1547 51 79 74 133 125 212 20 54

10 70 0,90% 2,90% 0% 643 694 713 1317 33 38 52 148 86 183 24 62

10 90 0,50% 1,07% 0% 773 983 2507 4762 90 129 339 1029 430 1152 70 202

20 120 0,62% 1,81% 0% 1022 1116 1074 2257 88 105 192 687 280 766 87 580

50 150 0,60% 1,10% 10% 1221 1278 679 1108 37 42 303 730 310 769 144 372

Tabela 7.8 Resultados computacionais para o horizonte temporal curto e q=3

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 4 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,60% 1,90% 10% 746 1004 1510 2376 151 191 332 527 450 683 10 22

6 60 0,80% 2,70% 0% 796 879 685 1643 110 137 149 339 260 427 13 40

10 70 0,60% 1,50% 10% 779 915 630 1182 70 81 142 315 198 389 22 56

10 90 1,41% 3,18% 0% 1046 1094 1818 2729 274 338 1289 2276 1564 2576 59 106

20 120 0,89% 1,53% 0% 1239 1349 1450 2825 219 251 1393 3345 1612 3574 91 248

50 150 0,20% 0,30% 0% 1293 1356 495 873 43 49 181 499 225 542 74 252

Tabela 7.9 Resultados computacionais para o horizonte temporal curto e q=4


Captulo 7 - Implementao Computacional e Resultados
142

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 5 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,20% 0,68% 20% 752 1450 1179 2675 151 315 266 554 365 670 7 16

6 60 0,20% 0,70% 10% 844 962 449 1030 123 144 109 311 222 427 7 24

10 70 0,20% 0,40% 10% 813 1049 404 699 75 108 83 127 150 190 10 20

10 90 0,56% 1,75% 0% 1139 1195 1073 2041 348 425 874 1940 1222 2272 27 62

20 120 0,60% 1,02% 0% 1313 1411 1387 1411 257 309 1469 3363 1726 3617 82 216

50 150 0,20% 0,38% 10% 1321 1404 594 1006 44 51 246 585 266 631 104 282

Tabela 7.10 Resultados computacionais para o horizonte temporal curto e q=5

A anlise comparativa dos resultados obtidos para o mesmo conjunto de pares (m,n),
apresentada na Tabela 7.11, permite-nos confirmar uma degradao dos tempos
computacionais com o aumento do horizonte temporal de programao. Contudo, esta
degradao dos tempos computacionais relativamente modesta (aproximadamente
mais 39%) comparativamente variao do horizonte temporal de programao
(aproximadamente mais 67%).

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


Gap RL B&P RL B&P Total Avaliados
Mdia % Mdia Mdia Mdia Mdia Mdia Mdia

HTcurto 0,48% 5,0% 710 1179 82 289 364 69

HTlongo 0,71% 4,0% 736 1359 96 417 506 93

Tabela 7.11 Resultados comparativos - horizonte temporal curto e longo

7.4.2. Datas de Disponibilidade dos Trabalhos


Nesta Subseco, vamos apresentar um estudo da sensibilidade do modelo desenvolvido
a variaes nas datas de disponibilidade dos trabalhos. Para isso, vamos estudar duas
situaes diferentes; a primeira situao envolve tempos de disponibilidade dos
Captulo 7 - Implementao Computacional e Resultados
143

trabalhos iguais a zero para todos os trabalhos (rj=0); a segunda situao envolve
tempos de disponibilidade dos trabalhos gerados de uma forma mista com um
subconjuntos dos trabalhos a apresentar datas de disponibilidade iguais a zero e os
restantes trabalhos a apresentarem datas de disponibilidade distribudas uniformemente
ao longo do horizonte de programao.

7.4.2.1. rj=0
Para cada par de valores (m,n) foram geradas 10 instncias de teste seguindo o mesmo
esquema apresentado na Seco 7.2 com a excepo das datas de disponibilidade dos
trabalhos que tomam o valor nulo (rj=0) para todos os trabalhos.

Os resultados computacionais obtidos so apresentados na Tabelas seguintes.

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 1 Gap RL B&P RL B&P Total Avaliados
m n Mdia Mx % Mdia Mx Mdia Max Mdia Mx Mdia Max Mdia Mx Mdia Mx

2 40 0,00% 0,00% 0% 93 144 873 1460 14 19 80 143 95 160 70 76

6 60 0,00% 0,00% 0% 124 165 889 1069 11 13 63 70 74 82 100 106

10 70 0,00% 0,00% 20% 175 257 942 1152 12 16 51 64 53 76 107 122

10 90 0,00% 0,00% 10% 179 359 1328 1792 24 34 177 231 184 265 141 150

20 120 0,00% 0,00% 0% 269 323 1648 1992 36 47 217 271 253 318 194 208

50 150 0,00% 0,00% 0% 393 507 1786 2299 18 27 160 275 179 298 175 216

Tabela 7.12 Resultados computacionais para rj=0 e q=1


Captulo 7 - Implementao Computacional e Resultados
144

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 2 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,01% 0,12% 0% 317 567 2155 3908 52 109 299 596 351 705 45 66

6 60 1,20% 6,20% 0% 284 450 1517 1888 19 32 85 106 104 130 63 93

10 70 0,28% 2,30% 0% 418 574 1363 1748 20 30 46 60 67 89 63 78

10 90 0,08% 0,87% 0% 392 559 2218 3205 41 73 210 265 252 338 105 127

20 120 0,03% 0,31% 0% 540 671 2036 2295 38 49 129 159 167 196 105 132

50 150 0,08% 0,55% 10% 771 853 492 752 16 21 13 24 28 43 45 69

Tabela 7.13 Resultados computacionais para rj=0 e q=2

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 3 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,90% 2,40% 40% 686 899 1617 2207 241 348 648 899 630 1113 15 22

6 60 1,10% 2,20% 10% 690 794 980 3383 122 151 282 1032 376 1096 27 152

10 70 1,60% 3,60% 0% 701 780 719 1303 69 82 164 364 234 342 24 52

10 90 1,50% 5,80% 0% 987 1081 1806 3426 271 344 760 2297 1031 2641 41 108

20 120 1,00% 2,14% 0% 1069 1188 1078 1894 158 202 350 950 508 1152 42 86

50 150 0,54% 1,07% 0% 1166 1230 602 1082 35 43 248 686 284 724 129 402

Tabela 7.14 Resultados computacionais para rj=0 e q=3

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 4 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,50% 1,60% 30% 770 1187 1967 4454 292 478 876 2115 906 2312 17 52

6 60 0,70% 2,40% 20% 743 917 695 1641 191 240 289 723 422 910 16 44

10 70 0,70% 1,50% 10% 745 839 525 878 103 124 170 279 257 380 15 32

10 90 1,00% 1,60% 0% 1074 1222 1536 3076 528 772 1846 4265 2374 4821 47 114

20 120 1,43% 2,00% 0% 1243 1295 2195 3544 344 402 4196 10427 4541 10756 244 742

50 150 0,20% 0,38% 0% 1263 1326 292 535 42 53 65 149 108 185 23 66

Tabela 7.15 Resultados computacionais para rj=0 e q=4


Captulo 7 - Implementao Computacional e Resultados
145

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 5 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,10% 0,53% 40% 803 1151 1167 2030 303 463 492 852 599 1097 6 10

6 60 0,40% 1,60% 20% 794 942 840 2729 205 247 402 1604 528 1792 21 100

10 70 0,22% 0,61% 20% 797 857 286 572 117 129 86 202 186 330 6 16

10 90 0,50% 0,92% 0% 1185 1561 919 1533 677 1086 1143 2213 1821 2881 19 42

20 120 0,72% 1,11% 0% 1268 1331 1805 3839 372 422 3417 9135 3790 9484 152 454

50 150 0,17% 0,34% 10% 1282 1381 371 659 41 48 90 255 122 297 33 112

Tabela 7.16 Resultados computacionais para rj=0 e q=5

Na Tabela abaixo, apresentamos os resultados comparativos entre este conjunto de


testes e o conjunto de testes efectuado para rj=U[0,100] (Seco 7.3), considerando os
mesmos problemas de teste e os cinco nveis de congestionamento.

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


Gap RL B&P RL B&P Total Avaliados
Mdia % Mdia Mdia Mdia Mdia Mdia Mdia

r j =0 0,50% 8% 707 1222 147 568 684 70


r j =[0,100] 0,71% 4% 736 1359 96 417 506 93

Tabela 7.17 Tabela comparativa - r j=0 e rj=[0,100]

A partir dos resultados apresentados na Tabela comparativa, podemos verificar que os


valores mdios dos indicadores escolhidos so ligeiramente melhores para a situao em
que rj=0, com a excepo dos tempos computacionais que so superiores. Este
agravamento dos tempos computacionais tem origem nos subproblemas (note-se que o
nmero de colunas e nmero de nodos gerados na rvore de pesquisa apresentam
valores inferiores) e deve-se ao aumento do espao de estados do algoritmo de
programao dinmica de soluo dos subproblemas provocado pelo facto dos trabalhos
estarem disponveis mais cedo (t=0).
Captulo 7 - Implementao Computacional e Resultados
146

7.4.2.2. r j = 0 e r j = U[1, ( p + s )(n / m 1)]

A segunda situao que vamos analisar envolve tempos de disponibilidade dos trabalhos
gerados atravs de um processo misto; a um primeiro subconjunto de 2m trabalhos (dois
trabalhos por mquina) atribuda uma data de disponibilidade igual a zero; as datas de
disponibilidade dos restantes trabalhos so geradas num intervalo de tempo alargado
r j = U[1, ( p + s )(n / m 1)] , em que os trabalhos vo sendo disponibilizados de uma forma

uniforme ao longo de um intervalo de tempo alargado que tem um limite superior, que
passaremos a designar por T, igual ao horizonte de programao mdio estimado
T = ( p + s )n / m menos o tempo mdio estimado de preparao e processamento de um

trabalho (s + p ) . Os parmetros p e s representam as mdias dos tempos de


processamento e de preparao das mquinas, respectivamente.

A ideia subjacente a esta configurao a de existirem dois trabalhos por mquina j


disponveis no momento em que a programao determinada (t=0) e os restantes
trabalhos estarem a ser processados pelas reas adjacentes a montante, sendo possvel
estimar as datas em que estes vo ficar disponveis para processamento nas mquinas
em programao; caso estes ltimos trabalhos fiquem disponveis no horizonte temporal
T, so includos no programa, com o objectivo de poder obter uma utilizao mais
eficiente das mquinas.

Os resultados computacionais so apresentados nas Tabelas seguintes.


Captulo 7 - Implementao Computacional e Resultados
147

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 1 Gap RL B&P RL B&P Total Avaliados
m n Mdia Mx % Mdia Mx Mdia Max Mdia Mx Mdia Max Mdia Mx Mdia Mx

2 40 0,00% 0,00% 0% 202 269 2088 2276 10 15 65 101 76 116 63 80

6 60 0,00% 0,00% 0% 236 312 1470 1871 8 13 30 44 39 57 80 92

10 70 0,00% 0,00% 0% 287 338 1127 1377 7 11 19 23 26 33 70 94

10 90 0,00% 0,00% 0% 333 428 2080 2433 17 27 86 99 103 117 129 151

20 120 1,40% 13,30% 0% 472 623 1985 2367 15 25 93 107 108 121 147 172

50 150 0,00% 0,00% 0% 309 387 1239 1370 8 11 72 88 80 99 192 218

Tabela 7.18 Resultados computacionais para q=1

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 2 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 2,11% 8,43% 0% 560 790 1912 2699 29 52 85 153 114 189 19 43

6 60 4,50% 37,00% 0% 464 569 1545 2339 13 23 32 75 46 98 35 56

10 70 4,74% 13,92% 0% 507 643 1031 1313 12 15 24 46 36 61 36 53

10 90 3,11% 10,64% 0% 586 799 2687 3559 25 43 83 182 108 225 78 111

20 120 2,76% 5,47% 0% 854 945 1384 2072 29 43 87 179 116 222 57 118

50 150 0,24% 2,43% 0% 677 922 520 689 9 13 14 20 24 28 50 75

Tabela 7.19 Resultados computacionais para q=2

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 3 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,09% 0,94% 40% 800 1298 1531 2144 42 77 63 105 79 146 10 16

6 60 1,19% 6,39% 0% 561 662 1348 2525 16 32 29 57 45 84 30 80

10 70 1,59% 3,58% 10% 583 727 699 1121 14 20 15 31 28 51 22 39

10 90 1,10% 4,24% 0% 767 895 2131 2887 31 54 64 127 96 181 41 53

20 120 0,70% 1,70% 0% 949 1044 1124 1688 38 60 72 98 111 132 38 61

50 150 2,26% 4,01% 0% 1041 1122 527 841 20 27 100 197 121 216 103 244

Tabela 7.20 Resultados computacionais para q=3


Captulo 7 - Implementao Computacional e Resultados
148

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 4 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,01% 0,63% 60% 932 1040 674 1210 49 71 62 144 74 208 4 8

6 60 0,40% 2,01% 0% 642 759 976 1897 19 35 21 53 40 75 20 52

10 70 0,67% 2,17% 10% 650 821 520 940 16 20 12 18 27 36 14 25

10 90 0,82% 3,05% 0% 903 1198 1840 2402 33 55 54 78 87 118 34 49

20 120 0,78% 1,81% 0% 1011 1071 906 1522 44 59 69 172 113 223 35 89

50 150 0,88% 1,39% 0% 1097 1193 546 848 24 33 106 213 130 232 88 198

Tabela 7.21 Resultados computacionais para q=4

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


q= 5 Gap RL B&P RL B&P Total Avaliados
m n Mdia Max % Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max Mdia Max

2 40 0,70% 4,63% 50% 935 1094 958 1352 53 80 64 116 85 184 6 10

6 60 0,44% 1,92% 30% 699 952 1033 1919 20 34 20 45 34 60 26 86

10 70 0,65% 1,54% 0% 640 814 545 866 15 21 13 21 28 36 14 26

10 90 0,58% 1,54% 0% 959 1382 2612 14961 34 55 457 4221 489 4221 346 3272

20 120 0,76% 1,51% 0% 1053 1114 1035 1629 46 64 91 176 138 225 47 113

50 150 0,45% 0,84% 0% 1115 1153 390 676 23 26 57 118 80 136 45 110

Tabela 7.22 Resultados computacionais para q=5

A Tabela 7.23 apresenta os resultados comparativos para as trs situaes analisadas.

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


Gap RL B&P RL B&P Total Avaliados
Mdia % Mdia Mdia Mdia Mdia Mdia Mdia

r j =0 0,50% 8% 707 1222 147 568 684 70


r j =[0,100] 0,71% 4% 736 1359 96 417 506 93
r j =0 e r j =[1,T' ] 1,10% 6% 694 1282 24 69 89 63

Tabela 7.23 Tabela comparativa


Captulo 7 - Implementao Computacional e Resultados
149

A partir destes resultados, podemos verificar que o modelo desenvolvido robusto a


variaes das datas de disponibilidade dos trabalhos e que os melhores resultados so
obtidos para a terceira situao analisada ( r j = 0 e r j = U[1, T '] ), com a excepo do

valor do Gap LP-IP que superior. Em particular, os resultados dos tempos


computacionais justificam-se pela reduo do espao de estados do algoritmo de
programao dinmica de soluo dos subproblemas provocada pelo facto de existirem
trabalhos que ficam disponveis mais tarde do que nos dois outros casos em anlise.

Uma ltima nota para referir que o valor percentual elevado (37.0%) para o Gap LP-IP
que aparece na Tabela 7.19 corresponde a um acrscimo em termos de valores absolutos
de atraso de aproximadamente 6 unidades de tempo, num horizonte temporal de
programao T=761.

7.5. Extenses ao Modelo


Nesta Seco fazemos um estudo do comportamento do modelo desenvolvido quando
aplicado a outras funes de custo regulares (no decrescentes com os tempos de
concluso). A nossa escolha recaiu sobre a funo de custo soma ponderada dos tempos
Fw = j =1 w j F j = j =1 w j (C j r j ) , dado que os trabalhos tm datas de
n n
de fluxo,

disponibilidade arbitrrias e esta funo de custo tem como caso particular uma das
funes de custo mais estudadas e mais referidas na literatura, a soma ponderada dos
tempos de concluso, Cw = j =1 w j C j , quando rj=0.
n

Como j foi referido no Captulo 2, o tempo de fluxo mede os tempos de espera e


processamento dos trabalhos. O peso atribudo a cada trabalho pode ter vrias
interpretaes, tais como, uma indicao da prioridade de processamento ou uma
indicao do valor associado ao trabalho.

Foi realizado um conjunto de testes envolvendo os problemas de maior dimenso para


cada m, e usando a janela temporal mais larga. As instncias de teste para este conjunto
de testes foram geradas seguindo o mesmo esquema apresentado na Seco 7.2, com o
Captulo 7 - Implementao Computacional e Resultados
150

devido ajuste para esta funo de custo onde no existem agora datas de entrega para os
trabalhos e, como tal, no se aplica a utilizao de nveis de congestionamento.

Os resultados computacionais so apresentados na Tabela seguinte.

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


Gap RL B&P RL B&P Total Avaliados
m n Mdia Mx % Mdia Mx Mdia Max Mdia Mx Mdia Max Mdia Mx Mdia Mx

2 40 0,07% 0,18% 40% 773 1182 1641 3185 266 443 649 1140 656 1327 8 14

2 50 0,08% 0,29% 20% 1101 1539 2745 5713 871 1240 2850 5872 3151 6802 10 22

4 50 0,05% 0,16% 30% 667 720 379 625 98 115 89 148 160 254 6 12

4 60 0,06% 0,31% 20% 1137 1714 1276 4057 585 847 996 3484 1383 3957 14 66

6 60 0,12% 0,43% 10% 828 986 565 1220 180 219 207 447 367 602 10 32

6 70 0,13% 0,34% 20% 1085 1539 1021 2403 501 674 848 1929 1180 2369 16 56

8 70 0,06% 0,21% 40% 944 1140 684 964 215 292 343 540 421 749 15 24

8 80 0,13% 0,26% 0% 1170 1426 949 1987 549 646 920 2026 1470 2493 16 38

10 70 0,09% 0,34% 20% 884 1148 255 445 99 135 66 117 152 207 5 12

10 90 0,14% 0,22% 0% 1212 1305 939 1629 545 656 1048 1691 1593 2185 17 38

20 100 0,13% 0,26% 0% 1017 1062 494 796 63 74 137 353 200 424 19 54

20 120 0,17% 0,31% 0% 1343 1489 1035 2792 253 293 1293 5873 1546 6120 68 390

50 150 0,13% 0,24% 10% 1381 1417 482 888 36 39 93 256 120 293 51 160

50 180 0,22% 0,30% 0% 1724 1771 1275 2189 100 112 1236 3172 1337 3272 261 784

Tabela 7.24 Resultados computacionais para o problema R a k , r j , sij w j Fj

Na Tabela 7.25, apresentamos os resultados comparativos entre este conjunto de testes e


o conjunto de testes efectuado para a funo de custo Tw (Seco 7.3), considerando os
mesmos problemas de teste.
Captulo 7 - Implementao Computacional e Resultados
151

LP-IP RL Colunas Geradas Tempo de CPU (s) Nodos


Gap RL B&P RL B&P Total Avaliados
Mdia % Mdia Mdia Mdia Mdia Mdia Mdia

q =1 0,06% 5,83% 217 1435 19 129 144 142

q =2 0,40% 0,83% 441 1855 27 101 127 82

q =3 1,82% 0,83% 961 1323 122 543 663 100

q =4 0,95% 1,67% 1026 1310 208 1129 1331 131

q =5 0,44% 6,67% 1060 872 236 611 820 63

Fw 0,12% 14,17% 1086 810 242 577 767 41

Tabela 7.25 Tabela comparativa - Tw e Fw

Da anlise comparativa dos resultados realamos o seguinte:

- O nmero de solues ptimas inteiras encontradas na fase de relaxao linear


muito superior para Fw (aproximadamente 14%);

- O nmero de nodos gerados na fase de partio e avaliao para Fw claramente


inferior ao melhor registo para Tw;

- A mdia dos tempos computacionais para Fw tem um valor muito inferior ao pior
dos casos para para Tw e est prximo da mdia global dos tempos
computacionais (considerando os cinco nveis de congestionamento) para Tw.

Com base no atrs exposto, podemos concluir que o modelo desenvolvido igualmente
eficiente na resoluo de problemas R a k , r j , sij w j Fj .
Captulo 8
Concluses e Trabalho Futuro

Neste trabalho apresentou-se uma aplicao do mtodo de partio e gerao de colunas


ao problema de programao de mquinas paralelas no-idnticas com tempos de
preparao das mquinas dependentes da sequncia de trabalhos a processar e datas de
disponibilidade para as mquinas e para os trabalhos, de forma a minimizar a soma
ponderada dos desvios positivos (atrasos) s datas de entrega dos trabalhos. Este
problema um caso geral dos problemas de programao de mquinas paralelas e, do
conhecimento que temos da literatura, a sua soluo exacta nunca foi tentada antes. O
modelo desenvolvido pode ser aplicado a outros casos particulares com medidas de
desempenho regulares.

Partindo de uma formulao do problema atravs de um modelo programao


matemtica com uma funo de custo no linear, foi aplicado o mtodo decomposio
de Dantzig-Wolfe que conduziu a uma formulao forte do problema e em que todas as
suas funes so lineares. Esta formulao foi resolvida utilizando o mtodo de partio
e gerao de colunas. A alternativa seria utilizar a formulao original com o recurso a
tcnicas de linearizao das funes no lineares, mas sabe-se que tipicamente isso
produz formulaes mais fracas.

Analisaram-se vrios modelos de programao dinmica para a resoluo do


subproblema e foi desenvolvida uma estratgia de reduo do espao de estados que
permitiu acelerar de forma significativa a resoluo dos subproblemas.

152
Captulo 8 - Concluses e Trabalho Futuro
153

Verificou-se que a determinao de uma soluo inicial bsica admissvel para o


problema atravs de colunas artificiais conduzia a uma maior degenerescncia no
processo de gerao de colunas e, consequentemente, maiores tempos computacionais
para a resoluo da relaxao linear do problema principal. Para resolver este problema
foi desenvolvida uma heurstica para determinao de uma soluo inicial bsica
admissvel.

Referiram-se diferentes estratgias de partio e pesquisa e definiu-se um esquema de


partio e avaliao. Foi desenvolvida uma regra especfica de partio no trivial e
original que diminui significativamente o nmero de nodos explorados na rvore de
pesquisa. A sua eficincia demonstrada apresentando resultados comparativos com as
regras de partio clssicas.

O estudo aprofundado da estrutura do problema permitiu desenvolver estratgias de


estabilizao e acelerao do algoritmo de gerao de colunas que se mostraram
decisivas para os bons resultados obtidos. Mostrou-se ainda que estas estratgias so
vlidas para uma classe alargada de problemas de programao de mquinas paralelas.

Desenvolveu-se um programa de implementao para este problema e so apresentados


resultados de testes computacionais para uma gama alargada de configuraes do
problema.

Analisou-se a sensibilidade do modelo desenvolvido a variaes nos seus principais


parmetros.

Estudou-se a extenso do modelo desenvolvido a outras funes de custo.

O modelo desenvolvido mostrou-se capaz de resolver instncias de dimenso


significativa.

So vrias as direces de investigao que podem ser exploradas em trabalhos futuros.


O vasto domnio dos problemas de programao proporciona inmeras possibilidades
para a aplicao do mtodo e, assim, construir uma base de conhecimento mais alargada
que sirva de suporte ao seu desenvolvimento.
Captulo 8 - Concluses e Trabalho Futuro
154

Neste trabalho, a anlise dos tempos computacionais parciais revelou duas direces
importantes de investigao para o desenvolvimento do mtodo: a fase de partio e
gerao de colunas, onde a estratgia de seleco dos arcos para partio se revelou
muito importante, e o algoritmo de resoluo dos subproblemas.

Uma das abordagens que nos parece mais promissora a associao de procedimentos
heursticos ao mtodo de partio e gerao de colunas. Estes procedimentos heursticos
devem ser capazes de explorar de forma adequada a informao dual fornecida pelo
algoritmo simplex para acelerar a resoluo dos subproblemas. Devem tambm ser
capazes de no s encontrar solues inteiras melhores que a soluo incumbente actual
permitindo assim abandonar um maior nmero de nodos da rvore de pesquisa, como
tambm, de ajudar a encontrar as parties que mais rapidamente conduzem soluo
ptima inteira.
Bibliografia

VAN DEN AKKER, J. M., HOOGEVEEN, J. e S. VAN DE VELDE, (1999), Parallel


Machine Scheduling by Column Generation, Operations Research, Vol. 47, 862-872.

VAN DEN AKKER, J. M., HURKENS, C. A. J. e SAVELSBERGH, M. W. P. (2000),


Time-Indexed Formulations for Machine Scheduling: Column Generation. INFORMS
Journal on Computing, 12:111-124.

BAKER, K. R. e MERTEN, A. G. (1973), Scheduling with Parallel Processors and


Linear Delay Costs, Naval Research Logistic Quarterly, 20:193-204.

BARNES, J. W. (1993). A Tabu Search Experience in Production Scheduling, Annals


of Operations Research, 41:141-156.

BARNES, J. W. e BRENNAN, J. J. (1977), An Improved Algorithm for Scheduling


Jobs on Identical Machines, AIIE Transactions, 9:25-31.

BARNHART, C., JOHNSON, E., NEMHAUSER, G., SAVELSBERGH M. e VANCE


P., (1998), Branch-and-Price: Column Generation for Solving Huge Integer Programs,
Operations Research, 46: 316-329.

BELOUADAH, H. e POTTS, C. N. (1995), Scheduling Identical Parallel Machines to


Minimize Total Weighted Completion Time, Discrete Applied Mathematics, 48:201-
218.

BEN AMOR, H., DESROSIERS, J., VALRIO DE CARVALHO, J.M. (2003), Dual-
optimal Inequalities for Stabilized Column Generation, Les Cahiers de GERAD G-
2003-20. ISSN: 0711-2440.

155
Bibliografia
156

BHASKARAN, K. e PINEDO, M. (1992), Dispatching, Handbook of Industrial


Engineering, G. Salvendy, 2184-2198, Wiley, New York.

BLAZEWICZ, J., DROR, M. e WEGLARZ, J. (1991), Mathematical programming


formulations for machine scheduling: A survey, European Journal of Operational
Research, 51:283-300.

BLAZEWICZ, J., LENSTRA, J. K. e RINNOOY KAN, A. (1983), Scheduling subject


to resource constraints: classification and complexity, Discrete Applied Mathemathics,
5:11-24.

CHEN, Z.-L. e LEE, C. (2002), Parallel machine scheduling with a common due
window, European Journal of Operational Research, 136, 512-527.

CHEN, Z.-L., e POWELL, W. (1999a), Solving parallel machine scheduling problems


by column generation, INFORMS Journal on Computing, Vol. 11, No. 1, 78-94.

CHEN, Z.-L., e POWELL, W. (1999b), A Column Generation Based Decomposition


Algorithm for a Parallel Machine Just-In-Time Scheduling Problem, European Journal
of Operational Research, 116, 220-232.

CHEN, Z.-L. e POWELL, W. (2003), Exact Algorithms for Scheduling Multiple


Families of Jobs on Parallel Machines, Naval Research Logistics, 50, 823-840.

CHENG, T. C. E. e SIN, C. C. S. (1990), A State-of-the-Art Review of Parallel


Machine Scheduling Research, European Journal of Operational Research, 47:271-292.

CHENG, R. e GEN, M. (1997), Parallel Machine Scheduling Problems Using Memetic


Algorithms, Computers & Industrial Engineering, 33:761-764.

CHRISTOFIDES, N., MINGOZZI, A. e TOTH, P. (1981), State-Space Relaxation


Procedures for the Computation of Bounds to Routing Problems, Networks 11, 145-
164.

DANTZIG, G. e WOLFE, P. (1960), Decomposition Principle for Linear Programs,


Operations Research 8:101-111.
Bibliografia
157

DESAULNIERS, G., DESROSIERS, J., IOACHIM, I., SOLOMON, M. M., SOUMIS,


F. e VILLENEUVE, D. (1998), A unified framework for deterministic time
constrained vehicle routing and crew scheduling problems, Fleet management and
logistics, Eds. T. G. Crainic and G. Laporte. Kluwer Academic Publishers, 3:57-93.

DESROCHERS, M., DESROSIERS, J. e SOLOMON, M. M. (1992), A New


Optimization Algorithm for the Vehicle Routing Problem With Time Windows,
Operations Research, Vol. 40, No. 2, 342-354.

DESROSIERS, J., DUMAS, Y., SOLOMON, M., e SOUMIS, F. (1995), Time


Constrained Routing and Scheduling, Handbook in Operations Research &
Management Science, Elsevier Science,Vol. 8, 2:35-139.

DESROSIERS, J., SOUMIS, F. e DESROCHERS, M. (1984), Routing with Time


Windows by Column Generation, John Wiley & Sons, Vol 14, 545-565.

DROR, M., (1994), Note on the complexity of the shortest path models for column
generation in VRPTW, Operations Research, Vol. 42, No. 5, 977-978.

DU, J. e LEUNG, J.Y.-T. (1990), Minimizing total tardiness on one machine is NP-
hard. Mathematics of Operations Research, Vol. 15, No. 5, 483-495.

EASTMAN, W. L., EVEN, S. e ISAACS, I. M. (1964), Bounds for the Optimal


Scheduling of n Jobs on m Processors, Management Science, 11(2):268-279.

ELMAGHRABY, S. E. e PARK, S. H. (1974), Scheduling Jobs on a Number of


Identical Machines, AIIE Transactions, 6:1-13.

EMMONS, H. (1969), One-Machine Sequencing to Minimize Certain Functions of Job


Tardiness, Operations Research, 17:701-715.

FRANA, P.M., GENDREAU, M., LAPORTE, G. e MULLER, F.M, (1996), A Tabu


Search Heuristic for the Multiprocessor Scheduling Problem with Sequence Dependent
Setup Times, International Journal of Production Economics, 43:79.
Bibliografia
158

FRANA, P.M., MENDES, A. S. e MOSCATO, P. (1999), Memetic Algorithms to


Minimize Tardiness on a Single Machine with Sequence Dependent Setup Times,
DSI99- 5th International Conference of the Decision Sciences Institute.

FRENCH, S., (1982), Sequencing and Scheduling: An Introduction to the Mathematics


of the Job-Shop, Ellis Horwood Ltd.

GAREY, M. e JOHNSON, D. (1979), Computers and Intractability, A Guide to the


Theory of NP-Completeness, W. H. Freeman and Company.

GRAHAM R.L., LAWLER, E.L., LENSTRA, J.K. e RINNOOY KAN, A.H.G. (1979),
Optimization and Approximation in Deterministic Sequencing and Scheduling: a
Survey, Annals of Discrete Mathematics, 5:287-326.

HO, J. C. e CHANG, Y. L. (1991), Heuristics for Minimizing the Mean Tardiness for
m Parallel Machines. Naval Research Logistics 38:367-381.

HO, J. e CHANG, Y. (1995), Minimizing the Number of Tardy Jobs for m Parallel
Machines. European J. Oper. Res. 84:343-355.

HOOGEVEEN, J., LENSTRA, J. K. e VAN DE VELDE, S. (1997), Sequencing and


Scheduling - Annotated Bibliographies in Combinatorial Optimization, Eds. M.
DellAmico, F. Maffioli and S. Martello, John Wiley & Sons, 12:181-197.

HOUCK, J. D. J., PICARD, J. C., QUEYRANNE, M., e VEMUGANTI, R. R. (1980),


The Travelling Salesman Problem as a Constrained Shortest Path Problem: Theory and
Computational Experience. Operations Research, 17:93-109.

ILOG, INC., (1998), Version 6.0 of Using the CPLEX Callable Library.

KANG, S., MALIK, K. e THOMAS, L. (1999), Lotsizing and Scheduling on Parallel


Machines with Sequence-Dependent Setup Costs, Management Science, Vol 45, 2:273-
289.
Bibliografia
159

KOULAMAS, C., ANTONY, S.R. e JAEN, R. (1994), A Survey of Simulated


Annealing Applications to Operations Research Problems, Omega, International
Journal of Management Science, 22:41-56.

VAN LAARHOVEN, P. J. M., AARTS, E. H. L., e LENSTRA, J. K. (1992),Job Shop


Scheduling by Simulated Annealing, Operations Research, 40:113-125.

LASDON, L., (1970), Optimization Theory for Large Systems, Case Western Reserve
University, The Macmillan Company, Collier-Macmillan Limited, London.

LAWLER, E.L. e MOORE, J. M. (1969), A Functional Equation and its Application to


Resource Allocation and Sequencing Problems. Management Science, 16:77-84.

LAWLER, E.L., (1977), A Pseudopolynomial Time Algorithm for Sequencing Jobs


to Minimize Total Tardiness, Annals of Discrete Mathematics 1:331-342.

LEE, Y.K., BHASKARAN, K. e PINEDO, M. (1997), A Heuristic to Minimize the


Total Weighted Tardiness with Sequence Dependent Setup Times, IIE Transactions,
29:45-52.

LENSTRA, J.K., RINNOOY KAN, A.H.G. e BRUCKER, P. (1977), Complexity of


Machine Scheduling Problems., Annals of Discrete Mathematics 1:343-362.

LEUNG, J. Y-T., (1982), On Scheduling Independent Tasks with Restricted Execution


Times, Operations Research, 30:163-171.

LEUNG, J. Y-T., (2004), Handbook of Scheduling: Algorithms, Models, and


Performance Analysis Chapman & Hall/CRC Computer & Information Science
Series. ISBN:1584883979. http://web.njit.edu/~leung/handbook.

LBBECKE, M. e DESROSIERS, J. (2002), Selected topics in Column Generation,


Les Cahiers du GERAD, G-2002-64. ISSN: 0711-2440.

MEHROTRA, A. e TRICK, M. (1996), A column generation approach for graph


colouring, INFORMS J. Comput., 8(4):344-354.
Bibliografia
160

MENDES, A., MULLER, F., FRANA, P.M., e MOSCATO, P. (1999), Comparing


Meta-Heuristics Approaches for Parallel Machine Scheduling Problems with Sequence-
Dependent Setup Times, CARS & FOF99 - 15th International Conference on CAD-
CAM Robotics and Factories of the Future, Brasil.

MORTON, T. E. e RAMNATH, P. (1992) Guided Forward Search in Tardiness


Scheduling of Large One Machine Problems, GSIA, Carnegie Mellon University.

MURTY, K. G. (1995), Operations Research: Deterministic Optimization Models,


Prentice Hall, Englewood Cliffs, New Jersey.

NEMHAUSER, G. e WOLSEY, L. (1988), Integer and Combinatorial Optimization,


Wiley & Sons, New York.

PANWALKER, S.S. (1990), Scheduling Rules Revisited, Proceedings of the Joint


National Meeting of Scheduling.

PANWALKER, S.S. e ISKANDER, W. (1977), A Survey of Scheduling Rules,


Operations Research, 25:45-61.

PINEDO, M., (1995), Scheduling: Theory, Algorithms, and Systems, Prentice Hall.

PINEDO, M., (2001), Scheduling: Theory, Algorithms, and Systems, second edition,
Prentice Hallhttp://www.stern.nyu.edu/om/pinedo/ book1.html.

PINEDO, M. e X. CHAO, (1999), Operations Scheduling with Applications in


Manufacturing and Services, McGraw-Hill ISBN:0-07-289779-1.
http://www.stern.nyu.edu/om/pinedo/ book2.html).

POTTS, C. N. e VAN WASSENHOVE, L. N. (1991), Single Machine Tardiness


Sequencing Heuristics, IIE Trans. 23:346-354.

POTTS, C. N. e VAN WASSENHOVE, L. N., (1992). Single Machine Scheduling to


Minimize Total Late Work, Operations Research, 40:586-595.
Bibliografia
161

PUCHINGER, J. e RAIDL, G. R., (2004). Models and algorithms for three-stage two-
dimensional bin packing, Technical Report TR 186-1-04-04, Institute of Computer
Graphics and Algorithms, Vienna University of Technology, submitted to the European
Journal of Operational Research.

RAGATZ, G. L., (1993), A Branch-and-Bound Method for Minimum Tardiness


Sequencing on a Single processor with Sequence Dependent Setup Times,
Proceedings: Twenty-fourth Annual Meeting of the Decision Sciences Institute, 1375-
1377.

ROTHKOPF, M. H. (1966), Scheduling Independent Tasks on Parallel Processors,


Management Science, 12:437-447.

SAHNI, S. K. (1976), Algorithms for Scheduling Independent Tasks, Journal of the


Association for Computing Machinery, 23:116-127.

SARIN, S. C., AHN S. e BISHOP, A. B. (1988), An Improved Scheme for the Branch-
and-Bound Procedure of Scheduling n Jobs on m Parallel Machines to Minimize the
Total Weighted Flowtime, International Journal of Production Research, 26:1183-
1191.

SAVELSBERGH, M., (1997), A branch-and-price algorithm for the generalized


assignment problem, Operations Research, 45(6):831-841.

SMITH, W. E. (1956), Various Optimizers for Single-Stage Production, Naval


Research Logistics Quarterly, 3:325-333.

SOUMIS, F. (1997), Decomposition and Column Generation, Annotated


Bibliographies in Combinatorial Optimization. Eds. M. DellAmico, F. Maffioli e S.
Martello, John Wiley & Sons, 8:115-126.

TAN, K. C. e NARASINHAM, R. (1997), Minimizing Tardiness on a Single processor


with Sequence Dependent Setup Times: a Simulated Annealing Approach, Omega,
6:619-634.
Bibliografia
162

TAN, K. C., NARASINHAM, R., RUBIN P. A. e RAGATZ, G. L. (2000), A


Comparison of Four Methods for Minimizing Total Tardiness on a Single processor
with Sequence Dependent Setup Times: a Simulated Annealing Approach, Omega,
28:313-326.

VALRIO DE CARVALHO, J. M., (1999), Exact solution of bin-packing problems


using column generation and branch-and-bound. Ann. Oper. Res., 86:629-659.

VALRIO DE CARVALHO, J. M., (2004), Using extra dual cuts to accelerate column
generation, INFORMS J. Comput., (in press).

VANCE, P., (1998), Branch-and-price algorithms for the one-dimensional cutting


stock problem. Comp. Optim. Appl., 9(3):211-228.

VAN DE VELDE, S. L. (1991), Machine Scheduling and Lagrangean Relaxation,


PhD Thesis, Technische Universiteit Eindhoven, Amsterdam.

WEBSTER, S. (1992), New Bounds for the Identical Parallel Processor Weighted Flow
Time Problem, Management Science, 38:124-136.

WEBSTER, S. (1993), A Priority Rule for Minimizing Weighted Flow Time in a Class
of Parallel Machine Scheduling Problems, European Journal of Operational Research,
70:327-334.

WEBSTER, S. (1995), Weighted Flow Time Bounds for Scheduling Identical


Processors, European Journal of Operational Research, 80:103-111.

WILKERSON, L. J. e IRWIN, J. D. (1971), An Improved Algorithm for Scheduling


Independent Tasks, AIIE Transactions, 3:239-245.
Anexo A. Programa PMPNI

O fluxograma do programa PMPNI apresentado nas duas Figuras seguintes.

163
Anexo A
164

PMPNI

Incio

Inicializao do
CPLEX

Criar PPR no
CPLEX

Gerar/Ler
Instncia de
Teste Calcular Valor do
Fluxo nos Arcos/Maq
Heurstica
Soluo Inicial
Seleccionar Arco/
Maq para Partio
ZINC = ZHEUR Optimizar
XINC = XHEUR PPR
(CPLEX)

Inserir Colunas Ramificao


no PPR
Compatibilizar PPR
com Subproblema

Gerao de Seleccionar Nodo da


Colunas rvore de Pesquisa
a Explorar
Adicionar
Restries de
Partio (ramo) ao
Calcular lower Remover Nodo Subproblema
bound para ZPP Raz da da rvore de
LB = Z PPR rvore
?
Pesquisa

Remover
Restries de
No Partio do
Z INC=LB No Subproblema
Znodo < ZINC
Sim ?
Sim

Escrever Resultados
e Estatsticas

Fim

Figura A 1 Fluxograma do programa PMPNI


Anexo A
165

Subrotina de Gerao de Colunas Subrotina de Ramificao

Incio Incio

Optimizar Adicionar Restrio de


PPR partio ao
(CPLEX) Subproblema impondo a
utilizao do arco/mq.

No
Soluo
Inteira? Compatibilizar PPR com
Subproblema
Sim

ZINC = ZPPR
X INC = XPPR Gerao de
Colunas

Sim
ZINC = LB No
? Z PPR < Z INC
No ?
Sim
Subproblema
(gerar novas
colunas)
Adicionar Nodo
rvore de Pesquisa

No Z nodo = Z PPR
Colunas
Atractivas?
Remover Restrio de
Sim partio do
Subproblema
Inserir Colunas
no PPR

Compatibilizar PPR com


Subproblema

Return

No
Utilizao do arco/
maq?

Sim

Adicionar Restrio de
partio ao Subproblema
impondo a no utilizao
do arco/mq.

Return

Figura A 2 Fluxograma do programa PMPNI (Subrotinas)


Anexo B. Biblioteca de Funes CPLEX

O software CPLEX 6.0 consiste num conjunto de funes (callable library)


programadas na linguagem C e numa interface que permite ao utilizador introduzir um
modelo de programao linear, inteira, mista ou programao convexa quadrtica e
optimiz-lo, obtendo resultados como a soluo ptima, as variveis duais e resultados
relativos a anlise de sensibilidade. ainda possvel modificar o problema, inserindo
novas variveis, restries ou alterando coeficientes.

Como representado esquematicamente na Figura que se segue, o programa pode ser


utilizado de duas formas: atravs da referida interface ou criando um programa que se
sirva da biblioteca de funes.

166
Anexo B
167

Programa do
utilizador

Utilizador
Interface CPLEX
Biblioteca de funes
CPLEX

CPLEX

Ambiente CPLEX:
estrutura de dados,
etc.

Figura B 1 Utilizao do CPLEX

As funes da biblioteca CPLEX podem ser divididas em seis grupos, cada um com os
seguintes propsitos:

- Criao e optimizao do problema, obteno de resultados;

- Entrada e sada de dados;

- Modificao do problema;

- Acesso ao problema e aos resultados;

- Acesso e alterao dos parmetros de controlo;

- Escrita e leitura de ficheiros.


Anexo B
168

Um programa que obtenha a soluo ptima de um modelo de programao linear, com


base na biblioteca de funes CPLEX, dever incluir os seguintes passos:

1. Inicializar o ambiente CPLEX invocando a funo CPXopenCPLEXdevelop;

2. Construir a estrutura de dados que corresponda ao modelo;

3. Criar o problema no ambiente CPLEX invocando a funo CPXcreateprob;

4. Copiar a estrutura de dados para o ambiente CPLEX invocando a funo


CPXcopylp;

5. Optimizar o problema invocando a funo CPXprimopt;

6. Ler os resultados invocando a funo CPXsolution

7. Libertar o problema invocando a funo CPXfreeprob;

8. Finalizar o ambiente CPLEX invocando a funo CPXcloseCPLEX.

Algumas funes so referidas a ttulo exemplificativo, podendo invocar-se funes


diferentes. Por exemplo, se se pretender que a optimizao seja feita com base no
algoritmo simplex dual a funo invocada no passo 5 deveria ser CPXdualopt.

Como se pode observar no esquema inicialmente apresentado, a estrutura de dados


CPLEX (que inclui no s a representao do problema como os resultados relativos
sua optimizao) apenas pode ser acedida atravs das funes da biblioteca CPLEX. H
assim a necessidade de o utilizador manter uma estrutura de dados para comunicar com
o ambiente CPLEX.

Se ocorrer um erro, a funo retorna um valor inteiro diferente de zero, podendo o erro
ser identificado com a funo CPXgeterrorstring ou atravs da documentao do
software. A varivel env corresponde a um apontador para o ambiente CPLEX e a
varivel lp corresponde a um apontador para o problema criado.