Marine population dynamics problem (TACO)

From mintOC
Revision as of 21:32, 30 December 2015 by JonasSchulze (Talk | contribs) (Text replacement - "\<bibref\>(.*)\<\/bibref\>" to "<bib id="$1" />")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page contains a model of the Marine population dynamics problem in AMPL format, making use of the TACO toolkit for AMPL control optimization extensions. This problem is due to [Rothschild1997]Author: B.J. Rothschild; A.F. Sharov; A.J. Kearsley; A.S. Bondarenko
Journal: Journal of Plankton Research
Pages: 1913--1928
Title: Estimating growth and mortality in stage-structured populations
Volume: 19
Year: 1997
Link to Google Scholar
. The original model using a collocation formulation can be found in the COPS library. 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 NLP code that uses the TACO toolkit to support the AMPL optimal control extensions.

AMPL

This is the source file marine_taco.mod

# ----------------------------------------------------------------
# Marine population dynamics problem using AMPL and TACO
# (c) Christian Kirches, Sven Leyffer
#
# Source: COPS 3.1 collocation formulation - March 2004
#         Alexander S. Bondarenko - Summer 1998
# ----------------------------------------------------------------
include OptimalControl.mod;
 
var t;
 
param ne > 0, integer;               # number of differential equations
param nm > 0, integer;               # number of measurements
 
param tau {1..nm};                   # times at which observations made
param tf := tau[nm];                 # ODEs defined in [0,tf]
 
param z {1..nm,1..ne};               # observations
var g {1..ne-1}  >= 0, <= 1;         # growth rates
var m {1..ne} >= 0, <= 1;            # mortality rates
var u {1..ne};
 
minimize l2error{j in 1..nm}:
	eval ( sum {s in 1..ne} (u[s] - z[j,s])^2, tau[j] );
 
subject to g_bounds {s in 1..ne-1}: g[s] >= 0;
 
subject to m_bounds {s in 1..ne}: m[s] >= 0;
 
subject to de_1:
	diff(u[1],t) = -(m[1]+g[1])*u[1];
 
subject to de_s {s in 2..ne-1}:
	diff(u[s],t) = g[s-1]*u[s-1] - (m[s]+g[s])*u[s]; 
 
subject to de_ne:
	diff(u[ne],t) = g[ne-1]*u[ne-1] - m[ne]*u[ne];
 
data marine_taco.dat;
 
option solver ...;
 
solve;

This is the file marine_taco.dat

param ne := 8;
param nm := 21;
 
# Time measurements
 
param tau :=
  1    0.0
  2    0.5
  3    1.0
  4    1.5
  5    2.0
  6    2.5
  7    3.0
  8    3.5 
  9    4.0
 10    4.5
 11    5.0
 12    5.5
 13    6.0
 14    6.5
 15    7.0
 16    7.5
 17    8.0
 18    8.5
 19    9.0
 20    9.5
 21   10.0;
 
# Measurements
 
param z:
        1       2       3       4       5       6       7       8    := 
  1  20000.0 17000.0 10000.0 15000.0 12000.0  9000.0  7000.0  3000.0
  2  12445.0 15411.0 13040.0 13338.0 13484.0  8426.0  6615.0  4022.0
  3   7705.0 13074.0 14623.0 11976.0 12453.0  9272.0  6891.0  5020.0
  4   4664.0  8579.0 12434.0 12603.0 11738.0  9710.0  6821.0  5722.0
  5   2977.0  7053.0 11219.0 11340.0 13665.0  8534.0  6242.0  5695.0
  6   1769.0  5054.0 10065.0 11232.0 12112.0  9600.0  6647.0  7034.0
  7    943.0  3907.0  9473.0 10334.0 11115.0  8826.0  6842.0  7348.0
  8    581.0  2624.0  7421.0 10297.0 12427.0  8747.0  7199.0  7684.0
  9    355.0  1744.0  5369.0  7748.0 10057.0  8698.0  6542.0  7410.0
 10    223.0  1272.0  4713.0  6869.0  9564.0  8766.0  6810.0  6961.0
 11    137.0   821.0  3451.0  6050.0  8671.0  8291.0  6827.0  7525.0
 12     87.0   577.0  2649.0  5454.0  8430.0  7411.0  6423.0  8388.0
 13     49.0   337.0  2058.0  4115.0  7435.0  7627.0  6268.0  7189.0
 14     32.0   228.0  1440.0  3790.0  6474.0  6658.0  5859.0  7467.0
 15     17.0   168.0  1178.0  3087.0  6524.0  5880.0  5562.0  7144.0
 16     11.0    99.0   919.0  2596.0  5360.0  5762.0  4480.0  7256.0
 17      7.0    65.0   647.0  1873.0  4556.0  5058.0  4944.0  7538.0
 18      4.0    44.0   509.0  1571.0  4009.0  4527.0  4233.0  6649.0
 19      2.0    27.0   345.0  1227.0  3677.0  4229.0  3805.0  6378.0
 20      1.0    20.0   231.0   934.0  3197.0  3695.0  3159.0  6454.0
 21      1.0    12.0   198.0   707.0  2562.0  3163.0  3232.0  5566.0;

Other Descriptions

Other descriptions of this problem are available in

References

[Rothschild1997]B.J. Rothschild; A.F. Sharov; A.J. Kearsley; A.S. Bondarenko (1997): Estimating growth and mortality in stage-structured populations. Journal of Plankton Research, 19, 1913--1928Link to Google Scholar