Está en la página 1de 5

Lectura 6: Anlisis de Caminos Crticos

Temas:
6.1 Grafos de actividades
6.2 Grafos de eventos
6.3 Tiempo de terminacin mnimo
6.4 Tiempo de terminacin mximo
6.5 Tiempo de espera
Bibliografa:
- Estructuras de Datos en Java, Mark Weiss, Addison Wesley, 2000, captulo 14.

6.1 Grafos de actividades


Un grafo de actividades es un grafo acclico en el que cada vrtice representa una actividad a ser
realizada, y las aristas representan relaciones de precedencia entre las actividades. Estos grafos
son muy comunes en la planificacin de tareas asociadas a un proyecto. En la Figura 1, podemos
observar un ejemplo de una lista de tareas, y sus precedencias, tomadas de un Software de
Administracin de proyectos como Microsoft Project, u OpenProj. En este caso, aunque
representado de una manera diferente, la estructura de datos utilizada por este tipo de software
para representar actividades y dependencias entre las mismas, sigue siendo un grafo acclico.

Figura 1. Actividades y precedencias en un proyecto de Software.


Materia: Algoritmos y Estructuras de Datos 2
Profesor: Claudio Ochoa

-1-

Fuente: http://www.arquitectuba.com.ar/curso-microsoft-project-gratis/el-ambiente-de-trabajo-de-microsoftproject-2000/tabla-tareas-curso-microsoft-project.gif

En la Figura 2 observamos un grafo similar al de la Figura 1, empleando una representacin


similar a la que hemos empleado en las lecturas anteriores. En este caso, cada vrtice representa
una actividad del proyecto, y el subndice mostrado en el nombre del vrtice indica el tiempo que
lleva en completar dicha actividad, en alguna unidad determinada (por ejemplo, meses o
semanas).
C3

F3

A3
D2

G2

E1

K4

H1

B2

Figura 2. Actividades y precedencias en un proyecto de Software.

Los grafos de actividades son muy interesantes ya que permiten contestar varias preguntas muy
importantes en proyectos de estas caractersticas, tales como por ejemplo:

Cul es el menor tiempo de terminacin del proyecto? Ya veremos algoritmos para


responder a esta pregunta. En el ejemplo de la Figura 2, la respuesta sera 10 unidades de
tiempo.

Qu actividades se pueden retrasar, y por cuanto tiempo, sin afectar el tiempo mnimo de
terminacin? Tambin estudiaremos en esta Lectura algoritmos para responder este tipo
de preguntas. Para el ejemplo de la Figura 2, no se pueden retrasar A, C, F, o H. B es
menos crtica y puede retrasarse hasta 2 unidades

6.2 Grafos de eventos


Materia: Algoritmos y Estructuras de Datos 2
Profesor: Claudio Ochoa

-2-

Con el objetivo de realizar cmputos sobre los grafos de actividades que respondan a las
preguntas mencionadas en la seccin anterior, debemos transformar el grafo de actividades en un
grafo de eventos. En un grafo de eventos, cada vrtice determina un evento, el cual indica la
terminacin de una actividad y sus actividades dependientes, mientras que las aristas muestran
que actividad debe ser completada para avanzar de un vrtice al siguiente.
El grafo de eventos se puede construir automticamente o a mano, para lo cual puede ser
necesario insertar aristas y/o vrtices falsos. En la Lectura 12 podemos observar como funciona
un algoritmo que transforma un grafo de actividades en un grafo de eventos. En esta animacin,
comenzamos con un evento 1 que marca el inicio del proyecto. En este punto, las actividades que
pueden realizarse son A y B. El evento 2 marca el fin de la actividad A. En este punto, puede
comenzarse la actividad C, pero no se puede comenzar la actividad D, ya que para tal fin, la
actividad B tambin debe haber sido completada, lo que es indicado por el evento 3. Para poder
mostrar esta sincronizacin en la ocurrencia de los eventos 2 y 3 antes de comenzar la actividad
D, introducimos un vrtice falso 6b, el cual es adyacente a los vrtices 2 y 3. Cuando ambas
actividades estn completas, entonces se producir el evento 6b que indicara que la actividad D
puede comenzar. Las aristas falsas deben tener, por lo tanto, costo 0, ya que la ejecucin de
dichas actividades no conlleva costo alguno.

6.3 Tiempo de terminacin mnimo


Uno de los datos ms relevantes que podemos calcular en un grafo de eventos, es el tiempo de
terminacin mnimo de un proyecto dado. Sin duda, cada vez que comenzamos un nuevo
proyecto una pregunta recurrente es cuanto tiempo demandar dicho proyecto hasta que finalice.
La otra pregunta ms importante es cuanto costar el mismo, lo cual puede estimarse a grosso
modo a partir de la duracin del proyecto, ms el costo de los recursos asociados al mismo,
incluyendo gente, hardware, software, etc. necesarios para llevar a cabo el proyecto.
El tiempo de terminacin mnimo del proyecto se obtiene calculando la longitud del camino ms
largo desde el primer evento al ltimo, en el grafo de eventos. En grafos generales esto no tiene
sentido, ya que pueden existir ciclos de costo positivo. Afortunadamente, sabemos que el grafo de
eventos es acclico, por lo que este clculo puede hacerse.

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-3-

Para realizar el clculo, definimos como ECi al tiempo de terminacin mnimo para el vrtice i. Por
lo tanto, EC1=0 ya que el vrtice 1 indica el inicio del proyecto. Por otra parte, para cualquier
vrtice w, se cumple que
ECw=Max(v,w)E(ECv+cv,w)
En otras palabras, para determinar el valor EC de un vrtice w, tomaremos en cuenta los valores
EC de todos los vrtices de los cuales se puede llegar a w, sumaremos el costo de las aristas a
travs de las cuales se llega a w, y nos quedaremos con el mximo valor para determinar EC w. En
la Lectura 13 se observa como se computa el valor EC para todos los vrtices del grafo. Note que
en este caso, el vrtice 10 indica el evento de finalizacin del proyecto, con lo cual sabemos que
este proyecto demandar un mnimo de 10 unidades de tiempo para completar. Note el alumno
que el tiempo de terminacin mnimo para todos los eventos del proyecto, es decir, para todos los
vrtices del grafo, se calcula en tiempo lineal siguiendo un orden topolgico.

6.4 Tiempo de terminacin mximo


Es posible que en algunas ocasiones, deseemos conocer cuanto tiempo puede retrasarse un
evento, sin que esto afecte el tiempo de terminacin final del proyecto. Para ello, primero debemos
calcular los valores LC de cada evento, que indican el tiempo mximo en que un evento puede
terminar sin afectar el tiempo de terminacin mnimo del proyecto. El valor de LC para el evento
que marca la finalizacin del proyecto es igual al valor EC para dicho evento. Es decir, si el vrtice
N indica dicho evento, tenemos que LCN=ECN. Esto es asi, por si LCN fuera mayor que ECN
indicaramos que el tiempo de dicho evento se ha retrasado, y por lo tanto el proyecto finalizar
con retraso. Para otros eventos, su valor LC se calcula de la siguiente manera
LCv = Min(v,w) E(LCw-cv,w)
En otras palabras, los valores LC para cada vrtice del grafo de eventos se calcular en tiempo
lineal siguiendo un orden topolgico inverso, comenzando por el evento que marca la finalizacin
del proyecto, y luego tomando todos los vrtices que llegan al mismo. En la Lectura 14 se observa
como se computan los valores LC para el grafo de eventos que hemos utilizado a lo largo de la
lectura.

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-4-

6.5 Tiempo de espera


Una vez que sabemos calcular los tiempos EC y LC asociados a cada evento, estamos en
condiciones de calcular la cantidad de tiempo que una actividad puede retrasarse sin afectar la
terminacin total. Este valor se conoce tambin como el tiempo mximo de espera de una
actividad, y se define como
Espera(v,w) = LCw ECv cv,w

Las actividades cuyo tiempo de espera es 0 son actividades crticas, y no pueden retrasarse.
Estas actividades determinan el camino crtico de un proyecto, el cual est formado
completamente por aristas de tiempo de espera 0, y unen el evento que marca el inicio del
proyecto con el evento que marca la finalizacin del mismo. Es importante destacar que en todo
proyecto existe al menos uno de estos caminos. En la Lectura 15 se puede observar como se
computa el tiempo de espera para cada actividad de un grafo de eventos, donde como sabemos
las actividades estn representadas por las aristas del grafo, a partir de los valores EC y LC de
cada uno de los vrtices del grafo.

Materia: Algoritmos y Estructuras de Datos 2


Profesor: Claudio Ochoa

-5-

También podría gustarte