Will a learned streaming policy handle a network it has never seen?
Deterministic chunk-indexed throughput and buffer arithmetic for two hand-coded rules; no trained Pensieve policy, live streaming, or packet-level transport model.
This notebook runs the complete saved experiment, checks its assertions, and regenerates the SVG from the computed results. Python 3.10+ and standard-library modules only. Place experiment.py and figure_generation.py beside the notebook. The exact loaded assets are recorded in notebook metadata.
steady/high: score=17.00 stall=0.00s mean_bitrate=3.00Mbps (bitrate, buffer, stall): [(3.0, 2.0, 0.0), (3.0, 2.0, 0.0), (3.0, 2.0, 0.0), (3.0, 2.0, 0.0), (3.0, 2.0, 0.0), (3.0, 2.0, 0.0)] steady/buffer: score=13.00 stall=0.00s mean_bitrate=2.33Mbps (bitrate, buffer, stall): [(1.0, 3.33, 0.0), (1.0, 4.67, 0.0), (3.0, 4.67, 0.0), (3.0, 4.67, 0.0), (3.0, 4.67, 0.0), (3.0, 4.67, 0.0)] bursty/high: score=-43.00 stall=15.00s mean_bitrate=3.00Mbps (bitrate, buffer, stall): [(3.0, 3.0, 0.0), (3.0, 2.0, 5.0), (3.0, 3.0, 0.0), (3.0, 2.0, 5.0), (3.0, 3.0, 0.0), (3.0, 2.0, 5.0)] bursty/buffer: score=-7.33 stall=3.33s mean_bitrate=1.33Mbps (bitrate, buffer, stall): [(1.0, 3.67, 0.0), (1.0, 3.0, 0.0), (1.0, 4.67, 0.0), (3.0, 2.0, 3.33), (1.0, 3.67, 0.0), (1.0, 3.0, 0.0)] low-throughput/high: score=-159.00 stall=44.00s mean_bitrate=3.00Mbps (bitrate, buffer, stall): [(3.0, 2.0, 0.0), (3.0, 2.0, 0.0), (3.0, 2.0, 22.0), (3.0, 2.0, 22.0), (3.0, 2.0, 0.0), (3.0, 2.0, 0.0)] low-throughput/buffer: score=-95.33 stall=25.33s mean_bitrate=1.33Mbps (bitrate, buffer, stall): [(1.0, 3.33, 0.0), (1.0, 4.67, 0.0), (3.0, 2.0, 19.33), (1.0, 2.0, 6.0), (1.0, 3.33, 0.0), (1.0, 4.67, 0.0)] 20 equal-mean permutations, high: stalls range 15.000–18.000 s 20 equal-mean permutations, buffer: stalls range 0.333–4.000 s
Regenerated figure.svg from results.json.
Inspect the saved result
The article's static figure is available before running code. The regenerated figure.svg uses results.json, and every plotted quantity comes from the experiment.
Change an input in experiment.py, rerun both code cells, then compare the saved result and figure.
Python runs locally in this page. Saved results and figures are visible before execution.