Interdiction view (Day 4): the adversary on a budget ladder - #66
Merged
Conversation
#43) The whole ladder arrives in one request per dataset and is installed as a complete spine before the keyboard goes live, so stepping a budget level -- forwards or backwards, at speaking pace -- is an index change and never a fetch. The coarse unit is the budget level k, and each rung is two beats: greedy's blockade on the live network, then the optimum's flip with the throughput collapsed. Hypothesis, then verdict. Greedy's pick is the one the room can predict off the board, so it is the guess the instructor invites them to make out loud; putting the optimum first would answer the question before asking it, and it would leave the rung ending on greedy's stall rather than on the true residual the next k departs from. Both tracks are on screen at every rung, on every dataset, with agreement STATED as a pair -- the theater reads 140 / 140, 60 / 60, 0 / 0. A rung with one number is read as "greedy wasn't run", and the theater's greedy correctness is a theorem about the network's shape rather than luck. Nothing about how long Day 4 is is decided in JavaScript. Ladder length, the rung collapse and the `diverges` flag are read off the payload, and the timeline flags the diverging rungs so "k=1 agrees, k=2 and k=3 do not" is visible without stepping the whole ladder. The search counts are labelled `Searched` and `Skipped`, per track, because the space's size beside a greedy result claims work greedy never did. Two tracks spend no second channel: only one blockade is ever drawn, so `.removed` stays a single row state and the X keeps its one meaning. The interdicted subset is row states on the one ledger with the count as a headline number, never a second list. Notes on two things the review moved: - `showCut` is now shared with the Flow & Cut spine. Day 4 draws Day 3's certificate underneath its own wreckage -- the cross-day mashup the layer catalog is global for -- and a certificate rendered from two blocks of code is one that can mean one thing on Wednesday and another on Thursday. - The untouched theater's throughput comes off `/maxflow` rather than off the ladder's own `baseline_throughput`. It sits one slot from the cut capacity it must equal by max-flow/min-cut, and two numbers that must be equal, fetched by two routes, are a contradiction waiting for a projector. A blockade naming a lane the diagram cannot draw now throws while the spine is being built, rather than being skipped: skipping drops the lane from the picture AND from the `Struck` count, which is a headline number quietly too small with nothing raised anywhere. Closes #43
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.
Closes #43.
Day 4's view (
C): the adversary climbing a budget ladder one rung at a time, with the greedy heuristic's guess shown before the optimum's verdict at every rung.What it does
The whole ladder arrives in one
/interdict?ladder=truerequest per dataset and is installed as a complete spine before the keyboard goes live, so stepping a budget level — forwards or backwards, at speaking pace — is an index change and never a fetch.The coarse unit is the budget level k, and each rung is two beats: greedy's blockade on the live network, then the optimum's flip with the throughput collapsed. Hypothesis, then verdict. Greedy's pick is the one the room can predict off the board, so it is the guess the instructor invites them to make out loud; putting the optimum first would answer the question before asking it, and it would leave the rung ending on greedy's stall rather than on the true residual the next k departs from.
Both tracks are on screen at every rung, on every dataset, with agreement stated as a pair — the theater reads
140 / 140,60 / 60,0 / 0. A rung with one number is read as "greedy wasn't run", and the theater's greedy correctness is a theorem about the network's shape rather than luck.Nothing about how long Day 4 is is decided in JavaScript. Ladder length, the rung collapse and the
divergesflag are read off the payload, and the timeline flags the diverging rungs so "k=1 agrees, k=2 and k=3 do not" is visible without stepping the whole ladder. The search counts are labelledSearchedandSkipped, per track, because the space's size beside a greedy result claims work greedy never did.Two tracks spend no second channel: only one blockade is ever drawn, so
.removedstays a single row state and theXkeeps its one meaning. The interdicted subset is row states on the one ledger with the count as a headline number, never a second list. Day 3's min-cut layer is on from beat 0 and stays toggleable over the interdicted network — the cross-day mashup the layer catalog is global for.Accepted costs, stated so they are not read as bugs
1lands on the untouched theater. Same fold, and same cost, as the Flow & Cut spine.Two things the review moved
showCutis now shared with the Flow & Cut spine. Day 4 draws Day 3's certificate underneath its own wreckage, and a certificate rendered from two blocks of code is one that can mean one thing on Wednesday and another on Thursday./maxflowrather than off the ladder's ownbaseline_throughput. It sits one slot from the cut capacity it must equal by max-flow/min-cut, and two numbers that must be equal, fetched by two routes, are a contradiction waiting for a projector.A blockade naming a lane the diagram cannot draw now throws while the spine is being built, rather than being skipped: skipping drops the lane from the picture and from the
Struckcount, which is a headline number quietly too small with nothing raised anywhere.Verification
Full suite 365 passed, including ten new tests for this ticket in
tests/test_web_assets.py. The frontend is verified from Python or not at all, so no JS toolchain is added here — but since Python cannot execute the modules, the spine was additionally driven under Node against real API payloads while developing: 7 beats / 3 units on the trap, divergencefalse, true, true, ends declining rather than wrapping, digit jumps landing on the right rung, and both the missing-lane guard and the truncated-ladder label firing.The picture itself is eyeballed, as ever.