ITADN

Grouped attractor continuations with consistent cross-parameter labels

#217Pull Requestandreasmorr 创建于 2026-06-22
A
andreasmorrcommented
This PR makes it possible to **aggregate/group attractors along a global continuation** and have the resulting groups carry **consistent IDs across the parameter axis**. The same mechanism is used for both the basin-fraction curves and the nonlocal stability measures, so merged attractors and merged measures always share labels. Previously, grouping was only available per parameter step (e.g. inside `finalize_accumulator`), where each step's groups received arbitrary labels with no relationship across steps. This PR adds the cross-step matching needed to track a group as a single object along the continuation. ## Changes - **`MatchByFeatureDistance`** (new, exported): an `IDMatcher` that matches IDs by the Euclidean distance between **feature vectors**. Used with `match_sequentially!`, where the per-step dictionaries map each group ID to its feature centroid (the mean of `featurizer(A)`over the group's member attractors). Consecutive steps are matched by greedy minimum-distance assignment, exactly like `MatchBySSSetDistance` but in feature space. - **`aggregate_continuation`** (new, exported): like `aggregate_attractor_fractions`, but also returns the **merged attractor `StateSpaceSet`s per step** alongside the aggregated fractions and the per-group info. All three share consistent group IDs along the curve. - **`featurizer` / `group_config` keywords on `global_continuation`** (for `AttractorSeedContinueMatch`): when both are given, attractors are grouped at each step and the groups are matched across parameters by feature centroid, returning aggregated fractions and merged attractors directly. - **`stability_measures_along_continuation`**: the grouped output (when `featurizer` / `group_config` are supplied) now has consistent group IDs across parameter steps instead of arbitrary per-step labels.
合并状态:未合并 28 条评论