Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

17
Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis Algoritmos Paralelos Glen Rodríguez

description

Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis. Algoritmos Paralelos Glen Rodríguez. Aplicaciones. Redes eléctricas Redes de tránsito Cadenas de Markov Solución de algunos tipos de ecuaciones diferenciales parciales. Problema. - PowerPoint PPT Presentation

Transcript of Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Page 1: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Algoritmos Paralelos

Glen Rodríguez

Page 2: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Aplicaciones

Redes eléctricas Redes de tránsito Cadenas de Markov Solución de algunos tipos de

ecuaciones diferenciales parciales

Page 3: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Problema

Obtener vector x (tamaño nx1) que cumple: Ax=b.

Donde b es un vector conocido del mismo tamaño de x, y A es una matriz de tamaño nxn que cumple: A es NO SINGULAR Se puede escoger una matriz M no

singular tal que MA=I-L, y que |λ(L)| < 1 para todos los eigenvalues λ de L (no singular también)

Page 4: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Algoritmo

λ es un número real llamado eigenvalue si hay solución de Lu= λu

El problema se puede ver como: x=Lx + Mb = Lx + f

Si M=I, se puede demostrar que la sumatoria ΣLi converge a A-1 si i∞

En los ‘50s se demostró que un “random walk” puede aproximar esta sumatoria.

Page 5: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Algoritmo x0=0; xm=b+Lxm-1 donde xm=m-esima

aproximación a x

Page 6: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

l ij

Page 7: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis
Page 8: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Pseudocódigo1. Calcular pij, vij. Se puede asumir que pi=constante

(ej.:0.01). Entonces se puede hacer pij iguales en una fila i =(1-pi)/numero de pij ≠0 en fila i=ti; vij=lij/ti. O se puede hacer pij= (1-pi)* | lij | /Σ |lij| en fila i; vij= Σ |pij| en fila i / (1-pi)

2. For elem=1 to n3. x_sum=0;4. for k=1 to m5. v_prd=1;; ult=entero entre 1 y n tal que lult,elem ≠0;

x_est=bult/pult

6. Escoger r= real aleatorio unif. entre 0 y 17. While r<=1-pult

8. Asociar r a un valor “escog” usando las pult,j 9. v_prd= v_prd* vult,escog

Page 9: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Pseudocódigo

9. x_est=v_prd*bescog/pescog

10. ult=escog11. end while12. x_sum= x_sum+x_est;13. end for14. x[elem]= x_sum/m;15. end for

Que se puede paralelizar: cualquiera de los for.Mejoras: una vez conocido x[1],…x[q], usar esos

valores para x[q+1],…,x[n]

Page 10: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Redes eléctricas

Sólo necesitamos 3 leyes: Ohm: ΔV=IR entre los extremos de un

conductor de resistencia R 1ra de Kirchhoff: Σ Iin = Σ Iout en cada

unión entre 2 o más conductores 2da de Kirchhoff: Σ ΔV = ΣFuentes en

un loop ó lazo cerrado.

Page 11: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Ejemplo

Page 12: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Redes de tráfico Se usa solo la 1ra Kirchhoff.

Page 13: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Resolviendo Ec. de Poisson con Montecarlo

Sea la ecuación de Poisson:

Con fuente sinusoidal : -2π2 sen(π x) sen(π y) Y cero en todas las fronteras En diferencias

finitas:

Page 14: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Solución con “random walks” De un punto (i,j) comenzar el “random

walk”.La probabilidad de moverse a cualquiera de los 4 puntos vecinos es ¼.

Generar un número aleatorio para escoger el vecino.

Añadir g(x,y) en la nueva posición Repetir hasta llegar a una frontera Esto fue solo UNA “random walk” Después de N “random walks” el estimado de

u(i,j) es:

Page 15: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Paralelización de esta solución Hacer el siguiente proceso para todos los

puntos Comenzar en una frontera

De afuera hacia adentro Fila por fila Actualizar (intercambiar) data en el límite entre

procesadores Actualizar el walk dentro de los puntos de un

procesador Si el walk sale de un procesador, informarle al otro

procesador

Page 16: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Metrópolis Se usa para integrales con funciones de peso. Genera un random walk pero guiado por una función de

peso w(x). Ejemplo en 2-D comenzando de un punto (xi,yi):

1. Escoger δ, el step size

2. Generar dos aleatorios R1, R2 uniformes en el rango [-1,1]

3. El nuevo punto será1. xT

i+1 = xi + δR1

2. yTi+1 = yi + δR2

4. Evaluar el ratio de w en el punto actual vs. el punto anterior1. r= w(xT

i+1 ,yTi+1) / w(xi,yi)

Page 17: Lab.3: Solución de sistema de ec. lineales con Montecarlo / Metropolis

Metrópolis5. Si r>1 aceptar el nuevo punto y regresar a (2)

1. xi+1 = xTi+1 ; yi+1 = yT

i+1

6. Si r<1 aceptar el nuevo punto con probabilidad r. O sea, generar un aleatorio uniforme η en [0, 1] y aceptar el punto solo si r>η (hacer lo mismo que en el paso 5)

7. Caso contrario, rechazar el nuevo punto y volver a (2)

El step size no debe ser ni muy chico ni muy grande.

Los puntos obtenidos se usan luego para integrar, como en MonteCarlo (Constante*n/N).

La paralelización es similar a la discutida para las integrales con Montecarlo