Add three state-metrics perturbations: parallel_auto, front_back_load, case_type_drift - #6
Merged
Merged
Conversation
…, case_type_drift Build the three previously-unimplemented paper scenarios (#2, #4, #6), each validated end-to-end with real Prosimos (state c-index 1.0, baselines 0.5): - #2 parallel_auto (sim-driven): tools/generate_parallel_auto.py (AND block with a long Critical branch + short NonCritical chain on separate pools) + build_branch_automation_params (shrink non-critical durations toward a floor so the activity stays in the trace -> ngd blind). Also proves AND-gateway short-term resume works. - #4 front_back_load (sim-driven): tools/generate_linear_chain.py + build_front_back_load_params (antisymmetric position ramp, per-case total held exactly invariant; --load-direction front|back keeps the level ladder monotone). - #6 case_type_drift (sim-driven oracle): drift_case_types + _run_case_type_drift_levels, reuses synthetic_case_route. Re-sorts a fraction of case_type tags by arrival time, global marginal fixed. Both case_type and activity_type fire (case_type firing is the temporal-drift signature vs label_swap). Wiring: dispatch in _prepare_params_for_level / run_pipeline, DatasetSpec entries (synthetic_parallel_auto, synthetic_linear_chain), CLI choices + --load-direction. 17 new unit tests; full non-e2e suite 233 passed. Docs: PAPER_SCENARIOS.md (table + build status) and standalone EXPERIMENT_SCENARIOS.md (table + plain-English scenario descriptions). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fj2DDhAhygixvTfJm4Qjpo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Builds the three previously-unimplemented paper scenarios (#2, #4, #6), each validated end-to-end with real Prosimos — state metrics rank the perturbation perfectly (c-index 1.0) while every baseline stays blind (0.5).
parallel_autosynthetic_parallel_autofront_back_loadsynthetic_linear_chaincase_type_driftsynthetic_case_routeWhat each does
parallel_auto(sim-driven) — newtools/generate_parallel_auto.py(AND block: long Critical branch + short NonCritical chain on separate pools) +build_branch_automation_params(shrink non-critical durations toward a floor so the activity stays in the trace →ngdblind; critical pool untouched →cycle_timeblind). Also proves AND-gateway short-term resume works.front_back_load(sim-driven) — newtools/generate_linear_chain.py+build_front_back_load_params(antisymmetric position ramp; per-case total duration held exactly invariant via renormalization;--load-direction front|backkeeps the level ladder monotone for c-index). Timeline-localization story.case_type_drift(sim-driven oracle, the data-attribute one) —drift_case_types+_run_case_type_drift_levels, reusessynthetic_case_route. Re-sorts a fraction ofcase_typetags by arrival time with the global marginal held fixed. Bothcase_typeandactivity_typefire — thecase_typehit is the temporal-drift signature vs the randomlabel_swap.Wiring
Dispatch in
_prepare_params_for_level/run_pipeline;DatasetSpecentries; CLI choices--perturbation parallel_auto|front_back_load|case_type_driftand--load-direction.Tests
17 new unit tests (builder invariants, total-duration invariance, marginal preservation, drift sortedness, error paths). Full non-e2e suite: 233 passed, no regressions.
Docs
PAPER_SCENARIOS.md(table + build status) and a standaloneEXPERIMENT_SCENARIOS.md(table + plain-English scenario descriptions).🤖 Generated with Claude Code
https://claude.ai/code/session_01Fj2DDhAhygixvTfJm4Qjpo