Sei sulla pagina 1di 14

Universidad de Chile

Facultad de Ciencias Físicas y Matemáticas


Departamento de Ingeniería Matemática

Laboratorio 3
Algoritmos Estocásticos usando Cadenas de Markov

Integrantes: Ignacio Fierro


Tabita Catalán
Profesor: Roberto Cortez
Auxiliar: Hagop Tossounian
Fecha de realización: 9 de octubre de 2019
Fecha de entrega: 17 de octubre de 2019
Santiago, Chile
i

Resumen
A veces se busca simular una v.a. con cierta ley π sobre un espacio E, pero esto puede ser muy
costoso computacionalmente. Un ejemplo de esto es cuando E es finito pero muy grande, y se conoce
π salvo por constante multiplicativa: ni siquiera es posible calcular la constante que normaliza.
El modelo de ferromagnetismo que se trabaja en la primera sección presenta este problema. El
problema se aborda con Markov Chain Monte Carlo, que consiste básicamente en simular un cadena
de Markov cuya probabilidad invariante sea π.

Laboratorio 3 MA4402-1 Simulación Estocástica


Índice de Contenidos ii

Índice de Contenidos

1. Modelo de Ising en Z2 1
1.1. Limitaciones prácticas y motivación para usar MCMC . . . . . . . . . . . . . . . . 1
1.2. Elección de G y R usando Metrópolis . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Algoritmo MCMC para el modelo Ising . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Comportamiento de MCMC para distintos parámetros . . . . . . . . . . . . . . . . 5
1.5. Una aproximación del βC de transición de fase . . . . . . . . . . . . . . . . . . . . . 6
1.6. Aproximación más precisa de βC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Problema del vendedor viajero 8

Índice de Figuras
1. Cantidad de 1s y −1s en la cadena, para distintos valores de N y β, con nf= 50 000. . 5
2. Spin medio para distintos valores de β, tomando N = 50, nf = 1 000 000 . . . . . . . . 6
3. Spin medio para distintos valores de β, tomando N = 50, nf = 1 000 000 . . . . . . . . 7
4. Mínimos locales obtenidos con el algoritmo de simulated annealing . . . . . . . . . . . 10
5. Caminos mínimos encontrados por el algoritmo para distintas sucesiones βn . . . . . . 10

Índice de Tablas
1. Mínimos encontrados por el algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 1

1. Modelo de Ising en Z2
Queremos modelar el ferromagnetismo en una placa metálica plana idealizada. Más especí-
ficamente, para N ∈ N grande, las moléculas de la placa se ubican en la grilla 2-dimensional
Λ = ΛN = {−N, . . . , N }2 ⊆ Z2 , y cada molécula posee un momento magnético o spin, el cual pue-
de estar orientado hacia arriba o hacia abajo. Por lo tanto, el conjunto de posibles configuraciones
es EN = {−1, 1}Λ . Dado x ∈ EN , y m ∈ Λ, denotamos x(m) ∈ {−1, 1} el spin del sitio m en la
configuración x. Trabajaremos en el espacio E de configuraciones con spin fijo hacia arriba en el
borde:

E := {x ∈ EN : x(m) = 1, ∀m ∈ ∂Λ}, donde ∂Λ = ΛN \ΛN −1


La energía de una configuración x ∈ EN viene dada por

[x(m) − x(m0 )]2 ,


X
H(x) =
m∼m0

donde m ∼ m0 denota que m y m0 son vecinos en la grilla, es decir, que están a distancia 1
(cada para m, m0 ∈ Λ aparece una sola vez en la sumatoria). Supondremos que la probabiliad de
que el sistema se encuentre en la configuración x ∈ E está dada por:

e−βH(x)
πx = ,
Z(β)

para β > 0 dado (1/β es la temperatura), y Z(β) = y∈E e−βH(y) es la constante de normalización.
P

Se desea realizar simulaciones de la distribución π ∈ P(E).

1.1. Limitaciones prácticas y motivación para usar MCMC


Calculamos:

|E| = |{−1, 1}ΛN −1 |


= 2|ΛN −1 |
2
= 2(2(N −1)+1)
2
≈ 24N

Para el caso N = 10, vemos que |E| ≈ 2400 ≈ 10120 . Esto nos permite ver que, en la práctica,
calcular Z(β) de forma explícita no es posible. Debido a esto, usaremos un algoritmo tipo Markov
Chain Monte Carlo (MCMC) para realizar simulaciones aproximadas de π.

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 2

Método Markov Chain Monte Carlo (MCMC)


Se desea simular una v.a. con ley π ∈ P(E). Para eso se propone simular una cadena de Markov
con alguna matriz de transición P , que posea a π como distribución invariante. Para eso, dada
una matriz markoviana R, se define P como sigue:
π
(
min{Rxy , πxy Ryx } si x 6= y
Pxy =
1 − z6=x Pxz
P
si x = y
Se puede probar que con esa matriz P se cumple la ecuación de balance

πx Pxy = πy Pyx , ∀x, y ∈ E,

lo que a su vez implica que π es P -invariante.


Una posibilidad a la hora de elegir R es usar el Algoritmo Metrópolis:

1. Elegir un grafo G conexo sobre E.

2. Definir: (
|{z : xz ∈ G}|−1 si xy ∈ G
Rxy =
0 si xy ∈
/G

Lo anterior nos permite definir el siguiente algoritmo:


Algoritmo 1: Markov Chain Monte Carlo
Result: Una cadena de Markov con matriz de transición P , tal que π es P -invariante.
1 Elegir un grafo G conexo y una matriz R.
2 Escoger X0 a gusto, y setear n = 0.
3 repeat
4 Dado x = Xn , elegir y = Yn de acuerdo a Rx
5 Definir el siguiente paso de la cadena:
π R
(
Yn con prob. α := min{ πxy Ryx , 1}
Xn+1 = xy
Xn con prob. 1 − α.

6 n←n+1

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 3

1.2. Elección de G y R usando Metrópolis


Consideramos el grafo G sobre E, donde la arista xy ∈ G ssi si x, y difieren en exactamente en
un sitio, ie, ssi:

∃m0 ∈ Λ\∂Λtal que x(m0 ) = −y(m0 ), y además x(m) = y(m), ∀m 6= m0

Es fácil ver que G es conexo. Para definir R usaremos Metropolis. Para x, y ∈ E tal que xy ∈ G:

Rxy = |{z : xz ∈ G}|−1

Notamos que, dado un x ∈ E, sus vecinos z en G son los estados que difieren exactamente en un
sitio. Podrían diferir en cualquiera de los |Λ\∂Λ| sitios libres, y una vez elegida la posición, solo hay
una posible configuración. Luego, la cantidad de vecinos de x ∈ G es |Λ\∂Λ| = (2(N − 1) + 1)2 =
(2N − 1)2 . Con esto:
(
1
(2N −1)2
xy ∈ G
Rxy =
0 xy ∈
/G
En particular, notamos que R es una matriz simétrica. Calculamos también:

πy Ryx
= e−β(H(y)−H(x))
πx Rxy
!
X  
0 2 0 2
= exp −β [y(m) − y(m )] − [x(m) − x(m )]
m∼m0

Por ser vecinos difieren únicamente en un sitio m0 . Eso implica que x(m) = y(m) ∀m 6= m0 y
que x(m0 ) = −y(m0 ).
!
πy Ryx X  
= exp −β x(m)2 + 2x(m)x(m0 ) + x(m0 )2 − x(m)2 + 2x(m)x(m0 ) − x(m0 )2
πx Rxy m:m∼m0
!
X
= exp −β 4x(m)x(m0 )
m:m∼m0

Concluimos que !
πy Ryx X
= exp −4βx(m0 ) x(m)
πx Rxy m:m∼m0

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 4

1.3. Algoritmo MCMC para el modelo Ising


Describa el algoritmo MCMC correspondiente a este caso usando pseudo-código. En base a él,
programe un método X=Ising(N,beta,nf) que simule nf pasos de la cadena, grafique su estado
cada cierta cantidad de pasos (mostrando la grilla Λ y asociando un color al spin −1 y otro a 1),
y retorne el estado final X, en caso que nf sea finito. Escoja los spins iniciales independientes con
ley 2Bernoulli(p) − 1, para algún p ∈ (1/2, 1) (por ejemplo, p = 2/3 ó p = 3/4).
Vemos que, al fijar x ∈ E, la distribución Rx es una uniforme en los vecinos de x.
Algoritmo 2: MCMC para el Modelo Ising
Result: Una cadena de Markov con matriz de transición P , tal que π es P -invariante.
1 Elegir p ∈ (1/2, 1), nf > 0. Escoger X0 como una matriz de (N − 1) × (N − 1), donde cada
entrada es una v.a. 2Bernoulli(p) − 1. Setear n = 0.
2 repeat
3 Dado x = Xn , elegir y = Yn como un vecino de x, usando una distribución uniforme.
Para esto basta elegir uniformemente un sitio m0 de x y cambiar su spin.
4 Definir el siguiente paso de la cadena:
( P 
Yn con prob. α := min{exp 4βx(m0 ) m:m∼m0 x(m) , 1}
Xn+1 =
Xn con prob. 1 − α.

5 n←n+1
6 until n > nf;
7 return Xn

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 5

1.4. Comportamiento de MCMC para distintos parámetros

Evolucion de la cantidad de 1s y −1s, Evolucion de la cantidad de 1s y −1s,


para β = 0.05 y N = 50 para β = 6.00 y N = 50
10000 10000
-1 -1
1 1
8000 8000
Cantidad de 1s y −1s

Cantidad de 1s y −1s
6000 6000

4000 4000

2000 2000

0 0
0 1 2 3 4 5 0 1 2 3 4 5
Tiempo ×104 Tiempo ×104

(a) β = 0.05, N = 50 (b) β = 6.00, N = 50

Evolucion de la cantidad de 1s y −1s, Evolucion de la cantidad de 1s y −1s,


para β = 0.05 y N = 100 para β = 6.00 y N = 100
40000 40000 -1
-1 1

35000 1 35000
Cantidad de 1s y −1s

30000 30000
Cantidad de 1s y −1s

25000 25000

20000 20000

15000 15000

10000 10000

5000 5000

0 0

0 1 2 3 4 5 0 10000 20000 30000 40000 50000


Tiempo
Tiempo ×104

(c) β = 0.05, N = 100 (d) β = 6.00, N = 100

Evolucion de la cantidad de 1s y −1s, Evolucion de la cantidad de 1s y −1s,


para β = 0.05 y N = 200 para β = 6.00 y N = 200
160000 160000
-1 -1
140000 1 140000 1
Cantidad de 1s y −1s

Cantidad de 1s y −1s

120000 120000

100000 100000

80000 80000

60000 60000

40000 40000

20000 20000

0 0
0 1 2 3 4 5 0 1 2 3 4 5
Tiempo ×104 Tiempo ×104

(e) β = 0.05, N = 200 (f) β = 6.00, N = 200

Figura 1: Cantidad de 1s y −1s en la cadena, para distintos valores de N y


β, con nf= 50 000.

Observamos que para β pequeño el sistema alcanza un equilibrio donde ambos spines pueden
coexistir, pero para β grande, todo converge a tener spin 1. Nos interesa encontrar el βC donde
ocurre la transición de fase.

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 6

1.5. Una aproximación del βC de transición de fase


Se fija nf = 1 000 000 y una malla de 11 puntos en el intervalo [0, 1], que nos dará distintos
valores de β. Para cada β en la malla, se obtiene el estado X de la cadena luego de nf pasos, y se
calcula el spin medio s, definido como
1 X
s := X(m)
|Λ| m∈Λ

Spin medio s en función de β,


con N = 50, nf = 1000000
1.0

0.8

0.6
Spin medio

0.4

0.2

0.0
0.0 0.2 0.4 0.6 0.8 1.0
β

Figura 2: Spin medio para distintos valores de β, tomando N = 50, nf =


1 000 000

Los resulados obtenidos pueden verse en la Figura 2. Deducimos que βC ∈ [0.1, 0.4].

1.6. Aproximación más precisa de βC


Se busca una aproximación más fina de βC . Para eso se utiliza el intervalo obtenido en la parte
anterior, discretizado con una malla de 21 puntos. Mantenemos N = 50, pero aumentamos nf a
2 000 000 para una mejor aproximación. A partir de la Figura 3 podemos decir que β ∈ [0.20, 0.25].
Kramers y Wannier mostraron que la temperatura de transición de fase es Tc = ln 1+2 √2 ≈
( )
2.269, lo que implica que β = 0.44. Esto es bastante diferente a lo obtenido. Posibles explicacione
de esto son que el cálculo de la temperatura crítica se hizo sobre un sistema con condiciones
periódicas en los bordes, y en este caso tenemos condiciones fijas. También podría deberse a la
definición de la energía: podría definirse alternativamente como H(x) = m∼m0 [x(m) − x(m0 )]2 .
P

Laboratorio 3 MA4402-1 Simulación Estocástica


Modelo de Ising en Z2 7

Spin medio s en función de β,


con N = 50, nf = 1000000
1.0

0.8

Spin medio 0.6

0.4

0.2

0.10 0.15 0.20 0.25 0.30 0.35 0.40


β

Figura 3: Spin medio para distintos valores de β, tomando N = 50, nf =


1 000 000

Laboratorio 3 MA4402-1 Simulación Estocástica


Problema del vendedor viajero 8

2. Problema del vendedor viajero


Se tiene un conjunto de ciudades (xi , yi )i=1Ṅ ⊆ [0, 1]2 . Se busca un ciclo que recorra todas las
ciudades una y sola una vez, partiendo y terminando en la primera, y que minimice la distancia
recorrida.
Sea E = {σ ∈ SN : σ(1) = 1} el conjunto de todas las posibles rutas que parten en 1. Es fácil
ver que |E| = (N − 1)!, lo cual escala muy rápido en complejidad. A continuación se creará una
instancia aleatoria del problema y se aplicará el algoritmo de simulated annealing para minimizar
la función total recorrida
N
X
w(σ) = d(σ(n), σ(n + 1))
n=1

donde d : {1, .., N }2 → R2 es la distancia euclidiana usual entre dos ciudades y se usa la convención
σ(N + 1) = 1 para σ ∈ E. Definimos el grafo G dado por la siguiente relación de adyacencia:

σ ∼ τ ⇐⇒ τ se obtiene permutando exactamente 2 ciudades de σ


Para poder resolver este problema, se crearon varias funciones auxiliares, una para generar
una instancia aleatoria del problema con N cantidad de ciudades. Segundo una función que recibe
una configuración de ciudades en [0, 1]2 y retorna la matriz de distancias, es decir una matriz
D ∈ MN ×N (R) tal que Di,j corresponde a la distancia entre la ciudad i y j.
En el algoritmo de simulated annealing usamos la sucesión de hiperparámetros
1
βn = ln (n + e)
C
en donde C fue elegido de tal manera que

C > (N − 1)oscK (w)

y oscK (w) se define como


oscK (w) = max{w(τ ) − w(σ) : σ τ }
Como calcular dicha cantidad es tan complicada como resolver el problema, damos una cota
superior que no dependa de las ciudades, para esto, sean σ, τ ∈ E tales que σ ∼ τ como uno se
obtiene de otro permutando dos ciudades, sean i, j con i 6= j tales que

σ(i) = τ (j)
σ(j) = τ (i)
σ(k) = τ (k) ∀k 6= i, j

Laboratorio 3 MA4402-1 Simulación Estocástica


Problema del vendedor viajero 9

con esto, tenemos que


N
X
w(τ ) − w(σ) = d(τ (n), τ (n + 1)) − d(σ(n), σ(n + 1))
n=1
= d(τ (i), τ (i + 1)) − d(σ(i), σ(i + 1)) + d(τ (j), τ (j + 1)) − d(σ(j), σ(j + 1))+
d(τ (i − 1), τ (i)) − d(σ(i − 1), σ(i)) + d(τ (j − 1), τ (j)) − d(σ(j − 1), σ(j))
= d(σ(j), σ(i + 1)) − d(σ(i), σ(i + 1)) + d(σ(i), σ(j + 1)) − d(σ(j), σ(j + 1))+
d(σ(i − 1), σ(j)) − d(σ(i − 1), σ(i)) + d(σ(j − 1), σ(i)) − d(σ(j − 1), σ(j))

Este cálculo esta hecho en el peor de los casos, es decir, cuando i − 1 ni i + 1 coincide con j, en
dicho caso, muchos de esos términos se anulan. Dado que en cualquier otro caso, se tiene que las
distancias son las mismas, notemos que i, j > 1 por lo tanto siempre tiene sentido de hablar de
τ (i − 1) ó τ (j − 1) cuando τ ∈ E. Luego podemos acotar cada sumando por 1, así

w(τ ) − w(σ) ≤ 4

Se simuló, para N = 20 la cadena que corresponde al algoritmo y se dejó correr por un tiempo
T = 105 , donde en cada iteración se guardaba el valor mínimo encontrado hasta dicho instante,
para que al término de la simulación de la cadena, entrege el mínimo encontrado hasta el instante
T y no el último valor de la cadena. En la Figura 4 a se muestra el camino obtenido con dicho
método donde se obtuvo un peso de
w1∗ = 6.2375
Dicho resultado no fue gratificante, dado la cantidad de cruces en el camino y el alto peso. Esto
fue debido a que los valores

e−βn (w(τ )−w(σ))


cuando no eran mayores a 1, eran bastantes cercano de 1. Por lo tanto la cadena simpre saltaba,
para penalizar de mayor manera la difrencia, se multiplicó por un factor de 100 la función de costo.
Dado esto, se obtuvo, para la misma configuración y la misma cantidad de iteraciones un costo más
bajo dado por

w2∗ = 3.9617
y dicho camino se muestra en la Figura 4b el cual no presenta nigún cruce.

Laboratorio 3 MA4402-1 Simulación Estocástica


Problema del vendedor viajero 10

(a) Resultado obtenido, con el algoritmo (b) Resultado modificando la función de coste

Figura 4: Mínimos locales obtenidos con el algoritmo de simulated annealing

Hecho esto se procede a comparar cómo cambia el resultado cuando modificamos las sucesiones
βn del algoritmo, se consideraron 4 sucesiones distintas y se comparó su desempeño en la Tabla 1
y en la Figura 5 se pueden apreciar el resultado de las cuatro realizaciones del algoritmo, donde el
mejor resultado se lo lleva la sucesión considerada originalmente. En cátedra se habló sobre que la
elección del hiperparémtro βn se toma, por lo general, de manera creciente pero lenta, de manea
que el algoritmo se .enfríe".

Figura 5: Caminos mínimos encontrados por el algoritmo para distintas


sucesiones βn

Tabla 1: Mínimos encontrados por el algoritmo


βn w∗
1
C ln(n + e) 3.6261
1 n
Ce 5.1059
1
Cn 4.3517
1 2
Cn 3.8279

Laboratorio 3 MA4402-1 Simulación Estocástica


Problema del vendedor viajero 11

Conclusiones
Haciendo uso del método de Markov Chain Monte Carlo se logró simular una distribución
de probabilidad que sería imposible computar en cualquier computador en un tiempo razonable.
Dado esto, se pudo simular el modelo de Ising, y se pudo observar un comportamiendo crítico del
sistema, y compararlo con el valor teórico. Por otra parte, mediante simulated annealing se logró
dar soluciones a un problema difícil como lo es el problema del vendedor viajero. Se comprobó en
este caso, la heurística de tomar una sucesión βn de manera creciente, pero con un crecimiento
lento. También se pudo practicar con el ajuste del hiperparpámetro C, el cual, resulta importante
para al menos tener convergencia del método.

Laboratorio 3 MA4402-1 Simulación Estocástica

Potrebbero piacerti anche