Difference between revisions of "Lotka Volterra Multimode fishing problem"

From mintOC
Jump to: navigation, search
(Created page with "{{Dimensions |nd = 1 |nx = 3 |nw = 3 |nre = 3 }}<!-- Do not insert line break here or Dimensions Box moves up in the layout... -->This site describ...")
 
 
(3 intermediate revisions by the same user not shown)
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, \\
 
  & \sum\limits_{i=1}^{3}w_i(t) &=& 1, \\
 
  & \sum\limits_{i=1}^{3}w_i(t) &=& 1, \\
  & w_i(t) &\in&  \{0, 1\}.
+
  & w_i(t) &\in&  \{0, 1\}, \quad i=1\ldots 3.
 
\end{array}  
 
\end{array}  
 
</math>
 
</math>
 
</p>
 
</p>
  
Here the differential states <math>(x_0, x_1)</math> 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 <math>\min \; x_2(t_f)</math>. The decision, whether the fishing fleet is actually fishing at time <math>t</math> is denoted by <math>w(t)</math>.
+
Here the differential states <math>(x_0, x_1)</math> 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 <math>\min \; x_2(t_f)</math>. This problem variant allows to choose between three different fishing options.
  
 
== Parameters ==
 
== Parameters ==
Line 36: Line 36:
 
\begin{array}{rcl}
 
\begin{array}{rcl}
 
[t_0, t_f] &=& [0, 12],\\
 
[t_0, t_f] &=& [0, 12],\\
(c_0, c_1) &=& (0.4, 0.2).
+
(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}
 
\end{array}
 
</math>
 
</math>
Line 42: Line 44:
 
== Reference Solutions ==
 
== Reference Solutions ==
  
If the problem is relaxed, i.e., we demand that <math>w(t)</math> be in the continuous interval <math>[0, 1]</math> instead of the binary choice <math>\{0,1\}</math>, the optimal solution can be determined by means of [http://en.wikipedia.org/wiki/Pontryagin%27s_minimum_principle 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.
+
If the problem is relaxed, i.e., we demand that <math>w(t)</math> be in the continuous interval <math>[0, 1]</math> instead of the binary choice <math>\{0,1\}</math>, the optimal solution can be determined by means of direct optimal control.  
  
The optimal objective value of this relaxed problem is <math>x_2(t_f) = 1.34408</math>. As follows from MIOC theory <bib id="Sager2011d" /> 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 <math>x_2(t_f) = 1.38276</math>, and one with 56 switches and <math>x_2(t_f) = 1.34416</math>.
+
The optimal objective value of the relaxed problem with  <math> n_t=12000, \, n_u=400  </math> is <math>x_2(t_f) =1.82875272</math>. The objective value of the binary controls obtained by Combinatorial Integral Approimation (CIA) is <math>x_2(t_f) =1.82878681</math>.
  
 
<gallery caption="Reference solution plots" widths="180px" heights="140px" perrow="2">
 
<gallery caption="Reference solution plots" widths="180px" heights="140px" perrow="2">
  Image:lotkaRelaxedControls.png| Optimal relaxed control determined by an indirect approach and by a direct approach on different control discretization grids.
+
  Image:MmlotkaRelaxed_12000_30_1.png| Optimal relaxed controls and states determined by an direct approach with ampl_mintoc (Radau collocation) and <math>n_t=12000, \, n_u=400</math>.
  Image:lotkaindirektStates.png| Differential states and corresponding adjoint variables in the indirect approach.
+
  Image:MmlotkaCIA 12000 30 1.png| Optimal binary controls and states determined by an direct approach (Radau collocation) with ampl_mintoc and <math>n_t=12000, \, n_u=400</math>. The relaxed controls were approximated by Combinatorial Integral Approximation.
  Image:lotka2Switches.png| Control and differential states with only two switches.
+
Image:lotka56Switches.png| Control and differential states with 56 switches.
+
 
</gallery>
 
</gallery>
  
  
== 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 -->

Latest revision as of 14:16, 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 direct optimal control.

The optimal objective value of the relaxed problem with  n_t=12000, \, n_u=400  is x_2(t_f) =1.82875272. The objective value of the binary controls obtained by Combinatorial Integral Approimation (CIA) is x_2(t_f) =1.82878681.