Debugging core/epsilon-core via analysis.diagnostics¶
The goal of analysis.diagnostics is to let the frontend explain "why" a point fails (or passes) without backend calls.
Why is a point not in the core?¶
For a point \(x\), the main diagnostic is:
- \(\text{maxexcess} = \max_S (v(S) - x(S))\)
- If \(\text{maxexcess} > 0\), there exists a blocking coalition.
In JSON, this appears as:
analysis.diagnostics.solutions.<id>.core.max_excessanalysis.diagnostics.solutions.<id>.core.tight_coalitionsanalysis.diagnostics.solutions.<id>.core.violations(top-k withvS,xS,excess)
Per-frame diagnostics (tooltip)¶
The examples also include a small payload in each frame:
series[].frames[].highlights.diagnostics.core.blocking_coalition_maskseries[].frames[].highlights.diagnostics.core.blocking_players
This is useful for a tooltip that follows the mouse: when hovering a point/segment, show the blocking coalition and coordinates.