슬롯 커뮤니티gms : 해양 개체군 역학 COPS 2.0 #6

설명

해양종의 개체수가 풍부한 것으로 추정됩니다.
각 단계(예: 노플리우스, 청소년, 성인)에서 함수로
시간이 지남에 따라 단계별 성장 및 사망률을 결정합니다.

이 모델은 COPS 벤치마킹 제품군에서 나온 것입니다.
참조http://www-unix.mcs.anl.gov/~more/cops/.이산화 지점 수는 다음 명령을 사용하여 지정할 수 있습니다
라인 매개변수 --nh. NH에 대한 COPS 성능 테스트가 보고되었습니다.
= 25, 50, 100, 200

대형 모델 유형 :NLP


카테고리 : 슬롯 커뮤니티 모델 라이브러리


메인 파일 : 슬롯 커뮤니티gms   포함: copspart.inc

$title 해양 인구 역학 COPS 2.0 #6 (슬롯 커뮤니티SEQ=234)

$onText
해양 생물종의 개체수가 풍부하다는 추정치를 바탕으로
각 단계(예: 노플리우스, 청소년, 성인)에서 함수로
시간이 지남에 따라 단계별 성장 및 사망률을 결정합니다.

이 모델은 COPS 벤치마킹 제품군에서 나온 것입니다.
http://www-unix.mcs.anl.gov/~more/cops/를 참조하세요.

이산화 지점 수는 다음 명령을 사용하여 지정할 수 있습니다.
라인 매개변수 --nh. NH에 대한 COPS 성능 테스트가 보고되었습니다.
= 25, 50, 100, 200

Dolan, E D 등, JJ, 벤치마킹 최적화
COPS가 포함된 소프트웨어. 기술. 대표, 수학과 컴퓨터
과학부, 2000.

Rothschild, B J, Sharov, A F 및 Bondarenko, A S,
단계적 구조의 성장 및 사망률 추정
인구. 플랑크톤 연구 저널 19 (1997),
1913-1928.

키워드: 비선형 계획법, 수학, 인구 증가율, 인구
          사망률, 해양 인구, 생태계 역학
$offText

$설정되지 않은 경우 nh $set nh 25

세트
   ne '미분방정식' / ne1*ne8 /
   nc '배치 포인트' / nc1*nc2 /
   nh '파티션 간격' / nh1*nh%nh% /
   nm '측정값' / 1*21 /;

매개변수
   tau(nm) '관찰이 이루어진 시간'
   bc(ne);

타우(nm) = (ord(nm)-1)/2;

테이블 z(nm,ne) '관찰'
           ne1 ne2 ne3 ne4 ne5 ne6 ne7 ne8
    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;

bc(ne) = z('1',ne);

$batInclude copspart.inc nc2 21

nfl(ne) 'ne의 첫 번째와 마지막 요소를 제외한 모든 요소'를 설정합니다.
nfl(ne) = 동일하지 않음(ne,'ne1') 및 동일하지 않음(ne,'ne8');

nfl을 표시;

양수변수
   g(ne) '성장률'
   m(ne) '사망률';

방정식
   collocation_eqn1(i,j)
   collocation_eqns(i,j,s)
   collocation_ne(i,j);

collocation_eqn1(i,j)..
   Duc[i,j,'ne1'] =e= -(m['ne1'] + g['ne1'])*uc[i,j,'ne1'];

collocation_eqns(i,j,nfl(s))..
   Duc[i,j,s] =e= g[s-1]*uc[i,j,s-1] - (m[s] + g[s])*uc[i,j,s];

collocation_ne(i,j)..
   Duc[i,j,'ne8'] =e= g['ne7']*uc[i,j,'ne7'] - m['ne8']*uc[i,j,'ne8'];

모델 슬롯 커뮤니티 / all /;

슬롯 커뮤니티scaleOpt = 1;
obj.scale = 1000;

$if set workSpace 슬롯 커뮤니티workSpace = %workSpace%

nlp를 사용하여 obj를 최소화하는 슬롯 커뮤니티을 해결합니다.