





















































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
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
1 / 61
Esta página não é visível na pré-visualização
Não perca as partes importantes!
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
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.
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.
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
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.
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 y ∈ Y 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):
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)
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 j ∈ TCj 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.
Nesse caso, cada tarefa pode ser processada de uma única maneira, ou seja, | Mj | =1 para todo j ∈ T. 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).