← Home
petri-nets ode monte-carlo incidence-reduction stochastic

March Madness Without Monte Carlo

In The Incidence Reduction, we showed that ODE steady-state values recover exact integers from topology — incidence degrees to terminal transitions. The integers are structural: arc counts in the bipartite graph, readable without simulation.

That result used continuous dynamics only. Here we ask the discrete question: does Monte Carlo simulation recover the same structure? When do continuous and stochastic methods agree on a Petri net — and when do they diverge?

The answer turns on two properties of the net, and the incidence matrix C is the object that connects everything.

Three Nets, Two Methods

We built three NCAA tournament ranking models using go-pflow, each encoding bracket competition as a Petri net. Same framework, same win probabilities, radically different topologies.

Three test case net structures

Model 4: Independent chains. Eight teams, five rounds each. Each team's tokens flow through a linear pipeline — advance (rate proportional to win probability) or eliminate (rate proportional to loss probability). No shared places between teams. 100 tokens per team. Gillespie stochastic simulation.

Model 2: Coupled competition. Teams in the same region share catalytic arcs. A clash transition requires tokens from both competitors: propensity = rate x tokens_A x tokens_B. Both teams' token counts appear in the rate law. ~90 tokens per team. Gillespie stochastic simulation.

Model 6: Structural bracket. A proper bracket encoded as a Petri net. Each possible matchup has two transitions (one per winner). 96 places, 240 transitions, 960 arcs. Each team starts with exactly 1 token. Discrete round-by-round MC.

Two methods solve each model:

Same nets, same rates, same initial state. Do they produce the same rankings?

Model 4: perfect agreement. All 8 teams rank identically.

Model 2: 15 of 16 rankings disagree. Not just shuffled — qualitatively different dynamics:

Team            ODE Tokens   MC Mean    Rank shift
Duke                 112.8       0.3     -4
Arizona              106.5       0.2     -6
Houston               95.6       0.1    -13
Gonzaga               66.7       0.8    +12
Alabama               65.0       0.6    +12

The ODE predicts smooth competitive equilibrium. The MC shows cascading elimination — winners gain tokens, losers hit zero and stay there. Rich-get-richer dynamics that the mean-field ODE cannot capture.

Model 6: perfect agreement despite coupling. ODE championship values (scaled by 100) match MC win percentages within noise:

Team          ODE (x100)  MC Champ%
Duke              27.7      27.8
Arizona           17.5      18.4
Michigan          10.8      11.9
Houston           10.6       9.8

All 16 teams agree on championship ranking.

This is the surprise. Model 6 has coupled transitions — both teams must have tokens for a matchup to fire — yet ODE and MC converge. Coupling alone doesn't cause disagreement.

The Two-Axis Rule

The resolution requires two questions, not one.

Agreement characterization

Axis 1: Coupling. Does any transition have two or more input arcs from places with variable token counts? If no, the kinetics are linear (first-order). The Chemical Master Equation closes at the first moment. ODE = MC exactly. Model 4 lives here.

Axis 2: Token count. Do the coupled places hold more than 1 token? If no, the mass-action product collapses:

propensity = rate x tokens_A x tokens_B = rate x 1 x 1 = rate

The nonlinear product degenerates to a binary indicator: either both teams are alive (propensity = rate) or at least one is eliminated (propensity = 0). No intermediate regime exists. No rich-get-richer feedback. No partial depletion. No correlation effects. Model 6 lives here.

Both conditions must be present for disagreement: nonlinear coupling and multi-token pools.

Net property ODE/MC agreement Why
Linear topology (at most 1 variable input) Always agree First-order kinetics; CME closes at first moment
Nonlinear + binary tokens {0,1} Agree Product collapses to indicator
Nonlinear + high tokens + positive feedback Disagree Rich-get-richer amplifies fluctuations

This is a specific instance of the relationship between the Chemical Master Equation (exact stochastic dynamics) and the macroscopic rate equation (ODE, mean-field approximation) in chemical kinetics. Linear reaction networks agree exactly. Nonlinear networks agree in the thermodynamic limit (molecule counts tending to infinity). Our bracket finding adds a case not usually emphasized: bimolecular reactions with single-molecule reactants also agree, because mass-action degenerates to an indicator.

The Incidence Matrix as Bridge

The incidence matrix C of the bracket net (96 places x 240 transitions) encodes the complete structure:

C[p][t] = output_weight(t -> p) - input_weight(p -> t)

Every column of C is a state-change vector: when transition t fires, the marking changes by exactly that column. This single matrix defines both simulation methods:

The drain counts extracted from C reveal the bracket's geometry. For each team's place at each round, count the transitions with C[p][t] < 0:

Round      R1 drains  R2 drains  F4 drains  Final drains
Every team      2          4          8          16

The doubling pattern (2 -> 4 -> 8 -> 16) reflects bracket structure: at each round, the number of possible opponents doubles as cross-region matchups open up. With uniform rates, every team gets 6.25% = 1/16 championship probability — pure topology gives no advantage because the bracket is symmetric.

But C also provides an analytical formula. For each round, identify matchup transitions from C, compute advancement probability weighted by opponent survival:

P(team reaches R+1) = P(team in R) x sum over opponents [P(opp in R) x P(win | opp)]

This forward propagation uses C to identify which transitions connect which places, and the rates to weight them. No simulation needed — one pass through C per round.

Three-Way Comparison

Three methods converge

            Analytical   ODE        MC
Team        (C + rates)  (Model 6)  (10k sims)
----------  ----------   ---------  ----------
Duke           28.76%      28.32%      29.4%
Arizona        18.13%      17.86%      17.9%
Michigan       11.21%      11.04%      11.1%
Houston        10.25%      10.09%       9.8%
Florida         8.86%       8.73%       8.9%
Purdue          5.39%       5.31%       5.3%

All three methods agree. The analytical column is exact. The ODE approaches it asymptotically (residual ~0.4% from finite integration time). The MC scatters around it (sampling noise).

The bridge diagram makes the relationship explicit:

Incidence matrix as universal bridge

C defines the ODE (dm/dt = C . v), the MC (delta_m = C . e_t), and the analytical formula (forward propagation through C). The three methods agree because they're computing the same function of the same matrix:

P(champ) = product across rounds [ sum over opponents (P(opp present) x P(win | opp)) ]

This function is determined entirely by C (which transitions connect which places) and r (the rate vector — team strengths as win probabilities). The incidence matrix is the structural skeleton that both continuous and discrete methods traverse.

Replacing Simulation

The analytical formula doesn't just agree with simulation — it replaces it.

For a 16-team bracket, each region has 4 teams in 2 rounds of regional play. The possible outcomes per region: each of the 4 teams can win, giving 4 regional winners. But the path matters — the formula enumerates all structurally possible configurations.

Exhaustive regional enumeration: 256 configurations (4 possible regional winners x 4 regions, with 4^4 = 256 cross-region combinations for the Final Four onward). For each configuration, multiply the path probabilities derived from win rates. Sum over all paths where a given team wins.

The results match MC for all 16 teams across all rounds. Probabilities sum to exactly 100% per round — no normalization needed, no sampling noise, no convergence criteria.

Cost comparison: 256 configurations vs 150,000 MC transitions (10,000 simulations x 15 games each). The analytical formula is three orders of magnitude cheaper and exact.

This is not a novel technique for bracket prediction. FiveThirtyEight does the same analytical calculation for March Madness brackets. They're explicit about it: "Most of our sports forecasts rely on Monte Carlo simulations, but March Madness is different; because the structure of the tournament is a single-elimination bracket, we're able to directly calculate the chance of teams advancing to a given round." The formula is identical — a system of conditional probabilities, propagated forward round by round.

The difference is where the bracket structure lives. FiveThirtyEight hand-codes it: procedural loops over rounds and matchups, with the bracket tree implicit in the control flow. The Petri net makes it declarative. You define places and transitions — Duke_r1, Kansas_r1, Duke_over_Kansas, Kansas_over_Duke — and the incidence matrix C falls out as a byproduct. The advancement formula falls out of reading C. You don't write bracket-specific probability code; you write a generic "propagate through C" routine that would work on any net.

Both approaches are synthesis — someone decided the bracket has 16 teams, 4 rounds, specific matchup pairings. Neither discovers this from data. But the procedural version is a one-shot implementation of one method. The declarative version produces a mathematical object (C) that multiple methods can consume: ODE, MC, and the analytical formula all read the same matrix. Change the bracket structure — add a play-in round, reseed after regionals — and C changes, but the analysis code doesn't.

The deeper difference is how structure gets recognized. FiveThirtyEight looked at a bracket and saw "single elimination — I can multiply conditional probabilities." That's domain expertise: a human recognizing a pattern and writing code to exploit it. The Petri net route is different. Encode the domain as places and transitions, extract C, and the structure announces itself. Binary tokens, no feedback loops, declared matchups — the two-axis rule tells you the analytical formula works before you try it. You don't need to recognize the pattern. The matrix exhibits it. They took advantage of structure they recognized. We take advantage of structure C exhibits.

The Boundary

This connects three results about what the incidence matrix reveals.

The Incidence Reduction showed that ODE equilibrium with uniform rates recovers integers from topology — incidence degrees to terminal transitions. The integers are structural arc counts, and the ODE is just reading them back.

Earned Compression showed that three independent formalisms — ODE, tropical analysis, zero-knowledge proofs — discover the same core-observer boundary in a net. The boundary separates what compresses algebraically from what requires discrete reasoning.

The incidence bridge shows that the same matrix C connects ODE, MC, and closed-form analysis — and characterizes exactly when they agree. The two-axis rule (coupling x token count) determines whether C provides a closed-form answer or whether simulation is doing irreducible work.

The boundary from earned compression — declared vs emergent constraints — reappears here. For nets with declared structure (the bracket topology is explicit in C) and binary tokens (the nonlinearity is inert), the analytical formula derived from C makes simulation redundant. The bracket is a declared constraint system with binary state. C encodes it completely.

For nets with emergent structure — where the constraint patterns arise from dynamics rather than topology — C alone is insufficient. You need the ODE or the MC to discover what C cannot tell you statically. The coffee shop model's resource competition, the coupled competition model's rich-get-richer cascades: these are dynamics that live in the flow, not the graph.

The incidence matrix is the bridge when the answer is in the topology. Simulation is the bridge when the answer is in the dynamics. The two-axis rule tells you which case you're in.

Further Reading

External references:

×

Follow on Mastodon