inference-cost

Viewers

Models

Given a set of time, cost, accuracy triples $\left(t_i, c_i, a_i\right)$, define the Pareto accuracy frontier by

\(P_t(c) = \max\limits_{i | c_i \le c, t_i \le t} a_i\)
and the Pareto cost frontier by

\[C_t(a) = \min\limits_{i | a_i \ge a, t_i \le t} c_i\]


Controls sets

Code

Everything is in src/. run_all.R sources the output scripts into one process so the heavy fits are computed once and shared.

Driver:

Libraries (sourced, never run directly):

Output scripts:

Each fit is drawn in three 2-D views, the three non-redundant ways to read one surface z(cost, date). One is an isochrone plate, holding the date fixed and sweeping cost: accuracy against cost (<model>_<spec>.png, frontier_progression_*). Two are contour plates, each holding a different variable fixed and running date across: cost against date at fixed accuracy (isoaccuracy_*) and accuracy against date at fixed budget (isocost_*). Transposing the isochrone plate — cost up, accuracy across — is the same curve objects remapped and shows nothing new, so it is not drawn. The staircases under the two contour plates are the same empirical Pareto frontier sliced the two ways — C_a(t) = min{c : a_i ≥ a, t_i ≤ t} and A_c(t) = max{a_i : c_i ≤ c, t_i ≤ t}.

Outputs

Everything the scripts write lands in output/. Figures are PNGs at the top level, 3-D pages are HTML beside them, and two subfolders hold the report and slide material (slides/) and the tables (tables/). Every faceted figure lays its benchmarks out two across, primaries first, then the rest alphabetically; figures of pooled fits add a sixth panel, “Pooled primaries (ECI scale)”, after the primaries.

Fitted-model figures: <view>_<model>_<spec>.png

The three parts of the name:

So isoaccuracy_costgridols_bc.png is the cost-against-date view of the least-squares Pareto-grid cost fit with Box-Tidwell controls.

Nonparametric and reference figures

3-D pages: surface3d_<model>_<spec>_<view>.html

Interactive plotly renderings of the empirical surface with the fitted one as a wireframe over it, one scene per benchmark; <view> is frontier, isoaccuracy or decline. Static HTML plus client-side WebGL: lib/ holds the one shared copy of plotly.js, so each page is small and both serve from GitHub Pages as they are. The plot viewer’s Rendering control switches between a model’s 2-D plate, its 3-D page and its heatmap twin.

slides/

tables/

GitHub repo