• Nenhum resultado encontrado

O principal obst´aculo para a produ¸c˜ao de solu¸c˜oes vi´aveis para o MMRCMPSP s˜ao os recursos n˜ao-renov´aveis. Embora o uso de recursos renov´aveis possa implicar no atraso ou acelera¸c˜ao dos projetos, o uso excessivo de recursos n˜ao-renov´aveis na aloca¸c˜ao de algumas atividades pode facilmente inviabilizar a aloca¸c˜ao de outras. Uma op¸c˜ao ´e definir com antecedˆencia os modos das atividades para que elas respeitem o uso de recursos n˜ao-renov´aveis.

A sele¸c˜ao dos modos ´e feita atrav´es do modelo de sele¸c˜ao de modos, detalhado na se¸c˜ao 5.1.2. Este modelo garante que a utiliza¸c˜ao de recursos n˜ao-renov´aveis para as ati- vidades alocadas, n˜ao implicar´a na falta desses recursos para as aloca¸c˜oes das atividades remanescentes em seus respectivos modos m´ınimos.

A cada itera¸c˜ao, ap´os os modos terem sido selecionados, uma janela de tempo ´e definida iniciando-se no instante zero, esta janela ´e sequencial e n˜ao-sobreposta. Em cada janela o modelo construtivo, detalhado na se¸c˜ao 5.2.1, busca alocar um n´umero m´aximo de atividades considerando as restri¸c˜oes de precedˆencia e consumo de recursos. O pseudoc´odigo para gerar a solu¸c˜ao inicial ´e apresentado no Algoritmo 5.3. O algoritmo tem como dados de entrada: (i) um conjunto J com todas as atividades dos projetos e o (ii) tamanho da janela.

A cada itera¸c˜ao o algoritmo seleciona um subconjunto de atividades que possuem o tempo de in´ıcio mais cedo no intervalo da janela de tempo (linha 4). Ap´os a sele¸c˜ao dessas atividades, s˜ao analisadas as quantidades de recursos n˜ao renov´aveis que est˜ao dispon´ıveis para as mesmas (linha 5). Essa an´alise ´e necess´aria para que as atividades, nas quais n˜ao foram selecionadas na itera¸c˜ao atual, tenham recursos dispon´ıveis e possam ser alocadas nas itera¸c˜oes futuras considerando o modo m´ınimo.

O pr´oximo passo ´e criar subproblemas a serem resolvidos atrav´es do modelo cons- trutivo (linha 6), assim cada solu¸c˜ao ´otima encontrada nos subproblemas ´e agrupada at´e que seja gerada uma solu¸c˜ao inicial fact´ıvel (linhas 7-8). A cada itera¸c˜ao, os tempos de in´ıcio mais cedo das atividades s˜ao atualizados levando em considera¸c˜ao as novas aloca¸c˜oes das atividades. Por fim, a janela de tempo ´e incrementada (linha 9). O algo- ritmo termina quando todos as atividades s˜ao alocadas (linha 3). A sa´ıda do algoritmo ´e uma solu¸c˜ao inicial fact´ıvel (linha 10).

´

Abordagem Proposta 47

Algoritmo 5.3: Heur´ıstica Construtiva Dados: J, tamJanela Sa´ıda: S S ← solu¸c˜ao vazia 1 W ← ( 0, tamJanela) 2

enquanto (solu¸c˜ao S n˜ao for completa) fa¸ca

3

J′ ← subconjunto das atividades em J n˜ao alocados em S eleg´ıveis para a 4

janela W R′

← recursos n˜ao renov´aveis indispon´ıveis para as atividades J′ 5

P′ ← subproblema gerado por W , Je R′ 6 S′ ← solu¸c˜ao ´otima de P′ 7 S ← S ∪ S′ 8

W ← janela de tempo seguinte a W

9

retorna S

10

complicado. A janela de tempo tem de ser suficientemente pequena para assegurar que os modelos gerados ser˜ao facilmente resolvidos e, ao mesmo tempo, suficientemente grande para conseguir aloca¸c˜oes relevantes.

5.2.1

Modelo Construtivo

Este modelo ´e utilizado para auxiliar no processo de gera¸c˜ao da solu¸c˜ao inicial na heur´ıstica construtiva. O objetivo ´e alocar o m´aximo poss´ıvel de atividades, respeitando as restri¸c˜oes, de maneira a minimizar o tempo de conclus˜ao das mesmas.

Nas primeiras itera¸c˜oes da heur´ıstica s˜ao alocadas v´arias atividades nos melhores modos encontrados para a itera¸c˜ao atual, restando menos atividades para as pr´oximas itera¸c˜oes.

Neste modelo ´e importante ressaltar que as restri¸c˜oes de precedˆencia e de recursos s˜ao diferenciadas. ´E necess´ario analisar as atividades predecessoras que j´a foram alocadas, bem como a quantidade de recursos renov´aveis e n˜ao-renov´aveis que j´a foi utilizada nas itera¸c˜oes anteriores. Outra an´alise a fazer ´e sobre a quantidade de recursos n˜ao- renov´aveis necess´aria para finalizar a programa¸c˜ao dos projetos.

A seguir s˜ao apresentados outros dados de entrada necess´arios para o modelo: δjm : ´e calculado atrav´es da diferen¸ca entre a soma do primeiro instante de tempo

48 Abordagem Proposta

instante de tempo atual e a dura¸c˜ao da atividade no modo atual.

distP

p : ´e a raz˜ao entre a distˆancia m´axima de todos os projetos e a distˆancia m´axima de

cada projeto p.

distj : maior distˆancia da atividade j at´e a atividade artificial de t´ermino do projeto,

considerando a dura¸c˜ao no modo m´ınimo ˜m.

As vari´aveis de decis˜ao do modelo construtivo s˜ao definidas a seguir:

xjmt : vari´avel bin´aria que assume valor 1 se a atividade j for executada no modo

m iniciando no instante de tempo t e 0 caso contr´ario;

yp : vari´avel inteira que indica o tempo de t´ermino do projeto p;

ymax

: vari´avel inteira que indica o maior tempo de t´ermino entre os projeto.

Minimizar: ω1 X p∈P yp − ω2 X j∈J X m∈Mj X t∈Tjm δjm· xjmt + ω3· y max (5.6) Sujeito a: X m∈Mj X t∈Tjm xjmt ≤ 1 ∀j ∈ J (5.7) X j∈J        ] X m∈Mj X t∈Tjm qkjm· xjmt + qkjm˜j  1 − X m∈Mj X t∈Tjm xjmt          ≤ qkdisp ∀k ∈ K (5.8) X j∈J X m∈Mj t X q=(t−djm+1) qrjm· xjmq ≤ qrdisp ∀r ∈ R∀t ∈ T (5.9)

Abordagem Proposta 49 X m∈Mj X t∈Tjm (t + djm) xjmt − X m∈Ml X t∈Tlm t· xlmt − 1 − X m∈Ml X t∈Tlm xlmt ! (t + dlm) ≤ 0 ∀(j, l) ∈ P red (5.10) X m∈Mj X t∈Tjm xjmt − X m∈Ml X t∈Tlm xlmt ≥ 0 ∀(j, l) ∈ P red (5.11)  1 − X m∈Mj X t∈Tjm xjmt   distPp · distj + djm˜  ≤ yp ∀p ∈ P, ∀j ∈ J (5.12) ymax ≥ yp ∀p ∈ P (5.13)

A fun¸c˜ao objetivo (5.6) ´e composta por trˆes parcelas. Para cada parcela foi atribu´ıdo um peso que indica a prioridade da mesma. Esses pesos tamb´em s˜ao definidos de forma hier´arquica, tal que ω1 ≫ ω2 ≫ ω3. A primeira ´e respons´avel por minimizar o tempo de

t´ermino de cada projeto. Para garantir que alguma atividade seja alocada, a segunda parcela ´e respons´avel por maximizar o n´umero de atividades levando em considera¸c˜ao a prioridade estabelecida pelo δ de cada uma. Por fim, a ´ultima parcela tem como objetivo minimizar o tempo de t´ermino geral.

A equa¸c˜ao (5.7) garante que cada atividade seja alocada no m´aximo uma vez. As equa¸c˜oes (5.8) e (5.9) garantem respectivamente que as quantidades dispon´ıveis de re- cursos n˜ao-renov´aveis e renov´aveis n˜ao ser˜ao extrapoladas. Para garantir as rela¸c˜oes de precedˆencia entre as atividades s˜ao inclu´ıdas as restri¸c˜oes (5.10) e (5.11). O que diferen- cia as restri¸c˜oes (5.10) e (5.11) ´e que a equa¸c˜ao (5.11) garante que uma atividade s´o ser´a alocada caso suas atividades predecessoras j´a estejam todas alocadas. Outra equa¸c˜ao necess´aria ´e a (5.12) na qual garante que, caso uma atividade j n˜ao esteja alocada, o fim do projeto p ser´a maior que uma estimativa de tempo. Essa estimativa ´e calculada atrav´es da multiplica¸c˜ao entre os parˆametros distp e distj mais a dura¸c˜ao da atividade

no modo m´ınimo.

O pseudoc´odigo para o c´alculo da distˆancia m´axima da atividade at´e o fim do projeto ´e mostrado no Algoritmo 5.4. O que diferencia esse algoritmo do Algoritmo 5.2 ´e que nesse momento ´e levado em considera¸c˜ao a dura¸c˜ao da atividade no modo m´ınimo obtido

50 Abordagem Proposta

atrav´es do modelo explicado na se¸c˜ao 5.1.2. Como entrada, esse algoritmo recebe: (i) o conjunto de projetos P , (ii) o conjunto de atividades pertencentes a cada projeto Jp e

(iii) o conjunto de predecessores P red. A sa´ıda ser´a um conjunto de distˆancia calculada para cada atividade.

Algoritmo 5.4: Calcula Distˆancias com Base no Modo M´ınimo Entrada: P , Jp, P red Sa´ıda: dist para p ∈ P fa¸ca 1 para j ∈ Jp fa¸ca 2 distj ← ∞ ; 3

l ← ultima atividade do projeto p ;

4

distl ← 0; 5

para j ∈ P redl fa¸ca 6

distj ← dura¸c˜ao negativa de j no modo m´ınimo; 7

insere todos as atividades na fila de prioridades S ;

8

enquanto(S n˜ao ´e vazia) fa¸ca

9

l ← retira o primeiro elemento de S;

10

para j ∈ P redl fa¸ca 11

se distj > distl - dura¸c˜ao de j no modo m´ınimo ent˜ao 12

distj ← distl - dura¸c˜ao de j no modo m´ınimo; 13

retornadist;

14

Por fim, a equa¸c˜ao 5.12 ´e respons´avel por garantir que a vari´avel ymax seja igual ao

maior tempo de t´ermino yp dos projetos.

Documentos relacionados