The Conditional Simulation Problem
Suppose a homogeneous Poisson process has produced a known number of arrivals by a fixed time \(T\), and the task is to simulate when those arrivals occurred. The count alone does not identify the arrival times, but it determines a simple conditional distribution: draw points uniformly over the interval and put them in chronological order. Sorting is essential because arrival times are ordered, whereas independent uniform draws are not.
Let \((\Omega,\mathcal{F},\mathbb{P})\) be a probability space carrying a homogeneous Poisson process \((N(t))_{t\ge0}\) of rate \(\lambda>0\), with state space \(\{0,1,2,\ldots\}\) and continuous time \(t\ge0\). Use its natural filtration \(\mathcal{F}_t=\sigma(N(s):0\le s\le t)\). Fix \(T>0\) and an integer \(n\ge0\). The conditioning event \(\{N(T)=n\}\), which belongs to \(\mathcal{F}_T\), has probability \(e^{-\lambda T}(\lambda T)^n/n!>0\), so conditioning on it is meaningful. Write \(S_k\) for the time of the \(k\)th arrival.
The rate \(\lambda\) does not appear in the simulation rule. It affects how likely the specified count is before conditioning, but, once the count is fixed, the conditional locations depend only on the horizon \(T\) and the count \(n\). The derivation below verifies the full joint distribution, not just a summary such as the mean.
Why the Rule Gives the Conditional Law
Proof. The interarrival times \(\tau_1,\tau_2,\ldots\) of a rate-\(\lambda\) Poisson process are independent exponential random variables with density \(\lambda e^{-\lambda x}\) for \(x>0\). For \(n\ge1\), the event \(N(T)=n\) means that the first \(n\) arrivals occur at ordered times \(0<s_1<\cdots<s_n<T\) and that the next interarrival lasts long enough for there to be no further arrival before \(T\). The first \(n\) gaps are \(s_1,s_2-s_1,\ldots,s_n-s_{n-1}\); their joint density is \(\lambda^n e^{-\lambda s_n}\). The probability that the next gap exceeds \(T-s_n\) is \(e^{-\lambda(T-s_n)}\). The change from gaps to arrival times has a triangular Jacobian matrix with diagonal entries \(1\), so its determinant is \(1\). Therefore, the joint density of the first \(n\) arrival times together with the condition of no further arrival by \(T\) is \(\lambda^n e^{-\lambda T}\) throughout the ordered region.
The volume of that region is \(T^n/n!\): the cube \((0,T)^n\) has volume \(T^n\), and, except for the zero-volume set where coordinates tie, it divides into \(n!\) regions of equal volume corresponding to the possible coordinate orders. Integrating the joint density therefore gives \(\mathbb{P}(N(T)=n)=\lambda^n e^{-\lambda T}T^n/n!\). Dividing the joint density by this probability gives \(n!/T^n\), as claimed. When \(n=0\), the event means the first interarrival exceeds \(T\), which has probability \(e^{-\lambda T}\); there are no times in the conditional vector. \(\square\)
Proof. The scaled variables \(T U_1,\ldots,T U_n\) are independent and each has density \(1/T\) on \((0,T)\). Thus their joint density is \(1/T^n\) on the cube \((0,T)^n\). With probability one no two coordinates are equal, since each equality set has probability zero. For a point \(0<s_1<\cdots<s_n<T\), the unsorted vector can produce this ordered vector through any of the \(n!\) assignments of its coordinates to the labels \(1,\ldots,n\). Each assignment has density \(1/T^n\); adding these disjoint possibilities gives density \(n!/T^n\). This is the density in the theorem, so the sorted scaled uniforms have the conditional arrival-time law. \(\square\)
Using the Simulation Rule
The procedure needs only the count \(n\), the horizon \(T\), independent uniform draws, and a sorting operation. In mathematical pseudocode: if \(n=0\), return no times; otherwise, generate \(n\) independent draws from \(\operatorname{Uniform}(0,1)\), multiply each by \(T\), sort in increasing order, and return the sorted list. Since the uniform distribution assigns probability zero to either endpoint and to ties, the returned values satisfy \(0<S_1<\cdots<S_n<T\) with probability one. Sorting changes the order of the draws, not their values.
Worked Example: Three Arrivals on a Ten-Unit Interval
Condition on \(N(10)=3\). Suppose the three uniform draws are \(U_1=\tfrac{3}{20}\), \(U_2=\tfrac{41}{100}\), and \(U_3=\tfrac{18}{25}\). They are already in increasing order because \(\tfrac{3}{20}=\tfrac{15}{100}<\tfrac{41}{100}<\tfrac{72}{100}=\tfrac{18}{25}\). Multiplying by \(T=10\) gives $$ S_1=10\cdot\tfrac{3}{20}=\tfrac32,\qquad S_2=10\cdot\tfrac{41}{100}=\tfrac{41}{10},\qquad S_3=10\cdot\tfrac{18}{25}=\tfrac{36}{5}. $$
Check: In tenths, the times are \(\tfrac{15}{10},\tfrac{41}{10},\tfrac{72}{10}\), so \(0<\tfrac32<\tfrac{41}{10}<\tfrac{36}{5}<10\). The conditional joint density is \(3!/10^3=6/1000=3/500\), which is the constant density on the ordered region used by this simulation.
Worked Example: Sorting Two Draws
Condition on \(N(6)=2\), and suppose the independent uniform draws are \(U_1=\tfrac34\) and \(U_2=\tfrac14\). Multiplying each by \(T=6\) first gives the unsorted values \(6\cdot\tfrac34=\tfrac92\) and \(6\cdot\tfrac14=\tfrac32\). Sorting them gives \(S_1=\tfrac32\) and \(S_2=\tfrac92\).
Check: These values satisfy \(0<\tfrac32<\tfrac92<6\). The conditional joint density is \(2!/6^2=2/36=1/18\) on the ordered triangle. The unsorted draws each have scaled density \(1/6\), and the two possible coordinate assignments contribute \(2(1/6)^2=1/18\), matching the conditional density.
Worked Example: Four Arrivals and the Endpoint Check
Condition on \(N(8)=4\). Take the four uniform draws to be \(\tfrac18,\tfrac34,\tfrac12,\tfrac14\). Sorting gives \(\tfrac18<\tfrac14<\tfrac12<\tfrac34\). Multiplication by \(T=8\) gives the arrival times $$ S_1=8\cdot\tfrac18=1,\qquad S_2=8\cdot\tfrac14=2,\qquad S_3=8\cdot\tfrac12=4,\qquad S_4=8\cdot\tfrac34=6. $$
Check: The times satisfy \(0<1<2<4<6<8\). Their joint density under the conditional law is \(4!/8^4=24/4096=3/512\). This is also the density produced by sorting four independent scaled uniform draws, as the proposition requires.
What Conditioning Changes—and What It Does Not
Conditioning on the total count fixes how many points will be simulated; it does not make the arrival times equally spaced. The output is random, and the uniform draws can fall close together or far apart. The simulation is exact at the level of the joint law because every possible ordered configuration inside the interval has the same density \(n!/T^n\), as established above.
This is a conditional simulation procedure. If a problem instead asks for an unconditional Poisson-process path, the count must also be random; the conditional rule alone always returns exactly the count supplied to it. Conversely, once the count is specified, there is no need to use \(\lambda\) to place the arrivals. This separation is useful in conditional modeling and in simulation studies where scenarios are compared at a fixed total count.
The word “exact” refers to the mathematical method with independent continuous uniform draws and an exact sort. Software typically uses finite-precision pseudorandom numbers, so its output is a numerical approximation to that ideal continuous construction. In practice, the algorithm is still direct: generate the draws, scale, sort, and check the count and interval bounds.
A Common Mistake
A common error is to treat the uniform draws in their generation order as chronological arrival times. For example, on \([0,10]\), draws \(U_1=\tfrac45\) and \(U_2=\tfrac15\) scale to \(10\cdot\tfrac45=8\) and \(10\cdot\tfrac15=2\). Writing these as \(S_1=8,S_2=2\) is wrong: the second listed “arrival” precedes the first. The correction is to sort the draws first, giving \(\tfrac15<\tfrac45\), and then report \(S_1=2,S_2=8\). These corrected values satisfy \(0<2<8<10\).
Another tempting but different approach is to generate exponential waiting times and use them without accounting for the fixed-count condition. Unconditioned exponential gaps do not, by themselves, guarantee exactly \(n\) arrivals by \(T\). The uniform-and-sort construction builds the specified count into the output and gives the correct conditional joint law directly.
Check Your Understanding
For each question, use the conditional simulation rule and distinguish the ordered arrival times from the original uniform draws.
- For \(N(5)=1\), a uniform draw is \(U_1=\tfrac25\). What arrival time is returned, and what is its conditional density on \((0,5)\)?
- For \(N(4)=2\), the draws are \(\tfrac78\) and \(\tfrac38\). Find the ordered arrival times and check both endpoints and their order.
- Why does the conditional simulation rule not require the rate \(\lambda\), even though the probability of the conditioning event depends on \(\lambda\)?
- For \(n=0\), what should the simulation return? Why is there no arrival-time vector to sort?
- Explain why sorting independent uniform draws gives a density with a factor of \(n!\), rather than \(1/T^n\), on the ordered region.