• Nenhum resultado encontrado

infinito. O objetivo do problema ´e selecionar uma sub-lista I′ ⊆ I de tarefas de peso

m´aximo, e alocar I′ nas W m´aquinas. O escalonamento gerado deve satisfazer o fato de

que em cada m´aquina n˜ao poder existir sobreposi¸c˜ao de tempo entre as tarefas.

Caso n˜ao seja imposta nenhuma restri¸c˜ao sobre quais tarefas possam ser processadas em cada m´aquina, tem-se um problema de job scheduling com m´aquinas idˆenticas. Caso haja restri¸c˜oes de que algumas tarefas n˜ao possam ser processados em um determinado conjunto de m´aquinas, tem-se um problema de job scheduling com m´aquinas n˜ao idˆenticas. O problema de escalonamento de canais em redes OBS pode ser reduzido ao pro- blema de job scheduling, onde os canais e as requisi¸c˜oes das redes OBS correspondem, respectivamente, `as m´aquinas e tarefas no problema de job scheduling.

No problema de escalonamento de lotes em redes OBS tem-se, formalmente, um con- junto de W canais, e uma lista I = {J1 = (s1, e1), . . . , Jn = (sn, en)} de n rajadas

(correspondente a um lote), onde (si, ei) ´e o tempo de in´ıcio e fim da rajada Ji. Tem-se

tamb´em uma lista S de rajadas j´a previamente alocadas nos canais. A lista S corresponde a rajadas que foram processadas em lotes anteriores. Objetiva-se, neste problema, alocar o maior n´umero poss´ıvel de rajadas (ou o conjunto de rajadas cuja soma dos pesos ´e m´axima) nos W canais. Duas rajadas em um mesmo canal n˜ao podem se sobrepor, ou seja, seus tempos de execu¸c˜ao n˜ao podem ter uma intersec¸c˜ao.

Na se¸c˜ao 9.3, apresenta-se uma modelagem do problema de escalonamento em redes OBS, atrav´es da formula¸c˜ao de um problema job scheduling com m´aquinas n˜ao idˆenticas, que ´e NP-Dif´ıcil [35]. Na se¸c˜ao 9.4, mostra-se como resolver o problema de escalonamento em redes OBS utilizando algoritmos polinomiais para o problema job scheduling com

m´aquinas idˆenticas.

9.3

Trabalhos relacionados

Em [35], o problema de escalonamento de canais ´e resolvido atrav´es de uma formula¸c˜ao do problema de job scheduling com m´aquinas n˜ao idˆenticas. Neste caso, o conjunto S de

9.3. Trabalhos relacionados 140

rajadas previamente alocadas representam intervalos de tempo nos quais algumas rajadas de I n˜ao podem ser alocadas. Como algumas rajadas de I n˜ao podem ser alocadas em um subconjunto de canais (quando h´a intersec¸c˜ao com rajadas de S), Kaheel e Alnuweiri assumem uma modelagem direta do problema de escalonamento de canais para o problema de job scheduling em m´aquinas n˜ao idˆenticas.

Figura 9.3: Modelagem do problema de escalonamento em lote de canais como job sche-

duling com m´aquinas n˜ao idˆenticas.

A Figura 9.3 ilustra a modelagem do problema de escalonamento em lote de canais em redes OBS como um problema de job scheduling com m´aquinas n˜ao idˆenticas. Na figura, existem dois canais de dados que podem ser utilizados para acomodar as requisi¸c˜oes. ´E poss´ıvel perceber que o canal 1 est´a reservado no intervalo de tempo compreendido entre os instantes 8 e 14 e os voids formados pelos intervalos [0, 8) e (14, ∞) podem ser usados para novas reservas. Dessa forma, os voids s˜ao modelados como m´aquinas distintas (M1 e M2) com per´ıodos de funcionamento restrito. Da mesma forma, o canal 2 possui reservas nos intervalos [3, 9] e [15, 20]. Assim, os per´ıodos usados para acomodar novas reservas s˜ao: [0, 3), (9, 15) e (20, ∞), o que na modelagem do problema de job scheduling seria equivalente a trˆes m´aquinas distintas, M3, M4 e M5. Dessa forma, tem-se cinco m´aquinas com diferentes per´ıodos de opera¸c˜ao (diferentes capacidades).

9.3. Trabalhos relacionados 141

Em [6], apresenta-se um algoritmo ´otimo para job scheduling com m´aquinas n˜ao idˆenticas cuja complexidade computacional ´e da ordem de O(n|W |+1), o que ´e proibiti-

vamente alto em redes OBS [35], dada a exponencialidade em |W |, onde W ´e o conjunto de m´aquinas. Dessa forma, em [35] s˜ao propostas 4 heur´ısticas para o problema de esca- lonamento em lote em redes OBS.

A seguir, ser˜ao brevemente descritas as heur´ısticas propostas por [35]. Em todas elas, as requisi¸c˜oes s˜ao vistas como um grafo de intervalos G.

9.3.1

Algoritmo Smallest Vertex Ordering (SLV)

Os v´ertices v1, ..., vn de G s˜ao ditos ordenados segundo o crit´erio smallest-last, se vi tem

o menor grau no subgrafo induzido pelos v´ertices v1, ..., vi (sendo vn o v´ertice de G com

menor grau). No algoritmo Smallest Vertex Ordering (SLV), os intervalos s˜ao alo- cados na ordem smallest last, ou seja, a requisi¸c˜ao correspondente a v1 ´e alocada ao

primeiro comprimento de onda dispon´ıvel ou descartada, depois v2 e assim por diante at´e

o processamento de vn.

A complexidade computacional do algoritmo ´e de O(n + n2+ n|W |log(|S|)), dado que

demanda-se O(n) opera¸c˜oes para realizar a ordena¸c˜ao smallest-last [45], O(n2) para reali-

zar a constru¸c˜ao do grafo de intervalos e O(n|W |log(|S|)) para a aloca¸c˜ao da reserva [35]. A id´eia central do SLV ´e que tendo o grafo alguns poucos n´os de grau elevado, o processamento pr´evio desses evitar´a a necessidade de se usar um n´umero grande de com- primentos de onda. Contudo, ao contr´ario do que afirmam os autores de [35], o proces- samento pr´evio das requisi¸c˜oes com alto grau de intersec¸c˜ao pode ocasionar um n´umero elevado de perdas.

A Figura 9.4 ilustra o problema mencionado: suponha que as requisi¸c˜oes se disp˜oem na forma apresentada na Figura 9.4(a). O grafo de intervalos correspondente ´e apresentado na Figura 9.4(b). Pode-se notar que o v´ertice “A” ´e o v´ertice com maior grau na ordena¸c˜ao

smallest last (e portanto o primeiro a ser processado), entretanto, ao se alocar o canal 1

9.3. Trabalhos relacionados 142

Periodo sem reserva Periodo reservado

Tempo 1

A

B C D E F G

(a) Padr˜ao de chegadas de requisi¸c˜oes.

B A G E D C F (b) Grafo de intervalos correspondente.

Figura 9.4: Problema ocasionado no escalonamento em lote.

9.3.2

Algoritmo Maximal Cliques First (MCF)

Caso haja no grafo uma clique com tamanho M e no m´aximo W canais para aloca¸c˜ao das requisi¸c˜oes (com M > W ), necessariamente M − W requisi¸c˜oes s˜ao descartadas. O algoritmo Maximal Cliques First (MCF) determina, al´em da ordem de processamento das requisi¸c˜oes, quais requisi¸c˜oes dever˜ao ser descartadas caso necess´ario. Para isso, o algoritmo determina todas as cliques maximais de G e as ordena, de forma crescente em rela¸c˜ao ao tempo. Seja {C1, C2, ..., Cm, } o conjunto de cliques maximais de G ordenado

tal que Ci ≺ Cj para i < j (ou seja existe uma requisi¸c˜ao em Ci que possui tempo de

in´ıcio menor ou igual a cada uma das requisi¸c˜oes em Cj). O algoritmo processa primeiro

as requisi¸c˜oes pertencentes `a clique C1depois `a C2e assim por diante. Se o tamanho de Cj

exceder o n´umero de canais, requisi¸c˜oes com o menor tempo de t´ermino s˜ao descartadas. A implementa¸c˜ao da ordena¸c˜ao MCF possui complexidade computacional de O(n2)

e a reserva do recurso possui complexidade de O(n|W |log(|S|)). Isso resulta em uma complexidade computacional da ordem de O(n2+ n|W |log(|S|)) [35].

Assim como o algoritmo SLV, a estrat´egia adotada pelo algoritmo MCF pode n˜ao produzir os melhores resultados. Considere novamente, a Figura 9.4, a primeira clique a ser processada ´e a clique formada pelos v´ertices “A” e “B”. Como s´o existe um canal dispon´ıvel, a requisi¸c˜ao “B” ´e descartada e a requisi¸c˜ao “A” ´e alocada no canal, o que faz com que todas as outras requisi¸c˜oes sejam descartadas.

9.3. Trabalhos relacionados 143

9.3.3

O algoritmo Smallest Start-time First Ordering (SSF)

No algoritmo Smallest Start-time First Ordering (SSF), as requisi¸c˜oes s˜ao ordenadas de acordo com seu tempo de in´ıcio. Assim, as requisi¸c˜oes com menor tempo de in´ıcio s˜ao processadas primeiro. O algoritmo SSF possui claramente complexidade de O(nlog(n) + n|W |log(|S|)).

A mesma situa¸c˜ao de perdas apresentada na Figura 9.4 pode ocorrer no algoritmo SSF. A primeira requisi¸c˜ao processada seria a requisi¸c˜ao “A”, o que resultaria nas perdas descritas.

9.3.4

O algoritmo Largest Interval First Ordering (LIF)

No algoritmo Largest Interval First Ordering (LIF), as requisi¸c˜oes s˜ao ordenadas de acordo com o tamanho da rajada que consiste da diferen¸ca entre o instante de t´ermino e de in´ıcio da requisi¸c˜ao. As requisi¸c˜oes que possuem maior tamanho s˜ao processadas primeiro. Assim como o SSF, o algoritmo LIF possui complexidade de O(nlog(n) + n|W |log(|S|)). Assim como os algoritmos SLV, MCF e SSF, a situa¸c˜ao descrita na Figura 9.4 pode ocasionar perdas se a requisi¸c˜ao “A” for maior do que as demais. ´E importante observar que mesmo que a soma dos tamanhos das demais requisi¸c˜oes seja superior ao tamanho da requisi¸c˜ao “A”, elas n˜ao ser˜ao consideradas.

9.3.5

Algoritmo Max-SS

Em [12], ´e proposto um algoritmo denominado Max-SS (Max Stable Set Algorithm). A id´eia do algoritmo ´e encontrar o conjunto independente de cardinalidade m´axima, garan- tindo, assim, que o maior n´umero de requisi¸c˜oes disjuntas ser´a alocado.

O algoritmo usa uma busca em largura lexicogr´afica para obter um esquema de eli- mina¸c˜ao perfeito σ. A partir da´ı, uma sequˆencia de v´ertices v1, ..., vn, formando um con-

junto independente m´aximo ´e formada como segue: v1= σ(1), vi´e o primeiro v´ertice em