• Nenhum resultado encontrado

Janniele Aparecida Soares Universidade Federal de Ouro Preto

N/A
N/A
Protected

Academic year: 2019

Share "Janniele Aparecida Soares Universidade Federal de Ouro Preto"

Copied!
115
0
0

Texto

(1)

Heur´ısticas Baseadas em Programa¸

ao

Inteira para o Problema de

Escalonamento de M´

ultiplos Projetos

com M´

ultiplos Modos e Restri¸

oes de

Recursos

Janniele Aparecida Soares

Universidade Federal de Ouro Preto

UNIVERSIDADE FEDERAL DE OURO PRETO

Orientador: Haroldo Gambini Santos

Coorientador: T´ulio ˆAngelo Machado Toffolo

Disserta¸c˜ao submetida ao Instituto de Ciˆencias Exatas e Biol´ogicas da Universidade Federal de Ouro Preto para obten¸c˜ao do t´ıtulo de Mestre em Ciˆencia da Computa¸c˜ao

(2)
(3)

Heur´ısticas Baseadas em Programa¸

ao

Inteira para o Problema de

Escalonamento de M´

ultiplos Projetos

com M´

ultiplos Modos e Restri¸

oes de

Recursos

Janniele Aparecida Soares

Universidade Federal de Ouro Preto

Orientador: Haroldo Gambini Santos

(4)

Catalogação: sisbin@sisbin.ufop.br S676h Soares, Janniele Aparecida.

Heurísticas baseadas em programação inteira para o problema de escalonamento de múltiplos projetos com múltiplos modos e restrições de recursos [manuscrito] / Janniele Aparecida Soares – 2013.

113 f.: il. graf.; tab.

Orientador: Prof. Dr. Haroldo Gambini Santos.

Coorientador: Prof. Dr. Túlio Ângelo Machado Toffolo.

Dissertação (Mestrado) - Universidade Federal de Ouro Preto. Instituto de Ciências Exatas e Biológicas. Departamento de Computação. Programa de Pós-graduação em Ciência da Computação.

Área de concentração:Ciência da Computação.

1. Problemas conjugados (Sistemas complexos) - Teses. 2. Programação inteira - Teses. 3. Programação heurística - Teses. I. Santos, Haroldo Gambini. II. Toffolo, Túlio Ângelo Machado. Universidade Federal de Ouro

Preto. III. Título.

(5)
(6)
(7)

Dedico este trabalho a Deus e aos meus pais Jos´e Geraldo e Rosˆangela, pessoas de suma importˆancia em minha vida.

(8)
(9)

Heur´ısticas Baseadas em Programa¸

ao Inteira para o

Problema de Escalonamento de M´

ultiplos Projetos com

ultiplos Modos e Restri¸

oes de Recursos

Resumo

O Problema de Escalonamento de Projeto,Project Scheduling Problem (PSP), ´e tema de diversas pesquisas em ciˆencias da computa¸c˜ao, matem´atica e pesquisa operacional de-vido a sua dificuldade de resolu¸c˜ao e importˆancia pr´atica. O PSP representa problemas de diversas ´areas, tais como engenharia desoftware, engenharia civil, arquitetura de pro-cessadores, entre outras. Neste trabalho, ´e apresentada a vers˜ao abrangente do problema conhecida como Escalonamento de M´ultiplos Projetos com M´ultiplos Modos e Restri¸c˜ao de Recursos. A solu¸c˜ao deste problema consiste basicamente em um cronograma de execu¸c˜ao das tarefas dos diversos projetos, de forma que as aloca¸c˜oes de recursos re-nov´aveis e n˜ao rere-nov´aveis n˜ao extrapolem os limites estabelecidos. Para isto, deve-se elencar um modo de execu¸c˜ao para cada tarefa, visto que sua dura¸c˜ao e a quantidade de recursos consumidos variam de acordo com o modo selecionado. Por fim, o cronograma deve tamb´em levar em conta restri¸c˜oes de precedˆencia entre as atividades. No presente trabalho s˜ao propostas heur´ısticas de programa¸c˜ao inteira para a resolu¸c˜ao de um amplo conjunto de instˆancias disponibilizadas na competi¸c˜ao internacional MISTA2013

-Multidisciplinary International Scheduling Conference. O solver desenvolvido foi um dos

vencedores da competi¸c˜ao, sendo capaz de encontrar solu¸c˜oes vi´aveis e competitivas para todas as instˆancias.

(10)
(11)

Heuristics Based on Integer Programming for the

Multi-Mode Resources Constrained Multi-Project

Scheduling Problem

Abstract

The Project Scheduling Problem (PSP) is subject of several studies in computing sci-ence, mathematics and operations research, given its hardness to solve and practical importance. The PSP is present in many areas such as software engineering, construc-tion engineering, processor architecture, among others. This work presents an extended version of the problem known as Multi-Mode Resources Constrained Multi-Project Sche-duling Problem. A solution for this problem basically consists of a schedule of jobs from various projects, so that the job allocations does not exceed the stipulated limits of renewable and non-renewable resources. To accomplish this, a set of execution modes for the jobs must be chosen, as its duration and amount of needed resources varies de-pending on the selected mode. Finally, the schedule must also consider the precedence constraints between jobs. This work proposes heuristics methods based on integer pro-gramming to solve a wide range of instances made available in international MISTA2013 challenge - Multidisciplinary International Scheduling Conference. The developed solver was one of the winners of the competition, being able to find feasible and competitive solutions for all instances.

(12)
(13)

Declara¸

ao

Esta disserta¸c˜ao ´e resultado de meu pr´oprio trabalho, exceto onde referˆencia expl´ıcita ´e feita ao trabalho de outros, e n˜ao foi submetida para outra qualifica¸c˜ao nesta nem em outra universidade.

Janniele Aparecida Soares

(14)
(15)

Agradecimentos

Primeiramente, eu agrade¸co a Deus pelas vit´orias que obtive, por renovar minhas for¸cas e me dar prote¸c˜ao em cada etapa.

Agrade¸co principalmente ao meu orientador Haroldo Gambini Santos e ainda ao meu coorientador T´ulio Toffolo pelas valiosas contribui¸c˜oes para o presente trabalho, pela oportunidade concedida, pelas orienta¸c˜oes e por terem acreditado em mim. Sou grata tamb´em aos professores Anderson Ferreira, Gustavo Peixoto e, novamente, Haroldo Santos pelo conhecimento transmitido atrav´es das disciplinas ministradas.

Por fim, agrade¸co `a minha fam´ılia, em especial `a minha m˜ae Rosˆangela Soares Pessoa, ao meu pai Jos´e Geraldo Soares, ao meu namorado ´Italo Campos Ara´ujo e ao meu amigo Arthur de Assis, pessoas que sempre acreditaram em mim e que me deram for¸cas para seguir em frente durante essa caminhada.

Agrade¸co a todos que me ajudaram direta ou indiretamente neste trabalho.

(16)
(17)

Sum´

ario

Lista de Figuras xix

Lista de Tabelas xxi

Lista de Algoritmos xxiii

Lista de Abreviaturas 1

1 Introdu¸c˜ao 3

1.1 Justificativa . . . 4

1.2 Objetivos . . . 5

1.2.1 Objetivo Geral . . . 5

1.2.2 Objetivos Espec´ıficos . . . 5

2 Problema de Escalonamento de Projetos 7 2.1 Tipos de Problemas . . . 7

2.2 Fun¸c˜oes Objetivo . . . 9

2.3 Restri¸c˜oes . . . 10

2.4 MISTA2013 Challenge . . . 10

2.4.1 Participantes . . . 11

2.4.2 Resultados . . . 11

(18)

3 Revis˜ao Bibliogr´afica 15

3.1 O M´etodo do Caminho Cr´ıtico . . . 15

3.1.1 Constru¸c˜ao da Programa¸c˜ao Temporal . . . 17

3.2 Tipos de Programa¸c˜ao . . . 18

3.3 Esquema de Programa¸c˜ao em S´erie . . . 22

3.4 Regras de Prioridades . . . 23

3.5 Abordagens Vencedoras da Competi¸c˜ao MISTA2013 . . . 24

3.6 Formula¸c˜oes de Programa¸c˜ao Inteira . . . 27

3.7 M´etodos Heur´ısticos . . . 32

4 Modelos de Programa¸c˜ao Inteira 35 4.1 Dados de Entrada . . . 35

4.2 Modelos Orientado a Eventos e Discreto no Tempo . . . 36

5 Abordagem Proposta 41 5.1 Sele¸c˜ao do Conjunto de Modos . . . 42

5.1.1 C´alculo de Caminhos Priorit´arios . . . 43

5.1.2 Modelo de Sele¸c˜ao do Conjunto de Modos . . . 44

5.2 Heur´ıstica Construtiva . . . 46

5.2.1 Modelo Construtivo . . . 47

5.3 Heur´ıstica H´ıbrida de Busca Local . . . 50

5.3.1 Forward-Backward Improvement . . . 51

5.3.2 Modelo de Perturba¸c˜ao de Modos . . . 53

5.3.3 Perturba¸c˜ao e Altera¸c˜ao de Modo . . . 54

5.3.4 Gera¸c˜ao de Vizinhos . . . 55

5.3.5 Algoritmo H´ıbrido de Busca Local . . . 56

(19)

6 Experimentos Computacionais 59

6.1 Caracter´ısticas das Instˆancias . . . 60 6.2 Experimentos com a Heur´ıstica H´ıbrida Proposta . . . 63 6.3 Desempenho de Formula¸c˜oes de Programa¸c˜ao Inteira com Resolvedor

In-dependente . . . 66 6.4 Estruturas de Vizinhan¸cas . . . 69

7 Considera¸c˜oes Finais 73

7.1 Trabalhos Futuros . . . 73

Referˆencias Bibliogr´aficas 75

A Apˆendices 79

A.1 Publica¸c˜oes . . . 79 A.2 Formatos de Arquivos . . . 79 A.3 Evolu¸c˜ao dos Limites Inferiores e Superiores no Resolvedor de Programa¸c˜ao

Inteira . . . 81

(20)
(21)

Lista de Figuras

2.1 Representa¸c˜ao por Grafo da Instˆancia A-1 . . . 8

2.2 Solu¸c˜ao da instˆancia A-1 representada pelo Gr´afico de Gantt . . . 9

3.1 Caminho Cr´ıtico . . . 16

3.2 Programa¸c˜ao Temporal . . . 19

3.3 Exemplo para Ilustrar Procedimentos Heur´ısticos. Adaptada de (Demeu-lemeester e Herroelen, 2002) . . . 19

3.4 Programa¸c˜ao Fact´ıvel. (Demeulemeester e Herroelen, 2002) . . . 20

3.5 Programa¸c˜ao Semi-ativa. (Demeulemeester e Herroelen, 2002) . . . 20

3.6 Programa¸c˜ao Ativa. (Demeulemeester e Herroelen, 2002) . . . 21

3.7 Programa¸c˜ao Sem Atraso. (Demeulemeester e Herroelen, 2002) . . . 21

3.8 Programa¸c˜ao Esquema de Gera¸c˜ao em S´erie, Adaptada de (Demeuleme-ester e Herroelen, 2002) . . . 23

5.1 Composi¸c˜ao da abordagem . . . 42

5.2 Composi¸c˜ao da Busca Local . . . 51

5.3 Exemplo para Ilustrar o M´etodo Forward-Backward. . . 51

5.4 Exemplo do passo Forward aplicado `a Figura 5.3. . . 52

5.5 Exemplo do passo Backward aplicado `a Figura 5.3. . . 52

5.6 Movimento de Troca . . . 56

(22)

5.7 Movimento de Deslocamento para Frente . . . 56 5.8 Movimento de Deslocamento para Tr´as . . . 56 A.1 Exemplo do formato do arquivo de solu¸c˜ao . . . 80 A.2 Exemplo do formato do arquivo de Multi-Projeto . . . 80 A.3 Exemplo do formato do arquivo de Mono-Projeto . . . 82 A.4 Convergˆencia da Instˆancia A-4 . . . 83 A.5 Convergˆencia da Instˆancia A-5 . . . 83 A.6 Convergˆencia da Instˆancia A-6 . . . 84 A.7 Convergˆencia da Instˆancia A-7 . . . 84 A.8 Convergˆencia da Instˆancia A-8 . . . 85 A.9 Convergˆencia da Instˆancia A-9 . . . 85 A.10 Convergˆencia da Instˆancia A-10 . . . 86 A.11 Convergˆencia da Instˆancia B-1 . . . 86 A.12 Convergˆencia da Instˆancia B-2 . . . 87 A.13 Representa¸c˜ao Gr´afica da Solu¸c˜ao da Instˆancia B-3 . . . 87

(23)

Lista de Tabelas

2.1 Participantes da MISTA2013 Challenge . . . 12 2.2 Classifica¸c˜ao da fase de qualifica¸c˜ao . . . 13 2.3 Classifica¸c˜ao da fase final . . . 13 6.1 Caracter´ısticas das instˆancias da primeira e segunda etapa . . . 61 6.2 Caracter´ısticas das instˆancias da fase final . . . 62 6.3 Melhores resultados do m´etodo . . . 64 6.4 Resultados de 10 execu¸c˜oes com tempo limite de 15 minutos cada uma . 65 6.5 Primeiro conjunto de experimentos formula¸c˜ao adaptada Kolisch . . . 67 6.6 Segundo conjunto de experimentos formula¸c˜ao adaptada Kolisch . . . 68 6.7 Percentual de melhora do melhor vizinho entre diferentes tamanhos de

vizinhan¸cas - Troca . . . 70 6.8 Percentual de melhora do melhor vizinho entre diferentes tamanhos de

vizinhan¸cas - Deslocamento para Tr´as . . . 71 6.9 Percentual de melhora do melhor vizinho entre diferentes tamanhos de

vizinhan¸cas - Deslocamento para Frente . . . 72

(24)
(25)

Lista de Algoritmos

3.1 C´alculo de Dados do Caminho Cr´ıtico . . . 17 5.1 Caminhos . . . 43 5.2 Calcula Distˆancias . . . 44 5.3 Heur´ıstica Construtiva . . . 47 5.4 Calcula Distˆancias com Base no Modo M´ınimo . . . 50 5.5 Heur´ıstica H´ıbrida de Busca Local . . . 57

(26)
(27)

“You’ve got to find what you love.”

— Steve Jobs

(28)
(29)

Nomenclatura

AG Algoritmos Gen´eticos

CPM Critical Path Method

EFT Earliest Finish Time

EST Earliest Start Time

FBI Forward-Backward Improvement

GOAL Grupo de Otimiza¸c˜ao e Algoritmos

LST Latest Start Time

LFT Latest Finish Time

MIP Mixed Integer Program (Programa¸c˜ao Inteira Mista)

MISTA Multidisciplinary International Scheduling Conference

MMRCPSP Multi-Mode Resource-Constrained Project Scheduling Problem

MMRCMPSP Multi-Mode Resource-Constrained Multi-Project Scheduling Pro-blem

PI Programa¸c˜ao Inteira

PSP Project Scheduling Problem

PSPLIB Project Scheduling Problem Library

RCPSP Resource-Constrained Project Scheduling Problem

SA Simulated Annealing

SGS Schedule Generation Scheme

TPD Total Project Delay

TMS Total Makespan

(30)
(31)

Cap´ıtulo 1

Introdu¸

ao

No contexto atual da sociedade e no ambiente competitivo, ´e fundamental oferecer pro-dutos e servi¸cos de alta qualidade levando em considera¸c˜ao tempo e or¸camento vi´aveis. Garantir a boa utiliza¸c˜ao de recursos e o cumprimento de prazos requer um bom plane-jamento para realizar as atividades que originam os produtos e servi¸cos.

Este trabalho aborda o Problema de Escalonamento de Projetos, ou PSP (Project

Scheduling Problem). Um projeto ´e composto por um conjunto de atividades, onde cada

atividade possui rela¸c˜oes de precedˆencia e requer tempo e recursos para ser executada. Uma solu¸c˜ao para o problema consiste em uma programa¸c˜ao das atividades de forma que nenhuma infrinja suas rela¸c˜oes de precedˆencia e n˜ao extrapole as quantidades de recursos dispon´ıveis. Cada atividade pode possuir um ou mais modos de execu¸c˜ao, com diferentes dura¸c˜oes e consumo de recursos em cada modo.

Algumas varia¸c˜oes do PSP consideram ainda algumas quest˜oes que v˜ao al´em da dependˆencia entre atividades e m´ultiplos modos de execu¸c˜ao de cada atividade. S˜ao elas: a utiliza¸c˜ao de recursos renov´aveis e n˜ao-renov´aveis e o compartilhamento de al-guns recursos renov´aveis entre diferentes projetos. Neste trabalho, ´e abordada uma vers˜ao abrangente do problema conhecida como Escalonamento de M´ultiplos Projetos com M´ultiplos Modos e Restri¸c˜ao de Recursos.

Um modelo gen´erico para descrever um PSP composto por diversos projetos e res-tri¸c˜oes foi proposto pela MISTA2013 (Multidisciplinary International Scheduling

Con-ference, 2013) tornando-se desafiador para a comunidade acadˆemica.

M´etodos baseados em programa¸c˜ao inteira j´a foram propostos para o PSP, no

(32)

4 Introdu¸c˜ao

tanto, esses m´etodos s˜ao capazes de resolver apenas um subconjunto bastante restrito de instˆancias em um tempo vi´avel. Tendo em vista estas considera¸c˜oes, o conte´udo deste trabalho inclui, al´em da apresenta¸c˜ao de conceitos fundamentais e de formula¸c˜oes, m´etodos heur´ısticos. S˜ao apresentadas heur´ısticas construtivas para a gera¸c˜ao de uma solu¸c˜ao inicial e heur´ısticas de busca local baseadas em programa¸c˜ao inteira (PI) para o Problema de Escalonamento de M´ultiplos Projetos com M´ultiplos Modos e Restri¸c˜ao de Recursos (MMRCMPSP - Multi-Mode Resource Constrained Multi-Project Scheduling

Problem).

As t´ecnicas apresentadas consideram instˆancias espec´ıficas do problema mono-projeto que est˜ao dispon´ıvel no site da PSPLIB1(Project Scheduling Problem Library) e instˆancias do problema com m´ultiplos projetos dispon´ıveis no site da competi¸c˜ao MISTA20132.

Assim qualquer instˆancia especificada neste formato pode ser trabalhada pelas t´ecnicas apresentadas.

A organiza¸c˜ao desta disserta¸c˜ao ´e apresentada a seguir. Nas subse¸c˜oes seguintes s˜ao apresentadas as justificativas e os objetivos. A defini¸c˜ao do problema ´e apresentada no Cap´ıtulo 2. No Cap´ıtulo 3 ´e apresentada a revis˜ao bibliogr´afica. Nos cap´ıtulos 4 e 5 s˜ao apresentados, respectivamente, os modelos de programa¸c˜ao inteira e as metodologias heur´ısticas. O Cap´ıtulo 6 relata os experimentos e resultados. Por fim, no Cap´ıtulo 7 s˜ao apresentadas as conclus˜oes e trabalhos futuros.

1.1

Justificativa

O MMRCMPSP pertence `a classe de problemas NP-Dif´ıceis (Demeulemeester e Herro-elen, 2002) e o progresso na resolu¸c˜ao de tais problemas ´e objeto de estudo de in´umeras pesquisas em computa¸c˜ao, matem´atica aplicada e pesquisa operacional. ´E importante ressaltar que a gera¸c˜ao da solu¸c˜ao inicial para esse problema tamb´em ´e NP-Dif´ıcil, de-vido ao fato de que o uso excessivo dos recursos n˜ao-renov´aveis podem facilmente tornar a solu¸c˜ao infact´ıvel.

M´etodos exatos s˜ao limitados para resolver tais problemas, por isso ´e proposto heur´ısticas que utilizam programa¸c˜ao inteira para resolver subproblemas em um tempo satisfat´orio.

1http://www.om-db.wi.tum.de/psplib/, acessado em Julho de 2013.

(33)

Introdu¸c˜ao 5

Esse problema ´e encontrado em diversas ´areas, tais como gest˜ao de projetos em empresas de tecnologia da informa¸c˜ao, agendamento de instru¸c˜oes para arquitetura de processadores, constru¸c˜ao civil, programa¸c˜ao de produ¸c˜ao de lingotes de rolamento, mon-tagem de loja, entre outras, sendo assim de suma importˆancia pr´atica (Demeulemeester e Herroelen, 2002).

Gra¸cas aos avan¸cos nos resolvedores, ´e tendˆencia que m´etodos de programa¸c˜ao inteira sejam utilizados para auxiliar na resolu¸c˜ao desses problemas.

1.2

Objetivos

1.2.1

Objetivo Geral

O principal objetivo desse trabalho ´e propor heur´ısticas baseadas em programa¸c˜ao in-teira para o Problema de Escalonamento de M´ultiplos Projetos com M´ultiplos Modos e Restri¸c˜ao de Recursos, a fim de encontrar solu¸c˜oes fact´ıveis que minimizem o tempo de execu¸c˜ao dos projetos.

1.2.2

Objetivos Espec´ıficos

Os objetivos espec´ıficos desse trabalho est˜ao elencados a seguir:

• analisar trabalhos da literatura;

• analisar modelos de programa¸c˜ao inteira;

• propor novas formula¸c˜oes matem´aticas;

• desenvolver heur´ısticas;

• aplicar as heur´ısticas desenvolvidas nas instˆancias disponibilizadas pela competi¸c˜ao

MISTA2013;

• aplicar testes e experimentos;

(34)
(35)

Cap´ıtulo 2

Problema de Escalonamento de

Projetos

De forma abrangente, pode-se dizer que para realizar o escalonamento ou programa¸c˜ao do projeto cada atividade deve ser alocada em um determinado instante de tempo e modo. O formato utilizado pela PSPLIB permite que uma grande quantidade de problemas reais seja representada. Os diversos problemas possuem um determinado n´umero de atividades, um horizonte de tempo, bem como a quantidade de modos que cada atividade pode ser executada e rela¸c˜oes de precedˆencia bem definidas. Nas instˆancias ainda s˜ao disponibilizadas as informa¸c˜oes detalhadas sobre recursos dispon´ıveis.

2.1

Tipos de Problemas

Alguns tipos de problemas s˜ao apresentados na literatura — na PSPLIB existem instˆan-cias dispon´ıveis para cada tipo de problema. Kolisch e Sprecher (1996) definem alguns tipos de PSP. S˜ao eles:

• RCPSP (Resource-Constrained Project Scheduling Problem): cada atividade do

projeto tem de ser realizada de uma forma prescrita usando os recursos fornecidos — as atividades pertencentes ao projeto possuem apenas um modo de execu¸c˜ao;

• MMRCPSP (Multi-Mode Resource-Constrained Project Scheduling Problem): cada

atividade possui v´arios modos de execu¸c˜ao e pode ser alocada em apenas um deles — estes modos possuem diferentes dura¸c˜oes e quantidades de recursos necess´arios

(36)

8 Problema de Escalonamento de Projetos

para a execu¸c˜ao da atividade;

• MMRCMPSP (Multi-Mode Resource-Constrained Multi-Project Scheduling

Pro-blem): ´e derivado doMMRCPSP, v´arios projetos s˜ao programados podendo com-partilhar recursos — o mesmo foi definido na competi¸c˜ao MISTA2013 pelo grupo de pesquisa CODeS da KAHO (Engineering Technology, KU Leuven) com o obje-tivo de fornecer um modelo gen´erico capaz de atender diversos problemas.

Na Figura 2.1 ´e apresentado um grafo gerado a partir de uma instˆancia de m´ultiplos projetos. Nesta figura, as atividades s˜ao representadas pelos n´os e as rela¸c˜oes de precedˆencia pelas arcos de conex˜ao. Arcos paralelas indicam os diferentes modos de execu¸c˜ao de uma atividade e o custo indica o tempo de execu¸c˜ao de uma atividade neste modo. 0 1 0 2 0 3 0 11 12 13 0 14 0 15 0 23 4

1 5 6

10

1

5 6

8

9 9 4

5

1 8 10

6

1 8 10

3 7 10

3 3 4 3 6 8 2 2 10

9

2 2 10

5 6 10

7

5 6 10

2 7 10 1 3 8 1 3 8

21

1 1 8 1 3 6

16

1 4 9

4 6 10

17

7 8 9

18

7 8 9

19

7 8 9

22

1 5 9 5 6 9

20

5 6 9 5

6 9 5 6 9 5 6 9

6 9 9 1 4 4

Figura 2.1: Representa¸c˜ao por Grafo da Instˆancia A-1

(37)

Problema de Escalonamento de Projetos 9 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Figura 2.2: Solu¸c˜ao da instˆancia A-1 representada pelo Gr´afico de Gantt

2.2

Fun¸

oes Objetivo

Em geral, a fun¸c˜ao objetivo do problema procura minimizar um dos itens a seguir:

• TPD (Total Project Delay): ´e a soma dos atrasos dos projetos em rela¸c˜ao `a dura¸c˜ao do caminho cr´ıtico (dura¸c˜ao m´ınima do projeto se n˜ao houvessem restri¸c˜oes de recursos) – as equa¸c˜oes (2.1) e (2.2), representam respectivamente o atraso dos projetos e a soma dos mesmos;

P Dj =M Sj−CP Dj (2.1)

T P D=

n

X

j=1

P Dj (2.2)

• TMS (Total Makespan): ´e o tempo de t´ermino do ´ultimo projeto –makespanindica

(38)

10 Problema de Escalonamento de Projetos

2.3

Restri¸

oes

O PSP envolve a atribui¸c˜ao de atividades em determinados instantes de tempo em um horizonte, levando em considera¸c˜ao algumas restri¸c˜oes que devem ser satisfeitas obrigatoriamente.

No problema abordado neste trabalho s˜ao consideradas as seguintes restri¸c˜oes:

• restri¸c˜ao de precedˆencia: cada atividade j n˜ao pode iniciar at´e que todas as ativi-dades antecessoras a ela tenham sido finalizadas;

• restri¸c˜ao de recursos: deve-se respeitar os limites de recursos. Os recursos s˜ao classificados da seguinte forma:

• recursos renov´aveis (renewable resources): as quantidades dispon´ıveis s˜ao renova-das de per´ıodo em per´ıodo (hora, dia, semana, mˆes), a disponibilidade por per´ıodo ´e constante - exemplo: m˜ao de obra, m´aquinas;

• recursos n˜ao-renov´aveis (nonrenewable resources): o consumo dos recursos n˜ao-renov´aveis ´e limitado para todo o projeto - exemplo: dinheiro, energia e mat´eria prima;

• recursos globais (global resources): no caso do problema com m´ultiplos projetos, s˜ao considerados ainda recursos globais, que s˜ao renov´aveis e compartilhados entre todos os projetos.

2.4

MISTA2013 Challenge

Para a 6a Conferˆencia Internacional Multidisciplinar de Scheduling (MISTA2013), o

grupo de pesquisa CODeS da KAHO (Tecnologia Engenharia, KU Leuven) organizou um desafio com o objetivo de estimular a pesquisa no problema.

(39)

Problema de Escalonamento de Projetos 11

A primeira etapa representa a fase de qualifica¸c˜ao, onde as equipes registradas apre-sentaram solu¸c˜oes para um primeiro conjunto de instˆancias. Nessa etapa, das vinte e uma equipes registradas, somente dezesseis foram qualificadas para prosseguir.

Na segunda etapa, todas as equipes qualificadas tiveram a oportunidade de melhorar os algoritmos para serem aplicados a um segundo conjunto de instˆancias. Das dezesseis qualificadas somente nove foram para fase final.

Os algoritmos finais enviados na segunda etapa foram avaliados pelos organizadores sobre um terceiro conjunto de instˆancias secretas para determinar o vencedor.

Os vencedores do desafio foram anunciados na conferˆencia realizada na cidade de Ghent, B´elgica, entre os dias 27 e 30 de agosto de 2013.

Todas as regras e procedimentos da competi¸c˜ao foram divulgados publicamente no site da competi¸c˜ao1 desde o in´ıcio de modo a promover a lisura da mesma.

2.4.1

Participantes

Vinte e uma equipes participaram da competi¸c˜ao. A seguir s˜ao apresentados na Tabela 2.1 os representantes de cada equipe e o pa´ıs de origem.

2.4.2

Resultados

As tabelas 2.2 e 2.3 apresentam as classifica¸c˜oes das equipes durante a fase de quali-fica¸c˜ao e a fase final. A abordagem proposta no presente trabalho foi a ´unica, entre as vencedoras, que fez uso de programa¸c˜ao inteira.

(40)

12 Problema de Escalonamento de Projetos

Tabela 2.1: Participantes da MISTA2013 Challenge

ID Integrantes Pa´ıs

1 T.A.M. Toffolo, H.G. Santos, M.A.M Carvalho, J.A. Soares Brasil 2 G. De Smet, Luk´aˇsPetrovick´y Belgica 3 N. R. Sabar Mal´asia 4 F. Salassa, F. Della Croce, M. Garraffa It´alia 5 Draˇzen Popovi´c Serbia 6 L. Wang China 7 M. Laskova Russia 8 M.J. Geiger Alemanha 9 S. Smit Holanda 10 P. De Bruecker, J. Van den Bergh B´elgica 11 A. Kheiri, S. Asta, E. Ozcan, D. Karapetyan, A. Parkes Dinamarca 12 J. Espasa, M. Bofill, M. Villaret, J. Suy, M. Palah´ı, P. Pericay,

C. Ans´otegui Espanha 13 L. M. Borba, A. J. Benavides, T. Zubaran, G. Carniel, M. Ritt Brasil 14 H. Bouly, D.-C. Dang, A. Moukrim, H. Xu

15 F. Alonso-Pecina, J.E. Pecero-Sanchez, D. Romer

(41)

Problema de Escalonamento de Projetos 13

Tabela 2.2: Classifica¸c˜ao da fase de qualifica¸c˜ao

Pos. Membros M´edia

1 M.J. Geiger 2,4

2 T.A.M. Toffolo, H.G. Santos, M.A.M Carvalho e J.A. Soares 3

3 C. Artigues e E. H´ebrard 3,1

4 L.M. Borba, A.J. Benavides, T. Zubaran, G. Carniel e M. Ritt 3,5 5 Z. Lu e B. Peng 6,65 6 M. L´opez-Ib´a˜nez, M.-E. Marmion, F. Mascia e T. St¨utzle 7

7 A. Schnell 8

8 F. Alonso-Pecina, J.E. Pecero-Sanchez e D. Romer 9,25

9 A. Bloemen 9,4

10 H. Bouly, D.-C. Dang, A. Moukrim e H. Xu 9,45 11 V. Van Peteghem 10,2 12 G. De Smet e L. Petrovick´y 10,6 13 J. Espasa, M. Bofill, M. Villaret, J. Suy, M. Palah´ı, P. Pericay e C. Ans´otegui 11,8 14 A. Kheiri, S. Asta, E. Ozcan, D. Karapetyan e A. Parkes 12,6 15 P. De Bruecker e J. Van den Bergh 13,35 16 F. Salassa, F. Della Croce e M. Garraffa 15,7

Tabela 2.3: Classifica¸c˜ao da fase final

Pos. Membros M´edia

1 A. Kheiri, S. Asta, E. Ozcan, D. Karapetyan e A. Parkes 1,1

2 M.J. Geiger 2,55

(42)
(43)

Cap´ıtulo 3

Revis˜

ao Bibliogr´

afica

3.1

O M´

etodo do Caminho Cr´ıtico

O m´etodo do caminho cr´ıtico, ou CPM (Critical Path Method), fornece um meio anal´ıtico para programar as atividades (Tavares et al., 1996). O CPM considera dura¸c˜oes deter-min´ısticas das atividades e seu resultado final ´e a constru¸c˜ao da programa¸c˜ao temporal para o projeto. ´E importante ressaltar que o m´etodo n˜ao leva em considera¸c˜ao as res-tri¸c˜oes de recursos.

O caminho cr´ıtico ´e definido a partir de uma ordena¸c˜ao topol´ogica das atividades, no qual as atividades s˜ao alocadas no menor tempo poss´ıvel levando em considera¸c˜ao as rela¸c˜oes de precedˆencia. As atividades s˜ao classificadas como cr´ıticas e n˜ao cr´ıticas. Uma atividade ´e denominada cr´ıtica caso o seu deslocamento em um estante de tempo, em qualquer dire¸c˜ao, interfira diretamente no tempo de conclus˜ao do projeto. As atividades n˜ao cr´ıticas por outro lado podem ser deslocadas sem interferir no t´ermino do projeto.

A partir do caminho cr´ıtico ´e poss´ıvel obter estimativas dos tempos que representam o tempo mais cedo EST (Earliest Start Time) e o mais tarde LST (Latest Start Time)

em que uma atividade pode iniciar e o tempo mais cedo EFT (Earliest Finish Time) e o mais tarde em que uma atividade pode terminar LFT (Latest Finish Time).

Na Figura 3.1 ´e apresentado um grafo G = (N, A), onde N representa o conjunto de atividades j e A representa as rela¸c˜oes de precedˆencia entre as atividades j. Assim tem-se os conjuntosPj de atividades antecessoras imediatas eSj de atividades sucessoras

imediatas aj. dj representa a dura¸c˜ao de cada atividadej.

(44)

16 Revis˜ao Bibliogr´afica

Figura 3.1: Caminho Cr´ıtico

Os passos para c´alculo do caminho cr´ıtico consistem em obter os valores para os dados atrav´es do pseudoc´odigo apresentado no Algoritmo 3.1 (Demeulemeester e Herroelen, 2002). O algoritmo tem como dados de entrada: (i) um conjunto P de predecessores, (ii) um conjunto S de sucessores, (iiI) um conjunto de dura¸c˜oes das atividades e (iv) o n´umero de atividades.

Primeiramente inicia-se os tempos de in´ıcio e t´ermino mais cedo das atividades para 0 (linha 1), o tempo de in´ıcio mais cedo e mais tarde das atividades ser˜ao atualizados (linhas 2-6), posteriormente inicia-se os tempos de in´ıcio e t´ermino mais tarde das ativi-dades para um valor grande (linha 7) e por fim os tempos de in´ıcio e t´ermino mais tarde das atividades ser˜ao atualizados (linhas 9-12).

(45)

Revis˜ao Bibliogr´afica 17

Algoritmo 3.1: C´alculo de Dados do Caminho Cr´ıtico

Entrada: PredecessoresPj, Sucessores Sj, Dura¸c˜aodj, N´umeron

Sa´ıda: EST, EF T, LST,LF T

EST1 =EF T1 = 0;

1

j ←2;

2

enquanto j ≤n fa¸ca

3

ESTj ←max(EF Ti ∀i∈Pj); 4

EF Tj ←ESTj+dj;

5

j ←j+ 1;

6

LSTn =LF Tn =∞;

7

j ←n−1;

8

enquanto j ≥1fa¸ca

9

LF Tj ←min(LSTi∀i∈Sj); 10

LSTj ←LF Tj−dj;

11

j ←j−1;

12

3.1.1

Constru¸

ao da Programa¸

ao Temporal

Atrav´es dos c´alculos obtidos na se¸c˜ao anterior, pode-se reconhecer que para uma ati-vidade j o ESTj representa o tempo mais cedo de in´ıcio e LF Tj representa o tempo

mais tarde de conclus˜ao. Isso significa que (ESTj, LF Tj) determina o intervalo m´aximo

durante o qual a atividade poder´a ser programada sem atrasar o projeto inteiro.

Duas observa¸c˜oes s˜ao necess´arias para obter uma programa¸c˜ao temporal (Demeule-meester e Herroelen, 2002):

• as atividades cr´ıticas devem ser alinhadas uma depois da outra para garantir que o projeto seja conclu´ıdo dentro de sua dura¸c˜ao especificada (por exemplo na Figura 3.1 as atividades cr´ıticas s˜ao representadas por linhas em negrito);

• as atividades n˜ao cr´ıticas possuem intervalos de tempo maiores do que suas res-pectivas dura¸c˜oes, o que permite uma folga para program´a-las dentro de seus in-tervalos de tempo permitidos (por exemplo na Figura 3.1 as atividades n˜ao cr´ıticas s˜ao representadas pelas linhas que n˜ao est˜ao em negrito).

(46)

18 Revis˜ao Bibliogr´afica

Duas folgas conhecidas s˜ao apresentadas na literatura, folga total (T Fj) e folga livre

(F Fj), tal que F Fj ≤T Fj. S˜ao elas (Demeulemeester e Herroelen, 2002):

• folga total (T Fj): define o excesso do intervalo de tempo entre a ocorrˆencia mais

cedo e mais tarde da atividade j;

T Fj =LSTj − ESTj = LF Tj − EF Tj

• folga livre (F Fij): define o atraso permitido para o fim da atividadej, tal que n˜ao

afete o tempo de in´ıcio de suas atividade sucessoras imediatas.

F Fj =min(ESTi) − EF Tj ∀i∈Sj

Para uma atividade n˜ao cr´ıtica j tem-se a regra da bandeira vermelha, conforme (Demeulemeester e Herroelen, 2002):

• se F Fj =T Fj ent˜ao a atividade pode ser programada em qualquer tempo dentro

de seu intervalo (ESTj, LF Tj) sem causar conflito na programa¸c˜ao;

• seF Fj ≤T Fj, ent˜ao a atividade pode ser atrasada por no m´aximoF Fj em rela¸c˜ao

ao seu tempo mais cedo de in´ıcio, sem causar conflito de programa¸c˜ao — qualquer atraso maior que F Fj e menor queT Fj deve ser acoplado com um atraso igual em rela¸c˜ao ao ESTj no tempo de in´ıcio de todas as atividades que se origina a partir

do n´o j.

A Figura 3.2 apresenta a programa¸c˜ao temporal resultante do m´etodo do caminho cr´ıtico. As atividades cr´ıticas para o projeto de rede da Figura 3.1 est˜ao representadas na cor mais forte.

3.2

Tipos de Programa¸

ao

(47)

Revis˜ao Bibliogr´afica 19

Figura 3.2: Programa¸c˜ao Temporal

procedimentos heur´ısticos apresentados nas pr´oximas se¸c˜oes. Para ilustrar os tipos de programa¸c˜ao, ser´a considerado o grafo apresentado na Figura 3.3.

Sobre cada n´o s˜ao indicadas as informa¸c˜oes do tempo de execu¸c˜ao e o consumo de recursos de cada atividade, neste exemplo ´e considerado apenas um modo de execu¸c˜ao. Para conseguir representar todos os tipos de programa¸c˜ao, a dura¸c˜ao da atividade 3 mostrada na figura ´e tracada para 1 instante.

(48)

20 Revis˜ao Bibliogr´afica

• programa¸c˜ao fact´ıvel (feasible schedule): ´e uma programa¸c˜ao vi´avel, que consiste em ser completa e nenhuma das restri¸c˜oes de precedˆencia ou de recursos podem estar violadas — uma programa¸c˜ao ´e completa quando todas as atividades j do projeto s˜ao alocadas em algum tempo de in´ıcio poss´ıvel — uma programa¸c˜ao vi´avel para o problema da Figura 3.3 ´e apresentado na Figura 3.4 obtida pela atribui¸c˜ao dos seguintes hor´arios de in´ıcio para cada atividade: 1→0, 2→0, 3→7, 4→4, 5→0, 6→2, 7→3, 8 →3 e 9→8;

Figura 3.4: Programa¸c˜ao Fact´ıvel. (Demeulemeester e Herroelen, 2002)

• programa¸c˜ao semi-ativa (semi-active schedule): uma programa¸c˜ao semi-ativa ´e ob-tida atrav´es de deslocamentos locais `a esquerda das atividades, at´e que nenhuma outra mudan¸ca local `a esquerda possa ser realizada — o operador de deslocamento local corresponde ao decremento repetitivo unit´ario no tempo inicial de uma ati-vidade — a Figura 3.5 apresenta uma programa¸c˜ao semi-ativa para o problema apresentado na Figura 3.3 obtida pelos deslocamentos locais `a esquerda das ativi-dades 3, 4, 6 e 7;

(49)

Revis˜ao Bibliogr´afica 21

• programa¸c˜ao ativa (active schedule): uma programa¸c˜ao ativa ´e obtida quando n˜ao h´a mais deslocamentos para a esquerda a serem realizados — a redu¸c˜ao do tempo de in´ıcio de uma atividade em pelo menos um instante, de forma a n˜ao violar as restri¸c˜oes de recursos ´e chamada de deslocamento global `a esquerda — a Figura 3.6 apresenta uma programa¸c˜ao ativa para o problema da Figura 3.3 obtida pelo deslocamento global `a esquerda da atividade 3;

Figura 3.6: Programa¸c˜ao Ativa. (Demeulemeester e Herroelen, 2002)

• programa¸c˜ao sem atraso (non-delay schedule): ´e uma programa¸c˜ao fact´ıvel onde n˜ao existe qualquer per´ıodo de tempo tal que uma atividade eleg´ıvel poderia ter sido alocada no in´ıcio do per´ıodo e n˜ao foi — uma atividade ´e eleg´ıvel se n˜ao viola rela¸c˜oes de precedˆencias e nem restri¸c˜oes de recursos em um dado instante — a Figura 3.7 representa uma programa¸c˜ao sem atraso para o problema da Figura 3.3.

(50)

22 Revis˜ao Bibliogr´afica

3.3

Esquema de Programa¸

ao em S´

erie

Dois esquemas para gera¸c˜ao de programas s˜ao apresentados (Demeulemeester e Her-roelen, 2002), s˜ao eles, em s´erie e paralelo.Os esquemas de programa¸c˜ao determinam a maneira como a programa¸c˜ao ser´a cons- tru´ıda atrav´es da atribui¸c˜ao de tempos de in´ıcio para as atividades. Dois esquemas para gera¸c˜ao de programas s˜ao apresentados (Demeu-lemeester e Herroelen, 2002), s˜ao eles, em s´erie e paralelo. Nesta se¸c˜ao ´e apresentado os detalhes sobre o esquema serial que ser´a utilizado.

O SGS (Schedule Generation Scheme) em s´erie, acrescenta sequencialmente uma atividade `a programa¸c˜ao at´e que a mesma esteja completa e fact´ıvel, conceitos intro-duzidos na se¸c˜ao 3.2. A cada itera¸c˜ao, a pr´oxima atividade da lista de prioridades ´e escolhida e atribu´ıda ao primeiro tempo de in´ıcio poss´ıvel, de tal forma que n˜ao viole nenhuma restri¸c˜ao de precedˆencia ou recurso. Para gerar um esquema em s´erie ´e preciso (Demeulemeester e Herroelen, 2002):

• escolher a atividade de acordo com a prioridade;

• alocar a atividade no menor instante de tempo vi´avel;

• apenas uma atividade pode ser alocada a cada itera¸c˜ao;

• possuir dois conjuntos disjuntos, Sj de atividades j´a programadas e Dj de

ativi-dades eleg´ıveis — uma atividade ´e eleg´ıvel se ela n˜ao viola nenhuma restri¸c˜ao de precedˆencia ou recursos.

Aplicando o esquema de gera¸c˜ao em s´erie na Figura 3.3 e levando em considera¸c˜ao a lista de prioridade <1,2,6,5,7,4,8,3,9>, ´e obtida uma programa¸c˜ao fact´ıvel apresentada na Figura 3.8 com um makespan de 8 unidades.

(51)

Revis˜ao Bibliogr´afica 23

Figura 3.8: Programa¸c˜ao Esquema de Gera¸c˜ao em S´erie, Adaptada de (De-meulemeester e Herroelen, 2002)

3.4

Regras de Prioridades

As regras de prioridade determinam as atividades que ser˜ao selecionadas durante o processo de busca da heur´ıstica. Estas regras de prioridade podem ser classificadas em cinco categorias apresentadas em Demeulemeester e Herroelen (2002), com base no tipo de informa¸c˜ao que ´e necess´ario para calcular a lista de prioridades. S˜ao elas:

• regras de prioridade baseadas em atividades: consideram as informa¸c˜oes que est˜ao relacionadas com as atividades e n˜ao com o projeto;

• regras de prioridade baseadas em rede: consideram apenas as informa¸c˜oes que est˜ao contidas na rede — nenhuma informa¸c˜ao sobre recursos podem ser utilizadas para as regras de prioridade nesta categoria;

• regras de prioridade baseadas no caminho cr´ıtico: s˜ao baseadas nos c´alculos do caminho cr´ıtico;

• regras de prioridade baseadas em recursos: consideram o uso de recursos das dife-rentes atividades;

• regras de prioridade baseadas em composi¸c˜ao: podem ser obtidas atrav´es da soma ponderada dos valores de prioridade obtidos nas regras das trˆes categorias anteri-ores.

(52)

24 Revis˜ao Bibliogr´afica

A terceira categoria, regra de prioridade baseada no caminho cr´ıtico, possui seis regras de prioridades est´aticas, regras est´aticas precisam ser calculadas no in´ıcio do processo de programa¸c˜ao, s˜ao elas EST (Earliest Start Time), EFT (Earliest Finish Time), LST (Latest Start Time), LFT (Latest Finish Time), MSLK (Minimum Slack) e RSM (Resource Scheduling Method) e trˆes regras de prioridades dinˆamicas, que de-pendem de uma programa¸c˜ao parcial para poderem atualizar os tempos das atividades, s˜ao elas ESTD (Dynamic Earliest Start Time), EFTD (Dynamic Earliest Finish Time) e MSLKD (Dynamic Minimum Slack).

Abaixo s˜ao apresentadas as listas de prioridade geradas para as regras mais utilizadas na literatura, em rela¸c˜ao ao problema da Figura 3.3.

• EST: < 1,2,3,4,5,6,7,8,9 >

• EFT: < 1,2,3,6,5,4,8,7,9 >

• LST: < 1,2,5,6,7,4,8,3,9 >

• LFT: < 1,2,6,5,3,4,7,8,9 >

3.5

Abordagens Vencedoras da Competi¸

ao MISTA2013

Dentre as abordagens apresentadas na competi¸c˜ao, ´e discutido nesta se¸c˜ao as propostas finalistas. O terceiro lugar foi obtido pela autora deste trabalho juntamente com uma equipe pertencente ao GOAL (Grupo de Otimiza¸c˜ao e ALgoritmos) da Universidade Federal de Ouro Preto (Toffolo et al., 2013) e ser´a descrita no decorrer do trabalho. Mais detalhes sobre as abordagens podem ser consultados no MISTA2013 Proceedings

27-29 de agosto de 2013.

Asta et al. (2013), vencedores da competi¸c˜ao, propuseram uma abordagem combi-nando os m´etodos Monte-Carlo (m´etodo estat´ıstico, no qual se utiliza uma sequˆencia de n´umeros aleat´orios para a realiza¸c˜ao de uma simula¸c˜ao (Metropolis, 1949)) e Hy-per-Heur´ıstica (heur´ıstica que pode ser utilizada para lidar com qualquer problema de otimiza¸c˜ao, desde que sejam fornecidos alguns parˆametros, como estruturas e abstra¸c˜oes, relacionados ao problema considerado (Sucupira, 2007)).

(53)

pro-Revis˜ao Bibliogr´afica 25

grama¸c˜ao alocando as atividades uma a uma no tempo mais cedo poss´ıvel. Essa repre-senta¸c˜ao ´e vantajosa por ser mais f´acil obter programa¸c˜oes vi´aveis. Duas etapas s˜ao necess´arias para produzir solu¸c˜oes fact´ıveis e de alta qualidade.

Na primeira etapa referente `a constru¸c˜ao, atrav´es de inspe¸c˜oes realizadas sobre as boas solu¸c˜oes, Asta et al. (2013) definiram que um bom construtor deve criar sequˆencias iniciais que imitam uma ordena¸c˜ao de uma programa¸c˜ao parcial (in´ıcio, meio e fim). Logo, foi utilizado um m´etodo r´apido que gera programa¸c˜oes aleat´orias, onde a ordem das atividades dentro de cada programa¸c˜ao parcial ´e escolhida ao acaso respeitando as precedˆencias. Essas programa¸c˜oes s˜ao usadas como amostragem na tomada de decis˜ao. Na segunda etapa referente `a melhoria, os movimentos s˜ao controlados por uma combina¸c˜ao de metaheur´ıstica e hyper-heur´ıstica, com uma base populacional e ideias de algoritmos mem´eticos (incorpora conceitos culturais e de aprendizagem, permitindo precis˜ao e convergˆencia mais r´apida (Ong et al., 2010)). Todos os movimentos geram sequˆencias que respeitam as rela¸c˜oes de precedˆencia. Os movimentos citados foram (Asta et al., 2013):

1. SwapJobs: troca duas atividades em uma sequˆencia .

2. InsertJob: insere uma atividade em um novo local na sequˆencia da solu¸c˜ao.

3. SetMode: altera o modo de uma atividade para outro modo escolhido

aleatoria-mente .

4. MoveUniform: um conjunto de atividades ´e selecionado uniformemente de forma

aleat´oria. O movimento tem trˆes op¸c˜oes: mover atividades, alterar modos ou am-bos. Ao mover as atividades selecionadas as mesmas s˜ao embaralhadas aleatoria-mente. Ao alterar os modos, os mesmos s˜ao atribu´ıdos `as atividades selecionadas de maneira aleat´oria.

5. MoveLocal: ´e semelhante ao MoveUniform, com a diferen¸ca que as atividades s˜ao

selecionadas usando uma distribui¸c˜ao n˜ao uniforme, mas que est´a centrada em torno de uma posi¸c˜ao e largura em cada sequˆencia.

6. MoveOneProject: ´e semelhante aoMoveUniform, mas a sele¸c˜ao das atividades est´a

voltada para um projeto selecionado aleatoriamente.

7. MoveBiasedGlobalResource: ´e semelhante aoMoveUniform, mas favorece a sele¸c˜ao

(54)

26 Revis˜ao Bibliogr´afica

8. MoveEndBiased: ´e semelhante aoMoveBiasedGlobalResource, mas favorece as

ati-vidades que possui a posi¸c˜ao perto do fim de seu projeto.

9. FILS swapJobs/insertJobs/setMode: esses trˆes movimentos s˜ao os primeiros

pro-cedimentos de melhoria de busca local com base na troca, inser¸c˜ao ou altera¸c˜ao dos modos dos vizinhos.

10. SwapTwoProjects: troca dois projetos selecionados aleatoriamente na sequˆencia.

11. MutationOneExtreme: as atividades, de um projeto selecionado aleatoriamente,

s˜ao todas realocadas em uma posi¸c˜ao aleatoriamente selecionada na sequˆencia.

12. MutationOne: troca todas as atividades, de um projeto selecionado

aleatoria-mente, por um n´umero fixo de posi¸c˜oes na sequˆencia.

13. MoveProjects: extrai a sequˆencia dos projetos em uma solu¸c˜ao (com base nas

posi¸c˜oes das ´ultimas atividades em cada projeto) e seleciona v´arios projetos para ent˜ao movˆe-los tanto para o in´ıcio como para o fim da sequˆencia.

Basicamente essa abordagem consiste em construir um m´etodo que trabalha a se-quˆencia na qual as atividades s˜ao passadas para um construtor de programa¸c˜ao. A constru¸c˜ao de uma sequˆencia da atividade inicial ´e feita por um h´ıbrido que gera pro-grama¸c˜oes aleat´orias e particionamento dos projetos. A fase de melhoria usa um grande n´umero de movimentos atrav´es de vizinhos controlados por metaheur´ısticas, algoritmos mem´eticos e hyper-heur´ısticas em um contexto multi-thread.

Geiger (2013), segundo colocado na competi¸c˜ao, propˆos um VNS Iterativo Variable

Neighborhood Search (m´etodo de busca local que explora o espa¸co de solu¸c˜oes atrav´es

de trocas sistem´aticas de estruturas de vizinhan¸ca (Mladenovi´c e Hansen, 1997)). Nessa abordagem ´e apresentado um conjunto de programa¸c˜oes vi´aveis X associado a dois vetores, M = (m1, ..., mn) e S = (S1, ..., SN). Onde M representa o modo de execu¸c˜ao escolhido mj para cada atividade j e S ´e a permuta¸c˜ao dos ´ındices das atividades.

(55)

Revis˜ao Bibliogr´afica 27

A busca local ´e aplicada `a programa¸c˜ao X constru´ıda, baseada no VNS e ILS

(Ite-rated Local Search) (Louren¸co et al., 2010), onde atrav´es de uma programa¸c˜ao inicial,

vizinhos s˜ao gerados por meio de v´arios movimentos e testados para aceita¸c˜ao. Caso seja alcan¸cada uma programa¸c˜ao que n˜ao pode mais ser melhorada ´e realizada uma perturba¸c˜ao e a busca continua. Quatro movimentos de vizinhan¸ca foram propostos:

1. Troca (EX): troca a posi¸c˜ao de duas atividades emS, o conjunto dos vizinhos deX

´e denotado por EX e o operador porEX(X). Uma solu¸c˜ao vizinhaX′

∈EX(X) ´e aceita seF(X′

)< F(X).

2. Invers˜ao (INV): inverte uma subsequˆencia de atividades em S. ´E aceito X′

IN V(X) se, e somente se, F(X′

)< F(X).

3. Troca de modo ´unico (SMC): altera o modo de atribui¸c˜ao de um ´unico modo em

M. X′

∈SM C(X) ´e aceito se F(X′

)< F(X)∧X′

∈X.

4. Altera dois modos (TMC): altera a atribui¸c˜ao do modo de dois elementos em M. ´

E aceito X′

∈T M C(X) se, e somente se, F(X′

)≤F(X)∧X′

∈X, esta regra de aceita¸c˜ao difere das demais, pois aceita alternativas de igual qualidade, podendo resultar em um efeito ben´efico para o movimento.

A busca local ´e executada em paralelo. Uma vez que o ´otimo local ´e atingido a melhor alternativa encontrada at´e ent˜ao ´e atualizada e a busca continua com essa melhor alternativa conhecida. Atrav´es do paralelismo todos os n´ucleos ficam concentrados em uma ´unica solu¸c˜ao, dividindo-se somente na investiga¸c˜ao das vizinhan¸cas.

3.6

Formula¸

oes de Programa¸

ao Inteira

V´arias formula¸c˜oes do RCPSP baseadas em MILP (Mixed Integer Linear Programming) s˜ao encontradas na literatura, por´em as mesmas s˜ao capazes de resolver somente um conjunto bem restrito de instˆancias.

(56)

28 Revis˜ao Bibliogr´afica

P : conjunto de projetos;

J : conjunto de todas as atividades pertencentes a todos os projetos;

Mj : conjunto de modos pertencentes a cada atividade j ∈J;

K : conjunto de recursos n˜ao-renov´aveis;

R : conjunto de recursos renov´aveis;

T : horizonte de tempo m´aximo para todos os projetos;

Tj : horizonte de tempo para a atividadej ∈J, definido ap´os pr´e-processamento;

Tjm : horizonte de tempo para a atividadej ∈J ser executado no modom ∈Mj,

definido ap´os pr´e-processamento;

P red : rela¸c˜ao de precedˆencia entre a atividade predecessora j ∈ J e sucessora

l ∈J;

djm : dura¸c˜ao da atividade j ∈J executada no modo m ∈Mj;

qkjm : quantidade necess´aria do recurso n˜ao-renov´avelk para executar a atividade

j ∈J no modo m;

qrjm : quantidade necess´aria do recurso renov´avelrpara executar a atividadej ∈J

no modo m;

qkdisp : quantidade dispon´ıvel do recurso n˜ao-renov´avel k ∈ K, considerando a quantidade de recursos futuros necess´arios para concluir o projeto e a quan-tidade de recursos j´a consumidos por outras atividades que n˜ao pertencem ao conjunto de atividades do modelo;

qdisp

r : quantidade dispon´ıvel do recurso renov´avel r ∈ R, considerando a

quanti-dade de recursos j´a consumidos por outras ativiquanti-dades que n˜ao pertencem ao conjunto de atividades do modelo.

up : ´ultima atividade do projeto p.

A primeira formula¸c˜ao para o problema foi proposta por Pritsker et al. (1969). Esta formula¸c˜ao b´asica cont´em apenas um tipo de vari´avel de decis˜ao bin´aria, xjt, indexada

(57)

Revis˜ao Bibliogr´afica 29

s˜ao definidas de forma que xjt ´e igual a 1 se a atividade j termina no tempo t e 0 caso

contr´ario. Pritsker et al. (1969) propuseram a seguinte formula¸c˜ao matem´atica:

Minimizar:

X

t∈Tup

t·xupt (3.1)

Sujeito a

X

t∈Tj

xjt = 1 ∀j ∈J (3.2)

X

t∈Tj

t·xjt ≤

X

t∈Tj

(t·xlt−dj) ∀(j, l)∈P red (3.3)

X

j∈J

min(t+dj−1,Tj)

X

h=max(t,Tj)

qrj·xjh ≤ qdispr ∀r ∈R, ∀t∈T (3.4)

xjt ∈ {0,1} ∀j ∈J,∀t ∈Tj (3.5)

A fun¸c˜ao objetivo (3.1) minimiza o tempo da atividade artificial de t´ermino do pro-jeto. A equa¸c˜ao (3.2) garante que cada atividade ser´a executada apenas uma vez. ´E inclu´ıda a equa¸c˜ao (3.3) para garantir as rela¸c˜oes de precedˆencia entre as atividades. A equa¸c˜ao (3.4) garante a viabilidade de consumo dos recursos renov´aveis. Por fim a equa¸c˜ao (3.5) especifica como bin´aria as vari´aveis de decis˜ao.

Kolisch e Sprecher (1996) propuseram uma abordagem baseada na ideia de Prits-ker et al. (1969), com um ´unico tipo de vari´avel de decis˜ao bin´aria. A diferen¸ca dessa abordagem ´e que, al´em de controlar o tempo de t´ermino, um ´ındice a mais foi acrescen-tado para controlar o modo em que cada atividade ´e executada. Por defini¸c˜ao, xjmt ´e

igual a 1, se a atividade j executa no modo m e termina no tempo t e xjmt ´e igual 0,

caso contr´ario. Essa formula¸c˜ao modela restri¸c˜oes de recursos renov´aveis e recursos n˜ao renov´aveis. Kolisch e Sprecher (1996) propuseram a seguinte formula¸c˜ao matem´atica:

Minimizar:

X

m∈Mj

X

t∈Tjm

(58)

30 Revis˜ao Bibliogr´afica

Sujeito a

X

m∈Mj

X

t∈Tjm

xjmt = 1 ∀j ∈J (3.7)

X

m∈Ml

X

t∈Tjm

(t−dlm) ·xlmt ≥

X

m∈Mj

X

t∈Tjm

t·xjmt ∀(j, l)∈P red (3.8)

X

j∈J

X

m∈Mj qjmr

min(t+djm−1,T jm)

X

q=max(t,Tjm)

xjmq ≤ qrdisp ∀r ∈R,∀t∈T (3.9)

X

j∈J

X

m∈Mj qjmk

X

t∈Tjm

xjmt ≤ qkdisp ∀k ∈K (3.10) xjmt ∈ {0,1}

∀j ∈J,∀m∈Mj,

∀t ∈Tjm

(3.11) A fun¸c˜ao objetivo (3.6) minimiza o tempo da atividade artificial de fim do projeto. A equa¸c˜ao (3.7) garante que cada atividade ser´a executada apenas uma vez. Para garantir as rela¸c˜oes de precedˆencia ´e incu´ıda a equa¸c˜ao (3.8). As equa¸c˜oes (3.9) e (3.10) garantem respectivamente a viabilidade de consumo dos recursos renov´aveis e n˜ao renov´aveis. Por fim a equa¸c˜ao (3.11) especifica como bin´aria as vari´aveis de decis˜ao.

Kone et al. (2011) propuseram uma formula¸c˜ao baseada em eventos denominada OOE (On/Off event-based). Esta formula¸c˜ao utiliza apenas um tipo de vari´avel bin´aria por evento zje. Por defini¸c˜ao, zje recebe 1 se a atividade j come¸ca no evento ou se

ele ainda est´a sendo processada imediatamente ap´os o evento e. Assim, zje permanece

igual a 1 no decorrer do tempo de execu¸c˜ao da atividade j. Neste modelo o n´umero de eventos ´e exatamente igual ao n´umero de atividades n. Uma determinada vari´avel cont´ınua te representa a data do eventoe, outra vari´avel cont´ınua extraymax ´e utilizada

para representar o makespan. Atrav´es da formula¸c˜ao OOE as restri¸c˜oes de recursos s˜ao modelados de uma forma muito simples. Kone et al. (2011) propuseram a seguinte formula¸c˜ao matem´atica:

Outro dado de entrada ´e necess´ario para o modelo:

ξ : conjunto de eventos.

Minimizar:

(59)

Revis˜ao Bibliogr´afica 31

Sujeito a

X

e∈ξ

zje ≥ 1 ∀j ∈J(3.13) te+ (zje−zj,e−1)dj ≤ ymax ∀e∈ξ,∀j ∈J (3.14) t0 = 0 (3.15)

te+1 ≥ te ∀e6=n−1∈ξ (3.16) te+ ((zje−zj,e−1)−(zjf −zj,f−1)−1)dj ≤ tf

∀(e, f, j)∈ξ2

×J, f > e

(3.17)

e(1−(zje−zj,e−1)) ≥ e−1

X

e′=0

zje′ ∀j ∈J,∀e∈ξ\ {0}(3.18)

(n−e) (1 + (zje−zj,e−1)) ≥ n−1

X

e′=e

zje′ ∀j ∈J,∀e ∈ξ\ {0}(3.19)

1 + (1−zje)e ≥ zje+

e

X

e′=0 zle

∀e∈ξ,

∀(j, l)∈P red

(3.20)

n−1

X

j=0

qjrzje ≤ qrdisp eξ,r R(3.21)

Tj·zje ≤ te ∀e∈ξ,∀j ∈J (3.22) Tj(zje−zj,e−1) +

Tup(1−(zje−zj,e−1))

≥ te ∀e∈ξ,∀j ∈J (3.23) Tup ≤ ymax (3.24) ymax ≤ Tup (3.25) te ≥ 0 ∀e∈ξ (3.26) zje ∈ {0,1} ∀j ∈J,∀e∈ξ (3.27)

(60)

32 Revis˜ao Bibliogr´afica

cada par de atividades e evento. As restri¸c˜oes (3.21) garantem a viabilidade de recursos. As restri¸c˜oes (3.22) e (3.25) restringem o tempo de in´ıcio de qualquer atividade j entre o seu tempo de in´ıcio mais cedo e o seu tempo de in´ıcio mais tarde. As restri¸c˜oes (3.26) garantem que a data de todos os eventos ser´a maior ou igual a 0. Por fim, a equa¸c˜ao (3.27) especifica que as vari´aveis de decis˜ao zje s˜ao bin´arias.

3.7

etodos Heur´ısticos

Seis m´etodos heur´ısticos como referˆencia para o RCPSP s˜ao apresentados em Kolisch e Hartmann (2005), os mesmos utilizam o conjunto de instˆancia disponibilizados pela PSPLIB:

Alcaraz et al. (2004) desenvolveram um algoritmo gen´etico com base na representa¸c˜ao de lista de atividades. ´E utilizado um gene para a indica¸c˜ao de qual SGS (Schedule

Ge-neration Scheme) ser´a utilizado, o SGS define a maneira em que a programa¸c˜ao das

ati-vidades ser´a gerada. Um gene adicional indica qual dos m´etodos (forward oubackward) ser´a utilizado para fazer o deslocamentos nos instantes de tempo das atividades conti-das na lista. O operador de crossover para listas de atividades se estende de tal forma que pode ser constru´ıda de forma bidirecional, combinando forward ebackward, ou seja, programa as atividades tanto para frente como para tr´as. Nessa abordagem aplica-se o FBI (Forward-Backward Improvement), m´etodo que ser´a detalhado na se¸c˜ao 5.3.

Debels et al. (2004) usaram abordagens baseadas em popula¸c˜ao. ´E aplicada pesquisa de dispers˜ao baseado na popula¸c˜ao, uma variante dos algoritmos gen´eticos. Essa abor-dagem utiliza SGS em s´erie e faz uso da representa¸c˜ao topol´ogica, que ´e a ordena¸c˜ao dos n´os de forma linear, aonde cada n´o vem antes dos n´os ligados aos seus arcos de sa´ıda. Foi definido um novo operador de recombina¸c˜ao que consiste na combina¸c˜ao linear das solu¸c˜oes. Essa abordagem faz o uso do m´etodo FBI.

(61)

Revis˜ao Bibliogr´afica 33

Kochetov e Stolyar (2003) elaboraram um algoritmo evolutivo que combina o algo-ritmo gen´etico, reconex˜ao de caminhos e busca tabu. As solu¸c˜oes s˜ao evolu´ıdas esco-lhendo duas solu¸c˜oes e construindo um caminho atrav´es das conex˜oes entre as selecio-nadas. A melhor solu¸c˜ao do caminho ´e escolhida e melhorada atrav´es da busca tabu. A melhor solu¸c˜ao a partir da busca tabu ´e adicionada `a popula¸c˜ao e a pior solu¸c˜ao ´e removida da popula¸c˜ao.

Vallsa et al. (2005) introduziram v´arios esquemas baseados em popula¸c˜ao n˜ao-padr˜ao em um estudo que incide sobre o FBI. A popula¸c˜ao n˜ao-padr˜ao ´e a diferen¸ca na forma como os pais s˜ao selecionados para a reprodu¸c˜ao e na quantidade de descendentes pro-duzidos por cada par de pais. O operador de mudan¸ca substitui posi¸c˜oes aleat´orias do primeiro progenitor com as posi¸c˜oes correspondentes ao segundo progenitor.

Tormos e Lova (2001) aplicaram FBI para melhorar as programa¸c˜oes constru´ıdas por metaheur´ısticas ou X-pass, heur´ıstica construtiva que combinam regras de prioridade e SGS para construir solu¸c˜oes (Kolisch e Hartmann, 1998). Nesse procedimento as atividades s˜ao simplesmente deslocadas para a direita dentro da programa¸c˜ao e, em seguida, para a esquerda, esse m´etodo produz excelentes resultados e pode ser combinado com quase qualquer outra abordagem.

(62)
(63)

Cap´ıtulo 4

Modelos de Programa¸

ao Inteira

Neste cap´ıtulo s˜ao apresentados modelos de Programa¸c˜ao Inteira (PI) para o MMRCMPSP. Estes modelos auxiliam na descri¸c˜ao do problema, uma vez que contemplam todas as restri¸c˜oes contidas nas instˆancias da competi¸c˜ao MISTA.

A se¸c˜ao 4.2 apresenta adapta¸c˜oes para que os modelos de Kone et al. (2011) e Ko-lisch e Sprecher (1996) possam resolver instˆancias do tipo MMRCMPSP de maneira a respeitar todas as restri¸c˜oes impostas ao problema.

4.1

Dados de Entrada

Esta se¸c˜ao contempla a descri¸c˜ao dos conjuntos e dados de entrada que s˜ao comuns entre os modelos apresentados neste e nos cap´ıtulos seguintes.

P : conjunto de projetos;

J : conjunto de todas as atividades pertencentes a todos os projetos;

Mj : conjunto de modos pertencentes a cada atividade j;

Jp : conjunto de atividades pertencentes a cada projeto p;

C : conjunto de caminhos que come¸cam das atividades artificiais de in´ıcio at´e as atividades artificiais de t´ermino de cada projeto;

JcC : conjunto de atividades pertencentes a cada caminho c;

(64)

36 Modelos de Programa¸c˜ao Inteira

K : conjunto de recursos n˜ao-renov´aveis;

R : conjunto de recursos renov´aveis;

T : horizonte de tempo m´aximo para todos os projetos;

Tjm : horizonte de tempo para a atividade j ser executado no modo m, definido

ap´os pr´e-processamento;

P red : conjunto de rela¸c˜ao de precedˆencia imediata entre duas atividades;

P redl : conjunto de predecessores imediatos da atividade l;

djm : dura¸c˜ao da atividade j executada no modo m;

qkjm : quantidade necess´aria do recursok para executar a atividade j no modo m;

qrjm : quantidade necess´aria do recursor para executar a atividadej no modo m;

qkdisp : quantidade dispon´ıvel do recurso n˜ao-renov´avel k, considerando a quanti-dade de recursos futuros necess´arios para concluir o projeto e a quantiquanti-dade de recursos j´a consumidos por outras atividades que n˜ao pertencem ao con-junto de atividades do modelo;

qdisp

r : quantidade dispon´ıvel do recurso renov´avelr, considerando a quantidade de

recursos j´a consumidos por outras atividades que n˜ao pertencem ao conjunto de atividades do modelo.

4.2

Modelos Orientado a Eventos e Discreto no Tempo

Nesta se¸c˜ao s˜ao apresentadas adapta¸c˜oes para o modelo discreto no tempo proposto por Kolisch e Sprecher (1996) e para o modelo baseado em eventos proposto por Kone et al. (2011). Estas adapta¸c˜oes s˜ao necess´arias para que seja poss´ıvel resolver as instˆancias do MMRCMPSP disponibilizadas pela MISTA2013. Os modelos originais est˜ao dispon´ıveis na se¸c˜ao 3.6.

No modelo proposto por Kolisch e Sprecher (1996) foi necess´ario acrescentar somente uma vari´avel inteiraymax para indicar o maior tempo de t´ermino entre todos os projetos.

(65)

Modelos de Programa¸c˜ao Inteira 37

modo miniciando no instante de tempo t e 0 caso contr´ario. Assim, as restri¸c˜oes foram modificadas para trabalhar com o ´ındice t indicando o tempo de in´ıcio das aloca¸c˜oes. O termo up representa a atividade final do projeto p, e os termos relp e lbp

represen-tam, respectivamente, o release date (menor tempo poss´ıvel de in´ıcio) e o lower bound

(distˆancia do caminho cr´ıtico) de cada projeto. A fun¸c˜ao objetivo (3.6) foi modificada para trabalhar no padr˜ao proposto pela MISTA2013, o pesoω1 ´e definido como 100000.

O modelo adaptado ´e apresentado abaixo.

Minimizar:

ω1·

X

p∈P

X

t∈Tup0

xup0t· (t−relp−lbp) +ymax (4.1)

Sujeito a

y ≥ X

t∈Tup0

t·xup0t ∀p∈P (4.2)

X

m∈Mj

X

t∈Tjm

xjmt = 1 ∀j ∈J (4.3)

X

m∈Mj

X

t∈Tjm

(t+dj,m) ·xjmt ≤

X

m∈Ml

X

t∈Tlm

t·xlmt ∀(j, l)∈P red (4.4)

X

j∈J

X

m∈Mj qjmr

t

X

q=(t−djm+1)

xjmq ≤ qrdisp ∀r ∈R,∀t∈T (4.5)

X

j∈J

X

m∈Mj

qjmk X

t=Tjm

xjmt ≤ qkdisp k K (4.6)

xjmt ∈ {0,1}

∀j ∈J,∀m∈Mj,

∀t∈Tjm

(4.7) Um pr´e-processamento para indicar o menor e maior tempo poss´ıvel de in´ıcio de cada atividade foi executado conforme explicado nos par´agrafos seguintes. Este pr´e-processamento ´e capaz de reduzir, de forma significativa, o n´umero total de vari´aveis do modelo.

(66)

38 Modelos de Programa¸c˜ao Inteira

inferior do caminho cr´ıtico e umTPD obtido por qualquer outra heur´ıstica. Este maior tempo de in´ıcio pode ser limitado mais fortemente caso considere-se, al´em do limite superior do TPD, o caminho mais longo da atividade em quest˜ao at´e a atividade final, calculado sobre os modos mais r´apidos.

No modelo proposto por Kone et al. (2011), foi necess´ario acrescentar dois novos conjuntos de vari´aveis. O primeiro conjunto ´e das vari´aveis bin´arias wjm e o outro,

das vari´aveis inteiras ymax. Al´em disso, um ´ındice m foi acrescentado ao conjunto de

vari´aveis bin´arias zjme. Essas modifica¸c˜oes s˜ao necess´arias para controlar, al´em dos

eventos relacionados `as atividades, os modos em que cada atividade pode ser executada e tamb´em o t´ermino dos projetos. Outra adapta¸c˜ao ´e relacionar uma vari´avel inteira

ymax para cada projeto existente nas instˆancias. A fun¸c˜ao objetivo (4.8) tamb´em foi

modificada para trabalhar no padr˜ao proposto pela MISTA2013, o peso ω1 ´e definido

como 100000.

Com essas novas adapta¸c˜oes foi necess´ario acrescentar algumas restri¸c˜oes. A equa¸c˜ao (4.10) garante a rela¸c˜ao entre as vari´aveis we z. ´E necess´aria uma equa¸c˜ao (4.11) para garantir que cada atividade seja alocada em apenas um modo. A equa¸c˜ao 4.9 relaciona o t´ermino dos projetos ao makespan. Por fim, foi acrescentada a equa¸c˜ao (4.21) para garantir a viabilidade dos recursos n˜ao-renov´aveis que n˜ao era contemplada no modelo original. As demais restri¸c˜oes foram adaptadas para trabalhar com os modos. O modelo adaptado ´e apresentado abaixo.

A seguir s˜ao definidas as vari´aveis de decis˜ao:

zjme : vari´avel bin´aria: 1 se a atividadej esta alocada no modo me pertence

ao eventoe, 0 caso contr´ario;

wjm : vari´avel bin´aria: 1 se a atividade j esta alocada no modo m, 0 caso

contr´ario;

te : vari´avel inteira: tempo referente ao evento e;

yp : vari´avel inteira: makespan referente a cada projeto p;

ymax : vari´avel inteira: maior instante de t´ermino entre os projetos p; Minimizar:

ω1· X

p∈P

(67)

Modelos de Programa¸c˜ao Inteira 39

Sujeito a

ymax ≥ yp ∀p∈P (4.9)

X

e∈E

zjme ≤ n·wjm ∀j ∈J, ∀m ∈Mj(4.10)

X

m∈Mj

wjm = 1 ∀j ∈J (4.11)

X

m∈Mj

X

e∈E

zjme ≥ 1 ∀j ∈J (4.12)

te+

X

m∈Mj

((zjme−zjm,e−1)·djm) ≤ yp ∀p∈P,∀j ∈J,∀e∈E (4.13) t0 = 0 (4.14) te+1 ≥ te ∀e6=n−1∈E (4.15) te+

X

m∈Mj

(((zjme−zjm,e−1)−

(zjmf −zjm,f−1)−wjm)·djm)

≤ tf

∀j ∈J, ∀e∈E,

∀f ∈E, f > e

(4.16)

e· X

m∈Mj

(1−(zjme−zjm,e−1)) ≥

X

m∈Mj e−1

X

e′=0 zjme′

∀j ∈J,

∀e∈E\{0}

(4.17) (n−e)· X

m∈Mj

(1 + (zjme−zjm,e−1) ≥

X

m∈Mj n−1

X

e′=e zjme′

∀j ∈J,

∀e∈E\{0}

(4.18)

X

m∈Mi zime+

e

X

e′=0

X

m∈Mj

zjme′ ≤ 1 + (1−

X

m∈Mi zime)e

∀(i, j)∈J,

∀e∈E

(4.19)

X

j∈J

X

m∈Mj

qrjm·zjme ≤ qrdisp ∀r∈Rj,∀e∈E (4.20)

X

j∈J

X

m∈Mj

qkjm·wjm ≤ qkdisp ∀k ∈Kj (4.21)

X

m∈Mj

(68)
(69)

Cap´ıtulo 5

Abordagem Proposta

O uso de Programa¸c˜ao Inteira Mista (MIP) na produ¸c˜ao de solu¸c˜oes de boa qualidade com alta restri¸c˜ao de tempo vem sendo uma crescente tendˆencia em otimiza¸c˜ao junta-mente com heur´ısticas (Martins et al., 2009; Santos et al., 2012; Uchoa et al., 2012), essa tendˆencia ´e denominada Matheuristic (Maniezzo et al., 2010). Os modelos das se¸c˜oes 5.1.2, 5.2.1, 5.3.2 fazem parte da nova abordagem proposta no presente trabalho e s˜ao baseados na abordagem de Kolisch e Sprecher (1996).

Um termo abrangente nesta ´area ´e a otimiza¸c˜ao de subproblemas. Para gerar novas solu¸c˜oes, ou mesmo acelerar a melhora de solu¸c˜oes fact´ıveis, resolvedores trabalham em problemas menores que podem ser resolvidos rapidamente. Neste trabalho, a otimiza¸c˜ao de subproblemas foi utilizada tanto na heur´ıstica construtiva quanto na de busca local. A heur´ıstica construtiva come¸ca a partir do zero e adiciona as atividades, uma a uma, at´e que uma programa¸c˜ao fact´ıvel seja obtida. As atividades s˜ao programadas utilizando regras de prioridade, como as apresentadas na se¸c˜ao 3.4.

A heur´ıstica de busca local, por outro lado, melhora uma programa¸c˜ao fact´ıvel obtida pela heur´ıstica construtiva. As se¸c˜oes seguintes detalham as heur´ısticas desenvolvidas neste trabalho. Na Figura 5.1 ´e apresentado um diagrama com os m´etodos que comp˜oe a abordagem proposta neste trabalho.

(70)

42 Abordagem Proposta

Seleciona Conujunto de Modos

Modelo de Seleção de Modos

Heurística Construtiva

Modelo Construtivo

Heurística Híbrida de Busca Local

Instância

Conjunto de Modos

Solução Inicial

Solução Final

Figura 5.1: Composi¸c˜ao da abordagem

5.1

Sele¸

ao do Conjunto de Modos

Imagem

Figura 2.1: Representa¸c˜ao por Grafo da Instˆancia A-1
Figura 2.2: Solu¸c˜ao da instˆancia A-1 representada pelo Gr´afico de Gantt
Tabela 2.1: Participantes da MISTA2013 Challenge
Figura 3.1: Caminho Cr´ıtico
+7

Referências

Documentos relacionados

Heur´ısticas construtivas tˆem potencial de se adequarem muito bem ao problema proposto, tanto aquelas que levam em conta caracter´ısticas locais de cada v´ertice, aqui chamada

Os pro gra mas de tran si ção de vem con si - de rar-se como pro gra mas de sub mer são, na me di da em que o en si no na lín gua ma ter na não se de sen vol ve até a um ní vel

As principais contribuic¸˜oes deste artigo s˜ao: desenvolver trˆes heur´ısticas de soluc¸˜ao com o in- tuito de determinar as ligac¸˜oes entre m´aquinas e itens, ou

Como heur´ısticas simples podem n˜ao produzir todas as rotas das melhores solu¸c˜oes e o modelo de particionamento de conjunto ´e resolvido de modo aproximado, aprimorou-se o

A principal forma de avaliar os fios multifilamentos con- tínuos é mediante o ensaio de tração, que deve ser realizado em equipamento próprio para ensaio de fios têxteis, o qual

Para obtenção das equações de predição foram utilizados dados de composição química, digestibilidade e metabolizabilidade de 30 amostras de grãos de milho e 25 amostras de

1 o /03/11 Raz˜ ao de ser da disciplina; objetivos e metodologia; apresenta¸c˜ao breve dos conte´ udos de cada unidade do curso; os crit´erios de avalia¸c˜ao.. Os n´ umeros

Se vocˆe escreve um programa servidor usando a API de sockets e executa ele, mesmo sem ter nenhum cliente. conectado, a porta utilizada pelo servidor tem que aparecer na sa´ıda