Jump to content

Lotka Volterra fishing problem: Difference between revisions

From mintOC
No edit summary
No edit summary
Line 1: Line 1:
<div style="text-align=right; float: right; clear: none; {{#if:{{{width|}}}|max-width: {{{width}}};}} margin: .5em 0 1em 1em; padding-left:0px">
<div style="align=right;">
{{Dimensions
{{Dimensions
|nd        = 1
|nd        = 1

Revision as of 23:09, 6 July 2008

Lotka Volterra fishing problem
State dimension: 1
Differential states: 3
Algebraic states: 0
Continuous control functions: 0
Discrete control functions: 1
Continuous control values: 0
Discrete control values: 0
Path constraints: 0
Interior point inequalities: 0
Interior point equalities: 3


The Lotka Volterra fishing problem looks for an optimal fishing strategy to be performed on a fixed time horizon to bring the biomasses of both predator as prey fish to a prescribed steady state. The problem was set up as a small-scale benchmark problem. The well known Lotka Volterra equations for a predator-prey system have been augmented by an additional linear term, relating to fishing by man. The control can be regarded both in a relaxed, as in a discrete manner, corresponding to a part of the fleet, or the full fishing fleet.

It is thus an ODE model with a single integer control function. The interior point equality conditions fix the initial values of the differential states.

The optimal solution contains a singular arc, making the Lotka Volterra fishing problem an ideal candidate for benchmarking of algorithms.

Mathematical formulation

For t[t0,tf] almost everywhere the mixed-integer optimal control problem is given by

minx,wx2(tf)s.t.x˙0(t)=x0(t)x0(t)x1(t)c0x0(t)w(t),x˙1(t)=x1(t)+x0(t)x1(t)c1x1(t)w(t),x˙2(t)=(x0(t)1)2+(x1(t)1)2,x(0)=x0,w(t){0,1}.

Initial values and parameters

These fixed values are used within the model.

[t0,tf]=[0,12],(c0,c1)=(0.4,0.2),x0=(0.5,0.7,0)T.

Reference Solutions

States


The two differential states and corresponding adjoint variables in the indirect approach

Source Code

  double ref0 = 1, ref1 = 1;                 /* steady state with u == 0 */

  rhs[0] =   xd[0] - xd[0]*xd[1] - p[0]*u[0]*xd[0];
  rhs[1] = - xd[1] + xd[0]*xd[1] - p[1]*u[0]*xd[1];
  rhs[2] = (xd[0]-ref0)*(xd[0]-ref0) + (xd[1]-ref1)*(xd[1]-ref1);

Miscellaneous

The Lotka Volterra fishing problem was introduced by Sebastian Sager in a proceedings paper <bibref>Sager2006</bibref> and revisited in his PhD thesis <bibref>Sager2005</bibref>. These are also the references to look for more details.

References

<bibreferences/>