<?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>Teoría de redes archivos &#187; Ingenieria Industrial Online</title>
	<atom:link href="https://ingenieriaindustrialonline.com/tag/teoria-de-redes/feed/" rel="self" type="application/rss+xml" />
	<link>https://ingenieriaindustrialonline.com/tag/teoria-de-redes/</link>
	<description>ingenieriaindustriaonline.com</description>
	<lastBuildDate>Sun, 24 Mar 2024 20:43:36 +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>Teoría de redes archivos &#187; Ingenieria Industrial Online</title>
	<link>https://ingenieriaindustrialonline.com/tag/teoria-de-redes/</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>
		<item>
		<title>Problemas de asignación</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 20:52:09 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Problema de asignación]]></category>
		<category><![CDATA[Problema de transporte]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<category><![CDATA[WinQSB]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1246</guid>

					<description><![CDATA[<p>El problema de asignación es una variación del problema original de transporte, variación en la cual las variables de decisión X(i,j) solo pueden tomar valores binarios, es decir ser cero (0) o uno (1), en la solución óptima, lo que supone que la oferta y la demanda están perfectamente alineadas, de hecho ambas son iguales a uno (1). &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion/">Problemas de asignación</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="problema-de-asignacion" data-title="Problema de asignación" class="index-title"></div>
	El <strong>problema de asignación</strong> es una variación del <em><strong><a class="" title="Problema del Transporte o Distribución" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-transporte-o-distribucion/">problema original de transporte</a></strong></em>, variación en la cual las variables de decisión X(i,j) solo pueden tomar valores binarios, es decir ser cero (0) o uno (1), en la solución óptima, lo que supone que la oferta y la demanda están perfectamente alineadas, de hecho ambas son iguales a uno (1).</p>
<p>Múltiples son los casos en los que como ingenieros industriales podemos hacer uso del problema de asignación para resolver diversas situaciones, entre los que cabe mencionar se encuentran la asignación de personal a maquinas, herramientas a puestos de trabajos, horarios a maestros, candidatos a vacantes, huéspedes a habitaciones, comensales a mesas, vendedores a zonas territoriales etc.</p>
<div id="cc-m-2964799413" class="j-module n j-text ">
<p>En el <strong>modelo de asignación,</strong> la idea fundamental de resolución es <em><b>¿Qué fuente satisface mejor el destino?</b></em>, y dado que hemos asociado el modelo a una gran diversidad de circunstancias esta pregunta puede plantearse en múltiples contextos, como ¿Qué candidato es el idóneo para la vacante?, o ¿Qué personal es el indicado para la línea productiva?, o ¿Qué personal es el mejor para ejecutar determinada tarea?. Una característica particular del modelo de asignación es que para su resolución no se hace necesario que el número de fuentes sea igual al número de destinos, lo cual es muy común en la vida real, teniendo en cuenta su aplicación, pues generalmente la cantidad de aspirantes es superior al número de vacantes (lógicamente haciendo referencia a la aplicación del modelo al contexto de oferta y demanda laboral).</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="metodo-hungaro" data-title="Método Húngaro" class="index-title"></div>
	Método Húngaro</h2>
<p>Apartándonos un poco de la idea expresada en módulos anteriores respecto a la facilidad de resolver problemas atinentes a la investigación operativa en especial aquellos de transporte mediante el uso de herramientas tecnológicas como lo son WinQSB, LINGO, TORA, STORM, Excel, <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion-en-google-or-tools/"><strong>Or Tools</strong></a>, etc.. vale la pena ya sea para fines académicos o de cultura ingenieril realizar la resolución del problema de asignación mediante el algoritmo que se creó para tal fin, como lo es el <strong>Método Húngaro</strong>.</p>
</div>
<div id="cc-m-5678944213" class="j-module n j-spacing ">
		<div class="box info  alignleft">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>El método Húngaro es un método de optimización de problemas de asignación, conocido como tal gracias a que los primeros aportes al método clásico definitivo fueron de <strong>Dénes König</strong> y <strong>Jenő Egerváry</strong> dos matemáticos húngaros. El algoritmo tal como se detallará a continuación está diseñado para la resolución de problemas de minimización únicamente, será entonces cuestión de agregar un paso adicional para abordar ejercicios de maximización.
			</div>
		</div>
	</div>
<div></div>
<div>
<div id="cc-m-2964801813" class="j-module n j-header ">
<h3 id="cc-m-header-2964801813" class=""><em>Paso 1</em></h3>
</div>
<div id="cc-m-2964802613" class="j-module n j-text ">
<p>Antes que nada cabe recordar que el método húngaro trabaja en una matriz de costos n*m (en este caso conocida como matriz m*m, dado que el número de filas es igual al número de columnas n = m), una vez construida esta se debe encontrar el elemento más pequeño en cada fila de la matriz.</p>
</div>
<div id="cc-m-2964802713" class="j-module n j-header ">
<h3 id="cc-m-header-2964802713" class=""><em>Paso 2</em></h3>
</div>
<div id="cc-m-2964802813" class="j-module n j-text ">
<p>Una vez se cumple el procedimiento anterior se debe construir una nueva matriz n*m, en la cual se consignarán los valores resultantes de la diferencia entre cada costo y el valor mínimo de la fila a la cual cada costo corresponde (valor mínimo hallado en el primer paso).</p>
</div>
<div id="cc-m-2964802913" class="j-module n j-header ">
<h3 id="cc-m-header-2964802913" class=""><em>Paso 3</em></h3>
</div>
<div id="cc-m-2964803013" class="j-module n j-text ">
<p>Este paso consiste en realizar el mismo procedimiento de los dos pasos anteriores referidos ahora a las columnas, es decir, se halla el valor mínimo de cada columna, con la diferencia que este se halla de la matriz resultante en el segundo paso, luego se construirá una nueva matriz en la cual se consignarán los valores resultantes de la diferencia entre cada costo y el valor mínimo de la columna a la cual cada costo corresponde, matriz llamada «Matriz de Costos Reducidos».</p>
</div>
<div id="cc-m-2964804713" class="j-module n j-header ">
<h3 id="cc-m-header-2964804713" class=""><em>Paso 4</em></h3>
</div>
<div id="cc-m-2964804813" class="j-module n j-text ">
<p>A continuación se deben de trazar líneas horizontales o verticales o ambas (únicamente de esos tipos) con el objetivo de cubrir todos los ceros de la matriz de costos reducidos con el menor número de líneas posibles, si el número de lineas es igual al número de filas o columnas se ha logrado obtener la solución óptima (la mejor asignación según el contexto de optimización), si el número de líneas es inferior al número de filas o columnas se debe de proceder con el paso 5.</p>
</div>
<div id="cc-m-2964805013" class="j-module n j-header ">
<h3 id="cc-m-header-2964805013" class=""><em>Paso 5</em></h3>
</div>
<div id="cc-m-2964806313" class="j-module n j-text ">
<p>Este paso consiste en encontrar el menor elemento de aquellos valores que no se encuentran cubiertos por las lineas del paso 4, ahora se restará del restante de elementos que no se encuentran cubiertos por las líneas; a continuación este mismo valor se sumará a los valores que se encuentren en las intersecciones de las lineas horizontales y verticales, una vez finalizado este paso se debe volver al paso 4.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="solucion-de-un-problema-de-asignacion-mediante-el-metodo-hungaro" data-title="Solución de un problema de asignación mediante el Método Húngaro" class="index-title"></div>
	Solución de un problema de asignación mediante el Método Húngaro</h2>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>La compañía de manufactura «Jiménez y Asociados» desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:</p></blockquote>
</div>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-258.webp" alt="Problema de asignación" width="367" height="152" class="aligncenter wp-image-26538 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-258.webp 367w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-258-300x124.webp 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
<p><em style="font-size: 22px; font-weight: bold;">Paso 1</em></p>
<div id="cc-m-2964821713" class="j-module n j-text ">
<p><em>Encontramos el menor elemento de cada fila</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-259.webp" alt="Problema de asignación" width="474" height="165" class="aligncenter wp-image-26539 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-259.webp 474w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-259-300x104.webp 300w" sizes="(max-width: 474px) 100vw, 474px" /></p>
</div>
<div id="cc-m-2964821813" class="j-module n j-imageSubtitle ">
<p>&nbsp;</p>
</div>
<div id="cc-m-2964821913" class="j-module n j-header ">
<h3 id="cc-m-header-2964821913" class=""><em>Paso 2</em></h3>
</div>
<div id="cc-m-2964822013" class="j-module n j-text ">
<p>Construimos una nueva matriz con las diferencias entre los valores de la matriz original y el elemento menor de la fila a la cual corresponde.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-260.webp" alt="Problema de asignación" width="495" height="144" class="aligncenter wp-image-26540 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-260.webp 495w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-260-300x87.webp 300w" sizes="(max-width: 495px) 100vw, 495px" /></p>
</div>
<div id="cc-m-2964822113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
<div class="cc-clear"><em><span style="font-size: 22px; font-weight: bold;">Paso 3</span></em></div>
</div>
<div id="cc-m-2964822313" class="j-module n j-text ">
<p>En la matriz construida en el paso anterior se procede a efectuar el paso 1 esta vez en relación a las columnas, por ende escogemos el elemento menor de cada columna. Igualmente construimos una nueva matriz con la diferencia entre los valores de la matriz 2 y el elemento menor de la columna a la cual corresponde cada valor.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-261.webp" alt="Matriz de costos reducidos" width="368" height="388" class="aligncenter size-full wp-image-26541" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-261.webp 368w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-261-285x300.webp 285w" sizes="(max-width: 368px) 100vw, 368px" /></p>
</div>
<div id="cc-m-2964822513" class="j-module n j-imageSubtitle ">
<p>&nbsp;</p>
</div>
<div id="cc-m-2964822913" class="j-module n j-header ">
<h3 id="cc-m-header-2964822913" class=""><em>Paso 4</em></h3>
</div>
<div id="cc-m-2964822813" class="j-module n j-text ">
<p>En este paso trazaremos la menor cantidad de combinaciones de líneas horizontales y verticales con el objetivo de cubrir todos los ceros de la matriz de costos reducidos.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-262.webp" alt="" width="369" height="183" class="aligncenter size-full wp-image-26542" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-262.webp 369w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-262-300x149.webp 300w" sizes="(max-width: 369px) 100vw, 369px" /></p>
</div>
<div id="cc-m-2964823013" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2964823113" class="j-module n j-text ">
<p>Como se puede observar el menor número de líneas horizontales y/o verticales necesarias para cubrir los ceros de la matriz de costos reducidos es igual a 2, por ende al ser menor que el número de filas o columnas es necesario recurrir al paso 5.</p>
</div>
<div id="cc-m-2964823213" class="j-module n j-header ">
<h3></h3>
<h3 id="cc-m-header-2964823213" class=""><em>Paso 5</em></h3>
</div>
<div id="cc-m-2964823313" class="j-module n j-text ">
<p><em>En este paso seleccionamos el menor elemento de los elementos no subrayados.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-263.webp" alt="" width="369" height="274" class="aligncenter size-full wp-image-26543" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-263.webp 369w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-263-300x223.webp 300w" sizes="(max-width: 369px) 100vw, 369px" /></p>
</div>
<div id="cc-m-2964823913" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964824013" class="j-module n j-text ">
<p>Luego se procede a restarse de los elementos no subrayados y a adicionarse a los elementos ubicados en las intersecciones de las líneas, en este caso existe una única intersección (3).</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-264.webp" alt="" width="367" height="179" class="aligncenter size-full wp-image-26544" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-264.webp 367w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-264-300x146.webp 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
</div>
<div id="cc-m-2964824113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2964824213" class="j-module n j-text ">
<p><em>Ahora ya efectuado este paso pasamos al paso 4.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-265.webp" alt="" width="367" height="179" class="aligncenter size-full wp-image-26545" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-265.webp 367w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-265-300x146.webp 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
</div>
<div id="cc-m-2964824313" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2964824413" class="j-module n j-text ">
<p>Ahora observamos cómo se hace necesario trazar tres líneas (la misma cantidad de filas o columnas de la matriz) por ende se ha llegado al tabulado final, en el que por simple observación se determina las asignaciones óptimas.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-266.webp" alt="" width="367" height="179" class="aligncenter size-full wp-image-26546" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-266.webp 367w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-266-300x146.webp 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
</div>
<div id="cc-m-2964824513" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2964824613" class="j-module n j-text ">
<p>Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="solucion-de-un-problema-de-maximizacion-mediante-el-metodo-hungaro" data-title="Solución de un problema de maximización mediante el Método Húngaro" class="index-title"></div>
	Solución de un problema de maximización mediante el Método Húngaro</h2>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>Una organización de recolección de café cuenta con tres equipos de siembra y cosecha del mismo (equipos 1, 2, 3). Estos equipos de trabajo se encuentran entrenados para trabajar en condiciones particulares del proceso, condiciones como lo son el tipo de suelo, las condiciones del clima y el tipo de grano. La organización cuenta con cuatro terrenos disponibles para efectuar el proceso de siembra y cosecha (terrenos A, B, C, D), estos terrenos tienen condiciones particulares de suelo, clima y tipo de grano. Cada equipo cuenta con la capacidad de efectuar el proceso en solo uno de los terrenos disponibles, salvo el equipo 2, que cuenta con una serie de herramientas tecnológicas que le permiten realizar la siembra y cosecha del grano en dos de los terrenos disponibles.</p></blockquote>
<p><em>Se ha contratado a un Ingeniero Industrial con el objetivo de realizar las asignaciones precisas que maximicen la cantidad de sacos de café cosechados en total. El siguiente tabulado muestra la capacidad (en cientos de sacos) de cosecha de café de cada uno de los equipos dependiendo de cada uno de los terrenos.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-267.webp" alt="Problemas de asignación" width="422" height="146" class="aligncenter wp-image-26547 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-267.webp 422w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-267-300x104.webp 300w" sizes="(max-width: 422px) 100vw, 422px" /></p>
<h3><em>Solución</em></h3>
<p>En este problema debemos recordar un concepto fundamental para la aplicación del método húngaro, este concepto nos dice que el número de filas debe ser exactamente igual al número de columnas. Por ende, la acción a realizar debería ser crear un equipo ficticio, el cual nos deje el tabulado balanceado y a este asignarle un número de sacos cosechados equivalente a cero en cada uno de los terrenos. Sin embargo el problema nos indica que uno de los equipos se encuentra en capacidad de que se le asignen dos terrenos, en este caso crearemos un equipo 2 alternativo (Equipo 2B) el cual nos balanceará el tabulado y nos hará prescindir del equipo ficticio pensado inicialmente. A este equipo 2B que crearemos le corresponderá la misma capacidad de cosecha del equipo 2 (en adelante equipo 2A) según el terreno, lógicamente.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-268.webp" alt="Problemas de asignación" width="422" height="182" class="aligncenter wp-image-26548 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-268.webp 422w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-268-300x129.webp 300w" sizes="(max-width: 422px) 100vw, 422px" /></p>
<div id="cc-m-5695446513" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695446613" class="j-module n j-text ">
<p>Una vez balanceado el tabulado debemos de cuestionarnos acerca del criterio de optimización, pues recordemos que el método húngaro se encuentra diseñado para ejercicios de minimización. En este caso nuestro objetivo es maximizar, por lo que tendremos que aplicar un paso adicional.</p>
<p><em>Lo primero que debemos hacer es ubicar el mayor valor del tabulado inicial.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-269.webp" alt="" width="422" height="182" class="aligncenter size-full wp-image-26549" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-269.webp 422w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-269-300x129.webp 300w" sizes="(max-width: 422px) 100vw, 422px" /></p>
</div>
<div id="cc-m-5695446713" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695446813" class="j-module n j-text ">
<p>En este caso este valor es 15, por lo cual procederemos a realizar la siguiente operación con cada uno de los valores:</p>
<p><em>Restaremos a 15, el valor de cada una de las celdas y este valor quedará en cada una de las celdas correspondientes.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-270.webp" alt="" width="426" height="177" class="aligncenter size-full wp-image-26550" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-270.webp 426w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-270-300x125.webp 300w" sizes="(max-width: 426px) 100vw, 426px" /></p>
</div>
<div id="cc-m-5695447013" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695447113" class="j-module n j-text ">
<p><em>Ahora nuestro tabulado inicial quedará de la siguiente manera:</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-271.webp" alt="" width="426" height="177" class="aligncenter size-full wp-image-26551" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-271.webp 426w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-271-300x125.webp 300w" sizes="(max-width: 426px) 100vw, 426px" /></p>
</div>
<div id="cc-m-5695447313" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695447413" class="j-module n j-text ">
<p>A partir de este tabulado ya podemos aplicar el algoritmo del método húngaro como se aplicaría en un caso e minimización (normalmente).</p>
<p><em>Ahora encontramos el menor elemento de cada fila.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-272.webp" alt="" width="426" height="177" class="aligncenter size-full wp-image-26553" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-272.webp 426w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-272-300x125.webp 300w" sizes="(max-width: 426px) 100vw, 426px" /></p>
</div>
<div id="cc-m-5695447713" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695447813" class="j-module n j-text ">
<p><em>Y se lo restamos a todas las celdas de la fila.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-273.webp" alt="" width="525" height="177" class="aligncenter size-full wp-image-26554" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-273.webp 525w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-273-300x101.webp 300w" sizes="(max-width: 525px) 100vw, 525px" /></p>
</div>
<div id="cc-m-5695447913" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695448113" class="j-module n j-text ">
<p>Ahora efectuamos este mismo paso, pero esta vez con las columnas. Elegimos el menor de los valores de cada columna y se lo restamos a cada una de las celdas de la columna correspondiente.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-274.webp" alt="" width="392" height="177" class="aligncenter size-full wp-image-26555" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-274.webp 392w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-274-300x135.webp 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-274-390x177.webp 390w" sizes="(max-width: 392px) 100vw, 392px" /></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/hungaro_0.png" alt="" width="392" height="177" class="size-full wp-image-35736 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/hungaro_0.png 392w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/hungaro_0-300x135.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/hungaro_0-390x177.png 390w" sizes="(max-width: 392px) 100vw, 392px" /></p>
</div>
<div id="cc-m-5695448613" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695449113" class="j-module n j-text ">
<p>Ahora procedemos a cubrir la mayor cantidad de ceros, con la menor cantidad de líneas, si el número de líneas que empleemos es igual al grado de la matriz (en este caso matriz grado 4, 4&#215;4) habremos llegado al final del ejercicio.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-276.webp" alt="" width="392" height="177" class="aligncenter size-full wp-image-26556" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-276.webp 392w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-276-300x135.webp 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-276-390x177.webp 390w" sizes="(max-width: 392px) 100vw, 392px" /></p>
</div>
<div id="cc-m-5695449213" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695448313" class="j-module n j-text ">
<p>Dado que el número de líneas es igual al grado de la matriz, hemos concluido el algoritmo. Lo único que quedará será asignar a cada equipo el terreno en el que el intercepto es igual a 0 (cero).</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-277.webp" alt="" width="392" height="177" class="aligncenter size-full wp-image-26557" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-277.webp 392w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-277-300x135.webp 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-277-390x177.webp 390w" sizes="(max-width: 392px) 100vw, 392px" /></p>
</div>
<div id="cc-m-5695449313" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-5695449413" class="j-module n j-text ">
<p>Las asignaciones, como es lógico deberán iniciarse por el equipo al cual solo corresponda un terreno, en este caso al Equipo 3 le corresponde el Terreno A. De esta manera al Equipo 1 le corresponde el Terreno D. Mientras tanto el Equipo 2 se encargará de la cosecha en los terrenos B y C. Según el tabulado del problema (recordemos que es de maximización), la cantidad de sacos (expresada en cientos de sacos) será así:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-278.webp" alt="" width="392" height="197" class="aligncenter size-full wp-image-26558" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-278.webp 392w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-278-300x151.webp 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-278-390x197.webp 390w" sizes="(max-width: 392px) 100vw, 392px" /></p>
</div>
<div id="cc-m-5695449813" 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="solucion-de-un-problema-de-asignacion-mediante-programacion-lineal" data-title="Solución de un problema de asignación mediante programación lineal" class="index-title"></div>
	Solución de un problema de asignación mediante programación lineal</h2>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>La compañía de manufactura «Jiménez y Asociados» desea realizar una jornada de mantenimiento preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda realizar el mantenimiento de cada máquina es de 1 día, sin embargo la jornada de mantenimiento no puede durar más de un día, teniendo en cuenta que la compañía cuenta con tres proveedores de servicios de mantenimiento debe de asignarse un equipo de mantenimiento a cada máquina para poder cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta que según el grado de especialización de cada equipo prestador de servicios de mantenimiento el costo de la tarea varía para cada máquina en particular, debe de asignarse el equipo correcto a la máquina indicada con el objetivo de minimizar el costo total de la jornada. Los costos asociados se pueden observar en la siguiente tabla:</p></blockquote>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-279.webp" alt="" width="367" height="152" class="aligncenter wp-image-26559 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-279.webp 367w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-279-300x124.webp 300w" sizes="(max-width: 367px) 100vw, 367px" /></p>
<div id="cc-m-2964835313" class="j-module n j-header ">
<h3 id="cc-m-header-2964835313" class=""><em>Variables de decisión</em></h3>
</div>
<div id="cc-m-2964835413" class="j-module n j-text ">
<p>Las variables de decisión de este tipo de problemas es igual a las variables de cualquier modelo de transporte tradicional, es decir variables X<sub>i,j</sub> donde i {Equipo de mantenimiento 1,2,3} y j {Máquina 1,2,3}, y corresponden a variables binarias en las cuales el valor 1 significa la asignación de un equipo de mantenimiento a una máquina en particular.</p>
</div>
<div id="cc-m-2964835513" class="j-module n j-header ">
<h3 id="cc-m-header-2964835513" class=""><em>Restricciones</em></h3>
</div>
<div id="cc-m-2964835613" class="j-module n j-text ">
<p>Dado que un equipo de mantenimiento no puede ser asignado a más de una maquinaria, esta característica debe de restringirse mediante las siguientes inecuaciones.</p>
<p>X<sub>1,1</sub> + X<sub>1,2</sub> + X<sub>1,3</sub> = 1</p>
<p>X<sub>2,1</sub> + X<sub>2,2</sub> + X<sub>2,3</sub> = 1</p>
<p>X<sub>3,1</sub> + X<sub>3,2</sub> + X<sub>3,3</sub> = 1</p>
<p>Además debe restringirse el hecho de que cada máquina solo requiere de un equipo de mantenimiento, por ende</p>
<p>X<sub>1,1</sub> + X<sub>2,1</sub> + X<sub>3,1</sub> = 1</p>
<p>X<sub>1,2</sub> + X<sub>2,2</sub> + X<sub>3,2</sub> = 1</p>
<p>X<sub>1,3</sub> + X<sub>2,3</sub> + X<sub>3,3</sub> = 1</p>
<p>Además se hace necesario que para efectos de resolución en cualquier paquete de herramientas se especifique que estas variables corresponden al conjunto de los enteros (por obvias razones) y que deben ser mayores que cero (dado que es un problema de minimización esta restricción se hace muy necesario).</p>
<p>X<sub>i,j</sub> ≥ 0</p>
<p>X<sub>i,j</sub> ∈ {Z}</p>
<p>&nbsp;</p>
</div>
<div id="cc-m-2964835913" class="j-module n j-header ">
<h3 id="cc-m-header-2964835913" class=""><em>Función Objetivo</em></h3>
</div>
<div id="cc-m-2964836013" class="j-module n j-text ">
<p>Z<sub>MIN</sub> = 10X<sub>1,1</sub> + 9X<sub>1,2</sub> + 5X<sub>1,3</sub> + 9X<sub>2,1</sub> + 8X<sub>2,2</sub> + 3X<sub>2,3</sub> + 6X<sub>3,1</sub> + 4X<sub>3,2</sub> + 7X<sub>3,3</sub></p>
<div id="cc-m-2964836113" class="j-module n j-header ">
<h3></h3>
<h3 id="cc-m-header-2964836113" class=""><em>Ingresando los datos a WinQSB</em></h3>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-280.webp" alt="Problemas de asignación WinQSB" width="535" height="166" class="aligncenter wp-image-26560 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-280.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-280-300x93.webp 300w" sizes="(max-width: 535px) 100vw, 535px" /></p>
</div>
<div id="cc-m-2964836213" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964836313" class="j-module n j-header ">
<h3 id="cc-m-header-2964836313" class="">Resultados obtenidos mediante WinQSB</h3>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-281.webp" alt="Problemas de asignación" width="549" height="225" class="aligncenter wp-image-26561 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-281.webp 549w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-281-300x123.webp 300w" sizes="(max-width: 549px) 100vw, 549px" /></p>
</div>
<div id="cc-m-2964836413" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964836513" class="j-module n j-text ">
<p>Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2 id="cc-m-header-2964836913" class="">
		<div id="solucion-de-un-problema-de-asignacion-mediante-winqsb-network-modeling" data-title="Solución de un problema de asignación mediante WinQSB &#8211; Network Modeling" class="index-title"></div>
	Solución de un problema de asignación mediante WinQSB &#8211; Network Modeling</h2>
<p>La facilidad de resolver un problema de asignación mediante WinQSB es aún mayor a la que se incurre mediante <strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/programacion-lineal/" target="" rel="noopener noreferrer">programación lineal</a></strong>, y esta metodología justifica el pensar en que el método húngaro es sumamente anacrónico únicamente contemplado para fines históricos y académicos. En el módulo NETWORK MODELING del paquete de herramientas WinQSB se puede resolver el modelo tan solo traspasando los costos de una matriz n*m a otra que brinda el módulo <em>n*m</em>.</p>
<div id="cc-m-2964837113" class="j-module n j-header ">
<h3 id="cc-m-header-2964836113" class=""><em>Ingresando los datos a WinQSB &#8211; Network Modeling</em></h3>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-282.webp" alt="Problemas de asignación" width="424" height="72" class="aligncenter wp-image-26562 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-282.webp 424w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-282-300x51.webp 300w" sizes="(max-width: 424px) 100vw, 424px" /></p>
</div>
<div id="cc-m-2964837313" class="j-module n j-imageSubtitle ">
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964837213" class="j-module n j-header ">
<h3 class="">Resultados obtenidos mediante WinQSB <em>&#8211; Network Modeling</em></h3>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-283.webp" alt="Problemas de asignación" width="549" height="95" class="aligncenter wp-image-26563 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-283.webp 549w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-283-300x52.webp 300w" sizes="(max-width: 549px) 100vw, 549px" /></p>
</div>
<div id="cc-m-2964837413" class="j-module n j-imageSubtitle ">
<p>Por ende la asignación que representa el menor costo para la jornada de mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3 realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17 unidades monetarias.</p>
<p>De esta manera se hace evidente cual es la alternativa predilecta para resolver problemas de asignación.</p>
<hr />
<p>Le recomendamos revisar: <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion-en-google-or-tools/"><em><strong>Problemas de asignación en Google OR-Tools</strong></em></a><em>. </em>Descubre esta poderosa herramienta de modelamiento y solución de problemas de optimización.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problemas-de-asignacion/">Problemas de asignación</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/problemas-de-asignacion/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Variables binarias &#8211; El Caso de la Bauxita</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/variables-binarias-el-caso-de-la-bauxita/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/variables-binarias-el-caso-de-la-bauxita/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 20:11:50 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Caso de la Bauxita]]></category>
		<category><![CDATA[Problema de transbordo]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<category><![CDATA[Variables binarias]]></category>
		<category><![CDATA[WinQSB]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1239</guid>

					<description><![CDATA[<p>Las variables binarias son un artificio matemático que permite que modelos de programación no lineal se resuelvan como tal. El buen uso de las variables binarias se convierte en una poderosa herramienta matemática para plantear problemas más complejos que los que habitualmente se resuelven acudiendo a las variables continuas.  Como su nombre lo indica, una variable binaria es aquella &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/variables-binarias-el-caso-de-la-bauxita/">Variables binarias &#8211; El Caso de la Bauxita</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Las <strong>variables binarias</strong> son un artificio matemático que permite que modelos de programación no lineal se resuelvan como tal. El buen uso de las variables binarias se convierte en una poderosa herramienta matemática para plantear problemas más complejos que los que habitualmente se resuelven acudiendo a las variables continuas.<span style="text-align: left;"> </span></p>
<p>Como su nombre lo indica, una <em><strong>variable binaria</strong></em> es aquella que puede tomar valores ya sea de cero (0) o uno (1), esta idea tan simple puede convertirse en una ayuda fundamental tanto para la modelación, como para la resolución de los problemas. Un ejemplo de ello puede ser el caso en el que determinado producto puede producirse o no, también un centro de distribución que puede abrirse o no.</p>
<div id="cc-m-5702167413" class="j-module n j-text ">
<p>El fundamento económico que más se presta para ser resuelto mediante el uso de variables binarias es el de <strong>Costo Fijo, </strong>el cual es fijo por cantidad y variable por unidad, pero depende si el recurso relacionado al costo se usa, o no, por ejemplo, el costo de arrendamiento de una bodega, el cual se cobrará a partir de la producción de cualquier unidad, pero no se cobrará si no se produce unidad alguna (no se hace uso de la bodega).</p>
<p>Otra ejemplo de la aplicación de las variables binarias se puede apreciar cuando en el sistema existen restricciones excluyentes (condicionadas la una de la otra), es decir, que a partir de la satisfacción de una condición no se hace necesario el cumplimiento de la otra condición. Por ejemplo, si se desea lanzar una producción de calzado en el cual se tenga que decidir alquilar un equipo de inyección y en el mercado existen dos alternativas de maquinarias pero solo una es contratable, en este caso se planeará la producción con las capacidades y costos asociados a cada equipo, sin embargo ambas restricciones son excluyentes, es decir solo se aplicará una de las dos.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
</div>
<h2 id="cc-m-5718424213" class="j-module n j-hr ">El caso de la Bauxita</h2>

		<div class="box info  alignleft">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>El caso de la BAUXITA es un ejemplo preparado por el Pr. Carlos Julio Vidal Holguín, en el cual se plantea un ejercicio aplicable a la cadena de abastecimiento en el cual hay que resolver un modelo de transbordo para lograr producir aluminio.
			</div>
		</div>
	
<p>Los resultados del problema deben de determinar las rutas que se emplearán para realizar la distribución de materias primas y producto terminado, además de determinar que plantas de procesamiento operan o no (para lo cual hay que hacer uso de las variables binarias) con el objetivo de satisfacer todas los requerimientos de los clientes al menor costo total posible.</p>
<blockquote class="aligncenter quote-simple "><p>Una compañía multinacional de aluminio tiene depósitos de bauxita (materia prima) en tres lugares del mundo A, B y C. Tiene además cuatro plantas donde la bauxita se convierte en alúmina (un producto intermedio), en lugares B, C, D y E. También tiene plantas de esmaltado en los lugares D y E. El proceso de conversión de la bauxita en alúmina es relativamente poco costoso. El esmaltado, sin embargo, es costoso puesto que se requiere de un equipo electrónico especial. Una tonelada de alúmina produce 0.4 toneladas de aluminio terminado. Los datos siguientes están disponibles.</p></blockquote>
<p><img decoding="async" class="aligncenter size-full wp-image-2664" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-284.png" alt="" width="426" height="126" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-284.png 426w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-284-300x89.png 300w" sizes="(max-width: 426px) 100vw, 426px" /></p>
<div id="cc-m-2964355113" class="j-module n j-text ">
<p><em>Conversión de Bauxita en alúmina</em></p>
</div>
<div id="cc-m-2964355713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i3ea297c69690b80f/version/1312406497/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2665" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-285.png" alt="" width="426" height="166" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-285.png 426w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-285-300x117.png 300w" sizes="(max-width: 426px) 100vw, 426px" /></a></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964355813" class="j-module n j-text ">
<p><em>Proceso de esmaltado</em></p>
</div>
<div id="cc-m-2964355913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/ieda160b0d01980f6/version/1312406700/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2666" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-286.png" alt="" width="322" height="128" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-286.png 322w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-286-300x119.png 300w" sizes="(max-width: 322px) 100vw, 322px" /></a></figure>
<div id="cc-m-2964356013" class="j-module n j-text ">
<p>Las ventas anuales de aluminio terminado son de 1000 toneladas (ton) en la planta D y 1200 ton en la planta E.</p>
<p><em>Costos de transporte en $/ton de Bauxita</em></p>
</div>
<div id="cc-m-2964356313" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i8be021b52261c429/version/1312407262/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2667" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-287.png" alt="" width="535" height="101" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-287.png 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-287-300x57.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></a></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964356413" class="j-module n j-text ">
<p>Los números que aparecen ordinalmente enseguida de cada fuente y destino serán utilizados para definir las variables.</p>
<p><em>Costos de transporte de alúmina, en $/ton de alúmina</em></p>
</div>
<div id="cc-m-2964356813" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i2bc4995bc30fb6dc/version/1312407568/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2668" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-288.png" alt="" width="508" height="147" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-288.png 508w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-288-300x87.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></a></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-2964357013" class="j-module n j-text ">
<p>Los lingotes de producto terminado no se transportan entre D y E y viceversa. Formule y resuelva un modelo de optimización para determinar la mejor red &#8211; configuración y diseño de la cadena de abastecimiento presentada.</p>
<p>Note que existe un problema de determinar cuáles plantas de alúmina deben ser abiertas.</p>
</div>
<div id="cc-m-2964357413" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i1b964a6b92085902/version/1312410347/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2669" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-289.png" alt="Variables binarias - Bryan Salazar López" width="535" height="455" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-289.png 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-289-300x255.png 300w" sizes="(max-width: 535px) 100vw, 535px" /></a></figure>
</div>
<h3></h3>
<h3><em>Variables de decisión</em></h3>
<div id="cc-m-2964357613" class="j-module n j-text ">
<p>Las variables de decisión se plantearán mayoritariamente en relación a las unidades a transportar desde un nodo hacia el otro.</p>
<p>Una muy buena manera de llamar a las variables es sugerido en la anterior gráfica (X(ij) &#8211; Y(jk) &#8211; W(j)). Por ende las variables de decisión serán:</p>
<p><strong>X<sub>ij</sub></strong> = Cantidad de toneladas de bauxita a transportar desde la mina <em>i </em>hacia la planta de alúmina <em>j</em> por año<em>; donde i {A,B,C} y j {B,C,D,E}.</em></p>
<p><strong>Y<sub>jk  </sub></strong>= Cantidad de toneladas de alúmina a transportar desde la planta de alúmina <em>j </em>hacia la planta de esmaltado <em>k</em> por año<em>; donde j {B,C,D,E} y k {D,E}.</em></p>
<p>Hasta este punto todo es normal, sin embargo es necesario determinar una serie de variables binarias que indicarán que plantas de alúmina se abrirán o no, además estas estarán asociadas a los costos fijos generados por la apertura de cada planta en la función objetivo.</p>
<p><strong>W<sub>j  </sub></strong>= 1, si la planta <em>j</em> se abre, de lo contrario 0<em>; donde j {B,C,D,E}. (Variable Binaria).</em></p>
</div>
<div id="cc-m-2964358713" class="j-module n j-header ">
<h3></h3>
<h3 id="cc-m-header-2964358713" class=""><em>Restricciones</em></h3>
</div>
<div id="cc-m-5860012613" class="j-module n j-text ">
<p style="padding-left: 40px;"><em><strong>Restricciones por capacidad anual de cada mina de Bauxita</strong></em></p>
<p><strong>Mina A:</strong> X<sub>AB</sub> + X<sub>AC</sub> + X<sub>AD</sub> + X<sub>AE</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 36000</p>
<p><strong>Mina B:</strong> X<sub>BB</sub> + X<sub>BC</sub> + X<sub>BD</sub> + X<sub>BE</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 52000</p>
<p><strong>Mina C:</strong> X<sub>CB</sub> + X<sub>CC</sub> + X<sub>CD</sub> + X<sub>CE</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 28000</p>
<p>Es decir que todos los envíos efectuados desde cada mina hacia cualquiera de los cuatro destinos no puede exceder la capacidad de cada mina.</p>
<p style="padding-left: 40px;"><em><strong>Restricciones por capacidad anual de procesamiento de Bauxita en cada planta de alúmina</strong></em></p>
<p><strong>Planta B:</strong> X<sub>AB</sub> + X<sub>BB</sub> + X<sub>CB</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  40000<strong>W<sub>B</sub></strong></p>
<p><strong>Planta C: </strong>X<sub>AC</sub> + X<sub>BC</sub> + X<sub>CC</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  20000<strong>W<sub>C</sub></strong></p>
<p><strong>Planta D:</strong> X<sub>AD</sub> + X<sub>BD</sub> + X<sub>CD</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  30000<strong>W<sub>D</sub></strong></p>
<p><strong>Planta E:</strong> X<sub>AE</sub> + X<sub>BE</sub> + X<sub>CE</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  80000<strong>W<sub>E</sub></strong></p>
<p><strong> </strong>Estas restricciones aseguran que los enviados realizados desde cualquiera de las minas hacia cada planta específica sean menores o iguales a los que cada planta pueda procesar, además la capacidad de cada planta va acompañada de la variable binaria que le corresponde, es decir que como el valor que puede adquirir cada variable binaria es 1 o 0, cuando esta sea 1 (la planta se abre) la capacidad se multiplicará por uno (1) es decir que no se altera, pero cuando esta variable adquiera el valor de 0 (la planta no se abre) la capacidad se multiplicará por cero (0) es decir que la capacidad quedará reducida a 0 por ende no se podrán enviar unidades a esa planta.</p>
<p style="padding-left: 40px;"><em><strong>Restricciones por capacidad anual de procesamiento de alúmina en cada planta de esmaltado</strong></em></p>
<p>En este conjunto de restricciones no se utilizarán las variables correspondientes a las de envío de Bauxita (X) sino las correspondientes al envío de Alúmina (Y), en las restricciones de balanceo representaremos la equivalencia dado el rendimiento que tiene la Bauxita de cada mina para convertirse en alúmina.</p>
<p><strong>Planta D:</strong> Y<sub>BD</sub> + Y<sub>CD</sub> + Y<sub>DD</sub> + Y<sub>ED</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  4000</p>
<p><strong>Planta E: </strong>Y<sub>BE</sub> + Y<sub>CE</sub> + Y<sub>DE</sub> + Y<sub>EE</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>  7000</p>
<p>Es decir que todos los envíos de alúmina hacia las plantas de esmaltado no superen cada una de las capacidades de procesamiento de las mismas.</p>
<p style="padding-left: 40px;"><em><strong>Restricciones por las ventas anuales de aluminio terminado en cada planta de esmaltado</strong></em></p>
<p>En este caso se debe recordar que existe una equivalencia entre la alúmina y el aluminio terminado (equivalencia determinada por el rendimiento de la alúmina para fabricar aluminio que es del 40%, «una tonelada de alúmina produce 0.4 toneladas de aluminio terminado»). Entonces podemos usar las variables de toneladas de alúmina con su debida equivalencia para elaborar las restricciones de demanda.</p>
<p><strong>Planta D:</strong> 0,4(Y<sub>BD</sub> + Y<sub>CD</sub> + Y<sub>DD</sub> + Y<sub>ED</sub>) <span lang="ZH-CN" xml:lang="ZH-CN">=</span>  1000</p>
<p><strong>Planta E:</strong> 0,4(Y<sub>BE</sub> + Y<sub>CE</sub> + Y<sub>DE</sub> + Y<sub>EE</sub>) <span lang="ZH-CN" xml:lang="ZH-CN">=</span>  1200</p>
<p style="padding-left: 40px;"><em><strong>Restricciones de balance</strong></em></p>
<p>Como lo mencionamos en módulos anteriores las restricciones de balance tienen lugar en los nodos de transbordo, es decir, en los nodos que no son de oferta o demanda pura. Como en este nodo entran variables que representan toneladas de Bauxita y salen variables que representan alúmina se debe de aplicar el rendimiento correspondiente para realizar la conversión.</p>
<p>0.060<strong>X<sub>AB</sub></strong> + 0.080<strong>X<sub>BB</sub></strong> + 0.062<strong>X<sub>CB</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">=</span> Y<sub>BD</sub> + Y<sub>BE</sub><strong> </strong></p>
<p>0.060<strong>X<sub>AC</sub></strong> + 0.080<strong>X<sub>BC</sub></strong> + 0.062<strong>X<sub>CC</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">=</span> Y<sub>CD</sub> + Y<sub>CE</sub><strong> </strong></p>
<p>0.060<strong>X<sub>AD</sub></strong> + 0.080<strong>X<sub>BD</sub></strong> + 0.062<strong>X<sub>CD</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">=</span> Y<sub>DD</sub> + Y<sub>DE</sub></p>
<p>0.060<strong>X<sub>AE</sub></strong> + 0.080<strong>X<sub>BE</sub></strong> + 0.062<strong>X<sub>CE</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">=</span> Y<sub>ED</sub> + Y<sub>EE</sub></p>
<p>Al introducir estos datos en software como WinQSB debemos saber que al lado derecho del signo igual o el signo de la inecuación no deben ir variables, por ende estas pasan a restar al lado izquierdo, igualando la ecuación a cero (0).</p>
<p style="padding-left: 40px;"><em><strong>Restricciones obvias</strong></em></p>
<p>Las cuales determinan la naturaleza de las variables</p>
<p><strong>X<sub>ij</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">≥ 0</span> <span lang="ZH-CN" xml:lang="ZH-CN">∀ <em>i,j</em><br />
</span></p>
<p><strong>X<sub>jk</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">≥ 0</span> <span lang="ZH-CN" xml:lang="ZH-CN">∀ <em>j,k</em><br />
</span></p>
<p><strong>W<sub>j</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">∈ {1,0}</span> <span lang="ZH-CN" xml:lang="ZH-CN">∀ <em>j</em></span></p>
<div id="cc-m-2964369613" class="j-module n j-header ">
<h3></h3>
<h3 id="cc-m-header-2964369613" class=""><em>Función Objetivo</em></h3>
</div>
<div id="cc-m-2964369713" class="j-module n j-text ">
<p>Para elaborar la función objetivo hay que tener en cuenta los costos de explotación en cada mina, los costos de procesamiento de bauxita en las plantas de alúmina, los costos procesamiento en cada planta de esmaltado, así como los costos de envío asociados a cada ruta y determinantemente los costos relacionados con las variables binarias los cuales son los costos fijos condicionados a si la planta se abre o no.</p>
<p>Z<sub>MIN</sub> = 820<strong>X<sub>AB</sub></strong> + 2430<strong>X<sub>AC</sub></strong> + 930<strong>X<sub>AD</sub></strong> + 2340<strong>X<sub>AE</sub></strong> + 370<strong>X<sub>BB</sub></strong> + 990<strong>X<sub>BC</sub></strong> + 580<strong>X<sub>BD</sub></strong> + 1870<strong>X<sub>BE</sub></strong> + 2170<strong>X<sub>CB</sub></strong> + 550<strong>X<sub>CC</sub></strong> + 1160<strong>X<sub>CD</sub></strong> + 1480<strong>X<sub>CE</sub></strong> <span lang="ZH-CN" xml:lang="ZH-CN">+</span> 9050<strong>Y<sub>BD</sub></strong> + 7040<strong>Y<sub>BE</sub></strong> + 9440<strong>Y<sub>CD</sub></strong> + 6460<strong>Y<sub>CE</sub></strong> + 8880<strong>Y<sub>DD</sub></strong> + 7195<strong>Y<sub>DE</sub></strong> + <span lang="ZH-CN" xml:lang="ZH-CN">10205</span><strong>Y<sub>ED</sub></strong> + 5440<strong>Y<sub>EE</sub></strong> + <span lang="ZH-CN" xml:lang="ZH-CN">3000000</span><strong>W<sub>B</sub></strong> + <span lang="ZH-CN" xml:lang="ZH-CN">2500000</span><strong>W<sub>C</sub></strong> + <span lang="ZH-CN" xml:lang="ZH-CN">4800000</span><strong>W<sub>D</sub></strong> + <span lang="ZH-CN" xml:lang="ZH-CN">6000000</span><strong>W<sub>E</sub></strong><strong> </strong></p>
<p>&nbsp;</p>
</div>
<div id="cc-m-2964369813" class="j-module n j-header ">
<h3 id="cc-m-header-2964369813" class=""><em>Ingresando los datos a WinQSB</em></h3>
<p><img decoding="async" class="aligncenter size-full wp-image-2670" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-290.png" alt="" width="1025" height="299" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-290.png 1025w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-290-300x88.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-290-768x224.png 768w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-290-1024x299.png 1024w" sizes="(max-width: 1025px) 100vw, 1025px" /></p>
<div id="cc-m-2964370013" class="j-module n j-header ">
<h3 id="cc-m-header-2964370013" class=""><em>Resultados obtenidos mediante WinQSB</em></h3>
</div>
<div id="cc-m-2964370113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i97d83bced3f1a9c9/version/1312437258/variables-binarias.jpg" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2671" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-291.png" alt="" width="508" height="492" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-291.png 508w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-291-300x291.png 300w" sizes="(max-width: 508px) 100vw, 508px" /></a></figure>
<p><img decoding="async" class="aligncenter size-full wp-image-2672" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-292.png" alt="" width="571" height="460" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-292.png 571w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-292-300x242.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></p>
<p>El anterior problema resuelto es un ejemplo introductorio a la <em>modelación</em> a gran escala y a la aplicación que tienen la investigación de operaciones dentro de las nuevas tendencias de <em><strong><a href="https://ingenieriaindustrialonline.com/logistica/logistica-y-cadena-de-abastecimiento/">Cadena de Abastecimiento</a></strong></em>.</p>
</div>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/variables-binarias-el-caso-de-la-bauxita/">Variables binarias &#8211; El Caso de la Bauxita</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/variables-binarias-el-caso-de-la-bauxita/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Algoritmo de la ruta más corta</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 19:14:22 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Investigación de Operaciones]]></category>
		<category><![CDATA[Ruta más corta]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<category><![CDATA[WinQSB]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1233</guid>

					<description><![CDATA[<p>Ya el nombre de este tipo de algoritmo es bastante sugestivo. El algoritmo de la ruta más corta  consiste, si es necesario decirlo, en una modalidad de problemas de redes, en la cual se debe determinar el plan de rutas que genere la trayectoria con la mínima distancia total, que una un nodo fuente con un nodo destino, sin importar el &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/">Algoritmo de la ruta más corta</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ya el nombre de este tipo de algoritmo es bastante sugestivo. El <strong>algoritmo de la ruta más corta</strong>  consiste, si es necesario decirlo, en una modalidad de <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/"><em><strong>problemas de redes</strong></em></a>, en la cual se debe determinar el plan de rutas que genere la trayectoria con la mínima distancia total, que una un <em>nodo fuente</em> con un <em>nodo destino</em>, sin importar el número de nodos que existan entre estos.</p>

		<div class="box info  alignleft">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>Esta modalidad de problemas puede solucionarse como un modelo de transbordo normal, sin embargo la principal sugerencia es la de establecer una oferta en el nodo fuente igual a una unidad (1) y establecer una demanda en el arco destino igual a una unidad (1).
			</div>
		</div>
	
<p>Vale la pena considerar, que en la práctica, es muy frecuente la utilización del algoritmo resultante con variaciones que consisten en la minimización de tiempos, no necesariamente de distancias.</p>
<h2>Algoritmo de la ruta más corta &#8211; Ejemplo</h2>
<h3>El caso</h3>
<blockquote class="aligncenter quote-simple "><p>Un minero ha quedado atrapado en una mina, la entrada a la mina se encuentra ubicada en el nodo 1, se conoce de antemano que el minero permanece atrapado en el nodo 9, para llegar a dicho nodo hay que atravesar una red de túneles que van conectados entre sí. El tiempo de vida que le queda al minero sin recibir auxilio es cada vez menor y se hace indispensable hallar la ruta de acceso al nodo 9 más corta. Las distancias entre nodos de la mina se encuentran en la siguiente gráfica dadas en cientos de metros. Formule un modelo de transbordo y resuelva mediante cualquier paquete de herramientas de investigación operativa que permita establecer la ruta más corta para poder así auxiliar al minero.</p></blockquote>
<p><img decoding="async" class="aligncenter size-full wp-image-2674" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-293.png" alt="" width="662" height="287" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-293.png 662w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-293-300x130.png 300w" sizes="(max-width: 662px) 100vw, 662px" /></p>
<div id="cc-m-6470947513" class="j-module n j-header ">
<h3 id="cc-m-header-6470947513" class=""><em>Variables de decisión</em></h3>
</div>
<div id="cc-m-6470947613" class="j-module n j-text ">
<p>El nombre de las variables en este caso poco importa, dado que de ser escogida para la solución básica eso significa simplemente que será empleada como ruta para ir a rescatar al minero, sin embargo nada tiene de malo el que se le pueda asociar con el envío de unidades desde la entrada de la mina hacia el minero, por ende puede sugerirse este como nombre de las variables. «<em>Cantidad de unidades enviadas desde el nodo i hacia el nodo j».</em></p>
<p><strong>X<sub>12</sub> =</strong> Cantidad de unidades enviadas desde el nodo 1, hacia el nodo 2</p>
<p><strong>X<sub>13</sub> =</strong> Cantidad de unidades enviadas desde el nodo 1, hacia el nodo 3</p>
<p><strong>X<sub>23</sub> =</strong> Cantidad de unidades enviadas desde el nodo 2, hacia el nodo 3</p>
<p><strong>X<sub>24</sub> =</strong> Cantidad de unidades enviadas desde el nodo 2, hacia el nodo 4</p>
<p><strong>X<sub>32</sub> =</strong> Cantidad de unidades enviadas desde el nodo 3, hacia el nodo 2</p>
<p><strong>X<sub>34</sub> =</strong> Cantidad de unidades enviadas desde el nodo 3, hacia el nodo 4</p>
<p><strong>X<sub>35</sub> =</strong> Cantidad de unidades enviadas desde el nodo 3, hacia el nodo 5</p>
<p><strong>X<sub>46</sub> =</strong> Cantidad de unidades enviadas desde el nodo 4, hacia el nodo 6</p>
<p><strong>X<sub>47</sub> =</strong> Cantidad de unidades enviadas desde el nodo 4, hacia el nodo 7</p>
<p><strong>X<sub>54</sub> =</strong> Cantidad de unidades enviadas desde el nodo 5, hacia el nodo 4</p>
<p><strong>X<sub>56</sub> =</strong> Cantidad de unidades enviadas desde el nodo 5, hacia el nodo 6</p>
<p><strong>X<sub>57</sub> =</strong> Cantidad de unidades enviadas desde el nodo 5, hacia el nodo 7</p>
<p><strong>X<sub>58</sub> =</strong> Cantidad de unidades enviadas desde el nodo 5, hacia el nodo 8</p>
<p><strong>X<sub>67</sub> =</strong> Cantidad de unidades enviadas desde el nodo 6, hacia el nodo 7</p>
<p><strong>X<sub>69</sub> =</strong> Cantidad de unidades enviadas desde el nodo 6, hacia el nodo 9</p>
<p><strong>X<sub>76</sub> =</strong> Cantidad de unidades enviadas desde el nodo 7, hacia el nodo 6</p>
<p><strong>X<sub>78</sub> =</strong> Cantidad de unidades enviadas desde el nodo 7, hacia el nodo 8</p>
<p><strong>X<sub>79</sub> =</strong> Cantidad de unidades enviadas desde el nodo 7, hacia el nodo 9</p>
<p><strong>X<sub>87</sub> =</strong> Cantidad de unidades enviadas desde el nodo 8, hacia el nodo 7</p>
<p><strong>X<sub>89</sub> =</strong> Cantidad de unidades enviadas desde el nodo 8, hacia el nodo 9</p>
<h3><em>Restricciones</em></h3>
<div id="cc-m-6470947813" class="j-module n j-text ">
<p style="padding-left: 40px;"><em><strong>Restricciones de Oferta y Demanda</strong></em></p>
<p>Hay que recordar que el objetivo de este modelo es la consecución de un plan de ruta que nos permita encontrar al minero lo más pronto posible al recorrer la distancia mínima posible, por ende la clave para plantear el modelo como si fuese de transbordo es establecer una demanda y oferta igual a la unidad (1).</p>
<p><strong>X<sub>12</sub> + X<sub>13</sub> =</strong> 1</p>
<p><strong>X<sub>69</sub> + X<sub>79</sub> + X<sub>89</sub> =</strong> 1</p>
<p style="padding-left: 40px;"><em><strong>Restricciones de Balance</strong></em></p>
<p><strong>X<sub>12</sub> + X<sub>32</sub> &#8211; X<sub>23</sub> &#8211; X<sub>24</sub> = 0</strong></p>
<p><strong>X<sub>13</sub> + X<sub>23</sub> &#8211; X<sub>32</sub> &#8211; X<sub>34</sub> &#8211; X<sub>3</sub><sub>5</sub> =</strong> 0</p>
<p><strong>X<sub>24</sub> + X<sub>34</sub> + X<sub>54</sub> &#8211; X<sub>46</sub> &#8211; X<sub>47</sub> =</strong> 0</p>
<p><strong>X<sub>35</sub> &#8211; X<sub>54</sub> &#8211; X<sub>56</sub> – X<sub>57</sub> – X<sub>58</sub> =</strong> 0</p>
<p><strong>X<sub>46</sub> + X<sub>56</sub> + X<sub>57</sub> &#8211; X<sub>67</sub> – X<sub>69</sub> =</strong> 0</p>
<p><strong>X<sub>67</sub> + X<sub>47</sub> + X<sub>57</sub> + X<sub>87</sub> – X<sub>76</sub> – X<sub>78</sub> – X<sub>79</sub> =</strong> 0</p>
<p><strong>X<sub>78</sub> + X<sub>58</sub> – X<sub>89</sub> =</strong> 0</p>
<p>En palabras sencillas: «Todo lo que entra a cada nodo es igual a lo que sale de él»</p>
</div>
<h3><em>Función objetivo</em></h3>
<div id="cc-m-6470948013" class="j-module n j-text ">
<p><strong>Z<sub>MIN</sub> = 4X<sub>12</sub> + 2X<sub>13</sub> + 2X<sub>23</sub> + 7X<sub>24</sub> + 4X<sub>32</sub> + 9X<sub>34</sub> + 6X<sub>35</sub> + 1X<sub>46</sub> + 5X<sub>47</sub> + 2X<sub>54</sub> + 4X<sub>56</sub> + 3X<sub>57</sub>+ 2X<sub>58</sub> + 1X<sub>67</sub> + 5X<sub>69</sub> + 4X<sub>76</sub> + 3X<sub>78</sub> + 5X<sub>79</sub> + 2X<sub>87</sub> + 7X<sub>89</sub></strong></p>
</div>
<h3>Ingresando los datos en WinQSB</h3>
<p><img decoding="async" class="aligncenter size-full wp-image-2675" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-294.png" alt="" width="1023" height="234" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-294.png 1023w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-294-300x69.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-294-768x176.png 768w" sizes="(max-width: 1023px) 100vw, 1023px" /></p>
<div id="cc-m-6470948313" class="j-module n j-header ">
<h3 id="cc-m-header-6470948313" class="">Solución obtenida mediante WinQSB</h3>
</div>
<div id="cc-m-6470948413" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i401a4f149a2639f4/version/1514941035/la-ruta-m%C3%A1s-corta.jpg" data-title="ingenieriaindustrialonline-60e499.ingress-alpha.easywp.com" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2676" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-295.png" alt="" width="552" height="635" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-295.png 552w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-295-261x300.png 261w" sizes="(max-width: 552px) 100vw, 552px" /></a><figcaption></figcaption></figure>
</div>
<div id="cc-m-6470948613" class="j-module n j-text ">
<p>La ruta más corta para rescatar al minero  tiene como distancia total 1600 metros (dado que las distancias estaban dadas en cientos de metros) y es tal como se muestra en la siguiente gráfica:</p>
<p><img decoding="async" class="aligncenter wp-image-2677 size-full" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-296.png" alt="La ruta más corta - Bryan Salazar López" width="670" height="291" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-296.png 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-296-300x130.png 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
<p>Sin embargo, WinQSB cuenta con una metodología mucho más sencilla de resolución de algoritmos de ruta más corta, metodología que explicaremos más adelante, de todas formas hemos encontrado cómo, aplicando debidamente la razón y un <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-de-transbordo/"><em><strong>algoritmo conocido como el de transbordo</strong></em></a>, podemos solucionar problemas distintos en teoría.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h3 id="cc-m-header-5185600813" class="">Solución del algoritmo de la ruta más corta mediante WinQSB</h3>
<p>El módulo del WinQSB que permite la resolución del <strong>algoritmo de la ruta más corta</strong> es el <em>Network Modeling</em>, el cual utiliza una interfaz muy sencilla en forma de matriz en la cual hay que ingresar el valor de los ramales (dependiendo del contexto este valor puede representar distancias, tiempo, costos etc.) correspondiente a cada relación de un nodo con otro.</p>
<p><em><strong>Paso a paso</strong></em></p>
<p>Primero se debe ingresar al módulo Network Modeling del paquete WinQSB, una vez nos encontremos en este aparecerá el menú que se muestra en la siguiente gráfica, menú en el cual tendremos que seleccionar la opción <span class="tie-highlight tie-highlight-green"><strong><em>Shortest Path Problem </em>(Problema de la ruta más corta)<em>.</em></strong></span>
<div id="cc-m-5185811713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2678" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-297.png" alt="" width="626" height="460" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-297.png 626w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-297-300x220.png 300w" sizes="(max-width: 626px) 100vw, 626px" /><figcaption></figcaption></figure>
</div>
<div id="cc-m-5185812813" class="j-module n j-text ">
<p>Además en este menú emergente debemos de ingresar la cantidad de nodos que conforman la red del problema y tenemos la posibilidad de asignarle un nombre al mismo, en nuestro caso la cantidad de nodos de la red es igual a 9; clic en OK y aparecerá la siguiente ventana.</p>
</div>
<div id="cc-m-5185833013" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2679" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-298.png" alt="" width="662" height="330" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-298.png 662w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-298-300x150.png 300w" sizes="(max-width: 662px) 100vw, 662px" /><figcaption></figcaption></figure>
</div>
<div id="cc-m-5185835713" class="j-module n j-text ">
<p>En esta ventana se debe ingresar la magnitud de cada ramal correspondiente a cada relación entre los nodos, tal como veremos a continuación.</p>
</div>
<div id="cc-m-5185848613" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2680" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-299.png" alt="" width="660" height="324" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-299.png 660w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-299-300x147.png 300w" sizes="(max-width: 660px) 100vw, 660px" /><figcaption></figcaption></figure>
</div>
<div id="cc-m-5185855113" class="j-module n j-text ">
<p>Damos clic en <em>Solve and Analize</em> y tendremos un menú emergente en el cual tendremos que seleccionar el nodo fuente y el nodo destino, tal como se muestra en la siguiente gráfica.</p>
</div>
<div id="cc-m-5185869413" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i822f908d88f41cb6/version/1416592109/image.jpg" data-title="ingenieriaindustrialonline-60e499.ingress-alpha.easywp.com" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2681" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-300.png" alt="" width="429" height="350" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-300.png 429w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-300-300x245.png 300w" sizes="(max-width: 429px) 100vw, 429px" /></a><figcaption></figcaption></figure>
</div>
<div id="cc-m-5185872113" class="j-module n j-text ">
<p>Una vez efectuada la selección tendremos la opción de ver el tabulado final y la opción de ver un paso a paso gráfico; para el tabulado final click en <strong><em>SOLVE</em></strong> y para el paso a paso clic en <em><strong>SOLVE AND DISPLAY STEPS</strong></em>.</p>
</div>
<div id="cc-m-5185899013" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i17c2f4efb246e1b8/version/1416592119/image.jpg" data-title="ingenieriaindustrialonline-60e499.ingress-alpha.easywp.com" data-index="0"><img decoding="async" class="aligncenter size-full wp-image-2682" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-301.png" alt="" width="625" height="510" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-301.png 625w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-301-300x245.png 300w" sizes="(max-width: 625px) 100vw, 625px" /></a></figure>
<p>Podemos cotejar la solución que obtuvimos al plantear este problema como un modelo de transbordo con esta solución. La eficiencia se encuentra determinada en escoger la herramienta adecuada para resolver el problema planteado.</p>
<hr />
<p><span>Le recomendamos revisar: <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-de-la-ruta-mas-corta-en-google-or-tools/"><em><strong>Problema de la ruta más corta en Google OR-Tools</strong></em></a></span><em>. </em><span>Descubre esta poderosa herramienta de modelamiento y solución de problemas de optimización.</span></p>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/">Algoritmo de la ruta más corta</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/algoritmo-de-la-ruta-mas-corta/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Algoritmo de Dijkstra</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-dijkstra/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-dijkstra/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 18:46:46 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Algoritmo de Dijkstra]]></category>
		<category><![CDATA[Ruta más corta]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1230</guid>

					<description><![CDATA[<p>El Algortimo de Dijkstra, también denominado Algoritmo de caminos mínimos, es un modelo que se clasifica dentro de los algoritmos de búsqueda. Su objetivo, es determinar la ruta más corta, desde el nodo origen, hasta cualquier nodo de la red. Su metodología se basa en iteraciones, de manera tal que en la práctica, su desarrollo se dificulta a &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-dijkstra/">Algoritmo de Dijkstra</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>El <em><strong>Algortimo de Dijkstra</strong></em>, también denominado <em><strong>Algoritmo de caminos mínimos</strong></em>, es un modelo que se clasifica dentro de los algoritmos de búsqueda. Su objetivo, es determinar la ruta más corta, desde el nodo origen, hasta cualquier nodo de la red. Su metodología se basa en iteraciones, de manera tal que en la práctica, su desarrollo se dificulta a medida que el tamaño de la red aumenta, dejándolo en clara desventaja, frente a métodos de optimización basados en programación matemática.</p>
<h2>¿Qué tipos de redes pueden resolverse por medio del Algortimo de Dijkstra?</h2>
<p>Este algoritmo, al igual que el método de Floyd, tienen la capacidad de resolver el problema de la ruta más corta, tanto para redes cíclicas, como para redes acíclicas. De manera tal que los bucles que presente una red, no restringen el uso del algoritmo.</p>
<p>El algoritmo de Dijkstra hace uso y define etiquetas a partir del nodo origen y para cada uno de los nodos subsiguientes. Estas etiquetas contienen información relacionada con un <strong><em>valor acumulado</em></strong> del tamaño de los arcos y con la <strong><em>procedencia más próxima de la ruta</em></strong>.</p>
<p>Las etiquetas corresponden a los nodos, no a los arcos. En el algortimo de Dijkstra, estas etiquetas son temporales y permanentes. Las etiquetas temporales son aquellas que son susceptibles de modificarse mientras exista la posibilidad de hallar para sí, una ruta más corta; de lo contrario, dicha etiqueta pasa a ser permanente.</p>
<p style="text-align: center;"><strong>Etiqueta</strong> = [acumulado, nodo procedente] <em>iteración</em></p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>Algoritmo de Dijkstra &#8211; Ejemplo</h2>
<div id="cc-m-6487087313" class="j-module n j-text ">
<p>Teniendo en cuenta la siguiente red, que tiene como origen el nodo 1:</p>
</div>
<div id="cc-m-6487087713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2684" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-302.png" alt="" width="623" height="286" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-302.png 623w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-302-300x138.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487088613" class="j-module n j-text ">
<p>Procedemos con las iteraciones, partimos de la <em><strong>iteración 0</strong></em>, es decir, asignar la etiqueta para el nodo origen:</p>
</div>
<div id="cc-m-6487089313" class="j-module n j-text ">
<p><em><strong>Iteración 0</strong></em></p>
<p>En este paso, asignamos una etiqueta permanente para el nodo origen. Recordemos que la etiqueta se compone por un valor acumulado, que en este caso debe ser 0, ya que es el punto base y que no existe procedencia:</p>
<p style="text-align: center;">Etiqueta nodo 1 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 1 = [0, -] <em>0</em></p>
<p><em><strong>Iteración 1</strong></em></p>
<p>En este paso, evaluamos a cuáles nodos se puede llegar desde el nodo 1. En este caso se puede llegar a los nodos 2 y 3. De manera que debemos asignar las etiquetas para cada nodo:</p>
<p style="text-align: center;">Etiqueta nodo 2 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 2 = [<strong>0</strong> + <strong>100</strong>, 1] <strong><i>1</i></strong></p>
<p><i><strong>0</strong> es el valor acumulado en la etiqueta del nodo de procedencia, en este caso el valor acumulado para el nodo 1. <strong>100</strong> es el valor del arco que une el nodo procedencia (1) y el nodo destino (2). <strong>1</strong> es el número de la iteración.</i></p>
<p style="text-align: center;">Etiqueta nodo 3 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 3 = [0 + 30, 1] <i>1</i></p>
<p>En este caso, podemos observar que la etiqueta del nodo 3, ya contiene el menor valor acumulado posible para llegar a este. Ya que 30 es la mínima distancia posible, toda vez que para llegar al nodo 3 por medio del nodo 2, tendrá que recorrer como mínimo el valor absoluto del arco que une el origen con el nodo 2 = 100. Así entonces, <strong>la etiqueta del nodo 3 pasa a ser permanente</strong>.</p>
</div>
<div id="cc-m-6487091013" class="j-module n j-text ">
<p><em>Tabulamos la iteración 1:</em></p>
</div>
<div id="cc-m-6487127713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2686" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-303.png" alt="" width="473" height="93" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-303.png 473w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-303-300x59.png 300w" sizes="(max-width: 473px) 100vw, 473px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487131313" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2687" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-304.png" alt="" width="607" height="341" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-304.png 607w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-304-300x169.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-304-390x220.png 390w" sizes="(max-width: 607px) 100vw, 607px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487131413" class="j-module n j-text ">
<p><em><strong>Iteración 2:</strong></em></p>
<p>En este paso, evaluamos las posibles salidas desde el nodo 3, es decir los nodos 4 y 5. De manera que debemos asignar las etiquetas para cada nodo:</p>
<p style="text-align: center;">Etiqueta nodo 4 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 4 = [30 + 10, 3] <i>2</i></p>
<p style="text-align: center;">Etiqueta nodo 4 = [40, 3] <i>2</i></p>
<p><i><span class="tie-highlight tie-highlight-green"><strong>30 es el valor acumulado en la etiqueta del nodo de procedencia, en este caso el valor acumulado para el nodo 3. 10 es el valor del arco que une el nodo procedencia (3) y el nodo destino (4). 2 es el número de la iteración.</strong></span></i></p>
<p style="text-align: center;">Etiqueta nodo 5 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 5 = [30 + 60, 3] <i>2</i></p>
<p style="text-align: center;">Etiqueta nodo 4 = [90, 3] <i>2</i></p>
<p><i><span class="tie-highlight tie-highlight-green"><strong>30 es el valor acumulado en la etiqueta del nodo de procedencia, en este caso el valor acumulado para el nodo 3. 60 es el valor del arco que une el nodo procedencia (3) y el nodo destino (5). 2 es el número de la iteración.</strong></span></i></p>
<div id="cc-m-6487131413" class="j-module n j-text ">
<p>En este caso, podemos observar que la etiqueta del nodo 4, contiene el menor valor acumulado posible para llegar a este. Así entonces, la etiqueta del nodo 4 pasa a ser permanente.</p>
<p><em>Tabulamos la iteración 2:</em></p>
</div>
<div id="cc-m-6487141213" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2688" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-305.png" alt="" width="485" height="139" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-305.png 485w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-305-300x86.png 300w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487143513" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2689" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-306.png" alt="" width="609" height="341" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-306.png 609w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-306-300x168.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487311113" class="j-module n j-text ">
<p><em><strong>Iteración 3:</strong></em></p>
<p>En este paso, evaluamos las posibles salidas desde el nodo 4, es decir los nodos 2 y 5. De manera que debemos asignar las etiquetas para cada nodo:</p>
<p style="text-align: center;">Etiqueta nodo 2 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 2 = [40 + 15, 4] <i>3</i></p>
<p style="text-align: center;">Etiqueta nodo 2 = [55, 4] <i>3</i></p>
<p><i><span class="tie-highlight tie-highlight-green"><strong>40 es el valor acumulado en la etiqueta del nodo de procedencia, en este caso el valor acumulado para el nodo 4. 15 es el valor del arco que une el nodo procedencia (4) y el nodo destino (2). 3 es el número de la iteración.</strong></span></i></p>
<p style="text-align: center;">Etiqueta nodo 5 = [valor acumulado, procedencia] <em>iteración</em></p>
<p style="text-align: center;">Etiqueta nodo 5 = [40 + 50, 4] <i>3</i></p>
<p style="text-align: center;">Etiqueta nodo 5 = [90, 4] <i>3</i></p>
<p><i><span class="tie-highlight tie-highlight-green"><strong>40 es el valor acumulado en la etiqueta del nodo de procedencia, en este caso el valor acumulado para el nodo 3. 50 es el valor del arco que une el nodo procedencia (4) y el nodo destino (5). 3 es el número de la iteración.</strong></span></i></p>
<div id="cc-m-6487143813" class="j-module n j-text ">
<p>En este caso, podemos observar que el nodo 2 ahora cuenta con 2 etiquetas temporales, y definitivas, ya que no existe otra ruta hacia dicho nodo. De manera que se elige la etiqueta que tenga el menor valor acumulado. Así entonces, la etiqueta del nodo 2 con procedencia del nodo 4, pasa a ser permanente.</p>
<p><em>Tabulamos la iteración 3:</em></p>
</div>
<div id="cc-m-6487164213" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2690" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-307.png" alt="" width="475" height="154" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-307.png 475w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-307-300x97.png 300w" sizes="(max-width: 475px) 100vw, 475px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487164313" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2691" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-308.png" alt="" width="608" height="390" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-308.png 608w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-308-300x192.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></figure>
<div class="cc-clear"></div>
</div>
<div id="cc-m-6487164513" class="j-module n j-text ">
<p><strong><em>Iteración 4:</em></strong></p>
<p>En este paso, evaluamos las posibles salidas desde el nodo 2 y el nodo 5. Sin embargo, el nodo 2 solo tiene un posible destino, el nodo 3, el cual ya tiene una etiqueta permanente, de manera que no puede ser reetiquetado. Ahora, evaluamos el nodo 5 y es un nodo que no tiene destinos. Así entonces, su etiqueta temporal pasa a ser permanente, en este caso cuenta con 2 etiquetas que tienen el mismo valor, es decir, alternativas óptimas. De esta manera concluye el <em><strong>algortimo de Dijkstra</strong></em>.</p>
</div>
<div id="cc-m-6487171113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-1"><img decoding="async" class="aligncenter size-full wp-image-2692" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-309.png" alt="" width="608" height="391" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-309.png 608w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-309-300x193.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></figure>
<blockquote class="aligncenter quote-simple "><p><em><strong>¿Cuál es la ruta más corta?</strong></em> La ruta más corta entre el nodo 1 (origen) y cualquier otro nodo de la red (destino), se determina partiendo desde el nodo destino y recorriendo las procedencias de sus etiquetas. Por ejemplo:</p></blockquote>
<p><em><strong>¿Cuál es la ruta más corta entre el nodo 1 y el nodo 4?</strong></em></p>
<p>En este caso, debemos partir desde la etiqueta del nodo 4.</p>
<p><img decoding="async" class="aligncenter size-full wp-image-2693" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-310.png" alt="" width="324" height="94" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-310.png 324w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-310-300x87.png 300w" sizes="(max-width: 324px) 100vw, 324px" /></p>
<p><img decoding="async" class="aligncenter size-full wp-image-2694" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-311.png" alt="Algoritmo de Dijkstra - Bryan Salazar López" width="632" height="329" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-311.png 632w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-311-300x156.png 300w" sizes="(max-width: 632px) 100vw, 632px" /></p>
<p><em>La ruta más corta entre el nodo 1 y el nodo 4 tiene un valor acumulado de: 40</em></p>
<p>Es necesario considerar, que los valores utilizados en los arcos de la red objeto de estudio del algoritmo de Dijkstra, no necesariamente representan distancias. Si bien, es un modelo que aborda el denominado «problema de la ruta más corta»; en la práctica, puede utilizarse para optimizar: <strong><em>distancia, costos, tiempo</em></strong>.</p>
<p>De hecho, los sistemas de ruteo utilizados en la actualidad, priorizan los costos y el tiempo como variable decisión de los modelos de optimización.</p>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-dijkstra/">Algoritmo de Dijkstra</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/algoritmo-de-dijkstra/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Teoría de redes</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Wed, 12 Jun 2019 18:31:19 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Árbol de expansión mínima]]></category>
		<category><![CDATA[Investigación de Operaciones]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1225</guid>

					<description><![CDATA[<p>La modelación de redes permite la resolución de múltiples problemas de programación matemática mediante la implementación de algoritmos especiales creados para tal fin, conocidos como Algoritmos  de optimización de redes. Dentro de los problemas más comúnmente resueltos mediante la modelación de redes se encuentran los ya vistos modelos de transporte, transbordo además de los muy conocidos modelos &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/">Teoría de redes</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La modelación de redes permite la resolución de múltiples problemas de programación matemática mediante la implementación de algoritmos especiales creados para tal fin, conocidos como <em><strong>Algoritmos  de optimización de redes</strong></em>.</p>
<p>Dentro de los problemas más comúnmente resueltos mediante la modelación de redes se encuentran los ya vistos modelos de transporte, transbordo además de los muy conocidos modelos de determinación de cronograma de actividades para proyectos como lo son el <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> y el <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>.</p>
<h2>Conceptos básicos en teoría de redes</h2>
<div id="cc-m-5722937313" class="j-module n j-text ">
<p style="text-align: justify;"><strong><em>Gráfica</em>: </strong>Una gráfica es una serie de puntos llamados nodos que van unidos por unas líneas llamadas ramales o arcos.</p>
</div>
<div id="cc-m-2965100013" class="j-module n j-text ">
<p style="text-align: justify;"><strong><em>Red</em>:</strong> Una red es una gráfica que presenta algún tipo de flujo en sus ramales. Por ejemplo una gráfica cuyo flujo en sus ramales sea la electricidad es una red eléctrica. En las redes se usa una simbología específica para denotar su tamaño y elementos que la constituyen, dicha notación es la (N, A) donde N representa el número de nodos que contiene la red y A representa el número de arcos o ramales.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-312.webp" alt="Teoría de redes" width="457" height="230" class="aligncenter wp-image-26728 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-312.webp 457w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-312-300x151.webp 300w" sizes="(max-width: 457px) 100vw, 457px" /></p>
</div>
<div id="cc-m-2965099913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965100113" class="j-module n j-text ">
<p><strong><em>Cadena</em>: </strong>Una cadena corresponde a una serie de elementos ramales que van de un nodo a otro. En el siguiente caso se resalta una cadena que va desde el nodo 1 hasta el nodo 7 y que se compone por los elementos [1-4, 4-7].</p>
<p><strong><em>Ruta</em>:</strong> Una ruta corresponde a los nodos que constituyen una cadena, en el siguiente caso [1, 4, 7].</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-313.webp" alt="Ruta redes" width="457" height="230" class="aligncenter size-full wp-image-26729" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-313.webp 457w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-313-300x151.webp 300w" sizes="(max-width: 457px) 100vw, 457px" /></p>
</div>
<div id="cc-m-2965100213" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965100413" class="j-module n j-text ">
<p><strong><em>Ciclo</em>: </strong>Un ciclo corresponde a la cadena que une a un nodo con sigo mismo, en el siguiente ejemplo el ciclo está compuesto por la cadena [4-2, 2-5, 5-7, 7-4].</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-314.webp" alt="Ciclo redes" width="458" height="230" class="aligncenter size-full wp-image-26730" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-314.webp 458w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-314-300x151.webp 300w" sizes="(max-width: 458px) 100vw, 458px" /></p>
</div>
<div id="cc-m-2965100513" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965100813" class="j-module n j-text ">
<p><strong><em>Ramal orientado</em>:</strong> Un ramal o arco orientado es aquel que tiene un sentido determinado, es decir que posee un nodo fuente y un nodo destino.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-315.webp" alt="Ramal orientado" width="172" height="145" class="aligncenter size-full wp-image-26731" /></p>
</div>
<div id="cc-m-2965100913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965101413" class="j-module n j-text ">
<p><strong><em>Gráfica orientada</em>: </strong>Una gráfica orientada es aquella en la cual todos sus ramales se encuentran orientados.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-316.webp" alt="Gráfica orientada" width="458" height="229" class="aligncenter size-full wp-image-26732" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-316.webp 458w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-316-300x150.webp 300w" sizes="(max-width: 458px) 100vw, 458px" /></p>
</div>
<div id="cc-m-2965101513" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965101813" class="j-module n j-text ">
<p><strong><em>Árbol</em>:</strong> Un árbol es una gráfica en la cual no existen ciclos, como el siguiente ejemplo.</p>
</div>
<div id="cc-m-2965103013" class="j-module n j-text ">
<p><strong><em>Árbol de expansión</em>:</strong> Un árbol de expansión es aquel árbol que enlaza todos los nodos de la red, de igual manera no permite la existencia de ciclos.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-317.webp" alt="Árbol de expansión - Teoría de redes" width="458" height="229" class="aligncenter wp-image-26733 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-317.webp 458w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-317-300x150.webp 300w" sizes="(max-width: 458px) 100vw, 458px" /></p>
</div>
<div id="cc-m-2965101913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965102013" class="j-module n j-text ">
<p><strong>Nodo fuente:</strong> El nodo fuente es aquel nodo en el cual todos sus ramales se encuentran orientados hacia afuera.</p>
<p><strong>Nodo destino:</strong> El nodo destino es aquel nodo en el cual todos sus ramales se encuentran orientados hacia él.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-318.webp" alt="Teoría de redes nodos" width="510" height="245" class="aligncenter size-full wp-image-26734" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-318.webp 510w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-318-300x144.webp 300w" sizes="(max-width: 510px) 100vw, 510px" /></p>
</div>
<div id="cc-m-2965102113" class="j-module n j-imageSubtitle ">

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>Algoritmo árbol de expansión mínima</h2>
<p>El algoritmo del árbol de expansión mínima es un modelo de optimización de redes que consiste en enlazar todos los nodos de la red de forma directa y/o indirecta con el objetivo de que la longitud total de los arcos o ramales sea mínima (entiéndase por longitud del arco una cantidad variable según el contexto operacional de minimización, y que puede bien representar una distancia o unidad de medida).</p>
<p><em>Sean:</em></p>
<p><strong><em>N</em></strong> = {1,2,3,&#8230;,<em>n</em>} el conjunto de nodos de la red.</p>
<p><strong>C<sub>k</sub></strong>= Conjunto de nodos que se han enlazado de forma permanente en la iteración <em>k</em></p>
<p><strong>Č<sub>k</sub></strong>= Conjunto de nodos que hacen falta por enlazarse de forma permanente.</p>
<div id="cc-m-2965103513" class="j-module n j-header ">
<h3 id="cc-m-header-2965103513" class=""><em>Paso cero(0): Conceptualización del algoritmo</em></h3>
</div>
<div id="cc-m-2965103813" class="j-module n j-text ">
<p>Definir los conjuntos C<sub>0</sub> = {ø} y Č<sub>0</sub> = {N}, es decir que antes del paso 1 no se han enlazado de forma permanente nodo alguno, y por ende el conjunto que representa a los nodos que hacen falta por enlazarse de forma permanente es igual a la cantidad de nodos que existen en la red.</p>
</div>
<div id="cc-m-2965103913" class="j-module n j-header ">
<h3 id="cc-m-header-2965103913" class=""><em>Paso 1:</em></h3>
</div>
<div id="cc-m-2965104013" class="j-module n j-text ">
<p>Se debe de escoger de manera arbitraria un nodo en el conjunto Č<sub>0</sub> llamado <em>i</em> el cual será el primer nodo permanente, a continuación se debe de actualizar el conjunto C<sub>1</sub> = {i}, que significa que al tiempo en que el conjunto C<sub>1</sub> gana el elemento <em>i</em> el conjunto Č<sub>0</sub>pierde el elemento <em>i</em> por ende ahora será igual a Č<sub>1</sub> = N &#8211; {i}, además se debe actualizar el subíndice de los conjuntos <em>k,</em> el cual ahora será igual a 2.</p>
</div>
<div id="cc-m-2965104113" class="j-module n j-header ">
<h3 id="cc-m-header-2965104113" class=""><em>Paso 2: Paso general «K»</em></h3>
</div>
<div id="cc-m-2965104213" class="j-module n j-text ">
<p style="text-align: justify;">Se debe de seleccionar un nodo <em>j</em> del conjunto Č<sub>K-1</sub> («k-1» es el subíndice que indica que se está haciendo referencia al conjunto de la iteración inmediatamente anterior) el cual tenga el arco o ramal con menor longitud con uno de los nodos que se encuentran en el conjunto de nodos de enlace permanente C<sub>K-1</sub>. Una vez seleccionado se debe de enlazar de forma permanente lo cual representa que pasa a formar parte del conjunto de enlaces permanentes y deja de formar parte del conjunto que todavía se debe conectar para lograr la expansión. Al actualizar el algoritmo en este paso los conjuntos deben de quedar de la siguiente forma.</p>
<p style="text-align: center;"><strong>C<sub>K</sub> = C<sub>K-1</sub> + {j} mientras que Č<sub>K</sub> = Č<sub>K-1</sub> &#8211; {j}</strong></p>
<p style="text-align: justify;">El paso general que define <em>k</em> que al mismo tiempo representa a las iteraciones debe de ejecutarse toda vez que el conjunto Č<sub>K</sub> no sea vacío, cuando este conjunto sea igual a vacío se tendrá el árbol de expansión mínima.</p>
<p style="text-align: justify;">El entendimiento del algoritmo desde el punto de vista algebraico no es quizá el más simple, sin embargo mediante el ejemplo gráfico se verá que es un algoritmo muy sencillo de elaborar.</p>
</div>
<h2>Solución de un problema de árbol de expansión mínima</h2>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>La ciudad de Cali cuenta con un nuevo plan parcial de vivienda el cual contará con la urbanización de más de 7 proyectos habitacionales que se ubicarán a las afueras de la ciudad. Dado que el terreno en el que se construirá no se encontraba hasta ahora dentro de las zonas urbanizables de la ciudad, el acueducto municipal no cuenta con la infraestructura necesaria para satisfacer las necesidades de servicios públicos en materia de suministro de agua. Cada uno de los proyectos de vivienda inició la construcción de un nodo de acueducto madre, el cual cuenta con las conexiones de las unidades de vivienda propias de cada proyecto (es decir que cada nodo madre solo necesita estar conectado con un ducto madre del acueducto municipal para contar con su suministro). El acueducto municipal al ver la situación del plan parcial debe de realizar las obras correspondientes a la instalación de ductos madres que enlacen todos los nodos del plan con el nodo Meléndez (nodo que se encuentra con suministro de agua y que no pertenece al plan parcial de vivienda, además es el más cercano al mismo), la instalación de los ductos implica obras de excavación, mano de obra y costos de los ductos mismos, por lo cual optimizar la longitud total de los enlaces es fundamental. Las distancias existentes (dadas en kilómetros) correspondientes a las rutas factibles capaces de enlazar los nodos del plan parcial se presentan a continuación. Además la capacidad de bombeo del nodo Meléndez es más que suficiente para satisfacer las necesidades de presión que necesita la red madre.</p></blockquote>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319.webp" alt="Teoría de redes ejemplo" width="514" height="623" class="aligncenter size-full wp-image-26735" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319.webp 514w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319-248x300.webp 248w" sizes="(max-width: 514px) 100vw, 514px" /></p>
<div id="cc-m-2965126513" class="j-module n j-text ">
<p>El acueducto municipal le contacta a usted para que mediante sus conocimientos en teoría de redes construya una red de expansión que minimice la longitud total de ductos y que enlace todos los nodos del plan parcial de vivienda.</p>
</div>
<div id="cc-m-2965126613" class="j-module n j-text ">
<p><em><strong>PASO 0:</strong></em></p>
<p>Se definen los conjuntos iniciales C<sub>0</sub> = {ø} que corresponde al conjunto de nodos enlazados de forma permanente en la iteración indicada en el subíndice y Č<sub>0</sub> = {N = 1,2,3,4,5,6,7,8} que corresponde al conjunto de nodos pendientes por enlazar de manera permanente en la iteración indicada en el subíndice.</p>
<p><em><strong>PASO 1:</strong></em></p>
<p>Se debe definir de manera arbitraria el primer nodo permanente del conjunto Č<sub>0</sub>, en este caso escogeremos el nodo 1 (puede ser cualquier otro), que algebraicamente se representa con la letra <em>i,</em> se procede a actualizar los conjuntos iniciales, por ende C<sub>1</sub> = {i} = {1} y Č<sub>0</sub> = {N &#8211; i} = {2,3,4,5,6,7,8}, actualizamos <em>k</em> por ende ahora será igual a 2.</p>
<p><em><strong>PASO 2:</strong></em></p>
<p>Ahora se debe seleccionar el nodo <em>j</em> del conjunto Č<sub>K-1</sub> (es decir del conjunto del paso 1) el cual presente el arco con la menor longitud y que se encuentre enlazado con uno de los nodos de enlace permanente del conjunto C<sub>k-1</sub> en el cual ahora solo se encuentra el nodo 1 (es decir que se debe de encontrar un nodo que tenga el arco de menor longitud enlazado al nodo 1).</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-320.webp" alt="" width="400" height="498" class="aligncenter wp-image-26736" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-320.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-320-241x300.webp 241w" sizes="(max-width: 400px) 100vw, 400px" /></p>
<p>&nbsp;</p>
<div id="cc-m-2965126813" class="j-module n j-text ">
<p>Los arcos o ramales de color naranja representan los arcos que enlazan el conjunto Č<sub>K-1</sub> (es decir del conjunto del paso 1, recordemos que K en este paso es igual a 2, por ende Č<sub>K-1</sub>= Č<sub>1</sub>) con los nodos de enlace permanente del conjunto C<sub>k-1</sub> en el cual ahora solo se encuentra el nodo 1, por ende ahora solo falta escoger el de menor longitud, que en este caso es el arco cuya longitud es 2, que enlaza de forma permanente ahora el nodo 2.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>2</sub> = {1,2} y Č<sub>2</sub> = {3,4,5,6,7,8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la siguiente iteración. Ahora se seleccionará un nuevo nodo <em>j</em> del conjunto Č<sub>2</sub>que presente el enlace (ramal o arco) de menor longitud con los nodos que se encuentran en el conjunto C<sub>2</sub>.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-321.webp" alt="" width="410" height="552" class="aligncenter wp-image-26737" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-321.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-321-223x300.webp 223w" sizes="(max-width: 410px) 100vw, 410px" /></p>
</div>
<div id="cc-m-2965126913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965127013" class="j-module n j-text ">
<p>Los arcos de color naranja representan los enlaces posibles y dado que existe empate entre las menores longitudes se elige de manera arbitraria, en este caso se representa nuestra elección con un arco de color verde, enlazando de forma permanente ahora el nodo 4.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>3</sub> = {1,2,4} y Č<sub>3</sub> = {3,5,6,7,8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la siguiente iteración.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-322.webp" alt="" width="402" height="534" class="aligncenter wp-image-26738" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-322.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-322-226x300.webp 226w" sizes="(max-width: 402px) 100vw, 402px" /></p>
</div>
<div id="cc-m-2965127113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965127213" class="j-module n j-text ">
<p>Lo que representan los arcos naranja y verde es ya conocido, ahora la línea azul interrumpida irá trazando nuestro árbol de expansión final. Dado a que el arco menor es el de longitud 3, ahora se enlazará de manera permanente el nodo 5.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>4</sub> = {1,2,4,5} y Č<sub>4</sub> = {3,6,7,8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la siguiente iteración.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-323.webp" alt="Árbol de expansión - teoría de redes" width="404" height="494" class="aligncenter wp-image-26739" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-323.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-323-245x300.webp 245w" sizes="(max-width: 404px) 100vw, 404px" /></p>
</div>
<div id="cc-m-2965127413" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965127613" class="j-module n j-text ">
<p>Ahora se enlazará de manera permanente el nodo 7.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>5</sub> = {1,2,4,5,7} y Č<sub>5</sub> = {3,6,8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la siguiente iteración.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-324.webp" alt="" width="412" height="521" class="aligncenter wp-image-26740" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-324.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-324-237x300.webp 237w" sizes="(max-width: 412px) 100vw, 412px" /></p>
</div>
<div id="cc-m-2965127713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965127913" class="j-module n j-text ">
<p>Ahora se enlazará de manera permanente el nodo 6.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>6</sub> = {1,2,4,5,7,6} y Č<sub>6</sub> = {3,8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la siguiente iteración.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-325.webp" alt="" width="370" height="458" class="aligncenter wp-image-26741" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-325.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-325-242x300.webp 242w" sizes="(max-width: 370px) 100vw, 370px" /></p>
</div>
<div id="cc-m-2965127813" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965128013" class="j-module n j-text ">
<p>Se rompen los empates de forma arbitraria, ahora se enlazará de manera permanente el nodo 3.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>7</sub> = {1,2,4,5,7,6,3} y Č<sub>7</sub> = {8}</p>
<p>Ahora se procede a actualizar <em>k</em> ya que se procede a efectuar la última iteración.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-326.webp" alt="" width="401" height="459" class="aligncenter wp-image-26742" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-326.webp 535w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-326-262x300.webp 262w" sizes="(max-width: 401px) 100vw, 401px" /></p>
</div>
<div id="cc-m-2965128113" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2965128213" class="j-module n j-text ">
<p>Ahora se enlazará de manera permanente el nodo 8.</p>
<p><em>Al actualizar los conjuntos quedan así:</em></p>
<p>C<sub>8</sub> = {1,2,4,5,7,6,3,8} = {N} y Č<sub>8</sub> = {ø}</p>
<p>Por ende se ha llegado al <strong>árbol de expansión mínima</strong></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-327.webp" alt="Árbol de expansión" width="406" height="494" class="aligncenter wp-image-26743" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-327.webp 517w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-327-247x300.webp 247w" sizes="(max-width: 406px) 100vw, 406px" /></p>
</div>
<div id="cc-m-2965128613" class="j-module n j-imageSubtitle ">
<p><em><strong>Árbol que presenta una longitud total minimizada de 21 kilometros de ductos.</strong></em></p>
<h2>Solución de un problema de árbol de expansión mínima mediante WinQSB</h2>
<p>Como hemos mencionado en diversos artículos, la existencia de herramientas de resolución de problemas de programación matemática como WinQSB dejan que el aprendizaje de la resolución manual de los algoritmos de redes se justifique solo para fines académicos o de profundización.</p>
<p>Por ende, una vez vista la metodología manual de resolución del algoritmo atinente al árbol de expansión mínima se hace necesario en aras de eficiencia mostrar la resolución de este tipo de problemas mediante WinQSB.</p>
<p>El primer paso para resolver un problema de transporte mediante WinQSB es ingresar al módulo <span class="tie-highlight tie-highlight-green"><em><strong>Network Modeling</strong></em></span>.</p>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>La ciudad de Cali cuenta con un nuevo plan parcial de vivienda el cual contará con la urbanización de más de 7 proyectos habitacionales que se ubicarán a las afueras de la ciudad. Dado que el terreno en el que se construirá no se encontraba hasta ahora dentro de las zonas urbanizables de la ciudad, el acueducto municipal no cuenta con la infraestructura necesaria para satisfacer las necesidades de servicios públicos en materia de suministro de agua. Cada uno de los proyectos de vivienda inició la construcción de un nodo de acueducto madre, el cual cuenta con las conexiones de las unidades de vivienda propias de cada proyecto (es decir que cada nodo madre solo necesita estar conectado con un ducto madre del acueducto municipal para contar con su suministro). El acueducto municipal al ver la situación del plan parcial debe de realizar las obras correspondientes a la instalación de ductos madres que enlacen todos los nodos del plan con el nodo Meléndez (nodo que se encuentra con suministro de agua y que no pertenece al plan parcial de vivienda, además es el más cercano al mismo), la instalación de los ductos implica obras de excavación, mano de obra y costos de los ductos mismos, por lo cual optimizar la longitud total de los enlaces es fundamental. Las distancias existentes (dadas en kilómetros) correspondientes a las rutas factibles capaces de enlazar los nodos del plan parcial se presentan a continuación. Además la capacidad de bombeo del nodo Meléndez es más que suficiente para satisfacer las necesidades de presión que necesita la red madre.</p></blockquote>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319.webp" alt="Teoría de redes ejemplo" width="386" height="468" class="aligncenter wp-image-26735" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319.webp 514w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-319-248x300.webp 248w" sizes="(max-width: 386px) 100vw, 386px" /></p>
<h3>Ingresando a WinQSB</h3>
<div id="cc-m-5183235213" class="j-module n j-text ">
<p>El primer paso para resolver un problema de transporte mediante WinQSB es ingresar al módulo Network Modeling.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-329.webp" alt="Teoría de redes - WinQSB" width="622" height="445" class="aligncenter wp-image-26744 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-329.webp 622w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-329-300x215.webp 300w" sizes="(max-width: 622px) 100vw, 622px" /></p>
</div>
<div id="cc-m-5183241013" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-5183236613" class="j-module n j-text ">
<p>Luego debemos seleccionar la opción <span class="tie-highlight tie-highlight-green"><strong><em>Minimal Spanning Tree</em> (Árbol de Expansión Mínima)</strong></span>. Además en este submenú debemos de especificar el nombre del problema y el número de nodos. En nuestro caso el número de nodos es igual a 8, luego click en <em><strong>OK</strong></em>.</p>
<p>Una vez se realiza el paso anterior se  abrirá una ventana en la cual aparecerá la siguiente matriz:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-330.webp" alt="" width="670" height="273" class="aligncenter size-full wp-image-26745" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-330.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-330-300x122.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
</div>
<div id="cc-m-5183261713" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3 cc-m-width-maxed"><figcaption></figcaption></figure>
</div>
<div id="cc-m-5183264813" class="j-module n j-text ">
<p>En esta matriz se deben de consignar los valores de los ramales que unen las conexiones entre los nodos correspondientes, según el contexto de nuestro problema se deben de consignar las distancias entre los nodos si es que dichas conexiones existen de lo contrario en caso que la conexión no exista se debe dejar la celda en blanco. Hay que tener en cuenta que las distancias entre los nodos en este caso son exactamente conmutativas, es decir que si el nodo fuente es 2 y el destino es 4 la distancia existente entre estos es exactamente igual a la distancia existente entre un nodo fuente 4 y un nodo destino 2, sin embargo esta propiedad debe de especificarse en la matriz consignando los valores correspondientes a una conexión dos veces, es decir en la celda [From 1 &#8211; To 4] se debe de consignar la distancia 6, además debe de consignarse la misma distancia en la celda [From 4 &#8211; To 1].</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-331.webp" alt="" width="670" height="273" class="aligncenter size-full wp-image-26746" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-331.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-331-300x122.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
</div>
<div id="cc-m-5183296213" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3 cc-m-width-maxed"><figcaption></figcaption></figure>
</div>
<div id="cc-m-5183306113" class="j-module n j-text ">
<p>Luego damos click en <span class="tie-highlight tie-highlight-green"><em><strong>Solve and Analize</strong></em></span> y tendremos la siguiente ventana solución inmediatamente.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-332.webp" alt="" width="670" height="226" class="aligncenter size-full wp-image-26747" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-332.webp 670w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-332-300x101.webp 300w" sizes="(max-width: 670px) 100vw, 670px" /></p>
</div>
<div id="cc-m-5183306913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3 cc-m-width-maxed"><figcaption></figcaption></figure>
</div>
<div id="cc-m-5183307513" class="j-module n j-text ">
<p>Podemos cotejar los resultados con los obtenidos de manera manual, 21 kilómetros de ductos es la distancia total una vez ejecutado el algoritmo del Árbol de Expansión Mínima.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<p>Otros algoritmos basados en teoría de redes:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/algoritmo-de-la-ruta-mas-corta/">Algoritmo de la ruta más corta</a></strong></li>
<li><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-agente-viajero-tsp/">Problema del agente viajero</a></strong></li>
<li><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-ruta-critica-cpm/">CPM &#8211; Método de la ruta crítica</a></strong></li>
<li><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/pert-tecnica-de-evaluacion-y-revision-de-proyectos/">PERT &#8211; Técnica de evaluación de proyectos</a></strong></li>
</ul>

		</div>
	
</div>
</div>
</div>
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/">Teoría de redes</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/teoria-de-redes/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Problema del transporte o distribución</title>
		<link>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-transporte-o-distribucion/</link>
					<comments>https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-transporte-o-distribucion/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Tue, 11 Jun 2019 00:59:22 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Investigación de Operaciones]]></category>
		<category><![CDATA[Problema de distribución]]></category>
		<category><![CDATA[Problema de redes]]></category>
		<category><![CDATA[Problema de transporte]]></category>
		<category><![CDATA[Programación lineal]]></category>
		<category><![CDATA[Teoría de redes]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1187</guid>

					<description><![CDATA[<p>El problema del transporte o distribución, es un problema de redes especial en programación lineal que se funda en la necesidad de llevar unidades de un punto específico llamado fuente u origen  hacia otro punto específico llamado destino. Los principales objetivos de un modelo de transporte son la satisfacción de todos los requerimientos establecidos por los destinos, y claro está, la minimización de &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-transporte-o-distribucion/">Problema del transporte o distribución</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>
	El problema del transporte o distribución, es un <em><strong><a title="Teoría de Redes" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/teoria-de-redes/">problema de redes</a></strong></em> especial en <em><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/programacion-lineal/" target="" rel="noopener noreferrer">programación lineal</a></strong></em> que se funda en la necesidad de llevar unidades de un punto específico llamado <em><strong>fuente</strong></em> u <em><strong>origen</strong></em>  hacia otro punto específico llamado <em><strong>destino</strong></em>. Los principales objetivos de un modelo de transporte son la satisfacción de todos los requerimientos establecidos por los destinos, y claro está, la minimización de los costos relacionados con el plan determinado por las rutas escogidas.</p>
<div id="cc-m-5722928113" class="j-module n j-text ">
<p style="text-align: justify;">El contexto en el que se aplica el modelo de transporte es amplio y puede generar soluciones relacionadas con el área de operaciones, inventario y asignación de elementos.</p>
</div>
<div id="cc-m-5702165213" class="j-module n j-text ">
<p>El procedimiento de resolución de un modelo de transporte se puede llevar a cabo mediante <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/programacion-lineal/" target="" rel="noopener noreferrer">programación lineal común</a>, sin embargo su estructura permite la creación de múltiples alternativas de solución tales como los <strong><a title="Problemas de Asignación" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/solucion-de-un-modelo-de-transporte-mediante-un-algoritmo-de-asignacion/">modelos de asignación</a>, </strong>o los métodos de flujos de red. También es posible emplear los heurísticos más populares como <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-aproximacion-de-vogel/" target="" rel="noopener noreferrer"><em><strong>Vogel</strong></em></a>, <em><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-de-la-esquina-noroeste/" target="" rel="noopener noreferrer">Esquina Noroeste</a></strong></em> o <em><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-del-costo-minimo/" target="" rel="noopener noreferrer">Mínimos Costos</a></strong></em>.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/MC-20.webp" alt="Problema del transporte o distribución" width="453" height="482" class="aligncenter wp-image-26603 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/MC-20.webp 453w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/MC-20-282x300.webp 282w" sizes="(max-width: 453px) 100vw, 453px" /></p>
<p>&nbsp;</p>
<p>Los problemas de transporte o distribución son uno de los más aplicados en la economía actual, dejando, como es de prever, múltiples casos de éxito a escala global que estimulan la aprehensión de los mismos.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>
		<div id="problema-de-transporte-mediante-programacion-lineal" data-title="Problema de transporte mediante programación lineal" class="index-title"></div>
	Problema de transporte mediante programación lineal</h2>
<p>Como se mencionó anteriormente, la <strong><a title="Programación Lineal" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/programacion-lineal/">programación lineal</a></strong> puede ser utilizada para la resolución de modelos de transporte, aunque no sea sensato resolver los modelos mediante el <em><strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/metodo-simplex/" target="" rel="noopener noreferrer">Método Simplex</a></strong></em>, si puede ser de gran utilidad la fase de modelización, ya que la programación carece de la practicidad de los métodos de asignación, pero puede ser de gran importancia dependiendo de la complejidad de las restricciones adicionales que puede presentar un problema particular.</p>
<h3>El problema</h3>
<blockquote class="aligncenter quote-simple "><p>Una empresa energética colombiana dispone de cuatro plantas de generación para satisfacer la demanda diaria eléctrica en cuatro ciudades, Cali, Bogotá, Medellín y Barranquilla. Las plantas 1,2,3 y 4 pueden satisfacer 80, 30, 60 y 45 millones de KW al día respectivamente. Las necesidades de las ciudades de Cali, Bogotá, Medellín y Barranquilla son de 70, 40, 70 y 35 millones de Kw al día respectivamente. Los costos asociados al envío de suministro energético por cada millón de KW entre cada planta y cada ciudad son los registrados en la siguiente tabla.</p></blockquote>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-392.webp" alt="" width="408" height="105" class="aligncenter wp-image-26604 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-392.webp 408w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-392-300x77.webp 300w" sizes="(max-width: 408px) 100vw, 408px" /></p>
<span class="tie-highlight tie-highlight-blue"><em><strong>Formule un modelo de programación lineal que permita satisfacer las necesidades de todas las ciudades al tiempo que minimice los costos asociados al transporte.</strong></em></span>
<h3>
		<div id="solucion-mediante-programacion-lineal" data-title="Solución mediante programación lineal" class="index-title"></div>
	Solución mediante programación lineal</h3>
<p>El modelo básico de transporte es el modelo en el cual la cantidad ofertada es igual a la cantidad demandada, como es el caso de este ejercicio, sin embargo trasladar esta suposición a la realidad es casi imposible por lo cual hace falta crear orígenes y/o destinos ficticios con el excedente de oferta y/o demanda (es sugerible que se haga con la demanda).</p>
<p>Como ya lo hemos planteado en módulos anteriores el primer paso corresponde a la definición de las variables, regularmente se le denomina a las variables de manera algebraica X<sub>i,j</sub> donde <em>i</em> simboliza a la fuente y <em>j</em> simboliza al destino. En este caso <em>i </em>define el conjunto {Planta 1, Planta 2, Planta 3 y Planta 4}, y <em>j</em> define el conjunto {Cali, Bogotá, Medellín y Barranquilla}. Sin embargo es práctico renombrar cada fuente y destino por un número respectivo, por ende la variable X<sub>1,2</sub> corresponde a la cantidad de millones de KW enviados diariamente de la Planta 1 a la ciudad de Bogotá.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-393.webp" alt="Problema del transporte o distribución" width="602" height="410" class="aligncenter wp-image-26605 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-393.webp 602w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-393-300x204.webp 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-393-220x150.webp 220w" sizes="(max-width: 602px) 100vw, 602px" /></p>
<p>&nbsp;</p>
<div id="cc-m-2963853513" class="j-module n j-text ">
<p>El segundo paso corresponde a la formulación de las restricciones de oferta y demanda, cuya cantidad se encuentra determinada por el factor entre fuentes y destinos, en este caso 16 restricciones.</p>
<p><em>Restricciones de oferta o disponibilidad, las cuales son de signo <span lang="ZH-CN" xml:lang="ZH-CN">≤</span>:</em></p>
<p>X<sub>1,1</sub> + X<sub>1,2</sub> + X<sub>1,3</sub> + X<sub>1,4</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 80</p>
<p>X<sub>2,1</sub> + X<sub>2,2</sub> + X<sub>2,3</sub> + X<sub>2,4</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 30</p>
<p>X<sub>3,1</sub> + X<sub>3,2</sub> + X<sub>3,3</sub> + X<sub>3,4</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 60</p>
<p>X<sub>4,1</sub> + X<sub>4,2</sub> + X<sub>4,3</sub> + X<sub>4,4</sub> <span lang="ZH-CN" xml:lang="ZH-CN">≤</span> 45</p>
<p><em>Restricciones de demanda, las cuales son de signo ≥:</em></p>
<p>X<sub>1,1</sub> + X<sub>2,1</sub> + X<sub>3,1</sub> + X<sub>4,1</sub> ≥ 70</p>
<p>X<sub>1,2</sub> + X<sub>2,2</sub> + X<sub>3,2</sub> + X<sub>4,2</sub> ≥ 40</p>
<p>X<sub>1,3</sub> + X<sub>2,3</sub> + X<sub>3,3</sub> + X<sub>4,3</sub> ≥ 70</p>
<p>X<sub>1,4</sub> + X<sub>2,4</sub> + X<sub>3,4</sub> + X<sub>4,4</sub> ≥ 35</p>
<p><em>Luego se procede a formular la función objetivo, en la cual se relaciona el costo correspondiente a cada ruta.</em></p>
<p>Z<sub>MIN</sub> = 5X<sub>1,1</sub> + 2X<sub>1,2</sub> + 7X<sub>1,3</sub> + 3X<sub>1,4</sub> + 3X<sub>2,1</sub> + 6X<sub>2,2</sub> + 6X<sub>2,3</sub> + 1X<sub>2,4</sub> + 6X<sub>3,1</sub> + 1X<sub>3,2</sub> + 2X<sub>3,3</sub> + 4X<sub>3,4</sub> + 4X<sub>4,1</sub> + 3X<sub>4,2</sub> + 6X<sub>4,3</sub> + 6X<sub>4,4</sub></p>
</div>
<div id="cc-m-2963855713" class="j-module n j-text ">
<p>Luego se puede proceder al uso de la herramienta WinQSB para resolver el modelo realizado, aquí están los resultados.</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-394.webp" alt="Problema del transporte o distribución" width="333" height="487" class="aligncenter wp-image-26607 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-394.webp 333w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-394-205x300.webp 205w" sizes="(max-width: 333px) 100vw, 333px" /></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-395.webp" alt="" width="602" height="370" class="aligncenter wp-image-26608 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-395.webp 602w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-395-300x184.webp 300w" sizes="(max-width: 602px) 100vw, 602px" /></p>
</div>
<div id="cc-m-2963857613" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><figcaption></figcaption></figure>
</div>
<div id="cc-m-2963860413" class="j-module n j-text ">
<p><em>Este problema presenta una solución óptima alternativa, aquí los resultados.</em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-396.webp" alt="" width="330" height="487" class="aligncenter wp-image-26609 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-396.webp 330w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-396-203x300.webp 203w" sizes="(max-width: 330px) 100vw, 330px" /></p>
</div>
<div id="cc-m-2963860513" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><a rel="lightbox" data-href="https://image.jimcdn.com/app/cms/image/transf/dimension=origxorig:format=jpg/path/s075f076504dfea8d/image/i907b80bb559f1b75/version/1416590956/modelo-de-transporte.jpg" data-title="ingenieriaindustrialonline-60e499.ingress-alpha.easywp.com" data-index="0"> </a></figure>
</div>
<p><em><strong>Red solución:</strong></em></p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-397.webp" alt="Problema del transporte o distribución" width="613" height="383" class="aligncenter wp-image-26610 size-full" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-397.webp 613w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-titulo-397-300x187.webp 300w" sizes="(max-width: 613px) 100vw, 613px" /></p>
<p>Los <a title="Dualidad en Programación Lineal" href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/dualidad-en-programacion-lineal/"><em><strong>análisis de dualidad</strong></em></a> y <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/analisis-de-sensibilidad-grafica-mediante-el-uso-de-python-caso-1/"><strong>sensibilidad</strong></a> en los modelos de transporte resultan ser bastante interesantes, pues pueden llegar a determinar aumentos de capacidad en las fuentes si el precio sombra de las rutas en relación a ellas lo justifica.</p>

		<div class="box info  ">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>Lo invitamos a leer la <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/solucion-de-un-modelo-de-transporte-mediante-un-algoritmo-de-asignacion/"><strong>Solución de un modelo de transporte mediante un algoritmo de asignación</strong></a>, empleando el solucionador de Google
			</div>
		</div>
	
</div>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/problema-del-transporte-o-distribucion/">Problema del transporte o distribución</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/problema-del-transporte-o-distribucion/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
