chain.gms : 행잉 체인 COPS 2.0 #3

설명

둘 사이에 매달려 있는 길이 L의 (균일한 밀도의) 사슬을 찾으세요
최소한의 위치 에너지를 갖는 점.

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

대형 모델 유형 :NLP


카테고리 : 무료 슬롯 모델 라이브러리


메인 파일 : chain.gms

$title 행잉 체인 COPS 2.0 #3 (CHAIN,SEQ=231)

$onText
두 개 사이에 매달려 있는 길이 L의 (균일한 밀도의) 사슬을 구합니다.
최소한의 위치 에너지를 갖는 점.

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

이산화 간격 수는 다음을 사용하여 지정할 수 있습니다.
명령줄 매개변수 --nh. COPS 성능 테스트가 완료되었습니다.
nh = 50, 100, 200, 400에 대해 보고됨

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

Cesari, L, 최적화 - 이론 및 응용. 스프링거
출판사, 1983.

키워드: 비선형 프로그래밍, 공학, 매달린 사슬 문제, 전차선
$offText

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

nh / i0*i%nh% / 설정;

별칭(nh,i);

스칼라
   L '매달린 체인의 길이' / 4 /
   a 't=0에서의 체인 높이(왼쪽)' / 1 /
   b 't=1에서의 체인 높이(왼쪽)' / 3 /
   tf '[0 tf]에 정의된 ODE' / 1 /
   h '균일한 간격 길이'
   n '하위 구간의 수'
   최소;

if(b > a, tmin = 0.25; else tmin = 0.75;);

n = 카드(nh) - 1;
h = tf/n;

변수
   x(i) '체인의 높이'
   u(i) 'x의 파생물'
   에너지 '잠재에너지';

방정식
   객체
   x_eqn(i)
   길이_eqn;

OBJ..
   에너지 =e= 0.5*h*sum(nh(i+1), x(i)*sqrt(1 + sqr(u(i))) + x(i+1)*sqrt(1 + sqr(u(i+1))));

x_eqn(i+1)..
   x(i+1) =e= x(i) + 0.5*h*(u(i) + u(i+1));

길이_eqn..
   0.5*h*sum(nh(i+1), sqrt(1+sqr(u(i))) + sqrt(1+sqr(u(i+1)))) =e= L;

x.fx('i0') = a;
x.fx('i%nh%') = b;
x.l(i) = 4*abs(b-a)*((ord(i) - 1)/n)*(0.5*((ord(i) - 1)/n) - tmin) + a;
u.l(i) = 4*abs(b-a)*(((ord(i) - 1)/n) - tmin);

모델 체인 / 모두 /;

$if set workSpace chain.workSpace = %workSpace%

에너지를 최소화하는 nlp를 사용하여 체인을 해결합니다.