Pesquisa Operacional - PEOP

AULA 4: PERT/CPM

Profa. Luciane Alcoforado / Profa. Renata

Academia da Força Aérea

Objetivos

Verifique ao final desta aula se você é capaz de:

1- elaborar a rede de um projeto (Ap); 2- realizar a programação do projeto (Ap); 3- elaborar o cronograma do projeto (Ap);

Roteiro da Aula

  • Gabarito dos exercícios
  • Elaboração da rede do projeto (continuação)
  • Programação/cronograma do projeto
  • Discussões
  • Exercícios Propostos

Gabarito para conferência

Exercício 1

flowchart LR
    1(("1
    ")) -->|A,2| 2(("2
    "))
    2 -->|"B ,4"| 3(("3
    "))
    3 -->|"C ,10"| 4(("4
    "))
    4 -->|"D ,6"| 5(("5
    "))
    4 -->|"E ,4"| 6(("6
    "))
    6 -->|"F ,5"| 7(("7
    (4,8)"))
    5 -->|"G ,7"| 8(("8
    "))
    6 -.->|"0"| 8(("8
    "))
    8 -->|"H ,9"| 9(("9
    "))
    4 -->|"I ,7"| 10(("10
    "))
    10 -.->|"0"| 7(("7
    "))
    7 -->|"J ,8"| 11(("11
    "))
    9 -->|"M ,2"| 14(("14
    "))
    11 -->|"K ,4"| 12(("12
    "))
    11 -->|"L ,5"| 13(("13
    "))
    12 -.->|"0"| 13(("13
    "))
    13 -->|"N ,6"| 14(("14
    "))

Exercício 2

flowchart LR
1 -->|"C ,2"| 4(("4
    "))
     4 -->|"H,3"| 5(("5
    "))
     1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"D ,4"| 3(("3
    "))
    2 -->|"E ,2"| 4(("4
    "))
    2 -->|"F ,7"| 5(("5
    "))  
    1 -->|"B ,6"| 3(("3
    "))
    3 -->|"G,4"| 5(("5
    "))
   

Exercício 3

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"B ,2"| 3(("3
    "))
 2 -->|"C ,3"| 4(("4
    "))
    4 -.->|"0"| 3(("3
    "))
     4 -->|"E,3"| 5(("5
    "))
     4 -->|"H,2"| 6(("6
    "))
     3 -->|"F,5"| 6(("6
    "))
     3 -->|"D,7"| 5(("5
    "))
    
     5 -->|"G,6"| 6(("6
    "))

Erros na Construção da Rede

Observar que:

1- NÃO pode haver ciclos na rede pois uma atividade não pode ser precedente de si mesma. Exemplo de erro:

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"B ,2"| 3(("3
    "))
 3 -->|"C ,3"| 1(("1
    "))

2- NÃO pode haver duas atividades distintas entre dois eventos consecutivos. Exemplo de erro:

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    1 -->|"B ,2"| 2(("2
    "))
 2 -->|"C ,3"| 3(("3
    "))

3- NÃO pode haver omissão de uma atividade existente. Exemplo de erro, falta atividade C.

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    1 -->|"B ,2"| 3(("2
    "))
 2 -->|"D ,3"| 3(("3
    "))

4- NÃO pode ter interdependência inexistente. Exemplo: B inicia junto com A mas a rede apresenta B iniciando depois que A termina.

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"B ,2"| 3(("3
    "))
 1 -->|"C ,3"| 3(("3
    "))

5- Falhar ao NÃO demonstrar relação de interdependência entre atividades. Exemplo: B só pode iniciar depois que A termina, no entanto esse dependência não está na rede.

flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    1 -->|"B ,2"| 3(("3
    "))
 2 -->|"C ,3"| 3(("3
    "))

6- Inclusão desnecessária de atividades fictícias. Exemplo: C só pode iniciar depois de A terminar, no entanto há uma atividade fantasma desnecessária forçando C iniciar depois de A e B terminarem.

flowchart LR
    1 --->|"B ,8"| 3(("3
    "))
 3 -.->|"0"| 2(("2
    "))
     1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"C ,3"| 4(("4
    "))

7- Erros na enumeração dos eventos.

flowchart LR
    1 --->|"B ,8"| 3(("3
    "))
    1(("1
    ")) -->|A,3| 6(("6
    "))
    6 -->|"C ,3"| 5(("5
    "))

Atividades Fantasmas

Atividades fantasmas ou fictícias são artifícios utilizados para facilitar a representação gráfica do projeto mantendo a condição de unicidade de atividades entre eventos consecutivos.

Podem ser de 4 tipos: De interdependência; De codificação; De Comunicação; De integração

Atividade Fantasma de Interdependência

Este tipo de atividade fantasma surge da necessidade de representar, graficamente, uma interdependência que altera a lógica do projeto. Neste caso, uma atividade é dependente de duas ou mais atividades que lhes são predecessoras.

Exemplo: Considere 4 atividades em que A e B iniciam no evento 1, C inicia após A ser concluída e D possui interdependência de A e B.

Maneira Incorreta:

flowchart LR
    1 --->|"B"| 2(("2
    "))
    1(("1
    ")) -->|A| 3(("3
    "))
    3 -->|"C"| 2(("2
    "))
    2 -->|"D"| 4(("4
    "))

Maneira correta:

flowchart LR
    1 --->|"B"| 2(("2
    "))
    1(("1
    ")) -->|A| 3(("3
    "))
    3 -.->|"0"| 2(("2
    "))
    3 -->|"C"| 4(("4
    "))
    2 -->|"D"| 5(("5
    "))
    

Atividade Fantasma de Codificação

A atividade fantasma de codificação serve para garantir a unicidade de atividades paralelas ou seja, atividades com parte ou o total do seu tempo de execução realizado simultaneamente com outra atividade e, cujos eventos de início e de fim sejam os mesmos.

Exemplo: Considere A e B atividades com mesmo evento de início e de fim.

Maneira Incorreta:

flowchart LR
    1 --->|"B"| 2(("2
    "))
    1(("1
    ")) -->|A| 2(("2
    "))

Maneira correta:

flowchart LR
    1 --->|"B"| 2(("2
    "))
    1(("1
    ")) -->|A| 3(("3
    "))
    3 -.->|"0"| 2(("2
    "))
    

ou

flowchart LR
    1 --->|"A"| 2(("2
    "))
    1(("1
    ")) -->|B| 3(("3
    "))
    3 -.->|"0"| 2(("2
    "))
    

ou

flowchart LR
    1(("1
    ")) --->|"A"| 2(("2
    "))
    3(("3
    ")) -->|B| 2(("2
    "))
    1 -.->|"0"| 3(("3
    "))
    

Atividade Fantasma de comunicação

A atividade fantasma de comunicação não expressa relação de interdependência entre atividades. Ela é utilizada com objetivo eminentemente gerencial e visa facilitar o processo de comunicação e garantir que duas ou mais atividades estejam concluídas em um mesmo evento predeterminado. Servem, pois, para apurar o processo de controle, correlacionando datas desejadas.

Ex: Considere dois blocos de atividades A1,A2 e A3 sendo atividades do bloco 1 e B1, B2 atividades do bloco 2. Suponha que o gerente do projeto deseje garantir/verificar que a atividade A2 finalize junto com a atividade B1.

Maneira correta:

flowchart LR
    1(("1
    "))--->|"A1"| 2(("2
    "))
    2(("2
    ")) -->|A2| 3(("3
    "))
    3 -->|"A3"| 4(("4
    "))
    5(("5
    ")) --->|"B1"| 6(("6
    "))
    6(("6
    ")) -->|B2| 7(("7
    "))
    3 -.->|"Comunicação, 0"| 6(("6
    "))
    

Atividade Fantasma de integração

A atividade fantasma de integração tem por objetivo correlacionar redes elaboradas independentemente em uma rede única fazendo com que a rede unificada disponha de mesmos eventos de inicio e fim.

flowchart LR
0(("Inicio")) -.->1
0(("Inicio")) -.->5
    1(("1
    "))-->|"A1"| 2(("2
    "))
    2(("2
    ")) -->|A2| 3(("3
    "))
    3 -->|"A3"| 4(("4
    "))
    5(("5
    ")) --->|"B1"| 6(("6
    "))
    6(("6
    ")) -->|B2| 7(("7
    "))
    7 -.->8(("FIM"))
4 -.->8(("FIM"))
    

Programação de um projeto

Objetiva principalmente a construção de um cronograma que apresente as datas de início e término de cada atividade.

Deve destacar as atividades críticas (do ponto de vista do tempo de execução), as quais requerem atenção especial para que o projeto não atrase.

Deve mostrar a folga disponível para as atividades não-críticas do projeto, pois elas podem ter sua execução retardada ou adiantada, variando de acordo com as disponibilidades de recursos.

Cedo e Tarde de cada evento

flowchart LR
    A(("i 
    (Ci,Ti)"))-->|"(Atividade (ij), duração)"| B(("j 
    (Cj,Tj)"))

\(C_i\): é o cedo do evento i. Corresponde à data mais cedo, contada a partir do início do projeto, para dar início à execução das atividades que emanam deste evento considerando-se que todas as atividades que nele chegam não sofram atrasos na execução.

\(T_i\): é o tarde do evento i. Corresponde à data mais tarde possível para atingir o evento sem que o projeto sofra atrasos.

\(d_{ij}\) é a duração da atividade (ij)

\(td_{ij}\): é o tempo disponível da atividade (ij). \(td_{ij}=T_j-C_i\)

Como obter \(Ci\) e \(Ti\)

  1. Inicialize as datas mais cedo (\(C_i\)) de todas as atividades como zero (\(C_i^0=0, i=1,2,...,n\)).

  2. Para cada atividade A(ij) na rede:

    1. Calcule a data mais cedo (\(C_i\)) de A como o máximo das datas mais cedo (\(C_i\)) das atividades predecessoras de A mais a duração de A (\(d_{ij}\)). \(C_i=\underset{k\in Pred_{(ij)}}{max}\{C_k+d_{ij}\}\)
  3. Inicialize as datas mais tarde (\(T_i\)) das atividades finais como a data mais cedo (\(C_i\)) dessas atividades.

  4. Para cada atividade B(ij) na rede (em ordem inversa):

    1. Calcule a data mais tarde (\(T_i\)) de B como o mínimo das datas mais tarde (\(T_i\)) das atividades sucessoras de B menos a duração de B \(d_{ij}\). \(T_i=\underset{k\in Sucessora_{(ij)}}{min}\{T_k-d_{ij}\}\)
  5. Calcule folga total (FD) de todas as atividades: \(FT_{ij}=td_{ij}-d_{ij}=T_j-C_i-d_{ij}\)

  6. Identifique o caminho crítico, que consiste em atividades com \(FT\) igual a zero.

Exemplo

flowchart LR
    1(("1
    (0,)")) -->|A,2| 2(("2
    (2,)"))
    2 -->|"B ,4"| 3(("3
    (6,)"))
    3 -->|"C ,10"| 4(("4
    (16,)"))
    4 -->|"D ,6"| 5(("5
    "))
    4 -->|"E ,4"| 6(("6
    "))
    6 -->|"F ,5"| 7(("7
    (4,8)"))
    5 -->|"G ,7"| 8(("8
    "))
    6 -.->|"0"| 8(("8
    "))
    8 -->|"H ,9"| 9(("9
    "))
    4 -->|"I ,7"| 10(("10
    "))
    10 -.->|"0"| 7(("7
    "))
    7 -->|"J ,8"| 11(("11
    "))
    9 -->|"M ,2"| 14(("14
    "))
    11 -->|"K ,4"| 12(("12
    "))
    11 -->|"L ,5"| 13(("13
    "))
    12 -.->|"0"| 13(("13
    "))
    13 -->|"N ,6"| 14(("14
    "))

\(C_1=0 \rightarrow C_2=0+2=2 \rightarrow C_3=2+4=6 \rightarrow C_4=6+10=16 \rightarrow\)

\(C_5=16+6=22\rightarrow C_6=16+4=20 \rightarrow C_{10}=16+7=23\)

\(C_8=max\{22+7,20+0\}=29\rightarrow C_{9}=29+9=38\)

\(C_7=max\{20+5,23+0\}=25\rightarrow C_{11}=25+8=33\rightarrow C_{12}=33+4=37\)

\(C_{13}=max\{33+5,37+0\}=38\)

\(C_{14}=max\{38+2,38+6\}=44\)

\(T_{14}=44 \rightarrow T_{13}=44-6=38 \rightarrow T_{12}=38-0=38\)

\(T_{9}=44-2=42 \rightarrow T_{8}=42-9=33\rightarrow T_{5}=33-7=26\)

\(T_{11}=min\{38-5,38-4\}=33\)

\(T_{7}=33-8=25\rightarrow T_{10}=25-0=25\)

\(T_{6}=min\{33-0,25-5\}=20\)

\(T_{4}=min\{26-6,20-4, 25-7\}=16\)

\(T_{3}=16-10=6 \rightarrow T_{2}=6-4=2\rightarrow T_{1}=2-2=0\)

flowchart LR
    1(("1
    (0,0)")) -->|A,2| 2(("2
    (2,2)"))
    2 -->|"B ,4"| 3(("3
    (6,6)"))
    3 -->|"C ,10"| 4(("4
    (16,16)"))
    4 -->|"D ,6"| 5(("5
    (22,26)"))
    4 -->|"E ,4"| 6(("6
    (20,20)"))
    6 -->|"F ,5"| 7(("7
    (25,25)"))
    5 -->|"G ,7"| 8(("8
    (29,33)"))
    6 -.->|"0"| 8(("8
    (29,33)"))
    8 -->|"H ,9"| 9(("9
    (38,42)"))
    4 -->|"I ,7"| 10(("10
    (23,25)"))
    10 -.->|"0"| 7(("7
    (25,25)"))
    7 -->|"J ,8"| 11(("11
    (33,33)"))
    9 -->|"M ,2"| 14(("14
    "))
    11 -->|"K ,4"| 12(("12
    (37,38)"))
    11 -->|"L ,5"| 13(("13
    "))
    12 -.->|"0"| 13(("13
    (38,38)"))
    13 -->|"N ,6"| 14(("14
    (44,44)"))

Identificando o caminho crítico

Obtenha a folga total de todas as atividades, verificando quais são nulas.

\(FT_A=2-0-2=0\); \(FT_B=6-2-4=0\); \(FT_C=16-6-10=0\); \(FT_D=26-16-6=4\); \(FT_E=20-16-4=0\); \(FT_F=25-20-5=0\); \(FT_G=33-22-7=4\); \(FT_H=42-29-9=4\); \(FT_I=25-16-7=2\); \(FT_J=33-25-8=0\); \(FT_K=38-33-4=1\); \(FT_L=38-33-4=0\); \(FT_M=44-38-2=4\); \(FT_N=44-38-6=0\)

Destaque em vermelho as atividades com folga nula e observe o caminho crítico: A,B,C,E,F,J,L,N

flowchart LR
    1(("1
    (0,0)")) -->|A,2| 2(("2
    (2,2)"))
    linkStyle 0 stroke:red
    2 -->|"B ,4"| 3(("3
    (6,6)"))
    linkStyle 1 stroke:red
    3 -->|"C ,10"| 4(("4
    (16,16)"))
    linkStyle 2 stroke:red
    4 -->|"D ,6"| 5(("5
    (22,26)"))
    4 -->|"E ,4"| 6(("6
    (20,20)"))
    linkStyle 4 stroke:red
    6 -->|"F ,5"| 7(("7
    (25,25)"))
    linkStyle 5 stroke:red
    5 -->|"G ,7"| 8(("8
    (29,33)"))
    6 -.->|"0"| 8(("8
    (29,33)"))
    8 -->|"H ,9"| 9(("9
    (38,42)"))
    4 -->|"I ,7"| 10(("10
    (23,25)"))
    10 -.->|"0"| 7(("7
    (25,25)"))
    7 -->|"J ,8"| 11(("11
    (33,33)"))
    linkStyle 11 stroke:red
    9 -->|"M ,2"| 14(("14
    "))
    11 -->|"K ,4"| 12(("12
    (37,38)"))
    11 -->|"L ,5"| 13(("13
    "))
    linkStyle 14 stroke:red
    12 -.->|"0"| 13(("13
    (38,38)"))
    13 -->|"N ,6"| 14(("14
    (44,44)"))
    linkStyle 16 stroke:red

Atividades críticas: A,B,C,E,F,J,L,N

Caminho crítico (ÚNICO): A-B-C-E-F-J-L-N

Duração do projeto: 44 semanas (confere com a soma da duração das atividades do caminho crítico)

Discussões

Compartilhe suas dúvidas ou insights.

Prepare-se para a próxima aula: Revisar o conteúdo das aulas anteriores e realizar os exercícios propostos

Exercícios Propostos

1

O projeto apresentado na tabela a seguir, possui a seguinte rede (já construída em exercício anterior). Obtenha os cedos e tardes de cada evento, a duração do projeto e identifique quais são as atividades críticas, destacando o caminho crítico na rede.

Atividades Precedente Duração (Semanas)
A - 3
B - 6
C - 2
D A 4
E A 2
F A 7
G B,D 4
H C,E 3
flowchart LR
1 -->|"C ,2"| 4(("4
    "))
     4 -->|"H,3"| 5(("5
    "))
     1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"D ,4"| 3(("3
    "))
    2 -->|"E ,2"| 4(("4
    "))
    2 -->|"F ,7"| 5(("5
    "))  
    1 -->|"B ,6"| 3(("3
    "))
    3 -->|"G,4"| 5(("5
    "))
   

2

Idem ao exercício anterior

Atividades Precedente Duração (Semanas)
A - 3
B A 2
C A 3
D B,C 7
E C 3
F B,C 5
G D,E 6
H C 2
flowchart LR
 1(("1
    ")) -->|A,3| 2(("2
    "))
    2 -->|"B ,2"| 3(("3
    "))
 2 -->|"C ,3"| 4(("4
    "))
    4 -.->|"0"| 3(("3
    "))
     4 -->|"E,3"| 5(("5
    "))
     4 -->|"H,2"| 6(("6
    "))
     3 -->|"F,5"| 6(("6
    "))
     3 -->|"D,7"| 5(("5
    "))
    
     5 -->|"G,6"| 6(("6
    "))