SOBRE ESCALONAMENTO EM MÁQUINAS PARALELAS COM CAPACIDADES DISTINTAS

Documentos relacionados

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Complexidade de algoritmos Notação Big-O

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Algoritmos em Grafos: Caminho Mínimo

Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)

MPE(S)- Metodologias de Planeamento e Escalonamento Planning and Scheduling Methodologies

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010

Estrututas de Dados e Algoritmos. Estrutura de Dados e Algoritmos

ANÁLISE DE DESEMPENHO DE REGRAS DE PRIORIDADE PARA PROGRAMAÇÃO EM SISTEMAS FLOW SHOP HÍBRIDO E TEMPOS DE SETUP DEPENDENTES DA SEQUÊNCIA

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Hashing: conceitos. Hashing

5COP096 TeoriadaComputação

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

2. Ordenação por Seleção

INF1010 Lista de Exercícios 2

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Programação Linear - Parte 3

4º 20/10/2003. ÍNDICE

Davidson Rodrigo Boccardo

Algoritmos e Programação

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40

Matrizes esparsas: definição

Teoria dos Grafos. Fluxo Máximo em Redes

4ª Lista de Exercícios de Programação I

Grafos: árvores geradoras mínimas. Graça Nunes

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Henrique Daniel Oliveira Lopes

Tecnicas Essencias Greedy e Dynamic

Árvore Binária de Busca Ótima

3. Conteúdo de um vértice v é conteúdo dos filhos de v.

Compactação de Dados Letícia Rodrigues Bueno

Departamento de Engenharia Informática Licenciatura em Engenharia Informática Computadores e Sistemas Sistemas de Tempo Real

Arquivos Sequenciais Ordenados Fisicamente

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

Árvores AVL e Árvores B. Jeane Melo

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Álgebra Linear e Geometria Analítica Bacharelados e Engenharias Parte II Matrizes (continuação)

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Processos. Escalonamento de Processos

Teoria da Complexidade Computacional

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

Árvores Auto-ajustadas

- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação

Uma forma de classificação

Minimização do custo de antecipação e atraso para o problema de sequenciamento de uma máquina com tempo de preparação dependente da sequência.

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

Prof. Lorí Viali, Dr.

Método prático para extrair uma base de um conjunto de geradores de um subespaço de R n

Grafos: componentes fortemente conexos, árvores geradoras mínimas

O Problema do Fluxo de Custos Mínimos Terça-feira 2 de abril. O Problema do Caminho mais Curto. Fórmula. Outra Fórmula

ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS

Desempenho de computação paralela

Complexidade de Algoritmos

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Pesquisa Operacional. Evanivaldo Castro Silva Júnior

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Análise e Projeto de Algoritmos

Análise da Complexidade de Algoritmos

Corte Máximo em Grafos Notas de aula de MAC-5727

AULA 8- ÁLGEBRA MATRICIAL VERSÃO: OUTUBRO DE 2016

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

Segundo trabalho prático de implementação Sistema de reserva de assentos

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Prática 02. Total. Pré-requisitos 2 MTM112. N o

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

UNIDADE 4 ESTRUTURAS DE CONTROLE

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

XLVI Pesquisa Operacional na Gestão da Segurança Pública

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

AULA 24. Algoritmos p.856/905

Métodos de Ordenação Parte 3

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Sistemas Operacionais: Escalonamento de processos

Estruturas de Dados I

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

UMA HEURÍSTICA VNS MULTIOBJETIVO PARA O PROBLEMA DE SEQUENCIAMENTO DE TAREFAS EM UMA MÁQUINA COM PENALIDADES POR ANTECIPAÇÃO E ATRASO E FLUXO TOTAL

Computadores e Programação (DCC/UFRJ)

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II

Vol. 20, No. 1, junho de 2000 Pesquisa Operacional

PROGRAMAÇÃO DA PRODUÇÃO FLOW SHOP PERMUTACIONAL COM MINIMIZAÇÃO DO TEMPO MÉDIO DE FLUXO

Análise estrutural do problema de programação da produção F3 r j, s ijk C max

Resolução da 1ª Prova de Álgebra Linear II da UFRJ, período

Programação Linear: Profa. Silvana Bocanegra UFRPE - DEINFO

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

COLORAÇÃO TOTAL EQUILIBRADA DE GRAFOS UM MODELO PARA REDES DE INTERCONEXÃO

BCC202 - Estrutura de Dados I

Transcrição:

SOBRE ESCALONAMENTO EM MÁQUINAS PARALELAS COM CAPACIDADES DISTINTAS Mitre Costa Dourado 1 Rosiane de Freitas Rodrigues 2 Jayme Luiz Szwarcfiter 3 1 Instituto de Ciências Exatas - UFRRJ e NCE-UFRJ 2 Engenharia de Sistemas e Computação, COPPE - UFRJ e DCC-UFAM 3 Instituto de Matemática, NCE, COPPE - UFRJ Universidade Federal do Rio de Janeiro-UFRJ, RJ, Brasil mitre@nce.ufrj.br, rosiane@cos.ufrj.br, jayme@nce.ufrj.br. Resumo Este trabalho aborda problemas de escalonamento de tarefas em máquinas paralelas uniformes. Neste caso, o escalonamento é realizado em um conjunto de máquinas em paralelo, onde as mesmas possuem características distintas expressas em termos de velocidades distintas de execução. São apresentados algoritmos para os problemas Q p j = 1 w j U j e Q p j = p w j U j, com n tarefas independentes e m máquinas paralelas uniformes. Os problemas envolvem tarefas com tempos de processamento iguais (unitários ou não) e diferentes prioridades representadas por pesos distintos. O objetivo consiste em determinar escalonamentos ótimos com um número mínimo de tarefas tardias ponderadas. A melhor solução vigente para estes problemas, envolve a modelagem dos mesmos como um problema de alocação (assignment problem), resultando em um algoritmo de complexidade O(n 3 ). Este trabalho apresenta algoritmos que resolvem tais problemas de maneira mais eficiente, em tempo O(n log n) tanto para os casos onde as tarefas não possuem pesos quanto para os casos com tarefas ponderadas. Palavras-chave: escalonamento teórico, máquinas uniformes, política EDD, tempo unitário de processamento. Área Principal: Otimização Combinatória. Abstract This paper tackles problems of scheduling tasks on uniform parallel machines. In this case, the scheduling can be done in a set of machines in parallel, where they have distinct characteristics expressed in terms of different speeds of execution. Algorithms are presented for problems Q p j = 1 w j U j and Q p j = p w j U j, with n independent jobs and m parallel uniform machines. The problems involving tasks with equal processing times (unit time or not), and different priorities. The objective is to determine optimal scheduling with a minimum number of weighted tardy jobs. The best current solution to these problems, involves their modeling as an assignment problem, resulting in an algorithm of complexity O(n 3 ). Our proposed algorithm solve these problems in time O(n log n) both for cases with jobs without weights, as for cases with weighted jobs. Keywords: EDD rule, scheduling theory, uniform machines, unit executing time. Main Area: Combinatorial Optimization. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2752

1 Introdução Escalonamentos de tarefas em máquinas paralelas uniformes representam uma importante classe de problemas de escalonamento. Neste caso, o escalonamento é realizado em um conjunto de máquinas em paralelo, onde as mesmas possuem características distintas expressas em termos de velocidades distintas de execução (cada máquina pode possuir uma velocidade diferente de execução, independente da tarefa que está sendo executada). As máquinas uniformes são também denominadas de máquinas relacionadas. De uma maneira geral, os problemas abordados podem ser definidos como segue. Dadas n tarefas J = {J 1,..., J n } a serem escalonadas em m máquinas paralelas uniformes Q = {Q 1,..., Q m }, onde cada máquina Q i possui uma velocidade específica q i e cada tarefa J j possui um tempo de processamento p j. A execução da tarefa J j na máquina Q i requer p j q j unidades de tempo. Um caso especial é quando a velocidade para qualquer máquina Q i é a mesma (q i = q), onde tem-se o caso de máquinas paralelas idênticas (P ). Os casos de interesse deste trabalho envolvem problemas de escalonamento onde as tarefas possuem tempos de processamento iguais (unitários ou não), estando disponíveis para serem processadas a qualquer momento respeitando-se apenas as datas estipuladas para que a execução de cada uma termine. O objetivo consiste em minimizar o número de tarefas tardias, com prioridades diferenciadas ou não (Leung 2004, Brucker 2004). Usando a notação padrão para representar problemas de escalonamento proposta por Graham et al. (1979), os problemas abordados são: Q p j = 1 U j e Q p j = p U j (versões com tarefas não-ponderadas); Q p j = 1 w j U j e Q p j = p w j U j (versões com tarefas ponderadas). Para tais problemas de interesse, a melhor solução encontrada na literatura modela os mesmos como sendo problemas de alocação (assigment problems), resolvendo-os em O(n 3 ), tanto para as versões não-ponderadas quanto para as ponderadas (Brucker e Knust (2009), Durr(2009), Pinedo (2002)). Neste trabalho, algoritmos mais eficientes estão sendo propostos. Tanto para as versões não-ponderadas, Q p j = 1 U j e Q p j = p U j, quanto para as versões ponderadas - Q p j = 1 w j U j e Q p j = p w j U j, a complexidade fica em O(n log n). Tais estratégias de solução foram baseadas nas estratégias de solução para os problemas 1 p j = 1; r j U j e P p j = 1; r j U j, propostas por Rodrigues (2009) e Dourado et al. (2008). O restante deste artigo está estruturado da seguinte maneira. Na Seção 2, são definidos os problemas e apresentados os conceitos necessários. Na Seção 3 é apresentado um algoritmo para os casos onde as tarefas não possuem pesos. Na Seção 4 é apresentado um algoritmo para os casos com tarefas ponderadas. Por fim, considerações finais são feitas na Seção 5. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2753

2 Os Problemas Q p j = 1 w j U j e Q p j = p w j U j O problema Q p j = p w j U j é equivalente ao problema Q p j = 1 w j U j (Brucher e Kravchenko (2006)), onde os tempos de processamento p j e as datas de término d j podem ser escalados pelo fator 1 p. Sendo assim, a partir deste ponto será considerado apenas o problema Q p j = 1 w j U j. O problema Q p j = 1 w j U j, em notação de 3-campos (Graham et al. (1979)), pode ser definido como segue. Dado um conjunto de n tarefas J = {J 1,..., J n }, todas disponíveis ao mesmo tempo para execução (r j = 0), mas cada uma tendo datas de término não-obrigatórias due date d j, requerendo um tempo de execução unitário unit execution time p j = 1 e tendo prioridades distintas representadas por pesos w j. Tais tarefas devem ser escalonadas em m, 1 m n, máquinas paralelas uniformes Q = {Q 1,..., Q m }, ou seja, cada máquina Q i possuindo uma capacidade q i distinta de processamento (velocidades diferentes). A execução da tarefa J j na máquina Q i requer p j q i, onde para tarefas de tempos unitários tem-se 1 q i. Assume-se que para cada tarefa, suas datas término e seus pesos são inteiros não-negativos. Cada máquina pode processar no máximo uma tarefa e cada tarefa pode ser processada em uma única máquina. Conseqüentemente, um escalonamento é uma função injetiva S, a qual associa para cada tarefa J j J um número s j, chamado tempo de início da tarefa J j, e uma máquina específica Q y Q. Dizemos que J j tem sido escalonado para iniciar no tempo s j na máquina Q y. Considerando que a tarefa J j seja escalonada na k-ésima posição da máquina Q i, denota-se por C j = k q i, o tempo de completude (completion time) desta tarefa J j. Uma tarefa factível no tempo t, nestes casos, é uma tarefa que satisfaz 0 C j d j. Um escalonamento S é factível quando cada tarefa J j é factível para seus tempos de completude C j. Se uma tarefa J j é tardia (C j > d j ), então uma penalidade unitária é definida como U j = 1, caso contrário a tarefa J j está adiantada ou em-tempo (C j d j ), e uma penalidade nula U j = 0 é atribuída. O problema consiste no escalonamento de todas as tarefas de tal forma a minimizar a função objetivo w j U j, ou seja, minimizar o número total das tarefas tardias ponderadas. Um escalonamento para (J, Q) pode ser visto como sendo uma partição induzida (S, T ), onde S representa o conjunto de tarefas em-tempo e T representa o conjunto de tarefas tardias. A Figura 1 ilustra a atribuição da k-ésima tarefa ao k-ésimo possível tempo de completude, dentre os n gerados. Nas próximas seções são apresentados algoritmos para a resolução de versões do problema descrito nesta seção. 3 Algoritmo para o caso não-ponderado O algoritmo para o problema Q p j = 1 U j se baseia em uma estratégia simples onde primeiramente as tarefas são ordenadas em ordem não-decrescente de suas datas de término (política EDD, do inglês Earliest Due Date first). Sem perda de generalidade, assume-se que (d 1 d 2... d n ). Os tempos de execução possíveis são previamente determinados, da seguinte forma. Uma fila de prioridades fpq para conter os possíveis tempos de execução é criada, contendo inicialmente os valores 1 q i, para cada máquina Q i. Em seguida, remove-se o menor valor da fila de prioridades fpq e reserve-o. Assumindo que em um XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2754

Figura 1: Esquema que representa a atribuição da k-ésima tarefa ao k-ésimo possível tempo de completude, dentre os n gerados. passo geral o menor valor em fpq seja k q i, é re-inserido em fpq o valor k+1 q i. Repete-se este procedimento até que n valores serem gerados, t 1 t 2... t n, representando os n possíveis tempos de completudes para um conjunto de n tarefas serem executadas nas máquinas paralelas uniformes. Por fim, atribui-se a k-ésima tarefa de menor data de término (d k ) ao menor tempo de completude t k, e assim sucessivamente. Ao se tentar fazer esta atribuição, se d k < t k então J k é uma tarefa tardia e deve ser reservada para ser escalonada ao final do processo. Caso contrário, se d k t k, a tarefa J j deve ser alocada na posição t k (que indica o tempo e a respectiva máquina). Ao final, a fila de tarefas ordenadas por suas datas de término que foram consideradas tardias são atribuídas, nesta ordem, aos tempos de completude restantes. O Algoritmo 1 apresenta o pseudo-código do método descrito acima. Algoritmo 1 algoritmo para Q p j = 1 U j ordene as tarefas aplicando a política EDD - (d 1 d 2... d n ). crie uma fila de prioridades fpq(), inserindo primeiramente os tempos 1 q i de cada máquina Q i. faça k = 1, representando o índice do k-ésimo tempo de completude a ser previamente gerado. repita remova o menor valor de fpq() e atribua a t k. Assumindo que o mesmo seja k q i, insira em fpq() o tempo k+1 q i. k := k + 1. até (k = n tempos de completude serem gerados) para cada tarefa J j faça se d j <= t j então atribua J j a t j e indique-a como indisponível. senão defina J j como tardia. fim se fim para escalone cada tarefa tardia no final em qualquer t k restante. Quanto a complexidade computacional, a ordenação das tarefas em ordem EDD custa O(n log n). Criar a fila de prioridades fpq contendo inicialmente o primeiro tempo de completude possível em cada XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2755

máquina, para uma tarefa de tempo de execução unitária, leva tempo O(m). O primeiro laço de repetição é feito n vezes e dentro dele, a cada passo a fila de prioridades fpq é manipulada, com uma remoção e uma inserção, seguida de re-ordenamento para devolver sempre seu menor valor dentre os m possíveis. Assim, tal repetição custa O(n log m). Para o segundo laço de repetição, cada uma das n tarefas é considerada para ser escalonada (atribuída) a um dos tempos de completude gerados no passo anterior. Dentro deste laço, é verificado em tempo constante se a tarefa em questão é tardia ou não, escalonandoa ou reservando-a para ser escalonada ao final. Sendo assim, tais passos representados pelo segundo laço custam O(n). Então, assumindo que m n, a complexidade de tempo total do Algoritmo 1 é de O(n log n). A Figura 2 apresenta a situação do conjunto de n tarefas e tempos de completude ao final do Algoritmo 1. Figura 2: Esquema que representa a situação do conjunto de n tarefas e tempos de completude ao final do Algoritmo 1. 4 Algoritmo para o caso ponderado Para o caso do problema com tarefas de prioridades distintas, Q p j = 1 w j U j, deseja-se um número mínimo de tarefas tardias (o mesmo número obtido para a versão não-ponderada do problema (Seção 3), tal que o peso total das tarefas tardias seja o menor possível. Sendo assim, apesar do número de tarefas tardias ser igual, o conjunto de tarefas pode ser diferente. A Figura 3 representa a busca, no k-ésimo passo, pelo menor peso dentre os pesos das tarefas emtempo, que ainda assim seja menor do que o peso w j da tarefa tardia J j corrente, tal como descrito no Algoritmo 2. O Algoritmo 2 apresenta o pseudo-código para a versão ponderada do problema descrito acima. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2756

Figura 3: Esquema que representa a busca linear, no k-ésimo passo, pelo maior peso que seja menor do que o peso w j da tarefa tardia J j corrente,tal como descrito no Algoritmo 2. Algoritmo 2 algoritmo para Q p j = 1 w j U j ordene as tarefas aplicando a política EDD - (d 1 d 2... d n ). crie uma fila de prioridades fpqt, inserindo primeiramente os tempos 1 q i de cada máquina Q i. faça k = 1, representando o índice do k-ésimo tempo de completude a ser previamente gerado. repita remova o menor valor de fpqt e atribua a t k. Assumindo que o mesmo seja k q i, insira em fpqt o tempo k+1 q i. k := k + 1. até (k = n tempos de completude serem gerados) crie uma fila de prioridades fpqw, para fornecer o menor peso dentre as tarefas escalonadas em-tempo. para cada tarefa J j faça se d j <= t j então atribua J j a t j e indique-a como indisponível. insira J j em fpqw. senão verifique se wk = min J k S{w k wk < w j} (ou seja, compare o valor retornado por fpqw com o peso de J j ). se J k então troque J k por J j (atualize fpqw). Faça J k ser tardia. senão Faça J j ser tardia. fim se fim se fim para escalone cada tarefa tardia no final em qualquer unidade de tempo t restante. A estratégia embutida no Algoritmo 2 pode ser realizada em tempo O(n log n), tal como segue. Tal como para o Algoritmo 1, a geração dos n tempos possíveis de execução acontece da mesma forma. Sendo assim, a ordenação das tarefas em ordem EDD custa O(n log n). Criar a fila de prioridades fpqt XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2757

contendo inicialmente o primeiro tempo de completude possível em cada máquina, para uma tarefa de tempo de execução unitária, leva tempo O(m). O primeiro laço de repetição é feito n vezes e dentro dele, a cada passo a fila de prioridades fpqt é manipulada, com uma remoção e uma inserção, seguida de re-ordenamento para devolver sempre seu menor valor dentre os m possíveis. Assim, tal repetição custa O(n log m). Para o segundo laço de repetição, cada uma das n tarefas é considerada para ser escalonada (atribuída) a um dos tempos de completude gerados no passo anterior. Dentro deste laço, é verificado em tempo constante se a tarefa J j em questão pode ser escalonada em tempo ou não. Se a tarefa J j puder ser escalonada em tempo, nada mais a fazer. Senão, verificar dentre as S tarefas escalonadas (tarefas em-tempo), se existe alguma com peso menor do que J j, pode ser feito usando-se uma outra fila de prioridades - fpqw - que forneça sempre o menor peso dentre as S tarefas escalonadas. Isto pode ser feito em tempo O(log S ). A troca é feita em tempo constante O(1). Observa-se que a fila de prioridades fpqw deve ser inicializada de modo a validar as operações posteriores. No final, as T tarefas que ficaram definidas como tardias são alocados nos n S tempos de completude restantes. Como o número de tempos de completude é invariante, ocorrendo apenas a busca e troca de tarefas associadas aos mesmos, se as condições de busca forem satisfeitas, então usando-se estruturas de dados adequadas, como filas de prioridades (ou heaps), tais buscas e trocas podem ser feitas de maneira eficiente. Então, a complexidade de tempo total do Algoritmo 1 é de O(n log m + n log n) e, assumindo que m n, a complexidade total é de O(n log n). 5 Conclusões Neste trabalho, foram apresentados algoritmos para os problemas Q p j = 1 U j, Q p j = p U j, Q p j = 1 w j U j e Q p j = p w j U j, que encontram escalonamentos que minimizam o número de tarefas tardias (ponderadas ou não), em máquinas paralelas que possuem capacidades distintas de processamento (máquinas paralelas uniformes). O primeiro método, Algoritmo 1, calcula todos os possíveis tempos de completude das n tarefas e depois considera cada tarefa em ordem EDD para atribuí-las aos tempos gerados, tendo complexidade O(n log n). O Algoritmo 2 apresenta uma pequena modificação em relação ao Algoritmo 1, pois também realiza trocas entre tarefas tardias e tarefas emtempo, de tal forma a minimizar a soma total das tarefas tardias ponderadas. Tal processo, representado pelo Algoritmo 2, possui complexidade de tempo O(n log n). A Tabela 1 apresenta uma relação dos problemas abordados e suas complexidades, comparando-os com os melhores resultados disponíveis na literatura. Tais resultados apresentados neste artigo, juntamente com os propostos por Rodrigues (2009) e Dourado et al. (2008), motivam a abordagem dos problemas Q p j = 1; r j U j e Q p j = 1; r j w j U j, que se encontram em aberto, dentre as pesquisas futuras. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2758

Tabela 1: Quadro comparativo dos resultados. Complexidade Problema Literatura Resultados Propostos Q p j = 1 U j Q p j = p U j O(n 3 ) O(n log n) Q p j = 1 w j U j Q p j = p w j U j O(n 3 ) O(n log n) Q p j = 1; r j U j Q p j = 1; r j w j U j em aberto em estudo Referências Brucker, P. e Knust, S. (2009). Complexity Results for Scheduling Problems, Disponível em http://www.mathematik.uni-osnabrueck.de/research/or/class. Brucker, P. (2004). Scheduling Algorithms, 4rd ed., Springer-Verlag, New York. Dourado, M., Rodrigues, R. e Szwarcfiter, J. (2008). Scheduling unit time jobs with integer release dates to minimize the weighted number of tardy jobs, In: Annals of Operations Research, Springer Netherlands, 169(1),81 91, DOI: 10.1007/s10479-008-0479-y, ISSN: 0254-5330 (Print) 1572-9338 (Online). Durr, C. (2009). The Scheduling Zoo: a searchable bibliography on scheduling. Disponível em http://www.lix.polytechnique.fr/ durr/query/. Leung, J. (ed.) (2004). Handbook of Scheduling: Algorithms, Models, and Performance Analysis, Computer and Information Science Series, Chapman&Hall and CRS Press. Pinedo, M. (2002), Scheduling: Theory, Algorithms, and Systems, Prentice-Hall, 2a. ed. Rodrigues, R. (2009), Caracterizações e Algoritmos para Problemas Clássicos de Escalonamento, Tese (Doutorado) - Programa de Engenharia de Sistemas e Computação - COPPE, UFRJ, 2009. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 2759