Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿que Es Un Sistema Monte Carlo?

Iniciado por Haddd, 04 de Noviembre de 2005, 11:47:05 AM

« anterior - próximo »

Haddd

 Oigo mucho este concepto, en analitica de datos, y parece que es una forma de resolver ecuaciones...¿alguien puede explicarlo un poco ?

Muchas gracias

_Grey

 Hace poco busque sobre generacion de numeros aleatorios, y encontre un sistema llamado montecarlo, no sera eso????

Saludos.

vincent

 Creo que el tal Monte Carlo era muy prolífico porque también existe la distáncia de Monte Carlo....  :P  
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

abel.bernabeu

Cita de: "Haddd"Oigo mucho este concepto, en analitica de datos, y parece que es una forma de resolver ecuaciones...¿alguien puede explicarlo un poco ?

Muchas gracias
Buenas Hadd, el método de Montecarlo es una forma de abordar un cálculo (calcular el número Pi, obtener un número primo aleatorio, el área de un recinto de forma irregular, etc...). Lo de menos es qué calculas, sino la forma en que lo haces.

Durante el proceso se va iterando un cálculo que actuliza el estado interno del algoritmo. La precisión de nuestro cálculo dependerá del número de iteraciones realizadas.

Hasta aquí solo tenemos un procedimiento de cálculo iterativo. Lo que define un proceso de cálculo iterativo como un método de Montecarlo es que el estado para la próxima iteración dependa de la evaluación empírica de una variable aleatoria (además del estado actual).

Por ejemplo, imagina que tienes un predicado "Dentro(x,y)" para saber si un punto (x,y) está dentro de un recinto (un círculo, el contorno de un fractal, etc...).

Imagina que te pido que me calcules el área del recinto y no ves una forma fácil de dividirlo en partes cuya área sepas medir (ni siquiera integrando simbólicamente).

Una cosa que puedes intentar es evaluar Dentro(x,y) para una serie de puntos aleatorios en un intervalo que contenga a la región cuya área que quieres medir (o integrar, o como quieras llamarle).

Cada vez que pruebas un punto, actualizas el contador de puntos que están dentro o el de puntos que están fuera según toque.

Cuando el número de puntos evaluados tiende a infinito la probabilidad empírica de estar dentro es proporcional al área que quieres calcular y proporcional también al área del recinto de muestreo. Es decir calculas el área como:

Area_del_recinto_en_el_que_elijo_los_puntos * Puntos_dentro / (Puntos_dentro + Puntos_fuera)

Podrías plantear el problema de más formas, a ésta en concreto puedes llamarle un método de Montercalo.

Si buscas en google seguro que encuentras más ejemplos.

Este tipo de procedimientos tiene sentido para integrales de funciones de varias variables, pero se aplican en más contextos.

Un saludo.

abel.bernabeu

Cita de: "vincent"Creo que el tal Monte Carlo era muy prolífico porque también existe la distáncia de Monte Carlo....  :P
Creí que lo sabíais... es por el casino de Montecarlo (una metáfora del azar y tal).

Igual sólo bromeais y me tomais el pelo XD

Haddd

 Ok, me queda claro. Muchas gracias  (ole)  

vincent

 
Cita de: "abel.bernabeu"
Cita de: "vincent"Creo que el tal Monte Carlo era muy prolífico porque también existe la distáncia de Monte Carlo....  :P
Creí que lo sabíais... es por el casino de Montecarlo (una metáfora del azar y tal).

Igual sólo bromeais y me tomais el pelo XD
Bromear si, tomarte el pelo nunca!!  :)

Eres matemático o es que te mola el cálculo numérico?

En caso que seas matemático, como has llegado a un foro de desarrolladores de videojuegos?

Saludos y bienvenido!!  
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

abel.bernabeu

Cita de: "vincent"
Cita de: "abel.bernabeu"
Cita de: "vincent"Creo que el tal Monte Carlo era muy prolífico porque también existe la distáncia de Monte Carlo....  :P
Creí que lo sabíais... es por el casino de Montecarlo (una metáfora del azar y tal).

Igual sólo bromeais y me tomais el pelo XD
Bromear si, tomarte el pelo nunca!!  :)

Eres matemático o es que te mola el cálculo numérico?

En caso que seas matemático, como has llegado a un foro de desarrolladores de videojuegos?

Saludos y bienvenido!!
jeje

En realidad soy un matemático frustrado y ahora también un ingeniero a punto de salir del horno :)

Un saludo a todos.

ethernet

Cita de: "abel.bernabeu"y ahora también un ingeniero a punto de salir del horno :)

Bienvenido al club

tamat

 Cuando programé mi Raytracer decidí hacer iluminación por photon mapping, entonces vi que se hablaba mucho de aplicar Monter Carlo pero no entendí donde, el concepto de utilizar valores aleatorios lo entendí ligeramente pero en este contexto... creo que era para trazar la ruta que seguiran los photones o para ver qué puntos no estan dentro del campo visual de la camara. Alguien sabe en qué se usa?
Por un stratos menos tenso

senior wapo

 
Cita de: "tamat"Cuando programé mi Raytracer decidí hacer iluminación por photon mapping, entonces vi que se hablaba mucho de aplicar Monter Carlo pero no entendí donde, el concepto de utilizar valores aleatorios lo entendí ligeramente pero en este contexto... creo que era para trazar la ruta que seguiran los photones o para ver qué puntos no estan dentro del campo visual de la camara. Alguien sabe en qué se usa?
Creo que un Raytracer MonteCarlo es aquel que implementa antialias lanzando varios rayos por cada pixel para ver donde chocan y que color se generaría en ese punto de contacto. Dado que un raytracer representa una imagen mediante matemáticas, a un pixel de pantalla le corresponden infinitos rayos que pasan por el, asi que limitarse a lanzar uno por el centro no representa necesariamente el valor correcto del pixel.

Imagina que un pixel cuyo rayo central pasa infinitamente proximo, casi tocando, al borde de una esfera roja y lo pintas de negro (color de fondo poque no ha chocado). ¿ Es realmente correcto? Si lanzases el rayo un pelin a la izquierda chocaria con la esfera y deberia ser rojo. Si lo lanzases por su esquina superior izquierda seria negro. Si lanzases infinitos rayos y sumases sus resultados tendrias el color exacto (seria una forma de integrar digo yo).

Lo que se suele hacer es o bien dividir el pixel en cuadrantes iguales y lanzar subrayos por sus centros, o bien en lanzar rayos aleatoriamente por esos cuadrantes.

Observa como un rasterizer que dibuja scanlines (tarjetas graficas por ejemplo) no tiene estos problemas porque resuelve el color basándose en reglas estrictas que definen como ha de ser el error (borde derecho del triangulo no se dibuja, izquierdo si. El borde derecho se asume que lo pintará le borde izquierdo del triangulo contiguo). Por supuesto también se ven afectados por la precisión del zbuffer y el orden de dibujado de las primitivas.

EDITO: Ya he vuelto a soltar parrafada... Lo que quiero decir es que una tarjeta selecciona una primitiva y luego mira en que pixels aparece (siguiendo unas reglas que reparten el error), mientras que un raytracer elije un pixel y calcula que primitivas pasan por él.







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.