M4.1 No Way Back: Absorbing States and Absorption Times
A game that ends by itself
After each round, a ten-sided die ends a single-player game on zero. Otherwise another round begins. There is no revival within that game.
Knowing that the game eventually ends leaves several questions:
- How many rounds does a game last on average?
- After surviving twenty rounds, how many additional rounds remain on average?
- By which round have at least half the games ended?
Identical fresh dice suggest the next-round chance does not depend on elapsed rounds. But computing a mean and computing a halfway probability are different tasks. Define the ending time as a random variable first.
DiscussionQ1
Which Markov states are sufficient, and which random variable represents game length?
Show the reasoning
Use two states: alive and ended . Round number is the time index, rather than necessary state information for this fixed-hazard model:
The row makes absorbing, meaning . For , is transient. Other states in a general chain need not all be transient merely because an absorbing state exists.
Define . The questions ask for , , and a median of : different summaries of one random variable.
Tokens falling into a pit
Start a thousand tokens alive. About a hundred fall into the ended-state pit in round one, ninety more in round two, and so on. The number falling decreases while the fraction of survivors falling stays at one tenth.
A surviving token faces the same next-round rule regardless of its age. Twenty completed rounds do not consume a quota: expected remaining lifetime is still ten. This is memorylessness, not compensation for earlier luck.
A constant hazard gives a geometric tail. Its median is seven rounds; rare long games raise its mean to ten.
Turn the picture into equations
A geometrically decaying tail
Surviving rounds requires avoiding the ending outcome each time:
This is a geometric distribution, counting trials through the first success, where success means ending. Equivalently, .
Expected time by first-step analysis
Let be expected remaining rounds. Spend one round, then end with probability or return to the same future problem with probability :
This is first-step analysis. For each transient state , expected absorption time satisfies
The unknown expectations form a linear system. The Markov property makes the remaining future depend only on the next state. Distribution propagation looks forward; this recursion propagates future expectations backward.
Median and variance
For , the smallest with is seven. Thus at least half end by the seventh round. Variance is 90 and standard deviation about 9.5. The right tail raises the mean above the median.
DetailsSeveral transient states and the fundamental matrix
Partition . For a finite absorbing chain whose transient states all reach absorption, . Entry counts expected visits to transient state from , before absorption. Thus , equivalently solving .
For a two-level game, suppose level one stays with probability 0.4, advances with 0.5, and ends with 0.1. Level two stays with 0.8 and ends with 0.2. Then and , giving [3].
Why stationarity is less informative here
The only stationary law in this two-state example is . It identifies the final state without answering how long arrival takes. Absorption breaks irreducibility; hitting times and route probabilities become more informative questions.
Revisit the lifetime questions
With constant hazard and no return, mean lifetime is ten, remaining mean after twenty surviving rounds is ten, and median lifetime is seven. The identity explains the unchanged remaining law.
If hazard increases with age, memorylessness fails. Nondecreasing hazards starting at give lifetime no longer on average than the constant- model. If the ended state returns with probability , it is no longer absorbing; its long-run share becomes . First hitting time still makes sense separately.
Try it
import numpy as np
rng = np.random.default_rng(0)
q, T = .1, 100000
tau = rng.geometric(q,size=T)
print('mean, median, std:',tau.mean(),np.median(tau),tau.std())
print('remaining after 20:',(tau[tau>20]-20).mean())
def play():
n = 1
while rng.random()>=min(1,.1+.02*(n-1)):
n += 1
return n
tau2 = np.array([play() for _ in range(T)])
print('increasing hazard:',tau2.mean(), 'remaining after 5:',(tau2[tau2>5]-5).mean())
Check your understanding
References
- Norris, J. R. Markov Chains. Cambridge University Press, 1997.
- Grimmett, G., Stirzaker, D. Probability and Random Processes, 3rd ed. Oxford University Press, 2001.
- Kemeny, J. G., Snell, J. L. Finite Markov Chains. Springer, 1976.