book modelos y simulaciÓn

84
ModeliZa UNNOBA Departamento de Tecnología 01/11/2012 Alejandro Roberti Edición Preliminar

Upload: martin-ezequiel-wehren

Post on 18-Dec-2014

122 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: BOOK MODELOS Y SIMULACIÓN

ModeliZa

U N N O B A

D e p a r t a m e n t o d e

T e c n o l o g í a

0 1 / 1 1 / 2 0 1 2

Alejandro Roberti

Edición Preliminar

Page 2: BOOK MODELOS Y SIMULACIÓN

Pág.: 1 / 83

ModeliZa

Edición Preliminar – Noviembre 2012 Alejandro Roberti –UNNOBA – Depto. de Tecnología

Contenido Edición Preliminar – Noviembre 2012 ....................................................................................... 1

ModeliZa .................................................................................................................................. 3

Capítulo 1. Sistemas .................................................................................................................. 5

CLASIFICACIÓN DE SISTEMAS: ............................................................................................... 8

Capítulo 2 Teoría General de Sistemas .................................................................................... 11

Características de los sistemas ............................................................................................ 12

Modelos generales de comportamiento de los sistemas...................................................... 13

Visión mecanicista ........................................................................................................... 14

Visión sistémica ............................................................................................................... 15

Ingeniería de sistemas ......................................................................................................... 18

Análisis de sistemas ......................................................................................................... 18

Aplicaciones de la Teoría General de Sistemas .................................................................... 24

Investigación Operativa ................................................................................................... 24

Cibernética ...................................................................................................................... 25

Teoría de la Información ............................................................................................. 25

Segunda Parte......................................................................................................................... 28

Capítulo 3 – Introducción a Simulación ................................................................................... 28

Efecto Mariposa ............................................................................................................ 29

Diferencias entre métodos numéricos, métodos analíticos y simulación .................. 31

Método analítico ........................................................................................................... 31

Método numérico .......................................................................................................... 32

Simulación ..................................................................................................................... 32

Metodología de la Simulación ......................................................................................... 35

3.1 – Generación de Números Aleatorios .................................................................. 36

Introducción .................................................................................................................... 36

Aleatoriedad y simulación ............................................................................................... 38

Generadores congruenciales ........................................................................................... 40

Page 3: BOOK MODELOS Y SIMULACIÓN

Pág.: 2 / 83

Generadores recursivos múltiples ................................................................................... 40

Generadores aleatorios en las PC ............................................................................... 41

3.2 Transformación del número aleatorio en variable aleatoria ................................ 42

Capítulo 4 – Simulación ........................................................................................................... 44

Modelos.............................................................................................................................. 45

Usos comunes de los modelos ......................................................................................... 46

Etapas de la simulación ................................................................................................... 47

Representación gráfica de los modelos ......................................................................... 49

Simulación de sucesos discretos ..................................................................................... 50

FORMULACION DEL MODELO .............................................................................................. 54

Criterios .......................................................................................................................... 54

Ejemplo de simulador de dos juegos. .................................................................................. 55

Juego de raspadita ....................................................................................................... 55

Juego de las tres diferencias ...................................................................................... 61

Relaciones funcionales ........................................................................................................ 65

Etapas ................................................................................................................................. 66

Capítulo 5 - Método de MONTECARLO ............................................................................. 69

La Técnica ..................................................................................................................... 69

Pasos para aplicar la técnica de Montecarlo ............................................................. 71

Base de método: ............................................................................................................. 71

Reducción de varianza ................................................................................................. 73

Capítulo 6 – Simulación de Inventarios .................................................................................... 79

Modelo de Inventario probabilístico .................................................................................... 79

Capítulo 7 – Lenguajes de Simulación ...................................................................................... 83

Page 4: BOOK MODELOS Y SIMULACIÓN

Pág.: 3 / 83

ModeliZa MODELOS Y SIMULACIÓN (PROGRAMA PROVISORIO DE CONTINGENCIA 2012) Carga horaria: 80 hs. Carrera: Ingeniería Informática Informática: 4to año – 1er cuatrimestre Correlativas para cursar: Probabilidades y Estadísitcas cursada Correlativas para aprobar: Probabilidades y Estadísitcas aprobada INFORMÁTICA Y DINÁMICA DE LOS SISTEMAS (INDUSTRIAL) Carrera: Ingeniería Industrial Carga horaria: 96 hs 5to año – 2do cuatrimestre Correlativas para cursar: Análisis Matemático Aplicado, Procesos y Fabricación, Fundamentos de informática cursadas Correlativas para aprobar: Análisis Matemático Aplicado, Procesos y

Fabricación, Fundamentos de informática aprobadas Objetivos Generales (AMBAS CARRERAS) Que el estudiante comprenda los procesos de abstracción para modelar procesos, distinga los modelos que son susceptibles de resolverse utilizando computadoras y aprenda a resolver modelos básicos mediante la simulación por computadora. Adquiera capacidades para analizar los resultados de la simulación y detectar causas de error Contenidos mínimos (INFORMÁTICA) Revisión de terminología y conceptos de probabilidad. Introducción a la Simulación. Simulación de eventos discretos. Números aleatorios. Simulación de muestras probabilísticas. Fenómenos de espera. Lenguajes de simulación. Análisis de los resultados de la simulación. Contenidos mínimos (INDUSTRIAL / REFORMADOS) Teoría general de sistemas. Modelos y simulación informática del comportamiento. Dinámica de sistemas. Variables aleatorias. Modelado

mediante dinámica de sistemas Aplicaciones a la ingeniería industrial. Modelos de gestión, planificación, programación, control, distribución, logística. Integración productiva. DESARROLLO DE PROGRAMA DE CONTINGENCIA PROVISORIO PARA AMBOS

1. TEORÍA GENERAL SISTEMAS Componentes. Objetos y Relaciones. Límites. Tipos de sistemas. Propósitos. Globalismo. Fenómenos de entropía y homeostasis. Premisas de la teoría general de sistemas. Parámetros. Componentes sistémicos. Sistemas aplicados a análisis y descripción. Sistemas que describen otros sistemas.

2. MODELOS Definición de Shannon. Nociones generales de teoría de juegos. Modelos de simulación. Descripción de simuladores mecánicos, físicos, virtuales. Reconceptualización de los sistemas en función de la estabilidad o inestabilidad. Sistemas caóticos. Teoría del caos, introducción. Condiciones de inicio de los modelos. Sensibilidad.

Page 5: BOOK MODELOS Y SIMULACIÓN

Pág.: 4 / 83

3. MODELOS COMPUTACIONES DE SIMULACIÓN Simulación de eventos discretos. Números aleatorios y pseudoaleatorios. Modelización de simuladores simples. Uso de lenguajes de programación de aplicaciones generales. Planillas de cálculo. WinQSB. LINGO. MathLab. Programación en lenguajes de alto nivel de casos demostrativos. Visual Basic.

4. MÉTODO DE MONTE CARLO

Conversión de distribuciones de probabilidad. Pruebas de validación. Parámetros.

5. MODELOS DE COLAS Uso de software para convertir modelos matemáticos en modelos de simulación. Simulación de eventos discretos. Definición de entidades y procesos. Líneas de tiempo.

6. SIMULACION CON LENGUAJES DE PROGRAMACIÓN ESPECÍFICOS Programas comerciales. WinQSB, ARENA, SLAM II, SIMAN. Aplicaciones. Utilización.

7. SIMULADORES DE SOFTWARE LIBRE O PROPIETARIO APLICADOS A CASOS CONCRETOS

Análisis de software específico de simulación. Simuladores sociales. Simuladores de procesos de ingeniería. Simuladores de comunicaciones en red. Simuladores de control de procesos. Validación de diseños por paquetes de análisis de elementos finitos.

8. APLICACIONES DE SIMULACIÓN A LA GESTIÓN Administración. Logística. Control de gestión. Control de procesos. Predicción

de comportamientos. BIBLIOGRAFÍA Hillier, Frederick S.; Liberman, Gerard. "Introducción a la Investigación de operaciones". McGraw Hill. (2007) Taha, Hamdy. "Investigación de operaciones". Pearsons (2006). Mathur; Kamlesh; Solow. "Investigación de operaciones". Prentice Hall. (2005) Roberti, Alejandro, Optimiza9. Ed. CD, 2010 Ed propia EPPEN, G.D. “Investigación de operaciones en la ciencia de la administración”. PRETICE-HALL, ISB: 970-17-0270-0 - (2000) LINDO. “Optimization Modeling with LINGO”, LINDO Systems Inc. ISBN: 1-893355-00-4 (2003) LAW, A., KELTON, W. “SIMULATION MODELING AND ANALISYS”. ISBN 0-07-

059292-6 (2000). PAZOS, J., SUÁREZ, A. Y DÍAZ, R. “Teoría de Colas y simulación de Eventos Discretos”. PRETICE HALL, ISBN: 84-205-3675-X. (2003). RÍOS, D., RÍOS, S., MARTÍN, J.. ”SIMULACIÓN Métodos y aplicaciones”. RA-MA, ISBN:84-7897-258-7 (1997)

Page 6: BOOK MODELOS Y SIMULACIÓN

Pág.: 5 / 83

Capítulo 1.

Sistemas Para comenzar un abordaje a la Teoría se debe comprender que se entiende por Sistema. Un sistema (del latín systema, proveniente del griego σύστημα) es un conjunto de funciones, virtualmente referenciada sobre ejes, bien sean estos reales o abstractos. Esto significa que dichas funciones, que pueden ser varias, se analizan en cuanto al objetivo que persiguen o a la manera de lograrlo. También suele definirse como un conjunto de elementos dinámicamente relacionados formando una actividad para alcanzar un objetivo operando sobre datos, energía y/o materia para proveer información. En esta segunda definición aparecen dos términos que son importantes para el desarrollo de los conceptos que siguen:

1. Elementos. Debe entenderse como objetos o entidades que tienen características que los distinguen unos de otros, existen en un estado determinado por ciertos parámetros específicos, reaccionan de manera

predeterminada ante ciertos estímulos y la reacción puede ser estímulo para otro objeto o para cambiar los parámetros que definen su propio estado.

Un objeto es, entonces, aquello que puede ser observado, estudiado y aprendido, en contraposición a la representación abstracta de ese objeto que se crea en la mente a través del proceso de generalización. Los objetos presentan varias características importantes, como:

Identidad o propiedad que permite a un objeto diferenciarse de otros

Comportamiento lo que está relacionado con su funcionalidad y determina lo que puede realizar o lo que puede responder ante estímulos enviados por otros objetos

Estado o conjunto de los valores de sus atributos – o parámetros que definen su estado – en un instante de tiempo dado.

2. Objetivo. Es la función principal o razón de ser del sistema. Aunque

puede haber comportamientos de ciertos objetos componentes del

sistema que sean espurios (o que no se relacionen con el objetivo común) solamente serán evaluados aquellos que sí lo estén.

Tan importante como la definición de sistema es comprender que un sistema cualquiera está inmerso en un entorno y cuenta con otros componentes que también pueden ser sistemas. El entorno puede ser considerado un “Suprasistema” y algunos objetos componentes tan complejos que pueden ser considerados, en sí mismos, sistemas y, por tanto, “Subsistemas”. Ambos, suprasistemas y subsistemas, entonces, son términos relativos a la posición que el analista le dé al sistema bajo estudio.

Page 7: BOOK MODELOS Y SIMULACIÓN

Pág.: 6 / 83

Los componentes de los sistemas, son, en términos generales: El ambiente: o entorno, que puede ser un conjunto de sistemas abarcativos (o suprasistemas) o, en términos de simplificación analítica un conjunto de

entradas de masa, energía o información. Las variables: son aquellos parámetros que pueden cambiar en función del tiempo o por acción del propio sistema. Se distinguen tipos:

Variables de decisión: o parámetros cuyos valores son buscados

Variables de estado: o parámetros producidos por la funcionalidad del

sistema o para operar el sistema en determinado estado

ENTORNO – SUPRASISTEMA – AMBIENTE

SISTEMA

SUBSISTEMA SUBSISTEMA

Page 8: BOOK MODELOS Y SIMULACIÓN

Pág.: 7 / 83

Variables de Control: aquellos parámetros que pueden ser fijados para

obtener determinadas respuestas

Variables sin control: generalmente asociadas a aquellos factores que no tienen posibilidad de ser fijados o no resulta práctico hacerlo. Se asociación a ruido o error.

Variables internas: generalmente son producidas por los objetos

componentes como resultado de estímulos provocados por el entorno o por otros objetos

Variables de salida: parámetros que permiten definir el estado de un sistema

El objetivo: como ya fue señalado, es la función principal o razón de ser del sistema. Aunque puede haber comportamientos de ciertos objetos componentes del sistema que sean espurios (o que no se relacionen con el objetivo común) solamente serán evaluados aquellos que sí lo estén. Las entidades u objetos: son los elementos celulares del sistema cuyos parámetros están orientados a la función

La estructura: es la manera en que se relacionan los objetos para producir la función objetivo El globalismo: cuando un cambio en un objeto puede producir cambios en los otros. El efecto final es un ajuste a todo el sistema. Es una relación Causa/efecto que deriva en dos fenómenos: Entropía y homeostasis

La entropía: o tendencia de los sistemas a desgastarse, a desintegrarse, relajar los estándares y aumentar la aleatoriedad. La entropía aumenta con el tiempo. Si aumenta la información, disminuye la entropía, porque es la base de la configuración y del orden. Obviamente, mantener niveles de entropía o disminuirlos implica un aporte al sistema de energía o de información.

La Homeostasis: es la tendencia al equilibrio dinámico entre los componentes del sistema. Los sistemas tienen una tendencia a adaptarse con el fin de alcanzar un equilibrio interno frente a los cambios del entorno.

La Teoría General de Sistemas parte de tres premisas fundamentales:

Los sistemas existen dentro de sistemas: cada sistema existe dentro de otro más grande llamado suprasistema.

Los sistemas son abiertos: cada sistema que se examine, recibe y descarga algo en los otros sistemas, generalmente en los contiguos. Los sistemas abiertos se caracterizan por un proceso de cambio infinito con su entorno, que son los otros sistemas.

Cuando el intercambio cesa, el sistema se desintegra, esto es, pierde sus fuentes de energía.

Las funciones de un sistema dependen de su estructura: para los sistemas biológicos y mecánicos esta afirmación es intuitiva. Los tejidos musculares por ejemplo, se contraen porque están constituidos por una estructura celular que permite contracciones.

Page 9: BOOK MODELOS Y SIMULACIÓN

Pág.: 8 / 83

PARAMETROS: Entrada o insumo o impulso (input). Existen tres categorías de

entradas: las que interesan evaluar o modificar para ver su efecto sobre la o las salidas, las que no son modificables pero son conocidas y las que no son conocidas y no se conoce como se modifican (ruido)

Salida o producto o resultado (output). Son parámetros medibles u

observables, generalmente variables en función de los parámetros de entrada y del tiempo.

Procesamiento o procesador o transformador (throughput). Aunque generalmente es una caja negra, puede contener subsistemas observables (objetos, entidades) con sus propios parámetros que interconectan a los objetos. Habrá un nivel menor que, finalmente, será una caja negra.

Retroacción o retroalimentación o retroinformación (feedback). Parámetros de salida que se utilizan como operadores para modificar uno o más parámetros de entrada

Ambiente: puede ser un recurso para el sistema, también puede ser una amenaza. En el ambiente suelen estar factores necesarios como información, materia, energía así como factores de desequilibrio o perturbación y el ruido o fuente de error.

En definitiva, un sistema quedará perfectamente definido si se conocen los siguientes factores:

a. Los objetos b. Las relaciones entre ellos c. El comportamiento general d. Los límites

CLASIFICACIÓN DE SISTEMAS: Con referencia a la relación que el sistema tiene con su entorno (o ambiente),

se clasifican en tres tipos: SISTEMAS AISLADOS: No pueden compartir materia, energía ni información con el entorno SISTEMAS CERRADOS: No puede compartir materia pero sí energía o información el medio SISTEMAS ABIERTOS: Pueden compartir materia, energía e información con el entorno Con referencia a la funcionalidad, se pueden clasificar en nueve niveles jerárquicos, según Boulding1:

1. Estructura estática, sin cambios en función del tiempo. Lo que se podría llamar el nivel de los marcos. Esta es la geografía y la anatomía

1 Kenneth Ewart Boulding (n. en Inglaterra el 18 de enero de 1910 y m. el 18 de marzo de 1993.) Fue un economista, presidente de la American Economic Association y de la American Association for the Advancement of Sciences. En 1950 escribió un artículo que tituló “La Teoría General de Sistemas y la Estructura Científica”. Este artículo se considera que revolucionó el pensamiento científico y planteó la clasificación para los sistemas.

Page 10: BOOK MODELOS Y SIMULACIÓN

Pág.: 9 / 83

del universo - los patrones de los electrones alrededor del núcleo, el patrón de los átomos en una fórmula molecular, la disposición de los átomos en un cristal, la anatomía del gen, la célula, la planta, el animal, la asignación de la tierra, el sistema solar, el universo astronómico. La descripción exacta de estos marcos es el principio del conocimiento teórico organizado en casi cualquier campo, ya que sin

precisión en la descripción de relaciones estáticas ninguna teoría precisa funcional o dinámica es posible. Así, la revolución copernicana fue realmente el descubrimiento de un nuevo marco estático del sistema solar que permite una descripción más simple de su dinámica.

2. Sistemas simples con cierto dinamismo, compuesto por objetos con comportamiento preestablecido inmutables a cambios externos. Este podría llamarse el nivel de mecanismos de relojería. El sistema solar es, por supuesto, el gran reloj del universo desde el punto de vista del hombre, y las predicciones exactas de los astrónomos son un testimonio de la excelencia del reloj que ellos estudian. Las máquinas simples como la palanca y la polea, incluso máquinas más complicadas como las máquinas de vapor y dínamos recaen principalmente en esta categoría. La mayor parte de la estructura teórica de la física, la química, e incluso de la economía entra en esta categoría.

3. Sistemas simples pero con mecanismos de autocontrol para mantener

el equilibrio y la armonía con el ambiente. Es un nivel Cibernético o de equilibrio: podría ser “el nivel del termostato”. Este difiere del sistema simple de equilibrio estable, principalmente en el hecho de que la transmisión y la interpretación de la información es una parte esencial del sistema. Como resultado de esto, la posición de equilibrio no es sólo determinada por las ecuaciones del sistema, sino que el sistema se moverá hacia el mantenimiento de cualquier equilibrio dado, dentro de los límites. Así, el termostato mantendrá cualquier temperatura a la cual se puede establecer, la temperatura de equilibrio del sistema no está determinado únicamente por sus ecuaciones. El truco, por supuesto, es que la variable esencial del sistema dinámico es la diferencia entre un estado "observado" o "registrado" el valor de la variable de mantenimiento y su valor "ideal". Si esta diferencia no es cero, el sistema se mueve con el fin de disminuirla, por lo que el horno envía el calor cuando la temperatura registrada es "demasiado fría" y se apaga cuando la temperatura registrada es "demasiado caliente".

4. Sistemas capaces de autoestructurarse y controlarse para realizar adaptaciones significativas para mantener el equilibrio y la armonía. Es un nivel de estructura de autoreproducción o de célula: Sistemas abiertos o estructuras auto-mantenidas. Este es el nivel en el que la vida empieza a diferenciarse de la no vida.

5. Sistemas Genéticos Sociales, pueden realizar agrupaciones simples para alcanzar objetivos comunes. También llamado nivel de las plantas: Las características más destacadas de estos sistemas

Page 11: BOOK MODELOS Y SIMULACIÓN

Pág.: 10 / 83

(estudiados por los botánicos) son una división del trabajo con partes diferenciadas y mutuamente dependientes (raíces, hojas, semillas, etc), y en segundo lugar, una diferenciación clara entre el genotipo y el fenotipo, asociada con el fenómeno de la finalidad o "huella" de crecimiento.

6. Sistemas complejos con objetivos más extendidos que la propia estabilidad. Son capaces de movimientos y se caracterizan por absorber gran cantidad de información del ambiente con el desarrollo de los receptores de la información especializada (ojos, oídos, etc.) Es el Mundo animal: comportamiento teleológico y conciencia de sí mismo.

7. Sistemas capaces de procesar información compleja a alta velocidad. Conciencia de si mismos o auto conciencia, que difiere de la conciencia simple. (ser humano)

8. Sistemas sociales creados por el hombre. Interrelación de sistemas.

El hombre aislado de sus semejantes, es prácticamente desconocido. Tan esencial es la imagen simbólica de la conducta humana que se sospecha que un hombre verdaderamente aislado no sería "humano" en el sentido generalmente aceptado, a pesar de que sería potencialmente humanos. Sin embargo, es conveniente para algunos propósitos distinguir el ser humano individual como un sistema de los sistemas

sociales que lo rodean, y en este sentido, las organizaciones sociales puede decirse que constituyen otro nivel de organización. Organización social, se podría definir como un conjunto de funciones ligadas con los canales de comunicación.

9. Sistemas trascendentales. Se ubican aquellos sistemas no entendidos

por el hombre pero que se sabe que existen.

Page 12: BOOK MODELOS Y SIMULACIÓN

Pág.: 11 / 83

Capítulo 2

Teoría General de Sistemas

La Teoría General de Sistemas fue enunciada por Ludwig von Bertalanffy2 a partir de 1945 hasta 1968 con el objeto de unir el metabolismo, crecimiento, morfogénesis y fisiología en una sola teoría dinámica aplicada a sistemas estáticos abiertos. Al describir un organismo como un sistema estático abierto, enuncia que el mismo tiene como meta lograr un estado de armonía con el entorno, bajo la propuesta de dos principios:

Mantenimiento de los organismos en el no-equilibrio

Organización jerárquica de la estructura sistémica

Bertalanffy basa su teoría en un intento de unificación de varias teorías y en tratar de encontrar un punto de partida común para las ciencias en todas sus ramas, tanto naturales como sociales, teniendo en cuenta la Teoría de conjuntos3, las teoría de redes de Anatol Rapoport4, la Teoría de los autómatas de Turing5 y la Teoría de juegos de von Neumann6

2 Nació en 1901 en Austria y murió en 1972 en Estados Unidos. Fue biólogo y filósofo. 3 La teoría de conjuntos es una rama de las matemáticas que estudia las propiedades de colecciones abstractas de objetos, consideradas como objetos en sí mismas como una herramienta básica en la formulación de algunas teorías matemáticas y es lo suficientemente rica como para construir el resto de objetos y estructuras de interés en matemáticas: números, funciones, figuras geométricas, etc. En la actualidad se acepta que el conjunto de axiomas de la teoría de Zermelo-Fraenkel es suficiente para desarrollar toda la matemática. El desarrollo histórico de la teoría de conjuntos se atribuye a Georg Cantor, que comenzó a investigar en la segunda mitad del siglo XIX, precedido por algunas ideas de Bernhard Bolzano e influenciado por Richard Dedekind. El descubrimiento de las paradojas de la teoría cantoriana de conjuntos propició los trabajos de Bertrand Russell, Ernst Zermelo, Abraham Fraenkel y otros a principios del siglo XX. 4 En el lenguaje cotidiano se ha utilizado libremente la idea de "red social" durante más de un siglo para

denotar conjuntos complejos de relaciones entre miembros de los sistemas sociales en todas las dimensiones, desde el ámbito interpersonal hasta el internacional. En 1954, el antropólogo de la Escuela de Manchester J. A. Barnes comenzó a utilizar sistemáticamente el término para mostrar patrones de lazos, abarcando los conceptos tradicionalmente utilizados por los científicos sociales: grupos delimitados (p.e., tribus, familias) y categorías sociales (p.e., género, etnia). Académicos como Anatol Rapoport expandieron el uso del análisis de redes sociales sistemático. Rapoport propuso un algoritmo (toma y daca) escrito en Basic para desarrollar la mejor estrategia conocida del “Dilema del Prisionero”, a fines de los 1980. 5 Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de cinta de acuerdo a

una tabla de reglas. A pesar de su simplicidad, puede ser adaptada para simular la lógica de cualquier

Page 13: BOOK MODELOS Y SIMULACIÓN

Pág.: 12 / 83

La TGS parte de las premisas de que todo sistema existe dentro de otro sistema, de que los sistemas son abiertos y de la estructura interna de ellos explica la funcionalidad del mismo. De esta manera hay una suerte de filosofía en la TGS con bases

Ontológicas7 (en cuanto la definición de un sistema propiamente dicho

y de su ubicación, Epistemológicas8: que busca diferenciar entre TGS y el empirismo,

entendido como modelado causa-efecto (modelo físico) sobre la base que en realidad no siempre esas relaciones son lineales.

Filosofía de valores: que busca establecer la relación entre seres humanos y sistemas que lo rodean.

Características de los sistemas

La TGS establece una serie de características que permiten describir mejor a cualquier sistema. Por supuesto no existe una única manera de establecer esas características, aunque una lista como la que se propone a continuación es un buen ejemplo y suficientemente completa:

1. Interrelación e interdependencia: Las entidades u objetos deben tener una vinvulación y en un análisis no deben ser incluidos aquellos objetos que no la tengan.

algoritmo de computador y de las funciones de un CPU. Fue descrita por Alan Turing en 1936 quien la llamó una "máquina automática". No está diseñada como una tecnología de computación práctica, sino como un dispositivo hipotético que representa una máquina de computación. Turing dio una definición sucinta del experimento en 1948, refiriéndose a su publicación de 1936, escribió que la máquina consistía en: ...una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con cuadrados, en cada uno de los cuales podría imprimirse un símbolo. En cualquier momento hay un símbolo en la máquina; llamado el símbolo leído. La máquina puede alterar el símbolo leído y su comportamiento está en parte determinado por ese símbolo, pero los símbolos en otros lugares de la cinta no afectan el comportamiento de la máquina. Sin embargo, la cinta se puede movers hacia adelante y hacia atrás a través de la máquina, siendo esto una de las operaciones elementales de la máquina. Por lo tanto cualquier símbolo en la cinta puede tener finalmente una oportunidad (Turing 1948, p. 61) 6 John von Neumann (28 de diciembre de 1903 - 8 de febrero de 1957) fue un matemático húngaro-

estadounidense que realizó contribuciones fundamentales en física cuántica, análisis funcional, teoría de conjuntos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística y muchos otros campos. Está considerado como uno de los más importantes matemáticos de la historia moderna

7 El término ontología en informática hace referencia a la formulación de un exhaustivo y riguroso

esquema conceptual dentro de uno o varios dominios dados a fin de facilitar la comunicación y el intercambio de información entre diferentes sistemas y entidades. Aunque toma su nombre por analogía, ésta es la diferencia con el punto de vista filosófico de la palabra ontología. La ontología (ciencia, estudio, teoría del ser) es una parte de la metafísica que estudia lo que hay. (¿Existen entidades mentales, como ideas y pensamientos?, p.ej.) Además, estudia la manera en que se relacionan las entidades que existen.

8 Epistemologogía o estudio del conocimiento abarca el estudios de las circunstancias históricas, sociales

y psicológicas que llevan al conocimiento y los criterios con los que se valora y justifica.

Page 14: BOOK MODELOS Y SIMULACIÓN

Pág.: 13 / 83

2. Totalidad: No debe estudiarse un componente o entidad sin considerar el sistema en su totalidad. No se puede abordar un sistema solamente abordando sus partes por separado.

3. Objetivos: Toda aplicación de la TGS debe encaminarse a objetivos

claramente definidos del sistema

4. Entradas (insumos) y Salidas (productos): Los sistemas abiertos

requieren entradas desde el medio para su existencia: las entradas pueden ser materia, energía o información. Las salidas comunican o no con el medio de la misma manera aunque generalmente con transformaciones.

5. Transformación: es lo que define la característica de la salida. La

entrada produce la salida al ser operada por el proceso: entrada (+) proceso salida

6. Entropía: Componente importante. Es la tendencia a la

desorganización en función del tiempo. El desorden puede conducir a su desaparición. Para describir la entropía de un sistema hace falta conocer la manera que tiene ese sistema de relacionarse con los demás sistemas del entorno

7. Jerarquía: Generalmente los sistemas son complejos con múltiples subsistemas. Entre todos ellos existen relaciones más o menos complejas y un sistema de jerarquías cuyo fin es regular el sistema y obtener sus funciones.

8. Regulación: Es una consecuencia de lo anterior: si hay jerarquías debe

haber una manera de manejar las interacciones con el fin de que las metas y objetivos se cumplan satisfactoriamente.

9. Diferenciación: En todos los sistemas debe existir una clara

diferenciación entre los distintos subsistemas, funcional o estructural, para lograr los objetivos más eficientemente, mejor adaptación al medio y mejor aprovechamiento de los insumos que el medio proporciona

10. Equifinalidad: Es la capacidad de los sistemas de lograr sus objetivos a

partir de diferentes estados iniciales y por procesos diferentes. Es una diferenciación muy importante respecto al empirismo, que plantea que

toda causa tiene su efecto y el camino o proceso es siempre el mismo.

Modelos generales de comportamiento de los sistemas A lo largo de la historia de la humanidad hubo varias maneras de describir las organizaciones y los fenómenos naturales. Sin embargo las más trascendentes son la visión mecanicista y la visión sistémica.

Page 15: BOOK MODELOS Y SIMULACIÓN

Pág.: 14 / 83

Visión mecanicista

Basado en enfoques filosóficos inspirados a partir de trabajos de Galileo, Huygens, y Boyle, entre otros, Descartes9, enuncia el método cartesiano. La ontología cartesiana mecanicista se basa en dos tesis

El mundo y todo lo que contiene es una máquina o se comporta como una

Todo lo real es físico

La gnoseología cartesiana mecanicista sostenía la reducción de los fenómenos a sus partes físicas y sus interacciones mecánicas. La visión mecanicista parte de considerar que los sistemas son

Cerrados: el campo de experimentación se remite al objeto en estudio sin tener en cuenta su entorno. Las relaciones sujeto – objeto siempre se producen a distancia y por fuerzas determinadas.

Estáticos: el método es solo cuantitativo y no cualitativo, por lo tanto

encierra una visión estática del mundo y sus objetos. Se describe el estado estacionario.

Además a estos sistemas se les aplica el Método cuantitativo: La separación sujeto objeto permite crear relaciones matemáticas que describen no solamente esa separación o distancia sino también la o las posibles interacciones entre ambos. Por fin, siempre se

encontrará una explicación matemática de las relaciones analizadas.

El método cartesiano fue puesto en práctica por Sir Isaac Newton (1642 – 1727), ya que todos sus trabajos sobre fuerza gravitatoria, naturaleza de la luz, cálculo, etc. se basaron en el método cartesiano: proponiendo hipótesis y demostrando teorías usando razonamiento y experimentación.

9 René Descartes, también llamado Renatus Cartesius, nacido en Francia el 31 de marzo de 1596 y fallecido en Estocolmo el 11 de febrero de 1650, fue un filósofo, matemático y físico, considerado como el padre de la geometría analítica y de la filosofía moderna, así como uno de los nombres más destacados de la revolución científica. Cartesius, era la forma latinizada en la cual escribía su nombre, del que deriva la palabra cartesiano, formuló el célebre principio cogito ergo sum ("pienso, luego existo"), elemento esencial del racionalismo occidental.

Page 16: BOOK MODELOS Y SIMULACIÓN

Pág.: 15 / 83

Con su ley de gravitación, Newton fue el primer científico que enunció una teoría del universo basado en la matemática y no solo en la observación o experimentación. John Locke (1632 – 1704), pensador inglés considerado el padre del empirismo y del liberalismo moderno, tomó los métodos e ideas de Newton y los aplicó a

las organizaciones humanas. Locke pensaba que la filosofía tenía que participar en estos importantes avances, eliminando, por ejemplo, todas las invenciones y los conceptos inútiles acumulados durante los siglos anteriores. Según él, las analogías y las relaciones entre los contenidos del conocimiento, son los elementos que permiten la elaboración de instrumentos críticos capaces de eliminar los conocimientos erróneos. Debido a su característico empirismo analítico, se opuso a las concepciones puramente mecanicistas y sistemáticas cartesianas. En el primer libro del Ensayo, Locke insistía en la necesidad de prescindir de consideraciones a priori y, en oposición a René Descartes, afirmaba que no existen conocimientos innatos y que sólo debe ser tenida en cuenta la experiencia. En el segundo libro propuso que la sensación (o ideas de la sensación, las «impresiones hechas en nuestros sentidos por los objetos exteriores») y la reflexión (o ideas de la reflexión, «reflexión del espíritu sobre sus propias

operaciones a partir de ideas de sensación»), se fundamentan en la experiencia y en las ideas simples creadas por medio de la percepción inmediata derivada de las excitaciones que provienen de los objetos. Concluyó en que “El ser humano es autónomo y alejado del entorno” Las sociedades humanas eran resultado del comportamiento de cada individuo, sin tener en cuenta el todo. Cada ser humano es un mundo y la única finalidad es la eficiencia.

Visión sistémica

La visión sistémica se basa en la construcción de sistemas abiertos, de carácter cíclico con un pensamiento integrador, dinámico y cualitativo, en

oposición casi diametral con la concepción mecanicista. Los Sistemas abiertos reconocen la importante influencia del entorno sobre el sistema, al punto que en ocasiones no pude existir el sistema sin el entorno, o al menos es imposible que se desempeñe sin él. El Carácter cíclico está en la relación de los componente u objetos del sistema entre sí, de manera tal que un cambio en uno de ellos se propaga a los demás y determina cambios en la totalidad del sistema. El Pensamiento integrador permite concebir cada sistema en relación con el entorno y con los demás sistemas.

Page 17: BOOK MODELOS Y SIMULACIÓN

Pág.: 16 / 83

El Carácter dinámico y cualitativo se fundamenta en que la dinámica de funcionamiento provoca cambios en el comportamiento de los componentes y del mismo sistema y/o del entorno. Los conceptos básicos de la Visión sistémica son tres: La visión de la realidad, Las leyes del pensamiento y La dinámica de sistemas.

En esos conceptos básicos, además, se distinguen ciertos principios o modalidades que los definen con más precisión:

1. Visión de la Realidad tiene los siguientes elementos: Eventos: cualquier acción del entorno sobre el sistema Patrón de conducta: que se reduce a una explicación simple del

observador sobre las reacciones que provocan los eventos Estructura: define los patrones de conducta de un sistema

2. Leyes del pensamiento son una conjunto simple de normas básicas, tales como:

1. La estructura define el comportamiento 2. Pensar en todo el sistema pero actuar en sus componentes 3. Una intervención siempre empeorará en vez de mejorar 4. Los problemas de hoy fueron las soluciones de ayer

3. Dinámica de sistemas: La base conceptual para entender de que manera la estructura es la responsable del comportamiento del sistema.

Herramientas de la Visión Sistémica

Las dos herramientas fundamentales de la visión de sistemas son sendos diagramas que permites conceptualizar sistemas complejos. Esto no significa que no existan otras, simplemente se muestran a manera de ejemplo y recalcando que existen varias maneras de abordar un caso e, inclusive, software para ayudarse.

Diagrama de Influencias

Consiste en ejecutar una serie de pasos metodológicos a fin de entender un caso:

1. Seleccionar el tema 2. Fijar límites temporales (particularmente importante si luego se

proyecta simular) 3. Identificar el comportamiento de las variables en función del tiempo 4. Establecer límites 5. Establecer nivel de detalle (o categoría de los subsistemas)

Diagrama de Forrester

Forrester es un Ingeniero en Sistemas nacido en 1918 y creó sus diagramas partiendo del supuesto de que el usuario ha hecho un diagrama de influencias, a partir del cual clasifica las variables (o nodos) en variables de nivel, variables de flujo o en variables auxiliares.

Page 18: BOOK MODELOS Y SIMULACIÓN

Pág.: 17 / 83

Page 19: BOOK MODELOS Y SIMULACIÓN

Pág.: 18 / 83

Ingeniería de sistemas Se entiende por Ingeniería de Sistemas a un conjunto de técnicas interdisciplinarias que se encuentran encaminadas a la creación de sistemas o al mejoramiento de los existentes. La herramienta conceptual básica para desarrollar cualquier tarea en este

campo es el Análisis de Sistemas.

Análisis de sistemas

Las características fundamentales del Análisis de sistemas son: Enfoque sistémico: punto de partida fundamental, ya que consiste en

considerar cualquier tipo de organización a examinar como un sistema complejo

Enfoque dinámico: en el mismo sentido que el punto anterior, se parte

de la base que las organizaciones no son estáticas o se desarrollan en estado estacionario.

Múltiples niveles: Para estudiar un sistema de estas características y

llegar a comprenderlo es necesario analizar todos sus niveles

Multidisciplinario: se parte de la premisa que – en un ambiente de avance veloz de las tecnologías – los sistemas tienden a ser progresivamente más complejos y, por tanto, para su estudio, resulta imprescindible el abordaje multidisciplinario en cuanto aporta visiones desde otras ramas del conocimiento

Descriptivo: se persigue la capacidad de realizar una descripción

completa no solo de todo el sistema sino también de sus componentes

Adaptativo: deriva de considerar como premisa que los sistemas son abiertos. Al estudiar las organizaciones como sistemas abiertos se hace necesaria la posibilidad de adaptarlos para lograr un acople con el entorno y sus variaciones.

Las etapas del proceso de análisis son tres: Definición, Modelización y Evaluación. Estas etapas se realizan mediante una serie de pasos, tales como (cfr. Optimiza, construcción de modelos para programación lineal):

Identificación de objetivos y limitaciones Interpretación del funcionamiento Posibles acciones de mejora Construcción de modelo Detección de acciones apropiadas Acciones

Las técnicas que utiliza el Análisis de sistema son varias, entre ellas:

Análisis estructural: que se basa en el conocimiento perfecto de todos los componentes del sistema para diagnosticarlo

Page 20: BOOK MODELOS Y SIMULACIÓN

Pág.: 19 / 83

Estudio de viabilidad: herramienta que permite al analista disponer de elementos para determinar de que forma las soluciones propuestas pueden afectar al sistema

Simulación en computadora: modelos de sistemas programados en

software para predecir comportamientos

Tormenta de ideas: Grupo de personas trabajando sobre el problema

que proponen, discuten y evalúan alternativas de solución

Árbol de relevancia: análisis sobre las relaciones entre componentes del sistema, realizado con teoría de grafos y seleccionando los niveles de influencia sobre el resultado final

Método Delphi: Desarrollado por la organización RAND en los años

1950, se basa en consultas a expertos por etapas iterativas a fin de lograr consensos sobre las soluciones emergentes

En definitiva, el análisis de sistemas debe estar caracterizado por:

Una correcta definición del sistema Visión integral del sistema Esfuerzo multidisciplinario Encaminado a todo el ciclo de vida del sistema

El análisis de sistemas se relaciona íntimamente con varios campos. Algunos ellos son:

Sistemas de Información (SI):

Se trata de un conjunto de técnicas y procesos apropiados que interactúan entre sí con el fin de apoyar las actividades de una organización. No siempre un SI debe estar automatizado, en caso que lo estuviera sería un sistema informático. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información.

Investigación Operativa (IO)

Es el conjunto de técnica que permite la optimización de un proceso arbitrario bajo múltiples restricciones

Ingeniería de Sistemas Cognitivos

Rama que trata los entes cognitivos, sean humanos o no, como un tipo de sistemas capaces de tratar información y de utilizar recursos cognitivos como la percepción, la memoria o el procesamiento de información. Utiliza tanto psicología cognitiva como ingeniería de sistemas.

Organizaciones

Cuando se trata de aplicar la Ingeniería de sistemas o el análisis de sistemas a sistemas de organización humana tales como instituciones, empresas, negocios, control social, etc. Resulta útil describir la organización sistémica

Page 21: BOOK MODELOS Y SIMULACIÓN

Pág.: 20 / 83

de tal organismo. La organización institucional puede describirse en la teoría de sistemas, (o con un enfoque sistémico). Así, puede reconocerse que una organización dada, tomada como un sistema, tiene subsistemas importantes. Los subsistemas más relevantes son:

Subsistema psicosocial, que comprende las interacciones entre

los individuos o grupos o sectores que conforman la organización. Existe interacción intrínseca (entre sectores) y extrínseca (sectores con el entorno)

Subsistema técnico: es el conjunto de conocimientos y

herramientas operativas que hacen que la organización funcione, cumpla con sus objetivos, entregue sus productos. También conocida como know how o sistema operativo.

Subsistema Administrativo: es la relación con el ambiente,

establece objetivos, planes de integración, estrategia, operación, diseño de estructura y mecanismos de control. Incluye la posibilidad de tomar decisiones sobre la funcionalidad de los otros subsistemas y sobre sí mismo (por ejemplo, se decide un cambio drástivo en tecnología. Ello afectará el subsistema técnico pero también al psicosocial (educación para actualización técnica, nuevo personal, etc.) y probablemente

produzca también, cambios en los circuitos administrativos –ventas, publicidad, proveedores, etc.- en este subsistema

Por otra parte, el análisis de los sistemas de este tipo propende a lograr una evolución favorable y adaptativa a lo largo del tiempo, la cual puede planificarse en base a dos teorías

Calidad Total Quinta disciplina

Calidad total

Concepto formulado por William Deming (1903 – 1993) se basa en el concepto

de El ciclo PHVA, (planear, hacer, verificar, actuar) se denomina "circulo Deming" en su honor, aunque se fue realmente propuesto por Shewhart.

Deming fue contratado por el gobierno Japonés en 1947 para cambiar la economía y la base empresarial de un país desvastado por la guerra. Los estadounidenses, ante el empuje de la industria japonesa de pos guerra, recuperan estos conceptos que les habían pasado desapercibidos en la figura del propio Deming y su más aventajado condiscípulo, Malcolm

Baldrige.

Page 22: BOOK MODELOS Y SIMULACIÓN

Pág.: 21 / 83

El concepto de calidad total está fundado sobre una actitud comercial y empresarial que comprende a todos los niveles de la organización, no solo a los jerárquicos y que se pueden resumir en 14 puntos:

1. Crear constancia en la mejora de productos y servicios, para ser competitivo y mantenerse en el negocio, y generar puestos de trabajo.

2. Adoptar una nueva filosofía de cooperación enseñándola a los

empleados, clientes y proveedores.

3. Desistir de la dependencia en la inspección en masa para lograr calidad. En su lugar, mejorar el proceso y calidad en el producto desde el comienzo.

4. Terminar con la práctica de comprar a los más bajos precios. En lugar

de esto, minimizar el costo total en el largo plazo. Buscar un solo proveedor para cada ítem, basándose en una relación de largo plazo de lealtad y confianza.

5. Mejorar constantemente los sistemas de producción, servicio y

planeamiento de cualquier actividad. Esto va a mejorar la calidad y la productividad, bajando los costos constantemente.

6. Establecer entrenamiento dentro del trabajo (capacitación).

7. Establecer líderes, reconociendo sus diferentes habilidades, capacidades y aspiraciones. El objetivo de la supervisión debería ser ayudar a la gente, máquinas y dispositivos a realizar su trabajo.

8. Eliminar el miedo y construir confianza, de esta manera todos podrán

trabajar más eficientemente.

9. Borrar las barreras entre los departamentos. Abolir la competencia y construir un sistema de cooperación basado en el mutuo beneficio que abarque toda la organización.

10. Eliminar eslóganes, exhortaciones y metas pidiendo cero defectos o

nuevos niveles de productividad. Esto solo crea rivalidad, la principal causa de la baja calidad y la baja productividad reside en el sistema y no en el poder de la fuerza de trabajo.

11. Eliminar cuotas numéricas y la gestión por objetivos.

12. Remover barreras para apreciar la mano de obra y los elementos que privan a la gente de la alegría en su trabajo. Esto incluye eliminar las evaluaciones anuales o el sistema de méritos que da rangos a la gente y crean competencia y conflictos.

13. Instituir un programa vigoroso de educación y auto mejora.

Page 23: BOOK MODELOS Y SIMULACIÓN

Pág.: 22 / 83

14. Poner a todos a trabajar para llevar a cabo la transformación. La transformación es trabajo de todos.

En paralelo, Dening enuncia las siete enfermedades mortales de una organización: 1.- Falta de constancia en los propósitos

2.- Énfasis en las ganancias a corto plazo y los dividendos inmediatos 3.- Evaluación por rendimiento, clasificación de méritos o revisión anual de resultados 4.- Movilidad de los ejecutivos 5.- Gerencia de la compañía basándose solamente en las cifras visibles 6.- Costos médicos excesivos. 7.- Costo excesivo de garantías

Quinta Disciplina

El concepto fue creado por Peter Senge, nacido en 1947 y que se graduó en ingeniería en la Universidad de Stanford. Hizo un Master en Social Systems

Modeling en el MIT. Actualmente es el director del Centro para el Aprendizaje Organizacional del mismo MIT. En los años 1990 publicó su libro The Fifth Discipline donde desarrolla la noción de organización como un sistema (desde el punto de vista de la Teoría General de Sistemas), en el cual expone un cambio de mentalidad profesional.

Se basa en el concepto de organizaciones que deben aprender continuamente para lograr mejores resultados. Ese proceso de aprendizaje se basa en cinco disciplinas, entendiendo como disciplina una actitud de comportamiento no como una rama de conocimiento. Como los empleados deben tener libertad para aprender, mejorar y proponer mejoras, se parte del concepto de que la organización es un sistema abierto que tiene – o sus componentes tienen – las siguientes

capacidades:

1. Se puede aprender tanto de hechos internos como externos 2. Se deben buscar y evaluar nuevas prácticas en todas partes 3. Se debe poner el aprendizaje como centro de las reuniones a través de

líderes 4. Se debe enfrentar a los críticos y escucharlos atentamente para

aprender de ellos 5. Se debe propiciar la creación de relaciones estratégicas con clientes,

proveedores y competidores para aumentar la capacidad de aprendizaje

6. Es necesario y conveniente establecer comunicación de ida y vuelta entre jefes y empleados

7. Hay que escuchar las opiniones de clientes y accionistas 8.

Los cinco modos de comportamiento, las cinco disciplinas, se pueden sintetizar de la siguiente manera:

Page 24: BOOK MODELOS Y SIMULACIÓN

Pág.: 23 / 83

1. Continuamente la persona debe profundizar y desarrollar la visión personal, canalizando la energía en tener más paciencia, en ver la realidad de manera objetiva, disponer de tiempo para reflexionar sobre su entorno.

2. La persona debe aprender a identificar y desarrollar los modelos mentales de manera tal que pueda comprender como se entiende el

mundo y se ejecutan las acciones 3. Cada persona debe impulsar la visión compartida como fuente de

inspiración y productividad en la que creen todos los empleados y los motiva para participar y no como una obligación a cumplir

4. Se debe fomentar el trabajo en equipo para que todos sus miembros asuman lo que los demás están pensando a fin de generar un auténtico pensamiento en equipo

5. Se debe generar el pensamiento sistémico. Esta forma de ver la organización es la Quinta disciplina y la que integra los resultados de las otras 4

La importancia de toda la dinámica está centrada en el concepto de feed-back.

Page 25: BOOK MODELOS Y SIMULACIÓN

Pág.: 24 / 83

Aplicaciones de la Teoría General de Sistemas Las aplicaciones más conocidas e importantes de la Teoría General de Sistemas son: Investigación Operativa, Cibernética y Teoría de la Comunicación.

Investigación Operativa

Se trata de un conjunto de técnicas orientadas a la tarea de recopilación y análisis de información sobre operaciones generales para optimizar y planificar en el corto plazo. Comenzó su desarrollo a fines de la década de 1930 en el Reino Unido y en algunas empresas de USA. En 1941 se creo la sección de Investigación Operativa de la RAF (Royal Air Force, Fuerza Aérea Real) y luego en el comando de defensa naval, ambas instituciones de Gran Bretaña creadas frente a la posibilidad de una guerra contra varios países de Europa. Esa posibilidad se concretó en 1939 cuando Alemania invadió Polonia y, posteriormente, generalizó su avance hacia el oeste europeo. Gran Bretaña se

vió amenazada de invasión marítima, sufriendo rápidamente ataques frecuentes por vía aérea y bloqueo de sus suministros enviados desde América por parte de una flota de submarinos alemanes. Estos métodos se usaron en el sistema de alertas tempranas para los ataques aéreos enemigos y en la metodología de ataques a los submarinos alemanes que bloqueaban los suministros a partior de 1939 en ambos casos. Estas acciones dieron comienzo a lo que luego se denominó Segunda Guerra Mundial. Con estas técnicas se planificó el mantenimiento de aviones, la selección de tipos de aviones adecuados a cada misión y, con buen éxito, destrucción de submarinos alemanes optimizando el empleo de nuevas tecnologías de detección y utilización del armamento disponible. Hubo dos éxitos fundamentales en el comienzo de la guerra: La defensa de Londres en la Batalla de Inglaterra fue el campo de experimentación. Menos

popular pero más efectivo fue el éxito en la batalla del Atlántico contra las “bandas de lobos” o submarinos alemanes dedicados a destruir convoyes de aprovisionamiento.

Para atacar un submarino se necesitaban unas 34.000 horas hombre de esfuerzo y se tenía una probabilidad del 2 al 3% de destruirlo, con lo cual, en promedio, una destrucción insumía alrededor de 1.500.000 horas hombre.

Page 26: BOOK MODELOS Y SIMULACIÓN

Pág.: 25 / 83

Se estudió el problema en base a 6 variables de decisión: 1. Profundidad (o tiempo) de explosión de las cargas 2. Radio de acción de las cargas 3. Orientación de las cargas respecto al submarino 4. Separación entre las 6 cargas lanzadas 5. Miras

6. Errores de puntería al disparar Los resultados fueron demostrativos del éxito de la técnica: la cantidad de submarinos destruidos hasta 1941 fue

1939: 9 unidades 1940: 24 unidades 1941: 35 unidades

Al comenzar a aplicarse la técnica de investigación de operaciones, a fines de 1941, los resultados fueron:

1942: 87 unidades 1943: 237 unidades 1944: 242 unidades 1945: 151 unidades (fin de la guerra en mayo) TOTAL: 785 submarinos perdidos Supervivientes: 108 unidades (12,0%)

Cibernética

Basado en un término introducido por Norbert Wiener (Cibernética o el control y comunicación en animales y máquinas, 1948) que significa “Hombre que conduce”, es la ciencia del control y comunicación en los animales y máquinas. Se parte de la concepción de que los sistemas complejos afectan y luego se adaptan a su ambiente externo. Esta relación, en términos técnicos, se centra en funciones de control y comunicación: ambos fenómenos son simultáneamente externos e internos del/al sistema. Esta capacidad es natural en los organismos vivos y se ha imitado en máquinas y organizaciones. Especial atención se presta a la retroalimentación y sus conceptos derivados.

Se basa en describir sistemas con límites subjetivos donde el observador forma parte del mismo. A partir de la cibernética se desarrollaron campos de investigación tales como

Biónica, o reemplazo de partes animales por artefactos o mecanismos • Robótica, artefactos con sensores capaces de receptar información de

entrada y enviarla a un procesador para realizar determinadas acciones • Inteligencia Artificial, ciencia cuyo objetivo es ayudar a las máquinas a

encontrar soluciones a problemas complejos imitando maneras humanas.

Teoría de la Información

O Teoría Matemática de la Comunicación (Mathematical Theory of Communication) es una propuesta teórica presentada por Claude E. Shannon y Warren Weaver en 1948. Está relacionada con las leyes matemáticas que rigen

Page 27: BOOK MODELOS Y SIMULACIÓN

Pág.: 26 / 83

la transmisión y el procesamiento de la información y se ocupa de la medición de la información y de la representación de la misma así como también de la capacidad de los sistemas de comunicación para transmitir y procesar información. Es una rama de la matemática y de las ciencias de la computación que estudia la información y todo lo relacionado con ella: canales, compresión de datos, criptografía y temas relacionados.

Componentes de un sistema de información:

FUENTE Componente humano o mecánico que determina el tipo y complejidad del mensaje a transmitir

TRANSMISOR Componente encargado de transformar el mensaje original en señales apropiadas para su transmisión CANAL Medio que se encarga de transportar las señales en el espacio. Función de Transporte RECEPTOR Medio técnico encargado de traducir la señal recibida al formato y lenguaje del mensaje original enviado por la fuente DESTINATARIO Componente al cual fue emitido el mensaje por la fuente RUIDO Elementos que se agregan aleatoriamente a la señal y que puede influir en la correcta interpretación del mensaje.

Niveles de la Teoría de la Comunicación

Weaver define tres niveles de problemas: el nivel técnico, el nivel semántico y el nivel pragmático.

Nivel Técnico Se refiere a los problemas relacionados con la fidelidad en que los mensajes pueden ser transportados desde la fuente al destino. La falta de fidelidad

Page 28: BOOK MODELOS Y SIMULACIÓN

Pág.: 27 / 83

puede ocasionar distorsiones, cortes o fragmentación, elementos espurios (ruido)

Nivel Semántico Se refiere a los problemas relacionados con el significado y/o la interpretación de los mensajes. Se busca que la codificación (lenguaje) sea un

acuerdo entre emisor y receptor.

Nivel Pragmático Se refiere a los problemas relacionados con el comportamiento que el receptor adquiere a partir del significado del mensaje. Es la reacción ante el contenido del mensaje tomado como estímulo.

Page 29: BOOK MODELOS Y SIMULACIÓN

Pág.: 28 / 83

Segunda Parte

Capítulo 3 – Introducción a Simulación La definición de R.E. Shannon10 es: "La simulación es el proceso de diseñar un modelo de un sistema real y llevar a término experiencias con él, con la finalidad de comprender el comportamiento del sistema o evaluar nuevas estrategias -dentro de los limites impuestos por un cierto criterio o un conjunto de ellos - para el funcionamiento del sistema". Existen varias aplicaciones derivadas de esta definición: los juegos, por ejemplo, permiten simular estrategias con diversos grados de complejidad. Por ejemplo, los deportes extremos o juegos de supervivencia, los juegos de guerra en los colegios militares, o la teoría de juegos aplicada en decisiones discutida en otro capítulo. También es aplicable el concepto a equipos que permiten analizar comportamientos en situaciones de alto riesgo sin poner en peligro la vida o la propiedad: los simuladores (entrenadores) de vuelo, de conducción de equipamiento, de entrenamiento, etc. Por último se pueden describir los simuladores de realidades mucho más

complejas, como los simuladores de desarrollos sociales (un ejemplo comercial y muy conocido es el software “Sim-City”, que se vende como un juego para PC pero que es capaz de simular un desarrollo social cambiante ante hechos o decisiones determinadas. La posibilidad de realizar este tipo de modelos ha dado origen a varios desarrollos conceptuales y a profundizaciones de la teoría de sistemas los clasifica en tres grupos:

Sistemas estables: aquellos que tienden, en el tiempo a una posición puntual o espacial (órbita): reconocen un atractor

Sistemas inestables: aquellos que no reconocen o escapan de los

atractores

Sistemas caóticos: manifiesta los dos comportamientos: es atraido por un atractor y hay elementos que lo alejan de él.

Una de las mayores características de un sistema inestable es que tiene una gran independencia de las condiciones iniciales. De un sistema del que se conocen sus ecuaciones características, y con unas condiciones iniciales fijas,

se puede conocer exactamente su evolución en el tiempo. Pero en el caso de los sistemas caóticos, una mínima diferencia en esas condiciones hace que el sistema evolucione de manera totalmente distinta. Ejemplos de tales sistemas incluyen la atmósfera terrestre, el Sistema Solar, las placas tectónicas, los fluidos en régimen turbulento y los crecimientos de población.

10

Claude Elwood Shannon (1916 - 2001), ingeniero electrónico y matemático estadounidense, se conoce como el padre de la teoría de la información. El número de Shanonn (10120) indica el número posible de posiciones lagales en una partida de ajedrez. Como medida de comparación se supone que el número de átomos en el universo es del orden de 1079

Page 30: BOOK MODELOS Y SIMULACIÓN

Pág.: 29 / 83

En 1963, Lorenz, describió un modelo meteorológico basado en tres ecuaciones diferenciales bien definidas. Supuso que, conociendo las condiciones iniciales se podría conocer la predicción del tiempo en el futuro. Sin embargo, al ser éste un sistema caótico, y no poder conocer nunca con exactitud los parámetros que fijan las condiciones iniciales (en cualquier

sistema de medición, por definición, siempre se comete un error, por pequeño que éste sea) hace que aunque se conozca el modelo, éste se aleja de la realidad pasado un cierto tiempo. Por otra parte, el modelo atmosférico es teórico y puede no ser perfecto, y el determinismo, en el que se basa, es también teórico. Estas consideraciones muy simples llevarían a suponer que cuando se habla de Teoría del Caos se habla de una teoría y a presumir que Caos es ausencia de orden: No necesariamente es una teoría sino que puede entenderse como un campo de investigación, que abarca diferentes líneas de pensamiento. Caos está entendido como cierto tipo de orden de características impredecibles, pero descriptibles en forma concreta y precisa. Es decir: un tipo de orden de movimiento impredecible. La idea de la que parte la Teoría del Caos es simple: en determinados sistemas naturales, pequeños cambios en las condiciones iniciales conducen a

enormes discrepancias en los resultados

Simulador militar de conducción.

Efecto Mariposa

Es un concepto que hace referencia a la sensibilidad de un sistema a las

condiciones iniciales. Su nombre proviene de un antiguo proverbio chino: "el

Page 31: BOOK MODELOS Y SIMULACIÓN

Pág.: 30 / 83

aleteo de las alas de una mariposa se puede sentir al otro lado del mundo". La idea es que, dadas unas condiciones iniciales de un determinado sistema natural, la más mínima variación en ellas puede provocar que el sistema evolucione en formas totalmente diferentes.

Consecuencia de este efecto es el abandono de la idea determinista de una naturaleza mecánica. La naturaleza no se asemeja a modelos previsibles y determinados, sino que existe un orden aparentemente aleatorio en los acontecimientos, que incapacita al hombre y su saber científico a predecir y controlar la realidad. En 1952 Ray Bradbury11 escribió un cuento titulado El ruido de un trueno (A sound of Thunder). En él, unos cazadores viajan en el tiempo, en la prehistoria y sin darse cuenta, matan a una mariposa. En consecuencia y debido a ello, cuando vuelven al presente se dan cuenta que el mundo en que se encuentran es diferente al que habían dejado cuando partieron. Esa muerte no histórica habría provocado un efecto en cadena de dimensiones inmensurables a lo largo de los milenios. Cuando Lorenz presenta su trabajo en la Academia de Ciencias de Nueva Cork, tratando de predecir el clima a través de modelos matemáticos que relacionaban variables, lograba predecir la meteorología del día siguiente. Al

revisar los datos se dio cuenta que, haciendo pequeñísimos cambios en ellos, se lograban resultados absolutamente diferentes Es común que un ingeniero esté frente a un sistema cuya funcionalidad deba conocer a fondo a fin de mejorar su rendimiento, repararlo, replicarlo, etc. Muchas veces es posible experimentar con los sistemas mismos, pero también es muy frecuente que la observación directa, la recopilación de datos estadísticos y la introducción de variantes en los parámetros de funcionamiento no sean posibles de hacer y, por tanto, no sea posible buscar mejoras o cambios. Lo que ocurre muchas veces es que la experimentación con el sistema real puede plantear problemas éticos o económicos. En esos casos, puede procederse a construir una versión simplificada, un prototipo del sistema. Por ejemplo, en una fábrica de carrocerías de ómnibus se desea lanzar un nuevo modelo apto para viajes de larga distancia con doble piso. Antes del diseño de la línea de montaje y previo al diseño completo de la misma, es

conveniente probar partes del montaje y versiones simplificadas que orienten sobre la factibilidad del proyecto o las direcciones a seguir en su desarrollo. Sin embargo, muchas veces no es necesario, o no es posible, o no es económico, construir un prototipo (en este caso, por ejemplo, habría que disponer de un bastidor comercial que es costoso), pero si es posible construir

11 Ray Bradbury (1920 – 2012) es conocido como autor de ciencia ficción, aunque – a pesar de títulos tales como

“Crónicas Marcianas” él mismo declaró que no era escritor de ciencia ficción sino de fantasía y que su única novela de ciencia ficción es “Fahrenheit 451”

Page 32: BOOK MODELOS Y SIMULACIÓN

Pág.: 31 / 83

un modelo lógico-matemático que inscriba mediante ecuaciones y relaciones el comportamiento básico de la línea de producción, de los componentes y los requerimientos, tomados como sistema. El estudio, análisis, validación y verificación del modelo puede hacerse en muchos casos por métodos analíticos, por ejemplo, mediante la resolución de

un sistema de ecuaciones diferenciales que describa la evolución de una población; o por métodos numéricos, por ejemplo, utilizando un algoritmo de programación no lineal para resolver un problema de optimización relativo al diseño de la trayectoria de un proyectil. Cuando se estudian modelos más realistas o detallados, es posible llegar a situaciones en las que no se puede resolver analítica o numéricamente el problema. Entonces es posible utilizar la Simulación. Esencialmente, la Simulación consistirá en construir un programa de computadora que describa el comportamiento del sistema de interés, o refleje el modelo que lo representa, y proceder a experimentar con el programa para llegar a conclusiones que apoyen la toma de decisiones. Diferencias entre métodos numéricos, métodos analíticos y simulación Sea el siguiente caso para ilustrar y poder comparar los distintos métodos de tratamiento de modelos. Considérese un ejemplo simplificado de un proceso, compuesto por un sistema de entrada-salida (E/S) y un procesamiento o caja

negra (Procesador). El sistema falla cuando lo hace alguno de los dos componentes. Expresado matemáticamente, si X1 representa el tiempo hasta que falla el sector de E/S, si X2 el tiempo hasta que falla el procesador y si T es el tiempo hasta que falla todo el sistema, se tiene T =min(X1, X2). Habitualmente, habrá incertidumbre sobre los tiempos anteriores, por lo que consideramos que X1, X2 y T son variables aleatorias. Supóngase que se busca calcular el tiempo esperado E(T) hasta que se produce una falla, tal vez como parte de un estudio destinado a mejorar este sistema. Para simplificar, supóngase que X1 es exponencial de parámetro λi, para i = 1,2, y que ambas variables aleatorias son independientes. En este caso, se tiene que

( ) ∬ ( )

Método analítico Aplicando Cálculo de Probabilidades, teniendo en cuenta la independencia y la distribución utilizada,

( ) ( ) ( ) ( )

( ) Obsérvese que T tiene distribución exponencial de parámetro λ1 + λ2 Entonces

Page 33: BOOK MODELOS Y SIMULACIÓN

Pág.: 32 / 83

( )

En esta aproximación resulta esencial emplear las hipótesis de independencia (P()) y de distribución exponencial. Por ello, el razonamiento empleado es sensible a cualquiera de esas dos hipótesis, el cálculo exacto puede resultar mucho más complicado e, incluso, imposible de obtener analíticamente. Método numérico Otra alternativa es apelar a algún método de integración numérica. Por ejemplo reparametrizar el problema, de manera tal que la región de integración sea acotada.

Por ejemplo si se hace el cambio de variable

( ( ))

Queda

( ) ∬ ( ( ( ))

( ( ))

)

Aplicando cualquier método disponible se puede obtener un valor que representará el tiempo esperado de falla del sistema. ¿Cuál es la diferencia? En el primer caso si λ1 = 1 y λ2 = 2, E(T)= 1/3. En este caso, se obtendrá un valor cercano a 0,32 Simulación

La aproximación basada en simulación consistiría en construir un algoritmo con los siguientes pasos:

1. Tiempo para la falla, Tpf = 0 2. Ingrese el numero de iteraciones (n) 3. I = 1 4. J = 1 5. Generar un número aleatorio U(J) entre 0 y 1 6. Calcular X(J) = -ln(1 – U(J))/λ(J) 7. J = J + 1 8. Si J < 2 ir a 5 9. Tpf = Tpf + minimo (X(1),X(2)) 10. I = I + 1 11. Si I < n hacer i = i +1 e ir a 4 12. E(Tpf) = Tpf / n

Este algoritmo genera dos valores aleatorios para la variable X, en un vector

(X1, X2) mediante un método que se discutirá más adelante, operación que se

Page 34: BOOK MODELOS Y SIMULACIÓN

Pág.: 33 / 83

repite n veces, y luego extrae el promedio de los tiempos esperados en cada vez. Entre los casos de simulación puede darse la situación de aquellos en que los cambios de estado del sistema ocurren discretamente.

Por ejemplo, sea un modelo de colas M/M/1 donde el número de clientes promedio en el sistema es

λ/(λ – μ) Si se considera que en un instante dado existe la probabilidad p de que llegue un cliente y que, simultáneamente, si el servidor estaba ocupado hay una probabilidad q de que un cliente salga del sistema. La expresión anterior,

llevada a términos número esperado promedio de clientes en el sistema siempre que q > p será:

L = p(1 – p) / (q – p) Por ejemplo, si la probabilidad de que en un momento dado de tiempo llegue un cliente es de p = 0,4 y que un cliente salga es q = 0,6, entonces:

L = 0,4 x 0,6 / 0,2 = 1,2 Para hacer una simulación del caso, se pueden establecer los siguientes parámetros:

a. Usar una tabla de números aleatorios, se propone la de la figura siguiente.

b. Establecer que se seleccionarán, al azar, 50 valores para las llegadas y otro conjunto del mismo tamaño para las salidas

c. En el primer conjunto, llegadas, establecer un valor Xi = 1 (se produjo una llegada) si el número aleatorio i de la serie es < 40. Si es mayor o

igual a ese valor, entonces Xi = 0 (no se produjo una llegada) d. En el segundo conjunto, salidas, establecer un valor Yi = 1 (se produjo

una salida) si el número aleatorio i de la serie es < 70. Si es mayor o igual a ese valor, entonces Yi = 0 (no se produjo una salida)

Tabla de 100 números aleatorios generada con Excel. Valores entre 0 y 100. Los cinco primeros renglones se asignan a entradas y los cinco últimos corresponden a las salidas:

25 52 20 19 13 98 60 59 100 59

64 55 37 97 13 28 5 96 19 62

98 41 22 95 30 99 39 69 50 91

31 85 58 34 64 84 68 48 0 99

23 51 65 40 24 69 48 0 17 55

97 11 13 83 66 22 19 20 41 93

5 72 27 26 43 94 55 82 96 82

77 57 70 97 39 42 19 38 89 13

Page 35: BOOK MODELOS Y SIMULACIÓN

Pág.: 34 / 83

45 99 73 43 72 13 20 51 81 5

69 16 100 18 62 51 72 66 33 67

El algoritmo propuesto debería tener esta estructura:

1. Ingresar un tiempo total de simulación T 2. Tiempo de simulación TDS = 0 3. TDS = TDS + 1 4. Si TDS < T ir a 5. Caso contrario ir a 9 5. Si Xi = 1 (llega un cliente) y si el servidor está ocupado incrementar la

cola 6. Si Yi = 1 (se completo el servicio) decrementar la cola en uno o poner

bandera de servidor libre 7. Guardar datos 8. Ir a 3

9. Presentar contabilidad

Como ejemplo se muestran los primeros 5 eventos:

Page 36: BOOK MODELOS Y SIMULACIÓN

Pág.: 35 / 83

(i) Evento N°

Aleat(i) entrada

Xi Aleat(i) salida

Yi L

1 25 1 97 0 1

2 52 0 11 1 0

3 20 1 83 0 1

4 19 1 53 1 1

5 13 1 66 1 1

Así se construye una tabla con los 50 eventos. Se suma la columna L (Clientes en el sistema) y se divide por 50, lo que dará el número promedio de clientes en el sistema

Metodología de la Simulación

Si bien puede haber diferentes maneras de diseñar y operar un sistema de simulación, varios autores proponen diferentes esquemas de pasos a observar. Uno de ellos es el Schmeisser (1990) simplificado en Ríos Insua y otros (Simulación, Métodos y Aplicaciones, 2009):

Paso 1

• A partir de un generador de números aleatorios se obtienen "observaciones" o datos

Paso 2

• Esas observaciones se transforman en entradas aptas para el modelo

Paso 3

• Operar el modelo de manera tal que transforme las entradas en salidas

Paso 4

• Realizar la "contabilidad" de las salidas y utilizar estadísticas para describir el compartimiento del sistema y tomar decisiones

Page 37: BOOK MODELOS Y SIMULACIÓN

Pág.: 36 / 83

3.1 – Generación de Números Aleatorios

Introducción

Requisitos para una verdadera aleatoriedad

Los estudios de generación de números aleatorios se basan en el desarrollo de la criptografía, más como necesidad diplomática y militar que científica. Uno de los métodos más “seguros” y analizados desde el origen de la criptografía actual (principios del siglo XX) fue y es la “libreta de un solo uso”, analizada por varios matemáticos en dos aspectos:

El primero es la seguridad teórica del sistema de libreta de uso único

demostrado por Shannon. Está demostrado matemáticamente y sujeto a la disponibilidad práctica de los números aleatorios (Seguridad de Shanonn)

El segundo es la seguridad ofrecida por los cifrados de punta (por ejemplo, el AES) diseñados con los principios aprendidos durante la larga historia de la rotura de códigos y sujetos al testeo intensivo en un

proceso de estandarización, sea público o de un servicio de seguridad de primera clase (seguridad empírica). No está demostrada pero recibe la confianza de la mayoría de los gobiernos para proteger sus secretos más vitales.

Métodos que pueden ofrecer seguridad empírica pero no tienen seguridad de Shannon

Si la clave la genera un programa determinístico, entonces no es aleatoria ni se puede afirmar que el sistema de cifrado ofrezca la seguridad teórica de la libreta de un solo uso. Se llama cifrado de flujo. Generalmente estos utilizan una clave pequeña que se usa como semilla para un flujo pseudoaleatorio largo, que luego se combina con el mensaje empleando algún mecanismo como los de la libreta de un solo uso (por ejemplo, XOR). Los cifrados en flujo

pueden ser seguros en la práctica, pero no pueden ser absolutamente seguros en el mismo sentido demostrable de la libreta de un solo uso. Los cifrados usados por el ejército alemán en la Segunda Guerra Mundial resultaron ser cifrados en flujo inseguros, no útiles libretas de un solo uso automatizadas como pretendían sus diseñadores. Sin embargo, si se utiliza un buen generador de números pseudoaleatorios criptográficamente seguro y moderno, puede formar la base de un cifrado en flujo empíricamente seguro. Hay muchos diseños bien probados en el dominio público, que varían desde la simplicidad del RC4 al uso de un cifrado en bloque como el AES. Parecería que hay pocos motivos para inventar nuevos cifrados en flujo, pero se piensa desde hace tiempo que la NSA y otras agencias emplean un esfuerzo considerable en los cifrados en flujo.

Métodos que no ofrecen seguridad empírica ni seguridad de Shannon

La similitud entre los cifrados en flujo y las libretas de un solo uso lleva a menudo a que los criptográficamente incautos inventen cifrados en flujo inseguros bajo la creencia falsa de haber desarrollado una versión práctica de la libreta de un solo uso. Una versión especialmente insegura son los generadores de números aleatorios que se distribuyen en muchos (quizás la mayoría) de las bibliotecas accesorias de los lenguajes de programación o en

Page 38: BOOK MODELOS Y SIMULACIÓN

Pág.: 37 / 83

forma de llamadas al sistema operativo. Normalmente producen secuencias que pasan alguna (o muchas) pruebas estadísticas, pero sin embargo son rompibles por técnicas criptoanalíticas. Durante un tiempo, el ANSI C estándar restringía la salida de la rutina de números aleatorios del lenguaje C a un entero de precisión simple, 16 bits para la mayoría de las implementaciones, dando 32768 valores distintos antes de repetirse. Esto es completamente

inseguro y fácilmente rompible por fuerza bruta (una computadora con un reloj de 1 GHz que tarde 10.000 ciclos de reloj en comprobar un offset del ciclo RNG – un número ridículamente grande – tardaría menos de un tercio de segundo en comprobar todos los offsets posibles. Los generadores de números aleatorios estándar no sirven para propósitos criptográficos, concretamente para la libreta de un solo uso. En particular, el relativamente reciente algoritmo tornado de Mersenne, admirado ampliamente, aunque es lo bastante “aleatorio” para la mayoría de los usos de simulación o investigación, mejor que la mayoría de los generadores de su mismo tipo, y también bastante rápido, no debe utilizarse para generar claves de libreta de un solo uso. El algoritmo es determinista y no fue diseñado para la seguridad criptográfica. Además, los valores conocidos públicamente como los dígitos finales de los tiempos de las carreras, los precios de cierre de valores de bolsa, por muy poco conocidos que sean, las temperaturas o presiones atmosféricas diarias,

etc., aunque aparentemente aleatorios, son predecibles —después de que se produzca el hecho. De hecho, tampoco pueden usarse secuencias verdaderamente aleatorias que hayan sido publicadas, ya que si se identifican son predecibles. Un ejemplo es la publicación de una tabla de un millón de números aleatorios por la Rand Corp en 1950; ha pasado todos las pruebas estadísticos de aleatoriedad hasta ahora, y se cree que es verdaderamente aleatoria. Pero, al haberse publicado, es completamente predecible. También lo son los dígitos de pi, e y otros números irracionales o trascendentales; puede que las secuencias sean aleatorias (una cuestión abierta, en realidad), pero son completamente predecibles.

Aleatoriedad con seguridad de Shannon

Para conseguir la seguridad de Shannon se necesita una fuente de datos aleatorios perfectamente impredecibles. Una base teórica para la existencia física de la impredecibilidad es la mecánica cuántica. Sus afirmaciones de impredecibilidad están sujetas a la comprobación experimental. Otra base es la teoría de los sistemas dinámicos inestables y la teoría del caos. Estas teorías sugieren que incluso en el mundo determinista de la mecánica newtoniana, los sistemas reales evolucionan de maneras que no se pueden predecir en la práctica porque haría falta conocer las condiciones iniciales con una precisión que crece exponencialmente con el tiempo. Si los datos buscados deben mostrar una aleatoriedad perfecta. En la práctica, la mayoría de las fuentes muestran alguna imperfección o desviación. La calidad de la aleatoriedad se mide por entropía. Un bit perfectamente aleatorio tiene una entropía uno. Una idea procedente de Von Neumann es utilizar un algoritmo para combinar varios bits aleatoriamente imperfectos,

Page 39: BOOK MODELOS Y SIMULACIÓN

Pág.: 38 / 83

con una entropía menor que uno, para producir un bit con entropía igual a uno. Este proceso se llama destilación de entropía o blanqueamiento de Von Neumann, y permite generar en la práctica datos aleatorios adecuados para su uso en una secuencia aleatoria. El blanqueamiento de Von Neumann consiste en lo siguiente:

Bits de entrada Salida

00 Sin salida

01 Devolver bit «1»

10 Devolver bit «0»

11 Sin salida

En Linux (y otros sistemas derivados de Unix), el generador de números aleatorios del kernel (/dev/random) utiliza el ruido ambiental para generar datos aleatorios y es mejor que muchos diseños basados en llamadas al sistema. Intenta estimar la cantidad de entropía que recoge y se bloquea si el fondo de entropía se agota. Pretende ser, y se piensa que realmente es, mejor que muchos generadores parecidos, y si es así, está muy cerca de ser satisfactoriamente aleatorio. Pero este proceso es lento en sistemas que tienen pocas fuentes de ruido utilizables. Sin embargo, puede alimentarse con entropía adicional leyendo de un dispositivo generador de ruido. Linux también proporciona /dev/urandom, que emplea un algoritmo determinista para generar los datos cuando no hay ruido ambiental disponible. Existen diseños mejorados, como el algoritmo de Yarrow.

Aleatoriedad y simulación

Existe una amplia variedad de generadores de números aleatorios y pseudo aleatorios, al punto que es un campo de investigación donde se emplean recursos importantes, ya que la calidad de estos generadores aumenta a medida que los requerimientos de métodos de encriptación, juegos y simuladores también aumentan. A priori parece irrelevante para discutir simulación conocer sobre la generación de números aleatorios, sin embargo, un conocimiento básico de esta problemática a fin de conocer las limitaciones y posibilidades, incluido los riesgos, en el momento de usarlos en un sistema de simulación. Los generadores de números aleatorios pueden ser físicos o algorítmicos.

Los generadores físicos incluyen una variedad de métodos: desde ruletas o lanzadores de monedas, hasta decodificadores de ruido electrónico blanco. Los inconvenientes de estos métodos derivan, precisamente de su aleatoridad: es imposible o al menos muy difícil la repetición de secuencias, al menos que las series se almacenen y guarden, lo que lleva a uso importante de recursos. ¿Por qué la reproductividad? Supóngase que se hace una experiencia con un simulador y que, al final, se sospecha que existiría una falla en el programa fácilmente reparable. Lo mejor para comprobar la sospecha es hacer el

Page 40: BOOK MODELOS Y SIMULACIÓN

Pág.: 39 / 83

cambio necesario y reproducir el experimento para ver si hay cambios. Si no se puede disponer de la serie de números aleatorios que originó la experiencia no se podrá determinar si la variación del resultado es por la variación en la serie o por el cambio realizado. A partir de los años 1950, con las primeras computadoras, comenzaron a

desarrollarse los generadores algorítmicos, que son generadores de números aparentemente aleatorios o pseudo aleatorios. La propuesta de Von Neumann consiste en producir una serie de números a partir de una función y de un número inicial llamado “semilla” de manera tal que, una vez establecida esa semilla, la sucesión de números obtenida es idéntica en cada generación. Estos conceptos básicos llevan a la necesidad de definir claramente el concepto de número aleatorio. Según la obra citada de Ríos Insúa y otros se pueden encontrar cuatro definiciones básicas:

1. La de Kolmogorov (1987), “Una sucesión de números es aleatoria si no puede producirse eficientemente mediante un programa más corto que la propia serie”. El análisis de esta definición puede llevar a un criterio similar al de Turing para reconocer inteligencia artificial12

2. Una sucesión de números es aleatoria si nadie que utilice recursos computacionales razonables en tiempos razonables puede distinguir entre la serie y una sucesión verdaderamente aleatoria de una forma

mejor que tirando una moneda pa distinguir cual es cual. Esta definición conduce a la de L’Ecuyer (1990), generadores PT-perfectos, de uso en criptografía.

3. De la paradoja de imprevisibilidad: Si una función determinística es impredecible, es difícil probar cosas sobre ella, en particular que es impredecible.

Más allá de estas disquisiciones académicas, donde la última definición es particularmente poco aplicable en la práctica, se tomará como base que un generador de números aleatorios puede ser definido como un conjunto finito de estados u observaciones ui

Donde, en particular hay un estado inicial o semilla y una función de transición que permite obtener un conjunto también finito de símbolos de salida.

12 Turing planteó si las máquinas, que él había diseñado teóricamente, se podía afirmar que pensaban. Aún más,

expuso un criterio bien sencillo y práctico para dilucidarlo, el llamado test de Turing. En esencia consiste en poner

una persona y un ordenador en dos habitaciones aisladas con los que es posible comunicarse mediante un teletipo. Si, planteando algunas preguntas y cuestiones, no somos capaces de distinguir en qué habitación está el ordenador y en

cuál la persona, es que el ordenador es capaz de realizar operaciones inteligentes iguales a las humanas. Su opinión

personal era que las máquinas superarían el test y, por tanto, deberían ser consideradas inteligentes. Para Turing,

como buen lógico, pensar consiste en realizar operaciones lógicas manejando símbolos de manera adecuada. Es indiferente de que esa tarea la realicen unas neuronas encerradas en una caja craneana de hueso, o se haga por

otros dispositivos dispuestos dentro de una caja de metal o de plástico. Por eso, concluye tranquilamente: "Creo que

al final de este siglo -el XX- nuestras ideas y opiniones habrán evolucionado lo suficiente como para poder hablar sin rubor de máquinas pensantes".

Page 41: BOOK MODELOS Y SIMULACIÓN

Pág.: 40 / 83

La distribución de salida debe ser uniforme, acotada entre dos extremos, generalmente 0 y 1 y cada valor obtenido se espera que se comporte como una variable aleatoria independiente e idénticamente distribuida. En Kahaner se definen cuatro características sobre las que se debería valorar cualquier generador de números aleatorios:

Calidad. Se deben satisfacer los tests estadísticos adecuados. Antes de la repetición de la secuencia debiera haber un periodo lo suficientemente largo.

Eficiencia. El generador debiera ser rápido. Debe requerir la menor cantidad de almacenamiento posible.

Repetibilidad. El método debe depender de una semilla, para permitir

que un experimento se pueda repetir.

Transportabilidad. Si un método dado se implementa sobre un sistema diferente debe producir los mismos resultados.

Generadores congruenciales

Son los generadores pseudo aleatorios clásicos, (Lehmer, 1951) donde cada miembro de la serie se calcula según:

( ) mod

Donde a es el multiplicador, b es el término adictivo de manera tal que tanto a como b sean menores que m, que se busca que sea un número primo y a una raíz. El término inicial, x0 es la semilla.

En general, estos generadores: 1. Tienen ciclos 2. La longitud del ciclo depende de los parámetros a, b y m 3. Dentro de la selección de parámetros que conducen a longitudes de

ciclo iguales, algunas series parecen más aleatorias que otras Estas consideraciones llevan a definir un generador tipo basado en la disponibilidad de arquitecturas de 32 bits, lo que lleva a definir un mínimo estándar: período máximo, salida que parezca aleatoria e implementable con facilidad en 32 bits. Esto condujo a m = 231 – 1 con un multiplicador a = 75 = 16807 que permite un período máximo al ser 7 una raíz primitiva de m.

Generadores recursivos múltiples

Los generadores congruenciales son lineales, pero pueden generalizarse desde

( ) mod A

( ) mod Para k >= 1 y m primo. Esta función se asocia a un polinomio característico de orden k. Obsérvese que si se elije m = 2 se encuentra un generador aleatorio de bits fácilmente realizable con hardware. Se buscaron valores de los parámetros

Page 42: BOOK MODELOS Y SIMULACIÓN

Pág.: 41 / 83

necesarios para obtener ciclos máximos. Por ejemplo k = 521 produce un ciclo de 2521 – 1. Los generadores de este tipo son varios:

El girador de Mersenne

El Taustworthe

Los llamados “propios”

Para mejorar la generación de números, particularmente aumentar el período, se realizan generadores híbridos, combinaciones de ambos tipos. En encuentran dos operaciones de combinación: bajadura y combinación. La bajadura consiste en generar bloques fijos de números aleatorios de determinada longitud a cada uno de los cuales se le aplica una permutación, en algunos casos sacando las posiciones a permutar en forma aleatoria. La composición, introducida en 1988 por L’Ecuyer, consiste en un algoritmo con combinación de los dos métodos. Esto dio lugar a uno de los generadores más usados (MRG32k3a) que combina dos generadores múltiples de orden 3, con un período 2191

Es importante señalar que si el período aumenta los requerimientos de memoria operativa necesarios son mayores. Generadores aleatorios en las PC

Casi todas las aplicaciones de software aplicado a simulación, estadística, matemática o simplemente programación disponen de algún tipo de generador de números aleatorios, los que, a su vez, son catalogados como “poco confiables” por los matemáticos teóricos, aunque razonablemente buenos en términos prácticos. Se mencionan algunos ejemplos, debiéndose tener en cuenta que se han desarrollado mejoras aprovechando las arquitecturas de 64 bits: El lenguaje de simulación SIMSCRIPT implementa su generador con m = 231 – 1 y a = 630360016 El programa de simulación ARENA, de uso en esta asignatura, utiliza el algoritmo MRG32k3a, junto con otros programas específicos. En programas estándar de aplicación general, hojas de cálculo, lenguajes de programación, paquetes estadísticos, sistemas operativos, etc., se utilizan generadores muy poco potentes (aunque, se insiste, no por ello menos útiles a

efectos de uso habitual). Ejemplos:

La biblioteca UNIX usa: m = 248 , a = 25214903917 y b = 11, cuya salida es

Java, clase java.util.Random: usa el generador anterior pero la salida es

Page 43: BOOK MODELOS Y SIMULACIÓN

Pág.: 42 / 83

[

]

Visual Basic: m = 224, a = 1140671485, b = 12820163 y la salida es igual a la de Unix, pero diviendo por 224.

Excel hasta 97, inclusive, m = 1; a = 9821; b = 0,211327, siendo la salida

directa (el divisor es 1)

Excel desde 2033: usa el generador de Wichman & Hill que usa tres generadores:

Y salida [

]

3.2 Transformación del número aleatorio en variable aleatoria Si bien es cierto que algunos pocos paquetes ofrecen variables aleatorias con diversas distribuciones, se debe partir de la base que – como se muestra en el capítulo correspondiente de Optimiza – lo que se obtiene al correr un

generador aleatorio convencional es una serie con distribución uniforme independiente, la cual probablemente deba ser transformada en una serie con una determinada distribución, por ejemplo, normal, beta, exponencial.

NOTA DEL AUTOR: En este punto se recomienda enfáticamente la lectura del Capítulo 17 de Optimiza9

La notación a usar es la siguiente, llamando X a la variable aleatoria continua, la función de densidad es f(x) y la función de distribución F(x)=P(x<=x). Se describen los siguientes métodos:

1. Método de inversión 2. Método de rechazo 3. Método del cociente de Uniformes 4. Método de composición

Método de inversión

La condición básica para aplicar este método hace falta conocer la función explícita a la cual convertir, de manera tal que FX(x)=F(x)=F-1(U)

Page 44: BOOK MODELOS Y SIMULACIÓN

Pág.: 43 / 83

Otros métodos

Son aplicables cuando la solución por el método anterior requiere de herramientas muy complejas o, directamente, no puede aplicarse. Requiere definir herramientas tales como funciones de densidad e iteraciones.

Page 45: BOOK MODELOS Y SIMULACIÓN

Pág.: 44 / 83

Capítulo 4 – Simulación Los conceptos “Sistema”, “Modelo” y “Simulación” están íntimamente vinculados desde la perspectiva de la temática de la simulación. El concepto se origina en los trabajos de Student para determinar la distribución de la variable t y reafirmada por Von Neumann con la aplicación del Método de Montecarlo al estudio de distribución de neutrones en el desarrollo de las bombas atómicas que se emplearon en la Segunda Guerra Mundial. En términos reales, la simulación no requiere de una computadora, aunque en la práctica estos conceptos, sobre todo después de la década de 1960, están íntimamente relacionados.

La relación conceptual señala más arriba se basa en los siguientes hechos: para comprender un sistema real es útil construir un sistema conceptual llamado modelo, a partir del cual se pueden realizar experiencias acotadas o aisladas, mediante la simulación y con una computadora, por ejemplo, como herramienta a fin de entender el comportamiento en condiciones específicas.

Como ya fue dicho, los sistemas pueden ser estudiados por experimentación directa, construyendo un prototipo, a escala o natural, o mediante el diseño de un sistema de relaciones lógicas o matemáticas que lo describa (modelo).

Es importante saber que los modelos y la simulación no brindará “soluciones” en el sentido definitivo del término, sino que dará elementos válidos para la toma de decisiones o para el conocimiento mejor del sistema objeto. De todas maneras es usual el término “solución”: habrá soluciones: infactibles (ver Programación Lineal en Optimiza9), factibles, óptimas y satisfactorias, que son aquellas que sin ser óptimas están razonablemente cerca de ella.

Sistema Real

Modelizado

Modelo

Simulación

Computadora

Page 46: BOOK MODELOS Y SIMULACIÓN

Pág.: 45 / 83

Modelos ¿Porqué construir un modelo para un sistema real dado? ¿Puede estudiarse el sistema real para comprenderlo y/o manejarlo, experimentando con él? En 1945 Rosenblueth y Wiener señalaron la importancia de un modelo:

“Ninguna parte sustancial del universo es lo suficientemente simple como

para que pueda ser comprendida y controlada sin abstracción, la que consiste en remplazar la parte del universo bajo consideración por un modelo de estructura similar pero más simple. Los modelos constituyen un elemento central del proceso científico”

Efectivamente, estudiar directamente la realidad puede ser muy caro, o requerir mucho tiempo; puede ser imposible, porque hay casos en que el sistema no existe (es hipotético) o, si existe, pero en realidad es imposible prácticamente experimentar con él o no se puede cambiar arbitrariamente ciertas actividades o propiedades sin causar graves trastornos irreversibles en el sistema dado. De allí es que surge la necesidad de tener un modelo del sistema, como la representación de un sistema que se obtiene por simplificación y abstracción de la realidad. Se pueden encontrar distintos significados del término modelo. En Optimiza9,

capítulo 2, se señalan algunas. Otra manera de clasificarlos es en modelos físicos, mentales y simbólicos.

Físicos: Se asemejan al sistema en estudio. Son representaciones de sistemas físicos y se describen por variables medibles.

o Modelos a escala (aviones, autos, reactores, edificios, planta piloto, etc.)

o De imitación o De analogía o Prototipos

Mentales: son modelos heurísticos o intuitivos sin existencia más que

en la mente del modelizador. En general es privativo del ser humano, ya que, entra en esta categoría el modelo de mundo que cada ser humano tiene en función de su experiencia. Estos modelos suelen derivar en modelos simbólicos para sortear la difusividad y dificultad de comunicación.

Simbólicos: son los que realizan operaciones mátemáticas o lógicas. Son más baratos y fáciles de construir que los físicos. Se dividen en dos grupos:

o Matemáticos

o No Matemáticos Verbales Gráficos Esquemáticos

Page 47: BOOK MODELOS Y SIMULACIÓN

Pág.: 46 / 83

Los modelos matemáticos de simulación (generalizados como “Simuladores”) suelen ser tipificados por las condiciones de prueba, las que, suelen ser denominadas como “Qué pasaría si..” Estos modelos se caracterizan por poseer parámetros de entrada y de salida, y lo correcto es que se desarrolle, (se “corra” en la jerga) y no que se

resuelvan, por lo tanto se obtendrá una respuesta y no una solución óptima. Lo más importantes es que permiten analizar el comportamiento del sistema bajo las condiciones especificadas por el usuario. No existe un modelo único para un sistema, ya que cada modelo estará determinado por los objetivos que se planteen cuando se desarrolle o construya. Unos tendrán mayor validez que otros. No es posible definir "el" modelo de un sistema. Si bien un modelo puede estar construido para correrse con la ayuda de una computadora, o presentarse y correrse de algún otro modo, solamente se trabajará sobre los primeros para obtener herramientas sólidas que ayuden a representar la realidad y a simular el paso del tiempo y el azar. Usos comunes de los modelos

1. Una ayuda a la abstracción del sistema.

2. Una ayuda a la comunicación. 3. Sirve para entrenamiento e instrucción. 4. Una herramienta de predicción. 5. Una ayuda a la experimentación.

1. Como elemento de ayuda para la comprensión abstracta del sistema. El

modelo construido, o a construir, fuerza a organizar, evaluar y examinar la validez de los conceptos o concepciones que el observador tiene del mismo.

2. Como ayuda a la comunicación. El modelo sirve para expresar de la mejor manera y transmitir conceptos. El arquitecto concibe una obra, construye el modelo “Plano de la obra” y es la mejor manera de transmitirlo al constructor. ("Una imagen es mejor que mil palabras".)

3. Como herramienta educativa (entrenar o enseñar). Las personas necesitan practicar. El modelo le muestra eventualidades antes que le ocurran en la práctica. Modelos de naves espaciales, de conducción de vehículos, de juegos y de negocios, de crecimiento, etc.

4. Como herramienta de predicción. El más importante uso práctico e

histórico es y ha sido predecir el comportamiento característico de la entidad modelada. Prueba de diseño para aviones, barcos, autos, misiles, etc.

5. Como ayuda a la experimentación. Los modelos permiten experimentos controlados en sistemas, lo que de otra manera podría ser impracticable, peligroso o de costos prohibitivos.

Un modelo sirve a uno de los dos principales propósitos siguientes:

Descriptivo: para explicar y/o entender el sistema.

Page 48: BOOK MODELOS Y SIMULACIÓN

Pág.: 47 / 83

Prescriptivo: predecir y/o duplicar el comportamiento característico del sistema.

Etapas de la simulación Como en la construcción de modelos, el proceso de simulación tiene etapas definidas y similares, que son:

1. Identificación del problema. Es la etapa más importante, ya que puede resolverse un problema equivocado, y obtener un modelo que no represente el sistema a estudiar. "La formulación apropiada del problema fue más esencial que su solución" (Albert Einstein). Para encontrar una solución aceptable o solución óptima, primero se debe saber cual es el problema. Debe tener como meta clarificar los objetivos que se tiene para el simulador. No puede haber un modelo sin objetivos. Se debe establecer lo que se pretende que el modelo responda, los alcances del estudio, que aspectos se van a analizar. Como construir un simulador implica costos y beneficios, se debe buscar compensarlos logrando, en lo posible, el máximo beneficio derivado del empleo del simulador.

Se debe determinar el nivel de agregación y de detalle en la información que entregará el simulador. Tiene que ver con el nivel de decisión que pretende apoyar el modelo. Un nivel de agregación alto en la información de salida del simulador, indica que el simulador apoyará decisiones de nivel superior, estratégicas o tácticas. Un nivel de agregación bajo es indicativo de que el simulador apoyará decisiones de nivel operativo. Se debe tener en cuenta las restricciones de tiempo y de presupuesto que se tendrá para el diseño y construcción del modelo de simulación. También para el diseño de experimentos y las corridas del simulador en su etapa de explotación. 2. Establecer los límites del sistema Es necesario definir el sistema y su entorno. En el sistema estarán los entes y el objeto de la simulación. En el entorno estarán las cajas negras. En el resto del universo estarán los sistemas a los que no se les reconoce influencia sobre el sistema en estudio; se debe precisar su límite.

En esta etapa el sistema en consideración deberá dividirse en elementos componentes o subsistemas, cuyo comportamiento sea importante predecir. Deberán describirse las actividades o procesos que caracterizan la evolución del sistema, estas actividades podrán ser endógenas y exógenas. El siguiente diagrama muestra gráficamente el proceso de construcción de un modelo:

Page 49: BOOK MODELOS Y SIMULACIÓN

Pág.: 48 / 83

Identificación del problema. Clarificar los objetivos que se pretende,

determinar el nivel de decisión a apoyar y precisar las restricciones de tiempo que se tiene.

Definición del Sistema. Determinar los límites, restricciones y medidas o indicadores de la efectividad (logro del objetivo) a ser usadas en la definición del sistema a ser estudiado.

Formulación del modelo. Reducción o abstracción del sistema real a un

diagrama de flujo lógico, con su adecuada documentación.

Preparación de datos. Identificación de los datos que necesita el modelo que se formuló, y su reducción a una forma apropiada para el ingreso al modelo.

Construcción del modelo. Descripción del modelo en un lenguaje del

computador a ser usado. Es hacer el programa computacional y probarlo.

1 • Identificación del problema

• Delimitación del sistema

2

• Formulación del modelo

• Recopilación de datos

• Construcción del modelo

3 • Validación Buena: ir a 4

• Validación mala: ir a 2

4 • Diseño de experimentos

• Ejecución de experiencias

5 • Inferencia aceptable: ir a 6

• Inferencia inaceptable: ir a 2

6 • Producir documentación

• Aplicación

Page 50: BOOK MODELOS Y SIMULACIÓN

Pág.: 49 / 83

Validación. Es aumentar a un nivel aceptable la confiabilidad de una

inferencia efectuada desde el modelo sobre el sistema real. Que esta inferencia sea correcta.

Diseño de experimentos. Diseño de un experimento que produzca la información deseada. Diseñar el cómo se realizará, y cómo se correrá los experimentos planificados. Tiene una etapa de planificación estratégica y táctica.

Ejecución de experimentos (Experimentación) Ejecución de la simulación

para generar los datos deseados y realizar un análisis de sensibilidad.

Interpretación. Es efectuar las inferencias sobre el sistema en estudio a partir de los datos generados por la simulación.

Documentación. Es documentar el modelo y su uso con un manual, también el proyecto de actividades futuras que está planificado.

Representación gráfica de los modelos Hay varias formas de representar mediante diagramas los modelos, aunque la más utilizada son los diagramas de influencia. Por ejemplo, un diagrama de influencia para un sistema que comparte un procesador es el siguiente:

Este diagrama representa cuatro componentes: Un procesador central (CPU) y tres terminales (USUARIO1, USUARIO2 y USUARIO3) cada componente tiene sus variables (Discretas representadas por O y contínuas representadas por •) y parámetros. CPU contiene la variable SERVICIO cuyos valores son 1, 2 o 3, mientras que los componentes USUARIOx tienen las variables COMPLETx que puede valer 0 a 1 según complete la fracción de su tarea. Además, un parámetro GRADOx que

indica la tasa de cumplimiento de USUARIOx. Este tipo de diagrama evolucionó a los diagramas de Forrester, ya mencionados en la primera parte y a otros como los de bucles causales.

USUARIO1

GRADO1

COMPLET1

USUARIO2

GRADO2

COMPLET2

USUARIO3

GRADO3

COMPLET3

CPU

SERVICIO

Page 51: BOOK MODELOS Y SIMULACIÓN

Pág.: 50 / 83

Simulación de sucesos discretos Los sistemas continuos generalmente se representan en forma de ecuaciones diferenciales. Los modelos discretos son aquellos que cambian en instantes determinados. El caso general es el modelo de colas donde se busca estimar medidas representativas de largo de la cola o tiempo medio de espera.

Estos casos se caracterizan por que hay momentos en que se producen cambios en el sistema: sucesos en el sistema. Estos sucesos ocurren en instantes determinados hace que se simulen sucesos discretos. En la simulación de sucesos discretos, SSD, se encuentran diferentes tipos de variables:

1. Variables de tiempo, la más importante es la que se refiere al tiempo T de simulación

2. Variables de contabilidad del número de veces que se producen los sucesos

3. Variables de estado que describen el sistema en cada uno de los instantes, con lo cual se conoce el estado en cada instante t y permiten predecir el futuro.

Reloj Se llama mecanismo de reloj o reloj de simulación que es lo que define la evolución del simulador instante a instante.

Según el mecanismo de reloj que se emplee se encuentran dos estrategias de simulación:

Simulación sincrónica, también llamada orientada a intervalos que es aquella en que el reloj avanza en intervalos prefijados Δt hasta cumplir alguna condición prestablecida. El tema en este tipo de simulación es la habilidad de elegir Δt , ya que si es muy grande (en términos relativos) pueden saltearse momentos de ocurrencia de sucesos (por ejemplo, un Δt muy grande englobaría dos sucesos que ocurren en distintos instantes como que ocurren en un único instante, el final del intervalo Δt) Un Δt muy chico, en contrapartida, daría muchos intervalos de tiempo sin que ocurran sucesos dando lugar a ineficiente uso del simulador.

Simulación asincrónica: es la que mayormente se utiliza, está orientada a sucesos: el reloj avanza hasta el momento en que ocurre un nuevo suceso y es entonces cuando se actualiza el estado del sistema y se actualiza la contabilidad. El procedimiento continua hasta cumplir alguna condición preestablecida. Requiere llevar un registro de sucesos y los instantes en que se producen

Page 52: BOOK MODELOS Y SIMULACIÓN

Pág.: 51 / 83

Diferencia entre simulación sincrónica (izquierda) y asincrónica (derecha)

Caso

Se tiene un modelo de colas M/M/1. Supóngase que se admite ingreso de clientes al sistema hasta el momento T, en el cual se cierra el ingreso pero se sigue atendiendo a los que hay en el sistema hasta que no quede ninguno. Se pide evaluar

El tiempo que pasan los clientes en el sistema y en la cola

El tiempo que transcurre entre T y el instante en que se termina de atender al último cliente.

Primero se establecen claramente cuales son los sucesos que pueden darse en tiempos simulados TSuc:

1) Llegada de un cliente al sistema (modifica el estado del sistema:

aumenta el número de clientes en el mismo). Este acontecimiento sucede en un tiempo te

2) salida de un cliente del sistema (Se termina de atender un cliente), (modifica el estado del sistema: decrementa el número de clientes en el mismo). Este acontecimiento sucede en un tiempo ts

Además deben definirse las siguientes variables: t tiempo transcurrido desde que comenzó la simulación

Page 53: BOOK MODELOS Y SIMULACIÓN

Pág.: 52 / 83

L número de clientes en el sistema en cualquier instante t. Es una variable de estado. El número de clientes en la cola Lq será L – 1, excepto que el sistema esté en condición L = 0 (sin clientes)

Ne y Ns número de clientes que entran (llegan) o salen del sistema, respectivamente, hasta el instante t. Son contadores.

e(i) y s(i) instante en que llega (e) o sale (s) el cliente i-ésimo

SERV(i) tiempo de servicio aplicado al cliente i – ésimo Finalmente se considerarán variables de salida: W tiempo medio que pasan los clientes en el sistema Wq tiempo medio que pasan los clientes en la cola Tp tiempo transcurrido desde T hasta que el último cliente abandona el

sistema Comienza el diseño del simulador inicializando las variables y asegurando que no hay sucesos pendientes, asignando M en las variables de sucesos Te y Ts

t = TSuc = Ne = Ns = L = 0 te = ts = M

e(i) = s(i) = SERV(i) = 0 para todo i

Luego se debe generar el instante en que se produce el primer suceso. Hay dos rutinas que describen más abajo: LLEGADA() Y SALIDA() donde () indica que debe proveerse una variable en valor para ejecutar la rutina Posteriormente se buscará que suceso ocurre primero, se tratará, contabilizará y se continuará hasta que no queden sucesos pendientes. El algoritmo general será, además de la inicialización de arriba el que sigue:

1.- Generar el numero aleatorio X 2. - Si X > T entonces Tp = W = Wq = 0 y FIN

Si no: 3. - LLEGADA (X) ‘ Llamada a rutina pasando la variable X 4. - Bucle (que se mantiene mientras TSuc.te <> M ó TSuc.ts <> M)

4.1. - Si te < ts entonces Tsuc = te ; te = M , LLEGADA (TSuc)

4.2. Si ts < te TSuc = ts ts = M SALIDA (TSuc)

5. Tp = max {0, t – T} 6. Acumulo1 = acumulo2 = 0 7. Ind = 0 8. Bucle que se mantiene mientras Ind < Ne

8.1. Acumulo1 = acumulo1 + s(Ind) – e(Ind)

Page 54: BOOK MODELOS Y SIMULACIÓN

Pág.: 53 / 83

8.2. Acumulo2 = acumulo2 + s(Ind) – e(Ind) – SERV(Ind) 8.3. Ind = Ind + 1

9. W = acumulo1/Ne 10. Wq = acumulo2/Ne

FIN

SUBRUTINAS RUTINA DE LLEGADA:

Se corre con TSuc como variable pasada t = TSuc L = L + 1 Ne = Ne +1 e(Ne) = t Se genera un numero aleatorio X Si t + X < T entonces te = t + X Si L = 1 entonces se genera un numero aleatorio Y ts = t + Y SERV(Ns + 1) = Y

RUTINA DE SALIDA

Se corre con TSuc como variable pasada t = TSuc L = L - 1 Ns = Ns +1 s(Ne) = t Si L > 0 Se genera un numero aleatorio Y ts = Y + t SERV(Ns) = Y

El siguiente paso es replicar un número de corridas suficientes como para poder extraer conclusiones válidas.

Page 55: BOOK MODELOS Y SIMULACIÓN

Pág.: 54 / 83

FORMULACION DEL MODELO

Consiste en determinar la estructura del sistema en término de un modelo lógico, o físico, que represente las características buscadas para el sistema en estudio.

Criterios

El simulador estará al servicio de los objetivos del estudio en que se inserta. Por eso el modelo de un sistema real dado no es único, pues puede haber varias investigaciones sobre varios aspectos

Se deberán construir modelos para los procesos simples: La relación entre

éstos darán el modelo que se busca para el sistema. Es el concepto de diseño modular con pocas variables de entrada y pocas de respuesta.

Se denomina modelo monolítico a aquel con un solo gran bloque - No permite una validación eficiente del Simulador porque no se pueden

aislar errores. - No se puede modificar sin alterar todo el modelo, mientras que en el

diseño modular se aísla el módulo con error.

Un modelo no debe simplificar mucho el sistema que se desea simular,

pero tampoco hacer muy cara o lenta su construcción.

En la formulación del modelo hay que darle un estado inicial al sistema. No debe estar formado por muchas variables ya que crecerá el costo y tiempo para cargarlo.

Se deben tomar decisiones: el orden de la secuencia de cambio de los

atributos del sistema y la unidad de tiempo del reloj del modelo.

Se debe decidir también si el tiempo simulado se incrementará de manera fija, un minuto, un día, un mes, o un año, o bien en incrementos de tiempo variable. Por ejemplo que el tiempo avance según la ocurrencia de un evento.

Las variables

Representan elementos, componentes o subsistemas del sistema en consideración. Se reconocen las variables de entrada y las de proceso que determinan el estado del sistema durante la simulación. Cualquiera de ellas puede ser estocástica o de comportamiento probabilístico (rara vez incertidumbre) o determinísticas. Cualquiera de estas, también, puede ser exógena o endógena, según representen componentes externos al sistema o internos a él, respectivamente.

Page 56: BOOK MODELOS Y SIMULACIÓN

Pág.: 55 / 83

Por último, y fuera de la clasificación anterior se encuentran las variables de estado que caracterizan la condición en que se encuentra el modelo del sistema en un punto del tiempo simulado.

Las variables deben ser tales que sea sencilla la carga de sus valores y con

datos en cantidad adecuada y costo adecuado a las restricciones que se tenga.

Las variables de entrada deben permitir un rango amplio de control sobre el sistema, para predecir las respuestas del modelo ante variación de datos e inferir lo mas ampliamente sobre el sistema real.

Las variables de entrada deben ser capaces de responder a múltiples

alternativas que determine el usuario.

Las variables de entrada deben ser lo menos posibles, pero en cantidad suficiente para permitir todas las variables de salida.

El modelo no debe dar respuestas absurdas en el rango que el analista

determinó. No debe dar respuestas que van contra lo que es observable en el sistema real, o contra lo ya universalmente aceptado como verdadero en el sistema.

Ejemplo de simulador de dos juegos.

Se plantean dos juegos, uno con solución analítica obvia, (Juego de la raspadita) y otro sin esa posibilidad. Juego de raspadita Lotería del Oeste diseña un juego consistente en una raspadita, con tarjetas con tres filas, en cada una hay dos casillas, una con un valor oculto de $ 1 y la otra con uno de $ 5. El jugador debe raspar solamente una de cada renglón. Si obtiene los tres renglones con números iguales se gana la cantidad indicada. ¿Cuál es la mínima cantidad que se debe cobrar por tarjeta para obtener una ganancia esperada? Como el problema es simple es posible aplicar la teoría de probabilidades y construir el modelo que permita obtener la respuesta: la cantidad a cobrar debe ser al menos igual a las ganancias esperadas por los apostadores, que es lo que la Lotería debe pagarles. La ganancia esperada se calcula como la

esperanza matemática: Ganancia esperada = $ 1 x (probabilidad de ganar $ 1) + $ 5 x (probabilidad de ganar $ 5) La probabilidad que tiene un apostador de ganar $1 (o $5) es la probabilidad de que la casilla raspada en las tres filas tenga 1 (o 5):

P($1) = P(fila1,$1) x P(f2,$1) x P(f3,$1) = ½ x ½ x ½ = 1/8 , P($5) = P(fila1,$5) x P(f2,$5) x P(f3,$5) = ½ x ½ x ½ = 1/8 ,

por tanto

Page 57: BOOK MODELOS Y SIMULACIÓN

Pág.: 56 / 83

Ganancia esperada = $ 1 x (1/8) + $ 5 x (1/8) = $ 0,75

Como se puede ver, cobrando ese importe es posible equilibrar los gastos. Es un modelo aceptable. Otro modelo aceptable es – aplicando el mismo concepto – disponer de un dado y pretender averiguar si, al arrojarlo, va a salir un as. Se puede afirmar que tirándolo repetidas veces, en uno de cada

seis tiros se obtendrá el as. Eso es formalmente correcto, pero, en la realidad, tirando realmente un dado, el as ¿va a salir en el primer tiro y en el séptimo? ¿Va ha haber un as en seis tiros? Si se hace la prueba a veces en el primer tiro sale y otras veces se tiran diez o doce veces el dado y no sale ninguno, o salen cinco veces. Estos resultados que parecen erráticos, sin embargo, no lo son, ya que tirando muchas más veces se obtendrá una proporción de salidas que, efectivamente, tiende a ser de 1 en 6. Sería interesante saber, por un lado lo que el modelo predice: un as cada seis tiros, basado en que, en muchos tiros se va a dar esa proporción, por otro lado, frente a un tirador determinado, en un número acotado de tiros, ¿Cuántos ases van a salir? En el caso de la raspadita se puede intentar conocer que va ocurrir simulando que ya se emitieron los cartones y se los entregó, en carácter de prueba, a una cierta cantidad de apostadores. Esta sería una simulación física, realizada imprimiendo, por ejemplo 200 tarjetas, dándoselas a determinadas personas

para que raspen y tabular los resultados. Usando las ganancias obtenidas se puede calcular un promedio y una desviación. Se obtiene una estimación de ganancia y se pueden usar esos datos para tomar decisiones. ¿Porqué se querría hacer esto? El modelo probabilística no incluye cosas vagas e imposibles de definir como “la buena (mala) suerte del jugador” “la corazonada” “una buena (mala) racha” y otras cosas por el estilo que tratan de explicar los desvíos puntuales y en números acotados de ensayos que se apartan del modelo. Sin embargo este es un procedimiento engorroso. Otra manera es mediante simulación analógica: por ejemplo lanzando al aire monedas (p = ½) : tres lanzamientos cara son $1, tres cruz son $5, los demás son $ 0. Este enfoque u otro similar, evita imprimir tarjetas. La simulación por computadora es ideal para estos problemas, ya que se pueden arrojar las monedas, tabular los resultados y calcular lo necesario mediante una sola operación simple. Todos los lenguajes de programación son capaces de generar números aleatorios con distribución uniforme. Se muestra a continuación un pequeño

programa en Basic capaz de hacerlo:

RANDOMIZE FOR i=1 TO 200 a = RND b = RND c = RND IF a > .499 THEN a = 1 ELSE a = 5 IF b > .499 THEN b = 1 ELSE b = 5

Page 58: BOOK MODELOS Y SIMULACIÓN

Pág.: 57 / 83

IF c > .499 THEN c = 1 ELSE c = 5

IF a = b AND b = c THEN gano = gano + a aciertos = aciertos + 1 END IF NEXT i ‘ PRINT “Aciertos : “; aciertos PRINT “% de ac. : “; aciertos * 100/200 PRINT PRINT “Ganancias : “; gano PRINT “Promedio : “; gano / 200

La siguiente es una salida obtenida con una semilla de 2

Aciertos : 53 % de ac. : 26.5 Ganancias : 153 Promedio : 0.765

La ventaja de este programa es que se puede simular para, por ejemplo, 11200 intentos. Los resultados con la misma semilla son:

Aciertos : 2744

% de ac. : 24.5 Ganancias : 8140 Promedio : 0.7268

O una de 100000 tarjetas, igual semilla:

Aciertos : 24938

% de ac. : 24.93 Ganancias : 74390 Promedio : 0.744

Por último podremos intentar correr una simulación de 1000000 apuestas:

Aciertos : 249759 % de ac. : 24.976 Ganancias : 746287 Promedio : 0.7463

Como se puede observar, un simple programa permite hacer cualquier tipo de ensayo y, aún disponer de distintos resultados. Se puede, además, concluir que a medida que avanza el número de apostadores hay una tendencia a un

Page 59: BOOK MODELOS Y SIMULACIÓN

Pág.: 58 / 83

25% de aciertos y a un promedio de ganancia por tarjera de 0,75, que son los valores que se obtendrían por aplicación lisa y llana del modelo estadístico.

Simulando “la raspadita” en Planilla de Cálculo

Como se señala en los capítulos de Programación lineal, hay innumerables maneras de plantear este problema en planilla de cálculo. Con fines demostrativos se propone una para que el lector ensaye optimizarla:

1. Se establece que a partir de un reglón cualquiera (en este ejemplo del renglón 7) simula una tarjeta de juego. Así el 7 será la primera tarjeta, el 8 la segunda y el 107 la centésima.

2. La columna A, representa el resultado, para cada renglón, de la primera raspada, la B la de la segunda y la C la de la tercera, pero en formato de número aleatorio.

3. Las columnas D, E y F adoptan valores de “1” y de “5” en función de los

resultados de las A, B y C respectivamente.

4. La columna G le da un valor al juego (0, si no hay coincidencias, 1, si las coincidencias son de unos y 5 si las coincidencias son de cincos):

CELDA FORMULA COMENTARIOS

A7 =ALEATORIO() Calcula un nº aleatorio entre 0 y 1

B7 =ALEATORIO() Ídem

C7 =ALEATORIO() Ídem

D7 =SI(A7<0,5;1;5) Si el nº en A7 es menor que 0,5 escribe 1, si es mayor escribe 5

E7 =SI(B7<0,5;1;5) Ídem para B7

F7 =SI(C7<0,5;1;5) Ídem para C7

G7 =SI(Y(D7=E7;E7=F7);SI(D7=1;1;5);0) Si los tres son iguales y si valen 1 escribe 1, valen 5, escribe 5 si son distintos escribe 0

I2 =CONTAR(A7:A1000) num. de ensayos, hasta un máximo de 1000-7

I3 =CONTAR.SI(G7:G1000;"<>0") Cuenta solo las ganadoras (distinto de cero)

I4 =SUMA(G7:G1000) Cálculo del importe total ganado por los apostadores

I5 =PROMEDIO(G7:G1000) Cálculo del premio medio de todas las tarjetas

Usando las funciones de arrastre esta planilla se escribe en pocos segundos, ya que solo se escribe la fila 7 en todas las columnas A, B, C. D, E, F y G, y luego se arrastra hasta el renglón deseado a fin de tener el número de renglones equivalentes a la cantidad de tarjetas que se simulan. En las celdas I2, I3, I4 e I5 se presentan los resultados de la contabilidad del modelo. En el caso ejemplificado se estableció que se habilitarán los renglones que van del 7 al 1000 (993 tarjetas como máximo, aunque puede simularse desde una a ese valor cualquier cantidad). Obviamente este valor

Page 60: BOOK MODELOS Y SIMULACIÓN

Pág.: 59 / 83

de 1000 fue puesto por razones de buena visibilidad en la tabla anterior y podría ser cualquier otro hasta el límite físico de la hoja de cálculo. Una vez desarrollada esta planilla se debería obtener un resultado como el que se muestra en la figura. Téngase en cuenta que la función ALEATORIO() es volátil, esto quiere decir que se recalcula cada vez que el programa tiene que

revisar la hoja activa a efectos de recalcular todas las celdas, lo que se desencadena con cualquier evento como, por ejemplo, cambiar un valor en una celda cualquiera, esté o no relacionada con otras.

Uso de macros en Hoja de Cálculo

También es posible escribir una macro en Visual Basic para Office o el lenguaje de macros de OpenOffice o LibreOffice. A continuación se transcribe el código desarrollado para el problema de la raspadita. Se debe notar que hay varias posibilidades de lograr lo mismo cambiando el desarrollo del programa. Este es uno de esos métodos. Pruebe

otros.

Sub Raspadita2() ' Raspadita2 Macro ' Macro grabada el 17/06/2005 por Alejandro Roberti ' Acceso directo: CTRL+w ' ‘ 1er. Paso, se limpian todos los contenidos de la hoja de trabajo: Sheets("Hoja1").Select Cells.Select Selection.ClearContents

‘2do: Se escribe el título de la hoja en la celda A1 Range("A1").Select Selection.Font.Bold = True

Page 61: BOOK MODELOS Y SIMULACIÓN

Pág.: 60 / 83

ActiveCell.FormulaR1C1 = "PROBLEMA DE LA RASPADITA EN HOJA DE

CÁLCULO" ‘3ro. Un cuadro de diálogo le pregunta al operador cuantas tarjetas se simularan. ‘ la cantidad se guarda en la variable numtarj. Si no se ingresa nada o se cancela ‘ termina el programa numtarj = InputBox("Ingresar el numero de tarjetas a simular", "ModeliZa ", 100) If numtarj = "" Then End ‘4to. Comienza un ciclo que se repite tantas veces como tarjetas se simulen. ‘ En este ciclo se trabaja igual que en el ejemplo visto en qBasic For i = 1 To numtarj a = Rnd

b = Rnd c = Rnd If a <= 0.5 Then a = 1 Else a = 5 If b <= 0.5 Then b = 1 Else b = 5 If c <= 0.5 Then c = 1 Else c = 5 If a = b And a = c Then gano = gano + 1 sumagana = sumagana + a If a = 1 Then gana1 = gana1 + 1 Else gana5 = gana5 + 1 End If Next i ‘5to. Terminadas de “jugar” las numtarj tarjetas se procede a imprimir en la hoja los ‘ resultados obtenidos Range("C3").Value = " Tarjetas jugadas" Range("C4").Value = " Tarjetas ganadoras (" + Format(gano * 100 / numtarj) + " %)"

Range("C5").Value = " Tarjetas ganadoras de $1 (" + Format(gana1 * 100 / numtarj) + " %)" Range("C6").Value = " Tarjetas ganadoras de $5 (" + Format(gana5 * 100 / numtarj) + " %)" Range("C7").Value = " Importe total ganado" Range("C8").Value = " Promedio Ganado" Range("B3").Value = numtarj Range("B4").Value = gano Range("B5").Value = gana1 Range("B6").Value = gana5 Range("B7").Value = Format(sumagana) + " $" Range("B8").Value = Format(sumagana / numtarj) + " $/Trj" End Sub

Page 62: BOOK MODELOS Y SIMULACIÓN

Pág.: 61 / 83

Esta pantalla es el resultado de una corrida de la macro cuyo código figura más arriba.

Juego de las tres diferencias Se considera el juego de lanzar una moneda repetidas veces hasta que la diferencia entre el número de caras y número de secas que hayan salido sea tres. Se paga $1 cada vez que lanza la moneda, y se reciben $8 al final de cada juego, cuando logra la diferencia de 3. No se puede abandonar el juego cuando ya comenzó. Por ello, se gana dinero si el número necesario de lanzamientos es menor que 8, pero se pierde si se tiene que lanzar la moneda más de 8 veces. ¿Cómo se podría decidir si conviene o no participar en el juego?

Alternativas: 1. Una resolución analítica, que no es obvia. 2. Una resolución empírica, no segura. Pasar un tiempo relativamente

largo lanzando la moneda y anotando los resultados y computar ganancias o pérdidas.

3. Una simulación en computadora. Para optar por 3, se usará la generación de dígitos aleatorios para obtener el resultado de juegos y entender el funcionamiento de este sistema. Como se utilizará un generador común de distribución uniforme entre 0 y 1, se establece – al igual que en el juego anterior – que si los números obtenidos están comprendidos entre 0 y 0,49 equivaldrá a decir que es “cara” (C) y que de 0,5 a 1 corresponden a “seca” (S) (o “cruz”). El siguiente código esta escrito para VB para aplicaciones:

Sub _tres()

' ' sub_tres Macro ' Acceso directo: CTRL+q '

Page 63: BOOK MODELOS Y SIMULACIÓN

Pág.: 62 / 83

‘Primera parte: iniciación de variables y limpieza de hoja de cálculo Dim juegostotales, serie, numeroanterior, cara As String Dim evento, repetido, a, juegos As Long Dim cuentacara, cuentaseca, diferencia As Long Range("A1:G10000").Clear Range("A1").Activate ActiveCell.Value = "LAS 3 MONEDAS - PULSE CTRL q" ActiveCell.Font.Bold = True ActiveCell.Font.Color = vbRed Range("A2").Activate Range("A3").Value = "Juego#" Range("B3").Value = "Tiros" Range("C3").Value = "Serie obtenida" Range("E1").Value = "JUEGOS" Range("E2").Value = "RESULTADO MEDIO" ‘Segunda parte: ingreso de cantidad de intentos a simular y activación del

generador de números aleatorios juegostotales = InputBox("Cantidad de juegos a simular", "ModeliZa", 10) Randomize If juegostotales = 0 Then End For juegos = 1 To juegostotales evento = 0 serie = "" numeroanterior = "" repetido = 0 cuentacara = 0 cuentaseca = 0 diferencia = 0 game: a = Rnd If a < 0.5 Then cara = "C" Else cara = "S" evento = evento + 1

serie = serie & cara If cara = "C" Then cuentacara = cuentacara + 1 Else cuentaseca = cuentaseca + 1 End If diferencia = Abs(cuentacara - cuentaseca) If diferencia < 3 Then GoTo game Range("B" + Format(juegos + 3)).Value = evento evento = 0 Range("A" + Format(juegos + 3)).Value = juegos Range("C" + Format(juegos + 3)).Value = serie

Page 64: BOOK MODELOS Y SIMULACIÓN

Pág.: 63 / 83

serie = ""

Next juegos contabilidad: Range("E1").Value = "JUEGOS" Range("G1").Value = juegos - 1 Range("E2").Value = "RESULTADO MEDIO" Range("G2").Value = "=SUM(B4:B" + Format(juegos + 3) + ")/G1" End Sub

Se muestran ejemplos de tres pantallas obtenidas con 1 simulación, con 10 simulaciones, con 100 simulaciones y con 1000 simulaciones:

Page 65: BOOK MODELOS Y SIMULACIÓN

Pág.: 64 / 83

Como puede observarse, con una sola corrida se obtuvo una ganancia de 3 ya que se invirtieron 5 y se recibió un premio de 8, sin embargo en sucesivas jugadas, en promedio, no hay ganancia. Obviamente estas salidas mostradas son puro azar, jugar una sola vez podría haber dado también una inversión de 25 (ver primer juego de la figura que representa 10 juegos) con una pérdida neta de 17. Estos promedios de lanzamientos por jugada, son estimaciones de la media poblacional verdadera de la distribución de probabilidad teórica. Uno de los errores más comunes en el uso de la simulación es que las conclusiones se basan en muestras muy pequeñas, porque se hizo un análisis

estadístico inadecuado, o porque se carece de ese análisis por completo. En el caso de los 10 juegos (promedio 8), figura segunda, la desviación estándar hallada fue 7,26 En este caso el desvío medio de la muestra es:

∑| |

Page 66: BOOK MODELOS Y SIMULACIÓN

Pág.: 65 / 83

Por ello, aun cuando se suponga que la distribución de probabilidad del número de lanzamientos requeridos en una jugada es una distribución normal (que es una suposición, ya que la distribución real es sesgada), cualquier intervalo de confianza razonable para la media verdadera de esta distribución va más allá del 8.

Así, antes de concluir, se requiere un tamaño de muestra más grande. Recuerde que en la distribución normal, el área que se tiene abarcada, la probabilidad de ocurrencia, tomando 1, 2 o 3 sigmas en torno al promedio es: 1 sigma 68,34% 2 sigma 95,44% 3 sigma 99, % 1 sigma significa que hay un 68,3% de probabilidades de que un valor de la variable tomado al azar esté en el intervalo (promedio - 1 sigma , promedio + 1 sigma). En este caso, ocurre que la media verdadera de la variable "Número de lanzamientos que se requieren en una jugada", es 913. Así, se perdería $1 cada vez que se participa en el juego.

Relaciones funcionales

Describen el comportamiento de las variables consideradas durante el tiempo de simulación. Pueden ser Determinísticas o Estocásticas. Si hay una la variable aleatoria probabilística, entonces la relación funcional es también probabilística. Se establecerá probabilidades para las variables, según decisión, por intervalos de largo fijo o variable, o se usa una función de distribución de probabilidades conocida, y luego se aplica la relación funcional. Puede ocurrir también que

todas las variables sean determinísticas y se considera un margen aleatorio para el resultado de la relación funcional, en ese caso tiene la forma:

var = f(var1, var2, ....) + k*aleatorio mientras que en las demás es:

var = f(var1, var2, ....) Las relaciones funcionales pueden ser:

Estáticas o de transformación, donde se puede analizar el valor que asume una variable pero no la manera en que cambia en el tiempo.

13 Este valor es conocido por otros medios. Sin embargo, al disponer de un simulador tan simple y tan poderoso que permite realizar un enorme numero de tiradas – cuyo único límite es el tamaño de la hoja porque se ha decidido mostrar cada jugada, de lo contrario el límite sería mayor – el lector puede hacer ensayos modificando muy poco el código y verificar que a un número grande de ensayos el promedio tiende a 9. El autor obtuvo en tres simulaciones sucesivas de 60000 tiradas con promedios de 8,9954 – 9,006 – 9,054, respectivamente.

Page 67: BOOK MODELOS Y SIMULACIÓN

Pág.: 66 / 83

Dinámicas o de transición, donde se puede analizar el proceso del sistema

y el comportamiento de las variables en el tiempo. Las relaciones funcionales estáticas generan el valor de la variable dependiente en forma determinista o estocástica. Generan el valor de la variable dependiente en función del tiempo simulado. Las relaciones funcionales dinámicas son aquellas que describen el comportamiento de la variable dependiente en todo el tiempo simulado.

Etapas

En resumen, las etapas de simulación son: 1. Identificación del problema. 2. La definición del sistema, en que se establecen las variables 3. Formulación del modelo, en que se establece la o las funciones.

Los modelos de simulación consisten de alguna combinación de los siguientes elementos:

Componentes u objetos. Partes que en conjunto son el sistema. También

se entienden como los elementos o los subsistemas

Variables. Son representaciones de objetos, componentes, subsistemas u otros elementos del sistema real en estudio.

Si son exógenas representan entradas al sistema, entrada al modelo o ruido.

Si son endógenas representan los objetos del sistema. Son producidas

dentro del sistema o modelo. Son variables de estado. Si se consideran para describir estados finales, son variables de salida

Puede denominarse variables independientes a las variables exógenas y variables dependientes a las variables endógenas.

Parámetros. Valores que describen el estado de objetos determinados

Relaciones funcionales. Presenta variables y parámetros en su comportamiento dentro de un objeto componente, o entre objetos componentes del sistema.

Relaciones funcionales determinísticas: Son identidades o definiciones

que relacionan ciertas variables o parámetros, donde una salida del proceso es única para una entrada dada.

Relación funcional Estocástica: Si la salida es incierta para una entrada dada fijado.

Ambos tipos de relaciones funcionales usualmente toman la forma de

una ecuación matemática relacionando las variables endógenas o de estado con las variables exógenas. Frecuentemente esas relaciones pueden inferidas luego de efectuarse un análisis matemático y/o estadístico.

Page 68: BOOK MODELOS Y SIMULACIÓN

Pág.: 67 / 83

Restricciones: Son limitaciones en el valor de las variables o en la manera

como los recursos pueden ser ubicados o distribuidos. Pueden ser definidas por el diseñador o impuestas por el sistema natural.

Función. Es una afirmación explícita de los objetivos o metas que se quiere para el simulador del sistema y cómo ellos serán evaluados.

Criterio. Es la manera en que medirán los logros del o de los objetivos. No

debe ser ambigua. Respecto al criterio y a los objetivos: debe tenerse presente que existen para el sistema en estudios y para el propio simulador del sistema. Por ello hay que tener mucha claridad en las medidas de desempeño que se definen ya que dicha medida tiene una alta influencia en el diseño y manipulación del modelo y una afirmación errónea del criterio de desempeño conduce a conclusiones equivocadas. El funcional y su criterio (función medida del desempeño) se considera habitualmente como parte del modelo, y la manipulación del modelo se hace para optimizar o satisfacer el criterio establecido. Se deben equilibrar las medidas de desempeño exigidas al simulador con las simplificaciones que se hicieron del sistema real para arribar a la formulación del modelo que se tiene. No exigir más de lo que se diseñó; y exigir lo que el

usuario del simulador define como mínimo. Por todo ello, hacer un modelo es un arte que consiste en la capacidad y habilidad de analizar un problema, aislarlo en sus hechos esenciales, seleccionar y modificar supuestos básicos que caracterizan el sistema, y así elaborar y enriquecer el modelo hasta una razonable aproximación a los resultados. Se puede usar como guía este procedimiento: 1. Desglosar el sistema - problema en sistemas - problemas simples. 2. Establecer los límites del sistema real y del sistema modelo 3. Definir las variables que son relevantes y su tipo (determinísticas,

estocásticas, de estado, etc.) 4. Establecer claramente los objetivos del estudio y del simulador. 5. Definir las restricciones del sistema real y del modelo 6. Buscar analogías con el sistema en estudio. 7. Considerar instancias o ejemplos – numéricos, mecánicos, etc. – del

problema.

8. Establecer un glosario (nombre de las variables, de los parámetros, etc.) 9. Secuenciar los módulos.

La bondad del modelo se mide en términos del mayor a menor realismo que entregue respecto del sistema real, es decir, modelar no es resolver, como en los problemas matemáticos habituales.

Page 69: BOOK MODELOS Y SIMULACIÓN

Pág.: 68 / 83

Hay que tener presente que no se resuelve el problema tal como lo encontró o como esta en la realidad, lo que se hace es utilizar el modelo construido para el problema. Cualquier buen modelo de simulación:

1.Debe ser fácil de entender por el usuario.

2.Debe tener metas y propósitos claros y declarados. 3.Debe ser seguro y confiable, no debe dar salidas absurdas. 4.Debe ser robusto, es decir que debe funcionar sin sorpresas. 5.Fácil de usar, controlar y manipular, debe ser fácil comunicarse con él. 6.Debe ofrecer salidas que cubran todos los aspectos importantes. 7.Debe ser adaptativo, permitiendo modificar el modelo frente a cambios

de paradigmas. 8.Debe ser evolutivo, partiendo de una forma simple pueda llegar a ser

más complejo en la interacción con el usuario.

Page 70: BOOK MODELOS Y SIMULACIÓN

Pág.: 69 / 83

Capítulo 5 - Método de MONTECARLO Esta técnica permite generar observaciones para una variable de comportamiento estocástico. Es un procedimiento básico en la simulación de sistemas que contienen elementos aleatorios. Se origina en 1940 a partir de trabajos realizados Von Neuman aplicados en la

solución de problemas de difusión nuclear. La técnica matemática era conocida ya desde muchos años antes, y fue revivida por estos trabajos secretos y adquirió ese nombre y rápidamente se aplicó en otros campos, como la simulación. El uso de la técnica de Monte-Carlo es útil en simulación probabilística. Aunque también lo es en ciertos modelos completamente deterministas que no pueden ser resueltos analíticamente. Por ejemplo: calcular una integral doble sin primitiva en una región del plano, puede hacerse con la generación de números al azar en una zona que contiene a la región de integración. La Técnica Las variables estocásticas tendrán una función de distribución de probabilidad asociada, que puede estar basada en:

Datos empíricos derivados del pasado.

Experimentos recientes.

Una distribución teórica conocida, que es apropiada.

Dicha función de distribución de probabilidades puede ser continua o discreta. En general se busca asociar una cierta distribución de probabilidad a una variable estocástica antes que transformarla en una constante. Si no se sabe qué función de distribución de probabilidad tiene una determinada variable continua estocástica, se debe asumir que tiene una distribución uniforme en su rango acotado de valores posibles. En cuyo caso la probabilidad es igual para todos los puntos; f(x)=k; por lo que la función de probabilidad acumulada es F(x),

∫ ( )

( ) ∫

CASO 1

Se tiene la variable aleatoria: " número de accidentes que requieren atención en un día", en un cierto predio, lugar y fecha, con las siguientes probabilidades de ocurrencia obtenidas de información histórica.

N° de accidentes Probabilidad P acumulada Intervalo asociado

0 0,35 0,35 0 , 0,35 ) 1 0,40 0,75 0,35 , 0,75)

Page 71: BOOK MODELOS Y SIMULACIÓN

Pág.: 70 / 83

2 0,15 0,90 0,75 , 0,90)

3 0,05 0,95 0,90 , 0,95) 4 0,02 0,97 0,95 , 0,97) 5 o más 0,03 1,00 0,97 , 1 )

Se quiere generar número de “accidentes que se producirán en un día y que requieren atención”, durante los 7 días de una semana. De una tabla de números aleatorios uniformemente distribuidos entre 0 y 1, se obtienen los siguientes números U(0,1):

0,36 0,83 0,42 0,32 0,49 0,93 0,16

Resultado:

El 1er día se produce: 1 accidente El 2° día se producen: 2 accidente El 3er día se produce: 1 accidente El 4° día se produce: 0 accidente El 5° día se produce: 1 accidente El 6° día se producen: 3 accidente El 7° día se produce: 0 accidente

Con esta información se podrá continuar con un simulador, o sacar conclusiones respecto del comportamiento de la variable en estudio.

CASO 2

Generar llegadas de clientes a un video club durante una hora, que solicitan atención, sabiendo que en 5 minutos la probabilidad de número de clientes es: N° de clientes

Probabilidad Prob, Acumulada Intervalo de probab, asignado

0 0,25 0,25 0 , 0,25 )

1 0,40 0,65 0,25 , 0,65 ) 2 0,20 0,85 0,65 , 0,85 ) 3 0,15 1,00 0,85 , 1 )

Números al azar uniformemente distribuidos en 0 , 1) a usar:

1) 0,492 2)0,871 3)0,753 4)0,122 5)0,333 6)0,677 7)0,469 8)0,010 9)0,905 10)0,507 11)0,646 12)0,745

Resultado: El número de clientes que llegan cada cinco minutos, durante una hora es:

1, 3, 2, 0, 1, 2, 1, 0, 3, 1, 1, 2.

Page 72: BOOK MODELOS Y SIMULACIÓN

Pág.: 71 / 83

Pasos para aplicar la técnica de Montecarlo 1.Obtener y graficar la curva de frecuencias acumuladas con los valores de la

variable en el eje X, y la probabilidad acumulada en el eje Y. Los valores están de 0 a 1.

2.Obtener o elegir un número decimal U entre 0 y 1 uniformemente

distribuido con tantos decimales como se desee, por medio de un generador de números aleatorios.

3.Obtener la imagen X de ese número al azar U por medio de la función de

frecuencia acumulada. Es decir, obtener X tal que

P X x = U

4.Ese valor X obtenido es el valor muestreado.

5.Repetir los pasos 2 y 3 hasta generar el número de observaciones que se

desee.

Base de método:

El método de muestreo de Montecarlo se basa en los siguientes supuestos: 1) "La probabilidad de que un número uniformemente distribuido entre 0 y 1

caiga en el intervalo ra , r b) es: r b - ra ".

Page 73: BOOK MODELOS Y SIMULACIÓN

Pág.: 72 / 83

( ) ( ) ( )

Así, con números uniformes en 0 , 1) se pueden generar valores de la

variable X conociendo su función de probabilidad acumulada, obtenida a partir de su función de densidad de probabilidad. Por ejemplo, si se conoce la función (Ver Optimiza9, modelos de colas y fenómenos de espera)

f (x) = e -x

Su función de probabilidad acumulada F(x) es:

( ) ∫

cuando x +, la probabilidad acumulada tiende a 1 (ver figura anterior) En este caso también se puede obtener una expresión de términos de U para el valor de X muestreado.

U = 1 - e-x

e-x = 1 – U

( )

que da el evento X para un r = U dado. En el caso de distribución normal

Page 74: BOOK MODELOS Y SIMULACIÓN

Pág.: 73 / 83

( ) ( )

( )

√ ( )

( ) ∫ ( )

Para distribución de Poisson.

( )

La probabilidad de que se presenten exactamente x eventos en un intervalo de tiempo dado en que λ es el promedio de éxitos que se presentan en ese tiempo.

Si se tiene una función continua sin inversa para la función de probabilidad acumulada, o de muy difícil expresión algebraica y/o manejo, se podrá usar

tablas que contengan los valores de F o bien, se recurre a discretizar esa función; como ocurre con la función de probabilidad acumulada de la curva normal. Reducción de varianza Las técnicas de reducción de varianza se utilizan para aumentar la precisión de las estimaciones muestrales a fin de hacer más precisa la estimación de los parámetros poblacionales. Por ejemplo, una variable tiene como función de

densidad de probabilidad de f(x) = e-x, de donde su función de probabilidad

acumulada F(x) es:

Page 75: BOOK MODELOS Y SIMULACIÓN

Pág.: 74 / 83

( ) ∫

Su media es 1, y se supondremos no conocerla para estimar su valor. La técnica de Montecarlo como se vio hasta ahora, se usa en simulación directa. Se generan observaciones aleatorias a partir de la distribución usada y luego el promedio de esta muestra para estimar la media. Al aplicar Montecarlo se obtiene: U = 1 - e-x X = -Ln ( 1 - U ) = -Ln (1 - Ui) Que, con la técnica de Montecarlo simple se obtiene un valor alejado de la media poblacional. Al aplicar la técnica de uso de números aleatorios complementarios en que se genera un número aleatorio, y se considera su número complementario, en

otra secuencia.

i Número

aleatorio

Observación Obtenida

xi = -Ln(1-i)

Número aleatorio

complementario ´i

Observación aleatoria

xi=-Ln(1-´i)

1 2 3 4

5

0.495 0.335 0.791 0.469

0.279

0.684 0.408 1.568 0.633

0.328

0.505 0.665 0.209 0.531

0.721

0.702 1.092 0.234 0.756

1.275

6 7 8 9 10

0.698 0.013 0.761 0.290 0.693

1.199 0.014 1.433 0.343 1.183

0.302 0.987 0.239 0.710 0.307

0.359 4.305 0.272 1.236 0.366

= 7.793 x = 0.793

= 10.597 x = 1.060

( )

Dado un número aleatorio “u” de una función de probabilidad dada, se llama número aleatorio complementario de “u” a un número “uc” tal que el

promedio de los 2 sea el promedio de distribución de la variable. Por ejemplo, si se obtiene el número aleatorio uniformemente distribuido

entre 0,1), u = 0,78 entonces el número aleatorio complementario de u es uc=0,22 porque el promedio de ellos es 0,5 que es el promedio de los

números de 0 a 1, uniformemente distribuidos.

Page 76: BOOK MODELOS Y SIMULACIÓN

Pág.: 75 / 83

Si es una distribución normal, se obtendría u = 0,78 (número aleatorio

normalmente distribuido con promedio 0 y desviación ), entonces el número aleatorio complementario de u es uc = -0,78 porque el promedio de ellos es 0.

Si u = 3,78 que se obtuvo de una función de distribución normalmente

distribuida con promedio 5 y desviación , entonces la altura aleatoria complementaria es uc = 6,22 porque el promedio de u y uc es 5.

Una tercera alternativa es usar un muestreo estratificado. Se divide la distribución de probabilidades acumulada F(x) en partes, y cada una de ellas se muestra por separado, con lo que se obtiene un muestreo desproporcionado, pero más denso en los estratos críticos. Se debe

determinar tamaño de la muestra en cada estrato, deducir el número aleatorio del intervalo del estrato y determinar una ponderación de la muestra.

Ejemplo 1

Sea el caso de transformar una variable continua en discreta. Una variable

poblacional se distribuye normalmente con = 180 y = 5. Se necesita

generar 10 medidas para 10 individuos, y se hará discreta en 5 intervalos.

Resultado Intervalo discreto Probabilidad Prob Acumulada Intervalo asignado

2 individuo individuo (- , 170) 0,0228 0,0228 = P (x 2) 0 , 0,0228) 0 individuo individuo 170 ,

175)

0,1359 0,1587 = P (x -1) 0,0228 , 0,1587)

1 individuo individuo 175 , 180)

0,3413 0,5000 = P x 0) 0,1587 , 0,5000)

5 individuo individuo 180 , 185)

0,3413 0,8413 = P x 1) 0,5000 , 0,8413)

2 individuo individuo 185 ,

)

0,1587 1,0000 = P (x 0,8413 , 1)

Si se generan 10 números uniformes entre 0 y 1 se tiene:

U(0,1)= 0,871 0,57 0,75 0,47 0,019 0,67 0,016 0,64 0,81 0,923

Individuo 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª

1ª individuo mide sobre 1,85 m 2ª individuo mide entre 1,80 y 1,85 m 3ª individuo mide entre 1,80 y 1,85 m 4ª individuo mide entre 1,75 y 1,80 m 5ª individuo mide bajo 1,70 m

6ª individuo mide entre 1,80 y 1,85 m 7ª individuo mide bajo 1,70 m 8ª individuo mide entre 1,80 y 1,85 m 9ª individuo mide entre 1,80 y 1,85 m 10ª individuo mide sobre 1,85 m

Page 77: BOOK MODELOS Y SIMULACIÓN

Pág.: 76 / 83

Ejemplo 2

En un caso de colas, por ejemplo, se sabe que las llegadas tienen una tasa promedio de 10 diarios y con distribución Poisson,

llegadas: Probabilidad Acumulada Intervalo asociado

0 0,00004 0 , 0,00004)

1 0,001 0,00004 , 0,001)

2 0,003 0,001 , 0,003)

3 0,010 0,003 , 0,010)

4 0,029 0,010 , 0,029)

5 0,067 0,029 , 0,067)

6 0,130 0,067 , 0,130)

7 0,220 0,130 , 0,220)

8 0,333 0,220 , 0,333)

9 0,458 0,333 , 0,458)

10 0,583 0,458 , 0,583)

11 0,697 0,583 , 0,697)

12 0,792 0,697 , 0,792)

13 0,864 0,792 , 0,864)

14 0,917 0,864 , 0,917)

15 0,951 0,917 , 0,951)

16 0,973 0,951 , 0,973)

17 0,986 0,973 , 0,986)

18 0,993 0,986 , 0,993)

19 0,999 0,993 , 0,999)

20 1,000 0,999 , 1,000)

.....

Se busca generar llegadas diarias durante una semana. Se generan los siguientes números:

0,945 0,485 0,552

0,208 0,709 0,081 0,748

En los siete días se tienen las siguientes llegadas diarias:

15 10 10 7 12 6 12

Con un promedio = 72/7 = 10,28

Ejemplo 3

Se tienen tres variables aleatorias continuas:

x1 con distribución normal de media μ = 1,75 y σ = 0.5

x2 con distribución uniforme entre 10 y 50

x3 llevada a discreta en 4 valores, según:

x3 P x3 = xi P | x3 xi

10 0.15 0.15 20 0.35 0.50

Page 78: BOOK MODELOS Y SIMULACIÓN

Pág.: 77 / 83

30 0.45 0.95 40 0.05 1.00

Además se tiene la función

x4 = x1 + x22 + x1 * x3

Se busca usar el método de Montecarlo para generar 6 observaciones para x4.

Para la variable x1:

Se usarán los valores correspondientes a un generador aleatorio μ = 0 y σ = 1 siguientes:

-1,02 1,82 -0,42 -0,38 -0,51 0,03

que se convierten a la distribución especificada (μ = 1,75 y σ = 0.5)

1,75 + 0,5 * (-1,02) = 1,24 1,75 + 0,5 * (1,82) = 2,66 1,75 + 0,5 * (-0,42) = 1,54

1,75 + 0,5 * (-0,38) = 1,56 1,75 + 0,5 * (-0,51) = 1,50 1,75 + 0,5 * (0,03) = 1,77

También es posible convertir esta distribución a discretos en 5 intervalos

(-, 1,65) 0,0228 A partir de los números con distribución uniforme: 0,021 - 0,431 - 0,535 - 0,127 - 0,87 - 0,663 Se eligen los valores de x1: 1,600 - 1,725 - 1,775 - 1,675 1,85 - 1,775

1,65 , 1,70) 0,1587

1,70 , 1,75) 0,5000

1,75 , 1,80 ) 0,8413

1,80, +) 1,0000

Probabilidad Acumulada obtenida de tabla

Para la variable X2

Con los números de distribución uniforme entre 0 y 1:

0,59 - 0,63 - 0,77 - 0,82 - 0,81 - 0,36

se obtiene: 10 + 40 * 0,59 = 33,6 10 + 40 * 0,63 = 35,2 10 + 40 * 0,77 = 40,8 10 + 40 * 0,82 = 42,8

10 + 40 * 0,81 = 12,4 10 + 40 * 0,36 = 24,4

Para la variable x3

Generando los números de distribución uniforme entre 0 y 1:

0,81 - 0,58 - 0,74 - 0,28 - 0,12 - 0,22

Page 79: BOOK MODELOS Y SIMULACIÓN

Pág.: 78 / 83

Se obtienen: 30 - 30 - 30 - 20 - 10 - 20

Para calcular x4

Se remplaza la función en cada valor de x obtenido

1,24 + 33,6 2 + 1,24 * 30 = 1167,4 2,66 + 35,2 2 + 2,66 * 30 = 1321,5 1,54 + 40,8 2 + 1,54 * 30 = 1712,4 1,56 + 42,8 2 + 1,56 * 20 = 1864,6 1,50 + 42,4 2 + 1,50 * 10 = 1814,3 1,77 + 24,4 2 + 1,77 * 20 = 632,5

Page 80: BOOK MODELOS Y SIMULACIÓN

Pág.: 79 / 83

Capítulo 6 – Simulación de Inventarios Los modelos determinísticos básicos y probabilísticos derivados vistos en Optimiza9 para el

manejo de inventarios se pueden aplicar a sistemas de muy baja complejidad y sirven para fijar

una política de inventarios.

Si bien esa metodología puede ser aplicada exitosamente en empresas o instituciones de

ciertas características, es cierto que no cubren todos los aspectos que en organizaciones mas

complejas se dan. Cuando se menciona la complejidad no se refiere al tamaño de la empresa,

sino al funcionamiento: variables tales como disponibilidad de medios de pago, oportunidad

crítica para hacer pedidos, cambio brusco de la rutina de demanada, etc. no se pueden incluir

en un modelo de los vistos.

Por ello se puede desarrollar un modelo de comportamiento del sistema al margen de las

soluciones analíticas de la teoría de inventarios.

Modelo de Inventario probabilístico Se considera un almacén de determinado producto con un precio de venta al público r por unidad. La llegada de clientes al almacén es un proceso de Poisson cuyo parámetro es λ y la cantidad demandada por cada cliente es G. La política des encargado del almacén es mantener un inventario basado en un criterio de reposición cuando el nivel es bajo, lo que se hace según una revisión periódica, según este esquema:

llamando x al nivel del inventario en cualquier instante. Es una variable de estado del sistema.

Llamando p al nivel de inventario mínimo

Llamando P al nivel de inventario “optimo” máximo

El costo unitario es c(y) sobre el producto solicitado y depende de una función de costo sobre las unidades pedidas y. Es una variable de estado del sistema. Si vale cero es que no hay pedidos pendientes

L es el tiempo que demora el pedido en llegar al almacén, se abona al final de L

h es el costo de almacén

En caso que un cliente llege al almacén y ha un pedido mayor a las unidades que quedan en el depósito, se les venden las que quedan y se pierde la venta del remanente

Cuando el sistema se simula se llama t al tiempo transcurrido en la simulación

En resumen, las variables de simulación serán:

var_nivel() para guardar los instantes en los que el nivel de inventario pasa a ser cero y que se usará después para saber cuanto tiempo el almacén estuvo vacío

tc instante de llegada de cliente

tp instante de llegada de pedidos al proveedor

SUCESOS o TSuc.tc llegada de un nuevo cliente al sistema o TSuc.tp llegada de un pedido

CONTADORES: o C costo total por pedidos hasta el tiempo t o H costo total por almacén hasta el tiempo t

Page 81: BOOK MODELOS Y SIMULACIÓN

Pág.: 80 / 83

o R beneficios por ventas hasta el tiempo t o Nc+ número de clientes servidos satisfactoriamente hasta el tiempo t o Nc- número de clientes a los que no se ha podido satisfacer completamente

hasta el instante t o t0 tiempo en el que inventario está en cero

VARIABLES DE SALIDA: o beneficio beneficio esperado o %cliente_satisf clientes (%) cuya demanda se satisfizo completamente o %invent_0 tiempo (%) en que el inventario estuvo en cero

CRITERIO DE FUNCIONAMIENTO:

Si x < p Y no hay pedidos pendientes: Pedir y = P – x unidades

ALGORITMO El primer suceso que ocurre es la llegada de un cliente al sistema suponiendo que el nivel del inventario inicial es mayor que el mínimo (ver figura): P0 > p. Para lograr esto se llama a la rutina Llegada_cliente. Luego se entra en un bucle donde se van llamando a las rutinas que provocan los sucesos en el orden en que ocurren. Se finaliza calculando los indicadores del sistema utilizando los contadores

1. - Preparación de variables

x = P0 y = Nc- = Nc+ = C = R = H = 0 TSuc.tc = TSuc.tp = M t = tsuc = t0 = var_nivel(0) = 0

2. – Generación del número aleatorio Z Exp(λ)

Si Z > T

Page 82: BOOK MODELOS Y SIMULACIÓN

Pág.: 81 / 83

Beneficio = %client_satisf = %invent_0 = 0 FIN

Caso contrario: Llegada_cliente(Z)

3. – Sucesos siguientes

MIENTRAS SEA: [Tsuc.tp <> M] O [TScuc.tc <> M] SI TSuc.tc < TSuc.tp tsuc = TSuc.tc TSuc.tc = M Llegada_cliente(tsuc) SI TSuc.tp < TSuc.tc tsuc = TSuc.tp TSuc.tp = M Llegada_pedido(tsuc)

4. – Cálculo de las medias de comportamiento del sistema

beneficio = R – C – H %invent_0 = t0 / t %client_satisf = NC+ / (Nc+ + Nc-) FIN

SUBRUTINAS En Llegada_cliente() lo primero que debe realizarse es actualizar los costos de almacen hasta ese momento dependiendo del nivel de inventario x desde el suceso anterior (guardado en t) hasta este instante. Luego se actualiza el tiempo de simulación, se genera la demanda del cliente que acaba de llegar y se comprueba si se puede satisfacer. Si el inventario alcanza, se realiza la venta completa, actualizando la variable, disminuyendo el nivel de inventario en la cantidad demandada y se contabiliza como cliente satifecho. En el caso que no alcance el inventario, se vende el resto del depósito, se pone el inventario en 0, se cuenta como cliente insatisfecho y se guarda en var_nivel0 el instante para poder contar el tiempo en que el inventario estuvo en cero. Finalmente, se haya satisfecho totalmente o no el pedido, quedan dos pasos: uno, se verifica si el nivel del inventario en ese momento en más chico que p. Si es así y además no hay pedidos pendientes se solicita la cantidad P – x y se guarda en la lista de sucesos el instante en que llegará el nuevo pedido (tiempo actual más L). Segundo, generar el tiempo que transcurre hasta la llegada del nuevo cliente y verificar si este acontecimiento cae o no dentro del plazo máximo de simulación T.

Llegada_clientes() H = H + (tsuc – t) * h * x t = tsuc Generar demanda G SI demanda <= x R = R + demanda * r x = x – demanda Nc+ = Nc+ + 1 SI NO R = R + (x*r) x = 0 Nc- = Nc- + 1

Page 83: BOOK MODELOS Y SIMULACIÓN

Pág.: 82 / 83

var_nivel0 = t SI x <= p AND y = 0 y = P – x TSuc.tp = t + L Generar Y Exp(λ) SI t + Y < T TSuc.tc = t + Y VOLVER

La segunda subrutina, Llegada_pedido() se refiere a la llegada de un pedido al sistema en el momento contado desde el tiempo en que fue pedido más el tiempo guía. Se deben actualizar los costos de almacen hasta ese momento, actualizar el tiempo, actualizar el pago al proveedor, dependendiendo del número de unidades que llegaron y, se aumenta el nivel del inventario, se pone en cero las pendientes de entrega y se calcula el tiempo en que el nivel de inventario fue cero si estaba en ese valor restando el tiempo actual y el guardado en var_nivel0

Llegada_pedido() H = H + (tsuc – t) * h * x t = tsuc C = C + c(y) x = x + y y = 0 SI var_nivel0 < t t0 = t0 + (t – var_nivel0) var_nivel0 = M VOLVER

Page 84: BOOK MODELOS Y SIMULACIÓN

Pág.: 83 / 83

Capítulo 7 – Lenguajes de Simulación A pesar de que para construir simuladores se puede utilizar cualquier lenguaje de

programación con razonable capacidad matemática, se han desarrollado software específico

para simulación de sistemas discretos.

Si son lenguajes específicos, son comparables a C+, Pascal, etc. pero tienen capacidades y

herramientas especiales que facilitan la tarea de simular.

Algunas herramientas son:

Mecanismo de reloj

Métodos para secuencias los sucesos que ocurren

Generador de números y variables aleatorias

Recolección y análisis estadístico del uso de recursos y entidades

Herramientas para validar el modelo

La desventaja de estos paquetes suelen ser: precio, velocidad baja de ejecución, poca

disponibilidad para diferentes SO.

Se clasifican en función de que estrategia utilizan para el reloj del sistema:

1.- Por programación de sucesos. El programador detalla las acciones asociadas a la ocurrencia

de cada suceso. El lenguaje automatiza el proceso de muestreo a partir de las distribuciones,

cronología, recuperación de sucesos y recopilación estadística. (GASP, SLAM, SIMAN)

2.- Orientados a procesos. Usan bloques que se pueden unir y forman una red que describe el

flujo de movimiento u operaciones.. Se basan en un enfoque de caja negra sobre procesos de

entrada y salida. Son más fáciles de usar y simples, aunque menos flexibles. (GPSS, SIMULA,

SIMNET II)

3.- Combinados. MODSIM, SIMSCRIPT II.5

4.- Simuladores, o paquetes de sencillo manejo aplicado a situaciones específicas: LANNET II.5

desarrollado para redes locales a partir de SIMSCRIPT; SIMFACTORY y AUTO MOD para

sistemas de fabricación.

Se han desarrollado simuladores de propósito general. Dos de ellos, muy utilizados, permiten

incluir componentes discretos y continuos simultáneamente:

EXTENDED SUITE y ARENA (http://www.arenasimulation.com) que permiten describir

gráficamente el modelo y facilitan la implementación mediante la importación de librerías y

bloques, conectado para ver el flujo de entidades y uso de caja de diálogo.

(fin provisorio, se está trabajando en completar este capítulo. 1 de octubre 2012, Alejandro)