Skip to contents

Simple grid-search optimiser for allocating budget across vaccination and WASH, with optional constraints. This is a pragmatic starting point; swap to a more sophisticated optimiser once costs and decision variables are finalised.

Usage

chlaa_optimise_budget(
  pars,
  budget,
  cost = list(cost_per_vaccine_dose = 2, cost_chlorination_per_person_day = 0.02,
    cost_hygiene_per_person_day = 0.03, cost_latrine_per_person_day = 0.01,
    cost_cati_per_person_day = 0.05, cost_per_orc_treatment = 10, cost_per_ctc_treatment
    = 80),
  time = 0:180,
  n_particles = 100,
  dt = 0.25,
  seed = 1,
  grid_size = 10,
  min_fraction = list(vax = 0, wash = 0, care = 0),
  max_fraction = list(vax = 1, wash = 1, care = 1),
  max_vax_doses_per_day = Inf,
  max_total_doses = Inf,
  method = c("auto", "grid", "continuous")
)

Arguments

pars

Baseline parameter list.

budget

Total budget.

cost

Cost list (see Details).

time

Simulation times.

n_particles

Number of particles for each evaluation.

dt

Time step.

seed

Seed.

grid_size

Number of grid points per decision dimension.

min_fraction

Named list of minimum allocation fractions by intervention (`vax`, `wash`, `care`).

max_fraction

Named list of maximum allocation fractions by intervention (`vax`, `wash`, `care`).

max_vax_doses_per_day

Maximum feasible vaccination doses per day.

max_total_doses

Optional upper bound on total vaccine doses.

method

Optimisation method: "auto", "grid", or "continuous".

Value

A list with best allocation and a data.frame of evaluated allocations.

Details

The objective is to minimise expected deaths (mean across particles) over the horizon.

`cost` is a named list that can include: - cost_per_vaccine_dose - cost_chlorination_per_person_day - cost_hygiene_per_person_day - cost_latrine_per_person_day - cost_cati_per_person_day

Budget is spent on: - vaccination doses (vax1_total_doses, vax1_doses_per_day within the campaign window) - WASH (implemented by setting intervention effects; this is a placeholder mapping)