miércoles, 24 de marzo de 2010

Caso X:

Hipotesis iniciales:

En la construccion de un puente intervienen diferentes factores, en donde el mayor de ellos a considerar sería el peso de la misma estructura.

Vemos en las imagenes un puente que tiene puntos de apoyo solamente en las orillas.
Como la unión de nuestros 2 pedazos de hierro no es lo suficientemente fuerte como para soportar toda la fuerza sobre el, este se rompera y el puente empezara a caerse del centro.


Para evitar este colapso debemos disminuir de alguna forma toda la fuerza que se encuentra sobre ese punto de unión.

En este punte la fuerza que actua sobre el punto de unión se encuentra soportada por las vigas.


Para este otro puente, aunque la idea sea la misma (redistribuir el peso de los puntos de unión
Vemos que el puente se cae.
Algo de tomar importancía aqui es el angulo en el que la fuerza se aplica.
Es facil abrir una puerta cuando la fuerza que aplicamos es perpendicular al largo de la puerta, pero si intentamos abrirla aplicandole fuerza de forma paralela a su largo nunca lo conseguiremos.

Claramente para un puente no podemos cambiar el angulo en el que se aplica la fuerza (la gravedad siempre nos jalara hacía abajo), pero podemos cambiar el angulo de nuestra puerta.

La inversión para este punte fue exactamente la misma que para el puente anterior, solo que este no se caera tan facilmente.


Algo también muy importante es la base sobre la que se apoya un puente, una base fuerte y solida es mucho mejor que poner nuestras vigas directamente sobre el suelo (puede parecer muy obvio pero lo aprendi con la practica (mejor en el juego que en la vida real)).




En adición al modelaje de la geometría y la caracterización de las cargas inducidas a los elementos, la masa asociada a cada grado de libertad debe determinarse, ya que, las fuerzas de inercia contribuyen a la respuesta del puente. Además, las conexiones entre los marcos individuales del puente, los apoyos y la cimentación son complejas y típicamente se hacen simplificaciones en el modelaje.


Leyendo por ahí vi que se consideran diferentes modelos matemáticos, entre ellos tenemos:

Modelos globales



En los modelos globales:
Los modelos globales de la estructura completa del puente tiene una utilidad limitada, excepto por los casos donde (1) el puente es corto y está formado por un solo marco, (2) la respuesta esperada es en el intervalo elástico, y (3) cuando se pueden establecer las variaciones del movimiento del suelo a lo largo de la longitud total del puente.
Los modelos globales de puentes son empleados predominantemente en la cuantificación de la respuesta sísmica.



Modelo global de un puente.


Modelos de puentes a base de marcos


Los modelos de puentes a base de marcos individuales proveen una herramienta útil para obtener la respuesta sísmica, dado que las características de la respuesta dinámica de un marco individual puede evaluarse con una precisión razonable. Un análisis con modelos de marcos individuales puede dar un mejor conocimiento de las características de la respuesta individual de las secciones del puente.

La interacción con los marcos adyacentes puede ser considerada en un análisis marco por marco en la forma de resortes, los cuales son típicamente modelados con características elásticas lineales.


Modelo de vigas.

El desarrollo de modelos realistas de marcos requiere una discretización detallada de las vigas que forman la estructura; dado que, generalmente, la rigidez del marco está dada directamente por las vigas. Los modelos de vigas son usados principalmente para determinar la rigidez efectiva. Modelos de vigas deben incluir los efectos de flexibilidad de la cimentación y pueden ser combinados en modelos de marcos como elementos a la mitad de la superestructura. El hecho de que la mayoría de las superestructuras de los puentes presenten una alta rigidez en el plano, permite como una muy buena aproximación, suponer movimientos de cuerpo rígido de la superestructura, lo cual simplifica ampliamente la combinación de modelos de vigas.





Algo que es facil de ver es que no podemos analizar todo puntito del puente, si no que debemos discretizarlo de alguna manera para que nuestra computadora pueda hacer el trabajo por nosotros.
A esto se le llama Método de los elementos finitos.

El MEF permite obtener una solución numérica aproximada sobre un cuerpo, estructura o dominio (medio continuo) —sobre el que están definidas ciertas ecuaciones diferenciales en forma débil o integral que caracterizan el comportamiento físico del problema— dividiéndolo en un número elevado de subdominios no-intersectantes entre sí denominados «elementos finitos». El conjunto de elementos finitos forma una partición del dominio también denominada discretización. Dentro de cada elemento se distinguen una serie de puntos representativos llamados «nodos». Dos nodos son adyacentes si pertenecen al mismo elemento finito; además, un nodo sobre la frontera de un elemento finito puede pertenecer a varios elementos. El conjunto de nodos considerando sus relaciones de adyacencia se llama «malla».



Se consideran 5 fuerzas distintas en el analisís estructural:

La fuerza de compresión:
Es una fuerza que como su nombre lo dice es compresora, este se puede ver por ejemplo los soportes del metro, en donde el peso de los tramos de carriles los empuja hacía abajo, y la fuerza normal lo "empuja" hacía arriba.

La fuerza de tracción:
Como la anterior era de compresión esta es de estiramiento, los cables de un puente colgante soportan unas fuerzas que tienden a estirarlos. Los elementos estructurales que soportan fuerzas de tracción se llaman tensores o tirantes.

La fuerza de flexión:
Un estante de un mueble soporta una fuerza que tiende a doblarlo. Los elementos estructurales que soportan fuerzas de flexión se llaman vigas o barras, las cuales están puestas en sentido horizontal.

La fuerza de torsión:
Esta actúa sobre elementos que giran. La punta de un destornillador se puede deformar por la acción de esta fuerza.

Las fuerzas de cizallamiento:
Actúan sobre elementos que soportan tracción y empuje, como los remaches de una gran estructura metálica.



Conclusiones.
En lo referente a la consideración de fuerzas, pues mis ideas iniciales iban bien encaminadas.
Considere lo que eran las fuerzas de compresión.
La fuerza de de tracción no llegue a considerarla pues nunca termine usando cables.

Vemos que en el analisís de puentes podemos despreciar muchas cosas dependiendo del tipo de analisis que queramos realizar, así como de nuestro puente en particular.

miércoles, 17 de marzo de 2010

Control y simulación de Caos

El caso de esta semana es presentado a ustedos por:
Video 1, video 2, video 3 y video 4.

Se trazaron 4 metas:
1) Teoria del caos.
2) Simulando caos.
3) Ejemplo principal (clima).
4) Aplicaciones.

Teoria del caos:

Así como los conjutos y punto, no existe una definición universalmente aceptada de Teoria del Caos. Pero una definición usada comunmente dice que para que un sistema dinamico sea clasificado como caotico debe tener las siguientes propiedades

  • Debe ser sensible a las condiciones iniciales.
  • Debe ser topologicamente mezclable? (topologically mixing).
  • Sus orbitas periodicas deben ser densas.

Sensibilidad a condiciones iniciales
Esto significa que cada punto en un sistema tal (caotico) que este relativamente cernano a otro, tendran trajectorias futuras significativamente diferentes, esto es, pequeños cambios iniciales repercutiran en gran manera sobre la solución final.

Una consecuenta de la sensibilidad a las condiciones iniciales es que si empesamos con una cantidad finita de información sobre el sistema (como usualmente ocurre en la practica), entonces despues de una cierta cantidad de tiempo el sistema dejara de ser predecible. Esto es muy comun en el caso del clima, que generalmente solo es predecible alrededor de una semana.

Abra notado que en nuestra definición de sensibilidad usamos la palabra relativamente cerca, una buena pregunta es, ¿qué tan cerca es cerca?
Para información mas detallada al respecto se recomienda leer sobre The Lyapunov exponent.

Topological mixing (o topological transitivity):
Se refiere a que el sistema evolucionara con el tiempo de tal manera que cualquier región o conjunto abierto de su espacio de fases, eventualmente se sobrepondran unas con otras.

Muchas veces en las visiones populares de caos se omite la idea de topological mixing, sin embargo la sensibilidad a las condiciones iniciales por si sola no implica caos.
Por ejemplo, considera el sistema dinamico producido por multiplicar por 2 el valor de un número de forma repetitiva. Este sistema tiene dependencia a las condiciones inciales, pues cualquier par de numeros cernanos eventualmente se separaran mucho. Sin embargo este ejemplo de sistema no es topological mixing, y por lo tanto no es caotico. Sino que es bastante simple, todos los puntos excepto el 0 tienden a infinito.


Density of periodic orbits
Density of periodic orbits means that every point in the space is approached arbitrarily closely by periodic orbits. Topologically mixing systems failing this condition may not display sensitivity to initial conditions, and hence may not be chaotic.

Es interesante notar que si un sistema tiene las propiedades 2 y 3, entonces el sistema sera sensible a las condiciones iniciales; mientras que si se tiene la propiedad 2 para intervalos, entonces esta condición implica a las otras 2.

Atractores.
Un atractor es un conjunto al cual un sistema dinamico evoluciona despues de un tiempo suficientemente largo. Esto es, puntos que se acercan lo suficiente al atractor, permanecen cerca incluso si sufren pequelas perturbaciones.
Para sistemas caoticos también existen atractores, estos son llamados atractores extraños


Strange attractor
Un atractor es descrito informalmente como extraño si no tiene dimensión entera (vease dimensión fractal), o si la dinamica sobre él es caotica.
Atractor de Lorenz


Los atractores son muy importantes, puesto que aunque nuestro sistema sea caotico, es una región "estable" (como un vaso con agua, sabemos que la particula de agua esta en el vaso, pero su ubicación puede variar en este).

En control de caos:
Lo unico que pude encontrar se encuentra explicado en el siguiente link

Distinguiendo entre información aleatoria e información caotica

La tecnica estandar para distinguier entre sistemas dinamicos regulares o caoticos en series de tiempo deterministas consiste en calcular el maximal Lyapunov exponente, el problema con esta prueba es que existen sistemas para los cuales no conocemos las dinamicas de este, en estos casos la recostruccion del espacio de fases es necesaria y esta reconstrucción conlleva problemas.

Un paper sobre el tema se encuentra en el proximo linkEnlace
Otra forma simple de distiguir entre un sistema caotico y los que no, es realizar corridas de nuestro sistema para puntos relativamente cercanos unos a otros y medir la separación que existe despues de un tiempo determinado, si esta diferencia permanece pequeña sera un sistema regular, si incrementa exponencialmente con el tiempo es un sistema caotico. Para un sistema estocastico la diferencia tendra una distribución del error aleatoria.


Aplicaciones:
La teoria del caos es aplicada en muchas diciplinas: matemáticas, programación, microbiología, biología, ciencia de la computación, economía, etc.

Se trato realizar un sistema que tuviera un comportamiento caotico.
Lo que se hizo fue, en matlab generar una matriz de 20x20, la cual en primera instancia estaría llenada con 5's.
Posteriormente, de manera aleatoria, se generan 1's y 0's en esta matriz.
Un 0 significa que una familia latina vive en la casa
Un 1 significa que una familia Irlandesa vive en la casa
Y un 5 significa que la casa esta desavitada.

Posteriormente sobre esta "ciudad" inicial hacemos pequeñas perturbaciones, analisamos ciertos elementos escogidos al azar y cambiamos su valor.

Existen reglas para la mudanza y desalojo del inmueble.
En primera instancia ocurren los desalojos.
Para ambas familias, si tienen menos de 3 vecinos de su misma nacionalidad (en un cuadro de 3x3 con centro en su casa) desalojaran la casa (moriran!).

Para mudanzas desde otras ciudades (nuevos habitantes), se verifica en cada casilla que este desavitada la cantidad de vecinos de cada nacionalidad que tenga esa casilla.
Para la familia latina, si hay por lo menos otra familia latina en la vecindad de esa casilla y hay 3 o menos familias irlandesas en su vecindad, entonces se mudara a esa casilla.
Para la familia irlandesa, si hay por lo menos 2 vecinos en la vecindad de esa casilla y 2 o menos familias latinas, se mudara a esa casilla.

A continuación se anexan diversos resultados para cambios de tan solo 5 casas (~1% del total)

ciudad inicial




Y aunque parecen resultados muy caoticos, es importante notar que estos solo son unos de los resultados obtenidos, por lo general, los resultados 7 de cada 10, tenían cierta estructura carateristica y para pequeños cambios a la ciudad inicial, la estructura de la ciudad final no cambiaba fuera de algunos valores.

Se anexa el codigo del programa:
https://docs.google.com/Doc?docid=0AbozH-ZdB4BqZGY3em13d21fNGN2aHdrZjJk&hl=en

martes, 9 de marzo de 2010

caso 8: Terrormoto

En este post abarcaremos lo siguiente:
Que es un terremoto, como se producen, razones para simular un terremoto, factores a tomar en cuenta en nuestra simulación y aplicaciones (mas otros que agregue en el camino).

Que es un terremoto:
es una sacudida del terreno que se produce debido al choque de las placas tectónicas y a la liberación de energía en el curso de una reorganización brusca de materiales de la corteza terrestre al superar el estado de equilibrio mecánico.
Un video mas ilustrativo se encuentra aqui

¿Para qué simular un terremoto? Aunque existen gran cantidad de datos historicos sobre los terremotos, no existe hasta la fecha, una manera de predecirlos con exactitud (para mas información sobre el tema aqui), como todos sabemos un terremoto que ocurra en un lugar en el que no se esta preparado para este tiene medidadas catastroficas.
Respodiendo a la pregunta podemos dar 2 factores relevantes:
1) Para conocer como ocurrio un cierto terremoto, que factores lo hicieron afectar de tal manera, etc.
2) Para diseñar edificios (casas, presas, autopistas, puentes, etc.), planificar colonias, etc.

que basicamente son, analisis apriori y aposteriori.


Entre los factores a considerar se encuentra, la distancia al epicentro, es bien sabido que entre mayor es la distancia a este, menor es el impacto que se resive ( ejercicio para el lector: buscar si el decrecimiento sigue un modelo conocido)

Otro factor importante es la energia liberada en el terremoto, esto normalmente se mide en la escala Richter, aunque esta escala es logaritmica (un 7 libera 31.5 mas energia que un 6), esto no quiere decir que un terremoto de intensidad 7 hace temblar los edificios 31.5 veces mas, si no que el terremoto se hace sentir a una mayor distancia y el tiempo que este dura es mayor.

También es importante la naturaleza del subsuelo:
Generally, sites with deep soft soils or loosely compacted fill will be more strongly shaken than sites with stiff soils, soft rock, or hard rock. For example, during the 1989 Loma Prieta earthquake, the shaking experienced in the San Francisco Marina District, which is underlain by mud nearly 100 feet thick, was from three to four times stronger than the shaking measured only a few blocks away on bedrock, near the Golden Gate Bridge. [1]

Si nuestro interes es como afecta un terremoto a las estructuras otro factor a considerar sería los diferentes tipos de ondas, como vimos del primer video exiten tres diferentes tipos de ondas en un terremotos, las ondas P (las primeras que sentimos), las ondas S (las segundas) y las ondas superficiales.
Donde cada onda, debido a que tiene un tipo de movimiento diferentes afecta de diferente manera al lugar por el que pasa.

Factores mas complejos como el tipo de faulting action, la dirección en que se propaga la ruptura de falla, y el rango de frecuencia de las ondas, pueden disminuir o aumentar la severidad del movimiento, debido a estos factores "caoticos", la forma real en que se comporta cierto terremoto no puede ser predicha de manera precisa, sin embargo, basado en información grabada sobre el movimiento de pasados terremotos obtenidos desde dentro y fuera de edificios es posible estimar el maximo nivel de movimiento de un terremoto.

Uno de los factores mas importantes al analizar un edificio es su periodo fundamental de vibraciones, edificios hechos de concreto por ejemplo tienen un periodo de vibración pequeño, mientras que edificios contruidos con materiales mas flexibles, tienen un periodo mayor.
En general la mayor cantidad de energia de un terremoto es liberada en ondas de periodo corto, lo que hace resonar a los edificios con un periodo corto, aumentando la amplitud de la onda.

Para edificios cuadrados se considera que la onda se distribuye de forma igualitaria en toda la estructura (pues las diferencias no son sustanciales), mientras que para estructuras de formas mas complicadas como por ejemplo con forma T, L, +, la intensidad se concentra en las esquinas interiores formadas.
Tambien surgen mayores complicaciones con edificios adjacentes en los que uno es mas alto que el otro, o cuando tenemos un edificio cuya planta baja es mas alta o "suave" que los otros pisos.


Si nos interesa hacer un modelo sobre el daño que realizo cierto terremoto hay factores clave a considerar que no afectan a nuestra simulación sobre edificios, entre algunos de ellos encontramos:.

Hora del Día
La hora del día es un factor importante y determinante en el riesgo de morir o lesionarse a causa de la probabilidad de quedar atrapado por un edificio colapsado, no es lo mismo si un terremoto ataca a las 4:00am cuando todos estan en sus casas, a que si ataca en un dia festivo en el que la mayor parte de la población se va de la ciudad.

Condiciones Climáticas
Se sabe que las condiciones climáticas locales afectan el tiempo de supervivencia de las personas atrapadas en los edificios colapsados después de un terremoto, tienen una gran influencia sobre el porcentaje de lesionados que mueren antes de ser rescatados.

Materiales Peligrosos
Nuestras modernas ciudades industriales están cargadas de productos químicos y del petróleo que podrían contribuir substancialmente a la generación de tóxicos luego de un terremoto.

Incendios
Uno de los más severos desastres secundarios que pueden seguir a los terremotos es el incendio. Las sacudidas severas pueden causar volcamiento de estufas, calentadores, luces y otros elementos que pueden iniciar las llamas.

Diques
Los diques también pueden fallar, amenazando a las comunidades aguas abajo.

Características Demográficas
En los terremotos, las personas mayores de 60 años están en mayor riesgo de muerte y de lesiones y tienen una tasa de mortalidad que puede ser 5 veces mayor que en el resto de la población. Los niños entre 5 y 9 años de edad, las mujeres y las personas crónicamente enfermas también parecen estar en riesgo elevado de lesiones o muerte.

Teorias conspiratorias:
Vease la siguiente pagina para la historia de Charlotte King quien puede predecir terremotos con 6 dias de anticipación aqui
Al parecer ella tiene la capacidad para escuchar sonidos por debajo de los 2hz y así predecir los terremotos.
Lo que me extraña es que si solo es su gran capacidad para escuchar sonidos por debajo de los 2hz lo que hace que prediga terremotos con tanta anticipación, como es que no tenemos algun instrumento que replique esto.

continuara...

martes, 2 de marzo de 2010

El trafico nuestro de cada dia

Este caso es presentado por: caso1 En donde vemos una intersección de 2 avenidas en Shanghai, en ella la población tiende a hacer lo que le da la gana (quien no quisiera un delorean en esa situación?)
El segundo estimulo donde vemos una simulación (grafica) de flujo de trafico (como se mueven los carros por la carretera~), bajo diferentes tipos de estimulos (semaforos, caminos empinados/transitos, obstaculos en la carretera, etc.).

De los 2 estimulos sacamos las metas:
/* actualizar cuando ya lo suban
http://simulaciondesistemaspisis.blogspot.com/
*/

Meta 1: Introducción.

Si usted vive en una isla desierta tal vez nunca halla encontrado con este perturbante efecto llamado "trafico".
Para todos aquellos otros seres humanos que se hallan visto envueltos en esto tendrán una idea de lo que estamos hablando.
Algo importante (para nosotros cuya meta es la simulación) es preguntarnos que factores influyen en el trafico.

Para aquellos que viven en una ciudad turistica, y para los que no, probablemente han visto como el trafico en periodo vacacional aumenta (disminuye resp.), así que podemos decir que la cantidad de carros en movimiento influye en el trafico, entre mas el trafico es mas "dificil" y entre menos es mas "facil".

Por supuesto no es la misma el trafico en Tokyo a el trafico en Shanghai
http://www.youtube.com/watch?v=QXtOdSgf6Ic
Así que no solo lo que afecta es la cantidad de entes en el sistema vial, sino el comportamiento de estas "entes", por ejemplo en Shanghai vemos que estas "entes" tienden a ignorar las reglas de transito (esperemos que exista tal cosa), mientras que en japón al ser mas ordenados el trafico no es tan considerable.

Factores mas sencillos de tener encuenta son por ejemplo el número de carriles (disponibles), la velocidad permitida, el número de obstaculos (semaforos, baches, hombres trabajando, etc.) y su distribución.

Ahora también es importante establecer las reglas de como se comportan estos entes (de ahora en adelante automovilistas), por ejemplo hay automovilistas que conducen mas agresivamente que otros, o existen zonas con limites de velocidad.

Cuando uno va manejando por ahí no conduce como Pedro por su casa, si no que, ya sea consiente o subconsientemente, tomamos en cuenta lo que nos rodea para determinar nuestra velocidad y aceleración.
Para esto tomamos en cuenta la distancia de nosotros a la que se encuentran los coches, la velocidad que estos llevan, así como su aceleración.

Ahora, ¿por qué nos interesaría simular el trafico?
Una razón para simular sería que planeamos modificar de cierta manera la vialidad, por ejemplo ampliando carriles, modificando los tiempos de verde y rojo de semaforos, la construcción de una joroba, establecer limites de velocidad para prevenir accidentes, etc.

Y claro que todas estas cosas son procesos costosos de realizar y no es factible realizarlos sin tener una idea de como afectara este cambio al trafico (no parece ser de esta manera en mty =( ).

Los embotellamientos (colas) como ya vimos en el caso anterior:
http://karlosimulacion.blogspot.com/2010/02/caso-6-la-cola-o-viernes-15.html
Son causados porque la cantidad de llegadas al sistema es mayor que la cantidad de personas que son atendidas y desalojadas del sistema.
En el caso de flujo de trafico podemos ver a los servidores como los carriles libres o los semaforos.
En el caso de los semaforos la idea es bastante directa, llegan carros al semaforo mientras esta en rojo y estos esperan en la cola, cuando el semaforo cambia a verde los primeros en llegar son los primeros en ser atendidos (FIFO) y estos pueden continuar en su alegre vida de conductores.
En el caso de los carriles libres, esto podemos verlo como un gran servidor (todo el carril), cuando un carril se obstruye este pedazo de servidor se cierra, ademas los tiempos de servicio de los carriles (o mejor dicho el tipo de servicio que el cliente requiere) varian con respecto a otros factores, por ejemplo si hay un choque que obstruye un carril, el tiempo de servicio de los otros carriles se vuelve mas lento (requieren mas tiempo para ser atendidos), pues los coches van a una velocidad mas lenta.

Meta 2 y 3:
Hay diferentes formas en que podemos analizar el flujo de trafico, podemos verlo como un flujo (perspectiva macroscopica), como individuos (microscopica).
En la perspectiva macroscopica nos interesa conocer/estimar/analizar, la cantidad de flujo (coches) que pasan por cierta área de la vialidad, ademas consideramos la velocidad de los coches como en un flujo.
La otra forma (en la cual nos enfocaremos) analiza a cada coche como un ser individual, en el cual nos interesa su posición, su velocidad, aceleración y dirección.
Y estas vienen dadas como ya dijimos por las cosas que lo rodean.


De los factores antes mencionados:
Si no tenemos ningun carro enfrente tenderemos acelerar hasta una velocidad limite (digamos 200km/h), pero si tenemos un carro, un bache o un semaforo enfrente tenderemos a modificar nuestra velociad en base a ello, si es un semaforo en rojo tenderemos a frenar hasta alcanzar una velocidad = 0 antes de llegar a el.
Si es un carro el que tenemos enfrente, nuestra velocidad dependera de la distancia a la que esté este carro de nosotros, ademas de la velocidad que lleva ese carro y su aceleración.
Si el carro que esta frente a nosotros se encuentra muy proximo bajaremos la velocidad hasta alcanzar una cierta distancia minima (distancia de seguridad).
Si el carro que se encuentra frente a nosotros frena precipitadamente nosotros también seguramente haremos lo mismo.
El pseudocodigo para esto por ejemplo podría ser:

Para t=0; t < t =" t" t="0," t =" t"> findelcarril )
eliminar carro(i) del sistema
fin
Graficar la posición de los coches.
fin

Por ejemplo, una forma de calcular la aceleración se encuentra en la siguiente pagina:
http://www.vwi.tu-dresden.de/~treiber/MicroApplet/IDM.html



Meta 4.
Aplicaciones:
Simulación de trafico pues se aplica claramente al trafico =p.

Por ejemplo en
http://www.cea-ifac.es/actividades/jornadas/XXV/documentos/34-ososareast.pdf

El objetivo de su trabajo fue el obtener una herramienta para simular tráfico ubrbano con el fin de observar el comportamiento de la red viaria ante variaciones de los parámetros que configuran su funcionamiento, de forma que se pueda:
Experimentar con las distintas politicas de control antes de ponerlas en funcionamiento en la red semafórica.
Observar el comportamiento del tráfico ante posibles incidencias en la vía, como puedan ser cortes de calles, obras, acontecimientos festivos, etc.

martes, 23 de febrero de 2010

Caso 6: A la cola (o Viernes 15)

El caso de esta semana es presentado por:

http://www.youtube.com/watch?v=gJ9erPEfC2U
http://www.opti-stat.net/~alex/cgph/public_html/m4216/projsf97/mm1.html

El primer video es una noticia en la cual conductores de pipas de aguas negras se ven obligados a esperar entre 12 y 24 hrs para poder vaciar su pipa, y ante estos problemas hay quienes recurren a vaciarlas en lugares prohibidos.
El segundo link es un applet en el cual podemos ver la cantidad de personas que se encuentran en una linea de espera, y podemos cambiar los valores de la llegada de clientes y la velocidad en que son atendidos, así vemos que cuando llegan pocos clientes y el tiempo de servicio es muy corto no existe fila, o si es alrevez, tenemos una gran cantidad de clientes en la fila.

Para este caso se trasaron 4 metas:
1) Introducción de "Teoría de colas".
2) Distribuciones principales para teoria de colas.
3) ¿Cuando es necesario simular las colas?
4) Aplicaciones de teoria de colas.

Meta 1:
Introducción a Teoría de colas.
Como a todos nos ha pasado alguna ves, no hemos tenido que ver en la engorrosa y frustrante situación de hacer cola, ya sea en el supermercado, en la tienda de la esquina, a la hora de la repartición de las bolsitas en una fiesta, ¡en el banco en quincena! (el horroroso viernes 15), etc.

Si usted fuera el dueño de algun negocio, le importarian a menor o mayor grado sus clientes (despues de todo ellos son los del dinero), y no querría que estos tuvieran que esperar mucho tiempo para que alguien los atendiera (podrían irse con la competencia), pero claro, para poder atenderlos mas rapido necesitariamos mas maquinas/gente/cajeros/computadoras/mesas, y para tener estos USTED tendría que pagarlos, así que nos vemos en un problema, debemos poner la cantidad justa de maquinas/cajeros/gente/computadoras/mesas/etc. para que nuestros clientes no tengan que esperar mucho para ser atendidos Y que no sea muy costoso para nosotros.

Este es un de los problemas que nos planteamos cuando queremos analizar las propiedades de una cola con Teoria de colas.


Como ya todos hemos estado en una cola, muchas de las caracteristicas de una cola nos son familiares:

Fuente de entrada o población potencial: Es un conjunto de individuos (no necesariamente seres vivos) que pueden llegar a solicitar el servicio en cuestión. Podemos considerarla finita o infinita.
Cuando la población es finita y no relativamente muy grande, la cantidad de individuos que entran al sistema depende de la cantidad actual que estan en la cola.

Cliente: Es todo individuo de la población potencial que solicita servicio. Suponiendo que los tiempos de llegada de clientes consecutivos son 0<..., será importante conocer el patrón de probabilidad según el cual la fuente de entrada genera clientes.

Capacidad de la cola: Es el máximo número de clientes que pueden estar haciendo cola. De nuevo, puede suponerse finita o infinita.

Disciplina de la cola: Es el modo en el que los clientes son seleccionados para ser servidos. Las disciplinas más habituales son:
La disciplina FIFO (first in first out), también llamada FCFS (first come first served): según la cual se atiende primero al cliente que antes haya llegado. La disciplina LIFO (last in first out), también conocida como LCFS (last come first served) o pila: que consiste en atender primero al cliente que ha llegado el último. La RSS (random selection of service), o SIRO (service in random order), que selecciona a los clientes de forma aleatoria.

Mecanismo de servicio: Es el procedimiento por el cual se da servicio a los clientes que lo solicitan. La cola, propiamente dicha, es el conjunto de clientes que hacen espera, es decir los clientes que ya han solicitado el servicio pero que aún no han pasado al mecanismo de servicio.


Meta 2:
Distribuciones principales para teoria de colas
:
Con lo que hemos visto los unicos lugares en los cuales podemos pensar en distribuciones de probabilidad en una cola son:
El tiempo de llegada de los clientes y en el tiempo de servicio.

Existen dos clases básicas de tiempo entre llegadas:

Determinístico, en el cual clientes sucesivos llegan en un mismo intervalo de tiempo, fijo y conocido. Un ejemplo clásico es el de una línea de ensamble, en donde los artículos llegan a una estación en intervalos invariables de tiempo (conocido como ciclos de tiempo)

Probabilístico, en el cual el tiempo entre llegadas sucesivas es incierto y variable. Los tiempos entre llegadas probabilísticos se describen mediante una distribución de probabilidad.
En el caso probabilístico, la determinación de la distribución real, a menudo, resulta difícil. Sin embargo, una distribución, la distribución exponencial, ha probado ser confiable en muchos de los problemas prácticos.

El tiempo de servicio pude ser determinístico o probabilístico. Con un tiempo de servicio determinístico, cada cliente requiere precisamente de la misma cantidad conocida de tiempo para ser atendido. Con un tiempo de servicio probabilístico, cada cliente requiere una cantidad distinta e incierta de tiempo de servicio. Los tiempos de servicio probabilísticos se describen matemáticamente mediante una distribución de probabilidad. En la práctica resulta difícil determinar cuál es la distribución real, sin embargo, una distribución que ha resultado confiable en muchas aplicaciones, es la distribución exponencial.

Meta 3:
¿Cuando es necesario simular las colas?

La teoría de formación de una cola es a menudo demasiado restrictiva matemáticamente para ser capaz de modelar todas las situaciones verdaderas a nivel mundial. Por ejemplo; los modelos matemáticos a menudo asumen el número de clientes, o la capacidad de la cola infinitos, cuando es evidente que estos límites deben estar limitados.

Es cuando queremos conocer las caracteristicas de una cola con estas propiedades que es importante la simulación de una cola.

Meta 4:
Aplicaciones de teoria de colas

La teoría de colas generalmente es considerada una rama de investigación operativa porque sus resultados a menudo son aplicables en una amplia variedad de situaciones como: negocios, comercio, industria, ingenierías, transporte y telecomunicaciones.


Simulando una cola:
Para simular una cola necesitaremos:
Distribución en que llegan los clientes a la fila así como la media de esta distribución.
Distribución en que los clientes son atendidos, así como la media de esta distribución.

Para programar esto, lo mas natural es crear un vector en el cual tendremos a el tiempo que lleva el cliente en la cola, iremos dejando que pase el tiempo (discreto) y cuando un cliente sea atendido pues lo borramos de la cola, también tendremos una limitante en cuanto al número de clientes en la cola.

Ahora, si el lector ha sido fiel al blog talvez lo anterior hizo sonar algunas campanas, si no talvez le interese leer esto.
En el caso de las mariposas necesitabamos la tasa de natalidad de las mariposas, que seguía una distribución uniforme, la cantidad de mariposas no podía superar cierto limite (restricciones de espacio/comida), y la tasa de mortalidad de las mariposas.

Se realizo un programa que simulara una linea de espera y se corrieron varias instancias, el programa consistia en lo siguiente, se corria un loop para la cantidad de tiempo que el sistema estaría disponible (para las instancias que corrimos los tiempo estan los segundos), dentro de este loop primero se aumentaba en 1 el tiempo que llevaban los clientes en la cola y los que estaban siendo atendidos.
El proceso de llegadas de clientes se hacía con una distribución poisson con media lamnda, en la cual el valor lamnda es el número promedio de clientes que llegan en un tiempo dado.
Posteriormente si había servidores disponibles los clientes pasaban a estos y abandonaban la cola.
Luego me hubiera gustado que los servidores tubieran una distribución exponencial en cuanto al tiempo que tardaban en atender a los clientes, pero no se me ocurrio como lograr esto, lo que se hizo fue, se daba un parametro miu, que es el tiempo promedio en que se atiende a un cliente, para nuestro caso esto era dado en minutos, luego cada segundo, la probabilidad de que un cliente fuera atendido es de 1/(60*miu) (si se tardaba en promedio miu=1, en promedio esta probabilidad atenderia a un cliente cada minuto).

Como es demasiada información el poner como se fue dando la cola, solo se agregan ciertos datos relevantes.

lamnda = 2
Miu = 0.5
Servidores = 2
Maximacola = 60
tiempo = 100000 segundos ( 27 hrs)
promedio de clientes en la cola = 0.2772
Tiempo de espera promedio en la cola = 0.1549 (en minutos)

lamnda = 2
Miu = 0.75
Servidores = 2
Maximacola = 60
tiempo = 100000 segundos ( 27 hrs)
promedio de clientes en la cola = 1.4036
Tiempo de espera promedio en la cola = 0.7277 (en minutos)

lamnda = 2
Miu = 0.85
Servidores = 2
Maximacola = 60
tiempo = 100000 segundos ( 27 hrs)
promedio de clientes en la cola = 4.5065
Tiempo de espera promedio en la cola = 2.294 (en minutos)

lamnda = 2
Miu = 0.85
Servidores = 2
Maximacola = 60
tiempo = 1500000 segundos ( 416 hrs)
promedio de clientes en la cola = 5.7208
Tiempo de espera promedio en la cola = 2.88 (en minutos)

lamnda = 2
Miu = 0.89
Servidores = 2
Maximacola = 60
tiempo = 100000 segundos ( 27 hrs)
promedio de clientes en la cola = 6.1451
Tiempo de espera promedio en la cola = 3.2037 (en minutos)

lamnda = 2
Miu = 0.89
Servidores = 2
Maximacola = 60
tiempo = 900000 segundos
promedio de clientes en la cola = 6.177
Tiempo de espera promedio en la cola = 3.1145 (en minutos)

lamnda = 2
Miu = 0.89
Servidores = 2
Maximacola = 60
tiempo = 1500000 segundos
promedio de clientes en la cola = 6.4362
Tiempo de espera promedio en la cola = 3.2425 (en minutos)

De estas instancias podemos darnos cuenta que algo no salio bien :S
Si llegan 2 clientes por minuto y se atiende a un cliente en menos de un minuto y se cuentan con 2 servidores, uno esperaria que no existiera mucha cola.
Por eso realice para mismos parametros corridas de mayor tiempo, para con esto quitar la idea de que pudieron ser problemas con la aleatoriedad (un caso raro en que lleguen muchos clientes a la ves).

Aunque hay algo mal, podemos ver que en general los resultados siguen hasta cierto punto la tendencia esperada, entre mas tiempo se tarda en atender a un cliente mayor es la fila que se forma.

Cosas que se pueden agregar al programa son, que diferentes servidores tengan diferentes tiempos para servicio a cliente (alguien que apenas esta aprendiendo tarda mas)
Agregar redes de colas, en las cuales el cliente al terminar su primer servicio no necesariamente salga del sistema, si no que pase a otra cola.
Permitir la especificación en la distribución de llegadas de los clientes y en el de tiempo de servicio.
Así como permitir que el cliente que llegue no entre a la cola (si ves mucha cola en el banco mejor no entras)
Y que los clientes se fastidien de estar haciendo cola y se vallan.

jueves, 18 de febrero de 2010

En el caso de esta semana, debía crear la imagen de un árbol usando un patrón.

Ya antes había leido un articulo de como crear imagenes de árboles utilizando fractales, así que me dirigi a leer el mismo articulo, pero no lo encontre, en su defecto encontre este articulo:
http://cs.uccs.edu/~semwal/IASTED_EMS2006/ERIC_UPCHURCH/CS%20579%20Term%20Report%20-%20Upchurch.doc

Así que mi primer aproximación al problema de generar la imagen de un árbol fue la de usar la idea de fractales.

Primero empece con una idea bastante simple, crear una linea recta para el tronco, despues, a este tronco le pondríamos "ramas" que simplemente serían otras lineas rectas saliendo de la primer linea recta, estas nuevas lineas serían de longitud proporcional a la longitud del "tronco" @ veces mas pequeñas.
Luego, a las nuevas "ramas" también le crecerían ramas con longitud @ veces mas pequeñas.

El angulo en el cual las ramas crecerían de su rama padre sería generado aleatoriamente.

Como C++ es el lenguaje que mas recientemente he manejado, pues comence a programar en este lenguaje, pero para mi sorpresa C++ no incluye librerias para graficar por default, y mi intento por instalar estas librerias fueron en vano.

Así que despues empece a realizar el mismo programa en Matlab.

El programa basicamente generaba un número aleatorio y en base a ese número decidia en que lugar de la rama padre iba a crecer la rama hija (en un árbol las ramas no crecen a la misma distancia), despues generaba otro número aleatorio para conocer el angulo de inclinación de la rama hija, y como la longitud de esta rama era @ veces mas pequeña que la del padre podíamos calcular el punto final en el que iba a estar esta rama, posteriormente solo había que graficar una linea recta que uniera estos dos puntos.

Me tope con muchos problemas, puesto que la función plot, de matlab si yo soy un plot(x,y) y posteriormente hago otro plot(x2,y2), esta otra grafica no la sobrepone junto a la otra grafica, si no que solo borra la pasada y crea esta, algo muy malo para nuestro algoritmo, pues en mi algoritmo generamos cada una rama a la ves.
Despues de mucho debanarme los cesos y buscar por internet encontre una función, hold on, que lo que hace es, cuando creas una grafica y luego creas otra grafica, la vieja grafica aun aparece junto a la nueva grafica.

El problema de este metodo fue que, al generar la nueva grafica, matlab mueve el centro de la grafica a la nueva grafica, y si la grafica anterior queda fuera de toma, pues parece que a veces las desaparece.




Lo que tiene el gran problema de parecer que ciertas lineas se encuentran flotando en el aire.
Para generar esta imagen de "árbol" se inicio con un tronco de longitud 1, cada padre tenía 5 ramas, la reducción se tamaño fue de 1.8 y el numero de iteraciones fue 200.

@=1.8, hijos =7, longitudinicial=1, iteraciones = 200

En esta imagen se aprecía un claro error en nuestra simulación, tenemos ramas del arbol, que llegan mas abajo del suelo, y aunque existen algunas especies de árboles cuyas ramas se convierten en raices, este no era el objetivo de esta simulación.

@=3, hijos=15, iteraciones=200, longitudinicial=4, las ramas solo tiene angulos entre 0º y 180º

En esta imagen vemos el claro problema de las lineas fantasmas.
El lado derecho de la imagen tiene una forma mas "arbolesca".


Trabajo que futuro sería obviamente el evitar la aparición de ramas fantasmas, el de alguna forma restringir el angulo en el que crecen las ramas, por ejemplo que no puedan crecer con angulo 320º si esto hace que la rama traspase el suelo, que ramas no se atraviesen entre si.


Bueno, la almohada me susurro en que me había equivocado con lo de las ramas fantasmas.

@=2, hijos=5, iteraciones=500, longitud inicial = 2

Este ya se ve un poco mas arboleo

Un árbol sacudido por un huracan es mas facil:
@=2.5, hijos=15, iteraciones=200 y jugar con que sea mas probable que las ramas esten con cierto angulo

Algo que puede ser facilmente implementado es la creación de "hojas" al final de las ramas, esto se puede lograr creando una elipse cuyos focos esten en la rama y con una excentricidad aleatoria.

martes, 9 de febrero de 2010

Todos mienten

Este caso es patrocinado por:

http://www.youtube.com/watch?v=h4TdK6rRBMY

http://mahalanobis.twoday.net/stories/3486587/

De ellos obtuvimos las metas siguientes:
1 Observaciones

a) Métodos

b) Factores que afectan

c) Validaciones

2 Aplicaciones y ejemplos.

Llegamos a estas, pues en el primer estimulo vemos que existe una diferencia en el comportamiento del experimento cuando se realiza con un observador a cuando se realiza sin este, mientras que en el segundo estimulo si tenemos un observador que observa el paso de los camiones "desde fuera" la medición de este sera diferente al de la persona que este esperando el camión.

Meta 1:

Observaciones

Es importante notar que no siempre querremos hacer observaciones, hay muchas actividades que pueden ser difíciles o costosas de estudiar especialmente en su ubicación original, y antes de comenzar a recopilar datos es recomendable pasar un minuto y considerar si la información necesaria podría obtener de alguna otra forma (Información en textos ya existentes, interrogar a la gente que tiene la información, estudio indirecto).

¿Por qué es importante realizar observaciones?

Hay que tener en cuenta que cuando queremos realizar una simulación, es importante el contar con datos para alimentar nuestra simulación (velocidad de un león, cantidad de ardillas rojas, nivel de natalidad de la mariposa monaca, etc.) pues sin ellos no podremos hacer nada útil.

Y la forma de obtener estos datos es a travez de observaciones (medir la velocidad del león, contar las ardillas rojas en el parque, etc.).

Como vimos el caso pasado, si queremos conocer cierta caracteristica de una población, no siempre es necesario (incluso a veces resulta imposible) el analizar a toda la población.

El problema es que dependiendo nuestro objeto de observación nuestra forma de observar puede podrucir cambios en el comportamiento normal de nuestro objeto de estudio.
Muy conocido es el llamado efecto placebo, en el cual a una persona se le da un placebo y se le dice que es una droga, esta persona siente los sintomas de la droga que se le dijo le fue suministrada.

Con esto vemos que la observación no se reduce al mero acto de medir la caracteristica de nuestro interes, sino también debemos preocuparnos por como afectara la forma en que estamos observando a nuestro sujeto.

Existen diversos tipos de formas de observar, entre ellas tenemos:

Observación Directa y la Indirecta
Es directa cuando el investigador se pone en contacto personalmente con el hecho o fenómeno que trata de investigar.
Es indirecta cuando el investigador entra en conocimiento del hecho o fenómeno observando a través de las observaciones realizadas anteriormente por otra persona. Tal ocurre cuando nos valemos de libros, revistas, informes, grabaciones, fotografías, etc., relacionadas con lo que estamos investigando, los cuales han sido conseguidos o elaborados por personas que observaron antes lo mismo que nosotros.

Observación Participante y no Participante
La observación es participante cuando para obtener los datos el investigador se incluye en el grupo, hecho o fenómeno observado, para conseguir la información "desde adentro".
Observación no participante es aquella en la cual se recoge la información desde afuera, sin intervenir para nada en el grupo social, hecho o fenómeno investigado.

Observación Sistemática y no Sistemática:
El método de observación no sistemática no requiere ningún conocimiento inicial sobre la actividad que ha de ser estudiada.
El método sería simplemente mirar lo que ocurre, y con el tiempo captar la estructura de las acciones, incluso si esto llevase algún tiempo.


La observación sistemática es factible si se tiene una idea exacta de lo que se quiere saber, el observador debe conocer el curso normal del evento que estudiara ademas de una hipotesis que explique en el evento que esta estudiando, de esta forma trata de validar su hipotesis y si suceden hechos que su hipotesis no predecía analizarlos escrupulosamente.

Observación Estructurada y No Estructurada
Observación no Estructurada llamada también simple o libre, es la que se realiza sin la ayuda de elementos técnicos especiales.

Observación estructurada es en cambio, la que se realiza con la ayuda de elementos técnicos apropiados, tales como: fichas, cuadros, tablas, etc, por lo cual se los la denomina observación sistemática.

Observación de Campo y de Laboratorio
La observación de campo es el recurso principal de la observación descriptiva; se realiza en los lugares donde ocurren los hechos o fenómenos investigados. La investigación social y la educativa recurren en gran medida a esta modalidad.
La observación de laboratorio se entiende de dos maneras: por un lado, es la que se realiza en lugares pre-establecidos para el efecto tales como los museos, archivos, bibliotecas y, naturalmente los laboratorios; por otro lado, también es investigación de laboratorio la que se realiza con grupos humanos previamente determinados, para observar sus comportamientos y actitudes.

Entre los metodos de observación tenemos:

La Entrevista
Es una técnica para obtener datos que consisten en un diálogo entre dos personas: El entrevistador "investigador" y el entrevistado; se realiza con el fin de obtener información de parte de este, que es, por lo general, una persona entendida en la materia de la investigación.

La Encuesta
La encuesta es una técnica destinada a obtener datos de varias personas cuyas opiniones impersonales interesan al investigador. Para ello se utiliza un listado de preguntas escritas que se entregan a los sujetos.
Riesgos que conlleva la aplicación de cuestionarios
a. La falta de sinceridad en las respuestas (deseo de causar una buena impresión o de disfrazar la realidad).
b. La tendencia a decir "si" a todo.
c. La sospecha de que la información puede revertirse en contra del encuestado, de alguna manera.
d. La falta de comprensión de las preguntas o de algunas palabras.
e. La influencia de la simpatía o la antipatía tanto con respecto al investigador como con respecto al asunto que se investiga.

Meta b: Posibles factores que la afectan
Como comentaba en la meta anterior, el hacer observación, no solo consiste en observar la caracteristica del sujeto deseada, también debemos garantizar hasta cierto punto que la información que estamos obteniendo sea real.

En una observación intervienen 3 entes, el observador, el observado y el instrumento de observación, entonces si queremos buscar factores que afecten la observación debemos buscar en ellos.

El instrumento de observación puede afectar la observación cuando este no esta bien calibrado (un termometro que marca mal la temperatura), cuando no se disponga de un instrumento adecuado para la medición, cuando el instrumento afecte al observado (como el detector afecta la forma en que se comporta el neutrón).

El observador puede afectar la observación con su mera presencía (afectando el comportamiento normal del observado), si realiza una observación no sistemática el observador puede pecar en su observación por ejemplo teniendo ideas preconsevidas del observador (si es transito es un tranza), o no dando suficiente tiempo para observar todos los matices de la situación. Si realiza una observación sistemática, puede que desprecie eventos importantes pues estos no se ajustan a su hipotesis.

Meta c: Validación de observaciones.
Viendo que podemos tener errores en nuestra observación debido a una gran gama de factores, una caracteristica importante de nuestra observación es que sea validable.

¿Cómo validar nuestra información?
Podemos validar nuestra información de 2 maneras diferentes, podemos realizar un Diseño de experimentos y realizar la observación en base a esto, y posteriormente realizar la prueba correspondiente.
O También, dado que ya obtuvimos los datos de alguna manera, podemos realizar una simulación de nuestro objeto de estudio usando estos datos, si los resultados obtenidos son parecidos a la realidad podemos tener mayor confianza sobre la veracidad de estos.

Existen diversos tipos de diseños de experimentos, es muy importante resaltar que aunque existen software que es capas de realizar hipotesis con base a diseños de experimentos, estos siempre debes hacer antes de realizar la observación.
Se anexa un link sobre Diseño de experimentos, para los diferentes tipos solo siga los links y no se preocupe por las formulas su software realizara todo este trabajo.
http://en.wikipedia.org/wiki/Design_of_experiments

Meta 2 aplicaciones y/o ejemplos:
La observación se puede aplicar a casi cualquier cosa, pero es de especial importancia en la ciencia, como ya vimos en las metas anteriores la observación debe ser realizada siguiendo una metodología, pero fuera de eso la observación se basa en la obtención de información sobre un evento de nuestro interes.

Muchas empresas (grandes y medianas) realizan test a sus candidatos para poder catalogarlos, esta es una observación en base a sus respuestas para decidir sobre su contratación.