Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Meta-heurística para escalonamento de projetos com recursos limitados e múltiplos modos, Notas de estudo de Informática

Uma meta-heurística baseada no scatter search (ss) para resolver problemas de escalonamento de projetos com recursos limitados e múltiplos modos de processamento. O texto aborda o problema, suas variações e apresenta um estudo específico. O objetivo é alcançar soluções viáveis com um alto percentual de soluções ótimas ou baixas taxas de desvios. Métodos para gerar soluções iniciais e combinar soluções existentes para gerar novas soluções. O scatter search opera sobre um conjunto de soluções referência e extrai soluções iniciais usando três métodos diferentes. O documento também discute a importância de eliminar caminhos não interessantes do problema de escalonamento e verificar a validade das soluções.

Tipologia: Notas de estudo

2012

Compartilhado em 20/11/2012

leandro-on-3
leandro-on-3 🇧🇷

1 documento

1 / 61

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
FUNDAÇÃO DE ASSISTÊNCIA E EDUCAÇÃO - FAESA
FACULDADES INTEGRADAS ESPÍRITO-SANTENSES
CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
LEANDRO GERALDO HOEHENE
LUIZ CARLOS CHAVES KÜSTER
APLICAÇÃO DO SCATTER SEARCH AO PROBLEMA
DE ESCALONAMENTO DE PROJETOS COM
RESTRIÇÃO DE RECURSOS E MÚLTIPLOS MODOS DE
PROCESSAMENTO
VITÓRIA
2009
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d

Pré-visualização parcial do texto

Baixe Meta-heurística para escalonamento de projetos com recursos limitados e múltiplos modos e outras Notas de estudo em PDF para Informática, somente na Docsity!

FUNDAÇÃO DE ASSISTÊNCIA E EDUCAÇÃO - FAESA

FACULDADES INTEGRADAS ESPÍRITO-SANTENSES

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

LEANDRO GERALDO HOEHENE

LUIZ CARLOS CHAVES KÜSTER

APLICAÇÃO DO SCATTER SEARCH AO PROBLEMA

DE ESCALONAMENTO DE PROJETOS COM

RESTRIÇÃO DE RECURSOS E MÚLTIPLOS MODOS DE

PROCESSAMENTO

VITÓRIA

LEANDRO GERALDO HOEHENE

LUIZ CARLOS CHAVES KÜSTER

APLICAÇÃO DO SCATTER SEARCH AO PROBLEMA

DE ESCALONAMENTO DE PROJETOS COM

RESTRIÇÃO DE RECURSOS E MÚLTIPLOS MODOS DE

PROCESSAMENTO

VITÓRIA

Trabalho de Conclusão de Curso de Graduação em Ciência da Computação apresentado à FAESA - Faculdades Integradas Espírito-Santense, como requisito parcial para obtenção do título de Bacharel em Ciência da Computação, sob orientação do Professor Dr. Luciano Lessa Lorenzoni.

À minha esposa, Bruna Pimentel da Hora Hoehene, pela paciência, apoio, dedicação e cumplicidade na finalização de mais uma etapa de minha vida.

Leandro Geraldo Hoehene

Ao meu amigo Luciano Martins Basseto, pela sinceridade, apoio e incentivo, na conclusão de mais um degrau de minha vida.

Luiz Carlos Chaves K ü ster

AGRADECIMENTOS

Leandro

Primeiramente, quero agradecer a Deus pela sua presença constante em minha vida me dando força para superar as dificuldades encontradas.

Aos meus pais, Elmo e Cleuza, minha esposa, minha irmã e meus irmãos, pelo incontestável apoio que me ofereceram, incentivando-me a seguir em frente no intuito de atingir meus objetivos.

Ao meu orientador, Prof. Dr. Luciano Lessa Lorenzoni, não só pela orientação deste trabalho, mas também por todo ensinamento compartilhado.

A todos os meus amigos e colegas, em especial Luiz Carlos (Robinho), aos demais familiares e todos os professores que de uma forma ou de outra estiveram presentes durante toda a minha caminhada acadêmica.

Luiz Carlos

Ao nosso Deus, por seu infinito amor, motivo de nossa existência e que renova a cada dia as nossas esperanças e a nossa força, sem nunca levar em conta a dignidade ou merecimento de cada um de nós.

Aos meus amigos, em especial ao Leandro, aos meus pais e familiares, pela compreensão, apoio, incentivo e paciência demonstrada ao longo de todo o tempo que empreguei no desenvolvimento deste trabalho.

Também aos meus professores, em especial ao meu orientador Prof. Dr. Luciano Lessa Lorenzoni, pelo carinho, apoio e ensinamentos que levarei para toda a vida.

LISTA DE FIGURAS

RESUMO

Este trabalho apresenta o problema de escalonamento de projetos com restrição de recursos e múltiplos modos de processamento. Esse problema consiste na identificação do tempo de início de processamento de cada atividade e na escolha do modo de processamento, tendo como objetivo minimizar o maior tempo dentre todas as atividades, respeitando as relações de precedência entre as atividades. Devido à grande complexidade em se determinar a melhor solução para esse problema, pois se trata de um problema da classe NP - difícil, aplicou-se a meta- heurística Scatter Search com o intuito de se encontrar uma solução satisfatória. Essa meta-heurística opera sobre um conjunto de soluções chamado conjunto referência, combinando-as e gerando novas soluções, de modo a melhorar a solução original. Os experimentos computacionais foram feitos através do uso de um conjunto de problemas-padrão disponível na literatura. Nos experimentos, percebeu- se a necessidade de se modificar o algoritmo, adicionando alguns métodos não contidos na lógica original do Scatter Search, alcançando melhorias em relação à proposta inicial da metodologia.

SUMÁRIO

1 INTRODUÇÃO

Segundo Blazewicz et al. (1996), citado por Lorenzoni (2003, p.18) os problemas de escalonamento estão associados a alocação de recursos para um conjunto de tarefas em um determinado tempo. Escalonar significa alocar recursos para a execução das tarefas com o objetivo de minimizar o tempo de processamento das tarefas.

Dada a necessidade de aperfeiçoar diversas situações no mundo real, como por exemplo, planejamentos de produção, gerenciamento de projetos e sequenciamento de tarefas por um microprocessador, têm-se um enfoque no desenvolvimento de soluções viáveis desses processos dentro de um prazo de entrega aceitável, que são desenvolvidas pelos algoritmos meta-heurísticos, usando-se variadas técnicas e metodologias. Nesse conjunto há uma classe especial de problemas que é o de escalonamento com restrição de recursos e múltiplos modos de processamento, adaptados a diversas aplicações no dia a dia.

De acordo com Artigues, Demassey e Néron (2008, p. 21) um problema de escalonamento de processos com restrição de recursos considera recursos de disponibilidade limitada, atividades de durações conhecidas e solicitações de recursos. O problema consiste em encontrar um escalonamento da duração mínima pela alocação do tempo de início de cada atividade, respeitando as relações de precedências e as disponibilidades de recursos.

Conforme Brucker et al. (1999) citado por Lorenzoni (2003, p.19) em meados da década de 90, os problemas de escalonamento com restrição de recursos tem sido alvo de interesse de pesquisadores. As generalizações deste problema, como os que possuem restrições de precedências generalizadas e as com múltiplos modos de processamento, são tipos de escalonamento mais gerais que contêm quase todos os problemas complexos de escalonamento de máquinas como casos especiais.

Para Artigues, Demassey e Néron (2008, p. 21) segundo a teoria de complexidade computacional, o problema de escalonamento de processos com restrição de recursos é um dos mais complexos problemas de otimização combinatorial. De fato,

o problema de escalonamento de processos com restrição de recursos pertence à classe de problemas NP - difícil.

O uso prático desse problema pode ser encontrado facilmente em diversas situações do mundo real, por exemplo, no contexto portuário. Nesse contexto os recursos são os berços de atracação e as tarefas são as solicitações do navio para o embarque e/ou desembarque de carga.

Conforme Lorenzoni (2003, p.19) apesar de serem práticos, poucos têm sido os desenvolvimentos de trabalhos que demonstram sua aplicação em situações do mundo real.

Otimizar essas situações do mundo real, permite aumentar os lucros e diminuir os custos operacionais das mais diversas organizações.

O objetivo deste trabalho é desenvolver uma meta-heurística baseada no Scatter Search ( SS ) almejando alcançar soluções viáveis com um alto percentual de soluções ótimas ou com baixas taxas de desvios, para o problema de escalonamento com restrição de recursos e múltiplos modos de processamento.

O presente trabalho, além desta introdução, está estruturado da seguinte forma:

No capítulo 2 – problemas de escalonamento de projetos com restrição de recursos

  • será abordado o estado da arte na área de problemas de escalonamento, descrevendo o problema, assim como suas variações e apresentaremos um estudo mais específico, abrangendo o conceito e a complexidade do problema.

No capítulo 3 – Scatter Search – é feita uma descrição geral da abordagem e de rotinas de intensificação e diversificação, que combinadas geram diferentes versões do algoritmo.

No capítulo 4 – experimentos computacionais – apresenta as abordagens algorítmicas utilizadas para a sua resolução, a biblioteca PSPLIB ( Project Scheduling Problem Library ) e os resultados obtidos pelo algoritmo proposto e a comparação dos resultados obtidos com os melhores resultados encontrados na literatura. Por fim, no capitulo 5 são apresentadas as conclusões do trabalho e no capítulo 6 as perspectivas de estudos futuros.

2.1 CARACTERIZAÇÃO DO PROBLEMA

De acordo com Artigues, Demassey e Néron (2008, p. 21) informalmente, um problema de escalonamento de processos com restrição de recursos considera recursos de disponibilidade limitada, atividades de durações conhecidas e solicitações de recursos. O problema consiste em encontrar um escalonamento da duração mínima pela alocação do tempo de início de cada atividade, respeitando as relações de precedências e as disponibilidades de recursos.

Lorenzoni (2003, p.25) evidencia:

Genericamente, um problema de escalonamento de projeto com restrição de recursos, conhecido na literatura como Resource Constrained Project Scheduling Problem – RCPSP, é definido por um conjunto de tarefas T que compõem o projeto, por um conjunto de recursos R, pelas relações de precedência entre as tarefas e pelo critério a ser otimizado. O problema que se coloca é determinar o tempo de início de processamento de cada uma das tarefas que compõem o projeto e a alocação de recursos para esse processamento, de modo que satisfaçam as restrições de precedência e de recurso, sendo os objetivos mais usuais a minimização do tempo de execução do projeto ou a minimização dos atrasos na finalização das tarefas.

Mais formalmente, o RCPSP pode ser definido como um problema de otimização combinatória. Este problema é definido como uma solução de espaço X , que é discreto ou que pode ser reduzido para um conjunto discreto, e por um subconjunto de possíveis soluções Y, que é um subconjunto de X, associado com uma função objetiva f: Y → R. Os objetivos de um problema de otimização combinatória é encontrar uma possível solução yY tal que f(y) é minimizado ou maximizado. As atividades ou Jobs que constituem o projeto são identificadas por um conjunto T = { A0, A1, A2,..., An, An+1 }. A atividade A0 representa, por conversão, o início do escalonamento e a atividade An+1 simetricamente representa o final do escalonamento, ambas são consideradas atividades fictícias. As relações de precedência são dadas por E, um conjunto de pares de tal forma que ( Ai, Aj ) ∈ E significa que a atividade Ai precede a atividade Aj. Presumimos que, tendo em conta a observação anterior, é tal que A0 é um antecessor de todas as outras atividades e

An +1 é o sucessor de todas as outras atividades (ARTIGUES, DEMASSEY E NÉRON, 2008, p. 21)

Quanto aos recursos, podemos classificá-los em uma das quatro categorias seguintes (LORENZONI, 2003, p. 26):

  • Renováveis: renovam-se a cada período do projeto. Uma máquina é um recurso que se renova toda vez que há a disponibilidade de se executar uma tarefa nela.
  • Não-renováveis: limitados a todo o horizonte de execução do projeto. Por exemplo: a quantidade de dinheiro disponível para se executar um projeto não se renova até o final do mesmo.
  • Duplamente restritos: limitados em cada período e também em todo o horizonte do projeto. Como exemplo, um projeto pode ter a disponibilidade de um recurso x limitado a cada etapa, e um limite de consumo total deste mesmo recurso para todo o projeto. Cada recurso desse tipo pode ser representado como um recurso renovável e não-renovável ao mesmo tempo.
  • Parcialmente renováveis: limitam a utilização dos recursos dentro de um subconjunto de períodos de execução do projeto. Por exemplo: em um período de um dia, um empregado está disponível apenas 8 horas do dia para a execução do trabalho. No dia seguinte, a disponibilidade deste recurso é renovada.

Na tabela 2.1, é dado um exemplo de escalonamento de projeto com restrição de recursos com dez atividades reais, duas atividades fictícias, dois recursos com disponibilidade R1 = 7 e R2 = 4 e a duração de cada atividade (pi).

Tabela 2.1 – Projeto com 10 atividades reais e 2 recursos Ai A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A pi 0 6 1 1 2 3 5 6 3 2 4 0 R1 0 2 1 3 2 1 2 3 1 1 1 0 R2 0 1 0 1 0 1 1 0 2 2 1 0 Fonte: (ARTIGUES, DEMASSEY E NÉRON, 2008, p. 23)

Figura 2.2 – Alocação de recursos e makespan Fonte: (ARTIGUES, DEMASSEY E NÉRON, 2008, p. 24)

2.2 NOTAÇÃO E CLASSIFICAÇÃO DOS PROBLEMAS DE

ESCALONAMENTO DE PROJETOS

A classificação dos problemas de escalonamento se dá de acordo com os tipos de recursos existentes, com as características das tarefas e com o objetivo a ser alcançado.

Para padronizar a representação dos diversos tipos de problemas, Brucker et al., citado por Lorenzoni (2003, p. 27) propuseram uma generalização da conhecida notação α|β|γ , proposta por Graham et al., feita para representar problemas de escalonamento de máquinas. Nessa notação, os campos α, β e γ correspondem, respectivamente, o ambiente dos recursos, as restrições e as características de processamento e o critério a ser otimizado.

Para distinguir entre os problemas de escalonamento de máquinas e o escalonamento de projetos, Brucker et al., citado por Lorenzoni (2003, p.27) definiram no campo α os atributos PS (Project Scheduling) para designar o escalonamento de projetos e MPS (Multi-Mode Project Scheduling) para representar o escalonamento de projetos com múltiplos modos de processamento.

Como o intuito deste trabalho é descrever o escalonamento de projetos com restrição de recursos, serão discutidas apenas as notações PS e MPS.

No campo β pode incluir múltiplas entradas, dentre elas o parâmetro prec que indica que as restrições de precedência entre atividades devem ser respeitadas.

No campo γ será abordado o parâmetro Cmax que significa a duração do escalonamento (makespan). Este é definido como max jTCj a qual Cj corresponde ao tempo de finalização de processamento da tarefa j. Um comprimento de escalonamento mínimo usualmente implica uma boa utilização dos recursos.

Minimizar o makespan significa escalonar as tarefas de tal forma que o último tempo de finalização dentre as tarefas seja o menor possível.

2.3 ÚNICO MODO (Single-Mode Case) – PS|prec|C max

Nesse caso, cada tarefa pode ser processada de uma única maneira, ou seja, | Mj | =1 para todo jT. Nesse problema trabalhou-se apenas com os recursos renováveis e a interrupção de tarefas não é permitida. O objetivo é minimizar o maior tempo de finalização dentre todas as tarefas, respeitando as relações de precedência e a disponibilidade de recursos (LORENZONI, 2003, p. 34).