miércoles, 24 de febrero de 2010

Simulación en líneas de espera (colas)

A quien no nos ha pasado que cuando requerimos de un servicio como hacer pagos en el supermercado, el banco, el teléfono, el agua, inscripciones en escuelas, e incluso cuando necesitamos atención telefónica o descargar algún archivo o paquete de un servidor en internet hemos tenido que esperar a recibir el servicio y entonces nos toca ir "a la cola". Una cola es un sistema en el que hay clientes que llegan al sistema mediante un proceso de llegadas, esperan un tiempo en el sistema hasta recibir el servicio requerido, son atendidos por un servidor y finalmente salen del sistema.

¿ Porque es importante estudiar colas ?


Si una empresa necesita poner un nuevo centro de servicio en un lugar especifico, es importante que se tomen las decisiones correctas en cuanto al número de servidores que se instalaran, el espacio que ocuparán, el número promedio de clientes que recibirá, el tamaño limite del sistema, los tiempos de servicio, etc. Si no se hace un análisis previo del comportamiento de estos sistemas pueden ocurrir problemas relacionados con perdida de clientes, demasiados tiempos de espera, muchos servidores desocupados, etc. Un ejemplo particular es el estimulo 1 mostrado en la clase de simulación de sistemas.

¿Qué es teoría de colas?

La teoría de colas es un conjunto de modelos matemáticos que surgen para describir estos sistemas en sus distintas variantes. Si bien la teoría de colas no proporciona una solución directa al problema si contribuye con información vital que se requiere para tomar decisiones importantes concernientes con el desarrollo del sistema. Un modelo típico cumple con los siguientes aspectos:
  • Existe por lo menos una cola de clientes
  • Se establecen el o los procesos de llegadas de los clientes.
  • Se establecen el orden en que son atendidos los clientes.
  • Se define el número de servidores de que dispone el sistema para prestar el servicio.
  • Se definen la distribución de tiempos de servicio de cada servidor (podrían cambiar dependiendo del servidor.)
Procesos de llegadas En los modelos es típico que los tiempos entre llegadas son independientes e idénticamente distribuidos, sin embargo en la vida real esto casi nunca es así ya que la tasa de llegadas típicamente varia con el paso del tiempo. En ejemplo claro es que en un banco el número promedio de clientes que llegan durante el medio día es mayor que el de los que llegan por la mañana o por  la tarde. El tipo de proceso más común de encontrar en los modelos es el llamado proceso de Poisson. Este se caracteriza porque los tiempos entre llegadas siguen la distribución exponencial. Notación para describir una cola
La notación que se usa para identificar una cola es la siguiente: L/S/m/n Donde :
  • L es el proceso de llegadas
  • S es el proceso de servicio
  • m es el número de servidores
  • n es el límite de largo de cola (omitido si es el largo es infinito)
Tipos de colas

Seguramente hemos observado que existen diferentes tipos de colas.
  • En la mayoría de los casos en una cola en la vida real la cola tiene la característica que el servicio se presta en el orden en que los clientes llegaron a la cola, este tipo de cola es denomina FIFO por sus siglas en ingles (first in first out).
  • Existe también el llamado LIFO (last in first out), en este tipo de cola el ultimo en llegar es el primero en ser atendido. Existe un tipo de dato abstracto asociado al principio LIFO y es la pila.
  • PS el servidor atiende por igual a todos los clientes de la fila dedicando una pequeña parte de su tiempo a cada cliente.
  • Por prioridad los clientes con mayor prioridad son los que se atienden primero, una ejemplo típico es una cola en la sala de urgencias, si llega una persona muy grave es la que se atiende primero.
En la vida real existen muchas variantes, por ejemplo todos sabemos que en muchas ocasiones hay personas que se meten en las filas. Servidores y tiempos de servicio Para dar servicio a las clientes que se encuentran en la cola puede haber uno o varios servidores. Además también se presentan los casos en que varias colas comparten servidores o los clientes salen de una cola para pasar a otra cola y en este caso se forman las llamadas redes de colas. Cada servidor tiene tiempos de servicio idénticamente distribuidos y con tiempo de atención promedio finito.
Medidas de interés
Cuando el largo es infinito.
  • Largo de cola
  • Tiempo de espera
  • Número promedio de clientes en el sistema
Cuando el largo es finito implica que si un cliente llega al sistema, este no podrá entrar a la cola y se dice que es rechazado por el sistema. A este tipo de sistemas se les denomina sistemas de rechazo. En estos casos las medidas de interés son:
  • Largo de cola.
  • Tiempo de espera.
  • Probabilidad de rechazo.
  • Número promedio de clientes en el sistema.
  • Número de clientes rechazados por el sistema.

Aplicaciones de la teoría de colas

  1. Investigación agropecuaria: 12
  2. Telefonía
  3. Economía aplicada: 1 .
  4. Producción industrial: 1 .

¿ Cuando es necesario simular colas ?

La teoría de colas sigue en desarrollo y en estos momentos existen muchos resultados para diferentes tipos de colas. Sin embargo, existen sistemas de colas tan complejos que no hay aún resultados establecidos que nos digan como es el comportamiento del sistema. La teoría si bien nos proporciona información general, también es muy restrictiva. En un banco por ejemplo el número de clientes por hora cambia en el transcurso del día, el número de clientes por día cambia en el transcurso de la semana. Es decir, suelen presentarse ciclos ya sea en días, semanas, quincenas. También hay ocasiones en el que queremos estudiar como es el comportamiento de una red de colas. Cuando no tenemos resultados sobre el tipo de cola o sistema de colas que estemos estudiando y cuando queramos verificar resultados, en esos casos es necesario realizar simulaciones.

Simulando una cola

A continuación se presentan algunos resultados de una simulación de una cola realizada durante el curso de procesos estocásticos. Se simula una cola M/M/1 de tal manera se toman como parámetros a λ, μ y la duración total de la simulación t, donde λ es la tasa de llegada de los clientes, μ es la tasa de atención del servidor. Definimos evento como la ocurrencia de una llegada o la conclusión de un servicio en el sistema. En cada una de las siguientes figuras se muestran tres ejecuciones típicas de la simulación . La primera con parámetros λ= 4, μ=6, servidores=1 y la segunda con parámetros λ= 25, μ=5, servidores=1.




En seguida se simula una cola M/M/n/k donde recibes como parámetros a λ, μ, n y k. Para un tiempo mucho mayor de estudio se encontró que solo hay convergencia o estabilidad en el numero promedio de clientes en la cola cuando λ>μ en otro caso. La siguiente figura muestra tres ejecuciones de la simulación así como la línea o valor al que converge el número promedio de clientes en la cola con valores en los parámetros λ= 4, μ=16 y 1 servidor. Las líneas roja,verde y azul son las correspondientes a las simulaciones y la línea rosa es el valor al que convergen. Se encontró que el valor al que convergen es el mismo que el obtenido en teoría de colas.




En la simulación se pudo observar que dado que el tamaño de la cola es finito, siempre se tiene convergencia en el tamaño promedio de la cola. La siguiente figura muestra tres ejecuciones de la simulación y se observa la convergencia en los 3 casos.

miércoles, 17 de febrero de 2010

Simulación en textos

Resumen: A continuación se propone lograr: utilizar el conocimiento referente a fractales y ruido para simular un fenómeno o una característica de forma natural; describir la construcción de la simulación; y buscar si existe una simulación parecida a la que se quiere realizar y hacer comparaciones entre ellas. Algunos temas de interés relacionado son:

¿Como conseguir que una texto escrito en computadora parezca natural?

Al tratar de responder activamente a esta pregunta surgió otra idea de crear nuesro propio tipo de fuente, pero,
¿Como se puede crear tu propio tipo de fuente?.
Al buscar en la web se encontró que existen programas que te permiten hacer esto con facilidad, el método más sencillo consiste en lo siguiente:
  • En la pagina http://www.yourfonts.com/
  • Descargar una plantilla y llenarla con nuestra letra cuidando los margenes establecidos en ella.
  • Escanearla y subirla a la pagina.
  • Se genera un archivo para descargar a la computadora.
  • Se pone el archivo en el directorio donde se encuentran las otras fuentes y listo.
Un inconveniente es que en dicha página te cobran $10 por hacerlo. Sin embargo, tu mismo puedes hacer la plantilla. Lo haces descargando un programa como fontforge, el cual puedes descargar desde el Synaptic Package Manager si tu sistema es Ubuntu, dibujas las letras, generas tu archivo y lo pones con las otras fuentes. ¿Cual es el inconveniente de crear tu tipo de fuente propia? Si una persona escribe muchas veces una sola letra, estas probablemente se pareceran mucho pero no serán identicamente iguales. Encontramos diferencias, defectos o "ruido" en cada una de las letras que escribimos, estos diferencias o variaciones pueden depender de muchos factores que no podemos controlar: estado de ánimo, tipo de papel, tipo de pluma, tinta, friccion, tiempo, etc. Es por ello que a pesar de que tengamos nuestro propio tipo de fuente, esta nunca lucira tan natural como cuando una persona la escribe. Por ejemplo, en el siguiente texto escrito con una fuente creada, todas las a's serian exactamente iguales, y las b's, etc. “Yo solo se que no se nada” Lo mismo pasa con cualquier tipo de fuente. Entonces,
¿Cómo podemos hacer que parezca natural ? Buscando otra solución a nuestro problema surge una nueva idea. Sabemos que un tipo de fuente propio es más parecido a nuestra escritura. Lo que podríamos hacer ahora es crear un programa que lea la figura de nuestro texto y como mencionamos anteriormente crear una imagen del mismo tamaño que la imagen de nuestro texto, pero esta vez "agregarle ruido al texto" ya sea respecto a la altura, longitud, rotación, etc., de tal forma que ninguna o al menos la mayoría de las letras sean diferentes en algo. Inconveniente de este modelo El problema con esta idea es que no podríamos hacer un uso sencillo de este método ya que se sabe que las imágenes que determinan a cada una de las letras y símbolos estan guardadas con un formato vectorial, ya que de no ser así al variar la escala o tamaño de las letras, estas perderían calidad. Otro idea para para buscar escritura natural Debido a que las imágenes de las letras son imágenes vectoriales, existen diversos puntos en la imagen que caracterizan la figura que se forma. Tal vez podríamos intentar modificar esos parámetros (curvatura, posicion relativa, grosor, intensidad de color, etc.) al sumarles un poco de ruido y eso posiblemente nos darían diferentes resultados cada vez que usemos la misma letra.

martes, 9 de febrero de 2010

La observación y validación en simulación



Introducción


Al querer hacer una simulación es necesario primero crear un modelo y hacer una obtención de datos que definirán nuestro modelo y en consecuencia a nuestra simulación.

Sin embargo, debemos tener cuidado en la introducción de factores en el modelo, ya que en ocasiones asumimos o suponemos cosas de acuerdo a nuestra intuición, al hacer esto podemos cometer errores ya que en la mayoría de los casos la intuición nos miente y las cosas que suponemos no son del todo ciertas.

Aquí tenemos dos ejemplos de ello:
  1. Experimento de Copenhagen
  2. Paradoja de la autopista
Podemos decir que al observar un sistema para determinar como se comporta. En ocasiones interferimos con su comportamiento y la información que obtenemos no es la que realmente lo describe.

Un ejemplo sencillo es al tratar de observar un conjunto de trabajadores, sus interacciones entre ellos y la forma en que desempeñan su trabajo. Si los trabajadores sienten que están siendo observados probablemente modificaran su comportamiento, es decir, desempeñaran mejor su trabajo o por lo contrario, cometerán errores a causa de nervios, limitaran un poco sus interacciones con sus compañeros, etc.

De la misma manera, puede pasar con cualquier sistema con el que estemos tratando. Por ello es ideal buscar formas de observar los sistemas sin afectar o interferir con su comportamiento. Si la influencia sobre el sistema es significativa entonces el sistema nos mentirá.

Paradojas

El termino paradoja viene del griego (para y doxos) y significa "mas alla de lo creíble". En la actualidad "paradoja" tiene numerosos significados:
  1. Afirmación que parece falsa aunque en realidad es verdadera.
  2. Afirmación que parece verdadera aunque en realidad es falsa.
  3. Cadena de razonamientos aparentemente impecables, que conducen sin embargo a contradicciones lógicas.
  4. Declaración cuya veracidad o falsedad no es determinada.

Observación

En la siguiente liga podemos encontrar qué es observar y como aprender a observar en un contexto general, ahí se puede encontrar información muy útil.

Lo importante para obtener información de un sistema, es el de determinar las características del observador o el método de observación a utilizar.
Un observador es un ente capaz de realizar mediciones de magnitudes de un sistema para obtener información del estado del sistema.
La observación es un elemento importante en toda investigación ya que en ella se apoya el investigador para obtener la mayor cantidad de datos.

Pasos que debe tener la observacion
  • Determinar el objeto, situacion, caso, etc(que se va a observar)
  • Determinar los objetivos de la observacion
  • Determinar la forma con que se van a registrar los datos
  • Observar cuidadosamente y criticamente
  • Registrar los datos observados
  • Analizar e interpretar los datos
  • Elaborar conclusiones

Métodos de observación

En seguida se presentan los métodos de investigación encontrados y que se consideraron de gran importancia.
  1. Observacion no sistematica. Lo típico de la observación no sistemática es que definimos la actividad que será estudiada y los atributos que serán registrados verbalmente; sin embargo, el observador puede incluir adicionalmente cualesquiera otros factores fortuitos que juzgue necesarios para explicar la actividad en el informe. Estas notas adicionales podrían por ejemplo describir los factores ambientales cambiantes, perturbaciones fuera de lo común, etc. También es algo típico que el observador puede combinar métodos de reunir los datos.
  2. Observacion sistematica. La observación sistemática es factible si tenemos una idea exacta de lo que queremos saber. Esto significa que cuando se comienza la observación sabemos y hemos anotado dos cosas, el escenario y el problema. La observación sistemática consiste ene recoger datos de factores determinados, en situaciones determinadas y con la intencio de comprobar la verdad de una hipótesis
Ahora, la finalidad de la observación es que los datos adquiridos representen lo mas parecido a el comportamiento del sistema. La observación se puede ver afectada cuando el objeto de estudio es un ser humano, un animal vivo y en muchos casos un proceso físico. Con el objetivo de minimizar la influencia del observador sobre el sistema, este debe comportarse de la manera menos invasiva posible.

3.- Métodos no intrusivos. Son usados para evitar cambios no deseados en la actividad a observar. Por ejemplo:
  • cámaras o sensores automáticos para registrar sucesos
  • usar los datos de medidores existentes de electricidad, agua, etc.
  • estudiar las trazas físicas:
    • desgaste de suelos para detectar dónde han andado las personas, desgaste de ropa o piezas de máquinas,
    • incremento, por ejemplo, de la basura, para indicar el consumo de comidas empaquetadas, etc.
  • estudiar los archivos y documentos personales, como cartas o diarios.
Como se pudo observar estos métodos están orientados al estudio de actividades humanas y a nosotros nos interesa encontrar métodos de esta índole pero que esten orientados al área de procesos físicos, químicos, mecánicos, etc.

Validación

En el proceso de simulación hay dos partes donde podemos validar los supuestos:

  1. En la costruccion del modelo cuando queremos verificas la validez de algún supuesto podemos llevar a cabo un diseño de experimento. La finalidad del diseño de experimento es verificar o refutar una hipotesis aumentando asi la informacion que poseemos para la construccion del modelo.
  2. Una vez creada la simulación se analiza si los resultados que arroja son similares a los del sistema y si tiene un comportamiento similar, de no ser asi, significa que falto considerar algunos otros factores, o que alguno de los supuestos era incorrecto, por lo cual se tendrían que verificar.
Aplicaciones y ejemplos

La observación puede aplicarse en cualquier caso. Saber observar ayuda a adquirir y retener conocimiento de una forma mas efectiva.
La observancia científica se usa en cualquier area en la que se quiera obtener datos que describan un fenómeno o sistema.