Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAntônia Farinha Desconhecida Alterado mais de 9 anos atrás
1
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha
2
2Algoritmos em Grafos PARTE 3: CAMINHOS MAIS LONGOS E SEQÜENCIAMENTO DE TAREFAS
3
3Algoritmos em Grafos Caminhos mais Longos Adaptação dos algoritmos para o problema de caminho mais curto f* = mínimo f(x) = - máximo {- f(x)} Condição: o grafo não pode ter circuitos de comprimento positivo. f* x* f - f* - f Multiplicar as distâncias por (-1) e aplicar o algoritmo para caminhos mais curtos Multiplicar as distâncias por (-1) e aplicar o algoritmo para caminhos mais curtos
4
4Algoritmos em Grafos Caminhos mais Longos Alternativa: adaptar os algoritmos de caminhos mais curtos para que calculem caminhos mais longos. Inicializar S {2,3,...,n}, S {1}, (1) 0, (j) c 1j se j 1 + - caso contrário Enquanto S faça Selecionar j S tal que (j)= max i S { (i)} e todos os predecessores de j já pertençam a S S S – {j} S S {j} Para i S e i j + faça (i) max{ (i, (j)+c ji } fim-enquanto
5
5Algoritmos em Grafos Caminhos mais Longos Problema central de seqüenciamento de tarefas Os grandes projetos exigem acompanhamento constante e perfeita coordenação das tarefas, de modo a: evitar atrasos evitar custos adicionais Problema de seqüenciamento: Objetivo: determinar a ordem e o calendário de execução das tarefas. Tarefa Representação por um grafo duração restrições (precedências)
6
6Algoritmos em Grafos Caminhos mais Longos Exemplo: Preparação da construção de um prédio: 1.Executar o aterro (10 dias) 2.Instalar um guindaste (2 dias) 3.Fazer as fundações (6 dias) 4.Ligações elétricas (3 dias) 5.Instalação de esgotos (5 dias) Restrições: O guindaste só pode funcionar após as ligações elétricas estarem prontas. O guindaste é necessário para fazer as fundações. A instalação dos esgotos e as fundações só podem ser executadas após o final do trabalho de aterro.
7
7Algoritmos em Grafos Caminhos mais Longos PERT (Program Evaluation and Review Technique) Rede PERT: nós: representam etapas (instantes privilegiados do projeto) - etapa INÍCIO - etapa FIM arcos: representam tarefas - tarefas reais de duração positiva - tarefas virtuais (ou fictícias) de duração nula para exprimir as restrições de precedência. Grafo potenciais-etapas (nós são etapas)
8
8Algoritmos em Grafos Caminhos mais Longos Uma etapa x é atingida quando todas as tarefas (reais e fictícias) correspondendo a arcos dos quais x é extremidade final foram concluídas. Só é possível iniciar a execução da tarefa correspondente ao arco (x, y) depois que a etapa x tiver sido atingida. x t1t1 t2t2 t3t3 y
9
9Algoritmos em Grafos Caminhos mais Longos Exemplo: A tarefa 1 deve estar terminada para que a tarefa 5 possa ser iniciada. Supressão de arcos inúteis: 3 5 2 1 4 IF 3 2 10 6 5 2 1 4 3 5 I F 3 2 6 5 a b I b a F
10
Algoritmos em Grafos Caminhos mais Longos Resolver um problema de seqüenciamento de tarefas corresponde a: determinar um calendário de execução determinar as tarefas críticas (aquelas cujo atraso provoca um atraso na execução do projeto como um todo) controlar o desenvolvimento do projeto e saber, a cada instante, atualizar as previsões iniciais
11
11Algoritmos em Grafos Caminhos mais Longos Etapa x: (x): data mais cedo (data mínima em que a etapa x pode ser atingida) (x): data mais tarde (data máxima em que a etapa x pode ser atingida sem que resulte em atraso na execução do projeto como um todo) Uma tarefa é dita crítica se qualquer atraso em sua execução se repercute automaticamente na duração do projeto. Caminho crítico: formado por tarefas críticas
12
12Algoritmos em Grafos Caminhos mais Longos Para que a etapa x possa ser atingida, é necessário que todos os caminhos de I a x tenham sido percorridos. (x) = comprimento do caminho mais longo de I a x considerando-se (I) = 0. Tarefa u = (x,y): (u) = (y) - (x) - d(u) é a folga da tarefa u. u caminho crítico (u) = 0 I(u) x T(u) y u O grafo PERT não tem circuitos.
13
13Algoritmos em Grafos Caminhos mais Longos Algoritmo PERT S {I}, (I) 0 Enquanto x S tal que todos seus predecessores estão em S faça (x) max {u: T(u)= x} { (I(u))+d(u)} S S {x} fim-enquanto S {F}, (F) (F) Enquanto x S tal que todos seus sucessores estão em S faça (x) min {u: I(u)= x} { (T(u))-d(u)} S S {x} fim-enquanto Calcular (u) (T(u))- (I(u))–d(u), u U
14
14Algoritmos em Grafos Caminhos mais Longos Exemplo: (I) = 0S={I} (b) = 10S={I, b} (a) = 10S={I, a, b} (F) = 16S={I, a, b, F} I F 3 2 10 6 5 0 a b (F) = 16S={F} (a) = 10S={F, a} (b) = 10S={F, b, a} (I) = 0S={F, b, a, I} ITERAÇÃO 1: ITERAÇÃO 2: ITERAÇÃO 3: ITERAÇÃO 1: ITERAÇÃO 2: ITERAÇÃO 3:
15
15Algoritmos em Grafos Caminhos mais Longos Grafo potenciais-tarefas: nó tarefa arco(i,j) se a tarefa i deve preceder a tarefa j 3 5 2 1 4 IF 3 2 10 6 5 I 3 2 6 5 0 0 0 4 2 1 3 5 F
16
16Algoritmos em Grafos Caminhos mais Longos A tarefa j só pode começar após a metade da execução da tarefa i: A tarefa j só pode começar um tempo t após o fim de i: A tarefa j só pode começar após a data b j : i j d i /2 i j d i + t I j bjbj
17
17Algoritmos em Grafos Caminhos mais Longos TAREFASDURAÇÃOANTERIORES A7- B3A C1B D8A E2D, C F1 G1 H3F J2H K1E, G,J GRAFO POTENCIAIS-ETAPAS: I 1 2 3 5 6 4F A BC DE F H J K G 7 3 1 8 1 3 2 2 1 1 (I)=0 (I)=0 (1)=7 (3)=15 (2)=10 (4)=21 (F)=22 (6)=19 (5)=16 (F)=22 (4)=21 (6)=19 (5)=16 (3)=15 (1)=7 (2)=14
18
18Algoritmos em Grafos Caminhos mais Longos Cálculo das folgas : (u) = (T(u)) – (I(u)) – d(u) (A) = 7 – 0 – 7 = 0 (B) = 14 – 7 – 3 = 4 (C) = 15 – 10 – 1 = 4 (D) = 15 – 7 – 8 = 0 (E) = 21 – 15 – 2 = 4 (F) = 16 – 15 – 1 = 0 (G) = 21 – 15 – 1 = 5 (H) = 19 – 16 – 3 = 0 (J) = 21 – 19 – 2 = 0 (K) = 22 – 21 – 1 = 0 Caminho crítico: A D F H J K
19
19Algoritmos em Grafos Caminhos mais Longos GRAFO POTENCIAIS-TAREFAS: TAREFASDURAÇÃOANTERIORES A7- B3A C1B D8A E2D, C F1 G1 H3F J2H K1E, G,H I A B D F H E K C G J F 0 7 7 3 8 8 8 1 1 1 1 13 1 2
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.