Duda con algoritmo montecarlo

Aziwar

Hola! A ver que no me aclaro con este algoritmo y en todas las webs veo lo mismo..

El algoritmo se supone que funciona resolviendo el problema y devolviendo un nº p, q si es => al p que fijas previamente es correcto o no, no? Pero este nº p lo devuelve en función de una solución correcta asi que... si ya sabes de antemano la solución, para que aplicar el algoritmo?

GaN2

Sacado de mis apuntes de MTP de este año:

  • Da la respuesta exacta con alta probabilidad.
  • En algunas ocasiones dan una respuesta incorrecta.
  • No se puede saber si la respuesta es correcta.
  • Se reduce la probabilidad de error alargando la ejecución.

Es decir, tu usa el algoritmo para sacar una solución (que puede ser correcta o incorrecta). Se repite el algoritmo las suficientes veces para saber que la respuesta que mayor número de veces se da es la correcta.

Ejemplo práctico: Los Pelayo, famosos en el mundo entero por haber reventado muchos casinos jugando a la ruleta, utilizaban este algoritmo para saber cuales eran los números que con mayor tendencia salían. Cogian tiradas durante días, las metían en un programa, usaban este algoritmo y les salía los números que mayor número de veces salían.

Aziwar

pero y de donde sacas el % de probabilidad, lo q es decir el número "p"

GaN2

No tengo ni idea, los vimos a una semana del examen y solamente la teoría, de todos modos si quieres te subo las transparencias a algún lado y les echas un vistazo, porque parece que está bien explicado en ellas.

Aziwar

si ponen que tiene que devolver un nº p entre 0'5 y 1, que se usa para resolver problemas en los que la solución no se puede hallar por otros métodos sin llevarle mucho tiempo, y explica el rollo de los nº primos... no

si no...si las subes a algun lado calidad xD

GaN2

Ale, aqui te lo dejo:

http://www.megaupload.com/?d=5PICRQW1

Aziwar

jajaja me da a mi que todos los profesores usan las mismas... son como las que tengo yo, y no me aclaro jeje

gracias! xD

Poisonous

Me acuerdo que solian preguntar si es p-correcto. Lo que no me acuerdo es como se sabia xd

Aziwar

Yo mirando exámenes y tal lo que más he visto es por ejemplo:

"Dadas dos matrices, A y B, diseñar un algoritmo probabilista de Montecarlo que compruebe si B
es la matriz inversa de A. Señalar probabilidad de acierto, así como el margen de error."

O problemas así parecidos, pero es que ni idea de como empezarlos

LOc0

#9
Yo cogería el algoritmo determinista y le quitaría cosas, anotando qué importancia tiene lo que quitas para poder decir luego:

El resultado es: X

La probabilidad de acierto es: Y (ya que has quitado comprobaciones para que vaya más rápido que el algoritmo determinista).

En el caso de la inversa, un algoritmo determinista sería multiplicarlas y comprobar si el resultado es igual a la matriz identidad. La complejidad de la multiplicación de matrices es O(n3), pero puedes multiplicar sólo la fila1 por la columna1, la fila 2 por la columna 2, etcc para ver si la diagonal es 1 y luego de forma aleatoria vas calculando ALGUNAS posiciones restantes a ver si son 0 (pero no todas porque eso sería como hacerlo con el determinista).

Cuantos más "ceros" busques más fiabilidad tendrá tu respuesta.

¿Se entiende la idea?

Salu2 ;)

Aziwar

si la idea la entiendo lo q no entiendo es lo de la probabilidad. Cuantas iteracciones hacer por ejemplo, pq eso es lo que iria directamente relacionado con la probabilidad de acierto y el margen de error no?

LOc0

M1:

15|-8|-3
9|-5|-2
-5|3|1

M2:
1|-1|1
1|0|3
2|-5|-3

Para comprobar que M2 es la inversa de M1 (o viceversa) empiezas a multiplicar para obtener la diagonal principal. Te saldrá (ya que M2 es realmente la inversa):

M1 * M2:

1 x x
x 1 x
x x 1

Para estar 100% seguro de que M2 es la inversa deberías comprobar que todas las 'x' son cero. Pero digamos que para ir más rápido sólo vas a comprobar una de esas 'x', es decir el 16% de los huecos. Si da la casualidad de que el hueco que has elegido (aleatoriamente) no es cero puedes decir YA y al 100% de seguridad que M2 no es la inversa. Pero si te sale cero, entonces sólo puedes decir que M2 es la inversa con una probabilidad de acierto del 16% (o una de fallo del 84%, que es lo mismo). Si lo modelas de tal forma que en cada iteración compruebes un hueco, en el peor de los casos necesitarías 6 iteraciones para dar una respuesta con una probabilidad del 100%

Salu2 ;)

PD: no tienes por qué empezar con la diagonal principal, pero es recomendable ya que como sólo son sólo 3 huecos, es más rápido descartar que M2 sea la inversa, ya que si te sale alguno distinto de 1, entonces automáticamente deduces que no lo es.

NeO_PedritO

#1 Estas estudiando en La Laguna? Si es asi y te da Alejandro, al menos el año pasado apenas entro nada de algoritmos probabilistas (a mi me callo explicarlos de forma general, suerte :) ), pero de todas formas es solo una pregunta, centrate mas en las otras si puedes xD

Aziwar

si jajajaj es que en verdad no entiendo casi ningun ejercicio de grafos, se lo que hacen todos los algoritmos pero despues no se como resolver los problemas xD

solo los de flujos y porque esta claro xD

NeO_PedritO

La parte de Inmaculada es la clave para aprobar, las otras a raspar lo que se pueda xD

Usuarios habituales

  • NeO_PedritO
  • Aziwar
  • LOc0
  • Poisonous
  • GaN2