domingo, 3 de junio de 2012


RESUMEN PAPER

HOW TO BUILD VALID AND CREDIBLE SIMULATION MODELS

Autores: Averill M. Law; Michael G. McComas.
 

Presentado Por: Jorge Andrés Prada.
Presentado A: Profesor Cesar Aceros


CÓMO CONSTRUIR MODELOS DE SIMULACION VALIDOS Y CREIBLES.

El uso de un modelo de simulación es un sustituto para la experimentación con el sistema actual (existente o propuesto), que es por lo general perjudicial, no rentable, o simplemente imposible. Por lo tanto, si el modelo no es cercano a la aproximación al sistema actual, las conclusiones derivadas del modelo son probablemente erróneas y puede resultar en decisiones costosas.

La validación debe y se puede hacer para todos los modelos, independientemente de si el sistema correspondiente existe en alguna forma o si se construirá en el futuro. Damos ahora las definiciones de la validación y la credibilidad. La validación es el proceso de determinar si un modelo de simulación es una representación exacta del sistema, para los objetivos específicos del estudio. Las siguientes son algunas perspectivas generales sobre la validación, como es conceptualmente, si un modelo de simulación es "válido" entonces, este puede ser utilizado para tomar decisiones sobre el sistema similar a los que se haría si fueran viables y rentables para experimentar con el sistema mismo, además la facilidad o dificultad del proceso de validación depende en la complejidad del sistema que se modela y de si una versión del sistema actualmente existe, por otra parte un modelo de simulación de un sistema complejo sólo puede ser una aproximación al sistema actual, no importa cuánto tiempo y dinero se gasta en la creación del modelo. No hay tal cosa como la absoluta validez del modelo, tampoco es deseada. En efecto, un modelo se supone que es una abstracción y la simplificación de la realidad. Cuanto más tiempo (y dinero) que se gasta en el desarrollo del modelo, el modelo más válido debería ser general. Sin embargo, el modelo más válido no es necesariamente el más rentable. Por ejemplo, aumentando la validez de un modelo más allá de un cierto nivel podría ser bastante caro, ya que la recolección de datos extensos puede ser requerida, pero no podría dar lugar a mejores percepciones o decisiones. Un modelo de simulación siempre debe ser desarrollado para un conjunto particular de los objetivos. De hecho, un modelo que es válido para un objetivo no puede serlo para otro, y la validación no es algo que deba ser intentada después de que el modelo de simulación ya se ha desarrollado, y sólo si hay tiempo y dinero .Por desgracia, nuestra experiencia indica que esta recomendación no es seguida a menudo.

Un modelo de simulación y sus resultados tienen credibilidad si la toma de decisiones y el otro personal clave del proyecto las acepta como "correcto". Tenga en cuenta que un modelo creíble, no es necesariamente válido, y viceversa. Los siguientes factores ayudan a establecer la credibilidad de un modelo como son el entendimiento y el acuerdo de quien toma las decisiones, con las suposiciones del modelo, la demostración de que el modelo ha sido validado y verificado (es decir, que el modelo de programa de computador se ha depurado) y la toma de decisiones del dueño y su inclusión en el proyecto, y la reputación de los desarrolladores del modelo.

Las directrices para la obtención de un modelo de datos nos informan que un modelo sólo es válido para una aplicación en particular si su lógica es correcta y si utiliza los datos apropiados. Aquí ofrecemos algunas sugerencias sobre cómo obtener unos buenos datos del modelo, por ejemplo si un sistema similar al de  interés existe, entonces los datos se deben obtener de éste para su uso en la construcción del modelo. Estos datos pueden estar disponibles a partir de registros históricos o tienen que ser recogidos durante el tiempo de estudio. Dado que las personas que proporcionan los datos pueden ser diferentes de los analistas de la simulación, es importante que los dos principios siguientes se tengan en cuenta, como son que los analistas deben asegurarse de que los requerimientos de los datos (tipo, formato, cantidad, etc.) sean especificados con precisión a las personas que proporcionan los datos y que los analistas necesiten entender el proceso que produjo los datos, en lugar de tratar a las observaciones sólo como números abstractos.

Todos los modelos de simulación necesitan ser validados o cualquier otra decisión hecha con el modelo puede ser errónea. Las siguientes son las ideas que creemos que son los más importantes para el desarrollo de un modelo válido y creíble como son el formular el problema con precisión y entrevistar a expertos idóneos en la materia al igual que interactuar con el que toma las decisiones de forma regular  en todo el proyecto de simulación para asegurar que el problema se resuelve correctamente y para fomentar la credibilidad del modelo así como también el desarrollo de un modelo conceptual por escrito y la realización de un programa estructurado a pie-a través del modelo conceptual - de un sistema inexistente, este puede ser el factor más importante de la técnica de validación y la realización de análisis de sensibilidad para determinar los factores de modelo importantes y también comparar el modelo y los resultados del sistema de un sistema existente (si existe) - esto es, en general, la técnica de validación definitiva más disponible al igual que revisar los resultados del modelo y animaciones para ver si ellas parecen razonables.

Muchas de las ideas anteriores parecen ser de sentido común. Sin embargo, nuestra experiencia indica que no se aplican a menudo.

A continuación se muestra un método de siete pasos para lograr una simulación exitosa.
 

1.            Formular el Problema.

2.            Recolectar Información y construir el Modelo Conceptual.

3.            Validar el Modelo Conceptual.

4.            Programar el Modelo Conceptual.

5.            Validar el modelo programado.

6.            Diseñar, Realizar y Analizar los Experimentos Simulados.

7.            Documentar y presentar resultados.
 

A continuación se muestra un listado de actividades importantes para desarrollar modelos validos y creíbles.


1. Formular de manera precisa el problema.

2. Entrevistar a expertos de la materia o tema.

3. Interactuar sobre los fundamentos con quien toma las decisiones.

4. Usar técnicas cuantitativas para validar los componentes que conforman el modelo.

5. Documentar el Modelo Conceptual.

6. Realizar un acompañamiento estructurado del Modelo Conceptual.

7. Realizar un Análisis de sensibilidad para determinar los factores más relevantes del modelo.

8. Validar los resultados del modelo de simulación general.

9. Usar gráficas y animaciones de los datos resultantes de las simulaciones cuando sea posible.

10. Usar herramientas estadísticas para comparar los resultados del modelo con lo que se desea modelar.

LABORATORIO No.4 DE SIMULACION

 Presentado Por: Jorge Andrés Prada.

Presentado A: Profesor Cesar Aceros



LABORATORIO No.4:

“SIMULACION  DEL ASCENSOR”



OBJETIVO GENERAL:

Entender las partes que involucran una simulación y los alcances de la misma.


PROCEDIMIENTO:

1) Baje el archivo (link) que fue obtenido de Matlab Central (link).
2) Escriba las limitaciones que tiene el modelo.
3) Reescriba el código con una versión mejorada que incorpore menos restricciones de las del modelo original. Pero que incluya el siguiente factor para ser observado.
"Considere que la potencia consumida por cambiar un piso es 20 Watts/h y contabilice los costos de energía del elevador."
4) Analice resultados y consígnelos en su blog.

DESARROLLO


1  1. RTA.  Se descargó la simulación del ascensor y se ejecutó en matlab como se muestra en la figura siguiente.

 Figura1. Simulación Ascensor Original.


2.    RTA. Las limitaciones encontradas en el modelo del ascensor corresponden a:
§  El elevador siempre solo lleva las personas de abajo hacia arriba, no lleva personas de arriba hacia abajo. Cuando llega al piso deseado deja las personas y regresa al primer piso.
§  No es posible seleccionar el número de pasajeros deseado que suben y bajan del elevador.
§  Solo realiza una sola parada en cada ascenso.
§  No posee restricción de peso en el elevador.


3.    RTA. Se realizó la modificación del modelo del elevador, donde se eliminaron algunas restricciones,  se incluyó el factor de cálculo de la potencia consumida por cambio de piso de 20 Watts/h y se contabilizaron los costos de energía del elevador. Un video del modelo mejorado del ascensor se muestra en el siguiente link.

    
     


     El elevador mejorado realiza hasta tres paradas por subida.


4.    RTA.  El modelo del elevador permite dimensionar la potencialidad de las herramientas de simulación para representar la realidad y estudiar su comportamiento.
Representar la realidad en un 100% mediante herramientas de simulación es una tarea compleja por no decir imposible, por tal motivo en el desarrollo del modelo de simulación es necesario hacer ciertas simplificaciones que viabilicen el modelamiento de la realidad y hacer énfasis con mayor detalle en las características más relevantes que son el objeto de estudio.

La simulación permite identificar aspectos críticos que a simple vista no es posible evidenciarlo, en algunos casos la simulación permite corroborar comportamientos que se deducen de la teoría.

domingo, 8 de abril de 2012


LABORATORIO No.3 DE SIMULACION

Presentado Por: Jorge Andrés Prada.

Presentado A: Profesor Cesar Aceros

APLICACIÓN DE SIMULACION DE ESTADOS

El laboratorio No.3 busca aplicar la simulación de estados al encendido de cuatro (4) lámparas en forma secuencial, cada una de las lámparas enciende y apaga con un periodo T = 4s. El flanco de apagado de cada lámpara activa el flanco de encendido de la siguiente lámpara, de tal forma que cada lámpara tiene un tiempo de encendido de Te=1s.

La simulación se realizó utilizando StateFlow de Matlab, donde las lámparas se representaron con las letras L1, L2, L3 y L4. La simulación consta de 5 estados, un estado inicial denominado “Iniciar” el cual permite arrancar el ciclo de trabajo de las lámparas, los estados restantes se denominaron Estado1, Estado2, Estado3 y Estado4, en los cuales se realiza el encendido de las lámparas L1, L2, L3 y L4 respectivamente.          

Se configuraron dos (2) entradas y cuatro (4) salidas: una entrada local de retardo denominada “retardo”, una entrada de reloj denominada (CLK) y cuatro salidas correspondientes al encendido de cada lámpara tal y como se indicó anteriormente L1, L2, L3 y L4.

A continuación se presenta el diagrama general de la máquina de estados para el encendido secuencial de las cuatro lámparas, ver Fig.1




Fig.1.Diagrama General Maquina de Estados del encendido secuencial de 4 lámparas.


La programación del bloque de la carta de estado se realizó utilizando el siguiente código en stateflow de Matlab:
 

Estado: Iniciar

             exit:retardo=1;                                                                            

Estado: Estado1

             entry:L1=5;L2=0;L3=0;L4=0;

             exit: L1=5;L2=0;L3=0;L4=0;

Estado: Estado2

             entry:L1=0;L2=5;L3=0;L4=0;

             exit: L1=0;L2=5;L3=0;L4=0;

Estado: Estado3

             entry:L1=0;L2=0;L3=5;L4=0;

             exit: L1=0;L2=0;L3=5;L4=0;

Estado: Estado4 (Vuelve a Estado1)

             entry:L1=0;L2=0;L3=0;L4=5;

             exit: L1=0;L2=0;L3=0;L4=5;

La figura 2 muestra la interfaz de configuración de la simulación del encendido secuencial de las cuatro (4) lámparas en stateflow.


Fig.2.Diagrama Interno de la Carta de Estados del encendido secuencial de 4 lámparas.

La figura 3 muestra el comportamiento de las cuatro lámparas, las cuales encienden en forma secuencial con periodo de T=4s, en una simulación de 20 segundos.

Fig.3.Visualización del encendido secuencial de 4 lámparas.
Se presenta el video de la simulación con un vínculo en www.youtube.com:


sábado, 24 de marzo de 2012


RESUMEN DEL ARTICULO
“SPREADSHEET SIMULATION”
DEL AUTOR ANDREW SEILA

SIMULACION CON HOJAS DE CÁLCULO
PRESENTADO POR: JORGE A. PRADA


RESUMEN.

El artículo de Andrew Seila se refiere al uso de las hojas de cálculo (Spreadsheet) para la programación y configuración de simulaciones de modelos y experimentos. Se discute la importancia de las hojas de cálculo para la simulación sus fortalezas y debilidades para algunos escenarios, también se muestra como construir un modelo en una hoja de cálculo.


INTRODUCCION.

El articulo utiliza la definición de Simulación dada por Fishman (1996), la cual menciona que una simulación es un experimento muestrado que es realizado sobre un computador. Este experimento contiene variables que no se pueden predecir a simple vista y requieren de un procesamiento computarizado para conocer y en algunos casos estimar su comportamiento.

Las hojas de cálculos han existidos desde los inicios de los mainframes evolucionando cada vez mas estando disponibles para los diferentes sistemas operativos que se disponen en la actualidad.

Desde sus inicios las hojas de cálculo se han basado en el arreglo de celdas referenciadas por filas y columnas, permitiendo un manejo de la data en forma interactiva.

Las hojas de cálculos son usadas ampliamente y han sido una herramienta fundamental de negocios, sin embargo un gran porcentaje del gremio de los ingenieros no la han adoptado como herramienta para simulación esto se ha debido al entrenamiento en herramientas más poderosas matemáticamente como MATLAB.


POR QUE USAR UNA HOJA DE CALCULO PARA SIMULACION DE MODELOS?.

Las simulaciones se realizan sobre plataformas de simulación que corresponde al software que permite crear y correr las simulaciones de los modelos y experimentos, estas plataformas deben estar dotadas de las siguientes capacidades como mínimo:

§  Una forma de representación lógica y matemática de las relaciones entre las variables que constituyen el modelo.

§  Una forma de generación de números pseudo aleatorios uniformemente distribuidos.

§  Medios que permitan la repetición de la ejecución computacional del modelo.


Las siguientes características están disponibles en la mayoría de hojas de cálculo para hacer los procesos de simulación más rápidos y confiables:

§  Un gran número de funciones matemáticas, estadísticas, de base de datos, fecha/hora, financieras y otros cálculos.

§  Representaciones de base de datos y accesos a bases de datos.

§  Gráficas y cartas.

§  Características de documentación y de presentación, fuentes, colores, figuras geométricas etc.

§  Automatización mediante lenguajes de programación de alto nivel tal como lo es VBA para Excel.

Estas capacidades y características que poseen las hojas de cálculos satisfacen las necesidades para crear y correr al menos un gran número de simulaciones. El tratamiento mediante tablas y celdas de las hojas de cálculo las hacen aun más intuitivas convirtiéndolas en una herramienta poderosa para simulación.

CUANDO USARIA UNA HOJA DE CALCULO PARA HACER SIMULACION?  

Las hojas de cálculo son ampliamente usadas para la simulación en muchas áreas de las ciencias, partiendo de las áreas financieras, económicas hasta ingenierías, medicina etc.

Se utilizan ampliamente en el desarrollo de modelos estocásticos, donde se requiere conocer los rangos de respuesta para un gran número de entradas al modelo. Las hojas de cálculo son usadas con preferencia en los análisis de sensibilidad de modelos.
 

COMO PROGRAMAR Y CONFIGURAR UNA SIMULACION EN UNA HOJA DE CALCULO?.

Las celdas en una hoja de cálculo pueden ser clasificadas por su contenido, de esta forma es muy sencillo etiquetar y manejar de forma sistemática las variables y módulos que conforman el modelo:

§  Entradas al modelo.

§  Módulos de cálculo intermedios.

§  Salidas del Modelo.

Cada uno de las variables y módulos intermedios pueden ser configurados y programados en forma intuitiva utilizando las hojas de cálculo que conforman el archivo de simulación creado en la plataforma de simulación.

Las herramientas asociadas a la hoja de cálculo permiten fácilmente crear la data necesaria para el modelo,  rutinas de simulación y presentación de resultados.

La creación de tablas en las hojas de cálculo organizan en forma sistemática el tratamiento de los datos de entrada y salida del modelo, las funciones matemáticas y lógicas contenidas en la plataforma de simulación permiten la creación de las lógicas y algoritmos requeridos por el modelo y finalmente las tablas, gráficas y cartas facilitan la interpretación de los resultados y la toma de decisiones mediante el uso del modelo y la simulación de este.
 

ADD-INS PARA SIMULACION EN LAS HOJAS DE CÁLCULO.

Existen unos mini programas especiales llamados ADD-INS que son creados para cada requerimiento en particular y brindan el complemento en librerías de programación, funciones matemáticas especiales, interfaces etc. que son instalados rápidamente en la hoja de cálculo y contribuyen a viabilizar y fortalecer al modelamiento de escenarios específicos, que requieren de adicionales para su programación y configuración que no están incluidas en los paquetes básicos de las hojas de las hojas de cálculos.



CUANDO NO USAR UNA HOJA DE CALCULO PARA SIMULACION?.

Existen varios criterios que se podrían evaluar para definir cuando no se usaría una hoja de cálculo para simulación entre estos se presentan:

§  Alta complejidad en las ecuaciones de cálculo matemático y estadístico que conforman el modelo que se desea simular.

§  Altos volúmenes de datos que superan los límites de las hojas de cálculo para manejar información en forma eficiente.

§  Acceso a la simulación en arquitecturas distribuidas complejas que requieren acceso concurrente.


CONCLUSIONES.

Actualmente la simulación es usada por un pequeño porcentaje de situaciones, y esto se debe en un gran porcentaje al desconocimiento de las plataformas de simulación y al desconocimiento de las capacidades de las herramientas informáticas de la actualidad.

Las hojas de cálculo se presentan como una alternativa a la mano de muchas personas para la creación de modelos y corridas de simulación de estos, apalancando la toma de decisiones mediante la adecuada interpretación de los resultados.

domingo, 11 de marzo de 2012


LABORATORIO No.2 DE SIMULACION

 Presentado Por: Jorge Andrés Prada.

Presentado A: Profesor Cesar Aceros


GENERACION DE NUMEROS ALEATORIOS.


 LABORATORIO No.2:

1.    Desarrolle un programa que genere secuencias de números pseudoaleatorios siguiendo el método explicado en el laboratorio:


Fig1. Método de generación de números pseudoaleatorios.



Respuesta No.1:

Se desarrolló el programa en Excel donde se generan los números aleatorios siguiendo el método explicado en el laboratorio mostrado en la figura1.

En el generador se distinguen cuatro elementos:

• Xo, es el valor inicial o semilla.
• a, multiplicador, siendo 0 < a ≤ m.
• c, incremento, siendo 0 < a ≤ m.
• m, módulo.



Fig2. Implementación de Método para Generar Números Pseudoaleatorios.


En el siguiente link se comparte el archivo en Excel que genera los números pseudolaeatorios:


Para corroborar los resultados se implementó también el código en MATLAB para hacer los análisis de autocorrelación de los números pseudoaleatorios generados:

clc
close all
clear all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%GENERACION NUMEROS PSEUDOALEATORIA%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a = 4;% Constante Multiplicador.
Xo = 8;% Número Inicial Aleatorio.
c = 0;% Constante Aditiva.
m = 25;% Módulo.
u = zeros(m,1);
for i = 1:(m)
    calculo =((a*Xo)+c);
    u(i,1)= mod(calculo, m);
    Xo=u(i,1);
end
figure(1)
subplot(2, 1, 1),stem(u(1:(m)));
title('NUMEROS PSEUDOALEATORIOS')
xlabel('n')
ylabel('u[n]')
subplot(2,1,2), autocorr(u) ;

% Cálculo de la Media.
n=length(u);
media=sum(u)/n
% Cálculo de la Varianza.
varianza=sum((u-media).^2)/n

El código arrojó la siguiente gráfica en donde se muestran los números generados y la función de autocorrelación, esta última nos permite verificar si el grado de aleatoriedad de los números generados, una de las propiedades de la aleatoriedad es que su función de autocorrelación tiende a un δ(k) (Función Delta de Kronecker) a medida que los estados (valor de m aumenta).  

Fig3. Números Pseudoaleatorios con (a=4, Xo=8, c=0 y m=25).


Al analizar la figura 3 se observa que sigue existiendo una fuerte correlación entre los números generados, de acuerdo a esto se realizó una nueva selección de los parámetros:  “a”, “Xo”, “c” y ”m”,  ajustándolos a:


a = 11;% Constante Multiplicador.
Xo = 16;% Número Inicial Aleatorio.
c = 2;% Constante Aditiva.
m = 25;% Módulo.

y arrojó las siguientes gráficas:

Fig4. Números Pseudoaleatorios con (a=11, Xo=16, c=2 y m=25).

Se observa claramente en la segunda gráfica de la fig.4 que la autocorrelación tiende a un δ(k) (Función Delta de Kronecker), lo cual nos indica que la calidad de la aleatoriedad de los números generados es mejor que los representados en la Fig.3.

2.    Explique otro método para generar números aleatorios.

Respuesta No.2:

El método que se presentó en el numeral No.1 producía números en los que cada término depende del anterior. Ahora se presentará otro tipo de generadores en los que para generar un nuevo término se utilizan dos elementos anteriores en lugar de uno como el mostrado en el punto anterior, este corresponde al “Método Aditivo”.
En este caso la longitud máxima de periodo que se puede alcanzar es mayor, dado que para que se produzca un ciclo es necesario que se repitan parejas de números.

El primer generador de este tipo fue creado en los años 1950 y es la sucesión de Fibonacci que se muestra en la formula anterior.

A continuación se muestra el código y las gráficas para el método aditivo:
clc
close all
clear all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%GENERACION NUMEROS PSEUDOALEATORIA%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a = 4;% Constante Multiplicador.
Xn = 16;% Número Inicial Aleatorio.
Xn_1 = 15
c = 2;% Constante Aditiva.
m = 25;% Módulo.
u = zeros(m,1);
for i = 1:(m)
    if i>1
    Xn_1 = u((i-1),1)   
    end
    calculo =(a*(Xn+Xn_1))+c;
    u(i,1)= mod(calculo, m);
    Xn=u(i,1);
end
figure(2)
subplot(2, 1, 1),stem(u(1:(m)));
title('NUMEROS PSEUDOALEATORIOS')
xlabel('n')
ylabel('u[n]')
subplot(2,1,2), autocorr(u) ;
% Cálculo de la Media.
n=length(u);
media=sum(u)/n
% Cálculo de la Varianza.
varianza=sum((u-media).^2)/n


Fig5. Números Pseudoaleatorios con el método aditivo.