Repository navigation
netoptim v0.4.0 β Oracle Speedup & Clock-Skew Survey Release
Speeds up the oracle hot path (~3.4Γ on the optscaling stress graph), forwards Options through new solve_network_feas / solve_opt_scaling facades, fixes a feasibility-facade AttributeError, and adds a full clock-skew scheduling survey paper + 30-minute Beamer deck. 36 tests pass.
Features
- Oracle facades +
EdgeOracleprotocol: Added_typing.py(EdgeOracleProtocol +Cutalias), re-exported the oracles from__init__.py, and addedsolve_network_feas/solve_opt_scalingfacades.OptScalingOracle.Ratiogained its missingupdate()no-op. (#9137d2f) - Tighter default optimizer settings:
DEFAULT_TOLERANCEtightened to1e-10(was1e-8; measured ~1e-5 vs ~1e-4 objective error for ~10β15 extra iterations), andsolve_opt_scaling'sgammanow defaults tofloat('inf'). (#1d36ef0)
Performance
- Oracle hot path + Options forwarding: Forward
Optionsthrough the facades (default1e-8vs ellalgo's1e-20: 51β27 iterations on the stress graph); added an optionalEdgeOracle.make_weight_fnhook withRatiobindingx[0]/x[1]once per assessment to avoid NumPy scalar indexing in the per-edge loop. Measured ~300 ms β ~90 ms (3.4Γ) on the 250-node / 1844-edge optscaling stress graph with identical gamma. (#505fab2)
Bug Fixes
solve_network_feasfacade: It calledcutting_plane_optim(needsassess_optim) and raisedAttributeError; now callscutting_plane_feasand drops the unusedx0argument.NetworkOraclenow nominally subclassesOracleFeas, making mypy clean. (#505fab2)Ratio.update()latentAttributeError: Added the missing no-op. (#9137d2f)- mypy config: Removed the duplicate
ignore_missing_importsentry. (#8aa12b1) - RTD docs build: Added matplotlib to
docs/requirements.txt. (#be689e8)
Testing & Code Quality
- Oracle tests: Added tests for the
make_weight_fnhook, Options forwarding, and the feasibility facade. (#505fab2)
Code Cleanup
- Removed AI slop: Stripped docstring/comment boilerplate and expanded the
EdgeOracleprotocol stubs to multi-line. (#94f68b0, #d62cc66)
Documentation
- Clock-skew scheduling survey paper + slides: Added a 16-page two-column Pandoc survey (
paper/clock_skew_scheduling.md) and a 30-minute Beamer deck (41 frames) with a vendored IEEE CSL, TikZ figures, offline build Makefiles, and reference-availability notes. (#1f0df97, #59b61e2, #ab91ef7, #1fc930c, #25981dd) - Tunable parameter reference: Added
tunable_parameter.md. (#7afef62) - AGENTS.md: Added agent guidelines. (#6e36a7f)
Build & CI
- Updated GitHub Actions:
checkoutβv4,setup-pythonβv5,codecov-actionβv4; removed the stale.bakworkflow files. (#6016c29, #5351aa8)
Full commit log (16 commits since 0.3):
25981dddocs: sync clock skew slides with paper revision1fc930cdocs: revise clock skew scheduling paperab91ef7docs: refresh figures for clock skew paper revisiond62cc66style: expand EdgeOracle protocol stubs to multi-line59b61e2docs: add reference availability notes for clock skew paper1f0df97docs: add clock skew scheduling survey paper and slide deck1d36ef0feat: default solve_opt_scaling gamma to inf and tighten tolerance to 1e-107afef62docs: add tunable parameter reference505fab2perf: speed up oracle hot path, forward Options, fix feasibility facade9137d2frefactor: formalize EdgeOracle protocol, add oracle facades, dedup Cut94f68b0cleanup: remove AI slop from docstrings and comments6e36a7fdocs: add AGENTS.md agent guidelines5351aa8ci: remove stale .bak workflow files6016c29ci: update GitHub Actions versions8aa12b1fix: remove duplicate ignore_missing_imports in mypy.inibe689e8fix: add matplotlib to docs/requirements.txt for RTD build