diseño y contrucción de herramienta de simulación para la toma de

Anuncio
PROFESOR PATROCINANTE: OSCAR ROMERO AYALA
ING. CIVIL INDUSTRIAL
ESCUELA DE INGENIERÍA CIVIL INDUSTRIAL
DISEÑO Y CONTRUCCIÓN DE HERRAMIENTA DE SIMULACIÓN PARA
LA TOMA DE DECISIONES EN GESTIÓN DE ALMACENAJE EN FRIO
EN PLANTAS DE PROCESO DE MITILIDOS
Trabajo de Titulación
para optar
al título de Ingeniero Civil Industrial
CONSTANZA IRASSI RYKS ASPÉE
PUERTO MONTT – CHILE
2011
ii
DEDICATORIA
Dedicada a Carmen Gloria Aspée Bocaz, mi mejor amiga, compañera y madre con todas sus letras, la
mujer que toda la vida me ha apoyado incondicionalmente, me ha servido y me ha enseñado que en la
vida todo se puede superar y alcanzar, con amor y voluntad.
Fuiste siempre mi trampolín en la vida, ahora yo seré tu bastón… te amo.
iii
AGRADECIMIENTOS
Se agradece a la Universidad Austral de Chile, Sede Puerto Montt y a todos los docentes de la carrera de
Ingeniería Civil Industrial: Alexia Quiroz, César Pino, Gabriela Manoli, Alex Cisterna y Oscar Romero por
el apoyo y ayuda incondicional para el desarrollo de esta tesis, y en especial a Jéssica Elizabeth Bull
Torres, quien, me acompañó en cada etapa de desarrollo y que no solo fue una excelente profesional de
apoyo, sino que fue una amiga comprensiva, paciente y una excelente mentora en el desarrollo de este
proyecto de título.
También se agradece el aporte de José Miguel Sánchez Quiero, Ingeniero Civil Industrial con
conocimientos en mitilicultura y jefe del departamento de ingeniería de una empresa del rubro (que por
confidencialidad no es nombrada), quien confío y ayudó con su conocimiento y buena disposición para el
procesamiento de datos y de información.
Al profesor Francisco Cala, que me ayudó a plantear el algoritmo de programación dinámica a una forma
sencilla de entender para poder pasarlo más tarde al lenguaje de Simulación.
A Rodrigo Andrés Hernández Lavín, un gran amigo y compañero de carrera, cuyo apoyo fue
imprescindible para el desarrollo y traspaso del algoritmo de programación dinámica al lenguaje de
simulación en Flexsim. Sin duda, fuiste un aporte fundamental en cada etapa de este proyecto de titulo,
se que te espera un gran futuro, tanto en lo personal como en lo profesional, a ti: infinitas gracias.
A la familia Cerda Zapata, que me acogió incontables veces como parte de su familia cuando viajaba a
hacer revisiones a Puerto Montt y no tenía donde quedarme y me brindaron apoyo y cariño siempre.
A mi padre Hugo Walter Ryks Rutherford que ha sido un gran amigo y apoyo con sus conocimientos en el
área mitilicultora y salmonera.
A mi abuela Haydée Bocaz Estay, que con su ternura, paciencia y disponibilidad incondicional me daba
tranquilidad y paz para que yo trabajara sin problemas.
También debo agradecer a mis dos mejores amigos: Erika Vanesa Muñoz Pérez y Roberto Sebastián
Cerda Zapata que siempre estuvieron conmigo cuando sentía que no tenía fuerzas para seguir en algún
momento de mi vida, me apoyaron y muchas veces me empujaron para poder seguir y salir adelante.
Por último, a la gran mujer de mi vida: mi madre Carmen Gloria Aspée Bocaz, que siempre ha sido mi
ejemplo a seguir, me ha apoyado en todas mis decisiones y me ha hecho sentir la hija más afortunada
del mundo. A ella le debo mi vida y mis logros.
iv
RESUMEN
El objetivo de este proyecto de título fue diseñar y construir una herramienta de apoyo a la toma de
decisiones relacionadas con gestión de almacenaje en frio, aplicadas en este caso a las empresas
mitilicultoras. Estas empresas tienen épocas durante el año donde sus cosechas dan mejor rendimiento
(en cuanto a cantidad y calidad) por lo que hacen el esfuerzo de procesar en planta toda la cosecha que
puedan durante esos períodos, sin tomar en cuenta la demanda inmediata.
La decisión de procesar de esta manera se basa en la disminución de los costos de proceso por
economías de escala (el procesar grandes cantidades disminuye los costos unitarios), pero trae consigo
la necesidad de almacenar en frigoríficos el producto semi-terminado en espera de ser vendido.
Esta naturaleza del proceso, impulsa a las empresas a tener que almacenar en frigoríficos externos parte
del producto procesado por no tener la capacidad suficiente en sus frigoríficos internos. El conocimiento
de cuanto producir en relación a lo que se demanda es muy incierto así como los costos globales
involucrados. Por otro lado, tampoco se maneja con exactitud hacia qué frigorífico enviar la producción de
manera tal que los costos sean mínimos.
Por esta razón, se propuso una nueva metodología, que une dos herramientas relacionadas con el
estudio de procesos, integrando programación dinámica determinística en la metodología para estudios
de simulación planteada por Jerry Banks. Las características de esta unión, hicieron que parte de los
pasos de la Metodología de Simulación de Jerry Banks fueran adaptados, de manera que la Verificación
y Validación fueran unidas y las Corridas de producción se eliminarán al no resultar un modelo basado en
tendencias probabilísticas, que es la característica necesaria para realizar las Corridas de producción.
La aplicación de ésta metodología se tradujo a dos modelos, ambos pueden ser intervenidos por el
usuario para modificar las variables de entrada de manera que se puedan conocer resultados diferentes
dependiendo de los escenarios planteados.
El Modelo Genérico tiene de base 4 frigoríficos, cada uno con sus respectivos costos de transporte y
almacenamiento.
El Modelo Específico tiene de base dos frigoríficos: uno interno y otro externo, cada uno también con sus
respectivos costos, planteando dos escenarios relevantes: el primero con la situación actual de capacidad
limitada de almacenamiento interno, y el segundo sin necesidad de almacenar externamente, llegando a
una visión de gastos globales por concepto logístico importante gracias a la comparación de costos
obtenidos al final de la simulación de ambos escenarios.
La relevancia de este estudio radica en que, a pesar de que un modelo de simulación no entrega siempre
los mejores resultados, sino mas bien muestra el comportamiento frente a escenarios de prueba elegidos
por el usuario, la unión de las dos herramientas mencionadas anteriormente permite que cada vez que se
modifiquen las variables de entrada del modelo, las respuestas al final de la simulación entregan los
mejores resultados, llamados “óptimos” debido a que se generan por el hecho de haber integrado un
Algoritmo de programación dinámica a la programación del software Flexsim.
v
ABSTRACT
The aim of this project of degree was to design and build a decision support tool related to cold storage
management, in this case applied to a mussel farmers companies. These companies have periods over
the year in wish ones the crops has a better performance (in terms of quantity and quality) so they
make the effort to process the whole crop on the plant as possible during those periods, without taking
into account the immediate demand.
The decision to proceed in this way is based in the need to reduce the processing costs through
economies of scale (process large quantities reduces unit costs), but brings with it the need storage for
semi-finished product until it is sold.
The nature of the process encourages companies to use external refrigerators to store part of
the processed product by not having enough internal capacity. The Know How about how much to
produce in relation to what is required is very uncertain as well as the costs involved. By other hand, the
way of the production across the refrigerators for minimal costs is not known with accuracy.
Therefore, it is proposed a new methodology that joins two related tools to the study of
processes, integrating deterministic dynamic programming to a methodology for modeling
studies by Jerry Banks. The characteristics of this union made of a modification of the steps of
the Simulation Methodology by Jerry Banks: “verification” and “validation” were united, and “production
runs” are removed because we are not developing a probabilistic model wish one is a necessary
characteristic for “production runs”.
The application of this methodology led to two models, both can be operated by the user to modify the
input variables so they can know different results depending on the proposed scenarios.
The generic model has four refrigerators as a base, with their respective transport and storage costs.
The specific model has two refrigerators: one internal and one external, each one with their respective
costs, presenting two relevant scenarios: the first with the current limited capacity of internal
storage, and the second without need for external storage, reaching a vision of global logistic costs
by comparison obtained at the end of the simulation of both scenarios.
The relevance of this study is that, although a model simulation does not deliver the best results, but
shows the performance against testing scenarios chosen by the user, the union of this two tools
mentioned above allows to get the best result called “optimal” every time the user modify the input
variables of the model by the integration of dynamic programming algorithms to the modeling software
Flexsim.
vi
INDICE
DEDICATORIA ........................................................................................................................................ ii
AGRADECIMIENTOS ............................................................................................................................. iii
RESUMEN.............................................................................................................................................. iv
ABSTRACT ............................................................................................................................................. v
GLOSARIO............................................................................................................................................. vi
1. ANTECEDENTES GENERALES ......................................................................................................... 1
1.1 INTRODUCCIÓN ........................................................................................................................... 1
1.2 OBJETIVOS................................................................................................................................. 2
1.3 DESCRIPCION DEL ÁREA.......................................................................................................... 2
1.4 PLANTEAMIENTO DEL PROBLEMA .......................................................................................... 3
2. MARCO TEORICO ............................................................................................................................ 5
2.1. Logística .................................................................................................................................... 5
2.2. Eficiencia ................................................................................................................................... 5
2.3. Oferta y Demanda ...................................................................................................................... 6
2.3.1. Características de la Demanda .............................................................................................. 6
2.4 Inventarios o Stock .................................................................................................................... 7
2.5. Almacén ..................................................................................................................................... 8
2.6 Gestión de Almacenes. .............................................................................................................. 8
2.6.1 Sistema de gestión del almacén. ........................................................................................ 9
2.7 Manejo De Materiales ................................................................................................................. 9
2.8. Programación dinámica. ........................................................................................................... 10
2.9 Simulación de Procesos. ........................................................................................................... 13
2.9.1 Sistema ................................................................................................................................ 13
2.9.2 Modelo.................................................................................................................................. 13
2.9.3 Simulación ........................................................................................................................... 13
2.9.4 Áreas de aplicación de la Simulación ................................................................................. 14
2.9.5 Programas y Lenguajes de Simulación .............................................................................. 14
2.9.6 Ventajas y Desventajas de Simulación (TORRES, A. 2009) ............................................... 15
2.9.7 Peligros y problemas en Simulación .................................................................................. 16
2.9.8 Software de Simulación Flexsim......................................................................................... 16
2.9.9 Terminología del Software Flexsim .................................................................................... 16
2.9.10 Metodología de simulación ............................................................................................... 17
2.10 Técnicas de Prueba de Software ............................................................................................. 19
2.10.1 Pruebas de Caja Negra ...................................................................................................... 20
2.10.2 Pruebas de Caja Blanca .................................................................................................... 21
vii
3. METODOLOGÍA ................................................................................................................................ 22
4. APLICACIÓN DE LA METODOLOGÍA .............................................................................................. 24
4.1 Identificación del Problema ....................................................................................................... 24
4.2 Planteamiento de Objetivos ....................................................................................................... 25
4.3 Modelo de Conceptualización.................................................................................................... 26
4.4. Recopilación de datos............................................................................................................... 27
4.4.1 Estandarización de datos y supuestos............................................................................... 28
4.5. Diseño de algoritmo en programación dinámica ..................................................................... 28
4.5.1 Desarrollo del algoritmo ...................................................................................................... 28
4.6 Traducción a Modelo .................................................................................................................. 35
4.6.1 Modelo Genérico.................................................................................................................. 35
4.6.2 Modelo Específico ............................................................................................................... 42
4.7 Verificación y Validación: .......................................................................................................... 43
4.8 Diseño Experimental, Análisis y Documentación ..................................................................... 56
4.8.1 Datos Generales ingresados al modelo.............................................................................. 56
4.8.2 Escenario 1: Situación actual. ............................................................................................ 58
4.8.3 Escenario 2: Situación con Frigorífico de mayor capacidad. ............................................ 61
4.7.4 Comparación de Escenarios ............................................................................................... 63
4.8 Implementación .......................................................................................................................... 64
5. RESULTADOS .................................................................................................................................. 65
5.1 Acerca de lo Objetivos Específicos de la Investigación ........................................................... 65
5.2 Acerca de los Objetivos del Proyecto de Simulación ............................................................... 65
6. CONCLUSIONES .............................................................................................................................. 67
7. RECOMENDACIONES ...................................................................................................................... 68
8. BIBLIOGRAFIA ................................................................................................................................. 69
9. LINKOGRAFIA .................................................................................................................................. 70
10. ANEXOS.......................................................................................................................................... 72
viii
GLOSARIO
Mejillón:
Moluscos bivalvo filtrador que vive fijado al sustrato, exclusivamente marino y
vive tanto en zonas intermareales como zonas sumergidas de las costas de
todo el mundo.
Mitilicultura:
Cultivo de los moluscos del género Mytilus, para su explotación económica.
Recursividad:
Técnica de programación muy potente que puede ser usada en lugar de la
iteración. Se utiliza para realizar una llamada a una función desde la misma
función.
Iteración:
La recursividad y la iteración (ejecución en bucle) están muy relacionadas,
cualquier acción que pueda realizarse con la recursividad puede realizarse con
iteración y viceversa. Normalmente, un cálculo determinado se prestará a una
técnica u otra, sólo necesita elegir el enfoque más natural o con el que se sienta
más cómodo.
Algoritmo:
Serie de pasos organizados que describe el proceso que se debe seguir, para
dar solución a un problema específico.
Modelo:
Resultado del proceso de generar una representación abstracta, conceptual,
gráfica o visual para analizar, describir, explicar, simular, y predecir fenómenos
o procesos
Interfaz:
Parte de un programa que permite el flujo de información entre un usuario y la
aplicación, o entre la aplicación y otros programas o periféricos. Esa parte de
un programa está constituida por un conjunto de comandos y métodos que
permiten estas intercomunicaciones.
Escenarios:
Conjunto de circunstancias que plantean una situación específica.
Biblioteca de objetos: Conjunto de objetos que pueden ser utilizados para recrear modelos dentro de
un software de simulación.
1. ANTECEDENTES GENERALES
1.1 INTRODUCCIÓN
La mitilicultura es el cultivo industrial del mejillón mediante instalaciones marítimas que favorecen su
desarrollo y aprovechamiento industrial. El proceso de la mitilicultura consiste en el cultivo de esta
especie con altas complejidades desde el punto de vista productivo, ofreciendo la región de los lagos,
ventajas comparativas para el cultivo de ésta (clima, geografía y calidad del agua).
Hoy las crecientes proyecciones de venta en los actuales y potenciales mercados, así como las altas
exigencias nutritivas exigen estándares de calidad e inocuidad. Así, para mantener las actuales tasas de
crecimiento de la industria, se requiere una rápida búsqueda de alternativas que apunten a solucionar los
puntos críticos que le restan competitividad a la industria de los Mitílidos en Chile.
Uno de los puntos críticos mencionados en el párrafo anterior tiene relación con la logística, donde es de
especial interés el conocer los costos totales mínimos de las operaciones relacionadas con el transporte
de materias primas o producto terminado. El saber dónde y cuánto almacenar a favor de los costos es
relevante cuando las cantidades involucradas implican desafíos en economías de escala. Las tarifas
disminuyen en la medida en que se transportan mayores cantidades de producto en cada viaje, y la
relación cantidad-costo es sumamente importante al momento de no contar con una capacidad de
almacenamiento interno que soporte guardar toda la producción de la plata procesadora durante una
temporada.
No obstante, en relación al transporte de grandes cantidades, las cargas completas pueden originar
excesos de nivel de inventario en los puntos de destino, y por otro lado el objetivo de reducir los costos
de transporte realizando envíos a camión completo, también puede entrar en conflicto con el
cumplimiento de los plazos de entrega a clientes, ya que la frecuencia de envíos puede verse afectada.
Estos intereses contrapuestos se ven reflejados en el estudio de este proyecto de título, donde el saber
enfrentar cada problema sin desmedro del otro es el equilibrio que se busca, usando para ello una
herramienta de simulación, que tiene como ventaja el hecho de poder visualizar los eventos o escenarios
que ocurren, además de dar la facilidad por sus herramientas de interactuar con el sistema modificando
parámetros para con ello ver nuevos problemas y estudiar cómo reaccionan.
1
1.2 OBJETIVOS
OBJETIVO GENERAL
Diseñar y construir una herramienta de apoyo a la toma de decisiones relacionadas con gestión de
almacenaje en frio.
OBJETIVOS ESPECÍFICOS
1.- Generar una herramienta de simulación que apoye la toma de decisiones a nivel gerencial respecto
a la gestión del almacenamiento en frio.
2.- Disminuir los costos de la gestión de almacenamiento en frío de los productos de granel en una
empresa mitilicultora.
3.- Caracterizar los costos de la gestión de almacenamiento en frio, ya sean internos o externos, con la
finalidad de establecer una relación entre costos de almacenamiento y volumen de producción.
1.3 DESCRIPCION DEL ÁREA
La industria mitilicultora, en los últimos años de los 90’s e inicios del 2000 se caracterizaba por tener en
su mayoría pequeños productores de cultivo, la mayoría ex pescadores que optaron por esta actividad
debido a la baja en el desempeño de sus trabajos en salmonicultura. No se conocían operaciones
mecanizadas ni prácticas eficientes de manejo, y como el país no se encontraba como exportador, no
había exigencias de calidad, a excepción del control de marea roja. Se contaban entre 20 a 40 plantas de
procesos inestables en cuanto a su desempeño, con tecnologías muy básicas y que trabajaban en su
mayoría con operaciones manuales. Las etapas críticas eran las condiciones sanitarias de las
instalaciones y su manera de operar que no calificaban para ser un país exportador. Cerca del año 2000
llegan a Chile empresas de capitales españoles (debido al colapso de los lugares de cultivo en España)
las que comienzan con plantas de proceso y más tarde de cultivo, pudiéndose ver después de eso
empresas con integración vertical y tecnologías mecanizadas. Esto ayuda a que Chile tenga una mayor
participación en el mercado europeo, haciendo que en los últimos años las empresas chilenas tengan
mayor interés por ingresar a la mitilicultura.
En las plantas de procesos del país, los productos enlatados y congelados son los dominantes, en
especial los congelados que han ido ganando lugar desde el año 2000 siendo en su mayoría la carne de
choritos la predominante, en menor grado el este producto sellado al vacío (entero) y la presentación de
media concha, donde la tasa calculada de crecimiento promedio interanual tiene un crecimiento altísimo
para una industria basada en recursos naturales.
Los proveedores son actores importantes en el mercado de la industria. La mayoría de ellos ha derivado
de proveer a las empresas salmonicultoras. El sector de cultivo tiene en general un nivel tecnológico
básico. Dentro de los proveedores se pueden encontrar los que brindan implementación de equipos
industriales, comercialización de productos enfocados al área de cultivo, productos enfocados al área
planta procesadora y producción de elementos de sustentación.
2
La composición de productores en la fase de industrialización de productos está verticalmente integrada
en su mayoría.
Respecto a tecnologías, éstas provienen por lo general de Europa en cuanto a maquinaria especializada,
complementándose en chile con equipos menos especializados como calderas, o mesones, aunque en
los últimos 3 años empresas que se dedicaban a vender productos para la salmonicultura, han estado
produciendo maquinarias para la mitilicultura, donde ofrecen por ejemplo desvisadoras y
desconchadoras.
Pero la mayor preocupación en esta materia no es de tecnología e innovación, sino más bien de
abastecimiento de materia prima de buena calidad y de cumplimiento de las normativas existentes. Las
plantas mantienen una relación 30-70 por ciento entre proveerse internamente y externamente. Respecto
a este tema, la relación compra-venta de materia prima entre las plantas procesadoras y los productores
de cultivo independientes se basa en que las plantas deciden el precio y cantidad porque en general los
productores no mantienen un control de muestreo de la calidad o rendimiento de su cosecha.
A pesar del crecimiento sostenido de los últimos años de la industria mitilicultora, la cual no tiene
parangón con otra actividad productiva en la región y el país, aun se visualizan múltiples falencias, tanto
en el área técnica como en el de la gestión, especialmente en lo referido a las metodologías utilizadas en
los procesos de captación, engorda y cosecha.
La industria mitilicultora se enfrenta a cambios de tamaños mínimos productivos, con una necesidad de
integrar verticalmente sus procesos, incorporar mejores tecnologías y desarrollar relaciones más
rentables con sus proveedores.
Hoy el país se ha convertido en un participante importante en el campo mitilicultor, lo que ha impulsado a
generar cambios tecnológicos tanto en el área de cultivo como en la de plantas procesadoras, transitando
hacia el cambio de convertirse en una industria chilena mitilicultora de gran peso con una importante
participación de capitales extranjeros y nacionales, donde la principal característica son altos volúmenes
de producción e integración vertical. (BAGNARA, M. MALTRAIN, G. 2008)
1.4 PLANTEAMIENTO DEL PROBLEMA
La industria mitilicultora ha experimentado un constante crecimiento en el país. El sector actualmente se
encuentra en un proceso de cambio importante que podría llevarlo a convertirse en uno de los principales
exportadores a nivel mundial, con un crecimiento promedio de 55% anual en los últimos 14 años.
Si se hace una comparación con el principal referente de la acuicultura nacional (la Industria del Salmón),
las condiciones en las que se encuentra hoy, son similares a las que tenía la Salmonicultura en la década
de los 90; es decir, se encuentra en un ascenso productivo, tecnológico y de conocimientos específicos
necesarios para perfeccionar cada área en los que el rubro demanda mayor eficiencia.
Por otro lado, la baja comercialización y el aumento en la competencia de los oferentes, ha repercutido
en una obvia caída del precio a tasas constantes, por lo que combatir esta tendencia, se suma a los
desafíos actuales de la industria, los que se concentran en estrategias como lograr la automatización y
tecnificación de la producción, con el propósito de producir grandes volúmenes, aumentando la
productividad, disminuyendo los tiempos de proceso y los costos de producción, permitiéndoles así ser
más eficientes. Junto a esta, surge la estrategia orientada a conformar empresas de gran tamaño, con
3
integración vertical, de manera de obtener economías de escala, flexibilidad en los ciclos de producción y
un mayor poder de negociación.
Uno de los procesos involucrados en el logro de estas estrategias, es la necesidad de mejorar la
eficiencia en todas las áreas que involucren costos adicionales al de producir. Dentro de estas áreas, se
puede encontrar la necesidad de mejorar la gestión de almacenamiento en frío del producto a granel, que
nace debido a que los distribuidores extranjeros han tratado (sin perjuicio sobre el precio) de deshacerse
de este costo, que se produce por la estacionalidad del negocio.
En temporada alta, las plantas trabajan al máximo de su capacidad debido a que obtienen más kilos de
producto final, resultado de recibir - por parte de sus proveedores- cosechas de mejor rendimiento, lo que
implica que al producir en grandes cantidades y no tener la demanda inmediata del producto en su
totalidad, se debe recurrir a almacenar en frio lo producido por intervalos de tiempo variables.
“Las empresas manufactureras tienen un volumen de inversión por concepto de inventario bastante
grande, donde el correspondiente capital inmovilizado puede llegar a representar un elevado porcentaje
del activo.” (MACHUCA 1995)
El incremento de la competencia obliga a aumentar la productividad. Así como existe un costo industrial,
existe un costo logístico de los productos: inversiones en almacenes e infraestructura dentro de ellos,
manipulaciones, personal destinado a la preparación de pedidos, costo financiero del stock, utilización de
envases y embalajes, transporte a almacenes y destino final. Este costo logístico es de suma importancia
ya que puede llegar a representar aproximadamente el 30 por ciento del costo total del producto, por lo
tanto, ajustarlo al mínimo posible sin perjudicar la calidad de servicio otorgada al cliente, así como
controlar este ajuste, es de primera necesidad.(Mauleón,M.2007)
Debido a este escenario, constituye un tema importante el perfeccionar la logística de almacenamiento
para cualquier empresa del rubro que tenga las características de no contar con la capacidad de
almacenar dentro de sus propios frigoríficos la totalidad de su producto final procesado, por lo que deba
incurrir en gastos adicionales para almacenar lo restante en frigoríficos externos. A su vez, manejar con
mayor exactitud la correspondencia de costos entre almacenar durante un intervalo de tiempo para luego
vender y producir o entregar inmediatamente es una información con la que no se cuenta hoy en día.
En este sentido, el estudio aporta a disminuir la incertidumbre con la que se maneja la relación
producción-almacenamiento permitiendo conocer con certeza el comportamiento de estas variables en
relación a los costos de almacenaje, costos de transporte y estimación de la demanda anual.
Cabe destacar que los datos ocupados para analizar el modelo de dos frigoríficos (descrito más adelante)
fueron brindados por una empresa que no se nombra en este proyecto de título por acuerdo de
confidencialidad.
4
2. MARCO TEORICO
2.1 Logística
El Council of Logistics Management define la Logística como “la parte del proceso de gestión de la
cadena de suministro encargada de planificar, implementar y controlar de forma eficiente y efectiva el
almacenaje y flujo directo e inverso de los bienes, servicios y toda la información relacionada con estos,
entre el punto de origen y el punto de consumo, con el propósito de cumplir con las expectativas del
consumidor”.
La logística es parte del concepto de gestión de la cadena de suministro. Gestiona los flujos del producto
junto con la información que este flujo conlleva, involucrando desde los proveedores hasta los clientes,
trabajando siempre por disminuir los costos totales bajo la mejor calidad de servicio. (URZELAI, 2006).
2.2 Eficiencia
El concepto de eficiencia es constantemente utilizado dentro de todo tipo de gestiones, dependiendo del
área en que se apliquen se enfocan en base a perspectivas específicas, pero todas hacen referencia a
los recursos utilizados y resultados obtenidos.
Definiciones (THOMPSON, 2008) aplicadas a la administración:
Según Idalberto Chiavenato, eficiencia "significa utilización correcta de los recursos (medios de
producción) disponibles. Puede definirse mediante la ecuación E=P/R, donde P son los productos
resultantes y R los recursos utilizados" (CHIAVENATO, 2004)
Para Koontz y Weihrich, la eficiencia es "el logro de las metas con la menor cantidad de recursos"
(KOONTZ y WEIHRICH, 2004)
Según Robbins y Coulter, la eficiencia consiste en "obtener los mayores resultados con la mínima
inversión" (ROBBINS y COULTER, 2005)
Para Reinaldo O. Da Silva, la eficiencia significa "operar de modo que los recursos sean utilizados de
forma más adecuada" (OLIVEIRA DA SILVA, 2002)
Aplicada a la Economía:
Según Samuelson y Nordhaus, eficiencia "significa utilización de los recursos de la sociedad de la
manera más eficaz posible para satisfacer las necesidades y los deseos de los individuos" (
SAMUELSON y NORDHAUS, 2002)
Para Gregory Mankiw, la eficiencia es la "propiedad según la cual la sociedad aprovecha de la mejor
manera posible sus recursos escasos" (MANKIW, 2004)
Simón Andrade, define la eficiencia de la siguiente manera: "expresión que se emplea para medir la
capacidad o cualidad de actuación de un sistema o sujeto económico, para lograr el cumplimiento de
objetivos determinados, minimizando el empleo de recursos" (ANDRADE, 2005)
Aplicada a la Mercadotecnia:
5
Según el Diccionario de Marketing, de Cultural S.A., la eficiencia es el "nivel de logro en la realización de
objetivos por parte de un organismo con el menor coste de recursos financieros, humanos y tiempo, o
con máxima consecución de los objetivos para un nivel dado de recursos (financieros, humanos, etc.)"
Según el Diccionario de la Real Academia Española: Eficiencia (Del lat. efficientĭa) es la capacidad de
disponer de alguien o de algo para conseguir un efecto determinado.
El concepto de eficiencia económica tiene relación directa con producir a costo mínimo. “Se llega a una
producción económicamente eficiente si se logra un costo mínimo por unidad de producción para una
determinada tasa de utilización de los recursos, lo que significa que no se podría lograr un costo mínimo
por unidad menor bajo ningún otro proceso de producción.” (LEROY MILLER, R y E.MEINERS, R. 2004)
En base a estas definiciones de eficiencia, se puede hacer una propia definición tomando en cuenta los
factores que ante el estudio son de mayor relevancia. Por ello, se dirá que “eficiencia es el grado en que
se logran los objetivos con el menor coste en cantidad de recursos utilizados de una empresa, tomando
en cuenta el correcto aprovechamiento de los medios de producción disponibles.”
Definiéndose mediante la ecuación:
(2.2.1)
P=productos resultantes
R=recursos utilizados
2.3 Oferta y Demanda
La ley de la oferta se basa en que existe una relación directa entre la cantidad ofrecida de un bien y su
precio. Esta relación quiere decir que la cantidad ofrecida de un bien aumenta cuando el precio de éste lo
hace (y a su vez es más rentable producirlo). La misma relación ocurre cuando el precio del bien
disminuye.
La ley de la demanda se basa en el enunciado de la relación inversa entre el precio de un producto y la
cantidad demandada de este, siendo menor esta última en la medida que el precio sea más alto (bajo
otros factores constantes). La relación inversa se da cuanto menor sea el precio, aumentando la
demanda de dicho producto. El decir “con los demás factores constantes” tiene que ver con el hecho de
que el precio no es la única variable que afecta la cantidad de producto que pueden comprar los
individuos, de hecho, hay otro factor relevante en este tema, y es el nivel de ingreso que ellos perciben,
debido a que en el ejemplo de que si el precio de un bien cambia al mismo tiempo que varían los
ingresos, no se puede determinar la relación en entre la cantidad comprada en base a estas variaciones.
(LEROY MILLER, R y E.MEINERS, R. 2004).
2.3.1. Características de la Demanda
Se denomina a la planificación de inventarios de tipo ciclo único o monoperiódica a aquella planificación
de un producto cuya demanda ocurre una vez, independiente de si sea aleatoria o no, siendo
almacenado este producto en un solo período.
6
Lo que ocurre con mayor frecuencia es lo contrario, es decir, que la demanda de un material (producto
terminado, en curso o componente) se mantenga a lo largo del tiempo independiente de si es regular o
no, continua o discontinua. Cuando éste es el caso, se emplean métodos de planificación multiperiódica.
Por otro lado, el consumo de los ítems en inventario procede de dos tipos de demanda:
La demanda dependiente, que se da cuando la necesidad de un artículo o ítem depende de la producción
de otro (como es el caso de los componentes de un auto) decidido en la planificación de la producción del
producto final. Este tipo de demanda no requiere pronóstico, sino simplemente una tabulación, pero que
requiere una constante coordinación entre la planificación de inventarios y la de la producción en
cuestión, usándose técnicas como la planificación de la necesidad de materiales (M.R.P) o J.I.T (just in
time o justo a tiempo).
El no requerir pronóstico no es el caso que ocurre para la demanda independiente, donde el consumo de
un ítem o producto se comporta en forma aleatoria en función de las condiciones del mercado sin tener
relación directa con el consumo de otros productos. Las estimaciones para este tipo de demanda se
obtienen en base a previsiones y a pedidos de clientes, llamadas técnicas clásicas basadas en la
optimización de los costes totales y el cálculo de un cierto stock que se asume como aceptable.
(MACHUCA, 1995; B.CHASE, R. JACOBS, F y AQUILANO, N. 2005).
2.4 Inventarios o Stock
“Se define como inventario o stock a cualquier recurso ocioso que es almacenado en espera de ser
utilizado.” (MACHUCA, D. 1995)
Inventario para la producción son los bienes que constituyen o forman parte del producto, dividiéndose en
materias primas, insumos, materiales en proceso, componentes o productos terminados. En el caso de
las empresas de servicio, se refiere a los bienes tangibles que serán vendidos y a los insumos necesarios
para otorgar dicho servicio.
En relación a lo que dice Machuca (1995) y Chase, Jacobs y Aquilano (2005), dependiendo del tipo de
empresa, las funciones del inventario son variadas, pero todas responden a ciertas razones como son:
1. Absorber las variaciones ocurridas producto de la aleatoriedad de la demanda.
2. Evitar quiebres de stock por falta de suministros internos o externos, enfrentándose esta situación a
través de lo que se denomina stock de seguridad.
3. Enfrentar la propia naturaleza de algunos procesos por no tener una producción 100 por ciento
continua, lo que conlleva a cuellos de botella, atrasos, o reprocesos.
4. Necesidad de nivelar el flujo de producción, donde las empresas producen por encima de su demanda
periódica en épocas bajas, para luego almacenar en tiempos donde la demanda supera sus niveles de
producción (por ejemplo, demandas estacionales).
5. Producir cantidades superiores a las que se consumen inmediatamente debido a que se obtienen
ventajas económicas como rebajas por cantidad, o disminución en los costos de preparación de equipos
productivos.
7
6. Falta de acoplamiento entre la producción y el consumo: en que la producción se obtiene en un
período determinado, pero el consumo se realiza a lo largo de todo el año (tiene directa relación con el
punto 4 y 5).
7. Ahorrar por prever un alza en los precios, con lo que se opta por comprar o producir antes para
guardar hasta el momento del consumo.
2.5 Almacén
Antiguamente la función que el almacén desempeñaba en la empresa era de otorgar espacio físico para
que las mercancías reposaran, pero eran tiempos donde la tensión financiera era menor y la vida de los
productos era más estable, con menor tensión en el plazo del servicio al cliente y menos volátil.
Actualmente hay que considerar aspectos importantes al momento de querer ser una empresa
competitiva, como son:
Mejorar el servicio al cliente disminuyendo el tiempo de respuesta y los errores o faltas cometidos en
ellos.
La constante necesidad de aumentar la productividad, donde el costo logístico de los productos (costo
financiero del stock, manipulaciones, personal destinado al picking (preparación de pedidos), transporte a
destino final, envases, embalajes, etc.) debe ser controlado y ajustado al mínimo sin perjudicar la calidad
de servicio otorgado al cliente.
El aumento en las cantidades de lo que se consume hoy en día, que es muy superior al que se consumía
hace unos diez años atrás.
Entonces se definirá “Almacén” como un subproceso operativo de optimización del espacio físico del
almacén relacionado con la conservación y guarda de productos con los mínimos riesgos para éste, las
personas y la compañía.
En relación a los clientes, los pedidos van variando en dos sentidos: por un lado el cliente consume más,
y por otro varía la composición de lo que pide, lo que implica un aumento en la producción y una
disminución de líneas de pedido (no se desea stock).
Se ha definido anteriormente lo que es logística, demanda e inventarios. Puede decirse que la logística
es el terreno donde las empresas hoy deben lograr ventajas competitivas, siendo el punto clave la gestión
de sus almacenes. (MAULEON, 2007).
2.6 Gestión de Almacenes.
La Gestión de Almacenes es una función logística que involucra la recepción, almacenamiento y
movimiento de cualquier material dentro de un mismo almacén, hasta el punto de consumo, así como la
información que se genera en sus flujos o movimientos.
El logro de una buena gestión de almacén permite:
Reducir los costes de almacén y mejorar el servicio al cliente mediante la aceleración del proceso de
gestión de pedidos.
8
Reducir las tareas administrativas proporcionando datos precisos y rápidos.
Optimizar la utilización del espacio mediante la mejora en la distribución del almacén. (CHASE, R.,
JACOBS, F. y AQUILANO, N. 2005).
Es importante distinguir la gestión de Almacenes con Gestión de Inventarios.
La Gestión de Inventarios indica, qué, cuánto, a cuánto y cuándo debe ser almacenado, o se debe
entregar (en el caso de las relaciones empresa-proveedor). En resumen:
Cuándo se deben ordenar los artículos
Cuál debe ser el volumen de la orden.
Mientras que la Gestión de Almacén indica, dónde y cómo debe ser almacenado. (DSLC,
CONSULTORIA Y SISTEMAS DE LOGISTICA INTEGRAL, S.L.L. 2006.)
2.6.1 Sistema de gestión del almacén.
Se entiende por tal al sistema que establece la manera u orden en que saldrán los materiales del
almacén, influyendo directamente sobre el tiempo de permanencia de los materiales en éste. Usualmente
el sistema más usado es el FIFO, donde el primer material o producto que llega al almacén, es el primero
en irse del mismo, así se evitan por ejemplo pérdidas de productos por fechas de vencimiento
alcanzadas. (FCC LOGISTICA, S.A- BU.AUTOMOCIÓN. 2006).
2.7 Manejo De Materiales
El manejo de materiales debe asegurar que estos sigan su desplazamiento periódico de un lugar a otro,
en el momento, lugar y cantidad correcta, considerando para ello un espacio de almacenamiento.
Las tecnologías para el manejo de materiales actualmente son prioridad para aumentar la productividad y
usar esto como ventaja competitiva, y formando parte importante de la planificación, control y logística
debido a que abarca el manejo físico, transporte, almacenaje y localización de los materiales.
Un flujo eficiente de materiales es aquel que siempre vela por seguir la línea de terminado del producto,
sin retrocesos o atrasos (HOPEMAN, R. 1973).
Los factores que afectan el flujo pueden ser:
Medio de transporte externo.
Número de partes en el producto y operaciones de cada parte.
Secuencia de las operaciones de cada componente y número de subensambles.
Número de unidades a producir y flujo necesario entre áreas de trabajo.
Cantidad y forma del espacio disponible.
Influencia de los procesos y ubicación de las áreas de servicio.
9
Almacenaje de materiales.
Los lugares de almacenamiento de bienes se denominan “bodegas”. Estas bodegas tienen bajo su
responsabilidad las siguientes actividades:
Recepción y verificación del estado de productos entregados por los proveedores.
Ubicación, control de calidad y custodia de los productos.
Entrega de los productos almacenados en óptimas condiciones a los usuarios solicitantes.
Pueden existir dos tipos de bodega: Bodegas centrales y de tránsito.
Bodegas De Tránsito: Son bodegas temporales en las cuales se almacenan los productos en un corto
periodo de tiempo. En estas bodegas pueden encontrarse materiales en tránsito, locales o importados.
Bodegas Centrales: Son bodegas que mantienen el almacenamiento permanente de bienes.
El espacio para almacenamiento a menudo resulta de cálculos hechos con programas de computadoras,
usando información de almacenamiento para otros propósitos. Unos pocos cálculos serán necesarios
para hacer una aproximación del espacio requerido para almacén en una planta.
Algunos de los factores a considerar en situaciones ordinarias de almacenamiento: (KRAJEWSKI, L. y
RITZMAN, R. 2000).
El volumen de la producción
Espacio disponible
La tasa de producción
La producción del producto
Tiempo de almacenamiento
Costo de almacenamiento
Volumen de almacenamiento requerido
2.8 Programación dinámica.
La programación dinámica encuentra la solución óptima de un problema con n variables,
descomponiéndolo en n etapas, siendo cada etapa un subproblema de una sola variable. Sin embargo,
como la naturaleza de la etapa difiere de acuerdo con el problema de optimización, la programación
dinámica no proporciona los detalles de cómputo para optimizar cada etapa.
Los cálculos de programación dinámica se hacen en forma recursiva, ya que la solución óptima de un
problema se usa como dato para el siguiente subproblema. Para cuando se resuelve el último
subproblema queda a la mano la solución optima de todo el problema. La forma en la que se hacen los
cálculos recursivos, dependen de cómo se descomponga el problema original. En particular, los
10
subproblemas se vinculan normalmente mediante restricciones comunes. Al pasar de un subproblema al
siguiente se debe mantener la factibilidad de esas restricciones comunes. (TAHA, H. 2004).
La programación dinámica probabilística (PDP) es una técnica matemática útil para la toma de decisiones
interrelacionadas, se presenta cuando el estado en la siguiente etapa no está determinado por completo
por el estado y la política de decisión de la etapa actual. En su lugar existe una distribución de
probabilidad para determinar si queda bien determinada por el estado y la política de decisión en la etapa
actual.
Por otro lado, cabe resaltar qué: cuando el estado en la siguiente etapa está determinado por completo
por el estado y la política de decisión de la etapa actual, entonces este problema corresponde a
programación dinámica determinística (PDD). Las estructuras básicas de la PDD y la PDP se observan
en la siguiente tabla:
Figura N° 2.1: Programación Dinámica Determinística
Fuente: Investigación de Operaciones, HILLIER, F y LIEBERMAN, G.2006
Figura N° 2.2: Programación Dinámica Probabilística.
Fuente: Investigación de Operaciones, HILLIER, F y LIEBERMAN, G.2006
En la programación dinámica (sea PDD O PDP), se utiliza una relación recursiva que identifica la política
para la etapa n, dada la política para la etapa n+1. La forma precisa de la relación recursiva difiere de un
problema a otro de PD (sea PDD o PDP), pero se usa notación general como se resume a continuación:
11
.
Los elementos básicos de un modelo te programación dinámica son:
1. Definición de las etapas.
2. Definición de las alternativas en cada etapa.
3. Definición de los estados para cada etapa.
Tomando en cuenta las siguientes preguntas:
1. ¿qué relaciones vinculan entre sí a las etapas?
2. ¿qué información se necesita para tomar decisiones factibles en la etapa actual sin volver a examinar
las decisiones tomadas en las etapas anteriores?
De esta manera se pueden definir etapas de la programación dinámica:
1. El problema se puede dividir en etapas que requieran una política de decisión en cada una de ellas.
2. Cada etapa tiene cierto número de estados asociados con su inicio.
3. El efecto de la política de decisión en cada etapa es transformar el estado actual en un estado
asociado con el inicio de la siguiente etapa. (Quizá según una distribución de probabilidad).
4. El procedimiento de solución está diseñado para encontrar una política óptima para el problema
completo, es decir, una receta para la política de decisión óptima en cada etapa para cada uno de los
estados posibles.
5. Dado el estado actual, una política óptima para las etapas restantes es independiente de la política
adoptada en etapas anteriores. Por lo tanto, la decisión inmediata óptima depende solo del estado y no
de cómo se llegó ahí. Este es el principio de optimalidad para programación dinámica (sea PDD Ó PDP).
6. El procedimiento de solución se inicia al encontrar la política óptima para la última etapa.
12
7. Se dispone de una relación recursiva que identifica la política óptima para la etapa n, dada la política
óptima para la etapa n+1.
8. Cuando se usa esta relación recursiva, el procedimiento de solución comienza al final y se mueve
hacia atrás, etapa por etapa (encuentra cada vez la política óptima para esa etapa) hasta que encuentra
la política óptima desde la etapa inicial. Esta política óptima lleva de inmediato a una solución óptima
para el problema completo, a saber,
para el estado inicial
, después
para el estado
que
resulta y así sucesivamente hasta
para el estado
. (HILLIER, F y LIEBERMAN, G.2006).
2.9 Simulación de Procesos.
Antes de entrar en la definición de Simulación, se deben considerar dos definiciones importantes:
Sistema y Modelo, los que a su vez ayudan a entrar en la definición de simulación de sistemas.
2.9.1 Sistema
Es una colección de entidades relacionadas, cada una de las cuales se caracteriza por atributos o
características que pueden estar relacionados entre sí. Los objetivos que se persiguen al estudiar uno o
varios fenómenos en función de un sistema son aprender cómo cambian los estados, predecir el cambio
y controlarlo. Sus conceptos básicos son Entidad, Relación, Estructura y Estado (TORRES, A. 2009).
2.9.2 Modelo
Según la RAE (2011), es un arquetipo o punto de referencia para imitarlo o reproducirlo.
Otra definición, tomada desde el DICCIONARIO DE INFORMATICA (2011) define modelo como la
representación de la realidad por medio de abstracciones. Los modelos enfocan ciertas partes
importantes de un sistema (por lo menos, aquella que le interesan a un tipo de modelo específico),
restándole importancia a las otras.
2.9.3 Simulación
Jerry Banks define simulación como el desarrollo de un modelo lógico matemático de un sistema, de tal
forma que se tiene una imitación de la operación de un proceso de la vida real o de un sistema a través
del tiempo. La simulación involucra la generación de una historia artificial de un sistema, la observación
de esta historia mediante la manipulación experimental, nos ayuda a inferir las características
operacionales de tal sistema (BANKS et al, 1996).
En los negocios se refiere a emplear una computadora para hacer experimentos con un modelo de un
sistema real. Se pueden emprender los experimentos en la simulación antes de que un sistema real esté
operando, para ayudar a diseñarlo, para observar cómo reaccionaría el sistema ante cambios en sus
reglas de operación o para evaluar la respuesta del sistema ante cambios en su estructura. La simulación
es especialmente adecuada para situaciones donde el tamaño o la complejidad del problema hacen que
las técnicas para la optimización resulten difíciles o impracticables. Se usa también la simulación junto
con las técnicas tradicionales de la estadística y la ciencia de la administración. Por otro lado, la
simulación ayuda a entender cómo funciona el sistema real mostrando los efectos de los cambios en las
variables del sistema, cómo controlar en tiempo real y cómo desarrollar ideas nuevas para manejar un
negocio (CHASE, R., JACOBS, F. y AQUILANO, N. 2005)
13
Simulación es, principalmente, una técnica para estimar las medidas de desempeño de un sistema
modelado (LAW, 2000). Es una de las técnicas más ampliamente usadas en Investigación de
Operaciones y Ciencias de la Administración. Sencillamente es un modelo que simula una situación real,
o algún modelo que genera situaciones artificiales creadas para estudiar su comportamiento. (¿Qué
pasaría en caso de?). La simulación no es la solución inmediata a cualquier problema que se detecte. La
observación previa del sistema real en operación es sumamente trascendental ya que en base a eso se
toma la decisión de simular o usar otra herramienta que permita obtener los resultados deseados,
dándole prioridad a los modelos matemáticos, ya que estos encuentran la solución optima a los
problemas, a diferencia de la simulación que plantea escenarios que deben ser estudiados para poder
encontrar los mejores. Es por ello que la simulación es para explicar, entender o mejorar el sistema y no
para optimizar (LAW, 2000).
2.9.4 Áreas de aplicación de la Simulación
La simulación es una técnica que puede ser aplicada a una gran cantidad de áreas, debido a que los
avances tecnológicos y la disponibilidad de software que existen actualmente, hacen de ella una
herramienta muy útil. Algunas áreas de estudio son (TORRES, A. 2009.)
Sistemas de colas
Sistemas de inventarios
Proyecto de inversión
Sistemas económicos
Estados financieros
Problemas económicos
Problemas conductuales y sociales
Sistemas biomédicos
Sistemas Justo a Tiempo
Sistemas de Logística
2.9.5 Programas y Lenguajes de Simulación
Los modelos de simulación se clasifican en continuos y discretos. Los continuos están basados en
ecuaciones matemáticas y, por lo tanto, son continuos y tienen valores para todos los puntos en el
tiempo. Por otra parte, la simulación discreta sólo ocurre en puntos específicos. Por ejemplo, los clientes
que llegan a la ventanilla del cajero del banco serían una simulación discreta. La simulación salta de
punto en punto; la llegada de un cliente, el inicio del servicio, el final del servicio, la llegada del siguiente
cliente y así en forma sucesiva. También se pude activar la corrida de simulación discreta empleando
unidades de tiempo (día, hora, minuto a minuto. Esto se llama simulación de hechos, los puntos entre
uno y otro no tienen valor en nuestra simulación o no podemos calcularlos debido a la falta de alguna
especie de relación matemática que ligue los hechos posteriores. Las aplicaciones para la administración
de operaciones usan casi exclusivamente la simulación discreta (hechos). En una simulación
14
especializada para las manufacturas, el modelo nos permitirá especificar la cantidad de centros de
trabajo, incluir su descripción, tasas de llegada, tiempo de procesamiento, tamaño de los lotes, volumen
de trabajo en procesos, recursos disponibles (inclusive mano de obra), secuencias y demás. El programa
también podría permitir que el interesado vea una operación animada y observe los volúmenes y los
flujos por todo el sistema a medida que la simulación va corriendo. Los datos son reunidos, analizados y
presentados en la forma más adecuada para ese tipo de aplicación.
2.9.6 Ventajas y Desventajas de Simulación (TORRES, A. 2009)
Ventajas:
a. Crear el modelo de un sistema permite, generalmente, entender mejor el sistema real.
b. En una simulación se puede comprimir el tiempo, es decir, se puede comprimir los muchos años de
experiencia del sistema real a unos cuantos segundos o minutos.
c. La simulación no interrumpe las actividades que están desarrollándose en el sistema real.
d. La simulación es mucho más general que los modelos matemáticos y la podemos usar cuando las
condiciones no son idóneas para un análisis matemático estándar.
e. Podemos usar la simulación como un juego que brinda una experiencia para la capacitación.
f. La simulación ofrece una réplica más realista de un sistema que un análisis matemático.
g. Se puede usar la simulación para analizar condiciones transitorias, mientras que las técnicas
matemáticas normalmente no permiten hacerlo.
h. Existen en el mercado muchos paquetes estándar de modelos que abarcan amplia gama de temas.
i. La simulación contesta preguntas de “qué pasaría si…”
Desventajas:
a. Si bien se puede invertir mucho tiempo y esfuerzo para crear un modelo para la simulación, no existe
garantía alguna de que éste, de hecho, ofrezca buenas respuestas.
b. No hay manera de demostrar que el desempeño del modelo de la simulación es fiable por completo. La
simulación entraña numerosas repeticiones de secuencias, que están basadas en ocurrencias generadas
en forma aleatoria. Un sistema aparentemente estable, dado la combinación correcta de hechos (aun
cuando sea poco probable), puede explotar.
c. De acuerdo con el sistema que simularemos, la creación de un modelo simulado puede tomar desde
una hora hasta 100 años-hombre. Los sistemas complicados pueden ser caros y tomar mucho tiempo.
d. La simulación puede ser menos exacta que el análisis matemático, porque está basada en el aspecto
aleatorio. Si podemos representar un sistema dado con un modelo matemático, en lugar de con una
simulación podría ser más aconsejable usar primero.
e. Tal vez se necesite mucho tiempo de computadora para correr modelos complejos.
15
f. La técnica de la simulación, si bien ha avanzado, aún tiene el defecto de carecer de un enfoque
estandarizado. Por lo tanto, los modelos del mismo sistema, creados por distintas personas, podrían ser
muy diferentes entre sí.
2.9.7 Peligros y problemas en Simulación
Definir los límites y nivel de detalles del sistema.
Subestimar el tiempo y costos involucrados en el proceso de modelación.
Fallar en la selección del más simple y económico de los modelos para el fin establecido.
Ausencia o pérdida de metodología estadística.
Considerar como aproximados algunos atributos de un sistema que no existe.
Entendimiento superficial del sistema a ser modelado.
Poca destreza para comunicarse con administradores y staff que financiarán el proyecto.
2.9.8 Software de Simulación Flexsim
Flexsim es un software de simulación orientado a los procesos de manufactura, logística, manejo de
materiales y servicios, de manera tal que evita los altos costos de pruebas reales en situaciones,
modelando ficticiamente en el programa usando como base datos obtenidos de los diferentes escenarios
y condiciones, mostrando la solución más convincente bajo una interfaz en 3D totalmente animada. Sus
resultados se traducen en gráficas, reportes y estadísticas que ayudan a la comunicación y compresión
de las ideas para una correcta toma de decisiones. (FLEXSIM MEXICO, 2009).
2.9.9 Terminología del Software Flexsim
Flexsim Objects: Entre los objetos que posee el software Flexsim estan el Source (fuente de entidades),
Queue (cola), Sink (salida de entidades), Conveyor (correas transportadoras), Combiner (combinador),
Separator (Separador), Transporter (transporte),etc.
Flowitems: Los ítems de flujo (o entidades) son los objetos que se mueven a través del modelo. Estos
ítems pueden ser piezas, papel, contenedores o cualquier cosa que se mueva a través del modelo. La
mayoría tienen procesos que se realizan sobre ellos o son transportados a través del modelo por otros
recursos.
Itemtype: El tipo de ítem es una etiqueta colocada en el ítem de flujo que podría representar un código
de barras, un tipo de producto o el número de una pieza. Una entidad (Flowitem) define la clase básica
de producto o pieza, por otra parte el tipo de ítem define el tipo de pieza individual o el número de pieza
dentro de las clases de entidades.
Ports: Todo objeto Flexsim tiene un número ilimitado de puertos a través de los cuales se comunican con
otros objetos. Hay tres tipos de puertos: Input, output y central. Los dos primeros se utilizan para el ruteo
de los items de flujo o para las vías para recursos móviles. Los puertos centrales son usados para crear
referencias, o punteros entre los objetos.
16
Objetos del Software de Simulación Flexsim.
Los objetos usados en este proyecto de título son:
Figura N° 2.9.1 Objetos Simulador Flexsim
Fuente: Software de Simulación Flexsim
La “Source” (Fuente) Es usada para crear los “flowitems” (Entidades) que viajan a través del modelo.
Cada “Source” crea una clase de “flowitem” y les puede asignar propiedades tales como un tipo de ítem
o color. Los modelos deben tener al menos un “Source” en ellos. “Source”s pueden crear “flowitems”
por una tasa entre llegadas, por una lista programada de llegadas o simplemente desde una secuencia
definida de llegadas.
El “Sink” es usado para destruir los “flowitems” que salen del modelo. Una vez que un “flowitem” llega al
“Sink” este no se puede recuperar. Cualquier recolección de datos que envuelven algún “flowitem” que
va a dejar el sistema debe hacerse justo antes de entrar al “Sink” o en la pestaña del trigger: “OnEntry”
del “Sink”
La “Queue” (Cola) es usada para que permanezcan los “flowitems” cuando un objeto posterior en la línea
no puede aceptarlos aún. Por defecto la “Queue” trabaja con disciplina FIFO (First In First Out: primero
en entrar, primero en salir). La “Queue” tiene opciones para acumular “flowitems” antes de que los suelte
para entregarlos a los objetos posteriores.
El “Processor” es usado para simular el procesamiento de “flowitems”en un modelo. El proceso es
modelado simplemente como un retraso de tiempo forzado. El tiempo total está dividido entre un tiempo
de setup y un tiempo de proceso. El “Processor” puede procesar más de un “flowitem”, a la vez. Además
puede ser determinada la falla y reparación de un procesador a intervalos regulares o aleatorios. Los
“Processor” pueden llamar por operadores durante sus tiempos de setup, proceso y/o reparación.
Cuando un procesador falla, todos los “flowitems” que está procesando se retrasarán. (DIAZ,M.
MELLA,H. 2005.)
2.9.10 Metodología de simulación
Jerry Banks (2005), propone una metodología de construcción de un Modelo de Simulación, donde los
pasos a seguir en un estudio de simulación según lo que este autor plantea son:
1. Definición del Sistema: es la descripción del problema: características principales, alcance y
aéreas involucradas, definiéndose fronteras para la simulación, restricciones y medidas de
efectividad que se usarán
2. Formulación del modelo: elaboración de un diagrama de flujo lógico del proceso.
3. Preparación de datos: Identificación de los datos requeridos para el modelo y elección adecuada
para una reducción objetiva de ellos.
17
4. Selección del lenguaje de Simulación: en este caso el software de simulación Flexsim.
5. Translación del modelo: generación de los códigos computacionales para lograr que el modelo
sea ejecutado.
6. Validación del modelo: determinación de la confiabilidad que tiene el modelo para representar la
realidad, haciendo comparaciones a través del uso de resultados históricos con sus datos,
aplicándolos al modelo.
7. Planeación Estratégica: diseño de un experimento que producirá la información deseada.
8. Planeación Táctica: determinación de cómo se realizara cada una de las corridas de prueba.
9. Experimentación: corrida de la simulación para obtener datos y efectuar análisis de sensibilidad.
10. Interpretación: obtención de inferencias con base en datos generados por la simulación.
11. Implantación: selección de la mejor alternativa para llevarla a la práctica, teniendo cuidado con
las suposiciones que se hicieron al iniciar el proceso de simulación.
12. Monitoreo y Control: modificaciones del modelo dependiendo de la reacción del proceso al ser
implementado y los resultados esperados, de modo que el modelo sea realmente una
representación del sistema.
Esta metodología se ve representada en la Figura N° 2.3:
18
Figura N° 2.3: Metodología de Simulación de Jerry Banks.
Fuente: Elaboración propia en Microsoft Office Visio 2007
2.10 Técnicas de Prueba de Software
El desarrollo de sistemas de software implica una serie de actividades de producción en las que las
posibilidades de que un error humano se presente son altas. Estos errores pueden presentarse desde un
comienzo si los objetivos están mal planteados o pueden aparecer en los pasos posteriores de diseño
19
y/o desarrollo. Es por ello que siempre debe ir acompañado de pruebas hacia él que ayuden a comprobar
estos errores, para así corregirlos y garantizar la calidad de lo que se ha logrado.
Cualquier producto de ingeniería puede probarse de una de estas dos formas:
(1). Conociendo la función para la que fue diseñado el producto, se pueden llevar a cabo pruebas que
demuestren que cada función es completamente operativa y buscando a su vez errores de cada función.
(2). Conociendo el funcionamiento del producto se pueden hacer pruebas que aseguren que la operación
interna se ajusta a las especificaciones y los componentes funcionan correctamente.
El software debe probarse entonces desde dos perspectivas diferentes:
Tomando en cuenta el punto (1), la lógica interna del programa se comprueba utilizando técnicas de
diseño de casos de prueba de “caja blanca”.
Tomando en cuenta el punto (2), los requisitos del software se comprueban utilizando técnicas de diseño
de casos de prueba de “caja negra”.
En ambos casos, se intenta encontrar la mayor cantidad de errores con la menor cantidad de esfuerzo y
tiempo.
2.10.1 Pruebas de Caja Negra
Cuando se considera el software de computadora, la “prueba de caja” negra se refiere a las pruebas que
se llevan a cabo sobre la interfaz del software. O sea, los casos de prueba pretenden demostrar que las
funciones del software son operativas, que la entrada se acepta de forma adecuada y que se produce un
resultado correcto, así como que la integridad de la información externa (por ejemplo, archivos de datos)
se mantiene. Una prueba de caja negra examina algunos aspectos del modelo fundamental del sistema
sin tener mucho en cuenta la estructura lógica interna del software.
Las pruebas de caja negra, también denominada “prueba de comportamiento”, se centran en los
requisitos funcionales del software. O sea, la prueba de caja negra permite al ingeniero del software
obtener conjuntos de condiciones de entrada que ejerciten completamente todos los requisitos
funcionales de un programa. La prueba de caja negra no es una alternativa a las técnicas de prueba de
caja blanca. Más bien se trata de un enfoque complementario que intenta descubrir diferentes tipos de
errores que los métodos de caja blanca.
La prueba de caja negra intenta encontrar errores de las siguientes categorías: (1) funciones incorrectas
o ausentes, (2) errores de interfaz, (3) errores en estructuras de datos o en accesos a bases de datos
externas, (4) errores de rendimiento y (5) errores de inicialización y de terminación. A diferencia de la
prueba de caja blanca, que se lleva a cabo previamente en el proceso de prueba, la prueba de caja negra
tiende a aplicarse durante fases posteriores de la prueba. Ya que la prueba de caja negra ignora
intencionadamente la estructura de control, centra su atención en el campo de la información. Las
pruebas se diseñan para responder a las siguientes preguntas:
¿Cómo se prueba la validez funcional?
¿Cómo se prueba el rendimiento y el comportamiento del sistema?
20
¿Qué clases de entrada compondrán unos buenos casos de prueba?
¿Es el sistema particularmente sensible a ciertos valores de entrada?
¿De qué forma están aislados los límites de una clase de datos?
¿Qué volúmenes y niveles de datos tolerará el sistema?
¿Qué efectos sobre la operación del sistema tendrán combinaciones específicas de datos?
Mediante las técnicas de prueba de caja negra se obtiene un conjunto de casos de prueba que satisfacen
los siguientes criterios: (1) casos de prueba que reducen, en un coeficiente que es mayor que uno, el
número de casos de prueba adicionales que se deben diseñar para alcanzar una prueba razonable y (2)
casos de prueba que nos dicen algo sobre la presencia o ausencia de clases de errores en lugar de
errores asociados solamente con la prueba que estamos realizando.
2.10.2 Pruebas de Caja Blanca
La “prueba de caja blanca” del software se basa en el minucioso examen de los detalles procedimentales.
Se comprueban los caminos lógicos del software proponiendo casos de prueba que ejerciten conjuntos
específicos de condiciones y/o bucles. Se puede examinar el «estado del programa» en varios puntos
para determinar si el estado real coincide con el esperado o mencionado. Todo lo que tenemos que hacer
es definir todos los caminos lógicos, desarrollar casos de prueba que los ejerciten y evaluar los
resultados, es decir, generar casos de prueba que ejerciten exhaustivamente la lógica del programa
La prueba de caja blanca, denominada a veces “prueba de caja de cristal” es un método de diseño de
casos de prueba que usa la estructura de control del diseño procedimental para obtener los casos de
prueba. Mediante los métodos de prueba de caja blanca, el ingeniero del software puede obtener casos
de prueba que (1) garanticen que se ejercita por lo menos una vez todos los caminos independientes de
cada módulo; (2) ejerciten todas las decisiones lógicas en sus vertientes verdadera y falsa; (3) ejecuten
todos los bucles en sus límites y con sus límites operacionales; y (4) ejerciten las estructuras internas de
datos para asegurar su validez. (PRESSMAN, R. 2002)
21
3. METODOLOGÍA
Esta metodología se basó en los pasos a seguir para resolver un problema de simulación de Jerry Banks,
que son los siguientes: Definición del Sistema, Formulación del modelo, Preparación de datos, Selección
del lenguaje de Simulación, Translación del modelo, Validación del modelo, Planeación Estratégica,
Planeación Táctica, Experimentación, Interpretación, Implantación, Monitoreo y Control. Sin embargo, lo
que plantea esta nueva metodología difiere en dos etapas del proceso:
La primera diferencia se da donde antes de traducir el problema al modelo se desarrolló un algoritmo de
programación dinámica para encontrar resultados óptimos con el fin de ingresarlo en la programación que
se hace sobre los diferentes objetos que se usan en la programación del simulador. Esta manera de
enfocarlo es el resultado de querer lograr que los diferentes escenarios que se puedan mostrar siempre
logren modelar realidades con resultados óptimos cuyo valor dependa de los variables de entrada.
La segunda diferencia radica en que no se realizan corridas de producción debido a la naturaleza del
desarrollo de este problema, y a la manera de enfrentarlo (no hay datos estadísticos que se ingresen al
sistema), por lo tanto las corridas de producción no se efectuaron para validar el modelo. Lo que sí se
efectuaron fueron pruebas de software basados en las técnicas planteadas por Pressman (2002) para
comprobar el comportamiento en el procesamiento de datos y arboles de decisión programados para
ciertos objetos.
Las etapas de la esta metodología son las siguientes:
1. Definición del problema: se obtuvieron las características principales, alcance y áreas involucradas.
2. Planteamiento de Objetivos: se plantearon los alcances a los que se postulan con el estudio de
abastecimiento aplicado a simulación.
3. Modelo de Conceptualización: se realizó un diagrama de flujo lógico que describe las etapas del
proceso de abastecimiento.
4. Obtención de datos: La obtención de datos no fue un requerimiento de primera instancia debido a la
decisión de generalizar el modelo para cualquier empresa de mitílidos que tenga dichos problemas de
transporte. Una vez desarrollado el modelo general, se necesitaron datos verdaderos para ingresarlos al
sistema y analizar el comportamiento. La descripción de estos datos se detalla en el capítulo siguiente.
5. Diseño de algoritmo en programación dinámica: usando herramientas básicas de orden y lógica
secuencial se desarrolló un algoritmo que otorga resultados óptimos de distribución dependiendo de la
capacidad y costos de almacenamiento de los frigoríficos resultando un algoritmo de programación
dinámica.
6. Traducción a Modelo: Se desarrollaron dos modelos, uno que simula la realidad del problema basado
en datos históricos de demanda y embarques, y otro que deja a disposición las variables de entrada que
se pueden ingresar, como son: costo de transporte, costo de almacenamiento, producción por día y
demanda diaria. Cada modelo tiene su propio código en el software de simulación Flexsim 5.
7. Verificación y Validación: mediante el análisis de prueba de software se plantearon situaciones críticas,
y se verificaron y validaron sus resultados.
8. Diseño experimental: se plantearon dos escenarios para el Modelo Específico desarrollado.
22
8. Análisis y Documentación: se realizó un análisis general del Modelo Genérico y un Análisis un más
detallado del Modelo Específico tomando en cuenta los escenarios desarrollados en el Diseño
Experimental, documentándose las tablas de ingreso de datos, las tablas de producción y demanda
histórica, los códigos de programación dinámica y los códigos más importantes que contienen los objetos
usados en el simulador Flexsim.
9. Implementación: se sugirieron áreas de prueba para la implementación de esta herramienta de
simulación, así como maneras o guías de ejecutarlo e ingresar datos.
Figura N° 3.1: Metodología Propuesta de Simulación de Abastecimiento en Frigoríficos.
Fuente: Elaboración propia en Microsoft Office Visio 2007
Es importante recalcar que en estudios de simulación de procesos, no hay una amplia gama de autores
que brinden mayor información o información diferente respecto a los pasos que se deben seguir en
análisis de este tipo de problemas.
23
4. APLICACIÓN DE LA METODOLOGÍA
4.1 Identificación del Problema
La formulación del problema es el primer paso de la metodología para un estudio de simulación
propuesta por Law (2000) o Banks (1996).
Para lograr la formulación del problema, se llevaron a cabo reuniones con el jefe del área de ingeniería
de una empresa exportadora de mitílidos. En estas reuniones se manifestó el deseo de querer manejar
la información general de sus costos de almacenamiento de una manera más eficiente y clara. Cabe
destacar que este tipo de problema no es particular, es decir, se presenta en variadas empresas del área
mitilicultora, por lo que la formulación del problema, se desarrollo planteándolo desde un punto de vista
general.
En la situación descrita, la ausencia de una capacidad de almacenamiento en frio que abarque la
producción completa de una planta es el problema principal. El hecho de tener un frigorífico con una
capacidad pequeña en comparación con el nivel de producción de carne a granel que llegan a alcanzar
en épocas de producción alta, obliga a las empresas mitilicultoras a almacenar en frigoríficos externos
que, aparte de tener tarifas de almacenamiento más altas, se encuentran ubicadas en distintos lugares
de la décima región, por lo que se incurre en costos de transporte adicionales, así como en tiempo y
esfuerzo logístico por lograr que éstos costos sean los mínimos posibles para no afectar el precio en el
producto final. La relación producción-almacenamiento-demanda en relación a los costos es la que no se
maneja, así como la decisión de hacia dónde enviar dependiendo de los costos de almacenamiento y
transporte.
La formulación del problema de acuerdo a lo escrito anteriormente, consistió en:
“Determinar mediante un modelo de simulación, la relación de costos entre “producción-almacenamiento”
en relación a la demanda y a los frigoríficos donde se almacene el producto.”
En otras palabras, para efectos de una idea general, se tiene una fuente procesadora (que entrega
ciertas cantidades de producto a granel), un frigorífico interno con una capacidad limitada que recibe este
producto para almacenarlo, y una cantidad “x” de frigoríficos externos, cada uno con sus respetivas tarifas
de almacenamiento por unidad de tiempo y a diferentes distancias de la fuente procesadora. A su vez, se
tiene una demanda que hay que cumplir y una cantidad de producción estimada para cada mes de
producción.
La figura 4.1 representa un esquema general de la formulación del problema.
24
Figura N° 4.1: Esquematización Formulación del Problema
Fuente: elaboración propia Microsoft Office Visio 2007
4.2 Planteamiento de Objetivos
Si bien está planteado anteriormente el Objetivo General y Objetivos Específicos de este proyecto de
título, también se plantearon objetivos para el momento de la simulación en el software Flexsim, que son:
1. Se debe realizar un modelo de manera tal, que pueda ser usado por las versiones de prueba del
software Flexsim, es decir, sin necesidad de instalar la versión completa ni tener que usar la llave que
viene en formato de puerto USV.
2. Este objetivo está planteado debido a que las empresas, al no conocer en profundidad este software,
a primera instancia no están dispuestas a pagar el precio de compra de este.
3. La fijación del primer objetivo conlleva a otro, que es crear un modelo que no tenga más de 15
objetos, que es la cantidad máxima que permiten las versiones de prueba.
4. Respecto a los resultados que entregue el software, éste debe poder indicar en qué frigorífico se
debe almacenar una cierta cantidad de producción, de manera tal que los costos sean mínimos. A su
vez, debe indicar los flujos de las entidades, es decir: cuál ha sido la ruta (frigorífico) del producto, el
tiempo de almacenamiento y el costo involucrado.
25
Los puntos 3 y 4 son los que involucran un paso adicional de esta aplicación del problema a un modelo
de simulación, puesto que para poder entregar las respuestas a estos objetivos se desarrolló, del área de
Investigación de Operaciones, un algoritmo de programación dinámica determinística, y se insertó como
en la programación de los objetos del software Flexsim.
4.3 Modelo de Conceptualización
El diagrama de flujo lógico que describe las etapas del proceso de abastecimiento se aprecia en la Figura
N° 4.2.
Figura N° 4.2: Diagrama de Flujo Proceso Abastecimiento
Fuente: Elaboración propia en Microsoft Office Visio 2007
26
La Figura N° 4.2 representa el flujo que sigue la carne a granel una vez que sale de la planta con destino
a ser almacenada para su posterior reprocesamiento una vez vendida.
Cuando sale una cierta cantidad de carne a granel, la prioridad de almacenamiento es el frigorífico
interno debido a los costos bajos que implican dejarlo ahí, pero si éste no cuenta con la capacidad para
almacenar toda la cantidad recién salida de planta, entonces se divide la producción, enviando la
cantidad que se puede almacenar en el frigorífico interno, y la diferencia enviándola a algún frigorífico
externo.
En otras palabras, el diagrama de flujo de abastecimiento, representa la dinámica de decisiones al
momento de almacenar la carne a granel y al momento de tener que sacar esta carne almacenada en frio
y transportarla de vuelta a la planta para su proceso final de empaque y embarque. Se muestra un solo
frigorífico externo de gran capacidad como el representante de todos los frigoríficos externos que se
ocupen. Esto se hiso porque la forma de tomar la decisión es la misma si hay uno o más frigoríficos
siempre y cuando las tarifas de almacenamiento de éstos sean las mismas o tengan una variación
pequeña.
En caso de que esto no ocurra, es decir, haya más de un frigorífico externo y cada uno tenga sus costos
de almacenaje y costos de transporte, se hace un árbol de decisión que se presenta más adelante
cuando se desarrolla un algoritmo de programación dinámica determinística para poder programarlo e
ingresarlo al software Flexsim.
4.4 Recopilación de datos
Los datos requeridos para ingresar al modelo desarrollado fueron:
1. Capacidad de frigorífico interno.
2. Costos globales en el uso del frigorífico interno.
3. Cantidad de frigoríficos externos usados actualmente.
4. Capacidad de frigoríficos externos.
5. Costo de Almacenamiento en frigoríficos externos.
6. Descripción de los servicios que incluyen esos costos de almacenamiento en frigoríficos
externos.
7. Costos de transporte.
8. Datos históricos de las cantidades de producto almacenadas durante al menos un año.
9. Datos históricos de la demanda durante al menos un año.
Estos datos se estandarizaron en cuanto a unidades sin desmedro de lograr resultados reales, lo que se
explica a continuación en el punto 4.3.1. A su vez se definieron los límites y áreas sobre las que se iba a
desarrollar el modelo, definiéndose que se trabajaría sobre las cantidades producidas sin tomar en
cuenta el costo de producción ni el costo de reproceso (que es el costo en que se incurre una vez que la
carne a granel ha vuelto a la planta procesadora) de los productos.
27
4.4.1 Estandarización de datos y supuestos
Al momento de crear el modelo, se estableció como “entidad de flujo” a una camionada, cuya capacidad
de transporte es de 10 toneladas. Esto se hiso debido a que si en el modelo se toma como entidad de
flujo a la tonelada, este experimenta problemas en la versión de prueba del Flexsim por lo tanto no se
logra cumplir con el objetivo n°1 planteado en el punto 4.2 de la aplicación de la metodología.
El punto uno a su vez obligó a tener que redondear al número mayor las cantidades de toneladas
procesadas cuando éstas no sumaban camionadas exactas.
Los costos de transporte que se ingresan son los costos totales por camionada, es decir 10 toneladas, o
en otras palabras, el flete de ida hacia algún frigorífico en un camión con capacidad para 10 toneladas. A
este costo se le debe incluir el gasto por concepto de entrada de productos al frigorífico (costo por
concepto de entrada y salida de productos divido en dos).
Para el costo de almacenamiento se ingresa lo que cuesta almacenar una tonelada al mes en cada
frigorífico.
Al igual que los datos anteriores, las capacidades de los frigoríficos se ingresan en camionadas.
Los días en que ocurre producción y demanda son ingresados como calendario Juliano tomando en
cuenta el día 1 como el primer día de producción de la temporada que se esté ingresando. Estos días son
multiplicados por 10 debido a que se estableció que 10 unidades de tiempo en el software equivalen a 1
día de producción en la planta ya que de esta manera se puede apreciar de mejor manera el
comportamiento del proceso en la toma de decisiones.
4.5 Diseño de algoritmo en programación dinámica
Cuando se planteó el problema y se tomó la decisión de generalizar éste para cualquier situación en la
que los costos de almacenar externamente sean variables, se determinó que la mejor manera de obtener
resultados óptimos era desarrollando un algoritmo tal, que pudiese ser ingresado en la programación de
los objetos que contiene el software Flexsim y entregara resultados concretos que respondieran a los
objetivos 3 y 4 del punto 4.2, a pesar de estar trabajando con una plataforma de programación que sirve
no para entregar resultados óptimos, sino para ver posibles escenarios; escenarios que cambian cuando
cambian sus variables de entrada. La gran diferencia a un modelo de simulación hecho normalmente en
base a datos estadísticos, es que éste usa como plataforma de desarrollo la herramienta de simulación
pero la une con una herramienta de optimización, lo que se traduce a entregar siempre la mejor
respuesta frente al escenario que se plantee.
4.5.1 Desarrollo del algoritmo
Al ser llevado el problema a un modelo general, se fijaron algunos límites para poder trabajar en la
dinámica de decisión de almacenamiento. Estos límites tienen que ver con la cantidad de frigoríficos
externos con los que se va a trabajar en el modelo, definiéndose como máximo tres. Al plantearse de
esta manera el futuro modelo de simulación, y al querer entregar resultados óptimos, es que se necesitó
desarrollar un algoritmo que permitiera entender el orden secuencial en la toma de decisiones para poder
llevarlo mas tarde a un lenguaje de programación en Flexsim.
Tomando en cuenta el orden secuencial presentado en el “Diagrama de Flujo Proceso de
Abastecimiento” de la Figura N° 4.2 se hiso una extrapolación para aplicarlo a tres frigoríficos externos en
28
vez de a uno solo, lo que derivó en una serie de decisiones encadenadas que usan dos funciones
principales:
La obtención de una combinatoria (para saber todas las posibles combinaciones que se pueden hacer
para almacenar una cantidad “x” en las opciones de frigorífico que hay).
La obtención de un “Optimo”: función que calcula los costos de cada una de las combinatorias
entregadas en el punto anterior, y entrega aquella combinación cuyo costo es el menor.
Estas dos funciones se presentan más adelante en el desarrollo del modelo.
Las decisiones encadenadas anteriores, que usan estas dos funciones, son las que se presentan como
algoritmo de programación dinámica determinística, representado en los siguientes árboles de decisión.
El primero es el árbol de decisión general, y de él, cada rama desprende otro árbol de decisión que son
los que siguen a continuación de éste.
El orden secuencial es el siguiente:

Una vez que sale una corrida de producción de la planta procesadora, se debe saber hacia qué
frigorífico hay que enviar dicha corrida. Para ello, el número de la cantidad a almacenar (ya ingresada
como camionadas) es la variable de entrada para la función “combinaciones”, que entrega - tal como
su nombre lo indica- cada combinación que se puede hacer para almacenar esta cantidad de
camionadas en los cuatro frigoríficos que se tienen como opción. Luego, la cantidad de
combinaciones, así como cada conjunto que la compone son la variable de entrada para el análisis
desde el punto de vista de costos, donde a cada una de las combinaciones posibles se les calcula el
costo de almacenamiento y transporte, quedándose con aquella combinación cuyo costo total sea el
menor. A este costo menor, se le denomina “OPTIMO”.

Esta combinación de cuatro números es la que entrega “cuantas camionadas” deben ingresar al
frigorífico interno, cuantas al frigorífico externo uno, al externo dos y al externo tres.

Después de determinado este “OPTIMO”, el algoritmo de decisión pregunta a cada frigorífico si tiene
la capacidad para almacenar la cantidad destinada para ellos. Si es así entonces envía dicha
cantidad donde le corresponde, pero si no es así, pregunta cuánto puede almacenar el frigorífico
consultado, envía la cantidad que se pueda almacenar a éste, y usa la diferencia como variable de
entrada para sacar una nueva “combinación” y un nuevo “OPTIMO”. Este segundo nuevo “OPTIMO”
ya no toma en cuenta el frigorífico por el que se pasó (debido a que se encuentra lleno), por lo que
entrega cantidades a almacenar para tres de los 4 frigoríficos. Y así comienza por segunda vez el
ciclo, donde pregunta ahora a 3 de los 4 frigoríficos si tienen la capacidad para almacenar las
cantidades designadas para ellos, y si no es así, vuelve a almacenar la cantidad que se puede y con
la diferencia obtiene un tercer nuevo “OPTIMO”.

Este orden secuencial se termina una vez que se ha almacenado el total de la corrida de producción
salida en un tiempo específico.
29
Figura N° 4.3: Árbol de decisión General
Fuente: Elaboración propia en Microsoft Office Visio 2007
30
Figura N° 4.4: Árbol de decisiones para el Frigorífico Interno (FI)
Fuente: Elaboración propia en Microsoft Office Visio 2007
31
Figura N° 4.5: Árbol de decisiones para el Frigorífico Externo 1 (FE1)
Fuente: Elaboración propia en Microsoft Office Visio 2007
32
Figura N° 4.6: Árbol de decisiones para el Frigorífico Externo 2 (FE2)
Fuente: Elaboración propia en Microsoft Office Visio 2007
33
Figura N° 4.7 Árbol de decisiones para el Frigorífico Externo 3 (FE3)
Fuente: Elaboración propia en Microsoft Office Visio 2007
34
4.6 Traducción a Modelo
Una vez desarrollado el algoritmo de programación dinámica determinística, y teniendo el orden de la
toma de decisiones para cada situación, como se dijo en la descripción de la metodología se
desarrollaron dos modelos, un modelo genérico y un modelo específico.
4.6.1 Modelo Genérico
Este modelo que deja a disposición las variables de entrada que se pueden ingresar, como son: costo de
transporte, costo de almacenamiento, producción y demanda por día.
Este modelo basa su complejidad en relación a la cantidad de decisiones que debe tomar antes de
derivar la cantidad de producción hacia algún frigorífico.
Figura N° 4.8 Modelo Genérico Flexsim
Fuente: Elaboración propia en Flexsim
4.6.1.a Objetos del Modelo Genérico
Antes de describir cada objeto del modelo genérico, es necesario definir el tipo de entidad que va a
circular por éste. Para este caso se definió una “basic box” como entidad, y junto con esto, se le
asignaron etiquetas a este tipo de entidad que almacenarán los datos más importantes que se desean
obtener al finalizar la modelación. La Figura N° 4.9 muestra que éstas entidades son definidas en “Flow
Items” en la barra de herramientas del Software y más tarde en el “Source” definido en este caso con el
nombre de “PLANTA PROCESADORA”.
35
Figura N° 4.9: Definición de Entidad e ingreso de etiquetas
Fuente: Elaboración propia en Flexsim
Luego de esto, se definen a continuación las funciones y características de cada objeto:
1. PLANTA PROCESADORA: es el que simula las salidas de entidades. En él está ingresado la
producción completa de un año, por lo que sus “output” son entidades tipo “cajas (basic box)” que
representan camionadas con capacidad de diez toneladas cada una. En la Figura N° 4.10 se aprecia la
entrada de datos, donde “ArrivalTime” es el tiempo de llegada de las entidades y “Quantity” la cantidad
que llega en ese momento.
Figura N°4.10: Source “PLANTA PROCESADORA”.
Fuente: Elaboración propia en Flexsim
36
2. “COLA1”: es la encargada de cerrar los puertos de entrada de los frigoríficos una vez entrada la
primera entidad así como de cerrar el puerto de salida de la “GRAN COLA PROCESADORA”. También
es la que obtiene la primera “combinatoria” y “OPTIMO” para la cantidad de entidades que entran a ella.
Esta programación de la “combinatoria” y “OPTIMO” es la principal y más importante del modelo, ya que
de ella se desprenden las demás programaciones y porque es ésta la que traduce la base de la
programación dinámica desarrollada en el punto 4.4 a la programación del lenguaje del simulador, por lo
tanto se muestra a continuación y no en Anexos. El código que cierra los puertos es el siguiente:
COLA 1 (On Entry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
// PARTE I
// Cuenta las entidades entrantes
int x=gettablenum("entradas y salidas",1,1
x=x+1;
settablenum("entradas y salidas",5,1,x);
// PARTE II
// Cierra el puerto de salida desde el momento en que entra la primera caja
int cont=gettablenum("entradas y salidas",5,1);
if (cont==1)
{
closeinput(rank(model(),5));
closeinput(rank(model(),6));
closeinput(rank(model(),7));
closeinput(rank(model(),8));
closeoutput(rank(model(),9));
}
El código para obtener la combinatoria y Óptimo es el siguiente:
COLA 1 (On Exit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
int numero_op=gettablenum("tabla valores",1,5)+1;
int produccion_op=gettablenum("PRODUCCION",numero_op,2);
int tiempo_op=gettablenum("PRODUCCION",numero_op,1);
int tiempo=time();
if(tiempo==tiempo_op+1)
{
settablenum("tabla valores",1,5,numero_op);
37
// Saca la combinatoria
int xx=produccion_op;
int jj;
int gg;
int hh;
int kk;
int bb;
int dd;
int ee;
int ff;
int sumacomb;
int cont=gettablenum("combinaciones",1,5);
for (jj=0;jj<=xx;jj++)
{
for (gg=0;gg<=xx;gg++)
{
for (hh=0;hh<=xx;hh++)
{
for (kk=0;kk<=xx;kk++)
{
settablenum("combinaciones",cont+1,1,jj);
settablenum("combinaciones",cont+1,2,gg);
settablenum("combinaciones",cont+1,3,hh);
settablenum("combinaciones",cont+1,4,kk);
bb=gettablenum("combinaciones",cont+1,1);
dd=gettablenum("combinaciones",cont+1,2);
ee=gettablenum("combinaciones",cont+1,3);
ff=gettablenum("combinaciones",cont+1,4);
sumacomb=bb+dd+ee+ff;
}
}
}
if(sumacomb==xx)
{
cont=cont+1;
}
}
// Borra el último valor
settablenum("combinaciones",cont+1,1,0);
settablenum("combinaciones",cont+1,2,0);
settablenum("combinaciones",cont+1,3,0);
settablenum("combinaciones",cont+1,4,0);
settablenum("combinaciones",1,6,cont); // guardo la cantidad de combinaciones
settablenum("combinaciones",1,5,0);// seteo el contador
38
// OPTIMO
// Cantidades
int v1;
int v2;
int v3;
int v4;
// Costos individuales
int c1;
int c2;
int c3;
int c4;
// Costos transporte
int t1;
int t2;
int t3;
int t4;
// Costos almacenamiento
int al1;
int al2;
int al3;
int al4;
// Costos totales y valores
int costo;
int narbi=gettablenum("numero arbitrario",1,1);
int comb=gettablenum("combinaciones",1,6); //obtiene las filas a recorrer en las combinatorias
for (int j=1;j<=comb;j++)
{
// Obtiene los valores de cada fila
v1=gettablenum("combinaciones",j,1);
v2=gettablenum("combinaciones",j,2);
v3=gettablenum("combinaciones",j,3);
v4=gettablenum("combinaciones",j,4);
// Obtiene los costos de almacenamiento
al1=gettablenum("precios",1,1);
al2=gettablenum("precios",2,1);
al3=gettablenum("precios",3,1);
al4=gettablenum("precios",4,1);
// Obtiene los costos de transporte
t1=gettablenum("precios",1,2);
t2=gettablenum("precios",2,2);
t3=gettablenum("precios",3,2);
t4=gettablenum("precios",4,2);
// Calcula los costos de la combinación
c1=v1*(al1+t1);
c2=v2*(al2+t2);
c3=v3*(al3+t3);
c4=v4*(al4+t4);
costo=c1+c2+c3+c4;
39
}
}
if (costo<=narbi)
{
settablenum("OPTIMO",1,1,v1);
settablenum("OPTIMO",1,2,v2);
settablenum("OPTIMO",1,3,v3);
settablenum("OPTIMO",1,4,v4);
settablenum("OPTIMO",1,5,costo);
narbi=costo;
}
3. “PROCESADOR1” y “PROCESADOR2”: están puestos para efectos visuales: se deseaba ver en qué
momento entraba cada caja a la colas que los suceden. El “PROCESADOR1” además tiene la función de
contabilizar la cantidad de entidades que entran y de asignarle un valor único a cada una en orden de
llegada. Su código de programación se encuentra en el Anexo Código A.1: “Programación Modelo
Genérico PROCESADOR1”. El “PROCESADOR2” tiene una función adicional que se explicará más
adelante.
4. “COLA QUE DECIDE”: es la que juega un rol importante en la toma de decisiones al momento de
enviar las entidades. Ella toma como valor de entrada los valores OPTIMOS que deben ir a cada
frigorífico y comienza a realizar el árbol de decisión descrito en el algoritmo de programación dinámica.
Su código es una fiel copia del árbol de decisiones descrito en el punto 4 pero pasado al lenguaje de
programación del software y usando las funciones de obtención de “combinaciones” y “OPTIMO”, siendo
por este motivo importante ya que es la que une los conceptos de Programación Dinámica de
Investigación de Operaciones con Simulación de Procesos. Cabe destacar que el código general resultó
muy largo producto de que cada vez que se debía sacar un nuevo “OPTIMO”, el código de ésta función,
al igual que el de las “combinaciones” debía volver a escribirse usando nuevos nombres para las
variables, pero en su defecto hacen lo mismo.
5. “FUENTE 1”: carga los valores de las capacidades iniciales de los frigoríficos a una nueva tabla con la
que se pueda trabajar. Esto lo hace una sola vez, al comienzo de la simulación. El código se encuentra
en el Anexo Código A.2: “Programación Modelo Genérico FUENTE1”.
6. “FUENTE 2”: cierra los puertos de salida de la “COLA QUE DECIDE” y de los frigoríficos una vez salida
la primera corrida de producción. También es la que decide qué puertos abrir dependiendo de las
cantidades que deben enviar. La manera de decidir qué puerto de salida abrir depende del costo de
almacenamiento por unidad de tiempo que tenga cada frigorífico, abriendo siempre aquel cuyo costo sea
mayor. Su código se encuentra en el Anexo Código A.3: “Programación Modelo Genérico FUENTE2”.
7. Frigoríficos “FI”, “FE2”, “FE2”, “FE3”: todos tienen el mismo código en sus entradas y en sus salidas
(OnEntry y OnExit). Este código cuenta la cantidad de unidades que entran y se lo resta a la capacidad
actual que tiene el FI, guarda el número uno, dos, tres o cuatro en la etiqueta “frigorífico” de la entidad
para poder identificar al final del proceso donde estuvo almacenado, ingresa el tiempo de entrada y el
precio de transporte a las etiquetas correspondientes. Por último, dependiendo de las cantidades que
deben entrar, abre o cierra el puerto. Sus códigos se encuentran Anexo Código A.4:“Programación
40
Modelo Genérico FI”, Código A.5:“Programación Modelo Genérico FE1”, Código A.6:“Programación
Modelo Genérico FE2” y Código A.7:“Programación Modelo Genérico FE3”.
8. “PROCESADOR 2”: calcula los costos de transporte totales y los guarda en la etiqueta correspondiente
de la entidad. Su código se encuentra en el Anexo Código A.8: “Programación Modelo Genérico
PROCESADOR 2”.
9. “GRAN COLA QUE PROCESA”: es llamada así porque es la que contiene las entidades una vez que
han salido de su tiempo de almacenamiento, cierra los puertos de salida de los frigoríficos una vez
entrada la cantidad de entidades que se han demandado en cierto momento, y guarda en una tabla
llamada “TABLA GLOBAL” todos los datos de las etiquetas de cada entidad entrante. Su código se
encuentra en Anexo Código A.9: “Programación Modelo Genérico GRAN COLA QUE PROCESA”.
La TABLA GLOBAL que resume todos los datos obtenidos se aprecia en la Figura N° 4.11.
Esta tabla Global muestra: el frigorífico donde estuvo almacenada la entidad, el tiempo (en Flexsim) en
que comenzó a ser almacenada, el tiempo en que salió de su período de almacenamiento, el tiempo total
que estuvo en el frigorífico, el costo de transporte (ida y vuelta), el costo de haberla mantenido
almacenada durante ese intervalo de tiempo, el Costo Total involucrado, y su número único de
producción. Tiene una capacidad de datos para hasta 300 entidades.
Figura N° 4.11: TABLA GLOBAL de datos Flexsim
Fuente: Elaboración propia en Flexsim
41
4.6.2 Modelo Específico
Este modelo se desarrolló para analizar una situación particular con datos históricos de una empresa de
mitílidos. Esta empresa quería saber cuánto dinero está gastando por concepto de almacenamiento en
frigoríficos externos.
Se tomó en cuenta un modelo más simple donde hay un frigorífico interno y uno externo que representa a
todos los que se usen, con un costo promedio de transporte y almacenamiento. Este modelo se aprecia
en la siguiente figura:
Figura N° 4.12 Modelo Específico
Fuente: Elaboración propia en Flexsim
4.6.2. a Objetos del Modelo Específico
Todos los objetos de este modelo son idénticos en cuanto a funciones respecto del modelo genérico. Su
programación es más sencilla puesto que solo se debe decidir en base a dos frigoríficos pero sigue el
mismo orden de decisiones planteado. La gran diferencia es que en este modelo está ingresada toda la
producción de un año junto a su demanda (sacada por medio de los embarques de dicha temporada) y
los precios de almacenamiento externo son los promedios reales. Las diferencias en los códigos se
explican a continuación:
1. “COLA 1”: obtiene las combinaciones y el ÓPTIMO para dos frigoríficos. Su código se encuentra en el
Anexo Código A.10: “Programación Modelo Específico COLA1”.
2. “COLA QUE DECIDE”: tiene un código más simple, puesto que representa la manera de decidir
mostrada en el diagrama de flujo de abastecimiento de la Figura N° 4.2. Su código se encuentra en el
Anexo Código A.11: “Programación Modelo Específico COLA QUE DECIDE”.
3. “FUENTE 2”: es la que abre o cierra los puertos de salida de los frigoríficos dependiendo de la
demanda. Ésta difiere de la FUENTE 2 del Modelo Genérico en cuanto a la manera de abrir los puertos
42
de salida. La FUENTE 2 del Modelo Genérico, lee de la tabla “demandas” la cantidad que debe enviarse
a la GRAN COLA PROCESADORA; después de decidir cuál es el frigorífico con mayor costo, pregunta si
dicho frigorífico tiene la cantidad para abastecer la demanda, y si no es así, pasa a preguntarle al
segundo frigorífico más caro si tiene esa capacidad (es decir, abre 1 solo puerto para enviar la cantidad
demandada). En cambio la FUENTE 2 del Modelo Específico, al momento de saber que el frigorífico cuya
tarifa de almacenamiento es más cara, no tiene la cantidad total de entidades que se necesitan para
satisfacer la demanda de ese momento, pregunta cuanta cantidad tiene, envía esa cantidad y luego va al
segundo frigorífico con tarifa de almacenamiento mas cara a preguntar por la diferencia. Esto implica
crear una nueva tabla de trabajo llamada “TABLA ENVIOS DDA” desde donde se leen las cantidades que
se deben sacar de cada frigorífico. A continuación se encuentra en el Anexo Código A.12: “Programación
Modelo Específico FUENTE 2”.
4. “GRAN COLA PROCESADORA”: la gran diferencia entre este objeto y su similar del Modelo Genérico
es que éste cierra los puertos leyendo desde la “TABLA ENVIOS DDA” y no desde la tabla “demanda”.
Su código se encuentra en el Anexo Código A.13: “Programación Modelo Específico COLA
PROCESADORA”.
4.7 Verificación y Validación:
Se hicieron pruebas de “caja blanca”, es decir, casos de pruebas que verifiquen que cuando ocurre una
situación, las decisiones involucradas generen acciones que se comporten de manera correcta.
Se formularon diferentes casos, cada uno con variables de entrada, estos se resolvieron a mano y luego
se compararon con los resultados del simulador. Los casos son los siguientes:

Las combinaciones deben calcularse de manera correcta.

Los ÓPTIMOS deben ser los correctos.

Se deben abrir los puertos correspondientes para cada caso y las entidades deben ir siempre al
frigorífico que signifique un menor costo total de almacenamiento.

Cuando se activa una petición de demanda, deben salir de los frigoríficos la cantidad indicada de
entidades.

Cuando la primera opción de almacenamiento tiene su capacidad ocupada, se deben abrir los
puertos siguiendo el orden de menor a mayor costo cuando se toman las segundas o terceras
opciones de frigorífico.

En el caso de las demandas, se deben abrir los puertos de los frigoríficos cuyo costo de
almacenamiento es el más caro. Si éste no tiene la capacidad para enviar la cantidad
demandada, se debe seguir el orden de abrir los puertos desde el que tiene tarifas más altas, al
que tiene tarifas más bajas.

Se deben guardar correctamente en cada entidad: el frigorífico que se usó, el tiempo que estuvo
en él, los costos de almacenamiento y transporte involucrados. También se deben guardar todos
estos datos en la TABLA GLOBAL para su posterior análisis y deben estar calculados
correctamente.
43
Caso 1: Las combinaciones deben calcularse de manera correcta.
Para este caso, se usó como variable de entrada el número dos. La programación que tiene relación con
la cantidad de combinaciones, saca exactamente todas las combinaciones posibles de un número sobre
cuatro (que es la cantidad de frigoríficos disponibles), pero está hecha para que calcule las
combinaciones y muestre solo aquellos conjuntos de números que sumen entre ellos la variable de
entrada con la que se hace el cálculo. Por ejemplo: si la variable de entrada es cinco, la programación
calcula todas las combinaciones, pero muestra en la tabla “combinaciones” solo aquellas cuyos conjuntos
de números suman cinco. La Tabla B.1 de Anexos muestra el cálculo hecho con la variable de entrada
dos, luego mostrada a continuación la Tabla N° 4.1 muestra las combinaciones de números que suman
dos, y la Figura N° 7.1 muestra los resultados que da la programación en Flexsim.
Tabla N° 4.1: Conjunto de números en las combinaciones que suman dos (cálculo hecho a mano).
Resultado Combinaciones (suma=2)
FI
FE1
FE2
FE3
1
0
0
0
2
2
0
0
1
1
3
0
0
2
0
4
0
1
0
1
5
0
1
1
0
6
0
2
0
0
7
1
0
0
1
8
1
0
1
0
9
1
1
0
0
10 2
0
0
0
Total Combinaciones= 10
Fuente: Elaboración propia Microsoft Office Excel 2007
Figura N° 4.13: Resultado de las Combinaciones en Flexsim con variable de entrada igual a dos.
Fuente: Elaboración propia en Flexsim
44
En la Figura N° 4.13 la columna seis es la que entrega en la fila uno el número de combinaciones. Al
observar la figura, se aprecia que pasada la fila 11 todos los valores de las filas tienen el valor cero. Esto
es porque el número de combinaciones para el caso de prueba (con la variable de entrada=dos) es igual
a 10, son las que se ven en la figura y que concuerdan cien por ciento con la Tabla N° 4.2 cuyos
resultados fueron sacados manualmente.
Caso 2: Los ÓPTIMOS deben ser los correctos.
Para calcular los óptimos se toma en cuenta la respuesta dada por la programación de las
“combinaciones”. Por ejemplo en el caso anterior, la respuesta de la tabla combinaciones es 10. En este
caso la programación del “ÓPTIMO” toma ese valor para saber hasta qué fila recorrer en la tabla
“combinaciones” y en cada caso calcular los costos que implican ese conjunto de números de la fila
correspondiente. Como se comprobó que la programación del Caso 1 está bien, ahora se comprueba el
Caso 2 con el número tres. Flexsim entrega que el número de combinaciones es 20 (celda 1,20).
Figura N° 4.14: Número de combinaciones con variable de entrada igual a tres.
Fuente: Elaboración propia en Flexsim
Como el óptimo toma cada fila y calcula los costos para esa combinación de números, se leen de la tabla
“precios” los costos de transportar y almacenar en cada frigorífico. Estos costos son inventados para el
caso del Modelo Genérico.
Figura N° 4.15: Tabla “precios”
Fuente: Elaboración propia en Flexsim
45
Tabla N°: 4.2: Costo mínimo sacado manualmente con variable de entrada igual a tres.
Costo= n°FI*(35+10)+n°FE1*(45+10)+n°FE2*(50+25)+n°FE3(25+10)
FI
FE1
FE2
FE3
Costo
1
0
0
0
3
105
2
0
0
1
2
145
3
0
0
2
1
185
4
0
0
3
0
225
5
0
1
0
2
125
6
0
1
1
1
165
7
0
1
2
0
205
8
0
2
0
1
145
9
0
2
1
0
185
10
0
3
0
0
165
11
1
0
0
2
115
12
1
0
1
1
155
13
1
0
2
0
195
14
1
1
0
1
135
15
1
1
1
0
175
16
1
2
0
0
155
17
2
0
0
1
125
18
2
0
1
0
165
19
2
1
0
0
145
20
3
0
0
0
135
OPTIMO= 0FI,0FE1,0FE2,3FE3
Fuente: Elaboración propia en Microsoft Office Excel 2007
La tabla que entrega la combinación con el menor costo posible se puede ver en la Figura N° 4.16.
Figura N° 4.16: Resultados ÓPTIMO Flexsim con variable de entrada igual a tres.
Fuente: Elaboración propia en Flexsim
Al comparar el resultado entregado por el software con el sacado manualmente, se comprueba que la
programación del ÓPTIMO está correcta.
Caso 3: Se deben abrir los puertos correspondientes para cada caso y las entidades deben ir
siempre al frigorífico que signifique un menor costo total de almacenamiento.
En este caso, se modificaron los valores de la tabla “precios” en Flexsim para comprobar que, si al
cambiar los resultados del óptimo, se abrían los puertos correspondientes a cada frigorífico.
46
Los valores anteriores mostrados en la Figura N° 4.15 se cambiaron por los siguientes.
Figura N° 4.17: Prueba de cambio de precios.
Fuente: Elaboración propia en Flexsim
De acuerdo a esto, si la variable de entrada es igual a tres, el nuevo ÓPTIMO entregado por el programa
indica que se deben enviar las tres camionadas (entidades) al frigorífico interno, por lo tanto se debe abrir
el puerto correspondiente y deben ingresar tres entidades para ser almacenadas en éste. Para ello, se
configuró que la variable de entrada al tiempo 40 (tiempo Flexsim) sea igual a tres. En la Figura N° 4.18
se aprecia que el software de acuerdo a su programación, realiza exactamente dicha acción. Esta misma
prueba se realizó cambiando los costos para los frigoríficos de manera tal, que todos tuviesen que ser
abiertos en alguna oportunidad. En base a estos resultados se afirma que el Caso 3 esta probado.
Figura N° 4.18: Ingreso de entidades a frigorífico correspondiente.
Fuente: Elaboración propia en Flexsim
Caso 4: Cuando se activa una petición de demanda, deben salir de los frigoríficos la cantidad
indicada de entidades.
47
Para esta prueba se configuró que a partir del tiempo 80 (tiempo Flexsim), tenían que salir de algún
frigorífico 4 entidades y luego cerrar el puerto en espera de la siguiente demanda. El software ejecuta
dicha acción sin problemas, lo que es apreciado en la Figura N° 4.19.
Figura N° 4.19: Apertura de puertos de acuerdo a demanda (tiempo 89.7 Flexsim)
Fuente: Elaboración propia en Flexsim
Caso 5: Cuando la primera opción de almacenamiento tiene su capacidad ocupada, se deben abrir
los puertos siguiendo el orden de menor a mayor costo cuando se toman las segundas o terceras
opciones de frigorífico.
Tomando en cuenta los valores de la Figura N° 4.17, el orden en que los frigoríficos deberían llenarse es
el siguiente: Frigorífico Interno, Frigorífico Externo1, Frigorífico Externo3, Frigorífico Externo2. Si se
observa de acuerdo a los precios establecidos, el Frigorífico Externo1 y el Frigorífico Externo3 tienen el
mismo costo: en este caso el programa abrirá aquel puerto de frigorífico que se encuentre más cercano al
objeto anterior (en este caso “COLA QUE DECIDE”).
Para poder comprobar esto, se tuvo que desactivar el código que tiene relación con las demandas,
porque el hecho de que éstas estuviesen activadas hacía que de los frigoríficos salieran entidades y no
se pudiera apreciar claramente el orden en que éstos se llenaban.
48
Figura N° 4.20: Capacidades de los Frigoríficos
Fuente: Elaboración propia en Flexsim
Figura N° 4.21: Frigorífico Interno sin capacidad, Frigorífico Externo 1 comenzando a llenarse (tiempo
301.78 Flexsim).
Fuente: Elaboración propia en Flexsim
49
Figura N° 4.22: Frigorífico Interno y Externo 1 sin capacidad, Frigorífico 3 comenzando a llenarse (tiempo
410.596 Flexsim).
Fuente: Elaboración propia en Flexsim
Figura N° 4.23: Frigorífico Interno, Externo 1 y Externo 3 sin capacidad, Frigorífico Externo 2 comenzando
a llenarse (tiempo 545.068 Flexsim).
Fuente: Elaboración propia en Flexsim
50
Por lo tanto, se concluye que la programación de ésta parte del programa, cumple con los requisitos de
llenar los frigoríficos desde el que tiene tarifa más baja de almacenamiento, hasta el que tiene tarifa más
alta.
Caso 6: En el caso de las demandas, se deben abrir los puertos de los frigoríficos cuyo costo de
almacenamiento es el más caro. Si éste no tiene la capacidad para enviar la cantidad demandada,
se debe seguir el orden de abrir los puertos desde el que tiene tarifas más altas, al que tiene
tarifas más bajas.
Para la prueba de este caso, los tiempos de demanda se retrasaron de manera que pudiera haber
entidades almacenadas en todos los frigoríficos y así verificar si se cumple la condición expuesta en el
título de este caso.
Siguiendo el orden “de mayor a menor costo” en base a los precios de la Figura N° 4.24, el primer
frigorífico que debiera vaciarse es el Externo2, seguido de el Externo3, luego el Interno y por último el
Externo1. Las figuras a continuación muestran el comportamiento del vaciado de éstos.
Figura N° 4.24: Precios de los Frigoríficos
Fuente: Elaboración propia en Flexsim
Figura N° 4.25: Activación de demandas (desde el tiempo 590 Flexsim)
Fuente: Elaboración propia en Flexsim
51
Figura N° 4.26: Todos los frigoríficos con entidades almacenadas (tiempo 585.284 Flexsim)
Fuente: Elaboración propia en Flexsim
Figura N° 4.27: Primer Frigorífico abierto: Externo2 (tiempo 601.584 Flexsim)
Fuente: Elaboración propia en Flexsim
52
Figura N° 4.28: Segundo Frigorífico abierto: Externo3 (tiempo 718.862 Flexsim)
Fuente: Elaboración propia en Flexsim
Figura N° 4.29: Tercer Frigorífico abierto: Interno (tiempo 888.613 Flexsim)
Fuente: Elaboración propia en Flexsim
53
Figura N° 4.30: Último frigorífico abierto: Externo1 (tiempo 1155.712 Flexsim)
Fuente: Elaboración propia en Flexsim
Como se puede concluir, el caso 6 se cumple en su totalidad al vaciar en forma correcta los frigoríficos
priorizando desde el que tiene un mayor costo de abastecimiento por unidad de tiempo, hasta que el que
tiene el menor.
Caso 7: Se deben guardar correctamente en cada entidad: el frigorífico que se usó, el tiempo que
estuvo en él, los costos de almacenamiento y transporte involucrados. También se deben guardar
todos estos datos en la TABLA GLOBAL para su posterior análisis y deben estar calculados
correctamente.
Desde un comienzo, se definieron etiquetas para las entidades que iban a circular por el modelo (capitulo
4.5). Los costos que se entregan al final del proceso, cuando lleguen a la “GRAN COLA
PROCESADORA” son los que deben estar bien calculados.
Para ello, se hiso el cálculo a mano tomando en cuenta los costos ingresados y se compararon con los
que entrega el modelo.
La primera entidad que entra, es dirigida al Frigorífico Externo 2, ésta ingresa en el tiempo 42 de Flexsim
(recordar que 10 unidades de tiempo en el modelo equivalen a 1 día de proceso en la planta, por lo tanto
si las cajas entraron entre el minuto 40 y 50 y corresponden a la producción de un día, se considera
correcto el comportamiento), su precio de transporte es 10 (pesos establecidos por el usuario) y el precio
de almacenamiento se definirá dependiendo de cuánto tiempo se encuentre almacenado.
La Figura N° 4.31 muestra el ingreso de esta entidad, y el valor de sus etiquetas en ese momento.
54
Figura N° 4.31: Ingreso de la primera entidad y valor de sus etiquetas.
Fuente: Elaboración propia en Flexsim
Luego, se espero a que dicha entidad saliera del frigorífico (recordando que las entidades siguen el orden
FIFO), y se buscaron los valores de sus etiquetas.
Figura N° 4.32: TABLA GLOBAL mostrando el valor de las etiquetas para la entidad n° 1. Fuente:
Elaboración propia en Flexsim
Si se toman en cuenta los costos mostrados en la Figura N° 4.24, según los datos de la “TABLA
GLOBAL”, la primera entidad que salió de la planta procesadora (con etiqueta “n° de entidad” igual a
uno), se almacenó en el frigorífico externo 2 en el momento 42 de Flexsim, y salió de este en el momento
950, por lo que estuvo almacenado 948 unidades de tiempo Flexsim, su precio de transporte es igual a
55
20 (unidades de dinero establecidos por el usuario que desde ahora se abreviará como “UP”), su costo
de almacenamiento 454 UP y su costo total es 474 UP.
Sacando manualmente el costo total de dicha entidad:
Por concepto de transporte, aquellas entidades que se almacenen en el frigorífico 2 tienen un costo de 10
UP por la ida, por lo tanto en ir a buscar esa entidad significarían 10 UP más, lo que hace un total de
precio de transporte igual a 20 UP.
Por concepto de almacenamiento, el precio del frigorífico 2 es de 15 UP (ton/mes). Primero este costo se
multiplica por 10 para saber cuánto cuesta 1 camionada/mes (recordar que el modelo transporta
entidades que representan camionadas de 10 toneladas). Se establece que un mes tiene 30 días en
promedio, por lo tanto el costo se divide en 30 para saber cuánto cuesta 1 día de almacenamiento y
luego se vuelve a dividir en 10 para saber cuánto cuesta almacenar 1 camionada por unidad de tiempo
del Flexsim (recordar también que un día de producción equivale a 10 unidades de tiempo en el modelo).
Después de desarrollado este ejercicio, se aprecia con que basta con dividir por 30 el costo expresado en
toneladas por mes, y luego se multiplica por la cantidad de unidades de tiempo que estuvo la entidad
almacenada. Obteniendo el resultado para este cálculo:
Se concluye que el caso 7 se cumple en su totalidad, cumpliéndose el etiquetado y los cálculos sacados
correctamente.
4.8 Diseño Experimental, Análisis y Documentación
El Análisis se hiso sobre el Modelo Específico debido a que las variables de entrada son en su mayoría
reales y porque la misma manera de analizarlo se puede proyectar a un caso donde se tengan diferentes
frigoríficos externos, cada uno con sus propios costos de almacenamiento y transporte, debido a que en
concreto, solo cambia la cantidad de variables de entrada. Se plantearon dos escenarios:

Escenario 1: muestra cómo se comporta el modelo con la capacidad actual de frigorífico interno.

Escenario 2: modela la situación si la planta tuviese la capacidad de almacenar la producción
completa de una temporada.
Esto se realizó poniendo énfasis en los costos de transporte y almacenamiento del Frigorífico Externo en
comparación con los costos de almacenamiento del Frigorífico Interno.
Se documentaron las tablas de ingreso de datos, las tablas de producción y demanda histórica, los
códigos de programación dinámica y los códigos más importantes que contienen los objetos usados en el
simulador Flexsim, las que debido a la importancia del entendimiento de cada etapa y análisis de los
pasos en el desarrollo de este proyecto de título, se han ido adjuntando en la medida que se va
desarrollando cada punto de la metodología propuesta.
4.8.1 Datos Generales ingresados al modelo
La empresa entregó los siguientes datos:
56

Costo de Almacenamiento Externo.

Costo de Transporte “ida” a Frigoríficos Externos (afirmando que todos se encuentran a
distancias muy semejantes de la planta por lo tanto el costo es el mismo).

Producción de la planta desde el mes de Enero hasta el mes de Junio del año 2010.

Embarques hechos desde el mes de Enero hasta el mes de Diciembre del año 2010.
Debido a la información generalizada otorgada por la empresa, se tuvieron que realizar las siguientes
acciones:
Hacer suposiciones para estimar los costos de almacenar en frigorífico interno junto a su costo de
transporte (sacado como porcentaje de lo que se almacena y transporta externamente).
Suponer que lo que embarcan es igual a lo que se les demanda.
Producto que entregaron los embarques de una temporada, y no la producción completa de la misma, se
estimó la demanda de los meses faltantes (en este caso desde Septiembre hasta Diciembre del año
2009).
En base a los puntos anteriores, suponiendo que los costos de almacenar internamente son un 60 por
ciento del costo de almacenar externamente, y que los costos de transporte interno son despreciables al
lado del transporte externo, la tabla siguiente resume los valores otorgados:
Tabla N° 4.3: Costos Totales Modelo Específico
Almacenamiento
ton/mes
Transporte ida
camión 10 ton
USD
USD
FI
0,78
25
FE
1,3
567
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla N° 4.4: Promedio de camionadas por mes
Camionadas
Procesadas
Enero
25
Febrero
45
Marzo
47
Abril
28
Mayo
48
Junio
46
Total
239
Promedio
40
57
Fuente: Elaboración propia Microsoft Office Excel 2007
De acuerdo a la Tabla N° 4.4, el promedio de camionadas procesadas por mes es de 40, pero tomando
en cuenta que los meses de mayor producción son los mostrados en la tabla, se les asignó
arbitrariamente una producción de 30 camionadas a los meses faltantes, con excepción de Diciembre al
que se le asignó una producción de 25.
4.8.2 Escenario 1: Situación actual.
A continuación se analizan eventos que se consideran importantes para comenzar el análisis del modelo.
Según la Figura N° 4.33 en el momento en que la planta termina de procesar su temporada 2010, el
frigorífico interno esta a su máxima capacidad, y hay una cantidad de 128 camionadas almacenadas
externamente. Por otro lado, ya han vuelto a reproceso una cantidad de 231 camionadas.
Figura N° 4.33: Estado de los Frigoríficos al momento en que termina la producción de la temporada 2010
(tiempo 2950 Flexsim).
Fuente: Elaboración propia en Flexsim
En la Figura N° 4.35 se puede apreciar que a pesar de que la demanda de la temporada finalizó, aun
quedan toneladas almacenadas en el frigorífico interno.
Por último, en la Tabla B.2 en Anexos se encuentra la información después de haber terminado la
modelación.
Según esta última tabla, la cantidad de entidades que entraron fueron 385, quedando las otras 15
almacenadas en el frigorífico interno, por lo tanto los análisis a continuación se hicieron sobre estas
entidades.
58
Figura N° 4.34: Momento en que todas las camionadas almacenadas externamente vuelven a planta
(tiempo 4300 Flexsim)
Fuente: Elaboración propia en Flexsim
Figura N° 4.35: Momento en que termina la demanda completa de la temporada 2010 (tiempo 4710
Flexsim).
Fuente: Elaboración propia en Flexsim
i. Costos de Almacenamiento
Del total de las 385 entidades almacenadas, que representan cada una a un camión de 10 toneladas, 25
fueron almacenadas en el frigorífico interno y el resto en los externos. El precio de almacenamiento total
de esas 25 entidades resultó ser alto a comparación con la cantidad de entidades que se almacenaron
59
externamente puesto que el modelo prioriza sacar de almacenamiento siempre aquellas camionadas que
están siendo guardadas en los frigoríficos que tienen mayor costo. Este resultado no es errado,
simplemente muestra el menor costo posible que se puede gastar en frigoríficos externos con la
capacidad actual de su frigorífico interno, debido a que el algoritmo de programación dinámica ayuda a
tomar la mejor decisión de almacenamiento.
Tabla N° 4.5: Costos Almacenamiento Escenario 1 por Frigorífico
Costo
Costo
Costo
(USD)
(USD)
(USD)
N°
Ent.
Alm. Total Camionada Tonelada
FI
25
2810,47
112,4188
11,24188
FE 360
13625,26
37,8479444 3,78479444
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla N° 4.6: Costos Almacenamiento generales Escenario 1
Escenario 1
Costo
Costo
Costo
(USD)
(USD)
(USD)
Trans.Total Camionada Tonelada
16.435,73 42,69
4,26901991
Fuente: Elaboración propia en Microsoft Office Excel 2007
ii. Costos de Transporte
En los costos de transporte se ve mejor reflejada la diferencia en la Tabla N° 4.7, que muestra las cifras
que implica no tener una capacidad de almacenamiento en frío más grande, donde por el simple hecho
de tener que transportar las toneladas que no se pueden guardar en el frigorífico interno, se gastan por
temporada aproximadamente 400.000 dólares.
Tabla N° 4.7: Costos de Transporte Escenario 1 por Frigorífico
Costo
Costo
Costo
(USD)
(USD)
(USD)
N° e
Ent.
Trans.Total Camionada Tonelada
FI
25
1250
50
5
FE 360
408240
1134
113,4
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla N° 4.8: Costos de Transporte generales Escenario 1
Escenario 1
Costo
Costo
(USD)
(USD)
Costo
(USD)
Trans.Total Camionada Tonelada
409490
1063,61039 106,361039
Fuente: Elaboración propia en Microsoft Office Excel 2007
60
4.8.3 Escenario 2: Situación con Frigorífico de mayor capacidad.
En este nuevo escenario, la capacidad del frigorífico se modificó de tal manera, que pudiera almacenar la
totalidad de la materia prima procesada (se redondeó a una capacidad de 400 camionadas), por lo tanto
se aprecia a través de la Figura N° 4.36 que al momento de terminar la producción de la temporada, no
hay entidades almacenadas externamente.
Figura N° 4.36: Momento en que termina la producción de la temporada 2010 (tiempo 2950 Flexsim).
Fuente: Elaboración propia en Microsoft Office Visio 2007
En la Figura N° 4.37 se puede apreciar que a pesar de que la demanda de la temporada finalizó, aun
quedan toneladas almacenadas en el frigorífico interno.
Al igual que en el modelo del Escenario 1, ahora la Tabla B.3 en Anexos resume la información después
de haber terminado la modelación.
61
Figura N° 4.37: Momento en que termina la demanda de la temporada 2010 (tiempo 4750 Flexsim)
Fuente: Elaboración propia en Microsoft Office Visio 2007
i. Costos de Almacenamiento
Del total de las 385 entidades almacenadas, que representan cada una a un camión de 10 toneladas,
ahora todas entran al frigorífico interno por su mayor capacidad de almacenamiento, por lo tanto los
costos asociados son únicamente los relacionados con éste, llegando a un costo por tonelada de 3,1
dólares.
Tabla N° 4.9: Costos Almacenamiento Escenario 2 por Frigorífico.
Costo
Costo
Costo
(USD)
(USD)
(USD)
FI
n° ent.
Alm. Tot
Camionada Tonelada
385
11954,488
31,0506182 3,10506182
FE 0
0
0
0
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla N° 4.10: Costos Almacenamiento generales Escenario 2
Escenario 2
Costo
Trans.Total
Costo x
Camionada
Costo x
Tonelada
11.954,49
31,05
3,11
Fuente: Elaboración propia en Microsoft Office Excel 2007
62
ii. Costos de Transporte
En transporte claramente es menor el costo ya que el hecho de almacenar todo en el frigorífico interno
implica no tener que gastar grandes cantidades de dinero en transportar a frigoríficos externos, llegando
a un costo de transporte por tonelada de 5 dólares (recordar que este costo se estimó, puede ser mayor o
menor, dependiendo de los costos internos que se manejen por concepto de “entrada y salida” de materia
prima.
Tabla N° 4.11: Costos de Transporte Escenario 2 por Frigorífico
Costo
Costo
Costo
(USD)
(USD)
(USD)
FI
n° entidad
Trans.Total Camionada Tonelada
385
19250
50
5
FE 0
0
0
0
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla N° 4.12: Costos de Transporte generales Escenario 1
Escenario 2
Costo
Trans.Total
Costo x
Camionada
Costo x
Tonelada
19250
50
5
Fuente: Elaboración propia en Microsoft Office Excel 2007
4.7.4 Comparación de Escenarios
En la tabla N° 4.13 se pueden ver los costos totales involucrados para cada situación planteada.
En ellos se aprecia, que el hecho de almacenar en forma externa implica un costo mucho más alto que
hacerlo de forma interna en relación a los costos de transporte, donde guardar la misma producción en
frigoríficos externos implica un gasto de 425.925,73 USD sobre 31.204,49 USD que significa hacerlo con
un frigorífico interno con mayor capacidad, superando alrededor de 13 veces el costo del escenario 2.
Tabla N° 4.13: Comparación de Costos Totales Escenarios 1 y 2
Escenario 1
COSTOS
TOTALES
unidades almacenadas)
(total
Escenario 2
COSTOS
TOTALES
unidades almacenadas)
(total
Almacenamiento 16.435,73
Almacenamiento 11.954,49
Transporte
409.490,00
Transporte
19.250,00
Total
425.925,73
Total
31.204,49
Fuente: Elaboración propia en Microsoft Office Excel 2007
63
4.9 Implementación
Este tipo de situación planteada, usando los modelos desarrollados, puede ser utilizada por cualquier tipo
de empresa que tenga problemas de abastecimiento en relación a sus capacidades de almacenaje.
Solo necesita seguir los pasos descritos en la metodología para la transformación de unidades y saber
los datos de entrada que debe manejar para ingresarlos al modelo.
Para mayor claridad, se presenta un manual de uso en ANEXO C.
64
5. RESULTADOS
Se midieron los resultados obtenidos en base al cumplimiento de los objetivos planteados al inicio del
planteamiento del problema así como de los objetivos establecidos para el modelo de simulación en el
punto 4.2.
5.1 Acerca de lo Objetivos Específicos de la Investigación

Generar una herramienta de simulación que apoye la toma de decisiones a nivel
gerencial respecto a la gestión de almacenamiento en frio: se desarrolló un modelo que une
la aplicación de investigación de operaciones para obtener resultados óptimos con la simulación
que permite cambiar las variables de entrada y probar escenarios posibles. De esta manera se
entregó una herramienta práctica que sirve para la toma de decisiones en la gestión de
almacenamiento.

Disminuir los costos de la gestión de almacenamiento en frío de los productos de granel
en una empresa mitilicultora: se trabajó con un algoritmo de programación dinámica
determinística, que da como respuesta siempre el resultado donde deben ser almacenadas las
cantidades de manera tal que los costos sean los mínimos “óptimos”. A su vez, el hecho de
desarrollar un modelo que calcule estos costos sin tener que hacer pruebas reales en el uso del
transporte y las cantidades destinadas, disminuye claramente los costos de gestionar el
almacenamiento en frio de los productos a granel.

Caracterizar los costos de la gestión de almacenamiento en frio, ya sean internos o
externos, con la finalidad de establecer una relación entre costos de almacenamiento y
volumen de producción: este objetivo deriva de lo anterior, ya que al ingresar las variables de
entrada necesarias para hacer correr los modelos, se obtienen las relaciones de lo que se
produjo sobre lo que se almacenó, así como sus tiempos de entrada a los frigoríficos, de salida,
tiempos de almacenamiento y costos totales, lo que permite tener una relación rápida de cuanto
debo producir para almacenar la menor posible simplemente cambiando la cantidad de
producción en el modelo.
5.2 Acerca de los Objetivos del Proyecto de Simulación

Se debe realizar un modelo de manera tal, que pueda ser usado por las versiones de
prueba del software Flexsim, es decir, sin necesidad de instalar la versión completa ni
tener que usar la llave que viene en formato de puerto USV. Este objetivo está planteado
debido a que las empresas, al no conocer en profundidad este software, a primera
instancia no están dispuestas a pagar el precio de compra de este: se desarrollaron los
modelos de la forma más sencilla posible, con el objetivo que no se cayera el software una vez
corriendo, no necesitara de un gran procesador para funcionar (hablando sobre la base de los
requisitos técnicos que pide Flexsim).

La fijación del primer objetivo conlleva a otro, que es crear un modelo que no tenga más
de 15 objetos, que es la cantidad máxima que permiten las versiones de prueba: se
programó el modelo de manera tal que el número de objetos usados fue 15 para el Modelo
Genérico y 12 para el Modelo Específico.
65

Respecto a los resultados que entregue el software, éste debe poder indicar en qué
frigorífico se debe almacenar una cierta cantidad de producción, de manera tal que los
costos sean mínimos. A su vez, debe indicar los flujos de las entidades, es decir: cuál ha
sido la ruta (frigorífico) del producto, el tiempo de almacenamiento y el costo involucrado:
se logra este objetivo en la TABLA GLOBAL que entrega para cada modelo, cada uno de los
datos que se deben cumplir en este punto, y siendo la ruta de destino de cada camionada, el
frigorífico por donde pasen indicado en dicha tabla, debido a que los datos almacenados en ella,
son resultado de un análisis que entrega respuestas “optimas”.
66
6. CONCLUSIONES
El estudio de la eficiencia del almacenamiento en frio, a través del uso de herramientas como Flexsim
unido a algoritmos de programación dinámica resulta de mucha ayuda a la hora de tomar decisiones
rápidas y con fundamento, ya que en poco tiempo se puede conocer donde destinar la producción
estimada de un periodo de tiempo prolongado así como sus costos involucrados.
Por otro lado, al poder plantear diferentes escenarios, y que éstos entreguen siempre la mejor alternativa
de almacenamiento permite formar relaciones “producción-costos de almacenamiento” rápidamente sin
costo alguno ni perjuicio de tiempo y dinero sobre pruebas reales.
El Modelo Genérico es por tanto, una herramienta práctica y de fácil uso cuando se quiere tener una
visión holística del comportamiento en un proceso de almacenamiento.
En cuanto al Modelo Específico, que en el fondo es una derivación del Modelo Genérico, aplicado a la
situación particular de una empresa, a través de este y de los dos escenarios planteados se logra captar
el gasto global en concepto logístico por el hecho de no tener una capacidad de almacenaje en frio
mayor. A su vez, al igual que el Modelo Genérico, al permitir modificar las variables de entrada, entrega
diversos resultados de comportamiento que facilitan analizar los mismos escenarios.
Además, queda abierta la posibilidad de que se puedan realizar otros estudios de gestión de
abastecimiento para cualquier rubro de empresas que presenten este tipo de problemas, y que puedan
llevar su producción y demanda a las características que pide el modelo para ser usado.
Finalmente, junto con lo anterior, por el hecho de haber desarrollado una metodología que propuso
integrar la herramienta de programación dinámica determinística con simulación, se pueden desarrollar a
futuro otros tipos de modelos que partan de la misma base integrando por ejemplo otras áreas de la
investigación de operaciones a la programación en el simulador Flexsim.
67
7. RECOMENDACIONES
Se recomienda que cada vez que se desee hacer un estudio de simulación que trate problemas de
abastecimiento y toma de decisiones, se revise este estudio y la metodología en él propuesta, debido a
que involucra y plantea una manera nueva de poder usar la herramienta Flexsim entregando resultados
óptimos por medio de la programación integrada de sus objetos.
Junto con lo anterior, se recomienda probar el comportamiento de otros objetos dentro del simulador que
puedan servir para un mejor desempeño del modelo o lograr mayor eficiencia al momento de procesar los
datos. Otra recomendación importante es probar la manera de poder ingresar funciones al simulador de
manera tal que en la programación se puedan llamar cada vez que se necesiten y no tener que
programarlas varias veces como ocurrió en este caso.
Además, en el estudio del Modelo Específico, se recomienda hacer un análisis de evaluación de proyecto
para la construcción de un frigorífico con mayor capacidad o ampliación del actual.
Finalmente, se recomienda utilizar la herramienta desarrollada en este proyecto de titulo que se presenta
a través del Modelo Genérico, de manera que se conozca a cabalidad la forma de procesar la
información y tomar las decisiones así como la función de cada objeto, y se prueben diversos escenarios,
por si se quieren modificar los objetos o los elementos en pro de un mejor desempeño.
68
8. BIBLIOGRAFIA
BAGNARA, M. MALTRAIN, G. 2008. Descripción del sector mitilicultor en la región de Los Lagos, Chile:
evolución y proyecciones. En: LOVATELLI, A. FARIAS, A. URIARTE, I. Estado actual del cultivo y manejo
de moluscos bivalvos y su proyección futura: factores que afectan su sustentabilidad en América Latina.
Taller Técnico Regional de la FAO.2007. Chile. FAO Actas de Pesca y Acuicultura N°12. Rome, FAO.
2008. 359p.
BANKS, J. CARSON II, JOHN, S. BARRY, N. 1996. “Discrete Event System Simulation”. 2ª ed. Prentice
Hall.
CHASE, R., JACOBS, F. y AQUILANO, N. 2005. Administración de la Producción y Operaciones para
una Ventaja Competitiva. 10ª ed. México, McGraw-Hill.
DIAZ,M. MELLA,H. 2005. Propuesta de una Metodología de Validación de Software de Simulación. Caso
Flexsim. Trabajo de Titulación Presentado en conformidad a los requisitos para obtener el título de
Ingeniero Civil Industrial. Concepción. Universidad del Bío-Bío. 339p.
HILLIER, F. y LIEBERMAN, G. 2006. Investigación de Operaciones.8 ª ed. España. McGrawHill/Interamericana de España, S.A.U. 1193p.
HOPEMAN, R. 1973. Producción, conceptos, análisis y control. México. Continental. 699p.
KRAJEWSKI, L. 2000. Administración de Operaciones, Estrategia y Análisis.5 ª ed. México, Pearson
Educación. 892p.
LAW, A. KETON, W. 2000. Simulation Modeling and Analysis 3ª ed. McGraw-Hill. 68p.
MACHUCA, D. 1995. Dirección de Operaciones. Aspectos Tácticos y Operativos en la Producción y los
Servicios. 1ª ed. España, McGraw-Hill. 896p.
MILLER, R y MEINERS, R. 2004. Microeconomía. 3ª ed. México, McGraw-Hill.
PINDYCK, R. y RUBINFEL, D. 2006. Microeconomía. 9ª ed. España, Prentice Hall. 700p.
PRESSMAN, R. 2002. Ingeniería del Software. Un enfoque práctico.5ª ed. Madrid. McGrawHill/Interamericana de España, S.A.U. 589p.
TAHA, H. 2004. Investigación de Operaciones.7ª ed. México. Pearson Educación. 848p.
URZELAI INZA, A. 2006. Manual Básico de logística integral. 1ª ed. Madrid, Díaz de Santos. 153p.
69
9. LINKOGRAFIA
ANDRADE, S. 2005. Diccionario de Economía. En: THOMPSON, I. 2008. Definición de Eficiencia. [en
línea] <http://www.promonegocios.net/administracion/definicion-eficiencia.html> [consulta: septiembre
2010].
CHIAVENATO, I. 2004. Introducción a la Teoría General de la Administración. En: THOMPSON, I. 2008.
Definición de Eficiencia. [en línea] <http://www.promonegocios.net/administracion/definicioneficiencia.html> [consulta: septiembre 2010]
CORPORACION FLEXSIM MEXICO. 2011. [en línea] <http://www.flexsim.com.mx/menu.html> [consulta:
noviembre 2010].
DICCIONARIO DE INFORMATICA, 2011. [en línea] <http://www.alegsa.com.ar/Dic/modelo.php>
[consulta: noviembre 2010].
DSLC, CONSULTORIA Y SISTEMAS DE LOGISTICA INTEGRAL, S.L.L. 2006. “Gestión de almacén y
diseño de sistemas de almacenaje”. [en línea] <http://www.navactiva.com/es/asesoria/gestion-dealmacen-y-diseño-de-sistema-de-almacenaje_26886> [consulta: septiembre 2010].
FCC LOGISTICA, S.A- BU.AUTOMOCIÓN. 2006.”El sistema de gestión del almacén y los modelos de
almacenamiento”. [en línea] <http://www.navactiva.com/es/documentacion/el-sistema-de-gestion-delalmacen-y-los-modelos-de-almacenamiento_33555> [consulta: septiembre 2010].
KOONTZ, H. y WEIHRICH, H. 2004. Administración: Una Perspectiva Global. En: THOMPSON, I. 2008.
Definición de Eficiencia. [en línea] <http://www.promonegocios.net/administracion/definicioneficiencia.html> [consulta: septiembre 2010]
MANKIW, G. 2004. Economía. En: THOMPSON, I. 2008. Definición de Eficiencia. [en línea]
<http://www.promonegocios.net/administracion/definicion-eficiencia.html> [consulta: septiembre 2010]
MAULEON,
M.
2007.
El
Almacén
del
siglo
XXI.
[en
línea].
<http://www.navactiva.com/es/documentacion/el-almacen-en-el-siglo-xxi_29172> [consulta: septiembre
2010].
OLIVEIRA DA SILVA R. Teorías de la Administración. 2002. En: THOMPSON, I. 2008. Definición de
Eficiencia. [en línea] <http://www.promonegocios.net/administracion/definicion-eficiencia.html> [consulta:
septiembre 2010]
REAL
ACADEMIA
ESPAÑOLA.
2011.
[en
línea]
<http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=modelo> [consulta: noviembre 2010].
ROBBINS, S. y COULTER, M. 2005. Administración. En: THOMPSON, I. 2008. Definición de Eficiencia.
[en línea] <http://www.promonegocios.net/administracion/definicion-eficiencia.html> [consulta: septiembre
2010]
SAMUELSON, P. y NORDHAUS, W. 2002. Economía. En: THOMPSON, I. 2008. Definición de Eficiencia.
[en línea] <http://www.promonegocios.net/administracion/definicion-eficiencia.html> [consulta: septiembre
2010].
70
TORRES,
A.
2009.
“Conceptos
Elementales
de
<http://antiguo.itson.mx/dii/atorres/apuntes.html> [consulta: octubre 2010].
Sistemas”
[en
línea]
ZUGARRAMURDI, A. PARIN, M. LUPIN, H. 1998. “Ingeniería Económica Aplicada a la Industria
Pesquera.
Fao
Documento
Técnico
de
Pesca
351.
[en
línea]
<http://www.fao.org/DOCREO/003/v8490s/v8490s06.htm> [consulta: octubre 2010].
71
10. ANEXOS
ANEXO A: CODIGOS PROGRAMADOS EN OBJETOS
Código A.1: “Programación Modelo Genérico PROCESADOR1”
PROCESADOR1 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
//da un valor único a cada entidad por orden de llegada
int x=gettablenum("tabla valores",3,1);
x=x+1;
setlabelnum(item,"entidad n°",x);
settablenum("tabla valores",3,1,x);
Código A.2: “Programación Modelo Genérico FUENTE1”.
FUENTE 1 (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/*carga los valores de las disponibilidades en los frigoríficos*/
int w=gettablenum("cap.disp",1,1);
settablenum("cap doisp 2",1,1,w);
int x=gettablenum("cap.disp",2,1);
settablenum("cap doisp 2",2,1,x);
int y=gettablenum("cap.disp",3,1);
settablenum("cap doisp 2",3,1,y);
int z=gettablenum("cap.disp",4,1);
settablenum("cap doisp 2",4,1,z);
72
Código A.3: “Programación Modelo Genérico FUENTE2”.
FUENTE 2 (OnCreation)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int rownumber = parval(2);
int numero_ope=gettablenum("tabla valores",1,8);
numero_ope=numero_ope+1;
int tiempo_ope=gettablenum("PRODUCCION",numero_ope,1);
int tiempo=time();
if(tiempo==tiempo_ope-1)
{
closeoutput(rank(model,3));
}
if(tiempo==tiempo_ope+1)
{
openoutput(rank(model,3));
settablenum("tabla valores",1,8,numero_ope);
}
if(tiempo==40)
{
closeoutput(rank(model(),5));
closeoutput(rank(model(),6));
closeoutput(rank(model(),7));
closeoutput(rank(model(),8));
}
FUENTE 2 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
int cont=gettablenum("tabla valores",1,9);
cont=cont+1;
int tiempodda=gettablenum("demandas",cont,1);
int tiemp=time();
if(tiemp==tiempodda)
{
//obtengo la demanda de ese momento
int dda=gettablenum("demandas",cont,2);
//obtenemos los precios almacenamiento
int a1=gettablenum("precios",1,1);
int a2=gettablenum("precios",2,1);
int a3=gettablenum("precios",3,1);
int a4=gettablenum("precios",4,1);
//obtenemos los precios tranportes
int tr1=gettablenum("precios",1,2);
int tr2=gettablenum("precios",2,2);
int tr3=gettablenum("precios",3,2);
int tr4=gettablenum("precios",4,2);
73
//obetenemos las sumas
int suma1=a1+tr1;
int suma2=a2+tr2;
int suma3=a3+tr3;
int suma4=a4+tr4;
int sumamayor=0;
int puertomayor;
int puertomenor;
int sumamenor=10000000;
int puertosegundo;
int puertotercero;
//buscamos el de mayor costo
if(suma1>sumamayor)
{
sumamayor=suma1;
puertomayor=1;
}
if(suma2>sumamayor)
{
sumamayor=suma2;
puertomayor=2;
}
if(suma3>sumamayor)
{
sumamayor=suma3;
puertomayor=3;
}
if(suma4>sumamayor)
{
sumamayor=suma4;
puertomayor=4;
}
//busca el de menor costo
if(suma1<sumamenor)
{
sumamenor=suma1;
puertomenor=1;
}
if(suma2<sumamenor)
{
sumamenor=suma2;
puertomenor=2;
}
if(suma3<sumamenor)
{
sumamenor=suma3;
puertomenor=3;
}
if(suma4<sumamenor)
{
sumamenor=suma4;
puertomenor=4;
}
//busca el segundo mayor y el tercero mayor
if (puertomayor==1 && puertomenor==2)
{
if (suma3<suma4)
{
74
puertosegundo=4;
puertotercero=3;
}
else
{
puertosegundo=3;
puertotercero=4;
}
}
else if (puertomayor==1 && puertomenor==3)
{
if (suma2<suma4)
{
puertosegundo=4;
puertotercero=2;
}
else
{
puertosegundo=2;
puertotercero=4;
}
}
else if (puertomayor==1 && puertomenor==4)
{
if (suma2<suma3)
{
puertosegundo=3;
puertotercero=2;
}
else
{
puertosegundo=2;
puertotercero=3;
}
}
else if (puertomayor==2 && puertomenor==1)
{
if (suma3<suma4)
{
puertosegundo=4;
puertotercero=3;
}
else
{
puertosegundo=3;
puertotercero=4;
}
}
else if (puertomayor==2 && puertomenor==3)
{
if (suma1<suma4)
{
puertosegundo=4;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=4;
}
}
else if (puertomayor==2 && puertomenor==4)
{
75
if (suma1<suma3)
{
puertosegundo=3;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=3;
}
}
else if (puertomayor==3 && puertomenor==1)
{
if (suma2<suma4)
{
puertosegundo=4;
puertotercero=2;
}
else
{
puertosegundo=2;
puertotercero=4;
}
}
else if (puertomayor==3 && puertomenor==2)
{
if (suma1<suma4)
{
puertosegundo=4;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=4;
}
}
else if (puertomayor==3 && puertomenor==4)
{
if (suma1<suma2)
{
puertosegundo=2;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=2;
}
}
else if (puertomayor==4 && puertomenor==1)
{
if (suma2<suma3)
{
puertosegundo=3;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=3;
}
}
76
else if (puertomayor==4 && puertomenor==2)
{
if (suma1<suma3)
{
puertosegundo=3;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=3;
}
}
else if (puertomayor==4 && puertomenor==3)
{
if (suma1<suma2)
{
puertosegundo=2;
puertotercero=1;
}
else
{
puertosegundo=1;
puertotercero=2;
}
}
// Obtiene las disponibilidades de cada puerto
int entf1;
int entf2;
int entf3;
int entf4;
int salf1;
int salf2;
int salf3;
int salf4;
int dispf1;
int dispf2;
int dispf3;
int dispf4;
entf1=gettablenum("entradas
entf2=gettablenum("entradas
entf3=gettablenum("entradas
entf4=gettablenum("entradas
y
y
y
y
salidas",1,1);
salidas",2,1);
salidas",3,1);
salidas",4,1);
salf1=gettablenum("entradas
salf2=gettablenum("entradas
salf3=gettablenum("entradas
salf4=gettablenum("entradas
y
y
y
y
salidas",1,2);
salidas",2,2);
salidas",3,2);
salidas",4,2);
dispf1=entf1-salf1;
dispf2=entf2-salf2;
dispf3=entf3-salf3;
dispf4=entf4-salf4;
// Pregunta cual puerto es cual y abre puerto dependiendo de cuál sea el
mayor, cual el segundo mayor, y así.
if(puertomayor==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
77
}
else
{
if(puertosegundo==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
openoutput(rank(model(),8));
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),7));
}
}
}
}
else if(puertosegundo==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),8));
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),6));
78
}
}
}
}
else if(puertosegundo==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),7));
}
}
else if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
openoutput(rank(model(),6));
}
}
}
}
}
}
else if(puertomayor==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
if(puertosegundo==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
openoutput(rank(model(),8));
79
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),7));
}
}
}
}
else if(puertosegundo==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
openoutput(rank(model(),8));
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),5));
}
}
}
}
else if(puertosegundo==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
80
openoutput(rank(model(),7));
}
}
else if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
openoutput(rank(model(),5));
}
}
}
}
}
}
else if(puertomayor==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
if(puertosegundo==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),8));
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),6));
}
}
}
}
else if(puertosegundo==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
81
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
openoutput(rank(model(),8));
}
}
else if(puertotercero==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
openoutput(rank(model(),5));
}
}
}
}
else if(puertosegundo==4)
{
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
openoutput(rank(model(),6));
}
}
else if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),5));
}
}
}
}
}
}
else if(puertomayor==4)
{
82
if(dispf4>=dda)
{
openoutput(rank(model(),8));
}
else
{
if(puertosegundo==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),7));
}
}
else if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
openoutput(rank(model(),6));
}
}
}
}
else if(puertosegundo==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
openoutput(rank(model(),7));
}
}
else if(puertotercero==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
83
else
{
openoutput(rank(model(),5));
}
}
}
}
else if(puertosegundo==3)
{
if(dispf3>=dda)
{
openoutput(rank(model(),7));
}
else
{
if(puertotercero==1)
{
if(dispf1>=dda)
{
openoutput(rank(model(),5));
}
else
{
openoutput(rank(model(),6));
}
}
else if(puertotercero==2)
{
if(dispf2>=dda)
{
openoutput(rank(model(),6));
}
else
{
openoutput(rank(model(),5));
}
}
}
}
}
}
settablenum("tabla valores",1,9,cont);
}
84
Código A.4: “Programación Modelo Genérico FE1”
FI (OnEntry)
/* PARTE I */
/*Para contar la cantidad de unidades que entran y salen
int x=gettablenum("entradas y salidas",1,1);
x=x+1;
settablenum("entradas y salidas",1,1,x);
int y=gettablenum("cap doisp 2",1,1);
y=y-1;
settablenum("cap doisp 2",1,1,y);/*lo guarda como la nueva capacidad disponible
actual*/
/* PARTE II */
/* Acá se etiqueta el objeto para identificarlo respecto al frigorífico donde
fue almacenado*/
setlabelnum(item,"frigorifico",1);
/* PARTE III */
/* Guarda en una tabla el tiempo en el que entra a frigorífico*/
int t=time();
setlabelnum(item,"t entrada",t);
/* PARTE IV */
/* Saca el costo de transporte: como cada unidad que entra es un camión de 10
toneladas, el costo se calcula simplemente por el flete de 1 camión*/
int ctida=gettablenum("precios",1,2);
setlabelnum(item,"precio transporte",ctida);
/*PARTE V*/
/*Dependiendo de lo que se necesite enviar, abre o cierra el puerto*/
int enviados=gettablenum("TABLA DE ENVIOS",1,1);
int cajas=gettablenum("TABLA DE ENVIOS",2,1);
cajas=cajas+1;
settablenum("TABLA DE ENVIOS",2,1,cajas);
if (enviados==cajas)
{
closeinput(current);
settablenum("TABLA DE ENVIOS",1,1,0);
settablenum("TABLA DE ENVIOS",2,1,0);
}
FI (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/* Suma una unidad a la cantidad de unidades que salen y lo guarda*/
int x=gettablenum("entradas y salidas",1,2);
x=x+1;
settablenum("entradas y salidas",1,2,x);
/* Suma una unidad a la capaidad actual y lo guarda*/
int y=gettablenum("cap doisp 2",1,1);
if (y>0)
{
85
y=y+1;
settablenum("cap doisp 2",1,1,y);
}
/* PARTE II */
/* Guarda el tiempo de salida del frigorífico */
int t=time();
setlabelnum(item,"t salida",t);
/* PARTE III */
/* Calcula el tiempo de estadía en frigorífico y guarda en etiqueta*/
int tent=getlabelnum(item,"t entrada");
int tsal=getlabelnum(item,"t salida");
int talm=tsal-tent;
setlabelnum(item,"t almacenamiento",talm);
/* PARTE IV */
/* Saca el costo de transporte de vuelta: como cada unidad que entra es un
camión de 10 toneladas, el costo se calcula simplemente por el flete de 1
camión*/
int ctida=getlabelnum(item,"precio transporte");
int ctvuelta=gettablenum("precios",1,2);
int ctidayvuelta=ctida+ctvuelta;
setlabelnum(item,"precio transporte",ctidayvuelta);
/* PARTE V */
/* Saca el costo total= almacenamiento+transporte */
int calmacen=getlabelnum(item,"precio alm");
int ctransp=getlabelnum(item,"precio transporte");
int caltrans=calmacen+ctransp;
setlabelnum(item,"precio total",caltrans);
86
Código A.5: “Programación Modelo Genérico FE1”
FE1 (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/* para contar la cantidad de unidades que entran y salen
del frigorífico externo1, e ir guardando la capacidad en cada momento*/
int x=gettablenum("entradas y salidas",2,1); /*adquiere el valor de cuantas
unidades han entrado */
x=x+1; /* le suma una unidad*/
settablenum("entradas y salidas",2,1,x); /*lo guarda en la tabla de unidades
entradas, esta vez sumada la nueva unidad entrante*/
int y=gettablenum("cap doisp 2",2,1); /*busca en la tabla de capacidaddes la
cantidad que el frigorífico externo1 inicialmente tenia disponible*/
y=y-1; /*le resta una unidad*/
settablenum("cap doisp 2",2,1,y);/*lo guarda como la nueva capacidad
disponible actual*/
/* PARTE II */
/* aca se etiqueta el objeto para identificarlo respecto al frigorifico
donde fue almacenado*/
setlabelnum(item,"frigorifico",2);
/* PARTE III */
/* guardando en una tabla el tiempo en el que entra a frigorifico*/
int t=time();
setlabelnum(item,"t entrada",t);
/* PARTE IV */
/* sacando el costo de transporte: como cada unidad que entra es un camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=gettablenum("precios",2,2);
setlabelnum(item,"precio transporte",ctida);
/*PARTE V*/
/*dependiendo de lo que se necesite enviar, abre o cierra el puerto*/
int enviados=gettablenum("TABLA DE ENVIOS",1,2);
int cajas=gettablenum("TABLA DE ENVIOS",2,2);
cajas=cajas+1;
settablenum("TABLA DE ENVIOS",2,2,cajas);
if (enviados==cajas)
{
closeinput(current); // si no funciona es
closeinput(rank(model(),4);
settablenum("TABLA DE ENVIOS",1,2,0);
settablenum("TABLA DE ENVIOS",2,2,0);
}
87
FE1 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/*sumo una unidad a la cantidad de unidades que salen y lo guardo*/
int x= gettablenum("entradas y salidas",2,2);
x=x+1;
settablenum("entradas y salidas",2,2,x);
/*sumo una unidad a la capaidad actual y lo guardo*/
int y=gettablenum("cap doisp 2",2,1);
if (y>=0)
{
y=y+1;
settablenum("cap doisp 2",2,1,y);
}
/* PARTE II */
/* guardando el tiempo de salida del frigorifico */
int t=time();
setlabelnum(item,"t salida",t);
/*PARTE III */
/* calculando el tiempo de estadia en frigorifico y guardandolo en etiqueta*/
int tent=getlabelnum(item,"t entrada");
int tsal=getlabelnum(item,"t salida");
int talm=tsal-tent;
setlabelnum(item,"t almacenamiento",talm);
/* PARTE IV */
/* sacando el costo de transporte de vuelta: como cada unidad que entra es un
camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=getlabelnum(item,"precio transporte");
int ctvuelta=gettablenum("precios",2,2);
int ctidayvuelta=ctida+ctvuelta;
setlabelnum(item,"precio transporte",ctidayvuelta);
/* PARTE V */
/* sacando el costo total= almacenamiento+transporte */
int calmacen=getlabelnum(item,"precio alm");
int ctransp=getlabelnum(item,"precio transporte");
int caltrans=calmacen+ctransp;
setlabelnum(item,"precio total",caltrans);
88
Código A.6: “Programación Modelo Genérico FE2”
FE2 (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/* para contar la cantidad de unidades que entran y salen
del frigorífico externo2, e ir guardando la capacidad en cada momento*/
int x=gettablenum("entradas y salidas",3,1); /*adquiere el valor de cuantas
unidades han entrado */
x=x+1; /* le suma una unidad*/
settablenum("entradas y salidas",3,1,x); /*lo guarda en la tabla de unidades
entradas, esta vez sumada la nueva unidad entrante*/
int y=gettablenum("cap doisp 2",3,1); /*busca en la tabla de capacidaddes la
cantidad que el frigorífico externo2 inicialmente tenia disponible*/
y=y-1; /*le resta una unidad*/
settablenum("cap doisp 2",3,1,y);/*lo guarda como la nueva capacidad
disponible actual*/
/* PARTE II */
/* aca se etiqueta el objeto para identificarlo respecto al frigorifico
donde fue almacenado*/
setlabelnum(item,"frigorifico",3);
/* PARTE III */
/* guardando en una tabla el tiempo en el que entra a frigorifico*/
int t=time();
setlabelnum(item,"t entrada",t);
/* PARTE IV */
/* sacando el costo de transporte: como cada unidad que entra es un camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=gettablenum("precios",3,2);
setlabelnum(item,"precio transporte",ctida);
/*PARTE V*/
/*dependiendo de lo que se necesite enviar, abre o cierra el puerto*/
int enviados=gettablenum("TABLA DE ENVIOS",1,3);
int cajas=gettablenum("TABLA DE ENVIOS",2,3);
cajas=cajas+1;
settablenum("TABLA DE ENVIOS",2,3,cajas);
if (enviados==cajas)
{
closeinput(current);
settablenum("TABLA DE ENVIOS",1,3,0);
settablenum("TABLA DE ENVIOS",2,3,0);
}
FE2 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
89
/* PARTE I */
/*sumo una unidad a la cantidad de unidades que salen y lo guardo*/
int x= gettablenum("entradas y salidas",3,2);
x=x+1;
settablenum("entradas y salidas",3,2,x);
/*sumo una unidad a la capaidad actual y lo guardo*/
int y=gettablenum("cap doisp 2",3,1);
if (y>=0)
{
y=y+1;
settablenum("cap doisp 2",3,1,y);
}
/* PARTE II */
/* guardando el tiempo de salida del frigorifico */
int t=time();
setlabelnum(item,"t salida",t);
/*PARTE III */
/* calculando el tiempo de estadia en frigorifico y guardandolo en etiqueta*/
int tent=getlabelnum(item,"t entrada");
int tsal=getlabelnum(item,"t salida");
int talm=tsal-tent;
setlabelnum(item,"t almacenamiento",talm);
/* PARTE IV */
/* sacando el costo de transporte de vuelta: como cada unidad que entra es un
camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=getlabelnum(item,"precio transporte");
int ctvuelta=gettablenum("precios",3,2);
int ctidayvuelta=ctida+ctvuelta;
setlabelnum(item,"precio transporte",ctidayvuelta);
/* PARTE V */
/* sacando el costo total= almacenamiento+transporte */
int calmacen=getlabelnum(item,"precio alm");
int ctransp=getlabelnum(item,"precio transporte");
int caltrans=calmacen+ctransp;
setlabelnum(item,"precio total",caltrans);
90
Código A.7: “Programación Modelo Genérico FE3”
FE3 (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
/* PARTE I */
/* para contar la cantidad de unidades que entran y salen
del frigorífico externo3, e ir guardando la capacidad en cada momento*/
int x=gettablenum("entradas y salidas",4,1); /*adquiere el valor de cuantas
unidades han entrado */
x=x+1; /* le suma una unidad*/
settablenum("entradas y salidas",4,1,x); /*lo guarda en la tabla de unidades
entradas, esta vez sumada la nueva unidad entrante*/
int y=gettablenum("cap doisp 2",4,1); /*busca en la tabla de capacidaddes la
cantidad que el frigorífico externo3 inicialmente tenia disponible*/
y=y-1; /*le resta una unidad*/
settablenum("cap doisp 2",4,1,y);/*lo guarda como la nueva capacidad
disponible actual*/
/* PARTE II */
/* aca se etiqueta el objeto para identificarlo respecto al frigorifico
donde fue almacenado*/
setlabelnum(item,"frigorifico",4);
/* PARTE III */
/* guardando en una tabla el tiempo en el que entra a frigorifico*/
int t=time();
setlabelnum(item,"t entrada",t);
/* PARTE IV */
/* sacando el costo de transporte: como cada unidad que entra es un camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=gettablenum("precios",4,2);
setlabelnum(item,"precio transporte",ctida);
/*PARTE V*/
/*dependiendo de lo que se necesite enviar, abre o cierra el puerto*/
int enviados=gettablenum("TABLA DE ENVIOS",1,4);
int cajas=gettablenum("TABLA DE ENVIOS",2,4);
cajas=cajas+1;
settablenum("TABLA DE ENVIOS",2,4,cajas);
if (enviados==cajas)
{
closeinput(current); // si no funciona es
closeinput(rank(model(),4);
settablenum("TABLA DE ENVIOS",1,4,0);
settablenum("TABLA DE ENVIOS",2,4,0);
}
FE3 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
91
int port = parval(2);
/* PARTE I */
/*sumo una unidad a la cantidad de unidades que salen y lo guardo*/
int x= gettablenum("entradas y salidas",4,2);
x=x+1;
settablenum("entradas y salidas",4,2,x);
/*sumo una unidad a la capaidad actual y lo guardo*/
int y=gettablenum("cap doisp 2",4,1);
if (y>=0)
{
y=y+1;
settablenum("cap doisp 2",4,1,y);
}
/* PARTE II */
/* guardando el tiempo de salida del frigorifico */
int t=time();
setlabelnum(item,"t salida",t);
/*PARTE III */
/* calculando el tiempo de estadia en frigorifico y guardandolo en etiqueta*/
int tent=getlabelnum(item,"t entrada");
int tsal=getlabelnum(item,"t salida");
int talm=tsal-tent;
setlabelnum(item,"t almacenamiento",talm);
/* PARTE IV */
/* sacando el costo de transporte de vuelta: como cada unidad que entra es un
camion
de 10 toneladas, el costo se calcula simplemente por el flete de 1 camion*/
int ctida=getlabelnum(item,"precio transporte");
int ctvuelta=gettablenum("precios",4,2);
int ctidayvuelta=ctida+ctvuelta;
setlabelnum(item,"precio transporte",ctidayvuelta);
/* PARTE V */
/* sacando el costo total= almacenamiento+transporte */
int calmacen=getlabelnum(item,"precio alm");
int ctransp=getlabelnum(item,"precio transporte");
int caltrans=calmacen+ctransp;
setlabelnum(item,"precio total",caltrans);
92
Código A.8: “Programación Modelo Genérico PROCESADOR 2”
PROCESADOR 2 (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
//calcula el costo de almacenamiento
double tiempoalm=getlabelnum(item,"t almacenamiento");
double frig=getlabelnum(item,"frigorifico");
double calm;
double calm2;
if (frig==1)
{
calm=gettablenum("precios",1,1);
calm=calm/30;
calm2=calm*tiempoalm;
setlabelnum(item,"precio alm",calm2);
}
else if (frig==2)
{
calm=gettablenum("precios",2,1);
calm=calm/30;
calm2=calm*tiempoalm;
setlabelnum(item,"precio alm",calm2);
}
else if (frig==3)
{
calm=gettablenum("precios",3,1);
calm=calm/30;
calm2=calm*tiempoalm;
setlabelnum(item,"precio alm",calm2);
}
else if (frig==4)
{
calm=gettablenum("precios",4,1);
calm=calm/30;
calm2=calm*tiempoalm;
setlabelnum(item,"precio alm",calm2);
}
Código A.9: “Programación Modelo Genérico GRAN COLA QUE PROCESA”.
GRAN COLA QUE PROCESA (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
//cierra los puertos dependiendo de donde vengan
int etiquet=getlabelnum(item,"frigorifico");
int contad=gettablenum("tabla valores",1,10);
int contad1=gettablenum("tabla valores",1,11);
contad=contad+1;
contad1=contad1+1;
int dda2=gettablenum("demandas",contad1,2);
int cajitas=gettablenum("tabla valores",2,10);
cajitas=cajitas+1;
93
settablenum("tabla valores",2,10,cajitas);
if (etiquet==1)
{
if(cajitas==dda2)
{
closeoutput(rank(model(),5));
settablenum("tabla valores",1,10,0);
settablenum("tabla valores",2,10,0);
settablenum("tabla valores",1,11,contad1);
}
}
else if (etiquet==2)
{
if(cajitas==dda2)
{
closeoutput(rank(model(),6));
settablenum("tabla valores",1,10,0);
settablenum("tabla valores",2,10,0);
settablenum("tabla valores",1,11,contad1);
}
}
else if (etiquet==3)
{
if(cajitas==dda2)
{
closeoutput(rank(model(),7));
settablenum("tabla valores",1,10,0);
settablenum("tabla valores",2,10,0);
settablenum("tabla valores",1,11,contad1);
}
}
else if (etiquet==4)
{
if(cajitas==dda2)
{
closeoutput(rank(model(),8));
settablenum("tabla valores",1,10,0);
settablenum("tabla valores",2,10,0);
settablenum("tabla valores",1,11,contad1);
}
}
// guarda todos los datos en tabla global
double conttg=gettablenum("tabla valores",1,12);
conttg=conttg+1;
double frigorif=getlabelnum(item,"frigorifico");
double tient=getlabelnum(item,"t entrada");
double tisal=getlabelnum(item,"t salida");
double talma=getlabelnum(item,"t almacenamiento");
double costtrans=getlabelnum(item,"precio transporte");
double costalma=getlabelnum(item,"precio alm");
double numentidad=getlabelnum(item,"entidad n°");
double costotot=costtrans+costalma;
setlabelnum(item,"precio total",costotot);
settablenum("TABLA GLOBAL",conttg,1,frigorif);
settablenum("TABLA GLOBAL",conttg,2,tient);
settablenum("TABLA GLOBAL",conttg,3,tisal);
settablenum("TABLA GLOBAL",conttg,4,talma);
settablenum("TABLA GLOBAL",conttg,5,costtrans);
settablenum("TABLA GLOBAL",conttg,6,costalma);
settablenum("TABLA GLOBAL",conttg,7,costotot);
settablenum("TABLA GLOBAL",conttg,8,numentidad);
settablenum("tabla valores",1,12,conttg);
94
Código A.10: “Programación Modelo Específico COLA1”
COLA 1 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
int
int
int
int
numero_op=gettablenum("tabla valores",1,5)+1;
produccion_op=gettablenum("PRODUCCION",numero_op,2);
tiempo_op=gettablenum("PRODUCCION",numero_op,1);
tiempo=time();
if(tiempo==tiempo_op+1)
{
settablenum("tabla valores",1,5,numero_op); //Aumenta el contador
//Saca la combinatoria
int xx=produccion_op;
int jj;
int gg;
int bb;
int dd;
int sumacomb;
int cont=gettablenum("combinaciones",1,5);
for (jj=0;jj<=xx;jj++)
{
for (gg=0;gg<=xx;gg++)
{
settablenum("combinaciones",cont+1,1,jj);
settablenum("combinaciones",cont+1,2,gg);
bb=gettablenum("combinaciones",cont+1,1);
dd=gettablenum("combinaciones",cont+1,2);
sumacomb=bb+dd;
if(sumacomb==xx)
{
cont=cont+1;
}
}
}
// Borra el último valor
settablenum("combinaciones",cont+1,1,0);
settablenum("combinaciones",cont+1,2,0);
settablenum("combinaciones",1,6,cont); //Guarda la cantidad de
combinaciones
settablenum("combinaciones",1,5,0);// Seteo el contador
// OPTIMO
// Cantidades
double v1;
double v2;
//Costos individuales
double c1;
95
double c2;
// Costos transporte
double t1;
double t2;
// Costos almacenamiento
double al1;
double al2;
//costos totales y valores
int costo;
int narbi=gettablenum("numero arbitrario",1,1);
int comb=gettablenum("combinaciones",1,6); // Obtiene las filas a
recorrer en las combinatorias
for (int j=1;j<=comb;j++)
{
//obtengo los valores de cada fila
v1=gettablenum("combinaciones",j,1);
v2=gettablenum("combinaciones",j,2);
//obtengo los costos de almacenamiento
al1=gettablenum("precios",1,1);
al2=gettablenum("precios",2,1);
//obtengo los costos de transporte
t1=gettablenum("precios",1,2);
t2=gettablenum("precios",2,2);
//calculo los costos de la combinación
c1=v1*(al1+t1);
c2=v2*(al2+t2);
costo=c1+c2;
if (costo<=narbi)
{
settablenum("OPTIMO",1,1,v1);
settablenum("OPTIMO",1,2,v2);
settablenum("OPTIMO",1,5,costo);
narbi=costo;
}
}
}
96
Código A.11: “Programación Modelo Específico COLA QUE DECIDE”.
COLA QUE DECIDE (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
//ENVIOS A FRIGORIFICOS
int numero_op=gettablenum("tabla valores",1,5);
int produccion_op=gettablenum("PRODUCCION",numero_op,2);
int tiempo_op=gettablenum("PRODUCCION",numero_op,1);
int tiempo=time();
if(tiempo==tiempo_op+2)
{
settablenum("tabla valores",1,7,numero_op); //aumento el contador
//obtener las capacidades actuales
int f1=gettablenum("cap doisp 2",1,1);
int f2=gettablenum("cap doisp 2",2,1);
//obtener los valores de óptimos a enviar
int ve1=gettablenum("OPTIMO",1,1);
int ve2=gettablenum("OPTIMO",1,2);
if(ve1>0)
{
if(ve1<=f1)
{
settablenum("TABLA DE ENVIOS",1,1,ve1);
openinput(rank(model(),5));
}
else if(ve1>f1)
{
settablenum("TABLA DE ENVIOS",1,1,f1);
openinput(rank(model(),5));
int xI1=ve1-f1;
settablenum("TABLA DE ENVIOS",1,2,xI1);
openinput(rank(model(),6));
}
}
if (ve2>0)
{
if(ve2<=f2)
{
settablenum("TABLA DE ENVIOS",1,2,ve2);
openinput(rank(model(),6));
}
else if (ve2>f2)
{
settablenum("TABLA DE ENVIOS",1,2,f2);
openinput(rank(model(),6));
int xI2=ve2-f2;
settablenum("TABLA DE ENVIOS",1,2,xI2);
openinput(rank(model(),5));
}
}
}
97
Código A.12: “Programación Modelo Específico FUENTE 2”.
FUENTE 2 (OnExit)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int rownumber = parval(2);
int cont=gettablenum("tabla valores",1,9);
cont=cont+1;
int tiempodda=gettablenum("demandas",cont,1);
int tiemp=time();
if(tiemp==tiempodda)
{
//obtengo la demanda de ese momento
double dda=gettablenum("demandas",cont,2);
//obtenemos los precios almacenamiento
double a1=gettablenum("precios",1,1);
double a2=gettablenum("precios",2,1);
//obtenemos los precios transportes
double tr1=gettablenum("precios",1,2);
double tr2=gettablenum("precios",2,2);
//obtenemos las sumas
double suma1=a1+tr1;
double suma2=a2+tr2;
double
double
double
double
sumamayor=0;
puertomayor;
puertomenor;
sumamenor=10000000;
//buscamos el de mayor costo
if(suma1>sumamayor)
{
sumamayor=suma1;
puertomayor=1;
}
if(suma2>sumamayor)
{
sumamayor=suma2;
puertomayor=2;
}
//buscamos el de menor costo
if(suma1<sumamenor)
{
sumamenor=suma1;
puertomenor=1;
}
if(suma2<sumamenor)
{
sumamenor=suma2;
puertomenor=2;
}
98
// sacando las disponibilidades de cada puerto
int entf1;
int entf2;;
int salf1;
int salf2;
int dispf1;
int dispf2;
entf1=gettablenum("entradas y salidas",1,1);
entf2=gettablenum("entradas y salidas",2,1);
salf1=gettablenum("entradas y salidas",1,2);
salf2=gettablenum("entradas y salidas",2,2);
dispf1=entf1-salf1;
dispf2=entf2-salf2;
//preguntando cual puerto es cual
if(puertomayor==1)
{
if(dispf1>=dda)
{
settablenum("TABLA ENVIOS DDA",1,1,dda);
openoutput(rank(model(),5));
}
else
{
settablenum("TABLA ENVIOS DDA",1,1,dda);
openinput(rank(model(),5));
int resta1=dispf1-dda;
settablenum("TABLA ENVIOS DDA",1,2,resta1);
openoutput(rank(model(),6));
}
}
else if(puertomayor==2)
{
if(dispf2>=dda)
{
settablenum("TABLA ENVIOS DDA",1,2,dda);
openoutput(rank(model(),6));
}
else
{
settablenum("TABLA ENVIOS DDA",1,2,dda);
openinput(rank(model(),6));
int resta2=dispf2-dda;
settablenum("TABLA ENVIOS DDA",1,1,resta2);
openoutput(rank(model(),5));
}
}
settablenum("tabla valores",1,9,cont);
}
99
Código A.13: “Programación Modelo Específico COLA PROCESADORA”
GRAN COLA PROCESADORA (OnEntry)
/**Custom Code*/
treenode item = parnode(1);
treenode current = ownerobject(c);
int port = parval(2);
// Cierra los puertos dependiendo de donde vengan
int etiquet=getlabelnum(item,"frigorifico");
int ddaf1=gettablenum("TABLA ENVIOS DDA",1,1);
int ddaf2=gettablenum("TABLA ENVIOS DDA",1,2);
int cajitasf1=gettablenum("tabla valores",1,11);
int cajitasf2=gettablenum("tabla valores",2,11);
if (etiquet==1)
{
cajitasf1=cajitasf1+1;
if(cajitasf1==ddaf1)
{
closeoutput(rank(model(),5));
settablenum("tabla valores",1,11,0);
}
else
{
settablenum("tabla valores",1,11,cajitasf1);
}
}
else if (etiquet==2)
{
cajitasf2=cajitasf2+1;
if(cajitasf2==ddaf2)
{
closeoutput(rank(model(),6));
settablenum("tabla valores",2,11,0);
}
else
{
settablenum("tabla valores",2,11,cajitasf2);
}
}
// Guarda todos los datos en tabla global
double conttg=gettablenum("tabla valores",1,12);
conttg=conttg+1;
double frigorif=getlabelnum(item,"frigorifico");
double tient=getlabelnum(item,"t entrada");
double tisal=getlabelnum(item,"t salida");
double talma=getlabelnum(item,"t almacenamiento");
double costtrans=getlabelnum(item,"precio transporte");
double costalma=getlabelnum(item,"precio alm");
double costotot=costtrans+costalma;
setlabelnum(item,"precio total",costotot);
settablenum("TABLA GLOBAL",conttg,1,frigorif);
settablenum("TABLA GLOBAL",conttg,2,tient);
settablenum("TABLA GLOBAL",conttg,3,tisal);
settablenum("TABLA GLOBAL",conttg,4,talma);
settablenum("TABLA GLOBAL",conttg,5,costtrans);
settablenum("TABLA GLOBAL",conttg,6,costalma);
settablenum("TABLA GLOBAL",conttg,7,costotot);
settablenum("tabla valores",1,12,conttg);
100
ANEXO B: TABLAS
Tabla B.1: cálculo hecho con la variable de entrada dos.
Entrada=2
Suma
FI
FE1
FE2
FE3
(FI+FE1+FE2+FE3)
1
0
0
0
0
0
2
0
0
0
1
1
3
0
0
0
2
2
4
0
0
1
0
1
5
0
0
1
1
2
6
0
0
1
2
3
7
0
0
2
0
2
8
0
0
2
1
3
9
0
0
2
2
4
10 0
1
0
0
1
11 0
1
0
1
2
12 0
1
0
2
3
13 0
1
1
0
2
14 0
1
1
1
3
15 0
1
1
2
4
16 0
1
2
0
3
17 0
1
2
1
4
18 0
1
2
2
5
19 0
2
0
0
2
20 0
2
0
1
3
21 0
2
0
2
4
22 0
2
1
0
3
23 0
2
1
1
4
24 0
2
1
2
5
25 0
2
2
0
4
26 0
2
2
1
5
27 0
2
2
2
6
28 1
0
0
0
1
29 1
0
0
1
2
30 1
0
0
2
3
31 1
0
1
0
2
32 1
0
1
1
3
33 1
0
1
2
4
34 1
0
2
0
3
35 1
0
2
1
4
101
36 1
0
2
2
5
37 1
1
0
0
2
38 1
1
0
1
3
39 1
1
0
2
4
40 1
1
1
0
3
41 1
1
1
1
4
42 1
1
1
2
5
43 1
1
2
0
4
44 1
1
2
1
5
45 1
1
2
2
6
46 1
2
0
0
3
47 1
2
0
1
4
48 1
2
0
2
5
49 1
2
1
0
4
50 1
2
1
1
5
51 1
2
1
2
6
52 1
2
2
0
5
53 1
2
2
1
6
54 1
2
2
2
7
55 2
0
0
0
2
56 2
0
0
1
3
57 2
0
0
2
4
58 2
0
1
0
3
59 2
0
1
1
4
60 2
0
1
2
5
61 2
0
2
0
4
62 2
0
2
1
5
63 2
0
2
2
6
64 2
1
0
0
3
65 2
1
0
1
4
66 2
1
0
2
5
67 2
1
1
0
4
68 2
1
1
1
5
69 2
1
1
2
6
70 2
1
2
0
5
71 2
1
2
1
6
72 2
1
2
2
7
73 2
2
0
0
4
74 2
2
0
1
5
75 2
2
0
2
6
76 2
2
1
0
5
102
77 2
2
1
1
6
78 2
2
1
2
7
79 2
2
2
0
6
80 2
2
2
1
7
81 2
2
2
2
8
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla B.2: TABLA GLOBAL con datos procesados al final de la modelación Escenario 1.
Frig.
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
t.ent
152
153
212
163
162
142
232
242
192
202
132
123
74
82
73
62
63
72
22
33
112
113
32
122
52
2833
2842
2832
2942
2952
2762
t.sal
4530
4531
4590
4540
4532
4510
4591
4592
4541
4542
4470
4460
4390
4391
4380
4360
4361
4362
4310
4320
4392
4393
4311
4394
4321
4250
4251
4220
4300
4301
4110
t.alm
4378
4378
4378
4377
4370
4368
4359
4350
4349
4340
4338
4337
4316
4309
4307
4298
4298
4290
4288
4287
4280
4280
4279
4272
4269
1417
1409
1388
1358
1349
1348
C.Tr
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
1134
1134
1134
1134
1134
1134
C.A
113,83
113,83
113,83
113,80
113,62
113,57
113,33
113,10
113,07
112,84
112,79
112,76
112,22
112,03
111,98
111,75
111,75
111,54
111,49
111,46
111,28
111,28
111,25
111,07
110,99
61,40
61,06
60,15
58,85
58,46
58,41
C.T
163,83
163,83
163,83
163,80
163,62
163,57
163,33
163,10
163,07
162,84
162,79
162,76
162,22
162,03
161,98
161,75
161,75
161,54
161,49
161,46
161,28
161,28
161,25
161,07
160,99
1.195,40
1.195,06
1.194,15
1.192,85
1.192,46
1.192,41
n°
entidad
17
18
23
20
19
16
24
25
21
22
15
14
9
10
8
5
6
7
1
3
11
12
2
13
4
397
398
396
399
400
387
103
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2763
2802
2803
2812
2813
2822
2823
2754
2772
2752
2753
2704
2622
2623
2624
2744
2732
2733
2734
2742
2743
2662
2663
2664
2682
2683
2684
2694
2672
2673
2674
2692
2693
2702
2703
2564
2614
2612
2613
2594
2592
4111
4150
4151
4160
4161
4170
4171
4100
4112
4090
4091
4040
3940
3941
3942
4060
4041
4042
4043
4050
4051
3943
3944
3945
3960
3961
3962
3970
3946
3947
3948
3963
3964
3971
3972
3820
3870
3860
3861
3830
3821
1348
1348
1348
1348
1348
1348
1348
1346
1340
1338
1338
1336
1318
1318
1318
1316
1309
1309
1309
1308
1308
1281
1281
1281
1278
1278
1278
1276
1274
1274
1274
1271
1271
1269
1269
1256
1256
1248
1248
1236
1229
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
58,41
58,41
58,41
58,41
58,41
58,41
58,41
58,33
58,07
57,98
57,98
57,89
57,11
57,11
57,11
57,03
56,72
56,72
56,72
56,68
56,68
55,51
55,51
55,51
55,38
55,38
55,38
55,29
55,21
55,21
55,21
55,08
55,08
54,99
54,99
54,43
54,43
54,08
54,08
53,56
53,26
1.192,41
1.192,41
1.192,41
1.192,41
1.192,41
1.192,41
1.192,41
1.192,33
1.192,07
1.191,98
1.191,98
1.191,89
1.191,11
1.191,11
1.191,11
1.191,03
1.190,72
1.190,72
1.190,72
1.190,68
1.190,68
1.189,51
1.189,51
1.189,51
1.189,38
1.189,38
1.189,38
1.189,29
1.189,21
1.189,21
1.189,21
1.189,08
1.189,08
1.188,99
1.188,99
1.188,43
1.188,43
1.188,08
1.188,08
1.187,56
1.187,26
388
390
391
392
393
394
395
386
389
384
385
377
360
361
362
383
378
379
380
381
382
363
364
365
369
370
371
374
366
367
368
372
373
375
376
351
359
357
358
354
352
104
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2593
2602
2603
2553
2554
2563
2562
2552
2544
2532
2533
2534
2542
2543
2493
2494
2492
2484
2482
2483
2522
2523
2524
2463
2464
2474
2472
2473
2452
2453
2454
2462
2422
2423
2424
2404
2414
2412
2413
2344
2384
3822
3831
3832
3780
3781
3790
3782
3770
3720
3680
3681
3682
3690
3691
3640
3641
3630
3620
3610
3611
3642
3643
3644
3560
3561
3570
3562
3563
3540
3541
3542
3550
3470
3471
3472
3400
3410
3401
3402
3330
3370
1229
1229
1229
1227
1227
1227
1220
1218
1176
1148
1148
1148
1148
1148
1147
1147
1138
1136
1128
1128
1120
1120
1120
1097
1097
1096
1090
1090
1088
1088
1088
1088
1048
1048
1048
996
996
989
989
986
986
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
53,26
53,26
53,26
53,17
53,17
53,17
52,87
52,78
50,96
49,75
49,75
49,75
49,75
49,75
49,70
49,70
49,31
49,23
48,88
48,88
48,53
48,53
48,53
47,54
47,54
47,49
47,23
47,23
47,15
47,15
47,15
47,15
45,41
45,41
45,41
43,16
43,16
42,86
42,86
42,73
42,73
1.187,26
1.187,26
1.187,26
1.187,17
1.187,17
1.187,17
1.186,87
1.186,78
1.184,96
1.183,75
1.183,75
1.183,75
1.183,75
1.183,75
1.183,70
1.183,70
1.183,31
1.183,23
1.182,88
1.182,88
1.182,53
1.182,53
1.182,53
1.181,54
1.181,54
1.181,49
1.181,23
1.181,23
1.181,15
1.181,15
1.181,15
1.181,15
1.179,41
1.179,41
1.179,41
1.177,16
1.177,16
1.176,86
1.176,86
1.176,73
1.176,73
353
355
356
347
348
350
349
346
345
340
341
342
343
344
335
336
334
333
331
332
337
338
339
326
327
330
328
329
322
323
324
325
319
320
321
315
318
316
317
303
309
105
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2352
2353
2354
2392
2393
2394
2383
2402
2403
2382
2342
2343
2333
2323
2324
2332
2264
2272
2273
2274
2283
2284
2282
2313
2314
2322
592
593
602
2312
732
612
742
743
752
562
632
763
2254
762
572
3331
3332
3333
3371
3372
3373
3360
3374
3375
3350
3290
3291
3280
3260
3261
3262
3190
3191
3192
3193
3200
3201
3194
3220
3221
3222
1490
1491
1492
3202
1620
1493
1621
1622
1623
1430
1500
1630
3120
1624
1431
979
979
979
979
979
979
977
972
972
968
948
948
947
937
937
930
926
919
919
919
917
917
912
907
907
900
898
898
890
890
888
881
879
879
871
868
868
867
866
862
859
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
42,42
42,42
42,42
42,42
42,42
42,42
42,34
42,12
42,12
41,95
41,08
41,08
41,04
40,60
40,60
40,30
40,13
39,82
39,82
39,82
39,74
39,74
39,52
39,30
39,30
39,00
38,91
38,91
38,57
38,57
38,48
38,18
38,09
38,09
37,74
37,61
37,61
37,57
37,53
37,35
37,22
1.176,42
1.176,42
1.176,42
1.176,42
1.176,42
1.176,42
1.176,34
1.176,12
1.176,12
1.175,95
1.175,08
1.175,08
1.175,04
1.174,60
1.174,60
1.174,30
1.174,13
1.173,82
1.173,82
1.173,82
1.173,74
1.173,74
1.173,52
1.173,30
1.173,30
1.173,00
1.172,91
1.172,91
1.172,57
1.172,57
1.172,48
1.172,18
1.172,09
1.172,09
1.171,74
1.171,61
1.171,61
1.171,57
1.171,53
1.171,35
1.171,22
304
305
306
310
311
312
308
313
314
307
301
302
300
297
298
299
286
287
288
289
291
292
290
294
295
296
57
58
59
293
73
60
74
75
76
54
61
78
283
77
55
106
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
642
772
2262
2263
422
682
692
693
712
713
582
702
722
782
492
502
662
442
512
802
842
852
1823
1824
1764
1765
672
673
452
522
1772
1773
1774
1775
1832
812
862
532
1783
1784
1782
1501
1631
3121
3122
1280
1540
1550
1551
1570
1571
1432
1552
1572
1632
1340
1350
1502
1281
1351
1640
1680
1690
2660
2661
2600
2601
1503
1504
1282
1352
2602
2603
2604
2605
2662
1641
1691
1360
2610
2611
2606
859
859
859
859
858
858
858
858
858
858
850
850
850
850
848
848
840
839
839
838
838
838
837
837
836
836
831
831
830
830
830
830
830
830
830
829
829
828
827
827
824
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
37,22
37,22
37,22
37,22
37,18
37,18
37,18
37,18
37,18
37,18
36,83
36,83
36,83
36,83
36,75
36,75
36,40
36,36
36,36
36,31
36,31
36,31
36,27
36,27
36,23
36,23
36,01
36,01
35,97
35,97
35,97
35,97
35,97
35,97
35,97
35,92
35,92
35,88
35,84
35,84
35,71
1.171,22
1.171,22
1.171,22
1.171,22
1.171,18
1.171,18
1.171,18
1.171,18
1.171,18
1.171,18
1.170,83
1.170,83
1.170,83
1.170,83
1.170,75
1.170,75
1.170,40
1.170,36
1.170,36
1.170,31
1.170,31
1.170,31
1.170,27
1.170,27
1.170,23
1.170,23
1.170,01
1.170,01
1.169,97
1.169,97
1.169,97
1.169,97
1.169,97
1.169,97
1.169,97
1.169,92
1.169,92
1.169,88
1.169,84
1.169,84
1.169,71
62
79
284
285
41
66
67
68
70
71
56
69
72
80
47
48
63
42
49
81
84
85
219
220
205
206
64
65
43
50
207
208
209
210
221
82
86
51
212
213
211
107
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
822
872
1792
1793
1794
1795
542
1722
1723
1724
483
2244
472
882
552
2252
2253
1714
2214
482
892
902
2213
1754
1822
1752
1753
1762
1763
2212
2242
2243
2043
2044
2063
1684
2052
2053
1692
1693
1694
1642
1692
2612
2613
2614
2615
1361
2540
2541
2542
1300
3060
1283
1693
1362
3061
3062
2520
3020
1284
1694
1700
3010
2550
2616
2543
2544
2551
2552
3000
3021
3022
2820
2821
2840
2460
2822
2823
2461
2462
2463
820
820
820
820
820
820
819
818
818
818
817
816
811
811
810
809
809
806
806
802
802
798
797
796
794
791
791
789
789
788
779
779
777
777
777
776
770
770
769
769
769
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
35,53
35,53
35,53
35,53
35,53
35,53
35,49
35,45
35,45
35,45
35,40
35,36
35,14
35,14
35,10
35,06
35,06
34,93
34,93
34,75
34,75
34,58
34,54
34,49
34,41
34,28
34,28
34,19
34,19
34,15
33,76
33,76
33,67
33,67
33,67
33,63
33,37
33,37
33,32
33,32
33,32
1.169,53
1.169,53
1.169,53
1.169,53
1.169,53
1.169,53
1.169,49
1.169,45
1.169,45
1.169,45
1.169,40
1.169,36
1.169,14
1.169,14
1.169,10
1.169,06
1.169,06
1.168,93
1.168,93
1.168,75
1.168,75
1.168,58
1.168,54
1.168,49
1.168,41
1.168,28
1.168,28
1.168,19
1.168,19
1.168,15
1.167,76
1.167,76
1.167,67
1.167,67
1.167,67
1.167,63
1.167,37
1.167,37
1.167,32
1.167,32
1.167,32
83
87
214
215
216
217
52
197
198
199
46
280
44
88
53
281
282
196
277
45
89
90
276
202
218
200
201
203
204
275
278
279
243
244
248
187
245
246
188
189
190
108
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2072
2073
1982
1983
1683
1704
1702
1703
2062
1902
1903
2082
2083
1992
1993
1712
1713
992
1912
1913
1922
1923
2003
2184
2002
1932
1933
952
2192
2193
2194
962
2202
2203
2204
2102
2103
2104
2105
972
1023
2841
2842
2750
2751
2450
2470
2464
2465
2824
2663
2664
2843
2844
2752
2753
2471
2472
1750
2670
2671
2680
2681
2760
2940
2754
2682
2683
1701
2941
2942
2943
1710
2950
2951
2952
2845
2846
2847
2848
1711
1760
769
769
768
768
767
766
762
762
762
761
761
761
761
760
760
759
759
758
758
758
758
758
757
756
752
750
750
749
749
749
749
748
748
748
748
743
743
743
743
739
737
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
33,32
33,32
33,28
33,28
33,24
33,19
33,02
33,02
33,02
32,98
32,98
32,98
32,98
32,93
32,93
32,89
32,89
32,85
32,85
32,85
32,85
32,85
32,80
32,76
32,59
32,50
32,50
32,46
32,46
32,46
32,46
32,41
32,41
32,41
32,41
32,20
32,20
32,20
32,20
32,02
31,94
1.167,32
1.167,32
1.167,28
1.167,28
1.167,24
1.167,19
1.167,02
1.167,02
1.167,02
1.166,98
1.166,98
1.166,98
1.166,98
1.166,93
1.166,93
1.166,89
1.166,89
1.166,85
1.166,85
1.166,85
1.166,85
1.166,85
1.166,80
1.166,76
1.166,59
1.166,50
1.166,50
1.166,46
1.166,46
1.166,46
1.166,46
1.166,41
1.166,41
1.166,41
1.166,41
1.166,20
1.166,20
1.166,20
1.166,20
1.166,02
1.165,94
249
250
234
235
186
193
191
192
247
222
223
251
252
236
237
194
195
95
224
225
226
227
239
268
238
228
229
91
269
270
271
92
272
273
274
253
254
255
256
93
97
109
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2112
2113
2114
2173
2174
2183
982
2122
2123
2124
2182
1022
1032
1033
2032
2033
1643
1644
1963
1962
1042
2042
1652
1653
1654
1972
1973
1182
1183
1642
1052
1192
1102
1062
1063
1202
1203
1112
1624
1634
1682
2849
2850
2851
2910
2911
2920
1712
2852
2853
2854
2912
1751
1761
1762
2761
2762
2370
2371
2690
2684
1763
2763
2372
2373
2374
2691
2692
1900
1901
2360
1764
1902
1810
1765
1766
1903
1904
1811
2320
2330
2375
737
737
737
737
737
737
730
730
730
730
730
729
729
729
729
729
727
727
727
722
721
721
720
720
720
719
719
718
718
718
712
710
708
703
703
701
701
699
696
696
693
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
31,94
31,94
31,94
31,94
31,94
31,94
31,63
31,63
31,63
31,63
31,63
31,59
31,59
31,59
31,59
31,59
31,50
31,50
31,50
31,29
31,24
31,24
31,20
31,20
31,20
31,16
31,16
31,11
31,11
31,11
30,85
30,77
30,68
30,46
30,46
30,38
30,38
30,29
30,16
30,16
30,03
1.165,94
1.165,94
1.165,94
1.165,94
1.165,94
1.165,94
1.165,63
1.165,63
1.165,63
1.165,63
1.165,63
1.165,59
1.165,59
1.165,59
1.165,59
1.165,59
1.165,50
1.165,50
1.165,50
1.165,29
1.165,24
1.165,24
1.165,20
1.165,20
1.165,20
1.165,16
1.165,16
1.165,11
1.165,11
1.165,11
1.164,85
1.164,77
1.164,68
1.164,46
1.164,46
1.164,38
1.164,38
1.164,29
1.164,16
1.164,16
1.164,03
257
258
259
264
265
267
94
260
261
262
266
96
98
99
240
241
180
181
231
230
100
242
182
183
184
232
233
111
112
179
101
113
104
102
103
114
115
105
175
178
185
110
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1122
1632
1633
2172
1132
1142
1372
1373
1364
1584
1162
1262
1263
1172
1272
1273
1614
1282
1412
1413
1612
1613
1622
1623
1292
1293
1563
1564
1573
1574
1575
1582
1583
1302
1303
1572
1363
1493
1432
1433
1502
1812
2321
2322
2855
1813
1814
2040
2041
2030
2240
1815
1910
1911
1816
1912
1913
2250
1914
2042
2043
2241
2242
2251
2252
1920
1921
2190
2191
2200
2201
2202
2203
2204
1922
1923
2192
1980
2110
2044
2045
2111
690
689
689
683
681
672
668
668
666
656
653
648
648
644
640
640
636
632
630
630
629
629
629
629
628
628
627
627
627
627
627
621
621
620
620
620
617
617
612
612
609
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
29,90
29,86
29,86
29,60
29,51
29,12
28,95
28,95
28,86
28,43
28,30
28,08
28,08
27,91
27,73
27,73
27,56
27,39
27,30
27,30
27,26
27,26
27,26
27,26
27,21
27,21
27,17
27,17
27,17
27,17
27,17
26,91
26,91
26,87
26,87
26,87
26,74
26,74
26,52
26,52
26,39
1.163,90
1.163,86
1.163,86
1.163,60
1.163,51
1.163,12
1.162,95
1.162,95
1.162,86
1.162,43
1.162,30
1.162,08
1.162,08
1.161,91
1.161,73
1.161,73
1.161,56
1.161,39
1.161,30
1.161,30
1.161,26
1.161,26
1.161,26
1.161,26
1.161,21
1.161,21
1.161,17
1.161,17
1.161,17
1.161,17
1.161,17
1.160,91
1.160,91
1.160,87
1.160,87
1.160,87
1.160,74
1.160,74
1.160,52
1.160,52
1.160,39
106
176
177
263
107
108
132
133
131
169
109
116
117
110
118
119
172
120
134
135
170
171
173
174
121
122
161
162
164
165
166
167
168
123
124
163
130
149
136
137
150
111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1503
1362
1443
1513
1514
1442
1512
1452
1453
1454
1553
1554
1332
1562
1342
1473
1474
1472
1482
1483
1542
1543
1352
1353
1492
1552
2112
1970
2050
2120
2121
2046
2113
2051
2052
2053
2150
2151
1924
2152
1930
2060
2061
2054
2062
2063
2122
2123
1931
1932
2064
2124
609
608
607
607
607
604
601
599
599
599
597
597
592
590
588
587
587
582
580
580
580
580
579
579
572
572
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
1134
26,39
26,35
26,30
26,30
26,30
26,17
26,04
25,96
25,96
25,96
25,87
25,87
25,65
25,57
25,48
25,44
25,44
25,22
25,13
25,13
25,13
25,13
25,09
25,09
24,79
24,79
1.160,39
1.160,35
1.160,30
1.160,30
1.160,30
1.160,17
1.160,04
1.159,96
1.159,96
1.159,96
1.159,87
1.159,87
1.159,65
1.159,57
1.159,48
1.159,44
1.159,44
1.159,22
1.159,13
1.159,13
1.159,13
1.159,13
1.159,09
1.159,09
1.158,79
1.158,79
151
129
139
153
154
138
152
140
141
142
158
159
125
160
126
144
145
143
146
147
155
156
127
128
148
157
Fuente: Elaboración propia en Microsoft Office Excel 2007
Tabla B.3: TABLA GLOBAL con los datos procesados al final de la modelación Escenario 2
Frig.
t.ent
1
1
1
1
1
1
1
1
1
1
1
22
32
33
52
62
63
72
73
74
82
112
t.sal
1280
1281
1282
1283
1284
1300
1340
1350
1351
1352
1360
t.alm
1258
1249
1249
1231
1222
1237
1268
1277
1277
1270
1248
C. Tr.
50
50
50
50
50
50
50
50
50
50
50
C. A
32,708
32,474
32,474
32,006
31,772
32,162
32,968
33,202
33,202
33,02
32,448
C.T
82,708
82,474
82,474
82,006
81,772
82,162
82,968
83,202
83,202
83,02
82,448
n°
entidad
1
2
3
4
5
6
7
8
9
10
11
112
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
113
122
123
132
142
152
153
162
163
192
202
212
232
242
262
263
272
282
283
312
332
352
362
372
382
383
392
402
412
422
442
452
472
482
483
492
502
512
522
532
542
1361
1362
1430
1431
1432
1490
1491
1492
1493
1500
1501
1502
1503
1504
1540
1550
1551
1552
1570
1571
1572
1620
1621
1622
1623
1624
1630
1631
1632
1640
1641
1642
1680
1690
1691
1692
1693
1694
1700
1701
1710
1248
1240
1307
1299
1290
1338
1338
1330
1330
1308
1299
1290
1271
1262
1278
1287
1279
1270
1287
1259
1240
1268
1259
1250
1241
1241
1238
1229
1220
1218
1199
1190
1208
1208
1208
1200
1191
1182
1178
1169
1168
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
32,448
32,24
33,982
33,774
33,54
34,788
34,788
34,58
34,58
34,008
33,774
33,54
33,046
32,812
33,228
33,462
33,254
33,02
33,462
32,734
32,24
32,968
32,734
32,5
32,266
32,266
32,188
31,954
31,72
31,668
31,174
30,94
31,408
31,408
31,408
31,2
30,966
30,732
30,628
30,394
30,368
82,448
82,24
83,982
83,774
83,54
84,788
84,788
84,58
84,58
84,008
83,774
83,54
83,046
82,812
83,228
83,462
83,254
83,02
83,462
82,734
82,24
82,968
82,734
82,5
82,266
82,266
82,188
81,954
81,72
81,668
81,174
80,94
81,408
81,408
81,408
81,2
80,966
80,732
80,628
80,394
80,368
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
113
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
552
562
572
582
592
593
602
612
632
642
662
672
673
682
692
693
702
712
713
722
732
742
743
752
762
763
772
782
802
812
822
842
852
862
872
882
892
902
952
962
972
1711
1712
1750
1751
1760
1761
1762
1763
1764
1765
1766
1810
1811
1812
1813
1814
1815
1816
1900
1901
1902
1903
1904
1910
1911
1912
1913
1914
1920
1921
1922
1923
1924
1930
1931
1932
1970
1980
2030
2040
2041
1159
1150
1178
1169
1168
1168
1160
1151
1132
1123
1104
1138
1138
1130
1121
1121
1113
1104
1187
1179
1170
1161
1161
1158
1149
1149
1141
1132
1118
1109
1100
1081
1072
1068
1059
1050
1078
1078
1078
1078
1069
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
30,134
29,9
30,628
30,394
30,368
30,368
30,16
29,926
29,432
29,198
28,704
29,588
29,588
29,38
29,146
29,146
28,938
28,704
30,862
30,654
30,42
30,186
30,186
30,108
29,874
29,874
29,666
29,432
29,068
28,834
28,6
28,106
27,872
27,768
27,534
27,3
28,028
28,028
28,028
28,028
27,794
80,134
79,9
80,628
80,394
80,368
80,368
80,16
79,926
79,432
79,198
78,704
79,588
79,588
79,38
79,146
79,146
78,938
78,704
80,862
80,654
80,42
80,186
80,186
80,108
79,874
79,874
79,666
79,432
79,068
78,834
78,6
78,106
77,872
77,768
77,534
77,3
78,028
78,028
78,028
78,028
77,794
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
114
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
982
992
1022
1023
1032
1033
1042
1052
1062
1063
1102
1112
1122
1132
1142
1162
1172
1182
1183
1192
1202
1203
1262
1263
1272
1273
1282
1292
1293
1302
1303
1332
1342
1352
1353
1362
1363
1364
1372
1373
1412
2042
2043
2044
2045
2046
2050
2051
2052
2053
2054
2060
2061
2062
2063
2064
2110
2111
2112
2113
2120
2121
2122
2123
2124
2150
2151
2152
2190
2191
2192
2200
2201
2202
2203
2204
2240
2241
2242
2250
2251
2252
1060
1051
1022
1022
1014
1017
1009
1000
991
991
958
949
940
931
922
948
939
930
930
928
919
919
861
861
878
878
870
898
898
890
897
869
860
851
851
878
878
878
878
878
840
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
27,56
27,326
26,572
26,572
26,364
26,442
26,234
26
25,766
25,766
24,908
24,674
24,44
24,206
23,972
24,648
24,414
24,18
24,18
24,128
23,894
23,894
22,386
22,386
22,828
22,828
22,62
23,348
23,348
23,14
23,322
22,594
22,36
22,126
22,126
22,828
22,828
22,828
22,828
22,828
21,84
77,56
77,326
76,572
76,572
76,364
76,442
76,234
76
75,766
75,766
74,908
74,674
74,44
74,206
73,972
74,648
74,414
74,18
74,18
74,128
73,894
73,894
72,386
72,386
72,828
72,828
72,62
73,348
73,348
73,14
73,322
72,594
72,36
72,126
72,126
72,828
72,828
72,828
72,828
72,828
71,84
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
115
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1413
1432
1433
1442
1443
1452
1453
1454
1472
1473
1474
1482
1483
1492
1493
1502
1503
1512
1513
1514
1542
1543
1552
1553
1554
1562
1563
1564
1572
1573
1574
1575
1582
1583
1584
1612
1613
1614
1622
1623
1624
2320
2321
2322
2330
2360
2370
2371
2372
2373
2374
2375
2450
2460
2461
2462
2463
2464
2465
2470
2471
2472
2520
2540
2541
2542
2543
2544
2550
2551
2552
2600
2601
2602
2603
2604
2605
2606
2610
2611
2612
2613
907
889
889
888
917
918
918
918
901
901
901
968
977
969
969
961
961
953
957
957
930
977
988
988
988
981
981
986
979
979
1026
1026
1020
1020
1020
993
993
996
989
989
989
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
23,582
23,114
23,114
23,088
23,842
23,868
23,868
23,868
23,426
23,426
23,426
25,168
25,402
25,194
25,194
24,986
24,986
24,778
24,882
24,882
24,18
25,402
25,688
25,688
25,688
25,506
25,506
25,636
25,454
25,454
26,676
26,676
26,52
26,52
26,52
25,818
25,818
25,896
25,714
25,714
25,714
73,582
73,114
73,114
73,088
73,842
73,868
73,868
73,868
73,426
73,426
73,426
75,168
75,402
75,194
75,194
74,986
74,986
74,778
74,882
74,882
74,18
75,402
75,688
75,688
75,688
75,506
75,506
75,636
75,454
75,454
76,676
76,676
76,52
76,52
76,52
75,818
75,818
75,896
75,714
75,714
75,714
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
116
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1632
1633
1634
1642
1643
1644
1652
1653
1654
1682
1683
1684
1692
1693
1694
1702
1703
1704
1712
1713
1714
1722
1723
1724
1752
1753
1754
1762
1763
1764
1765
1772
1773
1774
1775
1782
1783
1784
1792
1793
1794
2614
2615
2616
2660
2661
2662
2663
2664
2670
2671
2680
2681
2682
2683
2684
2690
2691
2692
2750
2751
2752
2753
2754
2760
2761
2762
2763
2820
2821
2822
2823
2824
2840
2841
2842
2843
2844
2845
2846
2847
2848
982
982
982
1018
1018
1018
1011
1011
1016
989
997
997
990
990
990
988
988
988
1038
1038
1038
1031
1031
1036
1009
1009
1009
1058
1058
1058
1058
1052
1067
1067
1067
1061
1061
1061
1054
1054
1054
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
25,532
25,532
25,532
26,468
26,468
26,468
26,286
26,286
26,416
25,714
25,922
25,922
25,74
25,74
25,74
25,688
25,688
25,688
26,988
26,988
26,988
26,806
26,806
26,936
26,234
26,234
26,234
27,508
27,508
27,508
27,508
27,352
27,742
27,742
27,742
27,586
27,586
27,586
27,404
27,404
27,404
75,532
75,532
75,532
76,468
76,468
76,468
76,286
76,286
76,416
75,714
75,922
75,922
75,74
75,74
75,74
75,688
75,688
75,688
76,988
76,988
76,988
76,806
76,806
76,936
76,234
76,234
76,234
77,508
77,508
77,508
77,508
77,352
77,742
77,742
77,742
77,586
77,586
77,586
77,404
77,404
77,404
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
117
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1795
1822
1823
1824
1832
1902
1903
1912
1913
1922
1923
1932
1933
1962
1963
1972
1973
1982
1983
1992
1993
2002
2003
2032
2033
2042
2043
2044
2052
2053
2062
2063
2072
2073
2082
2083
2102
2103
2104
2105
2112
2849
2850
2851
2852
2853
2854
2855
2910
2911
2912
2920
2940
2941
2942
2943
2950
2951
2952
3000
3010
3020
3021
3022
3060
3061
3062
3120
3121
3122
3190
3191
3192
3193
3194
3200
3201
3202
3220
3221
3222
3260
1054
1028
1028
1028
1021
952
952
998
998
990
997
1008
1008
980
980
978
978
970
1017
1018
1027
1019
1019
1028
1028
1020
1077
1077
1070
1137
1129
1129
1121
1121
1118
1118
1100
1117
1117
1117
1148
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
27,404
26,728
26,728
26,728
26,546
24,752
24,752
25,948
25,948
25,74
25,922
26,208
26,208
25,48
25,48
25,428
25,428
25,22
26,442
26,468
26,702
26,494
26,494
26,728
26,728
26,52
28,002
28,002
27,82
29,562
29,354
29,354
29,146
29,146
29,068
29,068
28,6
29,042
29,042
29,042
29,848
77,404
76,728
76,728
76,728
76,546
74,752
74,752
75,948
75,948
75,74
75,922
76,208
76,208
75,48
75,48
75,428
75,428
75,22
76,442
76,468
76,702
76,494
76,494
76,728
76,728
76,52
78,002
78,002
77,82
79,562
79,354
79,354
79,146
79,146
79,068
79,068
78,6
79,042
79,042
79,042
79,848
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
118
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2113
2114
2122
2123
2124
2172
2173
2174
2182
2183
2184
2192
2193
2194
2202
2203
2204
2212
2213
2214
2242
2243
2244
2252
2253
2254
2262
2263
2264
2272
2273
2274
2282
2283
2284
2312
2313
2314
2322
2323
2324
3261
3262
3280
3290
3291
3330
3331
3332
3333
3350
3360
3370
3371
3372
3373
3374
3375
3400
3401
3402
3410
3470
3471
3472
3540
3541
3542
3550
3560
3561
3562
3563
3570
3610
3611
3620
3630
3640
3641
3642
3643
1148
1148
1158
1167
1167
1158
1158
1158
1151
1167
1176
1178
1178
1178
1171
1171
1171
1188
1188
1188
1168
1227
1227
1220
1287
1287
1280
1287
1296
1289
1289
1289
1288
1327
1327
1308
1317
1326
1319
1319
1319
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
29,848
29,848
30,108
30,342
30,342
30,108
30,108
30,108
29,926
30,342
30,576
30,628
30,628
30,628
30,446
30,446
30,446
30,888
30,888
30,888
30,368
31,902
31,902
31,72
33,462
33,462
33,28
33,462
33,696
33,514
33,514
33,514
33,488
34,502
34,502
34,008
34,242
34,476
34,294
34,294
34,294
79,848
79,848
80,108
80,342
80,342
80,108
80,108
80,108
79,926
80,342
80,576
80,628
80,628
80,628
80,446
80,446
80,446
80,888
80,888
80,888
80,368
81,902
81,902
81,72
83,462
83,462
83,28
83,462
83,696
83,514
83,514
83,514
83,488
84,502
84,502
84,008
84,242
84,476
84,294
84,294
84,294
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
119
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2332
2333
2342
2343
2344
2352
2353
2354
2382
2383
2384
2392
2393
2394
2402
2403
2404
2412
2413
2414
2422
2423
2424
2452
2453
2454
2462
2463
2464
2472
2473
2474
2482
2483
2484
2492
2493
2494
2522
2523
2524
3644
3680
3681
3682
3690
3691
3720
3770
3780
3781
3782
3790
3820
3821
3822
3830
3831
3832
3860
3861
3870
3940
3941
3942
3943
3944
3945
3946
3947
3948
3960
3961
3962
3963
3964
3970
3971
3972
4040
4041
4042
1312
1347
1339
1339
1346
1339
1367
1416
1398
1398
1398
1398
1427
1427
1420
1427
1427
1420
1447
1447
1448
1517
1517
1490
1490
1490
1483
1483
1483
1476
1487
1487
1480
1480
1480
1478
1478
1478
1518
1518
1518
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
34,112
35,022
34,814
34,814
34,996
34,814
35,542
36,816
36,348
36,348
36,348
36,348
37,102
37,102
36,92
37,102
37,102
36,92
37,622
37,622
37,648
39,442
39,442
38,74
38,74
38,74
38,558
38,558
38,558
38,376
38,662
38,662
38,48
38,48
38,48
38,428
38,428
38,428
39,468
39,468
39,468
84,112
85,022
84,814
84,814
84,996
84,814
85,542
86,816
86,348
86,348
86,348
86,348
87,102
87,102
86,92
87,102
87,102
86,92
87,622
87,622
87,648
89,442
89,442
88,74
88,74
88,74
88,558
88,558
88,558
88,376
88,662
88,662
88,48
88,48
88,48
88,428
88,428
88,428
89,468
89,468
89,468
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
120
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2532
2533
2534
2542
2543
2544
2552
2553
2554
2562
2563
2564
2592
2593
2594
2602
2603
2612
2613
2614
2622
2623
2624
2662
2663
2664
2672
2673
2674
2682
2683
2684
2692
2693
2694
2702
2703
2704
2732
2733
2734
4043
4050
4051
4060
4090
4091
4100
4110
4111
4112
4150
4151
4160
4161
4170
4171
4220
4250
4251
4300
4301
4310
4311
4320
4321
4360
4361
4362
4380
4390
4391
4392
4393
4394
4460
4470
4510
4530
4531
4532
4540
1511
1517
1517
1518
1547
1547
1548
1557
1557
1550
1587
1587
1568
1568
1576
1569
1617
1638
1638
1686
1679
1687
1687
1658
1658
1696
1689
1689
1706
1708
1708
1708
1701
1701
1766
1768
1807
1826
1799
1799
1806
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
50
39,286
39,442
39,442
39,468
40,222
40,222
40,248
40,482
40,482
40,3
41,262
41,262
40,768
40,768
40,976
40,794
42,042
42,588
42,588
43,836
43,654
43,862
43,862
43,108
43,108
44,096
43,914
43,914
44,356
44,408
44,408
44,408
44,226
44,226
45,916
45,968
46,982
47,476
46,774
46,774
46,956
89,286
89,442
89,442
89,468
90,222
90,222
90,248
90,482
90,482
90,3
91,262
91,262
90,768
90,768
90,976
90,794
92,042
92,588
92,588
93,836
93,654
93,862
93,862
93,108
93,108
94,096
93,914
93,914
94,356
94,408
94,408
94,408
94,226
94,226
95,916
95,968
96,982
97,476
96,774
96,774
96,956
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
121
1
1
1
1
1
2742
2743
2744
2752
2753
4541
4542
4590
4591
4592
1799
1799
1846
1839
1839
50
50
50
50
50
46,774
46,774
47,996
47,814
47,814
96,774
96,774
97,996
97,814
97,814
381
382
383
384
385
Fuente: Elaboración propia en Microsoft Office Excel 2007
122
ANEXO C: MANUAL DE USO MODELO FRIGORIFICOS
Este manual es independiente de cuál de los dos modelos se use para análisis ya que se aplica a los dos
por igual. Los pasos son los siguientes:
1. Estime la cantidad de producción diaria en toneladas del intervalo de tiempo que desea estudiar.
2. Pase todos los días de producción a días Julianos.
3. Multiplique cada día Juliano por 10 y ese será su variable de entrada para cada dia de producción, por
ejemplo: día Juliano 3 es equivalente a 30 en el modelo.
4. La producción en toneladas, pásela a camionadas, donde cada camionada equivale a 10 toneladas.
5. Una vez que tenga la tabla de producción en camionadas y días Julianos multiplicados por 10, vaya al
objeto con nombre “Planta Procesadora”, haga doble click sobre ella y váyase a la pestaña que dice
“Source” (la ventana que debe ver es como la de la Figura N° 1. Luego en “Arrival Style” seleccione la
opción “Arrival Schedule”. Después en “Number of Arrivals” debe poner el número de llegadas que hay,
por ejemplo: si de 360 días (que es su intervalo de tiempo seleccionado), usted produjo durante 250, el
número 250 va en ese lugar; luego presione “Refresh Arrivals”. Una vez que presiona “Refresh Arrivals”
se le abre una tabla más abajo, donde debe poner en “Arrival Time” cada día Juliano donde trabajó y al
lado en “Quantity” la cantidad (recuerde que debe ser en camionadas) que produjo ese dia. Luego
presione “Apply” y “OK”.
Figura N°C.1: Ingreso de datos de Producción
Fuente: Elaboración propia en Microsoft Office Visio 2007
123
6. Diríjase a la barra de herramientas principal del programa, seleccione “Tools” y luego a “Global Tables”
como lo indica la Figura N°2.
Figura N° C.2: Tablas Globales
Fuente: Elaboración propia en Microsoft Office Visio 2007
7. Llene la tabla “PRODUCCIÓN” con los mismos datos y de la misma manera que llenó el “Source”
llamado “Planta Procesadora”.
8. Estime la demanda diaria que tendrá durante el mismo intervalo que eligió para hacer el estudio, y
pase (al igual que con la producción) el tiempo a días Julianos. Luego vaya a las tablas globales
(indicadas en el punto 6) y llene la que tiene el nombre “demandas”.
9. Aparte de llenar las tablas globales antes mencionadas, llene también la tabla “precios” y “cap disp”.
En la tabla precios, debe llenar éstos de acuerdo a cada frigorífico, donde la primera columna son los
costos de almacenamiento, y la segunda de transporte. Lo importante es que el costo de almacenamiento
sea expresado en toneladas al mes y el de transporte como el precio del flete de un camión de 10
toneladas por concepto de “ida” (es decir lo que sale ir a dejar 10 toneladas al destino del frigorífico
correspondiente). Por último, la tabla “cap.disp” se llena con la capacidad inicial de los frigoríficos al
momento de comenzar a producir. Esta capacidad tiene que estar en camionadas.
Figura N° C.3: tablas “precios” y “cap disp”
Fuente: Elaboración propia en Microsoft Office Visio 2007
124
10. En el modelo, seleccione el objeto con nombre “FI” y haga doble click. En la pestaña con nombre
“Source” llene la celda que acompaña el nombre “Maximun Content” con la capacidad inicial de ese
frigorífico (que es la misma capacidad que puso en la tabla global “cap disp”). Luego repita lo mismo para
los demás frigoríficos (FE si trabaja con el modelo de dos frigoríficos y FE1, FE2 Y FE3 si trabaja con el
modelo de cuatro frigoríficos).
Figura N° C.4: Ingreso de capacidades máximas por frigorífico.
Fuente: Elaboración propia en Microsoft Office Visio 2007
11. Una vez hecho lo anterior, vaya al objeto en el modelo con nombre “Fuente 2” y haga doble click en
ella. Luego vaya a la pestaña de nombre “Triggers” y presione sobre el botón “A” que está paralelo a la
palabra “OnCreation”, se le abrirá una nueva ventana con código, donde debe cambiar el valor que sale
destacado en la Figura N° C.5, por el primer tiempo donde empieza su producción, por ejemplo, si en la
tabla producción, su primer dato en día Juliano es 40 (es decir comenzó a producir en el tiempo 40 del
Flexsim), ese es el valor que debe cambiar en esta parte del código. Luego apreté “Apply” y “OK”.
Figura N° C.5 Cambio de número en código de “FUENTE 2 I”
Fuente: Elaboración propia en Microsoft Office Visio 2007
125
Figura N° C.6 Cambio de número en código de “FUENTE 2”II.
Fuente: Elaboración propia en Microsoft Office Visio 2007
Ahora puede comenzar a usar el modelo y analizar los datos entregados al final de éste en la “TABLA
GLOBAL” que puede exportar a Excel a través del signo en el panel de control.
126
Descargar