# Lotka Volterra fishing problem (TACO)

Jump to: navigation, search

This page contains a model of the MIOCP Lotka Volterra fishing problem in AMPL format, making use of the TACO toolkit for AMPL control optimization extensions. This problem is due to [Sager2005]Address: Tönning, Lübeck, Marburg
Author: S. Sager
Editor: ISBN 3-89959-416-9
Publisher: Der andere Verlag
Title: Numerical methods for mixed--integer optimal control problems
Url: http://mathopt.de/PUBLICATIONS/Sager2005.pdf
Year: 2005 . Note that you will need to include a generic AMPL/TACO support file, OptimalControl.mod. To solve this model, you require an optimal control or MINLP code that uses the TACO toolkit to support the AMPL optimal control extensions.

### AMPL

This is the source file lotka_taco.mod

```# ----------------------------------------------------------------
# Lotka Volterra fishing problem using AMPL and TACO
# (c) Christian Kirches, Sven Leyffer
# ----------------------------------------------------------------
include OptimalControl.mod;

var t;
var xd0 := 0.5, >= 0, <= 20;
var xd1 := 0.7, >= 0, <= 20;
var dev := 0.0, >= 0, <= 20;

var u := 1, >= 0, <= 1 integer suffix type "u0";

param p0 := 0.4;
param p1 := 0.2;
param ref0 := 1.0;
param ref1 := 1.0;

# Minimize accumulated deviation from reference after 12 time units
minimize Mayer: eval(dev,12);

subject to

# ODE system
ODE_0: diff(xd0,t) = xd0 - xd0*xd1 - p0*u*xd0;      # prey
ODE_1: diff(xd1,t) = -xd1 + xd0*xd1 - p1*u*xd1;     # predator
ODE_2: diff(dev,t) = (xd0-ref0)^2 + (xd1-ref1)^2;   # deviation from reference

# initial value constraints
IVC_0: eval(xd0,0) = 0.5;
IVC_1: eval(xd1,0) = 0.7;
IVC_2: eval(dev,0) = 0.0;

option solver ...;

solve;```