Simulacion Tirar dados utilidad

Iniciado por Raiden, 14 Septiembre 2021, 19:43 PM

0 Miembros y 1 Visitante están viendo este tema.

Raiden

Buenas
En unos de los ejemplos sobre funciones me tope con uno que incluia la funcion rand y srand.
La pregunta que me hacia era por que es util la tecnica de simulacion computarizada de situaciones reales.
Todavia no le he encontrado utilidad.
Un ejemplo de simulacion es tirar los dados 6 millones de veces con codigo para verificar que cada tiro va a ser masomenos igual al final, pero esto lo saco de la teoria de la probabilidad por ende no hace falta el codigo para obtener esa conclusion.

Otro ejemplo de simulacion son las torres de hanoi, pero tambien para hacer el codigo se necesita una solucion previamente que se obtiene por ejemplo a traves de la observacion y experimentacion, en conclusion tampoco no le veo utilidad en este sentido hacer un codigo para simular tal situacion real.

Alguien sabe de alguna simulacion de situaciones reales en codigo que se pueda compartir o que les haya servido para ver en donde le ven utilidad la simulacion computarizada.
Gracias por leer.
Saludos.



Locura_23

Las simulaciones computarizadas de la vida real sirven para recolectar datos y predecir resultados, e incluso entrenar en ciertas areas. Por ejemplo, la fuerza áerea de un país utiliza sistemas de simulación de vuelo. Otro ejemplo, un grupo de ingenieros mecánicos puede simular cómo una pieza va a reaccionar dados ciertas fuerzas en un sistema.

ThunderCls

La simulacion computarizada es muy usada en el campo cientifico para la predicción astronómica, predicción y modelización climática y AI entre otros
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

fzp

Creo que Raiden pregunta, en concreto, por la simulación de situaciones aleatorias. Es cierto que la simulación mediante ordenadores cada día se usa más en Física, Ingeniería, Economía, IA, etc. Suelen ser casos que estan determinados por leyes matemáticas conocidas pero de difícil resolución analítica, por lo cual se suele utilizar una aproximación numérica, que se realiza mediante ordenadores. Por ejemplo, por citar una entre montones: la simulación del efecto de un determinado perfil de objeto (de un barco o de una avión o de un edificio o de un fórmula 1) bajo la acción de un fluido (aire o agua) que se hacía mediante construcción de maquetas a escala (túnel de viento, canal de agua) hoy se puede estudiar/complementar con estudios mediante ordenador. Las leyes ya eran conocidas antes de los ordenadores, pero no se podían aplicar -salvo en caso muy simples- debido a su complejidad matemática; y por éso se ayudaban con maquetas a escala, etc. Hoy dia esas ecuaciones pueden resolverse de forma muy aproximada numéricamente mediante ordenadores.

Pero Raiden pregunta por la utilidad de simulaciones aleatorias, no simulaciones de fenómenos sometidos a leyes matemáticas, aunque sean muy complejas. Raiden solo piensa en términos de probabilidad y por ello especula que para qué vamos a simular nada si la probabilidad la podemos calcular previamente en términos matemáticos. Pero el caso es que la simulación no se hace para comprobar probabilidades (salvo la del comportamiento de la función informática que simula azar, para ver si realmente es azarosa). Se utiliza para simular casos azarosos en la realidad. ¿Cuáles pueden ser esos casos, pregunta Raiden.

Se me ocurre primero: los juegos. Por ejemplo, si quieres jugar en tu casa con varios amigos o familiares un Loto, pero no tienes ese juego con un bombo (o una bolsa con canicas con cada número), puedes simular el sorteo con un ordenador. Desde luego a mi lo que me gusta es el bombo, tiene su ambiente. Pero en caso de necesidad, el ordenador da el pego. Incluso con tu bombo tienes un número de cartones limitados. ¿Quieres fabricar nuevos cartones con números distintos? Si los haces a mano probablemente tengan un sesgo personal. Si los haces con ordenador y una buena función rand, no.

¿Quieres rellenar boletos de lotería al azar? ¿Si lo haces con números que se te ocurren tendrán casi seguro un sesgo personal inconsciente.

Hay sociedades-organizaciones (o antes las había, no sé ahora) que se dedican a rellenar macro-quinielas con muchísimas múltiples. Como una sola persona no puede afrontar el gasto, se suelen agrupar en bastantes socios. De esa forma, aunque nadie se hace millonario, pero creo que suelen tener algunas ganancias; por supuesto en el cómputo general, no en una jornada futbolística en particular.

Ahí hay que hacer una mezcla entre conocimiento de fútbol + algo de azar. Pues una forma podría ser un programa con unas directrices generales proporcionadas por gente que sabe de fútbol (qué jugadores, qué entrenadores, cómo están en una temporada concreta, etc.) combinada con una parte de azar. La parte de azar la proporcionaría el ordenador.

En juegos de ordenador donde exista algoa parecido a un "entorno geográfico o escenario". No necesariamente playas, rios, montañas, puede ser un laberinto, plataformas, etc. Puede hacerse programando previamente cada escenario y almacenarlo. De hecho hay unos pocos así, con escenarios progresivamente más dificultosos. Pero podría hacerse creando geografías o escenarios "al azar" a partir de ciertos elementos comunes (playas, ríos, cordilleras, paredes, pozos de caída, laberintos, etc,). De ese modo tendrías juegos literalmente distintos cada vez que jugases. Igualmente podría hacerse con las habilidades/capacidades de los personajes que fuesen manejados por ordenador.

Para simular efectos en una guerra. Por ejemplo tienes una serie de bombas atómicas con determinadas potencias. Por mucho arsenal que tengas no puedes abarcar todos los posibles objetivos de la Tierra. Puedes hacer simulaciones (físicas de primer impacto y económico-políticas de repercusiones posteriores) según los objetivos. Difícilmente podría hacerse éso solo con probabilidades. (Estoy seguro de que los estados mayores de las grandes/medianas potencias tienen simulaciones de ese tipo).

Ídem con impactos en la Tierra de objetos celestes. Evidentemente no los grandes que acabarían con todo y de los cuáles además se conocen sus órbitas. Pero los mediano-pequeños pero de suficiente energía para producir daños potenciales elevados. Puedes establecer un rango de masa-velocidad-órbita-aproximada que produzcan sobrel el planeta en conjunto un efecto parecido, pero... El daño concreto localizado va a depender de dónde inpacten ¿Cómo puedes estudiar esos daños y la actuación posterior? Pues solo se me ocurre simulando impactos de esos objetos parecidos en masa-energía en distintos sitios. Evidentemente el resultado dependera de lo mejor o peor que sea esa simulación (daños físicos, calidad de los accesos al lugar, incidencia en la producción económica del lugar, etc,). Pero aún teniendo bien evaluado ese impacto, la manera de hacerte una composición de lugar de los efectos posteriores a medio-largo plazo sería mediante varias simulaciones con lugares de impacto al azar.

Así de primeras son las cosas que se me ocurren de utilidad de las simulaciones sobre situaciones de azar. En general, de todas aquellas situaciones de la vida que estén sometidas al azar (y de las cuales se tenga una forma de evaluar consecuencias subsiguientes).

FFernandez

Al existir varios tipos de azar?? Parece no tener sentido verdad, pero si existen varios tipos catalogados por su dispersión, o sea, el nivel de caos que impera en sus apariciones. Si me explico mejor es la aparición de conjuntos a distintas dispersiones. Cuanto mayor es este ultimo mas caótico es el suceso. Como consecuencia más difícil de predecir por encima de su propia probabilidad de que aparezca. A veces sin querer nos situamos por debajo en la simulación computarizada. Menos útil, mas trabajo... indica que hay un error en los datos introducidos o en la forma de tratarlos. Encontrar ese error es un avance sustancial.

Si conseguimos simular un evento real al 100%, es útil como ya han dicho compañeros.

Serapis

#5
Cita de: Raiden en 14 Septiembre 2021, 19:43 PM

La pregunta que me hacia era por que es util la tecnica de simulacion computarizada de situaciones reales.
Todavia no le he encontrado utilidad.
El ejemplo más a mano con el que puedes confrontar su 'utilidad' es la predicción del clima.
Es una situación real además y en tiempo real (no es tan útil predecir como fue el clima hace doscientos años en un sitio concreto). No vale de nada una predicción hipotética, debe tener en cuenta la situación geográfica del lugar, la fechas de año, temperatura, etc... cambiante con cada hora del día. No todas las variables en juego están a disposición en forma de datos sensados, así muchos deben ser simulados aunquedentro de un rango dado que sí puede ser conocido. Son simulaciones con muchos datos en juego (hay muchos superordenadores dedicados a esa tarea en exclusiva).
No todo el mundo sacará provecho de la predicción climática dada por supuesto, en ciertas zonas  tendrá más utilidad que en otras, y los sectores de negocios igual... por ejemplo los agricultores y ganaderos pueden prestar más atención que el resto porque muchas de las tareas que precisan hacer son dependientes del clima. Los trayectos de aviones y barcos, también dependen bastante del clima, especialmente del viento. Cambiar la ruta por un clima especialmente desfavorable, es algo habitual. Los marineros en general y los  pescadores en particular necesitan conocer el estado de la mar con cierto detalle, luego una predicción exitosa a medio plazo (3-5) días les será de mucha ayuda para elegir una ruta o destino (para los pescadores donde fanear), también una predicción que hable de un cambio radical del clima con apenas una anticipación de 1-5 horas puede implicar una gran diferencia.

E incluso el modelado del comportamiento animal para comprender como fluctúan y afectan ciertos cambios en el ecosistema. La aparición de una nueva especie de insecto puede poner a prueba la fauna local, una simuación podría anticipar posibles problemas y prevenir soluciones antes de que suceda. Aunque cuando se trata de poner dinero, muchos gobiernos no están por la labor y la realidad se ve sorprendida por cuestiones que pudieron haberse previsto con simulaciones.
Puede ponerse por ejemplo el caso de cauces de ríos con crecidas, por lluvias copiosas, mejorarse sistemas de evacuación en casos de terremotos y volcanes en zonas donde se prodigan.
Los japoneses tienen un buen historial en simulación de terremotos... crear edificios con soluciones hipotéticas y esperar que un terremoto del índice esperado lo sacuda para comprobar y comprender como la solución prevista lo afecta, sale muy caro y puede suponer años hasta que tal situación se diera justo donde fue construído el edificio. La simulación ahorra muchos de esos costes, e incluso puede proveer una propuesta de sitio propicio donde construirlo para una demostración real con posibilidades de éxito (que acontezca un terremoto dentro del espacio temporal previsto tras su finalización, pero que no se eternice).

Otro caso de amplio interés es la propia medicina. Pueden hacerse muchas simulaciones de operaciones no solo como sistema de aprendizaje para nuevos cirujanos, sino también ante nuevos retos exprimentales sobre operaciones que antes se veían imposibles, conocer con anticipación situaciones que inicialmente no se habían previsto ofrece la oportunidad de buscar soluciones que eviten ciertos daños que antes solo se conocerían y de la que se adquiriría práctica a base de la experiencia real.

Todo el modelado de proteínas y ADN también encuentra utilidad práctica. Muchos sistemas biológicos están siendo simulados. En realidad a futuro habrá muchísimo trabajo en este campo, que se irá especializando (puede extenderse de modo general a la simulación de todo tipo de sistemas).



En todos ellos gran parte de los datos serán reales, pero cuando hacen falta datos de los cuales es difícil obtenerlos o pretender conocerse ciertos límites extremos, toca tirar a menudo de datos aleatorios que aproximen el modelo lo más fielmente posible a la realidad. No basta una simulación suelen hacerse miles con ligeras variaciones en las condiciones...

Siempre habrá variables que deban simularse al azar (por ejemplo cuando se tratan de simulaciones de accidentes). Imagina el diseño de un nuevo material o modelos cuyo precio es tan caro, que hacer ensayos físicamente sale bastante caro (cada experimento podría comportar la destrucción del modelo).
Suele ser el caso de modelado de piezas de diseño de ingeniería, descubrir algo tan simple como que un motor no cabe en el espacio destinado en el chasis, saldría muy costoso si tuviera que descubrise después de ser fabricado, cuando la cadena de montaje ya está en marcha y el material (piezas) ya fueron pedidas y fabricadas.
Incluso aún cuando una simulación siguiera siendo tan cara como el ensayo físico, todavía podría ahorrarse el exponer vidas en riesgo (imagina el diseño de un módulo espacial en situaciones de ingravidez y/o exposición a cierto tipo de radiaciones puntuales, o probar prototitos de aviones, mejor si ya hay simulaciones que demuestran su validez).

La fase de debug, en programación es también una simulación, aunque no necesariamente siempre se precise de datos aletorios, muy a menudo es suficiente con datos hipotéticos, con el simple objetivo de asegurarse de que el programa cumple las especificaciones solicitdas y que queda libre de errores (aunque a la luz de las interminables versiones y actualizaciones algunas empresas no son eficaces en tal proceso).

Raiden

Hola gracias por responder.
La pregunta apunta a la utilidad de las simulaciones de situaciones reales por computadoras.
En funcion a lo que he podido leer por aqui e internet la utilidad que puedo ver es la de que se hacen las simulaciones por una cuestion practica, ya sea por ahorro de tiempos fisico o costos materiales. El problema era que al tirar dados o jugar a las torres de hanoi podia ver el ahorro de tiempo fisico pero no asi el de los costos al poder crear virtualmente objetos para manipularlos como si fueran de verdad.
Tmb al hacer simulaciones con  aleatoriedad da una sensacion de una  interaccion mas natural entre ordenador y usuario. (Por lo menos es lo que por ahora esta a mi alcance a la hora de realizar alguna simulacion)

Tmb existe una duda que reside en la eficacia de las simulaciones cuando tienen por objeto a los sistemas complejos, que tan util se le puede asignar a una conclusion en base a simulaciones con variables aleatorias que daran como resultado conclusiones estimadas. Por ejemplo, se puede dar como cierta la afirmacion de un biologo al afirmar con sus codigos de c++ que es mejor sacar una especie de un ecosistema porque llevaria sino a la destruccion del 50% del mismo? (en una primera vision diria no es util armar simulaciones de este tipo)
Pero eso supongo (tal ves sea erroneo) ya es una discusion que requiere conocimiento cientifico que no se relaciona directamente con generar codigo C C++ sino con los metodos cientificos vigentes..
Gracias por responder, creo que con esto ya podre responder la pregunta publicada  :laugh:
Saludos hasta la proxima  ;D