Jump to content

Lotka Volterra fishing problem

From mintOC

This problem was set up as a simple benchmark problem. Despite of its simple structure, the optimal solution contains a singular arcs, making the Lotka Volterra fishing problem an ideal candidate for benchmarking of algorithms.

In this problem the Lotka Volterra equations for a predator-prey system have been augmented by an additional linear term, relating to fishing by man.

Model dimensions and properties

The model has the following dimensions:

nx=3nz=0nu=0nw=1np=0nρ=0nc=0nri=0nre=3

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.

Mathematical formulation

For t[t0,tf] 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

t0=0tf=12c0=0.4c1=0.2x0=(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

Testing Graphviz

<graphviz border='frame' format='svg'> digraph G {Hello->World!} </graphviz>

Testing Syntax Highlighting

// Hello World in Microsoft C# ("C-Sharp").

using System;

class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}

External references