Fig 1.
Code Snippets: FBS vs JuMP–Ipopt.
Code snippets implementing the different approaches to solve the optimal control problem: forward-backward sweep (left) and JuMP with IPOPT solver (right).
Fig 2.
Optimal control solutions: FBS vs JuMP–Ipopt.
Optimal control solutions obtained using the (a) forward-backward sweep method and the (b) JuMP modeling framework with IPOPT.
Table 1.
Values of parameters used in evaluations performed using the modified SIR models.
Fig 3.
SIR baseline vs intervention starting at peak of infections (non-optimal).
Comparison of SIR model outputs (a) baseline scenario without intervention and (b) with a lockdown intervention that lasts 20 simulated days, set at and applied at the peak of infections.
Fig 4.
Comparison of SIR model outputs (a) optimised lockdown scenario, (b) effective reproduction number during lockdown, (c) optimised “flattening the curve” (FtC) scenario, and (d) effective reproduction number during FtC intervention.
Fig 5.
SIR with optimised vaccination.
Comparison of SIR model outputs (a) baseline scenario without intervention and (b) with a lockdown intervention that lasts 20 simulated days, set at and applied at the peak of infections.
Table 2.
Parameter values and descriptions used on the dengue fever model.
Table 3.
Comparison of the number of iterations and the time taken to reach an optimal solution when combining control strategies using JuMP with the IPOPT solver.
Table 4.
Comparison of different optimisation algorithms using IPOPT. The optimisation across platforms was performed on the same optimisation model, using the lockdown case scenario as an example (n = 100 runs, dt = 0.5). Hessian nnz denotes the number of non-zero elements of the Lagrangian Hessian matrix. Objective function evaluations (183) and Lagrangian Hessian evaluations (128) were identical across all platforms.