Você está na página 1de 8

ALGORITMO DA FOLGA MNIMA

PARA DETERMINAO DO CAMINHO K-CRTICO


EM REDES PERT

Jos Luiz Contador


Faculdade de Engenharia da UNESP / Campus de Guaratinguet - Departamento de Produo
E-mail: jluiz@feg.unesp.br - Fax: (012) 525-2466

Abstract
A fundamental problem in project management is to identify the longest paths of
the project. The literature has addressed attention to the critical path only but, in general,
there are others important paths to be identified in the project. Such paths are the second-
longest, the thirty-longest, etc. This work presents an algorithm to identify an arbitrarily
longest path in PERT networks. The procedure is based on the fact that the activity total
slack time is defined by the longest path which includes that activity.

rea: Gerncia da Produo


Keywords: PERT/CPM, Project Management, Longest Paths

1. Introduo
O objetivo deste trabalho apresentar um procedimento para identificar os caminhos
de maior durao do projeto, os quais estamos chamando de caminhos K-crticos do
projeto. Por definio, um caminho incidente no vrtice j uma seqncia de atividades
interligando o evento inicio do projeto ao vrtice j e, um caminho no projeto, uma
seqncia de atividades interligando o evento inicio do projeto ao evento fim do projeto. A
durao esperada de um caminho obtida pela soma das duraes esperadas de cada uma
das atividades pertencentes ao caminho. Quando K = 1, obtm-se o caminho (ou os
caminhos) de maior durao do projeto (aquele conhecido tradicionalmente por caminho
crtico do projeto). Quando K = k, obtm-se aquele caminho, ou caminhos que possuem a
k-sima maior durao no projeto.
Conhecer os caminhos de maior durao em um projeto de grande utilidade para
seu gerenciamento. Para exemplificar, suponha-se que se deseje reduzir a durao esperada
de um projeto para atender a um prazo desejado de concluso (durao esperada de um
projeto aquela obtida atravs do planejamento PERT utilizando-se as duraes esperadas
das atividades). Evidentemente, necessrio antes, identificar os caminhos do projeto que
esto com durao superior ao prazo desejado para ento se decidir sobre quais atividades
deve-se atuar para alcanar o objetivo almejado.
O problema de determinao do caminho K-Crtico em redes PERT foi estudado
por Dodin [1984]. O algoritmo apresentado busca determinar os k caminhos mais longos no
projeto onde as atividades possuem durao probabilstica. Esse algoritmo possui as
seguintes caractersticas:
1. a durao das atividades do projeto deve possuir distribuio de probabilidade discreta (o
autor apresenta uma metodologia para discretizar a distribuio de probabilidade quando
esta for contnua);
2. identifica os k caminhos do projeto que dominam os demais caminhos em probabilidade
(um caminho P1 domina o caminho P2 em probabilidade se P[T(P1) > T(P2)] >
P[T(P2) > T(P1)], onde T(Pj), j = 1, 2 a durao do caminho Pj);
3. o procedimento apresentado nem sempre conduz soluo exata (trata-se, portanto, de
uma heurstica)
O algoritmo de Dodin [1984] determina os k caminhos que dominam em
probabilidade os demais caminhos da rede atravs de um processo de programao
dinmica. Ao explorar um determinado n j da rede, o algoritmo identifica os caminhos que
chegam at esse n, olhando apenas para os ns vizinhos e anteriores a j, para os quais j
foram determinados os caminhos dominantes na iterao anterior. Percorre-se a rede a
partir do seu n inicial e explora-se cada um dos demais ns da rede atravs de um processo
"forward", at alcanar o n final da rede. A complexidade do algoritmo de Dodin de
ordem O(CKn2), sendo C de ordem O([R]2), onde K a quantidade de caminhos
dominantes que se deseja, n o nmero de ns da rede e R o nmero mximo possvel de
valores discretos aleatrios que a durao das atividades do projeto pode assumir. At onde
nosso conhecimento pde alcanar, o algoritmo desenvolvido por Dodin [1984] o nico
estudo relevante sobre o assunto apresentado na literatura.
Neste trabalho, apresentado um algoritmo para identificar o(s) caminho(s) de K-
sima maior durao projeto, K=1, 2, 3,..., k (deve-se aplicar o algoritmo para cada valor
de K que se deseja), cujas caractersticas so:
1. aplica-se a projetos cuja durao das atividades determinstica ou probabilstica e, neste
caso, sua distribuio de probabilidade pode ser discreta ou contnua;
2. apresenta a soluo exata para o problema caso as atividades possuam durao
determinstica, ou caso a durao de todos os caminhos do projeto possa ser aproximada
para uma distribuio de probabilidade simtrica em torno da sua mdia (Normal, por
exemplo).
3. permite identificar o caminho (ou os caminhos) K-crticos, para qualquer valor de K = k0
sem que haja a necessidade de identificar os caminhos para K < k0.
O algoritmo se baseia na constatao de que a folga total de uma atividade
definida pelo caminho mais longo que passa por essa atividade. Sua complexidade
computacional de ordem O(mK .n2), onde mK o nmero de caminhos K-crticos do
projeto.

2. O Algoritmo da Folga Mnima


Antes de descrevermos o algoritmo da folga mnima, vamos apresentar duas
definies e a notao adotada.
Definio 1. Seja G(N, A) a Rede de Eventos do projeto, onde A o conjunto de arcos
{(ar), r = 1, 2, ... m} da rede, representando as atividades do projeto, e N o conjunto de
vrtices ou ns da rede, os quais sero indexados por {i; i= 1, 2, 3,..., n}. O evento de
nmero 1 representa o instante de incio do projeto e o evento de nmero n representa o
instante de trmino do projeto. Uma atividade do projeto pode ser representada,
alternativamente, pelo prprio arco correspondente, (ar), ou pelo par (i, j) de eventos que a
definem, onde i < j, para toda atividade (i, j).
Definio 2. Dois eventos da rede so ditos eventos adjacentes se existe uma e uma s
atividade entre ambos; e duas atividades so ditas atividades adjacentes se existe um
evento comum a ambas que representa o fim de uma das atividades e o incio da outra.
Vamos adotar a notao seguinte para cada um dos parmetros relacionados, cujas
definies sero consideradas como conhecidas do leitor, mas que podem ser obtidas, por
exemplo, em Contador et Alli (Captulo 20), 1997:
Tij, a varivel aleatria durao da atividade (i, j) A:
tij, uma realizao da varivel aleatria Tij;
[Tij] a durao mdia da atividade (i, j)
Fij, a folga total para a atividade (i, j);
P , um caminho na rede unindo o n inicial ao n final da rede;
Pqr, um caminho na rede unindo o n q ao n r
P /(i , j ) ,


um caminho na rede unindo o n inicial ao n final, passando pela


atividade (i, j).
T( P ), a durao do caminho P ;
F( P ), a folga do caminho P ;
Ei e Li, as datas mais cedo e mais tarde do evento i, respectivamente
O algoritmo proposto para determinar o caminho K-crtico numa rede PERT de
extrema simplicidade. Ele se baseia na constatao de que a folga total de uma atividade do
projeto definida pelo caminho mais longo que passa por essa atividade. Se existir um
caminho K-crtico com folga F(PK), existir ao menos uma atividade (i, j) pertencente
exclusivamente a ele, a qual possuir folga Fij = F(PK). Se, por exemplo, deseja-se
determinar o segundo caminho mais longo do projeto (K=2), deve-se ento localizar,
inicialmente, uma atividade com a segunda menor folga total do projeto. Seja (j, k) esta
atividade. A partir dessa atividade, identifica-se a seguinte, que aquela atividade adjacente
a (j, k), com incio no evento k e cuja folga total mnima. Assim, sucessivamente, atravs
de um processo "forward", at que a ltima atividade identificada conduza ao evento fim do
projeto. Procede-se de forma idntica, atravs de um processo "backward", a partir do n j
da atividade (j, k) inicialmente identificada, at que a ltima atividade escolhida conduza ao
evento inicio do projeto. O caminho K-crtico ser formado pela atividade (j, k) unida aos
dois caminhos parciais identificados pelos processos "forward" (aquele que une o n k ao
n n) e "backward" (aquele que une o n j ao n 1). Se, durante o processo "forward" ou
"backward" existir mais de uma atividade a ser escolhida, isto significa que existem outros
caminhos alternativos de mesma durao. Essas alternativas devem tambm ser exploradas,
caso deseje-se identificar todos os caminho K-crticos do projeto.
Exemplo 1. A descrio do algoritmo extensiva e no condiz com sua simplicidade. Isto,
porque necessrio descrever um procedimento para identificar todos os possveis
caminhos K-crticos presentes no projeto. Assim, para facilitar sua compreenso, vamos,
antes de descrev-lo, aplic-lo rede da Figura 1, com o objetivo de determinar o segundo,
ou os segundos caminhos mais longos do projeto. O par de valores associados a cada arco
da rede da Figura 1 representam a durao mdia e a folga total da atividade,
respectivamente.

Se queremos o segundo caminho mais longo do projeto, vamos identificar uma


atividade com a segunda menor folga total. As atividades (1, 3) e (2, 4), com folga total
igual a 6, satisfazem essa condio. Escolhemos, arbitrariamente, a atividade (1, 3) para
semente do caminho a identificar. A partir do n 3, identificamos, dentre os ns
sucessores e adjacentes a ele, aquele relacionado com a atividade com menor folga total.
(temos duas escolhas: ns 4 e 5). Assim, evolumos para o n 4. Aplicando o mesmo
raciocnio sobre o n 4, evolumos para o n final da rede, n 5. Como a atividade
inicialmente identificada tem seu incio no primeiro n da rede, no h necessidade de
executar o processo "backward" e um dos caminhos desejados est ento identificado:
caminho {1, 3, 4, 5}. Como temos ainda a atividade (2, 4) com folga igual a 6 e esta
atividade no pertence ao caminho identificado, existe ento um outro caminho com a
segunda durao mais longa no projeto. Escolhemos essa como embrio desse novo
caminho. Partindo do n final desta atividade, evolumos para o ltimo n da rede.
Retornando ao n inicial da atividade (2, 4), pelo processo "backward" alcanamos o
primeiro n da rede e, assim, identificamos o outro caminho desejado, qual seja, caminho
{1, 2, 4, 5}. Ambos os caminhos identificados tm durao mdia igual a 19 unidades de
tempo. O caminho crtico do projeto identificado pelas atividades com folga total nula, ou
seja, caminho {1, 2, 3, 4, 5}, cuja durao mdia de 25 unidades de tempo, exatamente 6
unidades de tempo maior que os caminhos de segunda maior durao.

Figura 1 - Rede para desenvolvimento do Exemplo 1.

Para identificar o caminho K-crtico do projeto, K = k*, implemente os passos do


algoritmo fornecido a seguir.
Passo 1. Construa a rede G(N, A) do projeto, enumere os ns da rede de forma que, j > i,
para toda atividade (i, j) A e, com tij = [Tij] para todo (i, j) A, determine a
folga total Fij para todas as atividades (i, j) A.
Passo 2. Escolha uma atividade qualquer cujo valor de sua folga total seja a k*-sima
menor folga total dentre todos valores de folgas totais existentes.
Seja (j, k) essa atividade. Se existir mais de uma atividade nessas condies,
escolha aquela cujo valor de j seja mnimo e identifique as demais incluindo-as
no conjunto A(K = k*). Crie os conjuntos ordenados de ns I e L, os quais,
inicialmente, so constitudos por I ={j} e L = {k}.
Passo 3. Se j = 1 e k = n, siga para o Passo 15 (um caminho K-crtico formado pela
atividade (j, k) foi identificado)
Se j = 1 e k n, aplique os Passos 4 e 5 siga para o Passo 8.
Se j 1 e k = n, siga para o Passo 6.
Se j 1 e k n, siga para o Passo 4.
Passo 4. A partir do n k da rede, escolha o n N, tal que Fj = min [Fk ], para todos


 

ns > k e adjacentes a k e inclua-o no conjunto L. Caso existam dois ou mais




ns do tipo , escolha aquele com maior nmero atribudo e identifique os




demais, incluindo-os no conjunto Lk ={ p; p=2, 3,.., P(k)}.




Passo 5. Se = n, siga para o Passo 6; caso contrrio, faa (k,


  ) = (j, k) e retorne ao
Passo 4.
Passo 6. A partir do n j da rede, escolha o n i N, tal que Fij = min [Fij], para todos ns
i < j e adjacentes a j e inclua-o no conjunto {I). Caso existam dois ou mais ns
do tipo i, escolha aquele com menor nmero atribudo e identifique os demais
incluindo-os no conjunto Ij = {ir, r = 2, 3,..., R(j)}.
Passo 7. Se i = 1, siga para o Passo 7; caso contrrio, faa (i, j) = (j, k) e retorne ao
Passo 6.
Passo 8. Um Caminho k*-crtico, Pk* , foi identificado, o qual passa pelos ns { I L }.
Passo 9. Se Lk = , para todo k, siga para o Passo 12; caso contrrio; repita os Passos 4 e
5 a partir de cada um dos ns dos conjuntos Lk, comeando por aquele com
menor nmero atribudo, eliminando-o do conjunto Lk. Sendo p este n, a 

atividade a explorar (k, p), onde k o ndice que indica o conjunto Lk. Faa,


inicialmente, L = { p } e I = {ir Ph, r = 1, 2,..., R; tq iR= k}, onde Ph aquele




caminho K-crtico que, durante o seu processo de busca, originou o conjunto Lk.
Passo 10. Ao atingir o n n, outro caminho k*-crtico ter sido identificado, o qual passa
pelos ns {I L}.
Passo 11. Aplique os Passos 9 e 10 at que todos os ns alternativos p, p = 2, 3,..., P(k),


tenham sido explorados (aplicao dos Passos 4 e 5). Cada vez que se atingir o
n final n, ter sido identificado um novo caminho k*-crtico. Ao final desse
processo teremos identificados m caminhos k*-crticos.
Passo 12. Se Ij = , para todo j, siga para o Passo 15. Caso contrrio, repita os Passos 6 e
7 a partir de cada um dos ns dos conjuntos Ij, comeando por aquele com
maior nmero atribudo, eliminando-o do conjunto Ij. Sendo ir este n, a
atividade a explorar (ir, j), onde j o ndice do conjunto Ij. Faa, inicialmente, I
= {ir} e Lh = { s Ph , s = S, S+1,..., n; tq S= j}, onde Ph, h = 1, 2, ..., m, so os
 

caminhos que originaram o conjunto Lk, durante o seu processo de busca.


Passo 13. Ao atingir o n 1, tero sido identificados outros m caminhos k*-crticos,
formados por cada um dos m conjuntos de ns {I Lh}, h = 1, 2,..., m.
Passo 14. Aplique os Passos 12 e 13 at que todos os ns alternativos Ij, r= 2, 3,..., R(j),
tenham sido explorados (aplicao dos Passos 6 e 7). Cada vez que se atingir o
n inicial, ter sido identificado um novo conjunto de m caminhos K-crticos.
Passo 15. Aplique os passos 2 a 14 para cada uma das atividades do conjunto A(K = k*)
que no esteja presente em nenhum dos caminhos K-crticos identificados e pare.

Exemplo 2. Seja a rede representada pela Figura 2, na qual estamos supondo todos os
caminhos crticos (portanto, todas as atividades da rede tero folga total nula). Vamos
aplicar o algoritmo descrito para identificar todos os caminhos de maior durao da rede
(que so todos os caminhos da rede). A aplicao do algoritmo pode ser acompanhada pela
Tabela 1.
Na aplicao do passo 2, foi escolhida a atividade (j, k) = (4,5) com o objetivo de
melhor explorar os passos do algoritmo. O conjunto A(K = 1) composto por todas as
demais atividades da rede. Ao explorar a atividade (4,5), no processo forward, observa-se
trs ns a serem escolhidos (ns 6, 7 e 8). Aquele de maior nmero (n 8) foi introduzido
no conjunto L, isto , 1= 8, e os demais originaram a criao do conjunto L5 = { 2=6, 3=7}.
  

Como n foi includo em L, volta-se atividade (4, 5) e explora-se o n 4, agora atravs do


processo backward. Ao fazer isso, observa-se trs ns do tipo i (ns 1, 2 e 3). Escolhe-se o
de menor nmero (n 1) para inclu-lo no conjunto I, isto , i1 = 1, e cria-se o conjunto I4 =
(i2=2, i3=3). Como o n 1 foi includo em I, obteve-se o primeiro caminho K-crtico, dado
por P1 = (1, 4, 5, 8).

Figura 2 - Rede para desenvolvimento do Exemplo 2.

(j, k) i  Ij Lk I L Ph
(4, 5) 8 L5 = {6, 7} {4} {5, 8}
(4, 5) 1 I4 = {2, 3} {1, 4} {5, 8} P1 = {1, 4, 5, 8}
(5, 6) 8 L6 = {7} {1, 4, 5} {6, 8} P2 = {1, 4, 5, 6, 8}
(5, 7) 8 {1, 4, 5} {7, 8} P3 = {1, 4, 5, 7, 8}
(6, 7) 8 {1, 4, 5, 6} {7, 8} P4 = {1, 4, 5, 6, 7, 8}
(3, 4) 1 I3 = {2} {1, 3} {4, 5, 8} P5 = {1, 3, 4, 5, 8}
{4, 5, 6, 8} P6 = {1, 3, 4, 5, 6, 8}
{4, 5, 7, 8} P7 = {1, 3, 4, 5, 7, 8}
{4, 5, 6, 7, 8} P8 = {1, 3, 4, 5, 6, 7, 8}
(2, 4) 1 {1, 2} {4, 5, 8} P9 = {1, 2, 4, 5, 8}
{4, 5, 6, 8} P10 = {1, 2, 4, 5, 6, 8}
{4, 5, 7, 8} P11 = {1, 2, 4, 5, 7, 8}
{4, 5, 6, 7, 8} P12= {1, 2, 4, 5, 6, 7, 8}
(2, 3) 1 {1, 2} {3, 4, 5, 8} P13 = {1, 2, 3, 4, 5, 8}
{3, 4, 5, 6, 8} P14 = {1, 2, 3, 4, 5, 6, 8}
{3, 4, 5, 7, 8} P15 = {1, 2, 3, 4, 5, 7, 8}
{3, 4, 5, 6, 7, 8} P16= {1, 2, 3, 4, 5, 6, 7, 8}
Tabela 1 - Aplicao do Algoritmo para a rede da Figura 2.

A prxima atividade a explorar (j, k) = (5, 6) (j=5 o ndice do conjunto L5 e k=6


o n do conjunto L5 com menor nmero atribudo). Como o conjunto L5 surgiu durante a
busca do caminho P1, ento, para explorar a atividade (5, 6), define-se I = {ir P1, r = 1, 2,
3} = {1, 4, 5}, pois i3 = j (n 5). Ao explorar essa atividade, verifica-se que existem dois
ns a serem includos em L (ns 7 e 8). Escolhe-se o de maior nmero (n 8) e cria-se o
conjunto L6 = {7}. Obtm-se um novo caminho K-crtico P2= {1, 4, 5, ,6 ,8}. Deve-se, em
seguida, explorar o arco (j, k) = (5, 7) (j=5 o ndice do conjunto L5 e k=7 o nico n
que restou desse conjunto), utilizando o mesmo conjunto I. Com isso, L5 torna-se vazio e
obtm-se o caminho P3={1, 4, 5, 7, 8}. Em seguida, explora-se a atividade (6, 7) originada
do conjunto L6 = {7}, obtendo-se o caminho P4={1, 4, 5, 6, 7, 8}. Deve-se, em seguida,
explorar a atividade (j, k) = (3, 4), definida pelo conjunto I4 = {2, 3}, onde j definido pelo
n de maior nmero deste conjunto e k definido pelo ndice desse conjunto. Para explorar
a atividade (3, 4) deve-se definir quatro conjuntos Lh , cada um originado de um dos
caminhos Ph, (h = 1, 2, 3 e 4), identificados anteriormente. Por exemplo, para h=1, tem-se
L1 = { i P1, i =2, 3, 4}={4, 5, 8}, uma vez que 2 = k (n 4). Ao explorar a atividade (3,
 

4), observa-se dois ns do tipo i (ns 1 e 2). Inclui-se o n 1 em I e cria-se o conjunto I3 =


{2}. obtm-se, ento outros quatro caminhos K-crticos (P5, P6, P7 e P8). Deve-se, em
seguida, explorar a atividade (2, 4), definida por I4 = {2}, utilizando os mesmos conjuntos
Lh , o que origina outros quatros caminhos K-crticos (P9, P10, P11 e P12). Finalmente,
explora-se a atividade (2, 3) originada do conjunto I3 = {2}. Como esse conjunto surgiu da
busca dos caminhos P5, P6, P7 e P8, deve-se definir quatro conjuntos Lk, a partir desses
caminhos, todos eles tendo como primeiro elemento o n 3. Ao incluir o n 1 no conjunto I,
obtm-se outros quatros caminhos, perfazendo um total de 16 caminhos. Ao aplicar o passo
15, verifica-se que no existe nenhuma outra atividade a ser explorada, uma vez que todas
as atividades do conjunto A(K = 1) pertencem a pelo menos um caminho identificado.

3. As bases Tericas do Algoritmo


Antes de apresentarmos as bases tericas que sustentam o algoritmo, vamos
determinar seu nvel de complexidade computacional. Observe que, para determinar as
folgas de cada atividade da rede (aplicao do passo 1), necessrio identificar as datas
mais cedo e mais tarde de cada evento da rede. Para identificar a data mais cedo de um
evento i, deve-se consultar todos os ns adjacentes a ele. No pior caso, podem existir (n-i)
n
(n i ) = n(n 1) / 2 ]=O operaes,


ns adjacentes ao n i. Assim, necessrio realizar [


i =1
onde n nmero total de ns da rede. Ordem de complexidade O(n2), portanto. A
determinao das datas mais tarde dos eventos similar e, portanto, de mesma ordem de
complexidade. Como o nmero de atividades numa rede limitado tambm pelo valor de O,
a determinao das folgas da atividades tambm de ordem O(n2). Assim, a execuo do
passo 1 do algoritmo de ordem O(n2). Os demais passos do algoritmo implicam na
localizao de uma atividade (j, k) com a k-sima menor folga (busca sobre O valores, n
mximo) e na aplicao dos processos forward, a partir do n k, e backward, a partir do n
j. A aplicao do processo forward requer uma comparao entre todas as atividades
n
( n i) operaes. O


sucessoras e adjacentes aos ns k, k+1, ..., n, o que implica


i=k
processo backward, requer uma comparao entre todas as atividades antecessoras e
j
( j i) operaes. Assim, esses


adjacentes aos ns j, j-1, ..., 1, o que implica


i =1
n j
( n i) + ( j i) , operaes. Como j < n, os
 

procedimentos requerem, no mximo,


i=k i =1
procedimentos forward e backward esto tambm limitados pelo valor de O. Agora,
observe-se que necessrio aplicar esses procedimentos tantas vezes quantos forem o
nmero de caminhos com a extenso que se deseja. Se existirem mK caminhos K-crticos, a
ordem do algoritmo ser O(mK .n2), ou seja, de complexidade polinomial.
Proposio 1. A folga total de uma atividade igual a folga do maior caminho que passa
por essa atividade.
max
Demonstrao. Seja (i, j) uma dada atividade da rede PERT e P1n /( i , j) o maior caminho
entre o primeiro e o ltimo ns da rede passando pela atividade (i, j). A folga do caminho
max max max
P1n /( i, j) , por definio, F( P1n /( i, j) ) = Ln T( P1n /( i, j) ), supondo E1 = 0. A folga total da
atividade (i, j) , por definio, Fij = (Lj - Ei -tij). Mas Lj = Ln - T( P max
jn ) e Ei = E1 +

T( P1imax )=T( P1imax ) (supondo sempre E1=0), onde P1imax o maior caminho entre os ns 1 e
i da rede e P max
jn o maior caminho entre os ns j e n. Assim, Fij = Ln-T( P max max
jn )-T( P1i )-t ij.

Mas, T( P1imax )+tij+T( P max max max


jn )=T( P1n /( i , j) ). Portanto, Fij = F( P1n /( i , j) ).
c.q.d.
Como conseqncia imediata da Proposio 1, temos:
a). um caminho K-crtico do projeto passa por uma atividade que possui a k-sima menor
folga;
b) se entre duas atividades, uma possui a menor folga total, ento o maior caminho que
passa por essa atividade mais longo do que o maior caminho que passa pela outra
atividade de menor folga.
Proposio 2. Sejam Z1 e Z2 duas variveis aleatrias com distribuio de probabilidades
simtrica em torno de suas respectivas mdias 1 e 2. Se 1 > 2, ento
Pr[Z1 > Z2] > Pr[Z2 > Z1].
Demonstrao. Queremos demonstrar que Pr[Z1 > Z2]-Pr[Z2 > Z1]> 0.
Pr[Z1 > Z2] + Pr[Z2 > Z1]=1. Ento Pr[Z1 > Z2]=1-Pr[Z2 > Z1].
Pr[Z1 > Z2]-Pr[Z2 > Z1]=1- Pr[Z2 > Z1] - Pr[Z2 > Z1]=1-2.Pr[Z2 > Z1]=
=1-2.Pr[Z2 > Z1-(1-2)+(1-2)]=1-2.Pr[(Z2-2)-(Z1-1)>(1-2)]
Mas, se Z1 e Z2 so variveis com distribuio de probabilidades simtricas em torno
de suas respectivas mdias 1 e 2, ento, (Z2-2) e (Z1-1) so tambm so simtricas e
possuem mdia igual a zero, assim como (Z2-1)-(Z2-2). Ento, Pr[(Z2-2)-(Z1-1)>(1-
2)]<1/2, pois 1>2. Portanto, Pr[Z1 > Z2]-Pr[Z2 > Z1]>0
c.q.d.
Como conseqncia imediata da proposio 2, tem-se que, se todos os caminhos do
projeto tiverem durao com distribuio de probabilidade simtrica em torno da mdia
(distribuio Normal, por exemplo), um caminho no projeto P1 dominar em probabilidade
outro caminho P2 se a durao mdia do primeiro for maior do que a durao mdia do
segundo. Neste caso, aplicando-se o algoritmo proposto a partir das duraes mdias das
atividades, identifica-se os verdadeiros caminhos k-crticos do projeto. Evidentemente, se as
atividades do projeto possurem durao determinstica, o algoritmo tambm fornecer a
soluo exata, uma vez que a funo determinstica pode ser entendida como uma
distribuio de probabilidades simtrica com desvio-padro igual a zero.
Observe-se que impossvel identificar a priori um caminho K-crtico no projeto,
uma vez que a durao de caminhos uma varivel aleatria. O que se pode identificar o
caminho com maior probabilidade de ser o caminho K-crtico do projeto. A identificao
ser exata se todos (ou pelo menos os mais longos) caminhos do projeto possurem durao
com distribuio de probabilidades simtrica. Assim, a efetividade do algoritmo proposto
pode ser testada atravs de um processo de simulao. Gera-se uma rede aleatria e, para
cada uma das suas atividades, duraes tambm aleatrias, segundo uma determinada lei de
probabilidade (distribuio Beta, por exemplo), e determina-se os caminhos K-crticos, K =
1, 2, 3, etc. Repetindo muitas vezes esse procedimento, pode-se determinar o caminho que
possuem maior probabilidade de ser o k-simo caminho K-crtico do projeto e confrontar
com aquele k-simo caminho K-crtico determinado pelo procedimento proposto. de se
esperar que para redes de grande porte o algoritmo fornea solues exatas, uma vez que
nessas rede, os caminhos sero compostos por uma grande seqncia de atividades, o que
favorece a aproximao da sua durao para uma distribuio Normal de probabilidades.

Referncias Bibliogrficas
1. CONTADOR, J. C. e outros. Gesto de Operaes: A Engenharia de Produo a servio
da modernidade da empresa. Edgard Blcher, So Paulo, 1997.
3. DODIN, B. Determing the K Most Critical Paths in PERT Networks.Operations
Research, Vol 32, No 4. Julho-agosto de 1984.