Test finite-ring TASEP dynamics
Can a random trajectory calculation reproduce an exact finite-state evolution? On a four-site TASEP ring, you can answer this question without a large solver: enumerate six configurations, evolve their probabilities, and compare independent trajectories at fixed times. A coordinate-Bethe mode supplies a second analytic check. Two deliberately wrong interpretations show why stationarity and a small eigenvector residual alone are insufficient tests.
Required background. Be able to construct a probability-column generator using the Markov bridge and explain the stationary current on a ring. Elementary Python helps you change the calculation; all definitions and selected outputs appear below. No quantum-mechanical preparation is needed.
Six configurations and their probability law
Section titled “Six configurations and their probability law”Use continuous-time right-moving TASEP with sites, indistinguishable particles and rate for each eligible jump. A particle moves one site to the right only if that site is empty, including the periodic bond . Label a configuration by its occupied sites and fix the order
A probability column obeys , with a transition rate in row destination, column source. For example, is the only exit from , whereas can jump to either or . Thus their waiting rates are and , respectively. The diagonal entry is minus the total exit rate. This is the finite-ring convention of Golinelli and Mallick 2006, § II.A, pp. 2–3, equations (1)–(3), PDF, with an explicit rate restored.
The experiment constructs from occupied-site bit masks and compares it with a separately specified six-state transition matrix. It checks nonnegative off-diagonal entries, zero column sums, the uniform stationary vector , and the exact stationary current per bond. The model fixes the regime; the convention reference distinguishes this current from the total jump rate .
The main time-evolution test starts from configuration with probability one, so . The input uses and observation times . Stationarity is a separate check, not an assumption about this initial state.
Evolve probabilities with a controlled tail
Section titled “Evolve probabilities with a controlled tail”The largest exit rate is . Therefore
is a nonnegative matrix whose columns sum to one. Expanding the exponential gives the uniformization formula
Each is a probability vector. The sum mixes discrete updates with a Poisson-distributed update count; the diagonal of supplies possible self-transitions. These self-transitions belong to the calculation, not to additional physical particle hops.
Let , where . After retaining terms through , the omitted mass is . When , successive omitted weights have ratios bounded by , so
In exact arithmetic, this omitted mass is also the error of the positive truncated sum. The code stops when the upper bound is below and does not renormalize away its missing mass. Binary64 rounding is a separate error; deterministic checks allow for it.
At , the last included degrees are , with analytic tail bounds approximately , and . The method uses no numerical eigenvector decomposition as its evolution oracle.
Sample independent trajectories at fixed times
Section titled “Sample independent trajectories at fixed times”The second implementation stores a list of particle positions and constructs available moves directly. It does not read the generator matrix. With available moves, it draws a waiting time with exponential rate , chooses one of those moves uniformly, and updates the configuration. Between events the configuration remains constant.
Record the configuration at each prescribed observation time, even if no jump occurs then. The saved calculation uses 50,000 independent trajectories, NumPy’s PCG64 generator and seed 20261003, all starting at . Different times on one trajectory are correlated; trajectories are independent of one another in the sampling model.
At , the deterministic and sampled probabilities are:
| Configuration | Uniformization | Sample frequency | Pointwise 95% Wilson interval |
|---|---|---|---|
All entries are rounded. The intervals are approximate pointwise binomial intervals. They invert the score inequality , with : solving this quadratic for gives the endpoints, following Wilson 1927. The exact probabilities for and narrowly miss their intervals in this run. A nominal 95% interval does not guarantee coverage of every state at every time; these misses are retained rather than hidden by changing the seed.
For an independently justified acceptance check, if trajectories estimate one probability by , apply Hoeffding 1963, p. 15, Theorem 1, equation (2.3), PDF to the Bernoulli indicators and their complements. Adding the two one-sided bounds gives
Apply a union bound to the comparisons. With , choose
This bounds the probability of any larger sampling discrepancy by , under the independent-trajectory model. It requires no independence between observation times or between the six state counts. The code also allows the tiny deterministic tail and rounding error. The observed maximum absolute discrepancies are , and at the three times. This conservative check is distinct from the narrower descriptive Wilson intervals. One fixed seed does not establish a Monte Carlo convergence rate.
Reconstruct a Bethe mode and a probability perturbation
Section titled “Reconstruct a Bethe mode and a probability perturbation”The Library derivation constructs the right eigenvector
For , , the contact and periodic conditions give an eigenvalue . The vector is proportional to
The general coordinate eigenvalue and periodic equations are stated in Golinelli and Mallick 2004, § 2.2, p. 4, equations (3)–(6), PDF. The code independently reconstructs this particular mode and measures
It also computes the characteristic polynomial of using exact rational arithmetic:
The eigenvalues are and . The chosen mode therefore decays faster than the slowest nonstationary modes. This finite check does not prove Bethe completeness for arbitrary rings.
Because contains negative components and sums to zero, it is not a probability distribution. Instead use the separate initial condition
It has the exact evolution . Uniformization agrees with this formula to errors at most on the tested grid, consistent with the truncation bounds plus rounding. This analytic test uses a different initial state from the trajectory table.
Two mistakes that simple checks miss
Section titled “Two mistakes that simple checks miss”Reversing the generator
Section titled “Reversing the generator”On this ring as well as . The particular vector also satisfies the same left and right eigenvalue equation. Thus neither uniform stationarity nor this mode detects transposition.
The initial derivative from does:
The first allows ; the second puts the gain into . Their difference is . This control checks a physical transition direction, not just an abstract conservation identity.
Counting jump instants as time samples
Section titled “Counting jump instants as time samples”The exit-count vector is . With , the embedded jump chain has transition matrix
Its invariant distribution is proportional to the probability flux out of each state, , giving
This differs from the uniform time-stationary distribution by distance . Faster-exiting configurations are counted more often at jump epochs. Dividing these weights by the exit rates and normalizing recovers . These are exact stationary-distribution calculations; they have no Monte Carlo sampling uncertainty. The embedded chain is periodic, so its invariant distribution does not imply convergence from a fixed state at every successive jump number. Fixed-time trajectory sampling avoids this interpretation error.
Run and change the experiment
Section titled “Run and change the experiment”Download and extract the complete TASEP experiment (ZIP), then open its tasep folder. Individual files are also available: experiment.py, inputs.json, results.json, requirements.txt, and computation notes. The recorded run used Python 3.9.6, NumPy 2.0.2 and binary64 arithmetic; only NumPy is required beyond the Python standard library. With Python 3.9–3.12:
python3 -m venv .venv.venv/bin/python -m pip install -r requirements.txt.venv/bin/python experiment.py --checkOn Windows use .venv\Scripts\python.exe. In the repository with NumPy installed, run python3 public/computations/tasep/experiment.py --check.
The check recomputes the experiment without writing files, requires identical saved inputs, compares integer counts exactly, and compares floating-point outputs with absolute tolerance and relative tolerance . Runtime versions are reported but not compared. The fixed seed supports reproduction; the separate uncertainty calculation supports statistical interpretation. Running without a flag prints fresh results; --write deliberately replaces the saved JSON. Use a separate copy for exploration. Routine site builds do not run the experiment.
Exercises
Section titled “Exercises”
Guided: interpret a uniformization update
Section titled “Guided: interpret a uniformization update”Starting at , calculate for . Explain its self-transition and recover the correct derivative at .
Hint
Use and expand the first two Poisson terms to first order in .
Solution
. The self-transition fills the gap between the uniformization rate and the physical exit rate . Since ,
Thus , with no added physical jump process.
Independent: turn a signed mode into probabilities
Section titled “Independent: turn a signed mode into probabilities”Find every real for which is a probability vector. Does work? Show that each allowed initial vector remains a probability vector under the analytic evolution.
Hint
There are only two component values: and . The components of sum to zero.
Solution
Normalization is automatic; nonnegativity requires . The choice fails because . For , multiplication by moves toward zero, preserving both inequalities. Hence remains nonnegative and normalized.
Transfer: remove the periodic seam
Section titled “Transfer: remove the periodic seam”Delete the jump while retaining rightward exclusion on the other bonds and no reservoirs. Starting from , identify the eventual configuration. Which stationary-current, uniformity and Bethe checks must now fail?
Hint
Each successful jump increases the sum of occupied positions. This sum is bounded above, and particles cannot leave site 4.
Solution
The absorbing configuration is . From every other state an allowed right jump remains, and repeated jumps eventually reach it. The stationary probability is therefore concentrated at , with zero current. Uniform stationarity, the periodic formula , and the old eigenmode and characteristic polynomial fail. Column sums and off-diagonal positivity still hold: the altered matrix is a valid generator for a different boundary problem. Periodic Bethe conditions cannot be carried over unchanged.
References
Section titled “References”- Golinelli, Olivier, and Kirone Mallick. “Bethe Ansatz calculation of the spectral gap of the asymmetric exclusion process.” Journal of Physics A: Mathematical and General 37 (2004), 3321–3331. DOI: 10.1088/0305-4470/37/10/001. arXiv:cond-mat/0312371v1.
- Golinelli, Olivier, and Kirone Mallick. “The asymmetric simple exclusion process: an integrable model for non-equilibrium statistical mechanics.” Journal of Physics A: Mathematical and General 39 (2006), 12679–12705. DOI: 10.1088/0305-4470/39/41/S03. arXiv:cond-mat/0611701v1.
- Hoeffding, Wassily. “Probability Inequalities for Sums of Bounded Random Variables.” Journal of the American Statistical Association 58, no. 301 (1963), 13–30. DOI: 10.1080/01621459.1963.10500830. Open PDF.
- Wilson, Edwin B. “Probable Inference, the Law of Succession, and Statistical Inference.” Journal of the American Statistical Association 22, no. 158 (1927), 209–212. DOI: 10.1080/01621459.1927.10502953.