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.