Difference between revisions of "Lotka Volterra Multimode fishing problem"

From mintOC
Jump to: navigation, search
Line 17: Line 17:
 
  \displaystyle \min_{x, w} & x_2(t_f)  \\[1.5ex]
 
  \displaystyle \min_{x, w} & x_2(t_f)  \\[1.5ex]
 
  \mbox{s.t.}  
 
  \mbox{s.t.}  
  & \dot{x}_0 & = &  x_0 - x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{0,i} x_0 \; w_i, \\
+
  & \dot{x}_0 & = &  x_0 - x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{0,i}\; x_0 \; w_i, \\
  & \dot{x}_1 & = & - x_1 + x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{1,i} x_1 \; w_i,  \\
+
  & \dot{x}_1 & = & - x_1 + x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{1,i}\; x_1 \; w_i,  \\
 
  & \dot{x}_2 & = & (x_0 - 1)^2 + (x_1 - 1)^2,  \\[1.5ex]
 
  & \dot{x}_2 & = & (x_0 - 1)^2 + (x_1 - 1)^2,  \\[1.5ex]
 
  & x(0) &=& (0.5, 0.7, 0)^T, \\
 
  & x(0) &=& (0.5, 0.7, 0)^T, \\
Line 36: Line 36:
 
\begin{array}{rcl}
 
\begin{array}{rcl}
 
[t_0, t_f] &=& [0, 12],\\
 
[t_0, t_f] &=& [0, 12],\\
(c_{0,1}, c_{1,1} &=& (0.2, 0.1),\\
+
(c_{0,1}, c_{1,1}) &=& (0.2, 0.1),\\
(c_{0,2}, c_{1,2} &=& (0.4, 0.2),\\
+
(c_{0,2}, c_{1,2}) &=& (0.4, 0.2),\\
(c_{0,3}, c_{1,3} &=& (0.01, 0.1).
+
(c_{0,3}, c_{1,3}) &=& (0.01, 0.1).
 
\end{array}
 
\end{array}
 
</math>
 
</math>
Line 56: Line 56:
  
  
== Source Code ==
 
  
Model descriptions are available in
 
  
* [[:Category:ACADO | ACADO code]] at [[Lotka Volterra fishing problem (ACADO)]]
 
* [[:Category:AMPL | AMPL code]] at [[Lotka Volterra fishing problem (AMPL)]]
 
* [[:Category:APMonitor | APMonitor code]] at [[Lotka Volterra fishing problem (APMonitor)]]
 
* [[:Category:Bocop | Bocop code]] at [[Lotka Volterra fishing problem (Bocop)]]
 
* [[:Category:Casadi | Casadi code]] at [[Lotka Volterra fishing problem (Casadi)]]
 
* [[:Category:JModelica | JModelica code]] at [[Lotka Volterra fishing problem (JModelica)]]
 
* [[:Category:Julia/JuMP | JuMP code]] at [[Lotka Volterra fishing problem (JuMP)]]
 
* [[:Category:Muscod | Muscod code]] at [[Lotka Volterra fishing problem (Muscod)]]
 
* [[:Category:switch | switch code]] at [[Lotka Volterra fishing problem (switch)]]
 
* [[:Category:TomDyn/PROPT | PROPT code]] at [[Lotka Volterra fishing problem (TomDyn/PROPT)]]
 
  
== Variants ==
 
  
There are several alternative formulations and variants of the above problem, in particular
 
  
* a prescribed time grid for the control function <bib id="Sager2006" />, see also [[Lotka Volterra fishing problem (AMPL)]],
 
* a time-optimal formulation to get into a steady-state <bib id="Sager2005" />,
 
* the usage of a different target steady-state, as the one corresponding to <math> w(t) = 1</math> which is <math>(1 + c_1, 1 - c_0)</math>,
 
* different fishing control functions for the two species,
 
* different parameters and start values.
 
 
== Miscellaneous and Further Reading ==
 
The Lotka Volterra fishing problem was introduced by Sebastian Sager in a proceedings paper <bib id="Sager2006" /> and revisited in his PhD thesis <bib id="Sager2005" />. These are also the references to look for more details.
 
 
== References ==
 
<biblist />
 
  
 
<!--List of all categories this page is part of. List characterization of solution behavior, model properties, ore presence of implementation details (e.g., AMPL for AMPL model) here -->
 
<!--List of all categories this page is part of. List characterization of solution behavior, model properties, ore presence of implementation details (e.g., AMPL for AMPL model) here -->

Revision as of 10:43, 21 December 2017

Lotka Volterra Multimode fishing problem
State dimension: 1
Differential states: 3
Discrete control functions: 3
Interior point equalities: 3

This site describes a Lotka Volterra variant with three binary controls instead of only one control.

Mathematical formulation

The mixed-integer optimal control problem is given by


\begin{array}{llclr}
 \displaystyle \min_{x, w} & x_2(t_f)   \\[1.5ex]
 \mbox{s.t.} 
 & \dot{x}_0 & = &  x_0 - x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{0,i}\; x_0 \; w_i, \\
 & \dot{x}_1 & = & - x_1 + x_0 x_1 - \; \sum\limits_{i=1}^{3} c_{1,i}\; x_1 \; w_i,  \\
 & \dot{x}_2 & = & (x_0 - 1)^2 + (x_1 - 1)^2,  \\[1.5ex]
 & x(0) &=& (0.5, 0.7, 0)^T, \\
 & \sum\limits_{i=1}^{3}w_i(t) &=& 1, \\
 & w_i(t) &\in&  \{0, 1\}, \quad i=1\ldots 3.
\end{array}

Here the differential states (x_0, x_1) describe the biomasses of prey and predator, respectively. The third differential state is used here to transform the objective, an integrated deviation, into the Mayer formulation \min \; x_2(t_f). This problem variant allows to choose between three different fishing options.

Parameters

These fixed values are used within the model.


\begin{array}{rcl}
[t_0, t_f] &=& [0, 12],\\
(c_{0,1}, c_{1,1}) &=& (0.2, 0.1),\\
(c_{0,2}, c_{1,2}) &=& (0.4, 0.2),\\
(c_{0,3}, c_{1,3}) &=& (0.01, 0.1).
\end{array}

Reference Solutions

If the problem is relaxed, i.e., we demand that w(t) be in the continuous interval [0, 1] instead of the binary choice \{0,1\}, the optimal solution can be determined by means of Pontryagins maximum principle. The optimal solution contains a singular arc, as can be seen in the plot of the optimal control. The two differential states and corresponding adjoint variables in the indirect approach are also displayed. A different approach to solving the relaxed problem is by using a direct method such as collocation or Bock's direct multiple shooting method. Optimal solutions for different control discretizations are also plotted in the leftmost figure.

The optimal objective value of this relaxed problem is x_2(t_f) = 1.34408. As follows from MIOC theory [Sager2011d]Author: S. Sager
How published: University of Heidelberg
Month: August
Note: Habilitation
Title: On the Integration of Optimization Approaches for Mixed-Integer Nonlinear Optimal Control
Url: http://mathopt.de/PUBLICATIONS/Sager2011d.pdf
Year: 2011
Link to Google Scholar
this is the best lower bound on the optimal value of the original problem with the integer restriction on the control function. In other words, this objective value can be approximated arbitrarily close, if the control only switches often enough between 0 and 1. As no optimal solution exists, two suboptimal ones are shown, one with only two switches and an objective function value of x_2(t_f) = 1.38276, and one with 56 switches and x_2(t_f) = 1.34416.