Skip to content

Commit 2c1a165

Browse files
authored
minor changes for JOSS paper (#33)
1 parent 83ff675 commit 2c1a165

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

paper/bibliography.bib

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@article{bezanson2017julia,
2-
title = {Julia: {{A Fresh Approach}} to {{Numerical Computing}}},
2+
title = {Julia: A Fresh Approach to Numerical Computing},
33
shorttitle = {Julia},
44
author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B.},
55
year = {2017},
@@ -16,7 +16,7 @@ @article{bezanson2017julia
1616
}
1717

1818
@article{rackauckas2017,
19-
title = {{{DifferentialEquations}}.Jl -- a Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia},
19+
title = {{DifferentialEquations.jl} -- a Performant and Feature-Rich Ecosystem for Solving Differential Equations in {J}ulia},
2020
author = {Rackauckas, Christopher and Nie, Qing},
2121
year = {2017},
2222
journal = {The Journal of Open Research Software},
@@ -27,7 +27,7 @@ @article{rackauckas2017
2727
}
2828

2929
@misc{vaibhav_kumar_dixit_2023_7738525,
30-
title = {Optimization.Jl: {{A}} Unified Optimization Package},
30+
title = {{Optimization.jl}: A Unified Optimization Package},
3131
author = {Dixit, Vaibhav Kumar and Rackauckas, Christopher},
3232
year = {2023},
3333
month = mar,
@@ -36,7 +36,7 @@ @misc{vaibhav_kumar_dixit_2023_7738525
3636
}
3737

3838
@phdthesis{Koerkel2002,
39-
title = {Numerische {{Methoden}} F{\"u}r {{Optimale Versuchsplanungsprobleme}} Bei Nichtlinearen {{DAE-Modellen}}},
39+
title = {Numerische Methoden F{\"u}r Optimale Versuchsplanungsprobleme Bei Nichtlinearen {DAE-Modellen}},
4040
author = {K{\"o}rkel, S.},
4141
year = {2002},
4242
address = {{Heidelberg}},
@@ -46,7 +46,7 @@ @phdthesis{Koerkel2002
4646
}
4747

4848
@inproceedings{juniper,
49-
title = {Juniper: {{An Open-Source Nonlinear Branch-and-Bound Solver}} in {{Julia}}},
49+
title = {Juniper: An Open-Source Nonlinear Branch-and-Bound Solver in {J}ulia},
5050
shorttitle = {Juniper},
5151
booktitle = {Integration of {{Constraint Programming}}, {{Artificial Intelligence}}, and {{Operations Research}}},
5252
author = {Kr{\"o}ger, Ole and Coffrin, Carleton and Hijazi, Hassan and Nagarajan, Harsha},
@@ -62,7 +62,7 @@ @inproceedings{juniper
6262
}
6363

6464
@article{Li2000SensitivityAnalysisDifferential,
65-
title = {Sensitivity Analysis of {{Differential}}--{{Algebraic}} Equations: {{A}} Comparison of Methods on a Special Problem},
65+
title = {Sensitivity Analysis of Differential--Algebraic Equations: A Comparison of Methods on a Special Problem},
6666
shorttitle = {Sensitivity Analysis of {{Differential}}--{{Algebraic}} Equations},
6767
author = {Li, Shengtai and Petzold, Linda and Zhu, Wenjie},
6868
year = {2000},
@@ -80,7 +80,7 @@ @article{Li2000SensitivityAnalysisDifferential
8080
}
8181

8282
@misc{ma2021modelingtoolkit,
83-
title = {{{ModelingToolkit}}: {{A Composable Graph Transformation System For Equation-Based Modeling}}},
83+
title = {{ModelingToolkit}: A Composable Graph Transformation System For Equation-Based Modeling},
8484
shorttitle = {{{ModelingToolkit}}},
8585
author = {Ma, Yingbo and Gowda, Shashi and Anantharaman, Ranjan and Laughman, Chris and Shah, Viral and Rackauckas, Chris},
8686
year = {2022},
@@ -96,7 +96,7 @@ @misc{ma2021modelingtoolkit
9696
}
9797

9898
@article{Sager2013,
99-
title = {Sampling {{Decisions}} in {{Optimum Experimental Design}} in the {{Light}} of {{Pontryagin}}'s {{Maximum Principle}}},
99+
title = {Sampling Decisions in Optimum Experimental Design in the Light of {P}ontryagin's Maximum Principle},
100100
author = {Sager, Sebastian},
101101
year = {2013},
102102
month = jan,
@@ -113,7 +113,7 @@ @article{Sager2013
113113
}
114114

115115
@article{Waechter2006,
116-
title = {On the {{Implementation}} of an {{Interior-Point Filter Line-Search Algorithm}} for {{Large-Scale Nonlinear Programming}}},
116+
title = {On the Implementation of an Interior-Point Filter Line-Search Algorithm for Large-Scale Nonlinear Programming},
117117
author = {W{\"a}chter, A. and Biegler, L.T.},
118118
year = {2006},
119119
journal = {Mathematical Programming},

paper/paper.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ bibliography: bibliography.bib
3535
Optimum experimental design (OED) problems are typically encountered when unknown or uncertain
3636
parameters of mathematical models are to be estimated from an observable, maybe even controllable, process. In this scenario, OED can be used to decide on an experimental setup before collecting the data, i.e., deciding on when to measure and / or how to stimulate a dynamic process in order to maximize the amount of information gathered such that the parameters can be accurately estimated.
3737

38-
Our software package DynamicOED.jl facilitates the solution of optimum experimental design problems for dynamical systems. Following ideas presented in [@Sager2013], we cast the OED problem into an optimal control problem. This is done by augmenting the user-provided system of ordinary differential equations (ODE) or differential algebraic equations (DAE) with their variational differential (algebraic) equations and the differential equation governing the evolution of the Fisher information matrix (FIM). A suitable criterion based on the FIM is then optimized in the resulting optimal control problem using a direct *first discretize, then optimize* approach.
38+
Our software package, DynamicOED.jl, facilitates the solution of optimum experimental design problems for dynamical systems. Following ideas presented in @Sager2013, we cast the OED problem into an optimal control problem. This is done by augmenting the user-provided system of ordinary differential equations (ODE) or differential algebraic equations (DAE) with their variational differential (algebraic) equations and the differential equation governing the evolution of the Fisher information matrix (FIM). A suitable criterion based on the FIM is then optimized in the resulting optimal control problem using a direct *first discretize, then optimize* approach.
3939

4040
# Statement of need
4141

4242
`DynamicOED.jl` is a Julia [@bezanson2017julia] package for solving optimum experimental design problems. Solving OED problems is of interest for several reasons. First, all model-based optimization strategies rely on the knowledge of the accurate values of the model's parameters. Second, computing optimal experimental designs before performing the actual experiments to collect data allows to reduce the number of needed experiments or measurements. This is important in practical applications when measuring quantities of interest is only possible to a limited extent, e.g., due to high costs of performing the measurements.
4343

44-
Our package is designed for high flexibility and ease of use. For formulating the underlying dynamical system, our package bases on the `ODESystem` from `ModelingToolkit.jl` [@ma2021modelingtoolkit]. This enables researchers and modelers to easily investigate and analyze their models and allows them to collect insightful data for their parameter estimation problems.
44+
Our package is designed for high flexibility and ease of use. For formulating the underlying dynamical system, our package is based on the `ODESystem` from `ModelingToolkit.jl` [@ma2021modelingtoolkit]. This enables researchers and modelers to easily investigate and analyze their models and allows them to collect insightful data for their parameter estimation problems.
4545

46-
To our knowledge it is the first dedicated package for solving general optimal experimental design problems with dynamical systems written in the programming language Julia. It may therefore be a valuable resource to different communities dealing with experimental data and parameter estimation problems.
46+
To our knowledge, this is the first dedicated package for solving general optimal experimental design problems with dynamical systems written in the Julia programming language. It may therefore be a valuable resource to different communities dealing with experimental data and parameter estimation problems.
4747

4848
# Problem statement and usage example
4949

@@ -65,9 +65,9 @@ $$
6565
$$
6666
where $\mathcal{T} = [t_0, t_f]$ is the fixed time horizon and $x : \mathcal{T} \mapsto \mathbb{R}^{n_x}$ are the differential states. The first and second constraint denote the dynamical system and the sensitivities of the solution of the dynamical system with respect to the uncertain parameters, respectively, and are given in an implicit form. Here, $f_{\dot x}$, ($f_x$) denote the partial derivative of $f$ with respect to $\dot x$ and ($x$). The objective $\phi(F(t_f))$ of Bolza type is a suited objective function, e.g., the D-criterion $\phi(F(t_f)) = \det(F^{-1}(t_f))$. The evolution of the symmetric FIM $F : \mathcal{T} \mapsto \mathbb{R}^{n_p \times n_p}$ is governed by the measurement function $h: \mathbb{R}^{n_x} \mapsto \mathbb{R}^{n_h}$, the sensitivities $G : \mathcal{T} \mapsto \mathbb{R}^{n_x \times n_p}$ and the sampling decisions $w(t) \in \{0,1\}^{n_h}$. The latter are the main optimization variables and represent the decision whether to measure at a given time point or not. In our direct approach, these variables are discretized, hence we write $w(t) \in \{0,1\}^{N_w \times n_h}$, where $N_w$ is the (user-supplied) number of discretization intervals on $\mathcal{T}$. The sampling decisions are then accumulated in the variables $z$ and constrained by $M \in \mathbb{R}^{n_h}_{+}$. The controls $u \in \mathcal{U}$ can either be fixed or also be viewed as optimization variables after discretization.
6767

68-
For more information on optimal experimental design for DAEs and their sensitivity analysis, we refer to [@Koerkel2002; @Li2000SensitivityAnalysisDifferential].
68+
For more information on optimal experimental design for DAEs and their sensitivity analysis, we refer to @Koerkel2002 and @Li2000SensitivityAnalysisDifferential.
6969

70-
The functionality in this package integrates into Julia's [`SciML`](https://sciml.ai/) ecosystem. The model is provided in symbolic form as an `ODESystem` using `ModelingToolkit.jl` [@ma2021modelingtoolkit] with additional frequency information for the observed and control variables. Both ODE or DAE systems can be provided. `DynamicOED.jl` augments the given system symbolically with its sensitivity equations and the dynamics of the FIM. The resulting system together with a sufficient information criterion defines an `OEDProblem`, solveable using `DifferentialEquations.jl` [@rackauckas2017]. Here, all sampling and control decisions are discretized in time and can be used to model additional constraints. At last, the `OEDProblem` can be transformed into an `OptimizationProblem` as a sufficient input to `Optimization.jl` [@vaibhav_kumar_dixit_2023_7738525]. Here, a variety of optimization solvers for nonlinear programming and mixed-integer nonlinear programming available as additional backends, e.g. `Juniper` [@juniper] or `Ipopt` [@Waechter2006]. A simple example demonstrates the usage of `DynamicOED.jl` for the Lotka-Volterra system [@Sager2013].
70+
The functionality in this package integrates into Julia's [`SciML`](https://sciml.ai/) ecosystem. The model is provided in symbolic form as an `ODESystem` using `ModelingToolkit.jl` [@ma2021modelingtoolkit] with additional frequency information for the observed and control variables. Both ODE or DAE systems can be provided. `DynamicOED.jl` augments the given system symbolically with its sensitivity equations and the dynamics of the FIM. The resulting system together with a sufficient information criterion defines an `OEDProblem`, solveable using `DifferentialEquations.jl` [@rackauckas2017]. Here, all sampling and control decisions are discretized in time and can be used to model additional constraints. At last, the `OEDProblem` can be transformed into an `OptimizationProblem` as a sufficient input to `Optimization.jl` [@vaibhav_kumar_dixit_2023_7738525]. Here, a variety of optimization solvers for nonlinear programming and mixed-integer nonlinear programming available as additional backends, e.g., `Juniper` [@juniper] or `Ipopt` [@Waechter2006]. A simple example demonstrates the usage of `DynamicOED.jl` for the Lotka-Volterra system [@Sager2013].
7171

7272
\autoref{fig:lotka} shows the solution of the example above including the differential states, sensitivities $G$ and the sampling decisions $w$. More examples can be found in the [documentation](https://mathopt.github.io/DynamicOED.jl/dev/).
7373

0 commit comments

Comments
 (0)