• Nenhum resultado encontrado

Uma abordagem sumarizada para os problemas de escalonamento em máquinas paralelas e uma exposição sobre suas complexidades pode ser consultada em Kravchenko e Wer- ner [KW11]. Nesta subseção, para se discorrer sobre os problemas de escalonamento em máquinas paralelas, são considerados os três tipos clássicos de ambientes, onde em todos eles, cada tarefa pode ser processada em qualquer uma das m máquinas. Tais ambientes podem envolver: Máquinas paralelas idênticas(P), onde os tempos de processamento independem da máquina, ou seja, pi j = pj; Máquinas paralelas uniformes(Q) onde cada

máquina possui um desempenho/velocidade diferente, onde pi j = pj/τie τi denota a ve-

máquina tem um comportamento/velocidade diferente para cada tarefa.

3.1.2.1 Máquinas paralelas idênticas

Considere um problema de escalonamento em máquinas paralelas que inclui um conjunto de tarefas independentes, J= {J1, J2, ..., Jn}, em um conjunto de máquinas paralelas idên-

ticas, P= {1, 2, ..., m}, minimizando uma função objetivo como o atraso total ponderado. Armentano e Yamashita [AY00] consideraram o algoritmo de busca tabu para esca- lonar as tarefas em máquinas paralelas idênticas com o objetivo de minimizar o atraso. A abordagem dos autores inicia com uma solução obtida pela heurística KPM, que por sua vez pode ser descrita em dois passos: no primeiro passo, todas as tarefas não escalonadas são listadas usando a política de escalonamento do menor para o maior tempo de proces- samento (shortest processing time first - SPT) e geram-se m cópias desta lista - uma para cada máquina. No segundo passo, determina-se a próxima tarefa a ser escalonada usando a heurística PSK (desenvolvida por Panwalkar et al. [PSK93]) para minimizar o atraso total em uma máquina única.

Após a solução gerada pela heurística KPM, Armentano e Yamashita [AY00] aplica- ram a busca tabu nas soluções vizinhas para obter novas e melhores soluções, sendo a vizinhança definida por dois movimentos. O primeiro envolve inserções que consistem em transferir cada tarefa de uma máquina para outra e a segunda envolve trocas, que são obtidas pelas trocas de pares de tarefas de duas máquinas.

Existem na literatura abordagens para o ambiente de máquinas paralelas idênticas, mas que também consideram o ambiente monoprocessado, como pode ser observado em Rodrigues et al. [dFPUP08], onde foi proposto um algoritmo heurístico para o problema P|| ∑ wjTj em que o escalonamento tanto uma máquina quanto em máquinas paralelas é

representado por uma lista sequencial de tarefas (Figura 4.1 (a)). A Figura 4.1 (b) mostra representação de um escalonamento em máquinas paralelas idênticas através do gráfico de Gantt.

Para este mesmo problema de escalonamento (considerando somente máquinas pa- ralelas idênticas), Croce et al. [CGG12] apresentaram uma heurística de melhoria cu- jos resultados computacionais apresentados são melhores que os resultados existentes na literatura, incluindo os apresentados por Rodrigues et al. [dFPUP08]. Um algoritmo exato pode ser consultado em Pessoa et al. [PUPdF10], onde foi proposto um método

branch-cut-and-pricepara o problema P|| ∑ wjTj, considerando o ambiente monoproces- sado, além de máquinas paralelas idênticas.

Kravchenko e Werner [KW09] mostraram que os problemas P|pmtn| ∑ Tj, com pre-

empções permitidas, e P|rj, pj = p, pmtn| ∑ Tj, com datas de chegada definidas, tarefas

de tempos de processamento iguais e preempções permitidas, são NP-difíceis.

3.1.2.2 Máquinas paralelas uniformes

Considere um problema de escalonamento em máquinas paralelas que inclui um conjunto de tarefas independentes, J= {J1, J2, ..., Jn}, em um conjunto de máquinas paralelas uni-

formes ou com velocidades diferentes, Q= {1, 2, ..., m}, minimizando uma função obje- tivo como o atraso total ponderado.

Dessouky et al. [DLLvdV90] consideraram o caso de escalonar n tarefas idênticas em mmáquinas paralelas uniformes, problema Q|pj= 1| ∑ Tj, onde foram propostos algorit-

mos polinomiais de tempo O(n log n) para minimizar o atraso total ponderado e a latência máxima. O problema foi solucionado através de um algoritmo de trocas ou alocação sim- ples, que consiste em organizar as tarefas em ordem não-decrescente de datas de término e associá-las de acordo com os tempos de completude C1, ...,Cn.

Kravchenko e Werner [KW09] consideraram o caso onde preempções são permiti- das, ou seja, o tempo de processamento de qualquer tarefa pode ser interrompido a qual- quer instante e recomeçar depois, possivelmente em uma máquina diferente. Foram de- senvolvidos algoritmos de tempo polinomial para os problemas Q|pj = p, pmtn| ∑ Tj e

Q|pj= p, pmtn| ∑ Tj.

Dourado et al. [DdFS10] apresentaram algoritmos para os problemas de escalona- mento Q|pj = 1| ∑ wjTj e Q|pj = p| ∑ wjTj, onde é dado um conjunto J = {J1, ..., Jn}

de n tarefas a serem escalonadas em m máquinas paralelas uniformes Q= {Q1, ..., Qm},

onde cada máquina Qi tem uma velocidade específica qi e toda tarefa Jj tem um tempo

de processamento pj = p. A execução da tarefa Jj na máquina Qi requer tempo pj/qj.

Para o problema Q|pj= 1| ∑ wjTj, a estratégia utilizada para resolver o problema envolve

primeiramente solucionar uma versão não ponderada do problema (Q|pj= 1| ∑ Tj), resul-

tando em um escalonamento com bipartição de tarefas (tarefas finalizadas em suas datas de término sugeridas e tarefas com atraso). Uma estratégia ótima para o caso ponderado é obtida através da troca das tarefas tardias com as tarefas finalizadas em suas datas de

término sugeridas. Desta forma, essa mesma estratégia pode ser utilizada para o problema Q|pj= p| ∑ wjTj, por ser um problema equivalente ao problema Q|pj= 1| ∑ wjTj.

3.1.2.3 Máquinas paralelas não-relacionadas

Considere um problema de escalonamento em máquinas paralelas que inclui um conjunto de tarefas independentes, J= {J1, J2, ..., Jn}, em um conjunto de máquinas paralelas não-

relacionadas, R= {1, 2, ..., m}, onde cada tarefa possui um desempenho associado a cada máquina, com o objetivo de minimizar uma função objetivo como o atraso total ponde- rado.

Bilyk e Mönch [BM10] estudaram um problema de planejamento e escalonamento em máquinas paralelas não relacionadas. Foram consideradas n tarefas que devem ser atribuídas e escalonadas em m máquinas paralelas não relacionadas, sendo que cada tarefa possui um peso que representa a prioridade do pedido do cliente correspondente, uma data de término sugerida e uma data de chegada. Foi modelado um problema de escalonamento em máquinas paralelas não relacionadas em um ambiente de fabricação de placas de fiação impressa (PWB), que consiste em múltiplos estágios de produção, no qual cada placa deve passar por uma sequência pré-determinada de passos de fabricação. Para resolver este problema foi desenvolvida uma metodologia heurística baseada em decomposição e busca em vizinhanças variáveis (variable neighborhood search - VNS).

Documentos relacionados