Tip:
Highlight text to annotate it
X
En este video mostramos tres ejemplos de modelos discretos en los que se hace uso de números generados aleatoriamente.
Estos modelos probabilísticos
tienen bastante predicamento entre los investigadores de algunas ciencias
para modelizar fenómenos con una componente bien aleatoria,
bien imposible o muy difícil de modelizar por mecanismos deterministas,
ya sea por su complejidad o por la dificultad de su cálculo.
Ilustramos este tipo de modelos mediante tres ejemplos:
El cálculo aproximado de la integral de una función real mediante el denominado método de Monte Carlo,
Un ejemplo de Crecimiento Fractal mediante Agregación Limitada por Difusión,
Y la simulación del posible movimiento de una bandada de pájaros
Integración por el método de Monte Carlo
En este primer ejemplo, mostramos una manera relativamente sencilla
de calcular de forma aproximada la integral definida de una función real de variable real.
Aunque existen métodos numéricos no demasiado complicados para realizar este cálculo mediante algoritmos deterministas,
utilizamos aquí un procedimiento totalmente distinto, y algo más divertido.
El proceso consiste en dibujar la gráfica de la función entre los extremos de integración deseados
y situarla en una diana (figurada) a la que vamos a lanzar dardos virtuales.
Es decir, nos imaginamos que nos situamos frente al rectángulo diana,
y lanzamos un dardo sin mirar muy bien a dónde.
Luego, comprobaremos si el dardo ha caído por arriba o por debajo de la gráfica de la función.
Esto es, elegimos al azar un punto del rectángulo (x,y)
y vemos si y es menor o igual que f de x, ¿ y≤f(x) ó y>f(x) ? o si y es mayor que f de x.
El método de Montecarlo, aplicado a este problema,
consiste en lanzar una enorme cantidad de estos dardos, digamos 50000
y contar cuántos de ellos caen por debajo de la gráfica.
Dado que la integral de la función f nos da el área comprendida entre dicha función y el eje X,
puede usarse la proporción de puntos que caen bajo la curva
para estimar el valor del área bajo la gráfica en la figura
y de ahí (no directamente, pero sí con un pequeño cálculo),
estimar el valor de la integral de f en el intervalo considerado.
Como pequeño ejercicio matemático,
le sugerimos que escriba usted la fórmula exacta de este cálculo ANTES de inspeccionar el código de la simulación.
La simulación que estamos viendo permite hacer exactamente esto.
Puede usted elegir la expresión de la función f,
determinar el rectángulo de juego
(lo que incluye elegir los extremos de integración),
y el número de puntos a utilizar.
Al pulsar en el botón de “Ejecutar Monte Carlo” se generarán dichos puntos, que se mostrarán usando colores diferentes según donde caigan,
y se realiza el cálculo necesario.
La simulación incluye también una aproximación de esta integral
por el método numérico de Romberg, que suele ser bastante preciso.
Esto nos permite comparar nuestro resultado
con el valor “real” (entre comillas)
obtenido por el método de Romberg
y comprobar cuánto de bueno es este método de Monte Carlo.
Puede mejorar la precisión del método ajustando los extremos en Y del rectángulo.
Es decir, haciendo más pequeña la diana.
El programa estima estos extremos si selecciona usted esta opción de aquí
También puede mejorar la precisión del cálculo incrementando el número de puntos.
Pero debemos hacerle una advertencia, no vaya más allá de 500.000
o tendrá que esperar un buen rato.
El método de Monte Carlo se denomina así en honor al Casino de Monte Carlo, en el Principado de Mónaco, y al uso del azar que se hace en él.
Aunque este método pueda parecerle poco preciso,
en comparación con métodos numéricos bien conocidos, como el que hemos mencionado de Romberg,
lo cierto es que resulta bastante sencillo de implementar.
Sólo hace falta un generador de números aleatorios y un poco de paciencia.
El código de nuestro ejemplo le muestra cómo generar números aleatorios para este problema.
La utilidad del Método de Monte Carlo se hace realmente patente cuando el problema resulta difícil de resolver por métodos deterministas.
Como ejemplo, intente resolver este mismo problema de integración con métodos numéricos tradicionales para una función real de dos variables: z=f(x,y)
definida en un rectángulo del plano.
Ya le advertimos que la cosa se complica bastante.
Sin embargo, la generalización del Método de Monte Carlo para problemas multidimensionales es trivial…
aunque no lo sea su visualización!
Claro que, si lo piensa usted un poco, no es preciso en absoluto dibujar nada para realizar el cálculo del área por este método.
Nosotros lo hemos hecho, únicamente para ilustrar mejor el proceso.
Crecimiento Fractal mediante Agregación Limitada por Difusión
Se denomina Agregación Limitada por Difusión
a un proceso en el cual un cierto número de partículas
se mueven de manera aleatoria debido a un (así llamado) movimiento Browniano,
moviéndose hasta que se van fijando unas a otras para formar agregrados de partículas.
Este proceso fue propuesto por primera vez por los investigadores en Física de la materia condensada, Witten y Sanders,
en un artículo científico de 1981, donde lo aplicaban a un proceso de agregación de partículas metálicas.
El proceso se puede aplicar, en principio, a cualquier sistema donde la difusión sea el mecanismo primario de transporte,
tales como la electrodeposición,
problemas de mecánica de fluidos para flujos entre dos placas planas paralelas separadas por una separación infinitesimal,
depósitos de minerales y otros.
Los agregados formados por este proceso suelen tener forma de conjunto fractal,
que son conjuntos de dimensión no entera
(con una peculiar definición de la palabra dimensión).
En el caso que mostramos aquí, la dimensión del conjunto que observamos se encuentra entre 1 y 2
Podemos explicar esto como sigue.
Conforme el agregado crece en tamaño,
el número de partículas (que tienen tamaño fijo, como vemos)
no es proporcional al radio del agregado, como ocurriría si fuera una estructura unidimensional.
Pero tampoco es proporcional al cuadrado del radio,
como lo sería en una estructura bidimensional.
En su lugar, el número de partículas es proporcional al radio elevado a una potencia no entera.
Esta potencia sería la denominada “dimensión fractal”.
La simulación que vemos construye uno de estos agregados de la siguiente manera.
Se suelta una partícula libre en un recinto, cerca de una partícula fija.
La partícula libre se mueve en cada paso de la simulación una unidad de medida de manera aleatoria.
Si encuentra a la partícula fija, se queda pegada a ella en la posición en la que haya chocado con la misma.
A continuación se repite el proceso una y otra vez, donde cada nueva partícula se va fijando a las anteriores.
Si alguna de ellas se aleja demasiado del centro, se considera perdida y se pasa a generar una nueva partícula.
El uso de los colores que hacemos en este dibujo es, sobre todo, para mejorar la estética.
Podemos acelerar el proceso de modo que veamos cómo se construye el agregado final más rápidamente.
El aspecto de este agregado es el típico de un conjunto fractal con estas características.
Por ser un modelo estocástico, el aspecto concreto de la estructura será distinto para cada ejecución de la simulación.
Aunque, y esto es lo importante, el aspecto cualitativo de todas las estructuras que creemos será similar.
BANDADAS DE PÁJAROS
El último ejemplo que mostramos es el de la simulación de un posible movimiento para una bandada de pájaros.
El ejemplo está inspirado en el programa de vida artificial "Boids”
creado por Craig Reynolds en 1986,
y que simulaba precisamente el movimiento de una bandada de pájaros.
Este programa es un ejemplo de “comportamiento emergente”,
que es la denominación que se da a comportamientos complejos
de un conjunto de individuos o agentes (la bandada) basados en la confluencia de una gran cantidad de comportamientos individuales realmente muy sencillos
por parte de cada uno de los agentes (cada uno de los pájaros).
En esta simulación, dotamos a cada pájaro, representado aquí por una flecha que muestra su posición y velocidad en cada instante, de un sencillo algoritmo que utiliza para corregir su dirección en cada momento.
(La celeridad – es decir el módulo de su velocidad - se considera constante e igual para todos los pájaros de la bandada.)
Nosotros hemos simplificado las reglas del programa original
y dotamos a cada pájaro únicamente de la capacidad de promediar la velocidad de los pájaros cercanos,
es decir, que se encuentran a una distancia menor que un umbral dado, ajustándose a dicho promedio.
Eso sí, cada pájaro introduce en este cálculo un pequeño error, aleatorio,
que hace el movimiento algo más errático y natural.
Puede sofisticarse esta sencilla regla e incluso añadirse reglas adicionales
que permitan a la bandada evitar obstáculos o lograr objetivos concretos, como por ejemplo viajar hacia el Sur.
Este tipo de modelos, quizá por ser tan visualmente atractivos, se han utilizado en diversas películas de Hollywood
para visualizar movimientos de grupos de animales digitales.
Pero también tienen otras aplicaciones como la visualización de la información y ciertas tareas de optimización.