domingo, 19 de abril de 2009

Simulación

Definición
La simulación tiene como principal objetivo la predicción, es decir, puede mostrar lo
que sucederá en un sistema real cuando se realicen determinados cambios bajo
determinadas condiciones.

La simulación se emplea sólo cuando no existe otra técnica que permita encarar la
resolución de un problema. Siempre es preferible emplear una alternativa analítica antes
que simular. Lo anterior no implica que una opción sea superior a otra, sino que los
campos de acción no son los mismos. Mediante la simulación se han podido estudiar
problemas y alcanzar soluciones que de otra manera hubieran resultado inaccesibles.

La simulación involucra dos facetas:
1) Construir el modelo
2) Ensayar diversas alternativas con el fin de elegir y adoptar la mejor en el sistema real,
procurando que sea la óptima o que por lo menos sea lo suficientemente aproximada.

FASES QUE COMPRENDE TODO ESTUDIO
QUE UTILIZA LA SIMULACION

1) Definición del sistema con el máximo de detalle

Es un principio comprobado de organización que la incidencia de un error en un
proyecto aumenta dramáticamente con el instante en que se lo descubre. Es decir,
cuánto más se demora en detectarlo mucho más complicada es su corrección.
Se debe discutir en detalle el sistema; analista y usuario reunidos durante largas
horas evitarán que el sistema tenga que ser redefinido después.
En esta etapa se definen los límites del sistema y los objetivos del estudio,
chequeando que estos no cambien durante el desarrollo del mismo.
Deben tenerse en cuenta las condiciones iniciales del sis-tema y sus condiciones de
régimen. Interesa estudiarlo ya en régimen y no inicialmente cuando los recursos están
desocupa-dos y favorecen el movimiento de los elementos por el sistema.
El modelo debe considerar qué resultados estadísticos interesan obtenerse para
evaluar correctamente al sistema en estudio.
Ejemplos: tiempos en cola, longitudes de las colas que se forman en los distintos
sectores, tiempo que está cada cliente en el sistema, promedios, desviaciones standard,
etc.

2) Elección del método para realizar el estudio

• Búsqueda de la herramienta analítica de resolución.
• Adopción de la misma en caso de encontrarla.
• Utilización de la simulación como última alternativa.

3) Variables a incluir en el modelo

¿Qué variables, parámetros se incluyen? ¿Cuáles se desprecian por su irrelevancia?.
La elección no es sencilla.
Conviene hacer un ranking de las variables y restricciones del sistema en orden de
importancia.
Este ranking debe ser discutido con el usuario y con los distintos especialistas a fin de
proceder a su verificación y eventual corrección.
Se debe recordar que quitar una variable superflua de un sistema es algo bastante
sencillo, mientras que incluir una que se había despreciado es de ordinario mucho más
complicado.
Tomar debida cuenta de los casos especiales ¡muchas veces estos obligan a tener
en cuenta variables despreciables para el resto de los casos!.
Esta selección de variables a considerar depende de la mecánica con que se maneja
el sistema, de la experiencia que se tenga de él e incluso de la intuición del grupo
humano que interviene en el estudio.
Se debe evitar una sobresimplificación que invalida al modelo en cuanto se lo quiere
ensayar con casos especiales, o una sobreespecificación que hace largo y difícil el
trabajo de construir el modelo.
Todas las variables que intervienen en un modelo son medibles. No siempre es
posible lo mismo con las que intervienen en un sistema real. Muchas veces se debe
hacer una estimación de las mismas con el fin de incorporarlas en el modelo.
Existen variables endógenas (internas y controladas por el sistema) y exógenas
(externas al sistema y fuera de su control).
Existen variables cualitativas, como la preferencia personal y cuantitativas como la
frecuencia con que arriban los clientes a un banco. Todas deben ser estimadas en
términos cuantitativos.

4) Recolección y análisis de los datos del sistema

Definidas las variables intervinientes en el sistema es habitual que existan muchas
variables estocásticas.

Para esas variables se debe disponer de:
• la densidad de probabilidad o
• la función de distribución acumulativa en forma matemática o
• una tabla de valores del comportamiento de la variable.

Se utiliza para ello todas las herramientas estadísticas clásicas, tales como, análisis
de regresión, de serie de tiempos y de varianzas.
Se debe hacer un relevamiento del tiempo que se insume en las distintas tareas
tratando de no obtener datos distorsionados producto de la medición (la persona trabaja
más rápido o más lento debido a que lo están midiendo y le parece más conveniente
mostrarse en forma distorsionada).
Si se tiene el valor medio de una medición y no se conoce su distribución, es
preferible adoptar una distribución exponencial que una uniforme, pues en la primera,
pueden darse situaciones críticas que no se dan en la segunda.
El tiempo empleado validando los datos de entrada está totalmente justificado y es
absolutamente necesario para construir un modelo válido sobre el cual se puedan sacar
conclusiones aplicables al sistema real.

5) Definición de la estructura del modelo

Se definen:
• Las entidades permanentes y sus atributos, es decir, los recursos con que se cuenta
en el sistema y cuantitativamente cómo es su comportamiento.
• Las entidades transitorias que circulan por el modelo tienen definida
probabilísticamente su ruta por el sistema y los tiempos de utilización de los recursos.
• Los eventos que provocan los cambios de estado, modificando los atributos de las
entidades.
Se debe diseñar el modelo de manera que los cambios en su estructura estén en
cierto modo previstos.

6) Programación del modelo

Objetivo: obtención del programa de computadora que representa el modelo.
Se debe elegir el lenguaje con que se construirá el modelo.
Una vez elegido, se lo utiliza para construir el modelo, que debe representar
fielmente todo lo que ha sido relevado del sistema.

7) Validación del modelo

Aunque imposible de demostrar rigurosamente se trata de verificar al modelo con una
serie de situaciones conocidas como para tener un alto grado de confiabilidad.

8) Análisis y crítica de los resultados

Paso previo a la entrega de resultados al usuario se debe:
• Verificar que los resultados obtenidos sean realmente suficientes para tomar una
correcta decisión.
• Hacer una buena compactación en la presentación de los mismos procurando que
sean perfectamente comprensibles para el usuario.
• Recordar que un exceso de información ocasiona casi los mismos inconvenientes que
la falta de información, ya que el usuario en ambos casos no puede acceder a los
resultados que necesita como apoyo a la toma de decisiones (en un caso porque no
sabe como accederlos, en el otro porque no los tiene).
• Estudiar la factibilidad, y, en caso afirmativo, proponer una alternativa que signifique
un cambio estructural del sistema y por ende del modelo la que se considera digna de
tener en cuenta antes de tomar una decisión definitiva.

SIMULACION: ¿ARTE O CIENCIA?

Simular es un arte, una ciencia "soft", ya que la utilidad de esta técnica depende
mucho de la experiencia que tenga el grupo humano que realiza la simulación.
• Hasta ahora no hay teoría científica que garantice la validez del proceso de simulación
antes que este se realice.
Para validar el modelo se ensayan alternativas conocidas (vividas realmente) y se
comparan los resultados. La coincidencia de los mismos hablarán de la validez del modelo
para representar el sistema real.
Si los resultados que el modelo arroja sobre una de esas alternativas vividas no
coinciden con los reales quedará demostrada la invalidez del modelo. Lo contrario no es
cierto. Aún cuando haya coincidencia de resultados en una cantidad grande de pruebas no
es posible afirmar que lo será para la totalidad de los ensayos.
Es interesante adoptar como criterio de trabajo el hacerse una idea de los resultados
de un ensayo antes de realizar el mismo
Ejemplo: en la ventanilla de informes se produce un cuello de botella con 10 personas
término medio en cola, en las cajas hay como máximo tres personas en cola, una persona
demora unos 10 minutos en hacer el trámite.
Al tenerse los resultados se los juzgará más imparcialmente, evitando aceptarlos
porque "la máquina así lo puso y no se equivoca". Teniendo los resultados de antemano
hay obligación de aceptar la discrepancia y por consiguiente exigir modificar el modelo de
manera que esta no se produzca.
• Una vez construido un modelo, fiel representación de un sistema, es posible crear una
historia artificial del sistema simulando aquellos hechos cuya implicancia se desea
observar, examinar e incluso prevenir.
El conjunto de estas alternativas brinda la posibilidad al que realiza los ensayos de
llegar a ser un conocedor experimentado del sistema (sin que este tenga necesidad de existencia
real).
Ejemplo: Los simuladores de vuelo. Da experiencia en situaciones de emergencia e
incluso de catástrofe, midiendo y mejorando la pericia del piloto (por supuesto, que las
condiciones de "stress" no son las mismas, lo cual puede alterar la validez de los
resultados obtenidos).
• Una mala selección de alternativas a ensayar puede dar una experiencia inútil o magra.

VENTAJAS DE LA SIMULACION

• Permite:
- Adquirir una rápida experiencia a muy bajo costo y sin riesgos. No se compromete la
confiabilidad del sistema en los ensayos (las aglomeraciones, las largas demoras son
simuladas y no reales).
- Identificar en un sistema complejo aquellas áreas con problema ("cuellos de botella")
- Un estudio sistemático de alternativas (variaciones uniformes en los parámetros
intervinientes imposibles de lograr en un sistema real).
- Utilizarse en "training" para gerentes/ejecutivos. Un modelo de "juego de empresas" les
permite probar sus medidas en el modelo y ver sus resultados luego de pasado el
período simulado. Se repite el proceso durante varios períodos y cada ejecutivo observa
los resultados de sus decisiones. Se analizan errores, se comparan estrategias hallando
ventajas y desventajas de cada una. Excelente herramienta para instrucción y
entrenamiento de ejecutivos.
- Ensayar estrategias de guerra, faceta donde primero se empleó la simulación
(operaciones de guerra en las llamadas maniobras).
En los "juegos de guerra" los oficiales superiores ensayan operaciones de las
fuerzas armadas en los campos de batalla. Analizados los resultados se ensayan
nuevas operaciones hasta completar la batalla o incluso la guerra. Permite, al igual que
el "juego de empresas", analizar errores y comparar estrategias. Todo ello realizado a
bajísimo costo.
• No tiene límite en cuanto a complejidad. Cuando la introducción de elementos estocásticos
hace imposible un planteo analítico surge la modelización como único medio de atacar el
problema. Todo sistema, por complejo que sea, puede ser modelizado, y sobre ese modelo
es posible ensayar alternativas.
• Puede ser aplicada para diseño de sistemas nuevos en los cuales se quieren comparar
alternativas muy diversas surgidas de utilización de diferentes tecnologías. Puede
utilizarse, durante la vida de un sistema, para probar modificaciones antes que estas se
implementen (si es que los resultados de la simulación aconsejan su uso).

DESVENTAJAS DE LA SIMULACION

• No se lo debe utilizar cuando existan técnicas analíticas que permitan plantear, resolver y
optimizar todo el sistema o alguna parte del mismo.
Existe un gran deseo de incluir todo en la simulación donde los resultados son visibles
y comprendidos por todas las personas (especialistas o no), las cuales gustan hacer
ensayos.
• No es posible asegurar que el modelo sea válido:
Se corre el riesgo de tomar medidas erróneas basadas en aplicar conclusiones falsas
obtenidas mediante un modelo que no representa la realidad.
• No existe criterio científico de selección de alternativas a simular (Estrategia).
Es posible omitir una buena sugerencia de innovación simplemente porque a nadie se
le ocurrió ensayarla.
• Existe el riesgo de utilizar un modelo fuera de los límites para el cual fue construido,
queriendo realizar ensayos para el cual el modelo no es válido.
Es posible elaborar todo un gran andamiaje de pruebas y resultados falsos, basados
en un modelo confiable y válido bajo otras condiciones.
Simulación por computadora

LA COMPUTACION HERRAMIENTA IMPORTANTE PARA SIMULAR
El advenimiento de las computadoras significó un gran empuje para la utilización de la
simulación como auxiliar importante en la concreción de proyectos.
Realizado el programa que representa al sistema que se quiere estudiar, ensayar
alternativas no es otra cosa que dar los datos a la máquina para que esta imprima los
resultados.
Utilizando los lenguajes de programación de uso universal (FORTRAN, PASCAL,
BASIC, COBOL, ALGOL, PL/I, etc.) la construcción de modelos no es sencilla.
En cambio, si se usa un lenguaje orientado a la simulación (preparado para
construir modelos donde se pueda simular) el esfuerzo, según se estima, se reduce a la
décima parte.
Un lenguaje orientado a la simulación debe manejar:
1) Fácilmente al modelo, permitiendo el ensayo de alternativas.
2) El tiempo "simulado" (meses, días, horas, segundos, milisegundos).
3) Eventos, es decir, acciones que provocan los cambios de estado:
Los cambios de estado se materializan por dos eventos:
el de comienzo y el de finalización.
La acción está definida por:
instante de comienzo y duración.
El lenguaje se encarga de hacer finalizar la acción.
4) Variables random fácilmente definibles, generadas en forma automática por el lenguaje.
5) Acumulación/cálculo/impresión de estadísticas de las entidades intervinientes en el
sistema.
6) El estado del sistema en cualquier instante (imprimiéndolo en caso necesario).
7) La extensión del período de simulación.

LENGUAJES ORIENTADOS A LA SIMULACION

Citados por orden de aparición:
1) General Purpose Simulation System (GPSS) desarrollado por Geoffrey GORDON (IBM)
tuvo su primera versión en 1961, desarrollada en lenguaje de máquina. Actualmente
existe también una versión para PC (desarrollada por Minuteman Software).
2) SIMSCRIPT, desarrollado por B. DIMSDALE, H. M. MARKOWITZ, B. HAUSNER, y H. W.
CARR (RAND Corporation) tuvo su primera versión en 1962. Originalmente estuvo
basado en FORTRAN.
3) SIMULA, desarrollado por O.J. DAHL y K. NYGAARD (NORWEGIAN COMPUTING
CENTER, OSLO) tuvo su primera versión en 1965. Desarrollado como una extensión de
ALGOL.
4) SIMPL/I un lenguaje de simulación basado en PL/I, introducido por IBM en 1972.
También pueden citarse:
1) A General Activity Simulation Program (GASP), basado también en lenguaje FORTRAN.
Fue desarrollado por Philip J. KIVIAT y puede ser utilizado en cualquier máquina que
posea compilador FORTRAN.
2) SIMULATE, lenguaje escrito en FORTRAN IV, por Charles C. HOLT y otros colaboradores
del SOCIAL SYSTEMS RESEARCH INSTITUTE, de la Universidad de WISCONSIN,
utilizado para construcción de modelos econométricos, los que contienen mecanismos
complejos de retroalimentación.
3) General Simulation Program (GSP), desarrollado por el Dr. K. D. TOCHER y sus colegas
de la empresa UNITED STEEL COMPANIES LTD de INGLATERRA (1960) escrito para la
computadora Ferranti Pegasus y la Elliot 503, se usó en Europa y el Reino Unido.
Posteriormente para la máquina Elliot surgió el ESP desarrollado para ALGOL y para la
Ferranti Pegasus I el MONTECODE (usado para planeamiento industrial).
4) Control and Simulation Language (CSL), un lenguaje desarrollado en base a FORTRAN
por John BUXTON, extendido por Alan CLEMENTSON.
En modelos representados por ecuaciones, se puede citar:
1) DYNAMO (Dynamic Models), desarrollado por Phyllis FOX y Alexander L. PUGH del
MASSACHUSETTS INSTITUTE of TECHNOLOGY (M.I.T.) Utiliza ecuaciones
diferenciales de primer orden para aproximar procesos continuos. Es apropiado para
simular cierto tipo de sistemas dinámicos de información con retroali-mentación, definibles
con un conjunto de ecuaciones de diferencias finitas. Se lo ha usado mucho para simular
sistemas económicos de gran escala (modelos econométricos); se lo puede usar en
modelos biológicos, físicos y sociales.
2) CSMP (Continuos System Modeling Programs), desarrollado por IBM, en una mezcla con
FORTRAN; DSL/90 (Digital Simulation of Continuos Systems); MIMIC; BHSL (Basic
Hytran Simulation Language); DIHYSYS para Borroughs B5500 son lenguajes orientados
a resolver problemas planteados con ecuaciones diferenciales.

No hay comentarios: