<?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>Planeación agregada archivos &#187; Ingenieria Industrial Online</title>
	<atom:link href="https://ingenieriaindustrialonline.com/tag/planeacion-agregada/feed/" rel="self" type="application/rss+xml" />
	<link>https://ingenieriaindustrialonline.com/tag/planeacion-agregada/</link>
	<description>ingenieriaindustriaonline.com</description>
	<lastBuildDate>Sun, 24 Mar 2024 19:21:41 +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>Planeación agregada archivos &#187; Ingenieria Industrial Online</title>
	<link>https://ingenieriaindustrialonline.com/tag/planeacion-agregada/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>¿Cómo aumentar la productividad?: Aumentar la Producción</title>
		<link>https://ingenieriaindustrialonline.com/produccion/como-aumentar-la-productividad-aumentar-la-produccion/</link>
					<comments>https://ingenieriaindustrialonline.com/produccion/como-aumentar-la-productividad-aumentar-la-produccion/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Manuel Gil Pérez]]></dc:creator>
		<pubDate>Wed, 30 Sep 2020 16:43:33 +0000</pubDate>
				<category><![CDATA[Lean Manufacturing]]></category>
		<category><![CDATA[Producción]]></category>
		<category><![CDATA[Planeación agregada]]></category>
		<category><![CDATA[Productividad]]></category>
		<category><![CDATA[Volumen de producción]]></category>
		<guid isPermaLink="false">https://ingenieriaindustrialonline.com/?p=23363</guid>

					<description><![CDATA[<p>El dilema de la productividad Casi todos tenemos claro que nuestro trabajo es hacer nuestro trabajo. Pero casi nadie se pone el saco para hacer la otra gran responsabilidad que cada puesto conlleva: mejorar. La otra responsabilidad que tenemos (pero no sabemos) es aumentar la productividad. Hacer más con menos o con lo mismo. Ese &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/como-aumentar-la-productividad-aumentar-la-produccion/">¿Cómo aumentar la productividad?: Aumentar la Producción</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>El dilema de la productividad
		<div id="el-dilema-de-la-productividad" data-title="El dilema de la productividad" class="index-title"></div>
	</h2>
<p>Casi todos tenemos claro que nuestro trabajo es hacer nuestro trabajo. Pero casi nadie se pone el saco para hacer la otra gran responsabilidad que cada puesto conlleva: mejorar. La otra responsabilidad que tenemos (pero no sabemos) es aumentar la productividad. Hacer más con menos o con lo mismo. Ese es el secreto de las empresas exitosas.</p>
<p>Este es el primer artículo de una serie de 12 artículos sobre diferentes estrategias para aumentar la productividad. La estrategia sobre la que hablaremos hoy es: <em><strong>Aumentar el volumen de producción</strong></em>.</p>
<h2>Hablemos de Henry Ford
		<div id="hablemos-de-henry-ford" data-title="Hablemos de Henry Ford" class="index-title"></div>
	</h2>
<p><a href="https://ingenieriaindustrialonline.com/conceptos-generales/precursores-de-la-ingenieria-industrial/"><strong>Henry Ford</strong></a> era un visionario. Se dio cuenta de que la clave para tener éxito con su automóvil era vender muchos. Pero la forma en que se fabricaban los carros al inicio del siglo XX no era nada productiva. En ese entonces, se tenía una estructura de taller. Cada uno de los operadores de la fábrica tenía su set de herramientas. El carro se estaba fijo en una posición mientras un grupo de personas lo iba construyendo poco a poco. Seguramente había métodos y pasos para ensamblar las cosas, pero no eran las más productivas. El carro tenía que esperar a que el operador se acercara con las piezas para ensamblarlas. Las herramientas tenían que esperar a ser usadas. El espacio de la planta tenía que esperar a ser aprovechado hasta que el carro tuviera llantas, porque antes no se movía.</p>
<p>Henry Ford cambió eso. Se dio cuenta de que lo que importa es aumentar los momentos en que se agrega valor al automóvil. Por eso ordenó su fábrica para maximizar esos momentos y así logró aumentar su volumen de producción y aumentar la productividad de su planta.</p>
<h2>Aumentar el volumen de producción
		<div id="aumentar-el-volumen-de-produccion" data-title="Aumentar el volumen de producción" class="index-title"></div>
	</h2>
<p>La primera estrategia para aumentar la productividad es aumentar el volumen de producción. Es decir, aprovechar al máximo los recursos capitales en los que hemos invertido para maximizar la salida de nuestra planta. Si aumentamos la producción, podemos hacer de mejor manera estrategias de economías de escala, por lo que el costo unitario de nuestros productos bajaría y nuestra productividad subiría.<br />
Hay 4 maneras en las que podemos aumentar el volumen de producción:</p>
<h3><em>1. Aumentar la fuerza laboral
		<div id="1-aumentar-la-fuerza-laboral" data-title="1. Aumentar la fuerza laboral" class="index-title"></div>
	</em></h3>
<p>Si tu proceso es altamente dependiente de la mano de obra, la mejor manera de aumentar la producción es aumentar la fuerza laboral. Si tienes una mayor cantidad de manos trabajando en el proceso, podrás aumentar tu salida de una manera relativamente sencilla. Antes de contratar a las personas, es importante que tengas en cuenta si el personal que vas a contratar será permanente o si será temporal. En muchas ocasiones la mejor manera de aumentar la fuerza laboral es mantener al personal altamente capacitado en los puestos claves de la organización, mientras que el personal temporal se encarga de hacer las funciones que son relativamente más sencillas. Por lo tanto es recomendable un fuerte esfuerzo de estandarización de procesos y operaciones antes de crecer en este rubro.</p>
<h3><em>2. Trabajar tiempos extras
		<div id="2-trabajar-tiempos-extras" data-title="2. Trabajar tiempos extras" class="index-title"></div>
	</em></h3>
<p>Si tu operación lo permite, esta es una excelente manera de aprovechar los recursos existentes para aumentar la salida de tu planta. Una hora y media extra por trabajador por semana es casi un día adicional de trabajo. Si decides implementar esta estrategia, te recomiendo que hagas un profundo autoanálisis de tus operaciones para encontrar operaciones que pertenezcan a las 3 K&#8217;s y así eliminarlas. <strong>Recuerda, las operaciones 3K son <em>sucias, peligrosas o pesadas</em> y aumentan la sobrecarga de los empleados</strong>. Si logramos eliminarlas de nuestro proceso, podemos asegurarnos que las horas extras realizadas sean mucho más productivas.</p>
<h3><em>3. Aumentar la velocidad de producción
		<div id="3-aumentar-la-velocidad-de-produccion" data-title="3. Aumentar la velocidad de producción" class="index-title"></div>
	</em></h3>
<p><em>¿Estás produciendo a la máxima velocidad que puedes?</em> Aquí es recomendable hacer un mapeo de la cadena de valor, con herramientas como <a href="https://ingenieriaindustrialonline.com/lean-manufacturing/mapa-de-flujo-de-valor-vsm/"><strong>Value Stream Mapping</strong></a> para encontrar cuál es tu restricción de velocidad, corregirla y elevar tus niveles productivos. Herramientas como <a href="https://ingenieriaindustrialonline.com/gestion-y-control-de-calidad/kaizen-mejora-continua/"><em><strong>Kaizen</strong></em></a>, Círculos de Calidad y <a href="https://ingenieriaindustrialonline.com/gestion-de-calidad/que-es-six-sigma/"><em><strong>Six Sigma</strong></em></a> son muy útiles para eliminar ese tipo de bloqueos.</p>
<p>Sin embargo, si tu problema es relativo al equipo, el mejor camino que puedes seguir es la implementación de <a href="https://ingenieriaindustrialonline.com/lean-manufacturing/mantenimiento-productivo-total-tpm/"><strong>TPM</strong></a> para controlar las 6 grandes pérdidas de la productividad.</p>
<h3><em>4. Expandir la planta
		<div id="4-expandir-la-planta" data-title="4. Expandir la planta" class="index-title"></div>
	</em></h3>
<p>Finalmente, esta debe de ser tu última opción antes de explotar al máximo las opciones previas de aumento del volumen de producción. Sin embargo, si ya maximizaste tu proceso y tu demanda sigue creciendo, esta es la opción que debes de seguir. Seguramente tendrás que contratar personal adicional, equipo y hacer una inversión adicional en materia prima, pero si tu mercado lo paga, es una excelente opción.</p>
<p>En conclusión:</p>
<p><em>Aumentar la producción es una excelente estrategia a seguir cuando conoces muy bien tu mercado y estás completamente seguro de que el excedente a producir se venderá. Si no conoces tu mercado y no estas seguro de que lo que produzcas se venda, no te recomiendo seguir estos pasos; ya que crearás inventarios muy grandes y la inversión de capital será enorme (que no se verá inmediatamente reflejada en flujo).</em><br />
<em><a href="https://ingenieriaindustrialonline.com/lean-manufacturing/guia-practica-de-lean-manufacturing-para-el-empresario/"><strong>Lean Manufacturing</strong></a> fue creado para eliminar los bloqueos que existen en los procesos, conectándolos y haciéndolos tan productivos como pueden ser.</em></p>
<p><iframe src="https://www.youtube.com/embed/Ifa53SwanOI" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>

		<div class="clearfix"></div>
		<div class="about-author about-author-box container-wrapper">
			<div class="author-avatar">
				<img decoding="async" src="https://www.gravatar.com/avatar/d1c922a41a92e3698e7872e35e865a96?s=96&amp;r=g&amp;d=mm" alt="">
			</div>
			<div class="author-info">
				<h4>Carlos Manuel Gil Pérez, AVS</h4>Carlos es Ingeniero Industrial egresado por la Universidad Panamericana. Cuenta con una especialidad en Dirección de Sistemas de Calidad, una certificación como Lean Champion por parte de la agrupación japonesa ChuSanRen y está certificado como Especialista Asociado en Ingeniería de Valor (AVS), por la Sociedad Internacional de Ingeniería de Valor. Actualmente se encuentra estudiando la Maestría en Innovación de Negocios por parte del CEDIM.</p>
<p>Ha participado en procesos de consultoría y entrenamiento en procesos de mejora con más de 40 empresas y más de 300 participantes con empresas de diferentes ramos (alimenticio, metal mecánico, automotriz, textil entre otras).</p>
<p>Su experiencia en el campo de la ingeniería de valor incluye la participación como consultor y facilitador en diversos proyectos tanto de construcción como de manufactura en México y como maestro en Posgrados de la Universidad Panamericana, en la Especialidad en Diseño e Ingeniería.</p>
<p>Su experiencia profesional incluye la coordinación y administración de proyectos en empresas como Laboratorios PISA, y organizaciones dentro del ramo inmobiliario. Tiene experiencia en la procuración de fondos para proyectos sociales y es parte del comité directivo de Elevare A.C. organización dedicada a fomentar la integración social por medio de la creación de Orquestas y Coros en barrios populares. Participa como Socio, Consultor en AVG Latinoamérica, Director General en el Instituto Mudanai de Creación de Valor y Secretario en el capítulo latinoamericano de SAVE International. Es fundador de Astucia Empresarial, plataforma de educación empresarial en línea. 
			</div>
		</div>
	
<p>&nbsp;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/como-aumentar-la-productividad-aumentar-la-produccion/">¿Cómo aumentar la productividad?: Aumentar la Producción</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/produccion/como-aumentar-la-productividad-aumentar-la-produccion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Planeación agregada mediante programación lineal</title>
		<link>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/</link>
					<comments>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Sun, 16 Jun 2019 17:27:40 +0000</pubDate>
				<category><![CDATA[Investigación de operaciones]]></category>
		<category><![CDATA[Producción]]></category>
		<category><![CDATA[Google OR-Tools]]></category>
		<category><![CDATA[Microsoft Excel]]></category>
		<category><![CDATA[Planeación agregada]]></category>
		<category><![CDATA[Programación lineal]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Solver]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1319</guid>

					<description><![CDATA[<p>Recordemos que la planeación agregada es un proceso utilizado para determinar una estrategia de forma anticipada que permita satisfacer los requerimientos (demanda) del sistema, al mismo tiempo que busca optimizar los recursos del mismo; cuyo desarrollo se lleva a cabo en el corto y mediano plazo. Variables y consideraciones A la hora de elaborar un plan agregado se &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/">Planeación agregada mediante programación lineal</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Recordemos que la <a title="Planeación Agregada" href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/" target="_blank" rel="noopener"><strong>planeación agregada</strong></a> es un proceso utilizado para determinar una estrategia de forma anticipada que permita satisfacer los requerimientos (demanda) del sistema, al mismo tiempo que busca optimizar los recursos del mismo; cuyo desarrollo se lleva a cabo en el corto y mediano plazo.</p>
<h2>Variables y consideraciones</h2>
<p>A la hora de elaborar un plan agregado se debe tener en cuenta que existen una serie de consideraciones que rigen la estrategia, ya sea por el horizonte de tiempo, por el criterio de las decisiones o por las restricciones que delimitan el sistema.</p>
<p><em>A continuación detallaremos estas consideraciones:</em></p>
<h3><em>Horizonte de tiempo</em></h3>
<p>Básicamente, la planeación agregada considera un horizonte de tiempo de corto y medio plazo, es decir que suele manejar un periodo entre 6 y 18 meses de planificación.</p>
<h3><em>Criterios de decisión</em></h3>
<p>El principal objetivo de la <strong>planeación agregada</strong> es aumentar la productividad, de manera que debe acercar a la organización a su meta económica. En este orden de ideas, la búsqueda de la <strong>maximización del beneficio</strong> se alinea con los objetivos del plan agregado, entendiéndose como la diferencia entre los ingresos y los gastos operativos, por ende es válido considerar la <strong>minimización de los <a href="https://ingenieriaindustrialonline.com/produccion/costos-de-produccion/" target="_blank" rel="noopener">costos totales </a></strong>(mientras no se afecten los ingresos) como <strong>criterio de decisión de la planeación agregada.</strong></p>
<p>Teniendo en cuenta lo anterior, es necesario evaluar con espíritu crítico y perspectiva sistémica, todas las relaciones entre los recursos disponibles para llevar a cabo el plan y sus implicaciones en los costos totales. De manera que pueden identificarse los costos asociados a los siguientes factores:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li>Mano de obra: Costo de tiempo normal.</li>
<li>Contratación: Costos asociados a la búsqueda de mano de obra, a la contratación misma y a las actividades de inducción.</li>
<li>Despidos: Costos legales (compensaciones e indemnizaciones) de despedir empleados.</li>
<li>Horas extras.</li>
<li>Subcontratación (Outsourcing).</li>
<li>Inventario: Costos de mantenimiento de inventario, incluso costos de oportunidad por lucro cesante.</li>
<li>Ruptura de inventario (faltantes).</li>
<li>Costos de financiación del plan.</li>
</ul>

		</div>
	
<h3><em>Restricciones</em></h3>
<p>Todos los sistemas objetos de planeación agregada se encuentran sujetos a restricciones y de diversos tipos, tales como:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li>Restricciones de demanda: P.ej: Requerimientos por periodo.</li>
<li>Restricciones laborales: P.ej: Máximo número de horas extras posibles.</li>
<li>Restricciones de espacio: P.ej: Máxima capacidad de almacenamiento.</li>
<li>Restricciones de la cadena de valor: P.ej: Capacidad máxima del proveedor.</li>
<li>Restricciones de eficiencia: P.ej: Curva de aprendiza en empleados nuevos.</li>
</ul>

		</div>
	

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>Modelos de programación lineal en planeación agregada</h2>
<p>Existen diversos métodos empleados en la creación de un plan agregado, entre los que se destacan la <strong><a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/programacion-lineal/" target="_blank" rel="noopener noreferrer">programación lineal</a></strong>, reglas de decisión por búsqueda, programación por objetivos, programación dinámica, o métodos heurísticos (ensayo y error).</p>
<p>La programación lineal por sus características innatas de modelación libre, se constituye como una herramienta poderosa de resolución de planes agregados, de manera que puede considerar tantas restricciones como la realidad del sistema lo presenten, al mismo tiempo que se enfoca en soluciones óptimas, a diferencia de los <a title="Planeación Agregada" href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/" target="_blank" rel="noopener"><strong>métodos heurísticos de comparación de alternativas</strong></a>.</p>

		<div class="box info  alignleft">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>A lo largo del tiempo se han desarrollado modelos de programación lineal aplicados a la planeación agregada, tales como el método de transporte de Bowman, el método de Hanssman-Hess, que permite concluir que pueden desarrollarse tantos modelos como existan casos de estudio, y variarán de acuerdo a las restricciones que consideren, haciendo modelos más o menos robustos.
			</div>
		</div>
	
<p>A continuación, se detallará un modelo de programación lineal mixta propuesto por el autor, que considerará la mayor parte de los criterios de decisión contemplados en los métodos heurísticos de comparación de alternativas, en búsqueda de una solución óptima.</p>
<h3>Modelo de programación lineal mixta aplicado a Planeación Agregada</h3>
<p>En el modelo propuesto las decisiones se toman de acuerdo con una fuerza de trabajo flexible considerando tiempo extraordinario de trabajo y una tasa de producción que contempla un factor de eficiencia reducida para operarios nuevos en el periodo de contratación, simulando el impacto de la curva de aprendizaje.</p>
<p>Los costos que afectan la función objetivo se expresan en «costos por unidades agregadas» y «costos por operario», e incluye los componentes de:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li><em>Costos de nómina normal.</em></li>
<li><em>Costos de nómina en tiempo extraordinario.</em></li>
<li><em>Costos de contratación de personal.</em></li>
<li><em>Costos de despido de personal.</em></li>
<li><em>Costos de subcontratación y maquila.</em></li>
<li><em>Costos totales de inventario.</em></li>
</ul>

		</div>
	
<p>Además, los costos asociados al tiempo normal y extraordinario relacionados con los operarios nuevos también contemplan el factor de eficiencia reducida por periodo.</p>
<h2><em>Datos de entrada requeridos</em></h2>
<p><em>El modelo que hemos preparado requiere de los siguientes datos de entrada:</em></p>
<p><em><strong>m </strong></em>= Número de periodos del plan</p>
<p><em><strong>días </strong></em>= Número de días de cada periodo del plan</p>
<p><em><strong>requerimientos </strong></em>= Los requerimientos estimados de cada periodo del plan (unidades)</p>
<p><em><strong>Jornada laboral </strong></em>= Jornada laboral en términos de horas / día</p>
<p><em><strong>Tiempo unitario </strong></em>= Tiempo empleado en producir una unidad (horas / trabajador / unidad)</p>
<p><em><strong>Eficiencia </strong></em>= En este modelo consideramos esta variable como factor de eficiencia de los operarios nuevos (curva de aprendizaje) &#8211; Solo la consideramos durante el primer periodo de producción del operario</p>
<p><em><strong>Horas extras máx. </strong></em><em>= </em>Cantidad máxima de horas extras que puede emplear un operario por periodo</p>
<p><em><strong>Unidades subcontratadas máx. </strong>= </em>Cantidad máxima de unidades que se pueden subcontratar por periodo</p>
<p><em><strong>Inventario Inicial </strong>= </em>Inventario Inicial dado en unidades</p>
<p><em><strong>Costo normal </strong></em><em>= </em>Costo de tiempo normal ($ / hora)</p>
<p><em><strong>Costo extra </strong></em><em>= </em>Costo de tiempo extra ($ / hora)</p>
<p><em><strong>Costo de inventario </strong></em>= Costo de tener unidades en inventario ($ / unidad / periodo)</p>
<p><em><strong>Costo de subcontratar </strong></em><em>= </em>Costo de tercerizar la fabricación de unidades ($ / unidad)</p>
<p><em><strong>Costo de contratar </strong></em>= Costo de contratar un operario ($ / operario)</p>
<p><em><strong>Costo de despedir </strong></em>= Costo de despedir un operario ($ / operario)</p>
<p><strong><em>Operarios </em></strong>= Número inicial de operarios</p>
<hr />
<p>La siguiente formulación ha sido evaluada y validada en diversos programas solucionadores, como Solver, QM, WinQSB y Google Or-Tools.</p>
<h2><em>Variables de decisión</em></h2>
<p>&nbsp;</p>
<p><strong>x<sub>i</sub></strong> = Cantidad de unidades a producir en tiempo normal por operarios antiguos en el periodo <em>i</em></p>
<p><strong>xn<sub>i</sub></strong> = Cantidad de unidades a producir en tiempo normal por operarios nuevos en el periodo <em>i</em></p>
<p><strong>xz<sub>i</sub></strong> = Cantidad de unidades a producir en tiempo extra por operarios antiguos en el periodo <em>i</em></p>
<p><strong>xnz<sub>i</sub></strong> = Cantidad de unidades a producir en tiempo extra por operarios nuevos en el periodo <em>i</em></p>
<p><strong>c<sub>i</sub></strong> = Número de operarios a contratar en el periodo <em>i</em></p>
<p><strong>d<sub>i</sub></strong> = Número de operarios a despedir en el periodo <em>i</em></p>
<p><strong>oi<sub>i</sub></strong> = Número de operarios totales al inicio del periodo <em>i</em></p>
<p><strong>of<sub>i</sub></strong> = Número de operarios totales al final del periodo <em>i</em></p>
<p><strong>sub<sub>i</sub></strong> = Número de unidades a subcontratar en el periodo <em>i</em></p>
<p><strong><sub><span style="font-size: 16px;">inv</span>i</sub></strong> = Número de unidades en inventario al final del periodo <em>i</em></p>
<h3><em>Variables de cálculos intermedios</em></h3>
<p><strong>P<sub>i</sub></strong> = Cantidad de unidades que puede producir en tiempo normal un operario antiguo en el periodo <em>i</em></p>
<p><strong>Pn<sub>i</sub></strong> = Cantidad de unidades que puede producir en tiempo normal un operario nuevo en el periodo <em>i</em></p>
<p><strong>H<sub>i</sub></strong> = Cantidad máxima de unidades que puede producir en tiempo extra un operario antiguo en el periodo <em>i</em></p>
<p><strong>Hc<sub>i</sub></strong> = Cantidad máxima de unidades que puede producir en tiempo extra un operario nuevo en el periodo <em>i</em></p>
<p>&nbsp;</p>
<h3><em>Formulación de cálculos intermedios</em></h3>
<p><strong>P<sub>i</sub></strong> = (jornada laboral / tiempo unitario) * días del periodo <em>i</em></p>
<p><strong>Pn<sub>i</sub></strong> = P<sub>i</sub> * Eficiencia</p>
<p><strong>H<sub>i</sub></strong> = Horas extras máx. del periodo <em>i </em>/ tiempo unitario</p>
<p><strong>Hc<sub>i</sub></strong> = H<sub>i</sub> * Eficiencia</p>
<h3><em>Variables y entradas financieras</em></h3>
<p>&nbsp;</p>
<p><strong>Costo unitario normal</strong> = Costo normal * Tiempo unitario</p>
<p><strong>Costo unitario normal (operarios nuevos)</strong> = Costo normal * (Tiempo unitario / Eficiencia)</p>
<p><strong>Costo unitario extra</strong> = Costo extra * Tiempo unitario</p>
<p><strong>Costo unitario extra (operarios nuevos)</strong> = Costo extra * (Tiempo unitario / Eficiencia)</p>
<p>&nbsp;</p>
<h3><em>Restricciones de tiempo normal (Operarios antiguos)</em></h3>
<p style="text-align: center;">( P<sub>i</sub> * oi<sub>i</sub> ) &#8211; x<sub>i</sub> &gt;= 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de tiempo normal (Operarios nuevos)</em></h3>
<p style="text-align: center;">( Pn<sub>i</sub> * c<sub>i</sub> ) &#8211; xn<sub>i</sub> &gt;= 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de balance de operarios</em></h3>
<p><em>Esta restricción define que los operarios al final de un periodo i = operarios inicial periodo i + 1</em></p>
<p>Para todos los <em>i &gt;= 1:</em></p>
<p style="text-align: center;">oi<sub>i</sub> &#8211; of<sub>i-1</sub> = 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de balance para la contratación de operarios</em></h3>
<p>Para todos los <em>i &gt;= 1:</em></p>
<p style="text-align: center;">of<sub>i</sub> &#8211; oi<sub>i</sub> &#8211; c<sub>i</sub> + d<sub>i</sub> = 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de cantidad inicial de operarios</em></h3>
<p><em>Esta restricción nos indica que la cantidad inicial de operarios, es decir <strong>oi</strong> en periodo <strong>0</strong></em>, es equivalente al dato de entrada <em><strong>operarios </strong></em>(El cual nos indica la cantidad inicial de operarios del problema). Esta restricción parece demasiado lógica, sin embargo es vital considerarla de acuerdo a los solucionadores que utilicemos.</p>
<p style="text-align: center;">oi<sub>0</sub> &#8211; operarios = 0</p>
<h3><em>Restricciones de balance de operarios en el periodo 0 (periodo inicial)</em></h3>
<p style="text-align: center;">of<sub>0</sub> &#8211; oi<sub>0</sub> &#8211; c<sub>0</sub> + d<sub>0</sub> = 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de límites de horas extras (operarios antiguos)</em></h3>
<p style="text-align: center;">xz<sub>i</sub> &#8211; ( H<sub>i</sub>  * oi<sub>i</sub> ) &lt;= 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de límites de horas extras (operarios nuevos)</em></h3>
<p style="text-align: center;">xnz<sub>i</sub> &#8211; ( Hc<sub>i</sub>  * c<sub>i</sub> ) &lt;= 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de límites de unidades a subcontratar</em></h3>
<p style="text-align: center;"><sub><span style="font-size: 16px;">sub</span>i</sub> &#8211; unidades subcontratadas máx. en el periodo <em>i</em> &lt;= 0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de balance de inventarios (periodo 1 en adelante)</em></h3>
<p>Para todos los <em>i &gt;= 1:</em></p>
<div style="text-align: center;">inv<sub>i &#8211; 1</sub> + x<sub>i</sub>  + xn<sub>i</sub> + xz<sub>i</sub>  + xnz<sub>i</sub> + sub<sub>i</sub>  &#8211; requerimientos del periodo <em>i &#8211; </em>inv<sub>i</sub><em>  = </em>0</div>
<p>&nbsp;</p>
<h3><em>Restricciones de balance de inventarios (periodo 0)</em></h3>
<div style="text-align: center;">inventario inicial + x<sub>0</sub>  + xn<sub>0</sub> + xz<sub>0</sub>  + xnz<sub>0</sub> + sub<sub>0</sub>  &#8211; requerimientos del periodo <em>0 &#8211; </em>inv<sub>0</sub><em>  = </em>0</div>
<p>&nbsp;</p>
<h3>Restricciones de satisfacción de requerimientos (periodo 1 en adelante)</h3>
<p>Para todos los <em>i &gt;= 1</em></p>
<p style="text-align: center;">x<sub>i</sub>  + xn<sub>i</sub> + xz<sub>i</sub>  + xnz<sub>i</sub> + sub<sub>i</sub>  +<em> </em>inv<sub>i &#8211; 1</sub><em> &#8211; </em>requerimientos del periodo<em> i &gt;= </em>0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de satisfacción de requerimientos (periodo 0)</em></h3>
<p style="text-align: center;">x<sub>0</sub>  + xn<sub>0</sub> + xz<sub>0</sub>  + xnz<sub>0</sub> + sub<sub>0</sub>  +<em> </em>inventario inicial<em> &#8211; </em>requerimientos del periodo<em> 0 &gt;= </em>0</p>
<p>&nbsp;</p>
<h3><em>Restricciones de no negatividad</em></h3>
<p>Todas las variables pertenecen a los números reales enteros y sus valores deberán ser mayores o iguales a cero.</p>
<h3><em>Función objetivo</em></h3>
<p style="text-align: center;">Zmin = (costo unitario normal * x<sub>i</sub> ) + (costo unitario normal de operarios nuevos * xn<sub>i</sub> ) + (costo unitario extra * xz<sub>i</sub> ) + (costo unitario extra operarios nuevos * xnz<sub>i</sub> ) + (costo de subcontratar * sub<sub>i</sub> ) + (costo de contratar * c<sub>i</sub> ) + (costo de despedir * d<sub>i</sub> ) + (costo de inventarios * inv<sub>i</sub> )</p>
<p><em><strong><span class="tie-highlight tie-highlight-green">La aplicación del anterior modelo arrojará la solución óptima por medio del algoritmo «branch and bound».</span></strong></em></p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>Caso de estudio: Aplicación de programación lineal en planeación agregada</h2>
<blockquote class="aligncenter quote-simple "><p>Una compañía desea determinar su plan agregado de producción para los próximos 6 meses. Una vez utilizado el modelo de pronóstico más adecuado se establece el siguiente tabulado de requerimientos (no se cuenta con inventario inicial, y no se requiere de inventarios de seguridad).</p></blockquote>
<div id="cc-m-5869678913" class="j-module n j-imageSubtitle ">
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2545" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-187.png" alt="" width="294" height="149" /></figure>
<p><em>Información relacionada con el negocio:</em></p>
<p>Jornada laboral: 8 horas / trabajador / día</p>
<p>Costo de contratar: $ 350 / trabajador</p>
<p>Costo de despedir: $ 420 / trabajador</p>
<p>Costo de tiempo normal (mano de obra): $ 6 / hora</p>
<p>Costo de tiempo extra (mano de obra): $8 / hora</p>
<p>Costo de mantenimiento de inventarios: $ 3 /unidad/ mes</p>
<p>Costo de subcontratar: $ 50 / unidad</p>
<p>Tiempo de procesamiento: 5 horas / trabajador / unidad</p>
<p>Jornada laboral: 8 horas / día</p>
<p>Número inicial de trabajadores: 20</p>
<p><strong>Eficiencia de un trabajador nuevo el primer periodo:</strong> 90%</p>
<p><strong>Cantidad máxima de horas extras por operario por mes: </strong>8 horas/trabajador/mes</p>
<p>Capacidad máxima de suministro de unidades de subcontratación: 200 unidades/mes</p>
<p><strong>Unidades: </strong>Toneladas.</p>
<hr />
<p>Ya en la introducción del modelo hemos descrito la definición de las variables, la formulación de los cálculos intermedios, así mismo la formulación de las restricciones. Estas pueden utilizarse básicamente en cualquier solucionador.</p>
<p>En este caso vamos a utilizar un solucionador de programación basada en restricciones: <a href="https://ingenieriaindustrialonline.com/investigacion-de-operaciones/que-es-y-para-que-sirve-google-or-tools/" target="_blank" rel="noopener"><em><strong>Google OR-Tools</strong></em></a>. Para eso, vamos a programar nuestro modelo utilizando Python. No se preocupe si no cuenta con este programa, la idea es introducirnos de a poco en estas nuevas soluciones, por lo tanto utilizaremos un entorno virtual que podrás ejecutar sin la necesidad de realizar ninguna instalación.</p>
<p>Vamos a asumir que utilizarán el entorno virtual de <em>Colaboratory</em>, así que vayamos allá: <a href="https://colab.research.google.com/#create=true" target="_blank" rel="noopener"><em><strong>Abrir cuaderno nuevo</strong></em></a>.</p>
<h3><em>Paso 1: Instalar las librerías de Google Or Tools</em></h3>
<p>Este paso debe realizarse solo si vamos a utilizar el cuaderno de <em>Colaboratory</em>:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>!pip install ortools</code></pre>
</div>
<h3><em>Paso 2: Importar las librerías necesarias y declarar el solucionador</em></h3>
<p>En este caso, solo importaremos la librería correspondiente al módulo de programación lineal de Google Or-Tools. Además, utilizaremos el solucionador<span> SCIP </span><em>(Solving Constraint Integer Programs), un solucionador de código abierto disponible que permite resolver problemas lineales mixtos (Google OR-Tools posee múltiples solucionadores):</em></p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>from ortools.linear_solver import pywraplp

solver = pywraplp.Solver.CreateSolver('SCIP')</code></pre>
</div>
<h3><em>Paso 3: Datos de entrada</em></h3>
<p>De acuerdo a los datos que nos plantea el problema, registramos las entradas del modelo:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#DATOS DE ENTRADA

periodos = [0, 1, 2, 3, 4, 5] #Periodos del plan, empezando desde el periodo 0
demanda = [2500, 1500, 3000, 1000, 2500, 2200] #Requerimintos de cada periodo
dias = [22, 19, 21, 21, 22, 20] #Días laborales de cada periodo
jornada_laboral = 8 #horas / trabajador / día
tiempo_unitario = 5 #horas / unidad
Eficiencia = 0.9 #Eficiencia de un trabajador nuevo periodo 1
horas_extras_max = [8, 8, 8, 8, 8, 8] #Cantidad máxima de horas extras por periodo
unidades_sub_max = [200, 200, 200, 200, 200, 200] #Cantidad máxima de unidades que se pueden subcontratar en el periodo i
inv_inicial = 0 #Unidades
costo_normal = 6 #Unidades monetarias / hora
costo_extra = 8 #Unidades monetarias / hora
costo_inventario = 3 #Unidades monetarias / periodo
costo_sub = 50 #Unidades monetarias / unidad
costo_contratar = 350 #Unidades monetarias / trabajador
costo_despedir = 420 #Unidades monetarias / trabajador
operarios = 20 #Número inicial de trabajadores</code></pre>
</div>
<h3><em>Paso 4: Definir y formular los cálculos intermedios</em></h3>
<p>De acuerdo a la formulación que ya mostramos de nuestro modelo, se definirán aquellos cálculos intermedios necesarios. Recordemos la formulación que teníamos definida:</p>
<p><strong>P<sub>i</sub></strong> = (jornada laboral / tiempo unitario) * días del periodo <em>i</em></p>
<p><strong>Pn<sub>i</sub></strong> = P<sub>i</sub> * Eficiencia</p>
<p><strong>H<sub>i</sub></strong> = Horas extras máx. del periodo <em>i </em>/ tiempo unitario</p>
<p><strong>Hc<sub>i</sub></strong> = H<sub>i</sub> * Eficiencia</p>
<p>Si realizamos los cálculos de forma manual, podemos completar una tabla como la siguiente:</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" class="aligncenter size-full wp-image-2547" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-189.png" alt="" width="485" height="147" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-189.png 485w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Sin-título-189-300x91.png 300w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
<p>Veamos por ejemplo, el periodo 0 (periodo inicial).</p>
<p><strong>P<sub>0</sub></strong> (mes 1) = (8 / 5) * 22</p>
<p><strong>P<sub>0</sub></strong> (mes 1) = 35,20</p>
<p>Ahora veamos cómo podemos programar este cálculo en nuestro modelo (mediante un ciclo):</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>P= [] #Cantidad de unidades que puede producir un operario en el periodo i
for i in range(len(periodos)):
    P.append((jornada_laboral / tiempo_unitario) * dias[i])</code></pre>
</div>
<p>De esta forma efectuamos el cálculo para cada período. Veamos lo que pasaría imprimimos la variable P:</p>
</div>
<div class="j-module n j-imageSubtitle "><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/P.png" alt="" width="649" height="165" class="size-full wp-image-28335 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/P.png 649w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/P-300x76.png 300w" sizes="(max-width: 649px) 100vw, 649px" />Podemos corroborar cómo obtenemos los mismos resultados que se encuentran consignados en el tabulado. Ahora completaremos los cálculos intermedios restantes:</div>
<div>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>Pn= []#Cantidad de unidades que puede producir un operario nuevo en el periodo i
for i in range(len(periodos)):
    Pn.append(P[i] * Eficiencia)
    
H= []#Cantidad máxima de unidades que puede producir un operario en el periodo i con horas extras
for i in range(len(periodos)):
    H.append(horas_extras_max[i] / tiempo_unitario)
    
Hc= []#Cantidad máxima de unidades que puede producir un operario en el periodo i con horas extras
for i in range(len(periodos)):
    Hc.append(H[i] * Eficiencia)</code></pre>
</div>
</div>
<h3 class="j-module n j-imageSubtitle "><em>Paso 5: Definir las variables de decisión</em></h3>
<p>En este paso definiremos cada variable de decisión del modelo, definiremos también su naturaleza y su rango de valores: <em>entera, mayor o iguala cero (desde 0 hasta infinito).</em></p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Variables de decisión

x= {} #Unidades a producir en el periodo i
for i in range(len(periodos)):
    x[i] = solver.IntVar(0, solver.infinity(), '')
    
xn= {} #Unidades a producir por operarios nuevos en el periodo i
for i in range(len(periodos)):
    xn[i] = solver.IntVar(0, solver.infinity(), '')
    
xz= {} #Unidades a producir en tiempo extra en el periodo i
for i in range(len(periodos)):
    xz[i] = solver.IntVar(0, solver.infinity(), '')
    
xnz= {} #Unidades a producir en tiempo extra por operarios nuevos en el periodo i
for i in range(len(periodos)):
    xnz[i] = solver.IntVar(0, solver.infinity(), '')
    
c= {} #Operarios a contratar en el período i
for i in range(len(periodos)):
    c[i] = solver.IntVar(0, solver.infinity(), '')

d= {} #Operarios a despedir en el período i
for i in range(len(periodos)):
    d[i] = solver.IntVar(0, solver.infinity(), '')
    
sub= {} #Unidades a subcontratar en el periodo i
for i in range(len(periodos)):
    sub[i] = solver.IntVar(0, solver.infinity(), '') 
    
inv= {} #Unidades en inventario al final del periodo i
for i in range(len(periodos)):
    inv[i] = solver.IntVar(0, solver.infinity(), '') 
    
oi= {} #Número de operarios totales al inicio del periodo i
for i in range(len(periodos)):
    oi[i] = solver.IntVar(0, solver.infinity(), '') 
    
of= {} #Número de operarios totales al final del periodo i
for i in range(len(periodos)):
    of[i] = solver.IntVar(0, solver.infinity(), '') </code></pre>
</div>
<p>En el código anterior, y ya que cada variable debe definirse para cada periodo del plan agregado, utilizamos ciclos para su definición. Este ciclo tiene un rango determinado por el número de periodos, de esta manera, ya que tenemos 6 periodos, por ejemplo, en la definición de la variable <strong>Xi</strong>, tendremos las siguientes variables definidas: <strong>x<sub>0</sub></strong>, <strong>x<sub>1</sub></strong>, <strong>x<sub>2</sub></strong>, <strong>x<sub>3</sub></strong>, <strong>x<sub>4</sub></strong>, <strong>x<sub>5</sub></strong> . Así mismo sucede con las variables restantes.</p>
<p>Desde luego, existe la posibilidad de definir cada una de las variables de forma individual, sin embargo el proceso sería algo tedioso, y sería algo así:</p>
<p><em>x[0] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p><em>x[1] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p><em>x[2] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p><em>x[3] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p><em>x[4] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p><em>x[5] = solver.IntVar(0, solver.infinity(), »)</em></p>
<p>Por esta razón utilizamos ciclos para tal efecto.</p>
<h3><em>Paso 6: Formulación de variables de costo</em></h3>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Formulación de variables financieras (Costos)
costo_unitario_normal = costo_normal * tiempo_unitario
costo_unitario_normal_nuevo = costo_normal * (tiempo_unitario / Eficiencia) 
costo_unitario_extra = costo_extra * tiempo_unitario
costo_unitario_extra_nuevo = costo_extra * (tiempo_unitario / Eficiencia) </code></pre>
</div>
<h3><em>Paso 7: Restricciones del modelo</em></h3>
<p>Utilizando la misma metodología de ciclos para recorrer los periodos del plan, formulamos nuestras restricciones. Estas restricciones son exactamente las mismas que formulamos de manera algebraica en el planteamiento general de nuestro modelo.</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#RESTRICCIONES DEL MODELO

# Restricciones de tiempo normal (Producción normal)
for i in range(len(periodos)):
    solver.Add(((P[i] * oi[i]) - x[i]) &gt;= 0)

# Restricciones de tiempo normal (Producción normaml - operarios nuevos)
for i in range(len(periodos)):
    solver.Add(((Pn[i] * c[i]) - xn[i]) &gt;= 0)
    
# Restricciones de balance (operarios al final de un periodo i = operarios inicial periodo i + 1)
for i in range(1, len(periodos)):
    solver.Add(oi[i] - of[i-1] == 0)
    
# Restricciones de balance para la contratación de operarios (periodo i en adelante)
for i in range(1, len(periodos)):
    solver.Add(of[i] - oi[i] - c[i] + d[i] == 0)
    
# Restricción de cantidad inicial de operarios
solver.Add(oi[0] - operarios == 0)
    
# Restricciones de balance de operarios periodo 0
solver.Add(of[0] - oi[0] - c[0] + d[0] == 0)
    
# Restricciones límite de horas extras operarios antiguos
for i in range(len(periodos)):
    solver.Add(xz[i] -(H[i] * oi[i]) &lt;= 0)
    
# Restricciones límite de horas extras operarios nuevos
for i in range(len(periodos)):
    solver.Add(xnz[i] -(Hc[i] * c[i]) &lt;= 0)
    
# Restricciones límite de unidades a subcontratar
for i in range(len(periodos)):
    solver.Add(sub[i] - unidades_sub_max[i] &lt;= 0) 

# Restricciones límite de balance de inventarios periodo 1 en adelante 
for i in range(1, len(periodos)): 
    solver.Add(inv[i-1] + x[i] + xn[i] + xz[i] + xnz[i] + sub[i] - demanda[i] - inv[i] == 0) 

# Restricciones límite de balance de inventarios periodo 0 
solver.Add(inv_inicial + x[0] + xn[0] + xz[0] + xnz[0] + sub[0] - demanda[0] - inv[0] == 0) 

# Restricciones de satisfacción de demanda periodo 1 en adelante 
for i in range(1, len(periodos)): 
    solver.Add(x[i] + xn[i] + xz[i] + xnz[i] + sub[i] + inv[i-1] - demanda[i] &gt;= 0)
    
# Restricciones límite de balance de inventarios periodo 0
solver.Add(x[0] + xn[0] + xz[0] + xnz[0] + sub[0] + inv_inicial - demanda[i] &gt;= 0)</code></pre>
</div>
<h3><em>Paso 8: Definir la función objetivo</em></h3>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#FUNCIÓN OBJETIVO MINIMIZAR
objective_terms = []
for i in range(len(periodos)):
    objective_terms.append((costo_unitario_normal * x[i]) + (costo_unitario_normal_nuevo * xn[i]) + (costo_unitario_extra * xz[i]) + (costo_unitario_extra_nuevo * xnz[i]) + (costo_sub * sub[i]) + (costo_contratar * c[i]) + (costo_despedir * d[i]) + (costo_inventario * inv[i]))
solver.Minimize(solver.Sum(objective_terms))  </code></pre>
</div>
<h3><em>Paso 9: Invocar al solucionador</em></h3>
<p>A continuación daremos la orden al programa de resolver el modelo.</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>#Invocar al solucionador
status = solver.Solve()</code></pre>
</div>
<h3><em>Paso 10: Configurar las salidas del modelo</em></h3>
<p>Este paso lo verán quizá confuso; y la verdad no lo es tanto. Toda vez que el modelo está resuelto, podemos configurar la salida que queramos en cualquier momento; eso sí, hemos desarrollado unas líneas de código que pueden resultar extensas, con el fin de organizar los datos de salida. Por ejemplo, hemos definido encabezados para los datos, y otras cuestiones de forma.</p>
<p>Si usted desea, por ejemplo, tan solo conocer el valor total del plan agregado, puede introducir las siguientes líneas:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>print('\nValor total del plan (FO) =', solver.Objective().Value())</code></pre>
</div>
<p>Al ejecutar esta línea tendremos el siguiente resultado:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/valor-total.png" alt="valor total" width="591" height="106" class="size-full wp-image-28337 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/valor-total.png 591w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/valor-total-300x54.png 300w" sizes="(max-width: 591px) 100vw, 591px" /></p>
<p>Las siguientes líneas nos proporcionarán la información relevante de forma organizada:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code>if status == pywraplp.Solver.OPTIMAL:
    print('\nSOLUCIÓN: ')        
    print('\nPLAN DE PRODUCCIÓN \n')
    print('|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|'.format(
      'Período',
      'Producción (TN)',
      'TN (Op. Nuevos)',
      'Producción (HE)',
      'HE (Op. Nuevos)',
      'Uni. Subcon'))
    
    for i in range(len(periodos)):
        print('|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|'.format(
          i,
          x[i].solution_value(),
          xn[i].solution_value(),
          xz[i].solution_value(),
          xnz[i].solution_value(),
          sub[i].solution_value()))
    print('\nProduccción (TN): Cantidad de unidades a producir en tiempo normal')
    print('TN (Op. Nuevos): Cantidad de unidades a producir en tiempo normal con operarios nuevos')
    print('Producción (HE): Cantidad de unidades a producir en tiempo extra')
    print('HE (Op. Nuevos): Cantidad de unidades a producir en tiempo extra con operarios nuevos')
    print('Uni. Subcon: Cantidad de unidades a subcontratar')
    print('\nCOSTOS \n')
    print('|{:^20}|{:^20}|'.format(
          'Período',
          'Costo'))  
    costo = []
    for i in range(len(periodos)):
        costo.append((costo_unitario_normal * x[i].solution_value()) + (costo_unitario_normal_nuevo * xn[i].solution_value()) + (costo_unitario_extra * xz[i].solution_value()) + (costo_unitario_extra_nuevo * xnz[i].solution_value()) + (costo_sub * sub[i].solution_value()) + (costo_contratar * c[i].solution_value()) + (costo_despedir * d[i].solution_value()) + (costo_inventario * inv[i].solution_value()))
        print('|{:^20}|{:^20.2f}|'.format(
          i,
          costo[i]))
    print('\nValor total del plan (FO) =', solver.Objective().Value())
    print('Costo unitario del tiempo normal = {0} unidades monetarias / h'.format(costo_unitario_normal))
    print('Costo unitario del tiempo normal (Operarios nuevos)= {0:.2f} unidades monetarias / h'.format(costo_unitario_normal_nuevo))
    print('Costo unitario del tiempo extra= {0} unidades monetarias / h'.format(costo_unitario_extra))
    print('Costo unitario del tiempo extra (Operarios nuevos)= {0:.2f} unidades monetarias / h'.format(costo_unitario_extra_nuevo))
    print('\nINVENTARIOS \n')
    print('|{:^20}|{:^20}|'.format(
          'Período', 
          'Inv. final'))  
    for i in range(len(periodos)):    
        print('|{:^20}|{:^20}|'.format(
          i,
          inv[i].solution_value()))
    print('\nFUERZA LABORAL (OPERARIOS)\n')
    print('|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|'.format(
          'Período', 
          'Cantidad inicial',
          'Contrataciones',
          'Despidos',
          'Cantidad final'))  
    for i in range(len(periodos)):    
        print('|{:^20}|{:^20}|{:^20}|{:^20}|{:^20}|'.format(
          i,
          oi[i].solution_value(),
          c[i].solution_value(),
          d[i].solution_value(),
          of[i].solution_value()))
   
    vector_i=[]
    vector_x=[]
    vector_xn=[]
    vector_xz=[]
    vector_xnz=[]
    vector_sub=[]    
    
    for i in range (len(periodos)):
        vector_i.append(i)
        vector_x.append(x[i].solution_value())
        vector_xn.append(xn[i].solution_value())
        vector_xz.append(xz[i].solution_value())
        vector_xnz.append(xnz[i].solution_value())
        vector_sub.append(sub[i].solution_value())    
    
    datos = {}
    
    datos['Periodo'] = vector_i
    datos['Producción (TN)'] = vector_x
    datos['TN (Op. Nuevos)'] = vector_xn
    datos['Producción (HE)'] = vector_xz
    datos['HE (Op. Nuevos)'] = vector_xnz
    datos['Uni. Subcon'] = vector_sub
      
else:
  if status == solver.FEASIBLE:
    print('Se encontró una solución potencialmente subóptima.')
  else:
    print('El problema no tiene solución óptima.')</code></pre>
</div>
<p>Al ejecutar el modelo tendremos:</p>
<p><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/planeacion-agregada-solucion-python.png" alt="planeacion agregada solucion python" width="825" height="718" class="alignnone size-full wp-image-28338" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/planeacion-agregada-solucion-python.png 825w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/planeacion-agregada-solucion-python-300x261.png 300w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/planeacion-agregada-solucion-python-768x668.png 768w" sizes="(max-width: 825px) 100vw, 825px" /></p>
<p>Puedes acceder y ejecutar el modelo desde <em><strong><a href="https://colab.research.google.com/drive/1Gvk-1B_0KBvGrwKdMX-LJNMbGFiiLnXG?usp=sharing" target="_blank" rel="noopener">Planeación Agregada mediante Programación Lineal</a></strong>.</em></p>
<p>El tiempo empleado por el solucionador es inferior a 1 segundo de procesamiento. Dada la potencia del solucionador Google Or Tools y la capacidad de procesamiento del entorno virtual.</p>
<p>El valor objetivo hallado es: <strong>408074,33</strong></p>
<hr />
<p>Parte de la utilidad de este desarrollo es la posibilidad de integrarse con diversas fuentes de información. Puede, por ejemplo, tomar datos desde diversos archivos en entornos locales o externos. De igual forma puede exportar la información obtenida.</p>
<h2>Utilizando este modelo y su formulación en Solver de Microsoft Excel</h2>
<p>El mismo modelo que hemos desarrollado en <em>Python </em>ha sido formulado en Microsoft Excel para su resolución mediante <em>Solver</em>. De acuerdo a los parámetros genéricos de <em>Solver</em>, sin modificar límites de búsqueda, hemos obtenido una solución equivalente a: <strong>410498</strong>, empleando aproximadamente 50 segundos para llegar a ella.</p>
<p>Podemos observar entonces que la solución obtenida mediante Google Or-Tools satisface mucho más el criterio de optimización, así mismo alcanza la solución en un tiempo mucho menor.</p>
<p><em>¿A qué puede deberse esa diferencia entre las soluciones obtenidas mediante ambos solucionadores? </em>Principalmente a la tolerancia predeterminada de los solucionadores de <em>Solver </em>para las restricciones de variables enteras. Es posible incluso, en el cuadro de opciones de <em>Solver </em>configurar esta tolerancia como 0 para obtener mejores resultados. Lo hemos hecho y hemos alcanzado <strong>419601</strong>. Sin embargo, el tiempo de búsqueda puede tardar minutos.</p>

		<div class="box download  ">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>Te dejamos el documento en Microsoft Excel para su descarga: <a href="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/Planeacion_agregada.xlsx" target="_blank" rel="noopener"><strong>Planeación Agregada mediante Programación Lineal &#8211; Excel (Solver)</strong></a>
			</div>
		</div>
	
<figure class="cc-imagewrapper cc-m-image-align-3"></figure>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/">Planeación agregada mediante programación lineal</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Planeación agregada</title>
		<link>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/</link>
					<comments>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Salazar López]]></dc:creator>
		<pubDate>Sun, 16 Jun 2019 16:51:23 +0000</pubDate>
				<category><![CDATA[Producción]]></category>
		<category><![CDATA[Gestión de producción]]></category>
		<category><![CDATA[Planeación]]></category>
		<category><![CDATA[Planeación agregada]]></category>
		<guid isPermaLink="false">http://contentlab.co/ingenieria/?p=1313</guid>

					<description><![CDATA[<p>La planeación o planificación es un proceso cuyo principal objetivo es determinar una estrategia de forma anticipada que permita que se satisfagan unos requerimientos de producción, optimizando los recursos de un sistema productivo. La planeación agregada aborda la determinación de la fuerza laboral, la cantidad de producción, los niveles de inventario y la capacidad externa, con el &#8230;</p>
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/">Planeación agregada</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La planeación o planificación es un proceso cuyo principal objetivo es determinar una estrategia de forma anticipada que permita que se satisfagan unos requerimientos de producción, optimizando los recursos de un sistema productivo. La <strong>planeación agregada </strong>aborda la determinación de la fuerza laboral, la cantidad de producción, los niveles de inventario y la capacidad externa, con el objetivo de satisfacer los requerimientos para un horizonte de planificación de medio plazo (6 a 18 meses).</p>
<h2>¿Por qué se llama planeación agregada?</h2>
<p>A la planeación efectuada en un horizonte temporal de medio plazo se le conoce como «agregada» debido a que no desglosa una cantidad de producción detallada en referencias, sino que considera familias de productos. Así mismo, se consideran los recursos del sistema, en familias de recursos, así por ejemplo, el tiempo de planificación no se detalla a un nivel de órdenes de trabajo (día a día), sino que se planifica en periodos de tiempo que conforman un horizonte temporal de planificación a medio plazo. Esta planeación será posteriormente desagregada en el <a href="https://ingenieriaindustrialonline.com/produccion/plan-maestro-de-produccion-mps/"><em><strong>Plan maestro de producción</strong></em></a> y en la <em><strong><a title="Programación a Corto Plazo" href="https://ingenieriaindustrialonline.com/produccion/programacion-a-corto-plazo/">planeación a corto plazo o «planeación de taller</a>«</strong></em>, si se aplica planeación jerárquica, claro está.</p>
<h2>Variables y consideraciones de un plan agregado</h2>
<p>A la hora de elaborar un <strong>plan agregado </strong>se debe tener en cuenta que existen una serie de consideraciones de tipo económico, comercial, tecnológico e incluso social o de comportamiento que alimentan y afectan la estrategia. Así mismo, se deben considerar las variables de decisión y restricciones para la planificación. La eficiencia del plan depende en gran medida de la calidad de la información recolectada, es por ello que se debe optar por elaborar un plan agregado sobre procesos ya estandarizados.</p>
<h3><em>Consideraciones económicas</em></h3>
<p>En planeación agregada el criterio económico consiste en la minimización del costo, que ínsitamente implica maximizar el beneficio, por ello deben considerarse todos los factores que dentro del plan afecten el costo.</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li>Mano de obra (costo del tiempo normal, costo del tiempo extra).</li>
<li>Contratación (Entrevistas, evaluaciones, exámenes, inducción)</li>
<li>Despidos (Compensaciones legales)</li>
<li>Subcontratación (costo de servicio, costo de servicio y materia prima)</li>
<li><a href="https://ingenieriaindustrialonline.com/gestion-de-inventarios/clasificacion-de-inventarios/"><strong>Inventario</strong></a> (Costos de mantenimiento, costo de oportunidad)</li>
<li>Ruptura de inventario o faltantes</li>
</ul>

		</div>
	
<h3><em>Consideraciones comerciales y otros</em></h3>

		<div class="checklist tie-list-shortcode">
<ul>
<li>Tiempos y términos de entrega</li>
<li>Nivel de servicio</li>
<li>Curvas de aprendizaje</li>
<li>Tasas de producción</li>
</ul>

		</div>
	
<h3><em>Variables de decisión</em></h3>

		<div class="checklist tie-list-shortcode">
<ul>
<li>Nivel de fuerza laboral: interna y externa</li>
<li>Nivel de producción</li>
<li>Horas de trabajo: normales y extras</li>
<li>Niveles y políticas de inventario.</li>
</ul>

		</div>
	

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h2>Métodos heurísticos de planeación agregada</h2>
<p>Como es sabido, el principal objetivo de la planeación es la de equilibrar los requerimientos y los recursos de producción. La planeación agregada parte de un <strong><a href="https://ingenieriaindustrialonline.com/pronostico-de-la-demanda/que-es-el-pronostico-de-la-demanda/" target="" rel="noopener noreferrer">pronóstico</a></strong> (predicción del futuro de los requerimientos), y puede optar, teniendo en cuenta sus recursos, si actuar sobre la capacidad o la demanda para establecer dicho equilibrio.</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li><strong>Alternativas que actúan sobre la capacidad: </strong>Éstas alternativas, conocidas con el nombre de adaptativas buscan establecer acciones de ajuste para adaptar la capacidad a los comportamientos de la demanda. Éstas acciones pueden contemplar ajustar la fuerza de trabajo (contratar o despedir), variar la fuerza de trabajo (horario extra), implementar inventarios de previsión, subcontratar o acumular pedidos.</li>
<li><strong>Alternativas que actúan sobre la demanda: </strong>Éstas alternativas conocidas con el nombre de arbitrarias buscan establecer acciones comerciales para ajustar la demanda a la capacidad de la empresa.</li>
</ul>

		</div>
	
<p>Existen diversos métodos empleados en la creación de un plan agregado, entre los que se destacan la <a title="Planeación agregada mediante programación lineal" href="https://ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-industrial/producci%C3%B3n/planeacion-agregada-mediante-programacion-lineal/"><strong>programación lineal</strong></a>, reglas de decisión por búsqueda, programación por objetivos, programación dinámica, o métodos heurísticos (ensayo y error). En éste módulo estudiaremos algunos de los métodos heurísticos más utilizados, sin embargo vale la pena aclarar que existen tantos como las posibles combinaciones de ajustes que puedan realizarse sobre el sistema.</p>
<h3><em>Requerimientos de producción</em></h3>
<p>La primera etapa en la creación de un plan agregado consiste en la determinación de los requerimientos de producción. Dichos requerimientos se ven afectados básicamente por 3 factores:</p>

		<div class="checklist tie-list-shortcode">
<ul>
<li><strong><a title="Pronóstico de Ventas" href="https://ingenieriaindustrialonline.com/pronostico-de-la-demanda/que-es-el-pronostico-de-la-demanda/">Pronóstico de la demanda</a></strong></li>
<li>Inventario inicial de la unidad agregada</li>
<li>Inventario de seguridad</li>
</ul>

		</div>
	
<p><em>Por ejemplo:</em></p>
<p>Considerando que en una compañía se tiene la siguiente información (tabla) respecto a sus pronósticos e inventarios de seguridad requeridos por período, y que parte con un <strong>inventario inicial de 400 unidades</strong>.</p>
<table width="268" style="width: 100%; height: 265px;">
<tbody>
<tr style="height: 38px;">
<td width="108" style="text-align: center; height: 38px;"><strong>Período (meses)</strong></td>
<td width="80" style="text-align: center; height: 38px;"><strong>Pronóstico</strong></td>
<td width="80" style="text-align: center; height: 38px;"><strong>Inventario de seguridad</strong></td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">1</td>
<td style="text-align: center; height: 38px;">1800</td>
<td style="text-align: center; height: 38px;">450</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">2</td>
<td style="text-align: center; height: 38px;">1500</td>
<td style="text-align: center; height: 38px;">375</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">3</td>
<td style="text-align: center; height: 38px;">1100</td>
<td style="text-align: center; height: 38px;">275</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">4</td>
<td style="text-align: center; height: 38px;">900</td>
<td style="text-align: center; height: 38px;">225</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">5</td>
<td style="text-align: center; height: 38px;">1100</td>
<td style="text-align: center; height: 38px;">275</td>
</tr>
<tr style="height: 37px;">
<td style="text-align: center; height: 37px;">6</td>
<td style="text-align: center; height: 37px;">1600</td>
<td style="text-align: center; height: 37px;">400</td>
</tr>
</tbody>
</table>
<p><em>Los requerimientos de producción serán:</em></p>
<table width="536" style="width: 100%; height: 289px;">
<tbody>
<tr style="height: 62px;">
<td width="108" style="text-align: center; height: 62px;"><strong>Período (meses)</strong></td>
<td width="108" style="text-align: center; height: 62px;"><strong>Inventario inicial</strong></td>
<td width="80" style="text-align: center; height: 62px;"><strong>Pronóstico</strong></td>
<td width="80" style="text-align: center; height: 62px;"><strong>Inventario de seguridad</strong></td>
<td width="80" style="text-align: center; height: 62px;"><strong>Requerimiento de seguridad</strong></td>
<td width="80" style="text-align: center; height: 62px;"><strong>Inventario final</strong></td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">1</td>
<td style="text-align: center; height: 38px;">400</td>
<td style="text-align: center; height: 38px;">1800</td>
<td style="text-align: center; height: 38px;">450</td>
<td style="text-align: center; height: 38px;">1850</td>
<td style="text-align: center; height: 38px;">450</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">2</td>
<td style="text-align: center; height: 38px;">450</td>
<td style="text-align: center; height: 38px;">1500</td>
<td style="text-align: center; height: 38px;">375</td>
<td style="text-align: center; height: 38px;">1425</td>
<td style="text-align: center; height: 38px;">375</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">3</td>
<td style="text-align: center; height: 38px;">375</td>
<td style="text-align: center; height: 38px;">1100</td>
<td style="text-align: center; height: 38px;">275</td>
<td style="text-align: center; height: 38px;">1000</td>
<td style="text-align: center; height: 38px;">275</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">4</td>
<td style="text-align: center; height: 38px;">275</td>
<td style="text-align: center; height: 38px;">900</td>
<td style="text-align: center; height: 38px;">225</td>
<td style="text-align: center; height: 38px;">850</td>
<td style="text-align: center; height: 38px;">225</td>
</tr>
<tr style="height: 38px;">
<td style="text-align: center; height: 38px;">5</td>
<td style="text-align: center; height: 38px;">225</td>
<td style="text-align: center; height: 38px;">1100</td>
<td style="text-align: center; height: 38px;">275</td>
<td style="text-align: center; height: 38px;">1150</td>
<td style="text-align: center; height: 38px;">275</td>
</tr>
<tr style="height: 37px;">
<td style="text-align: center; height: 37px;">6</td>
<td style="text-align: center; height: 37px;">275</td>
<td style="text-align: center; height: 37px;">1600</td>
<td style="text-align: center; height: 37px;">400</td>
<td style="text-align: center; height: 37px;">1725</td>
<td style="text-align: center; height: 37px;">400</td>
</tr>
</tbody>
</table>
<p><em>El cálculo del requerimiento de cada período se efectúa según la siguiente ecuación:</em></p>
<figure class="cc-imagewrapper cc-m-image-align-3"><em><strong>Requerimiento de producción = Pronóstico + Inventario de seguridad &#8211; Inventario inicial</strong></em></figure>
<p>Una vez determinados los requerimientos de producción, se procede a elaborar el plan agregado.</p>
<h3><em>Caso de estudio</em></h3>
<blockquote class="aligncenter quote-simple "><p>Una compañía desea determinar su plan agregado de producción para los próximos 6 meses. Una vez utilizado el modelo de pronóstico más adecuado se establece el siguiente tabulado de requerimientos (no se cuenta con inventario inicial, y no se requiere de inventarios de seguridad).</p></blockquote>
<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="xl66" width="80" style="height: 15pt; width: 60pt; text-align: center;"><strong>Mes</strong></td>
<td class="xl66" width="80" style="width: 60pt; text-align: center;"><strong>Requerimientos</strong></td>
<td class="xl66" width="80" style="width: 60pt; text-align: center;"><strong>Días laborales</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">1</td>
<td class="xl65" style="text-align: center;">2500</td>
<td class="xl65" style="text-align: center;">22</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">2</td>
<td class="xl65" style="text-align: center;">1500</td>
<td class="xl65" style="text-align: center;">19</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">3</td>
<td class="xl65" style="text-align: center;">3000</td>
<td class="xl65" style="text-align: center;">21</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">4</td>
<td class="xl65" style="text-align: center;">1000</td>
<td class="xl65" style="text-align: center;">21</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">5</td>
<td class="xl65" style="text-align: center;">2500</td>
<td class="xl65" style="text-align: center;">22</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;">6</td>
<td class="xl65" style="text-align: center;">2200</td>
<td class="xl65" style="text-align: center;">20</td>
</tr>
</tbody>
</table>
<p><em><strong>Información del negocio:</strong></em></p>
<p><strong>Costo de contratar:</strong> $ 350 / trabajador</p>
<p><strong>Costo de despedir:</strong> $ 420 / trabajador</p>
<p><strong>Costo de tiempo normal (mano de obra):</strong> $ 6 / hora</p>
<p><strong>Costo de tiempo extra (mano de obra):</strong> $8 / hora</p>
<p><strong>Costo de mantenimiento de inventarios:</strong> $ 3 /tonelada &#8211; mes</p>
<p><strong>Costo de faltantes:</strong> $ 20 / tonelada &#8211; mes</p>
<p><strong>Costo de subcontratar:</strong> $ 50 / tonelada</p>
<p><strong>Tiempo de procesamiento:</strong> 5 horas / operario &#8211; tonelada</p>
<p><strong>Horas de trabajo: </strong>8 horas / día</p>
<p><strong>Número inicial de trabajadores:</strong> 20</p>
<p>Utilizaremos diferentes métodos heurísticos para determinar un Plan Agregado para éste caso.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h3>Plan agregado: Fuerza laboral variable</h3>
<p>En ésta estrategia se considera la posibilidad de ajustar la fuerza laboral para alinear perfectamente la demanda con la producción, mediante contrataciones y despidos, por ende, es vital realizar el más preciso cálculo del costo de contratar y despedir. En la práctica habrá que considerar la curva de aprendizaje de cada nuevo operario, por tal motivo es una estrategia que puede resultar inconveniente en tareas que requieran de cierto grado de especialización.</p>
<p>El primer paso para elaborar éste plan consiste en considerar cuál es la base laboral de la compañía (en nuestro ejemplo serán 0 trabajadores), luego se debe calcular el número de trabajadores requeridos por mes, teniendo en cuenta los requerimientos de producción. La ecuación que nos determina el número de trabajadores por mes es la siguiente:</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_0.png" alt="" width="409" height="46" class="size-full wp-image-35670 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_0.png 409w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_0-300x34.png 300w" sizes="(max-width: 409px) 100vw, 409px" /></figure>
<p><em>Por ejemplo, para el mes 1, el cálculo sería el siguiente:</em></p>
<p><strong>Número de trabajadores</strong> = (2500 ton * 5 h/ton) / (22 días * 8 h/día)</p>
<p><strong>Número de trabajadores</strong> = 71,02, aproximamos = 71</p>
<p>Dado que nuestra base laboral era de 20 trabajadores debemos contratar entonces 51 operarios. Dado que ésta estrategia busca alinear la demanda y la producción, asumimos que los 71 trabajadores producen sólo los requerimientos (sin inventarios, sin faltantes), por ende nuestro tiempo disponible será igual al tiempo requerido para satisfacer el requerimiento de cada mes:</p>
<p style="text-align: center;"><em><strong>Tiempo disponible = Requerimiento * Tiempo estándar</strong></em></p>
<p>Lo restante será efectuar los cálculos referentes a los costos de contratar, despedir y de tiempo normal. El siguiente tabulado mostrará el resultado de estos cálculos para todos los períodos.</p>
<table width="891">
<tbody>
<tr>
<td colspan="11" width="891" style="text-align: center;"><strong>Planeación de producción &#8211; Fuerza laboral variable</strong></td>
</tr>
<tr>
<td style="text-align: center;"><strong>Periodo</strong></td>
<td style="text-align: center;"><strong>Requerimiento de producción</strong></td>
<td style="text-align: center;"><strong>Tiempo requerido</strong></td>
<td style="text-align: center;"><strong>Días de trabajo</strong></td>
<td style="text-align: center;"><strong>Tiempo disponible/operario</strong></td>
<td style="text-align: center;"><strong>Nº de operarios</strong></td>
<td style="text-align: center;"><strong>Operarios a contratar</strong></td>
<td style="text-align: center;"><strong>Costo de contratación de operarios</strong></td>
<td style="text-align: center;"><strong>Operarios a despedir</strong></td>
<td style="text-align: center;"><strong>Costo de despido de operarios</strong></td>
<td style="text-align: center;"><strong>Costo de tiempo normal</strong></td>
</tr>
<tr>
<td style="text-align: center;">1</td>
<td style="text-align: center;">2500</td>
<td style="text-align: center;">12500</td>
<td style="text-align: center;">22</td>
<td style="text-align: center;">176</td>
<td style="text-align: center;">71</td>
<td style="text-align: center;">51</td>
<td style="text-align: center;"> $ 17.850</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;"> $ 75.000</td>
</tr>
<tr>
<td style="text-align: center;">2</td>
<td style="text-align: center;">1500</td>
<td style="text-align: center;">7500</td>
<td style="text-align: center;">19</td>
<td style="text-align: center;">152</td>
<td style="text-align: center;">49</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">22</td>
<td style="text-align: center;"> $ 9.240</td>
<td style="text-align: center;"> $ 45.000</td>
</tr>
<tr>
<td style="text-align: center;">3</td>
<td style="text-align: center;">3000</td>
<td style="text-align: center;">15000</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">168</td>
<td style="text-align: center;">89</td>
<td style="text-align: center;">40</td>
<td style="text-align: center;"> $ 14.000</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;"> $ 90.000</td>
</tr>
<tr>
<td style="text-align: center;">4</td>
<td style="text-align: center;">1000</td>
<td style="text-align: center;">5000</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">168</td>
<td style="text-align: center;">30</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">59</td>
<td style="text-align: center;"> $ 24.780</td>
<td style="text-align: center;"> $ 30.000</td>
</tr>
<tr>
<td style="text-align: center;">5</td>
<td style="text-align: center;">2500</td>
<td style="text-align: center;">12500</td>
<td style="text-align: center;">22</td>
<td style="text-align: center;">176</td>
<td style="text-align: center;">71</td>
<td style="text-align: center;">41</td>
<td style="text-align: center;"> $ 14.350</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;"> $ 75.000</td>
</tr>
<tr>
<td style="text-align: center;">6</td>
<td style="text-align: center;">2200</td>
<td style="text-align: center;">11000</td>
<td style="text-align: center;">20</td>
<td style="text-align: center;">160</td>
<td style="text-align: center;">69</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">2</td>
<td style="text-align: center;"> $ 840</td>
<td style="text-align: center;"> $ 66.000</td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong>Total</strong></td>
<td style="text-align: center;"><strong> $ 46.200</strong></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong> $ 34.860</strong></td>
<td style="text-align: center;"><strong> $ 381.000</strong></td>
</tr>
</tbody>
</table>
<p>El costo total del plan equivale a = <em><strong>$ 462.060</strong></em></p>
<p>Tenga en cuenta que en este caso no se consideran afectaciones a la productividad por concepto de curva de aprendizaje, y que es un factor que en la práctica se presenta.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h3>Plan agregado: Fuerza laboral constante &#8211; con inventarios y faltantes</h3>
<p>En ésta estrategia se considera la posibilidad de establecer una constante en cuanto al número de empleados, el cual permanecerá sin variación durante el desarrollo del plan. Evidentemente al ser el número de trabajadores constante y los requerimientos variables, existirán períodos en los que se produzca más o menos la cantidad demandada, la pregunta es ¿Qué hacer en dichos períodos? Existen muchas formas de abordar estos períodos, por ejemplo con horas extras, subcontratación etc. o simplemente manejar inventarios y faltantes. En éste caso utilizaremos inventarios y faltantes.</p>
<p>El primer paso consiste en determinar la base laboral, es decir, el número de trabajadores constante con que contaremos en nuestro plan.</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_2.png" alt="" width="419" height="84" class="size-full wp-image-35672 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_2.png 419w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_2-300x60.png 300w" sizes="(max-width: 419px) 100vw, 419px" /></figure>
<p><em>En nuestro ejemplo sería:</em></p>
<p><strong>Número de trabajadores</strong> = (12700 ton * 5 h/ton) / (125 días * 8 h/día)</p>
<p><strong>Número de trabajadores</strong> = 63,5</p>
<p><strong>Número de trabajadores</strong> = 64 (aproximando por exceso)</p>
<p>Dado que ésta estrategia no logra alinear la demanda con la producción de manera exacta, se hace necesario calcular el tiempo disponible y la producción real por cada período, habrá por ende períodos en los que se produzca más, o menos, respecto a la cantidad demandada.</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_3.png" alt="" width="475" height="41" class="size-full wp-image-35673 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_3.png 475w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_3-300x26.png 300w" sizes="(max-width: 475px) 100vw, 475px" /></figure>
<p><em>Para el primer período de nuestro ejemplo sería:</em></p>
<p><strong>Tiempo disponible</strong> = 22 días * 8 h/día * 64 trabajadores</p>
<p><strong>Tiempo disponible</strong> = 11264 horas</p>
<p><em>Dado que conocemos el tiempo estándar de procesamiento, podemos calcular la producción real de éste mes:</em></p>
<p><strong>Producción real</strong> = (11264 h) / (5 h / ton)</p>
<p><strong>Producción real</strong> = 2252,8 ton</p>
<p>El paso siguiente consiste en determinar el inventario final o los faltantes, para ello el cálculo se efectúa según el cumplimiento de la siguiente condición:</p>
<p><strong>Sí (inventario inicial  + Producción real) &gt; Requerimientos de producción, tendremos inventario final que será igual a:</strong></p>
<p style="text-align: center;"><em>Inventario final = Inventario inicial + Producción Real &#8211; Requerimientos</em></p>
<p><strong>Sí (inventario inicial  + Producción real) &lt; Requerimientos de producción, tendremos faltantes que serán iguales a:</strong><strong> </strong></p>
<p style="text-align: center;"><em>Unidades Faltantes = Requerimientos &#8211; Inventario inicial &#8211; Producción Real</em></p>
<p>En nuestro ejemplo, para el primer mes se calcularía así:</p>
<p>((Inv Inicial = 0) + (Producción Real = 2252,8)) &lt; (Requerimiento = 2500)</p>
<p>Unidades Faltantes = 2500 &#8211; 2252,8 &#8211; 0</p>
<p>Unidades Faltantes = 247,2 ton</p>
<p>Lo restante será efectuar los cálculos referentes a los costos de almacenar, costos de unidades faltantes y costo de tiempo normal. Vale la pena recordar que en éste plan agregado el inventario inicial de cada período corresponde al inventario final del período inmediatamente anterior.</p>
<table width="971">
<tbody>
<tr>
<td colspan="12" width="971" style="text-align: center;"><strong>Planeación de producción &#8211; Fuerza laboral constante</strong></td>
</tr>
<tr>
<td style="text-align: center;"><strong>Periodo</strong></td>
<td style="text-align: center;"><strong>Inventario inicial</strong></td>
<td style="text-align: center;"><strong>Días de trabajo</strong></td>
<td style="text-align: center;"><strong>Tiempo disponible</strong></td>
<td style="text-align: center;"><strong>Producción real</strong></td>
<td style="text-align: center;"><strong>Requerimientos</strong></td>
<td style="text-align: center;"><strong>Inventario final</strong></td>
<td style="text-align: center;"><strong>Nº de unidades faltantes</strong></td>
<td style="text-align: center;"><strong>Costo de unidades faltantes</strong></td>
<td style="text-align: center;"><strong>Nº de unidades sobrantes</strong></td>
<td style="text-align: center;"><strong>Costo de almacenar</strong></td>
<td style="text-align: center;"><strong>Costo de tiempo normal</strong></td>
</tr>
<tr>
<td style="text-align: center;">1</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">22</td>
<td style="text-align: center;">11264</td>
<td style="text-align: center;">2252,8</td>
<td style="text-align: center;">2500</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">247,2</td>
<td style="text-align: center;"> $  4.944</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;"> $ 67.584</td>
</tr>
<tr>
<td style="text-align: center;">2</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">19</td>
<td style="text-align: center;">9728</td>
<td style="text-align: center;">1945,6</td>
<td style="text-align: center;">1500</td>
<td style="text-align: center;">446</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">446</td>
<td style="text-align: center;"> $ 1.338</td>
<td style="text-align: center;"> $ 58.368</td>
</tr>
<tr>
<td style="text-align: center;">3</td>
<td style="text-align: center;">446</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">10752</td>
<td style="text-align: center;">2150,4</td>
<td style="text-align: center;">3000</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">403,6</td>
<td style="text-align: center;"> $ 8.072</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;"> $ 64.512</td>
</tr>
<tr>
<td style="text-align: center;">4</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;">21</td>
<td style="text-align: center;">10752</td>
<td style="text-align: center;">2150,4</td>
<td style="text-align: center;">1000</td>
<td style="text-align: center;">1151</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">1151</td>
<td style="text-align: center;"> $ 3.453</td>
<td style="text-align: center;"> $ 64.512</td>
</tr>
<tr>
<td style="text-align: center;">5</td>
<td style="text-align: center;">1151</td>
<td style="text-align: center;">22</td>
<td style="text-align: center;">11264</td>
<td style="text-align: center;">2252,8</td>
<td style="text-align: center;">2500</td>
<td style="text-align: center;">904</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">904</td>
<td style="text-align: center;"> $ 2.712</td>
<td style="text-align: center;"> $ 67.584</td>
</tr>
<tr>
<td style="text-align: center;">6</td>
<td style="text-align: center;">904</td>
<td style="text-align: center;">20</td>
<td style="text-align: center;">10240</td>
<td style="text-align: center;">2048</td>
<td style="text-align: center;">2200</td>
<td style="text-align: center;">752</td>
<td style="text-align: center;">0</td>
<td style="text-align: center;"> $ &#8211;</td>
<td style="text-align: center;">752</td>
<td style="text-align: center;"> $ 2.256</td>
<td style="text-align: center;"> $ 61.440</td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong>Totales</strong></td>
<td style="text-align: center;"><strong> $ 13.016</strong></td>
<td style="text-align: center;"><strong> </strong></td>
<td style="text-align: center;"><strong> $ 9.759</strong></td>
<td style="text-align: center;"><strong> $ 384.000</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Es necesario considerar que el número inicial de trabajadores para nuestro ejemplo es igual a 20; de manera que para ajustar el plan a un número constante de operarios, es preciso que en el primer período se contraten 44 operarios, así entonces, el plan se llevará a cabo con el número constante de 64 operarios. Así mismo, el costo de contratar dicha cantidad debe considerarse en el costo total del plan.</p>
<p>Costo del plan (Faltantes + Inventario + Tiempo normal) = $ 406.775.</p>
<p>Costo de contratación inicial = $ 15.400</p>
<p>Costo total del plan equivale a = <em><strong>$ 422.775</strong></em></p>
<p>Tenga en cuenta que en este caso no se consideran afectaciones a la productividad por concepto de curva de aprendizaje, y que es un factor que en la práctica se presenta.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h3 id="cc-m-header-5714360313" class="">Plan agregado: Fuerza laboral mínima &#8211; Con subcontratación</h3>
<p>La estrategia de fuerza laboral mínima es un plan tipo adaptativo, que considera ajustar la fuerza laboral a la mínima demanda de los requerimientos de producción. Esto tiene dos implicaciones, la primera que no existirá inventario, y la segunda que la fuerza laboral no podrá cubrir todos los requerimientos, en éste caso se debe considerar un ajuste ya sea sobre la capacidad o sobre la demanda. Una de las medidas de ajuste sobre la capacidad es considerar la posibilidad de subcontratar, tal como lo apreciaremos en éste ejemplo.</p>
<p>El primer paso consiste en determinar la fuerza laboral mínima, es decir, el número constante de trabajadores con que contaremos en nuestro plan:</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_4.png" alt="" width="498" height="79" class="size-full wp-image-35674 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_4.png 498w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_4-300x48.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure>
<p><em>En nuestro ejemplo sería:</em></p>
<p>Número de trabajadores = (1000 ton * 5 h/ton * 6) / (125 días * 8 h/día)</p>
<p>Número mínimo de trabajadores = 30</p>
<p>Dado que ésta estrategia no logra alinear la demanda con la producción de manera exacta, se hace necesario calcular el tiempo disponible y la producción real por cada período, dado que se trabaja con la fuerza laboral mínima habrá períodos en los que se produzca menos respecto a la cantidad demandada.</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_5.png" alt="" width="476" height="37" class="size-full wp-image-35675 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_5.png 476w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_5-300x23.png 300w" sizes="(max-width: 476px) 100vw, 476px" /></figure>
<p><em>Para el primer período de nuestro ejemplo sería:</em></p>
<p>Tiempo disponible = 22 días * 8 h/día * 30 trabajadores</p>
<p>Tiempo disponible = 5280 horas</p>
<p><em>Dado que conocemos el tiempo estándar de procesamiento, podemos calcular la producción real de éste mes:</em></p>
<p>Producción real = (5280 h) / (5 h / ton)</p>
<p>Producción real = 1056 ton</p>
<p><em>El siguiente paso consiste en determinar las unidades faltantes, en éste caso unidades a subcontratar:</em></p>
<p style="text-align: center;">Unidades Faltantes (Subcontratar) = Requerimientos  &#8211; Producción Real</p>
<p><em>En nuestro ejemplo para el primer período se calcularía así:</em></p>
<p>Unidades a subcontratar = 2500 &#8211; 1056</p>
<p>Unidades a subcontratar = 1444</p>
<p>Lo restante será efectuar los costos asociados a la subcontratación, y los costos de tiempo normal. Vale la pena recordar que en éste tipo de estrategias no se manejan inventarios.</p>
<table border="0" cellpadding="0" cellspacing="0" width="640" style="border-collapse: collapse; width: 480pt;">
<tbody>
<tr height="20" style="height: 15.0pt;">
<td colspan="8" height="20" class="xl67" width="640" style="height: 15pt; width: 480pt; text-align: center;"><strong>Planeación de producción &#8211; Fuerza laboral mínima con subcontratación</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;"><strong>Periodo</strong></td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;"><strong>Requerimientos</strong></td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;"><strong>Días de trabajo</strong></td>
<td class="xl65" style="text-align: center;"><strong>Tiempo disponible</strong></td>
<td class="xl65" style="text-align: center;"><strong>Producción real</strong></td>
<td class="xl65" style="text-align: center;"><strong>Unidades a subcontratar</strong></td>
<td class="xl65" style="text-align: center;"><strong>Costo de subcontratación</strong></td>
<td class="xl65" style="text-align: center;"><strong>Costo de tiempo normal</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">1</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">2500</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">22</td>
<td class="xl65" style="text-align: center;">5280</td>
<td class="xl65" style="text-align: center;">1056</td>
<td class="xl65" style="text-align: center;">1444</td>
<td class="xl65" style="text-align: center;">72200</td>
<td class="xl65" style="text-align: center;">31680</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">2</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">1500</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">19</td>
<td class="xl65" style="text-align: center;">4560</td>
<td class="xl65" style="text-align: center;">912</td>
<td class="xl65" style="text-align: center;">588</td>
<td class="xl65" style="text-align: center;">29400</td>
<td class="xl65" style="text-align: center;">27360</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">3</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">3000</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">21</td>
<td class="xl65" style="text-align: center;">5040</td>
<td class="xl65" style="text-align: center;">1008</td>
<td class="xl65" style="text-align: center;">1992</td>
<td class="xl65" style="text-align: center;">99600</td>
<td class="xl65" style="text-align: center;">30240</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">4</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">1000</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">21</td>
<td class="xl65" style="text-align: center;">5040</td>
<td class="xl65" style="text-align: center;">1008</td>
<td class="xl65" style="text-align: center;">0</td>
<td class="xl65" style="text-align: center;">0</td>
<td class="xl65" style="text-align: center;">30240</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">5</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">2500</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">22</td>
<td class="xl65" style="text-align: center;">5280</td>
<td class="xl65" style="text-align: center;">1056</td>
<td class="xl65" style="text-align: center;">1444</td>
<td class="xl65" style="text-align: center;">72200</td>
<td class="xl65" style="text-align: center;">31680</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl66" style="height: 15pt; border-top: none; text-align: center;">6</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">2200</td>
<td class="xl66" style="border-top: none; border-left: none; text-align: center;">20</td>
<td class="xl65" style="text-align: center;">4800</td>
<td class="xl65" style="text-align: center;">960</td>
<td class="xl65" style="text-align: center;">1240</td>
<td class="xl65" style="text-align: center;">62000</td>
<td class="xl65" style="text-align: center;">28800</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;"></td>
<td class="xl65" style="text-align: center;"></td>
<td class="xl65" style="text-align: center;"></td>
<td class="xl65" style="text-align: center;"></td>
<td class="xl65" style="text-align: center;"></td>
<td class="xl65" style="text-align: center;"><strong>Totales</strong></td>
<td class="xl65" style="text-align: center;"><strong>335400</strong></td>
<td class="xl65" style="text-align: center;"><strong>180000</strong></td>
</tr>
</tbody>
</table>
<p>Es necesario considerar que el número inicial de trabajadores para nuestro ejemplo es igual a 20; de manera que para ajustar el plan a un número constante de operarios, es preciso que en el primer período se contraten 10 operarios, así entonces, el plan se llevará a cabo con el número mínimo y constante de 30 operarios. Así mismo, el costo de contratar dicha cantidad debe considerarse en el costo total del plan.</p>
<p>Costo del plan (Subcontratación y tiempo normal) = $ 515.400</p>
<p>Costo de contratación inicial = $ 3.500</p>
<p>El costo total del plan equivale a = <em><strong>$ 518.900</strong></em></p>
<p>Tenga en cuenta que en este ejemplo no existen restricciones desde el punto de vista de la capacidad de los proveedores de subcontratación, limitaciones que se abordarán por medio de programación lineal mixta.</p>

		<div class="clearfix"></div>
		<hr style="margin-top:20px; margin-bottom:20px;" class="divider divider-solid">
	
<h3 id="cc-m-header-5714362313" class="">Plan agregado: Fuerza laboral promedio &#8211; Horas extras</h3>
<p>La estrategia de fuerza laboral promedio es un plan adaptativo que considera manejar un número medio de operarios y por consiguiente se asume como ínsito el hecho de que habrá períodos en los que se produzca más o menos la cantidad demandada. Una de las medidas de ajuste sobre la capacidad es considerar la posibilidad de cubrir las unidades faltantes produciendo en horario extemporáneo (horas extras).</p>
<p>El primer paso consiste en calcular el número promedio de trabajadores, y aunque éste corresponde al cálculo de un método heurístico varios expertos coinciden en la siguiente formulación, que implica efectuar los cálculos de las estrategias vistas anteriormente:</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_6.png" alt="" width="531" height="69" class="size-full wp-image-35676 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_6.png 531w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_6-300x39.png 300w" sizes="(max-width: 531px) 100vw, 531px" /></figure>
<p><em>En nuestro ejemplo sería:</em></p>
<p>Número de trabajadores = [(20 + 64 + 30) / 3] &#8211; 1</p>
<p>Número de trabajadores = 37</p>
<p>Dado que ésta estrategia no logra alinear la demanda con la producción de manera exacta, se hace necesario calcular el tiempo disponible y la producción real por cada período, habrá por ende períodos en los que se produzca más o menos respecto a la cantidad demandada.</p>
<figure class="cc-imagewrapper cc-m-image-align-3"><img decoding="async" src="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_7.png" alt="" width="474" height="34" class="size-full wp-image-35677 aligncenter" srcset="https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_7.png 474w, https://ingenieriaindustrialonline.com/wp-content/uploads/2019/06/plan_agregado_7-300x22.png 300w" sizes="(max-width: 474px) 100vw, 474px" /></figure>
<p><em>Para el primer período de nuestro ejemplo sería:</em></p>
<p>Tiempo disponible = 22 días * 8 h/día * 37 trabajadores</p>
<p>Tiempo disponible = 6512 horas</p>
<p><em>Dado que conocemos el tiempo estándar de procesamiento, podemos calcular la producción real de éste mes:</em></p>
<p>Producción real = (6512 h) / (5 h / ton)</p>
<p>Producción real = 1302 ton</p>
<p>El paso siguiente consiste en determinar el inventario final o los faltantes, para ello el cálculo se efectúa según el cumplimiento de la siguiente condición:</p>
<p><strong>Sí (inventario inicial  + Producción real) &gt; Requerimientos de producción, tendremos inventario final que será igual a:</strong></p>
<p style="text-align: center;">Inventario final = Inventario inicial + Producción Real &#8211; Requerimientos</p>
<p><strong>Sí (inventario inicial  + Producción real) &lt; Requerimientos de producción, tendremos faltantes que serán iguales a:</strong></p>
<p style="text-align: center;">Unidades Faltantes = Requerimientos &#8211; Inventario inicial &#8211; Producción Real</p>
<p><em>En nuestro ejemplo, para el primer mes se calcularía así:</em></p>
<p>((Inv Inicial = 0) + (Producción Real = 1302)) &lt; (Requerimiento = 2500)</p>
<p>Unidades Faltantes = 2500 &#8211; 1302 &#8211; 0</p>
<p>Unidades Faltantes (Producir con extras) = 1198 ton</p>
<p>Lo restante será efectuar los cálculos referentes a los costos de almacenar, costos de horas extras y costo de tiempo normal. Vale la pena recordar que en éste plan agregado el inventario inicial de cada período corresponde al inventario final del período inmediatamente anterior.</p>
<table border="0" cellpadding="0" cellspacing="0" width="960" style="border-collapse: collapse; width: 720pt;">
<tbody>
<tr height="20" style="height: 15.0pt;">
<td colspan="12" height="20" class="xl68" width="960" style="height: 15pt; width: 720pt; text-align: center;"><strong>Planeación de producción &#8211; Fuerza laboral mínima con horas extras</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; text-align: center;"><strong>Periodo</strong></td>
<td class="xl65" style="border-left: none; text-align: center;"><strong>Inventario inicial</strong></td>
<td class="xl65" style="border-left: none; text-align: center;"><strong>Días de trabajo</strong></td>
<td class="xl66" style="text-align: center;"><strong>Tiempo disponible</strong></td>
<td class="xl65" style="text-align: center;"><strong>Producción real</strong></td>
<td class="xl65" style="border-left: none; text-align: center;"><strong>Requerimientos</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Inventario final</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Unidades a programar en tiempo extra</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Costo horas extras</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Unidades sobrantes</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Costo de almacenamiento</strong></td>
<td class="xl67" style="border-left: none; text-align: center;"><strong>Costo de tiempo normal</strong></td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">1</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">0</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">22</td>
<td class="xl66" style="text-align: center;">6512</td>
<td class="xl65" style="border-top: none; text-align: center;">1302</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">2500</td>
<td class="xl67" style="border-left: none; text-align: center;">0</td>
<td class="xl67" style="border-left: none; text-align: center;">1198</td>
<td class="xl67" style="border-left: none; text-align: center;">47920</td>
<td class="xl68" style="border-left: none; text-align: center;">0</td>
<td class="xl68" style="text-align: center;">0</td>
<td class="xl68" style="text-align: center;">39072</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">2</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">0</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">19</td>
<td class="xl66" style="text-align: center;">5624</td>
<td class="xl65" style="border-top: none; text-align: center;">1124</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">1500</td>
<td class="xl67" style="border-left: none; text-align: center;">0</td>
<td class="xl67" style="border-left: none; text-align: center;">376</td>
<td class="xl67" style="border-left: none; text-align: center;">15040</td>
<td class="xl68" style="border-left: none; text-align: center;">0</td>
<td class="xl68" style="text-align: center;">0</td>
<td class="xl68" style="text-align: center;">33744</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">3</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">0</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">21</td>
<td class="xl66" style="text-align: center;">6216</td>
<td class="xl65" style="border-top: none; text-align: center;">1243</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">3000</td>
<td class="xl67" style="border-left: none; text-align: center;">0</td>
<td class="xl67" style="border-left: none; text-align: center;">1757</td>
<td class="xl67" style="border-left: none; text-align: center;">70280</td>
<td class="xl68" style="border-left: none; text-align: center;">0</td>
<td class="xl68" style="text-align: center;">0</td>
<td class="xl68" style="text-align: center;">37296</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">4</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">0</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">21</td>
<td class="xl66" style="text-align: center;">6216</td>
<td class="xl65" style="border-top: none; text-align: center;">1243</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">1000</td>
<td class="xl66" style="text-align: center;">243</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">243</td>
<td class="xl66" style="text-align: center;">729</td>
<td class="xl66" style="text-align: center;">37296</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">5</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">243</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">22</td>
<td class="xl66" style="text-align: center;">6512</td>
<td class="xl65" style="border-top: none; text-align: center;">1302</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">2500</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">955</td>
<td class="xl66" style="text-align: center;">38200</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">39072</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" class="xl65" style="height: 15pt; border-top: none; text-align: center;">6</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">0</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">20</td>
<td class="xl66" style="text-align: center;">5920</td>
<td class="xl65" style="border-top: none; text-align: center;">1184</td>
<td class="xl65" style="border-top: none; border-left: none; text-align: center;">2200</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">1016</td>
<td class="xl66" style="text-align: center;">40640</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">0</td>
<td class="xl66" style="text-align: center;">35520</td>
</tr>
<tr height="20" style="height: 15.0pt;">
<td height="20" style="height: 15.0pt;"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><strong>Totales</strong></td>
<td align="right"><strong>212080</strong></td>
<td></td>
<td align="right" style="text-align: center;"><strong>729</strong></td>
<td align="right"><strong>222000</strong></td>
</tr>
</tbody>
</table>
<p>Es necesario considerar que el número inicial de trabajadores para nuestro ejemplo es igual a 20; de manera que para ajustar el plan a un número constante de operarios, es preciso que en el primer período se contraten 17 operarios, así entonces, el plan se llevará a cabo con el número mínimo y constante de 37 operarios. Así mismo, el costo de contratar dicha cantidad debe considerarse en el costo total del plan.</p>
<p>Costo del plan (Horas extras + Inventario + Tiempo normal) = $ 434.809.</p>
<p>Costo de contratación inicial = $ 5.950</p>
<p><strong>El costo total del plan es = $440.759+</strong></p>

		<div class="box info  ">
			<div class="box-inner-block">
				<span class="fa tie-shortcode-boxicon"></span>Ver: <a href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada-mediante-programacion-lineal/">Planeación Agregada mediante programación Lineal</a> 
			</div>
		</div>
	
<p>La entrada <a href="https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/">Planeación agregada</a> se publicó primero en <a href="https://ingenieriaindustrialonline.com">Ingenieria Industrial Online</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ingenieriaindustrialonline.com/produccion/planeacion-agregada/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>
