4 votos

Una extraña inconsistencia entre un cálculo y una simulación de un TASEP

Considere el siguiente proceso estocástico, llamado proceso de exclusión simple totalmente asimétrico (TASEP), sobre los números enteros $ \mathbb {Z}$ :

El proceso evoluciona en pasos de tiempo discretos $T = 1, 2, \ldots \infty $ . Denota el contenidos del entero $n$ como $x(n)$ . Inicialmente, en cada número entero $n$ , $x(n)=1$ con probabilidad $0.5$ y de otra manera $x(n)=0$ .

Si para algunos $n$ tenemos que $x(n)=1$ y $x(n+1)=0$ entonces con probabilidad $0.5$ en el próximo paso de tiempo tendremos $x(n)=0$ y $x(n+1)=1$ . (En otras palabras, cada $1$ se mueve a la derecha con una probabilidad de 0,5, asumiendo que no hay un $1$ bloqueándola en su nueva posición de objetivo).

Es simple ver que la distribución inicial (donde tenemos $1$ con probabilidad $0.5$ ) es estacionario. (Edición: Basado en la página 2 de este documento https://arxiv.org/abs/cond-mat/0101200 ), esto significa que en la expectativa debemos esperar que el número de $1$ s pasando a través de $n=0$ para ser $T/4$ donde $T$ es el número de pasos de tiempo que han pasado.

Ahora considere el siguiente programa, que he simulado en mi ordenador:

Inicializar una matriz de 0-1 a[-1000,1000] de tal manera que a[n] = 1 con una probabilidad de 0,5.

Simular el proceso estocástico anterior para 100 iteraciones. Cuente el número de veces que a[0] va de 0 a 1.

El resultado de este programa es consistentemente alrededor de $15$ pero por el razonamiento anterior esperaríamos $25$ . De hecho, parece que siempre será en promedio un $0.15$ fracción del número de iteraciones (incluso haciendo 200, o 300 iteraciones a la vez).

Entonces, ¿las matemáticas están mal, o mi idea de simulación está mal?


El código real que usé: https://pastebin.com/iPz1S1fK ("count" es el número que sale como 15; prob(50) significa "con probabilidad 50"; Update() realiza una sola iteración del TASEP)

2voto

psychotik Puntos 171

La principal diferencia entre TASEP en la literatura y su modelo es la siguiente:

  • En su modelo, intentamos mover cada partícula a la derecha simultáneamente cada vuelta. Así, una vez que una partícula hace un movimiento en el paso de tiempo dado, no puede hacer otro movimiento hasta que se prueben otras partículas.

  • Por otro lado, en TASEP, cada partícula trata de moverse según su propio reloj exponencial, por lo que no necesita esperar a que otras partículas que están siendo probadas hagan otro salto, o si tiene suerte, saltos múltiples.

Dado que una partícula debe esperar para ver que otras partículas también intentan moverse en su dinámica, no sólo su modelo es diferente de TASEP, sino que puede inducir una cierta correlación entre las partículas. A modo de comparación, aquí hay simulaciones tanto de su modelo como de TASEP

TASEP en $ \mathbb {Z}/1000 \mathbb {Z}$ con la distribución inicial como medida del producto Bernoulli. A continuación se muestran las configuraciones $( \eta_n : n \in \{1501, \cdots , 2000\})$ . El $i$ -la fila número uno corresponde a la configuración $ \eta_ {i+1500}$ (para que el tiempo fluya hacia abajo), y los puntos negros representan $1$ y los puntos blancos representan $0$ 's.

TASEP

Tu modelo en $ \mathbb {Z}/1000 \mathbb {Z}$ con la misma distribución inicial. Representa sólo las configuraciones entre el tiempo $1501$ y $2000$ usando la misma regla de visualización de arriba.

Your model

Así que, incluso visualmente anticipamos que su modelo tiende a esparcir las partículas más uniformemente que TASEP, mostrando así una textura menos granular. Trazando la fracción de partículas que se mueve en cada paso de tiempo muestra claras diferencias:

Comparison

1voto

Daniel Mathias Puntos 46

Hice mi propia simulación con muchas más iteraciones y encontré que el resultado era $0.1465 \times T$

También monitoreé otros detalles para explicar este resultado. Específicamente, rastreé los valores de $x[n-1]$ , $x[n]$ y $x[n+1]$ para cada iteración. Hay $8$ posibles estados colectivos para estos valores, y estos estados no son igualmente probables: $$ \begin {matrix} [0,0,0] \approx0.086\\ [0,0,1] \approx0.121\\ [0,1,0] \approx0.172\\ [0,1,1] \approx0.121\\ [1,0,0] \approx0.121\\ [1,0,1] \approx0.172\\ [1,1,0] \approx0.121\\ [1,1,1] \approx0.086 \end {matrix}$$ Sólo dos de ellas permiten $x[n]$ para pasar de $0$ a $1$ los que son $[1,0,0]$ y $[1,0,1]$ . La probabilidad de estar en uno de estos estados es $0.121+0.172=0.293$ y con la probabilidad de cambio de estado de $0.5$ esto da el resultado de $0.1465$ encontrado por la simulación.

Nota: No se afirma que la simulación represente con precisión el proceso descrito en el documento vinculado. De hecho, podemos decir con certeza que no es un modelo exacto. El detalle anterior sólo pretendía explicar el resultado inesperado de la simulación.

Modifiqué la simulación, recorriendo el conjunto en sentido inverso para permitir un salto de $x[n]$ antes de intentar un salto en $x[n]$ . El resultado fue que el $8$ los estados colectivos son ahora igualmente probables (como se esperaba) y el número de "partículas" que se mueven a través de una posición dada es $0.125 \times T$ también se espera con este modelo (según el comentario de Sangchul Lee).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X