<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CPM archivos &#187; Ingenieria Industrial Online</title>
	<atom:link href="https://ingenieriaindustrialonline.com/tag/cpm/feed/" rel="self" type="application/rss+xml" />
	<link>https://ingenieriaindustrialonline.com/tag/cpm/</link>
	<description>ingenieriaindustriaonline.com</description>
	<lastBuildDate>Fri, 22 Oct 2021 19:04:13 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/cropped-faVicon-32x32.png</url>
	<title>CPM archivos &#187; Ingenieria Industrial Online</title>
	<link>https://ingenieriaindustrialonline.com/tag/cpm/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Método de la Ruta Crítica mediante Python (CPM)</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Fri, 22 Oct 2021 19:02:49 +0000</pubDate>
				<category><![CDATA[Actualidad]]></category>
		<category><![CDATA[Diseño y distribución en planta]]></category>
		<category><![CDATA[Gestión de proyectos]]></category>
		<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[CPM]]></category>
		<category><![CDATA[Pert]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruta crítica]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">https://ingenieriaindustrialonline.com/?p=28576</guid>

					<description><![CDATA[<p>Para entender de qué se trata el método de Ruta Crítica, y cómo funciona como un algoritmo de redes, podemos dirigirnos a: Método de la Ruta Crítica (CPM). De acuerdo al objetivo de este artículo, basta con mencionar que la Ruta Crítica es una herramienta que soporta el análisis, la planificación, y la programación de &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/">Método de la Ruta Crítica mediante Python (CPM)</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="introduccion" data-title="Introducción" class="index-title"></div>
	
<p>Para entender de qué se trata el método de Ruta Crítica, y cómo funciona como un algoritmo de redes, podemos dirigirnos a: <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/"><em><strong>Método de la Ruta Crítica (CPM)</strong></em></a>. De acuerdo al objetivo de este artículo, basta con mencionar que la Ruta Crítica es una herramienta que soporta el análisis, la planificación, y la programación de proyectos. Que básicamente, nos ayuda a determinar cuáles de las actividades que componen un proyecto, son críticos con relación en su efecto sobre el tiempo total del proyecto.</p>
<p><span>El objetivo de este artículo es el de, mediante herramientas tecnológicas, abordar un caso básico de CPM, para desarrollar el método utilizando un lenguaje de programación, en este caso</span> <em>Python</em>, que nos permita, automatizar los cálculos y así obtener las actividades críticas del proyecto, la duración del mismo y un diagrama de Gantt.</p>
<p>En el desarrollo de este ejercicio emplearemos:</p>

		<div class="plus tie-list-shortcode">
<div class="plus tie-list-shortcode">
<ul>
<li><em><strong>Colaboratory</strong>:<span> </span></em>Este es un entorno de programación y ejecución virtual de Python desarrollado por Google. Nos permitirá no tener la necesidad de realizar ninguna instalación en nuestros equipos. Todo lo que desarrollemos lo ejecutaremos en un cuaderno virtual.</li>
<li><strong><em>Python</em></strong>: Este será el lenguaje de programación que vamos a utilizar, y advertimos: No es necesario tener conocimientos previos, y el objetivo del artículo no es convertirnos en programadores expertos. Utilizaremos fragmentos de códigos, librerías disponibles, y explicaremos lo necesario para configurar nuestro desarrollo de acuerdo a los objetivos específicos de nuestros modelos.</li>
<li><strong><em>CriticalPath</em></strong>: Las librerías son a <em>Python</em>, lo que las <em>apps<span> </span></em>son a un teléfono celular. Esta es quizá una de las características más a tractivas de este lenguaje: Casi que existe una librería para cada necesidad. En este caso, <em>CriticalPath</em>, es una librería que calcula la ruta crítica a través de una red de tareas.</li>
<li><em><strong>Matplotlib</strong>:<span> </span></em>Es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python. Nos permitirá visualizar nuestros nodos y nuestras localizaciones solución.</li>
<li><strong><em>Pandas</em></strong>:<span> </span><span>Es un paquete de Python que proporciona estructuras de datos rápidas, y flexibles, diseñadas para que el trabajo con datos estructurados (tabulares, multidimensionales, potencialmente heterogéneos) y de series de tiempo sea fácil e intuitivo.</span></li>
<li><em><strong>Numpy</strong>: </em>Es una librería que nos permitirá efectuar operaciones matriciales en Python.</li>
<li><em><strong>Datetime</strong></em>: Es un módulo que proporciona herramientas para manipular fechas y horas.</li>
</ul>

		</div>
	
</div>
<hr />
<p>&nbsp;</p>
<p><span>Para evaluar los resultados obtenidos a través del tratamiento de un problema técnicamente formulado y abordado, utilizaremos un caso descrito en el libro Investigación de Operaciones (9na edición), de Hamdy A. Taha (University of Arkansas, Fayetteville), (Ejemplo 6.5-1):</span></p>
<h2>Caso de aplicación</h2>

		<div id="caso-de-aplicacion" data-title="Caso de aplicación" class="index-title"></div>
	
<blockquote class=" quote-simple "><p>Un editor firmó un contrato con un autor para publicar un libro de texto. El autor somete a consideración una copia impresa de un archivo de computadora del manuscrito. Las actividades (simplificadas) asociadas con la producción del libro de texto se resumen en la siguiente tabla.</p></blockquote>
<table width="741">
<tbody>
<tr>
<td colspan="2" width="571" style="text-align: center;">Actividades</td>
<td width="90" style="text-align: center;">Predecesoras</td>
<td width="80" style="text-align: center;">Duración (semanas)</td>
</tr>
<tr>
<td style="text-align: center;">A</td>
<td style="text-align: center;">Corrección del manuscrito, por parte del editor</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">3</td>
</tr>
<tr>
<td style="text-align: center;">B</td>
<td style="text-align: center;">Preparación de páginas muestra</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">2</td>
</tr>
<tr>
<td style="text-align: center;">C</td>
<td style="text-align: center;">Diseño de la portada del libro</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">4</td>
</tr>
<tr>
<td style="text-align: center;">D</td>
<td style="text-align: center;">Preparación de las ilustraciones</td>
<td style="text-align: center;">&#8211;</td>
<td style="text-align: center;">3</td>
</tr>
<tr>
<td style="text-align: center;">E</td>
<td style="text-align: center;">Aprobación del manuscrito editado y de páginas muestra, por parte del autor</td>
<td style="text-align: center;">A, B</td>
<td style="text-align: center;">2</td>
</tr>
<tr>
<td style="text-align: center;">F</td>
<td style="text-align: center;">Formación del libro</td>
<td style="text-align: center;">E</td>
<td style="text-align: center;">4</td>
</tr>
<tr>
<td style="text-align: center;">G</td>
<td style="text-align: center;">Revisión de las páginas formadas, por parte del autor</td>
<td style="text-align: center;">F</td>
<td style="text-align: center;">2</td>
</tr>
<tr>
<td style="text-align: center;">H</td>
<td style="text-align: center;">Revisión de las ilustraciones por el autor</td>
<td style="text-align: center;">D</td>
<td style="text-align: center;">1</td>
</tr>
<tr>
<td style="text-align: center;">I</td>
<td style="text-align: center;">Producción de las placas de impresión</td>
<td style="text-align: center;">G, H</td>
<td style="text-align: center;">2</td>
</tr>
<tr>
<td style="text-align: center;">J</td>
<td style="text-align: center;">Producción y encuadernación del libro</td>
<td style="text-align: center;">C, I</td>
<td style="text-align: center;">4</td>
</tr>
</tbody>
</table>
<p>La tarea será determinar la Ruta Crítica (Actividades críticas) y la duración estimada del proyecto.</p>
<hr />
<h3>Paso 1: Crear el entorno de trabajo en Colaboratory</h3>

		<div id="paso-1-crear-el-entorno-de-trabajo-en-colaboratory" data-title="Paso 1: Crear el entorno de trabajo en Colaboratory" class="index-title"></div>
	
<p><span>Lo primero que vamos a hacer consiste en crear un entorno de trabajo en <em>Google</em> </span><em>Colaboratory</em><span>, así que vayamos allá: </span><a href="https://colab.research.google.com/#create=true" target="_blank" rel="noopener"><em><strong>Abrir cuaderno nuevo</strong></em></a><span>.</span></p>
<p>Verán que tienen un lienzo para programar el modelo, así que en este cuaderno podemos ir generando las líneas de código que explicaremos en los pasos siguientes.</p>
<h3>Paso 2: Importar las librerías necesarias</h3>

		<div id="paso-2-importar-las-librerias-necesarias" data-title="Paso 2: Importar las librerías necesarias" class="index-title"></div>
	
<p>Respecto a las librerías, en la introducción del artículo hicimos una descripción de la funcionalidad de cada una, veamos como importarlas en nuestro entorno:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Importar las librerías necesarias
!pip install criticalpath
from criticalpath import Node
import datetime
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
import numpy as np</code></pre>
</div>
<p>De esta manera, tenemos todo lo necesario para empezar a desarrollar nuestro código.</p>
<h3>Paso 3: Ingresar los datos del modelo</h3>

		<div id="paso-3-ingresar-los-datos-del-modelo" data-title="Paso 3: Ingresar los datos del modelo" class="index-title"></div>
	
<p>Básicamente los datos del modelo corresponden a las tareas, su duración y las relaciones de dependencia que rigen la secuencia del proyecto.</p>
<p>El siguiente fragmento permite ingresar estos datos al modelo:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Ingresar los datos del modelo (Tareas y dependencias)

#Crear el proyecto "p"
p = Node('proyecto')

tareas = [("A", {"duracion": 3}), 
          ("B", {"duracion": 2}), 
          ("C", {"duracion": 4}), 
          ("D", {"duracion": 3}), 
          ("E", {"duracion": 2}), 
          ("F", {"duracion": 4}), 
          ("G", {"duracion": 2}), 
          ("H", {"duracion": 1}), 
          ("I", {"duracion": 2}), 
          ("J", {"duracion": 4})]

dependencias = [("A", "E"), 
                ("B", "E"), 
                ("E", "F"),
                ("F", "G"), 
                ("G", "I"), 
                ("I", "J"),
                ("C", "J"), 
                ("H", "I"), 
                ("D", "H")]

# Cargar al proyecto las tareas y sus duraciones
for i in tareas:
    p.add(Node(i[0], duration=i[1]["duracion"]))

# Cargar al proyecto sus dependencias (secuencias)
for j in dependencias:
    p.link(j[0],j[1])

# Actualizar el proyecto:
p.update_all()</code></pre>
</div>
<p>El anterior fragmento nos permite cargar todos los datos necesarios para conocer la Ruta Crítica del modelo. Veamos cómo obtenerla:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Obtener la Ruta Crítica del modelo
p.get_critical_path()</code></pre>
</div>
<p>Al ejecutar esta instrucción tenemos la siguiente salida:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica.png" alt="Ruta critica" width="492" height="104" class="size-full wp-image-28577 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica.png 492w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica-300x63.png 300w" sizes="(max-width: 492px) 100vw, 492px" /></p>
<p>De la misma manera, podemos obtener la duración estimada del proyecto:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Obtener la duración del proyecto
p.duration</code></pre>
</div>
<p>Al ejecutar esta instrucción tenemos la siguiente salida:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_duracion.png" alt="Ruta critica_duracion" width="492" height="84" class="size-full wp-image-28578 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_duracion.png 492w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_duracion-300x51.png 300w" sizes="(max-width: 492px) 100vw, 492px" /></p>
<p>Así entonces, de esta manera muy sencilla tenemos las actividades que componen la Ruta Crítica y la duración del proyecto de acuerdo a CPM (17 semanas). Podríamos finalizar el modelo hasta acá, sin embargo, queremos obtener el diagrama de Gantt del proyecto, y para eso es necesario obtener algunas variables adicionales.</p>
<h3>Paso 4: Obtener las variables de inicio y finalización</h3>

		<div id="paso-4-obtener-las-variables-de-inicio-y-finalizacion" data-title="Paso 4: Obtener las variables de inicio y finalización" class="index-title"></div>
	
<p>Ya que el problema planteado no establece fechas de inicio y finalización, podemos, mediante <em>Python</em>, utilizar una fecha de inicio artificial, por ejemplo: Hoy. <em>¿Con qué objetivo hacemos esto?</em> Los diagramas de Gantt requieren de una línea de tiempo y es preciso establecer estas variables. Estableceremos fechas de inicio, de finalización y un status para cada actividad del proyecto.</p>
<p>En este caso puntual, ya que la duración de cada actividad se nos da en semanas, multiplicaremos el valor de la duración por 7:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Obtener las variables de inicio y finalización
ruta_critica = [str(n) for n in p.get_critical_path()]

proj_fecha_inicio = datetime.date.today()

proj_calendario = pd.DataFrame([dict(Tarea = key, 
                                   Inicio = datetime.date.today(), 
                                   Fin = datetime.date.today() + datetime.timedelta(val['duracion']*7), 
                                   Status = 'Actividad Normal')
                              for key, val in dict(tareas).items()])

for key, val in dict(tareas).items():
    dep = [d for d in dependencias if d[1] == key]
    prev_tareas = [t[0] for t in dep]
    if prev_tareas:
        prev_fin = proj_calendario[proj_calendario.Tarea.isin(prev_tareas)]['Fin'].max()
        proj_calendario.loc[proj_calendario.Tarea == key, 'Inicio'] = prev_fin
        proj_calendario.loc[proj_calendario.Tarea == key, 'Fin'] = prev_fin + datetime.timedelta(val['duracion']*7)
        
proj_calendario.loc[proj_calendario.Tarea.isin(ruta_critica), 'Status'] = 'Ruta Crítica'
        
display(proj_calendario)</code></pre>
</div>
<p>Al ejecutar este fragmento de código, tendremos:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_fechas.png" alt="Ruta critica_fechas" width="381" height="342" class="size-full wp-image-28580 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_fechas.png 381w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_fechas-300x269.png 300w" sizes="(max-width: 381px) 100vw, 381px" /></p>
<p>Podemos apreciar cómo tenemos las fechas estimadas de inicio de cada actividad y su correspondiente fecha de finalización (teniendo en cuenta que la duración de las actividades está dada en semanas). También tenemos un <em>status</em> relacionado con la naturaleza de cada actividad: <em>Crítica o Normal</em>.</p>
<p>Y tenemos fechas de inicio y finalización, lo siguiente será calcular cuántos días pasan entre el inicio del proyecto y el inicio y finalización de cada actividad:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code># Número de días desde que el proyecto inicia hasta que la tarea inicia
proj_calendario['dias_inicio'] = (proj_calendario.Inicio-proj_fecha_inicio).dt.days
# Número de días desde que el proyecto inicia hasta que la tarea finaliza
proj_calendario['dias_fin'] = (proj_calendario.Fin-proj_fecha_inicio).dt.days
# Días entre el inicio y el fin de cada tarea
proj_calendario['dias_inicio_fin'] = proj_calendario.dias_fin - proj_calendario.dias_inicio

display(proj_calendario)</code></pre>
</div>
<p>Al ejecutar este fragmento de código, tendremos:<span style="background-color: inherit; color: inherit; font-family: inherit; font-size: 15px; font-weight: lighter; white-space: pre;"></span></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_inicio_fin.png" alt="Ruta Crítica mediante Python" width="690" height="342" class="aligncenter wp-image-28581 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_inicio_fin.png 690w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/Ruta-critica_inicio_fin-300x149.png 300w" sizes="(max-width: 690px) 100vw, 690px" /></p>
<h3>Paso 5: Obtener el diagrama de Gantt (Graficar)</h3>

		<div id="paso-5-obtener-el-diagrama-de-gantt-graficar" data-title="Paso 5: Obtener el diagrama de Gantt (Graficar)" class="index-title"></div>
	
<p>El siguiente paso consiste en graficar de acuerdo al diagrama de Gantt, ls actividades del proyecto. El eje <em>x</em> estará dado en días.</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Graficar las actividades en un diagrama de Gantt
fig, ax = plt.subplots(1, figsize=(16,6))
ax.barh(proj_calendario.Tarea, proj_calendario.dias_inicio_fin, left=proj_calendario.dias_inicio)
plt.show()</code></pre>
</div>
<p>Al ejecutar el fragmento tendremos:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt.png" alt="diagrama_gantt" width="921" height="357" class="alignnone size-full wp-image-28583" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt.png 921w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt-300x116.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt-768x298.png 768w" sizes="(max-width: 921px) 100vw, 921px" /></p>
<h3>Paso 6: Mejorar el diagrama de Gantt</h3>

		<div id="paso-6-mejorar-el-diagrama-de-gantt" data-title="Paso 6: Mejorar el diagrama de Gantt" class="index-title"></div>
	
<p>Una vez obtenido el diagrama podemos realizar modificaciones sobre el mismo, por ejemplo: dar un color específico a las actividades de la ruta crítica, anexar leyendas, entre otros. Vamos a resaltar con rojo las actividades críticas, y a anexar alguna leyenda de actividades:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code># Dar color rojo a las columnas de actividades críticas
def color(row):
    c_dict = {'Ruta Crítica':'#E64646', 'Actividad Normal':'#4F81BE'}
    return c_dict[row['Status']]
proj_calendario['color'] = proj_calendario.apply(color, axis=1)
fig, ax = plt.subplots(1, figsize=(16,6))
ax.barh(proj_calendario.Tarea, proj_calendario.dias_inicio_fin, left=proj_calendario.dias_inicio, color=proj_calendario.color)

#Anexar leyendas
c_dict = {'Ruta crítica':'#E64646', 'Actividad normal':'#4F81BE'}
leyenda = [Patch(facecolor=c_dict[i], label=i)  for i in c_dict]
plt.legend(handles=leyenda)

plt.show()</code></pre>
</div>
<p>Al ejecutar el fragmento tendremos:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt_cpm.png" alt="Ruta Crítica mediante Python" width="921" height="357" class="alignnone wp-image-28584 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt_cpm.png 921w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt_cpm-300x116.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2021/10/diagrama_gantt_cpm-768x298.png 768w" sizes="(max-width: 921px) 100vw, 921px" /></p>
<p>Ahora tenemos un modelo capaz de obtener las actividades críticas de un proyecto, determinar su duración de acuerdo al algoritmo CPM y graficar las actividades mediante un diagrama de Gantt.</p>
<p>También es posible incorporar una variable de «estado de terminación» de cada actividad, para así observar el avance del proyecto.</p>
<p>El código completo de este desarrollo lo puedes encontrar en nuestro cuaderno: <a href="https://colab.research.google.com/drive/1AaFQDIQ_n1nR1BsrxQqZg4pEu_dyP_6K?usp=sharing" target="_blank" rel="noopener"><em><strong>Método de la Ruta Crítica (CPM) mediante Python</strong></em></a>.</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/">Método de la Ruta Crítica mediante Python (CPM)</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PERT &#8211; Técnica de evaluación y revisión de proyectos</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Thu, 13 Jun 2019 20:38:22 +0000</pubDate>
				<category><![CDATA[Gestión de proyectos]]></category>
		<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[CPM]]></category>
		<category><![CDATA[Gerencia de proyectos]]></category>
		<category><![CDATA[Pert]]></category>
		<category><![CDATA[Ruta crítica]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1261</guid>

					<description><![CDATA[<p>El método PERT (Project Evaluation and Review Techniques), es un algoritmo basado en la teoría de redes diseñado para facilitar la planificación de proyectos. El resultado final de la aplicación de este algoritmo será un cronograma para el proyecto, en el cual se podrá conocer la duración total del mismo, y la clasificación de las actividades &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/">PERT &#8211; Técnica de evaluación y revisión de proyectos</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>El método <strong>PERT (Project Evaluation and Review Techniques)</strong>, es un algoritmo basado en la <strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/">teoría de redes</a></strong> diseñado para facilitar la planificación de proyectos. El resultado final de la aplicación de este algoritmo será un cronograma para el proyecto, en el cual se podrá conocer la duración total del mismo, y la clasificación de las actividades según su criticidad.</p>
<p>El algoritmo PERT se desarrolla mediante intervalos probabilísticos, considerando tiempos optimistas, probables y pesimistas, lo cual lo diferencia del método <em><strong><a title="CPM - Metodo de la Ruta Critica" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/">CPM</a></strong></em> que supone tiempos determinísticos.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="conceptos-basicos-para-diagramar-actividades-con-redes" data-title="Conceptos básicos para diagramar actividades con redes" class="index-title"></div>
	Conceptos básicos para diagramar actividades con redes</h2>
<div id="cc-m-5721379613" class="j-module n j-text ">
<p style="text-align: justify;"><strong>Regla 1:</strong> Cada actividad se debe representar sí y sólo sí, por un ramal o arco.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4.webp" alt="arco ramal" width="321" height="117" class="aligncenter size-full wp-image-26499" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4.webp 321w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4-300x109.webp 300w" sizes="(max-width: 321px) 100vw, 321px" /></p>
</div>
<div id="cc-m-5721379713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-5721379813" class="j-module n j-text ">
<p style="text-align: justify;"><strong>Regla 2: </strong>Cada actividad debe estar identificada por dos nodos distintos. En el caso de existir actividades concurrentes (que inicien al mismo tiempo, o que el inicio de una actividad dependa de la finalización de 2 o más actividades distintas) se debe recurrir a actividades ficticias (representadas por arcos punteados que no consumen ni tiempo ni recursos) para satisfacer esta regla.</p>
<p style="text-align: justify;">Por ejemplo,  la actividad C para su inicio requiere que finalicen A y B. Las actividades A y B inician al mismo tiempo.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5.webp" alt="teoría de redes" width="460" height="294" class="aligncenter size-full wp-image-26500" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5.webp 460w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5-300x192.webp 300w" sizes="(max-width: 460px) 100vw, 460px" /></p>
</div>
<div id="cc-m-5721379913" class="j-module n j-imageSubtitle ">

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="fases-para-la-planificacion-de-un-proyecto-con-pert" data-title="Fases para la planificación de un proyecto con PERT" class="index-title"></div>
	Fases para la planificación de un proyecto con PERT</h2>
<h3><em>
		<div id="paso-1-actividades-del-proyecto" data-title="Paso 1: Actividades del proyecto" class="index-title"></div>
	Paso 1: Actividades del proyecto</em></h3>
<div id="cc-m-5860071013" class="j-module n j-hgrid ">
<div class="cc-m-hgrid-column last">
<div id="cc-matrix-1349867313">
<div id="cc-m-5721380613" class="j-module n j-text ">
<p>La primera fase corresponde a identificar todas las actividades que intervienen en el proyecto, sus interrelaciones, sucesiones, reglas de precedencia. Con la inclusión de cada actividad al proyecto se debe cuestionar respecto a que actividades preceden a esta, y a cuales siguen inmediatamente esta finalice. Además, deberán relacionarse los tiempos estimados para el desarrollo de cada actividad.</p>
</div>
</div>
</div>
</div>
<div id="cc-m-5860071213" class="j-module n j-text ">
<p>A diferencia del método <em><strong><a title="CPM - Metodo de la Ruta Critica" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/">CPM</a></strong></em>, el método PERT asume tres estimaciones de tiempo por cada actividad, estas estimaciones son:</p>
<p style="text-align: justify;"><strong><em>Tiempo optimista (a):</em> </strong>Duración que ocurre cuando el desarrollo de la actividad transcurre de forma perfecta. En la práctica suele acudirse al tiempo récord de desarrollo de una actividad, es decir, el mínimo tiempo en que una actividad de esas características haya sido ejecutada.</p>
<p style="text-align: justify;"><strong><em>Tiempo más probable (m):</em> </strong>Duración que ocurre cuando el desarrollo de la actividad transcurre de forma normal. En la práctica suele tomarse como el tiempo más frecuente de ejecución de una actividad de iguales características.</p>
<p style="text-align: justify;"><em><strong>Tiempo pesimista (b):</strong></em> Duración que ocurre cuando el desarrollo de la actividad transcurre de forma deficiente, o cuando se materializan los riesgos de ejecución de la actividad.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-6.webp" alt="Actividades precedentes" width="455" height="248" class="aligncenter wp-image-26501 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-6.webp 455w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-6-300x164.webp 300w" sizes="(max-width: 455px) 100vw, 455px" /></p>
<p>&nbsp;</p>
<div id="cc-m-5721386913" class="j-module n j-header ">
<h3 id="cc-m-header-5721386913" class=""><em>
		<div id="paso-2-calcular-el-tiempo-estimado-duracion-promedio-y-la-varianza" data-title="Paso 2: Calcular el tiempo estimado (Duración promedio) y la varianza" class="index-title"></div>
	Paso 2: Calcular el tiempo estimado (Duración promedio) y la varianza</em></h3>
</div>
<div id="cc-m-5721387013" class="j-module n j-text ">
<p style="text-align: justify;">Para efectos de determinar la ruta crítica del proyecto se acude al tiempo de duración promedio, también conocido cómo tiempo estimado. Este tiempo es determinado a partir de las estimaciones como:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-7.webp" alt="tiempo medio pert" width="167" height="70" class="aligncenter size-full wp-image-26502" /></p>
</div>
<div id="cc-m-5721387113" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721387213" class="j-module n j-text ">
<p style="text-align: justify;">El cálculo del tiempo estimado deberá hacerse entonces para cada actividad. Por ejemplo para la actividad <em><strong>A</strong></em>:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-8.webp" alt="tiempo" width="248" height="69" class="aligncenter size-full wp-image-26503" /></p>
</div>
<div id="cc-m-5721387413" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721387613" class="j-module n j-text ">
<p style="text-align: justify;">Además de calcular el tiempo estimado, deberá calcularse la varianza de cada actividad. El cálculo de esta medida de dispersión se utiliza para determinar la incertidumbre de que se termine el proyecto de acuerdo al programa. Para efectos del algoritmo PERT, el cálculo de la varianza se hará a partir de sus estimaciones tal cómo se muestra a continuación:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-9.webp" alt="Varianza" width="252" height="64" class="aligncenter size-full wp-image-26504" /></p>
</div>
<div id="cc-m-5721387913" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721388013" class="j-module n j-text ">
<p><span style="text-align: justify;">El cálculo de la varianza deberá hacerse entonces para cada actividad. Por ejemplo para la actividad A:</span></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-10.webp" alt="Varianza " width="191" height="60" class="aligncenter size-full wp-image-26505" /></p>
</div>
<div id="cc-m-5721388213" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721388513" class="j-module n j-text ">
<p style="text-align: justify;">Para las actividades del tabulado mencionado en el Paso 1, los tiempos estimados y varianzas serían las siguientes:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-11.webp" alt="" width="522" height="249" class="aligncenter size-full wp-image-26506" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-11.webp 522w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-11-300x143.webp 300w" sizes="(max-width: 522px) 100vw, 522px" /></p>
</div>
<div id="cc-m-5721388713" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721380813" class="j-module n j-header ">
<h3 id="cc-m-header-5721380813" class=""><em>
		<div id="paso-3-diagrama-de-red" data-title="Paso 3: Diagrama de red" class="index-title"></div>
	Paso 3: Diagrama de red</em></h3>
<p>Con base en la información obtenida en la fase anterior y haciendo uso de los <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/"><em><strong>conceptos básicos para diagramar una red</strong></em></a>, obtendremos el gráfico del proyecto (los tiempos relacionados con cada actividad en el gráfico corresponden a los tiempos estimados):</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-12.webp" alt="PERT" width="670" height="264" class="aligncenter wp-image-26507 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-12.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-12-300x118.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>&nbsp;</p>
<div id="cc-m-5860071513" class="j-module n j-hgrid ">
<div class="cc-m-hgrid-column last">
<div id="cc-matrix-1349867513">
<div id="cc-m-5721381213" class="j-module n j-header ">
<h3 id="cc-m-header-5721381213" class=""><em>
		<div id="paso-4-calcular-la-red" data-title="Paso 4: Calcular la red" class="index-title"></div>
	Paso 4: Calcular la red</em></h3>
</div>
<div id="cc-m-5860071713" class="j-module n j-text ">
<p>Para el cálculo de la red se consideran 3 indicadores, T1, T2 y H. Estos indicadores se calculan en cada evento o nodo (entiéndase nodo entonces como un punto en el cual se completan actividades y se inician las subsiguientes.</p>
</div>
</div>
</div>
</div>
<div id="cc-m-5721381313" class="j-module n j-text ">
<p><strong>T1: </strong>Tiempo más temprano de realización de un evento. Para calcular este indicador deberá recorrerse la red de izquierda a derecha y considerando lo siguiente:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li>T1 del primer nodo es igual a 0.</li>
<li>T1 del nodo n = T1 del nodo n-1 (nodo anterior) + duración de la actividad (tiempo estimado) que finaliza en el nodo n.</li>
<li>Si en un nodo finaliza más de una actividad, se toma el tiempo de la actividad con mayor valor.</li>
</ul>

		</div>
	
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-13.webp" alt="PERT" width="670" height="335" class="aligncenter wp-image-26508 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-13.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-13-300x150.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>&nbsp;</p>
<div id="cc-m-5721381513" class="j-module n j-text ">
<p style="text-align: justify;">En este caso para el cálculo del T1 en el nodo 8, en el que concurre la finalización de 2 actividades, deberá considerarse el mayor de los T1 resultantes:</p>
<p style="text-align: justify;">T1 (nodo 6) + G = 13 + 6 = 19</p>
<p style="text-align: justify;">T1 (nodo 7) + H = 8 + 4 = 12</p>
<p style="text-align: justify;"><em>Así entonces, el T1 del nodo 8 será igual a 19 (el mayor valor).</em></p>
</div>
<div id="cc-m-5721381613" class="j-module n j-text ">
<p style="text-align: justify;"><strong>T2:</strong> Tiempo más tardío de realización del evento. Para calcular <span style="text-align: justify; line-height: 1.5;">este indicador deberá recorrerse la red de derecha a izquierda y considerando lo siguiente:</span></p>

		<div class="checklist tie-list-shortcode">
<ul>
<li style="text-align: justify;"><span style="line-height: 1.5;">T2 del primer nodo (de derecha a izquierda) es igual al T1 de este.</span></li>
<li style="text-align: justify;"><span style="line-height: 1.5;">T2 del nodo n = T2 del nodo n-1 (nodo anterior, de derecha a izquierda) &#8211; duración de la actividad que se inicia (tiempo estimado). </span></li>
<li style="text-align: justify;"><span style="line-height: 1.5;">Si en un nodo finaliza más de una actividad, se toma el tiempo de la actividad con menor valor.</span></li>
</ul>

		</div>
	
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-14.webp" alt="PERT" width="670" height="326" class="aligncenter wp-image-26509 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-14.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-14-300x146.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>&nbsp;</p>
<div id="cc-m-5721381813" class="j-module n j-text ">
<p style="text-align: justify;">En este caso para el cálculo del T2 del nodo 1, en el que concurren el inicio de 2 actividades deberá entonces considerarse lo siguiente:</p>
<p style="text-align: justify;">T2 nodo 2 &#8211; B = 6 &#8211; 6 = 0</p>
<p style="text-align: justify;">T2 nodo 3 &#8211; C = 9 &#8211; 2 = 7</p>
<p style="text-align: justify;">Así entonces, el T2 del nodo 1 será 0, es decir el menor valor.</p>
</div>
<div id="cc-m-5721381913" class="j-module n j-text ">
<p style="text-align: justify;"><strong>H: </strong>Tiempo de holgura, es decir la diferencia entre T2 y T1. Esta holgura, dada en unidades de tiempo corresponde al valor en el que la ocurrencia de un evento puede tardarse. Los eventos en los cuales la holgura sea igual a 0 corresponden a la ruta crítica, es decir que la ocurrencia de estos eventos no puede tardarse una sola unidad de tiempo respecto al cronograma establecido, dado que en el caso en que se tardara retrasaría la finalización del proyecto.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-15.webp" alt="PERT" width="670" height="326" class="aligncenter wp-image-26510 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-15.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-15-300x146.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>&nbsp;</p>
<p>Las actividades críticas por definición constituyen la ruta más larga que abarca el proyecto, es decir que la sumatoria de las actividades de una ruta crítica determinará la duración estimada del proyecto. Puede darse el caso en el que se encuentren más de una ruta crítica.</p>
<span class="tie-highlight tie-highlight-red"><em><strong>Ruta crítica</strong></em></span>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-16.webp" alt="Ruta crítica" width="670" height="326" class="aligncenter wp-image-26511 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-16.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-16-300x146.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>&nbsp;</p>
<div id="cc-m-5721382413" class="j-module n j-text ">
<p style="text-align: justify;">Esta ruta se encuentra compuesta por las actividades A, C, E, G, I, J. La duración del proyecto sería de 22 semanas.</p>
</div>
<div id="cc-m-5721390413" class="j-module n j-header ">
<h3 id="cc-m-header-5721390413" class=""><em>
		<div id="paso-5-calculo-de-la-varianza-desviacion-estandar-y-probabilidades" data-title="Paso 5: Cálculo de la varianza, desviación estándar y probabilidades" class="index-title"></div>
	Paso 5: Cálculo de la varianza, desviación estándar y probabilidades</em></h3>
</div>
<div id="cc-m-5721390513" class="j-module n j-text ">
<p style="text-align: justify;">La varianza y la desviación estándar para la culminación del proyecto se relacionan con las actividades que comprenden la ruta crítica. Así entonces, para calcular la varianza basta con sumar las varianzas de las actividades A, C, E, G, I y J:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-17.webp" alt="" width="529" height="79" class="aligncenter size-full wp-image-26512" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-17.webp 529w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-17-300x45.webp 300w" sizes="(max-width: 529px) 100vw, 529px" /></p>
</div>
<div id="cc-m-5721390813" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721390913" class="j-module n j-text ">
<p style="text-align: justify;">La desviación estándar corresponde a la raíz cuadrada de la varianza del proyecto, es decir:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-18.webp" alt="" width="166" height="79" class="aligncenter size-full wp-image-26513" /></p>
</div>
<div id="cc-m-5721391113" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721391313" class="j-module n j-text ">
<p style="text-align: justify;">Con la información que acabamos de obtener podemos efectuar cálculos probabilísticos de terminación del proyecto. Por ejemplo, sí se nos pide hallar la probabilidad de que el proyecto se culmine antes de 26 semanas, procederíamos de la siguiente forma y siguiendo la teoría de distribución normal:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-19.webp" alt="Varianza ruta crítica" width="300" height="109" class="aligncenter size-full wp-image-26515" /></p>
</div>
<div id="cc-m-5721391513" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5721391613" class="j-module n j-text ">
<p style="text-align: justify;">Buscando este valor en una tabla de distribución normal encontramos que equivale a 0,9812, es decir que la probabilidad de culminar el proyecto en 26 semanas o menos es del 98,12%.</p>
</div>
<div id="cc-m-5722939013" class="j-module n j-hgrid ">
<div class="cc-m-hgrid-column">
<div id="cc-matrix-1294466013">
<div id="cc-m-5721382713" class="j-module n j-header ">
<h3 id="cc-m-header-5721382713" class=""><em>
		<div id="paso-6-establecer-el-cronograma" data-title="Paso 6: Establecer el cronograma" class="index-title"></div>
	Paso 6: Establecer el cronograma</em></h3>
<div id="cc-m-5722939013" class="j-module n j-hgrid ">
<div class="cc-m-hgrid-column">
<div id="cc-matrix-1294466013">
<div id="cc-m-5721382813" class="j-module n j-text ">
<p style="text-align: justify;">Para establecer un cronograma deberán considerarse varios factores, el más importante de ellos es la relación de precedencia, y el siguiente corresponde a escalonar las actividades que componen la ruta crítica de tal manera  que se complete el proyecto dentro de la duración estimada.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/">PERT &#8211; Técnica de evaluación y revisión de proyectos</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Método de la ruta crítica &#8211; CPM</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 21:39:21 +0000</pubDate>
				<category><![CDATA[Gestión de proyectos]]></category>
		<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[CPM]]></category>
		<category><![CDATA[Gerencia de proyectos]]></category>
		<category><![CDATA[Pert]]></category>
		<category><![CDATA[Ruta círtica]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1255</guid>

					<description><![CDATA[<p>El método de la ruta crítica CPM (Critical Path Method), es un algoritmo basado en la teoría de redes diseñado para facilitar la planificación de proyectos. El resultado final del CPM será un cronograma para el proyecto, en el cual se podrá conocer la duración total del mismo, y la clasificación de las actividades según su &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/">Método de la ruta crítica &#8211; CPM</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>El <strong>método de la ruta crítica CPM (Critical Path Method)</strong>, es un algoritmo basado en la teoría de redes diseñado para facilitar la planificación de proyectos. El resultado final del CPM será un cronograma para el proyecto, en el cual se podrá conocer la duración total del mismo, y la clasificación de las actividades según su criticidad. El algoritmo CPM se desarrolla mediante intervalos determinísticos, lo cual lo diferencia del método <em><strong><a title="PERT - Tecnica de evaluacion y revision de proyectos" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/">PERT</a></strong></em> que supone tiempos probabilísticos.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="conceptos-basicos-para-diagramar-actividades-con-redes" data-title="Conceptos básicos para diagramar actividades con redes" class="index-title"></div>
	Conceptos básicos para diagramar actividades con redes</h2>
<div id="cc-m-5721241813" class="j-module n j-text ">
<p style="text-align: justify;"><strong>Regla 1:</strong> Cada actividad se debe representar sí y sólo sí, por un ramal o arco.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4.webp" alt="arco ramal" width="321" height="117" class="aligncenter size-full wp-image-26499" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4.webp 321w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-4-300x109.webp 300w" sizes="(max-width: 321px) 100vw, 321px" /></p>
<p style="text-align: justify;"><strong>Regla 2: </strong>Cada actividad debe estar identificada por dos nodos distintos. En el caso de existir actividades concurrentes (que inicien al mismo tiempo, o que el inicio de una actividad dependa de la finalización de 2 o más actividades distintas) se debe recurrir a actividades ficticias (representadas por arcos punteados que no consumen ni tiempo ni recursos) para satisfacer esta regla.</p>
<p style="text-align: justify;">Por ejemplo,  la actividad C para su inicio requiere que finalicen A y B. Las actividades A y B inician al mismo tiempo.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5.webp" alt="teoría de redes" width="460" height="294" class="aligncenter size-full wp-image-26500" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5.webp 460w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-5-300x192.webp 300w" sizes="(max-width: 460px) 100vw, 460px" /></p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="fases-para-la-planificacion-de-un-proyecto-con-cpm" data-title="Fases para la planificación de un proyecto con CPM" class="index-title"></div>
	Fases para la planificación de un proyecto con CPM</h2>
<h3><em>
		<div id="paso-1-actividades-del-proyecto" data-title="Paso 1: Actividades del proyecto" class="index-title"></div>
	Paso 1: Actividades del proyecto</em></h3>
<p>La primera fase corresponde a identificar todas las actividades que intervienen en el proyecto, sus interrelaciones, sucesiones, reglas de precedencia. Con la inclusión de cada actividad al proyecto se debe cuestionar respecto a que actividades preceden a esta, y a cuales siguen inmediatamente esta finalice. Además, deberá relacionarse el tiempo estimado para el desarrollo de cada actividad.</p>
<table border="0" cellpadding="0" cellspacing="0" width="240" style="border-collapse: collapse; width: 180pt;" class=" aligncenter">
<tbody>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" width="80" style="height: 15pt; width: 60pt; text-align: center;"><strong>Actividad</strong></td>
<td class="xl63" width="80" style="width: 60pt; text-align: center;"><strong>Actividad predecesora</strong></td>
<td class="xl63" width="80" style="width: 60pt; text-align: center;"><strong>Tiempo</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" style="height: 15pt; text-align: center;">A</td>
<td class="xl64" style="text-align: center;">&#8212;</td>
<td class="xl63" style="text-align: center;">3h</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" style="height: 15pt; text-align: center;">B</td>
<td class="xl63" style="text-align: center;">A</td>
<td class="xl63" style="text-align: center;">1h</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" style="height: 15pt; text-align: center;">C</td>
<td class="xl63" style="text-align: center;">A</td>
<td class="xl63" style="text-align: center;">2h</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" style="height: 15pt; text-align: center;">D</td>
<td class="xl63" style="text-align: center;">A</td>
<td class="xl63" style="text-align: center;">2h</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl63" style="height: 15pt; text-align: center;">E</td>
<td class="xl63" style="text-align: center;">B &#8211; C &#8211; D</td>
<td class="xl63" style="text-align: center;">4h</td>
</tr>
</tbody>
</table>
<h3></h3>
<h3 id="cc-m-header-5721243713" class=""><em>
		<div id="paso-2-diagrama-de-la-red" data-title="Paso 2: Diagrama de la red" class="index-title"></div>
	Paso 2: Diagrama de la red</em></h3>
<p style="text-align: justify;">Con base en la información obtenida en la fase anterior y haciendo uso de los conceptos básicos para diagramar una red, obtendremos el gráfico del proyecto:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-247.webp" alt="Ruta crítica cpm" width="670" height="350" class="aligncenter wp-image-26713 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-247.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-247-300x157.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p><em>Fb y Fd corresponde a actividades ficticias que no consumen tiempo ni recursos.</em></p>
<h3 id="cc-m-header-5721243913" class=""><em>
		<div id="paso-3-calcular-la-red" data-title="Paso 3: Calcular la red" class="index-title"></div>
	Paso 3: Calcular la red</em></h3>
<p style="text-align: justify;">Para el cálculo de la red se consideran 3 indicadores, T1, T2 y H. Estos indicadores se calculan en cada evento o nodo (entiéndase nodo entonces como un punto en el cual se completan actividades y se inician las subsiguientes.</p>
<p style="text-align: justify;"><strong>T1: </strong>Tiempo más temprano de realización de un evento. Para calcular este indicador deberá recorrerse la red de izquierda a derecha y considerando lo siguiente:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li><span style="line-height: 1.5;">T1 del primer nodo es igual a 0.</span></li>
<li><span style="line-height: 1.5;">T1 del nodo n = T1 del nodo n-1 (nodo anterior) + duración de la actividad que finaliza en el nodo n.</span></li>
<li><span style="line-height: 1.5;">Si en un nodo finaliza más de una actividad, se toma el tiempo de la actividad con mayor valor.</span></li>
</ul>

		</div>
	
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-248.webp" alt="Ruta crítica cpm" width="670" height="423" class="aligncenter size-full wp-image-26714" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-248.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-248-300x189.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p style="text-align: justify;">En este caso para el cálculo del T1 en el nodo 4, en el que concurren la finalización de 3 actividades, 2 de ellas ficticias (Fb y Fd, cuyos tiempos son cero) y una es la actividad C. En este caso deberá considerarse el mayor de los T1 resultantes:</p>
<p style="text-align: justify;">T1 (nodo 3) + Fb = 4 + 0 = 4</p>
<p style="text-align: justify;">T1 (nodo 2) + C = 3 + 2 = 5</p>
<p style="text-align: justify;">T1 ( nodo 5) + Fd = 5 + 0 = 5</p>
<p style="text-align: justify;">Así entonces, el T1 del nodo 4 será igual a 5 (el mayor valor).</p>
<p style="text-align: justify;"><strong>T2:</strong> Tiempo más tardío de realización del evento. Para calcular <span style="text-align: justify; line-height: 1.5;">este indicador deberá recorrerse la red de derecha a izquierda y considerando lo siguiente:</span></p>

		<div class="checklist tie-list-shortcode">
<ul>
<li style="text-align: justify;"><span style="line-height: 1.5;">T2 del primer nodo (de derecha a izquierda) es igual al T1 de este.</span></li>
<li style="text-align: justify;"><span style="line-height: 1.5;">T2 del nodo n = T2 del nodo n-1 (nodo anterior, de derecha a izquierda) &#8211; duración de la actividad que se inicia. </span></li>
<li style="text-align: justify;"><span style="line-height: 1.5;">Si en un nodo finaliza más de una actividad, se toma el tiempo de la actividad con menor valor.</span></li>
</ul>

		</div>
	
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-249.webp" alt="Ruta crítica cpm" width="670" height="424" class="aligncenter wp-image-26715 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-249.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-249-300x190.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p style="text-align: justify;">En este caso para el cálculo del T2 del nodo 2, en el que concurren el inicio de varias actividades deberá entonces considerarse lo siguiente:</p>
<p style="text-align: justify;">T2 nodo 3 &#8211; B = 5 &#8211; 1 = 4</p>
<p style="text-align: justify;">T2 nodo 4 &#8211; C = 5 &#8211; 2 = 3</p>
<p style="text-align: justify;">T2 nodo 5 &#8211; D = 5 &#8211; 2 = 3</p>
<p style="text-align: justify;">Así entonces, el T2 del nodo 2 será 3, es decir el menor valor.</p>
<p style="text-align: justify;"><strong>H: </strong>Tiempo de holgura, es decir la diferencia entre T2 y T1. Esta holgura, dada en unidades de tiempo corresponde al valor en el que la ocurrencia de un evento puede tardarse. Los eventos en los cuales la holgura sea igual a 0 corresponden a la ruta crítica, es decir que la ocurrencia de estos eventos no puede tardarse una sola unidad de tiempo respecto al cronograma establecido, dado que en el caso en que se tardara retrasaría la finalización del proyecto.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-250.webp" alt="" width="670" height="424" class="aligncenter size-full wp-image-26716" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-250.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-250-300x190.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p style="text-align: justify;">Las actividades críticas por definición constituyen la ruta más larga que abarca el proyecto, es decir que la sumatoria de las actividades de una ruta crítica determinará la duración estimada del proyecto. Puede darse el caso en el que se encuentren más de una ruta crítica, como es el caso del problema que hemos desarrollado.</p>
<p><em><strong>Ruta crítica 1:</strong></em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-251.webp" alt="" width="569" height="362" class="aligncenter size-full wp-image-26717" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-251.webp 569w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-251-300x191.webp 300w" sizes="(max-width: 569px) 100vw, 569px" /></p>
<p style="text-align: justify;">Esta ruta se encuentra compuesta por las actividades A, C y E. La duración del proyecto será de 9 horas.</p>
<p><em><strong>Ruta Crítica 2:</strong></em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-252.webp" alt="Ruta crítica cpm" width="576" height="367" class="aligncenter size-full wp-image-26718" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-252.webp 576w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-252-300x191.webp 300w" sizes="(max-width: 576px) 100vw, 576px" /></p>
<h3 id="cc-m-header-5721256313" class=""><em>
		<div id="paso-4-establecer-el-cronograma" data-title="Paso 4: Establecer el cronograma" class="index-title"></div>
	Paso 4: Establecer el cronograma</em></h3>
<p>Para establecer un cronograma deberán considerarse varios factores, el más importante de ellos es la relación de precedencia, y el siguiente corresponde a escalonar las actividades que componen la ruta crítica de tal manera  que se complete el proyecto dentro de la duración estimada.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-253.webp" alt="Diagrama de Gannt" width="462" height="307" class="aligncenter size-full wp-image-26719" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-253.webp 462w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-253-300x199.webp 300w" sizes="(max-width: 462px) 100vw, 462px" /></p>
<hr />

		<div class="box info  ">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>Te invitamos a leer: <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-mediante-python-cpm/"><em><strong>Método de la Ruta Crítica (CPM) mediante Python</strong></em></a>
			</div>
		</div>
	
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/">Método de la ruta crítica &#8211; CPM</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
