turf() searches for
other portfolios with the same penetration, within the solver tolerance.
That search stops after 1,000 more portfolios or 30 seconds. If it stops
early, turf() gives a warning, and the penetration is
optimal only to within the solver tolerance (about 1e-9).turf_min_cover() checks the solver’s result and stops
with an error if the selection does not cover everyone or is not
integral.turf_simulate() checks its arguments.python/) and
JavaScript (js/) ports that follow the same specification
(docs/algorithm.md) and pass the same conformance suite
(conformance/), and a one-file browser dashboard
(dashboard/) that runs the JavaScript port. They are not
part of the R package.First release. The package replaces the 2021 prototype script.
turf() finds the portfolio of a given size with maximum
reach, with frequency and penetration tie-breaks.turf_min_cover() finds the smallest portfolio that
reaches every reachable respondent.turf_sizes() solves a range of portfolio sizes and
returns a table.turf_simulate() makes random reach data for examples
and tests.ham,
coffee, pies, and lunchbags.
Simulated example data of three sizes: icecream,
chips, and cafe.