mod transition_graph¶
- module transition_graph¶
Action-conditioned structural transition evidence. Action-conditioned transition counts over target-blind structural microstates.
Structural descriptors determine the microstate labels supplied to this module. They do not determine attraction-region membership. Region evidence comes from repeated dynamics under a named proposal action, with a fixed probe action kept separate from adaptive search and transport actions.
Enums
- enum TransitionGraphError¶
Error that leaves the requested posterior undefined.
- InvalidConcentration¶
The symmetric Dirichlet concentration must be finite and positive.
- CountOverflow¶
A transition count cannot be represented by
u64.
- NodeIndexOverflow¶
A structural microstate index cannot be extended to a node count.
- ZeroDiffusionSteps¶
Diffusion time must contain at least one transition step.
- InvalidMaximumDistance¶
Complete-linkage distance must be finite and nonnegative.
- ZeroMinimumProbes¶
A resolved region requires at least one fixed-probe observation.
- enum TransitionOutcome¶
Destination observed for one perturb–quench attempt.
- Resolved(usize)¶
The quench reached a classified structural microstate.
- Unresolved¶
The result was invalid, unclassified, or outside the represented set.
Structs and Unions
- struct AttractionRegionConfig¶
Target-blind coarse-graining parameters for attraction regions.
- probe_action: String¶
Action whose repeated dynamics define comparable return behaviour.
- concentration: f64¶
Symmetric Dirichlet concentration for all resolved states and
U.
- diffusion_steps: usize¶
Number of probe-operator steps used in diffusion distance.
- maximum_distance: f64¶
Maximum complete-linkage diffusion distance within one region.
- minimum_probes: u64¶
Resolved probe returns required before a microstate can merge.
- struct TransitionGraph¶
Append-only transition evidence separated by proposal action.
Implementations
- impl TransitionGraph¶
Functions
- fn attraction_regions(&self, config: &AttractionRegionConfig) -> Result<Vec<Vec<usize>>, TransitionGraphError>¶
Deterministic complete-linkage attraction regions from fixed-probe dynamics.
The unresolved posterior column is retained as an evidence diagnostic. Diffusion propagates on the resolved conditional operator. Eligibility counts resolved returns only: a node below
minimum_probesresolved returns, including one whose probes are all unresolved, stays a singleton unresolved region and cannot merge.
- fn count(&self, action: &str, from: usize, outcome: TransitionOutcome) -> u64¶
Exact count for one action-conditioned transition outcome.
- fn new() -> Self¶
Create an empty graph.
- fn node_count(&self) -> usize¶
Number of structural microstates represented by any observation.
- fn observations(&self, action: &str, from: usize) -> u64¶
Total observations leaving
fromunder exactly one action.The total includes unresolved probes. Region eligibility uses
Self::resolved_returnsinstead, so unresolved mass stays in the posterior without certifying shared return dynamics.
- fn observe(&mut self, action: impl Into<String>, from: usize, outcome: TransitionOutcome) -> Result<(), TransitionGraphError>¶
Record one source, action, and resolved or unresolved destination.
- fn posterior_matrix(&self, action: &str, concentration: f64) -> Result<Array2<f64>, TransitionGraphError>¶
Dirichlet-posterior mean transition matrix for exactly one action.
Columns
0..node_countare resolved destinations. The final column is the unresolved outcome. A symmetric pseudocount keeps every row proper before probes have reached all destinations.
- fn register_node(&mut self, node: usize) -> Result<(), TransitionGraphError>¶
Ensure that a structural microstate exists before it has outgoing data.
- fn resolved_returns(&self, action: &str, from: usize) -> u64¶
Resolved returns leaving
fromunder exactly one action.
- fn uncertainty(&self, action: &str, from: usize, concentration: f64) -> Option<f64>¶
Inverse posterior concentration for one action-conditioned source row.