참조
카테고리 : 슬롯 커뮤니티 NOA 라이브러리
메인파일 : chain.gms
$onText
두 개 사이에 매달려 있는 길이 L의 (균일한 밀도의) 사슬을 구합니다.
최소한의 위치 에너지를 갖는 점.
이 모델은 COPS 벤치마킹 제품군에서 나온 것입니다.
http://www-unix.mcs.anl.gov/~more/cops/를 참조하세요.
이산화 간격 수는 다음을 사용하여 지정할 수 있습니다.
명령줄 매개변수 --nh. COPS 성능 테스트가 완료되었습니다.
nh = 50, 100, 200, 400에 대해 보고됨
nh=3000, 4000, 5000으로 테스트되었습니다. 2005년 5월 26일
참고자료:
Neculai Andrei, "모델, 테스트 문제 및 응용 프로그램
수학적 프로그래밍". 기술 언론, 부쿠레슈티, 2003.
신청서 A7, 350페이지.
Dolan, E D 등, J J, COPS를 사용한 벤치마킹 최적화 소프트웨어.
기술. 대표, 수학 및 컴퓨터 과학부, 2000.
Cesari, L, 최적화 - 이론 및 응용. 스프링거 출판사, 1983.
$offText
$if 세트 n $set nh %n%
$설정되지 않은 경우 nh $set nh 400
nh /i0 * i%nh%/ 설정;
별칭(nh,i);
스칼라 L 매달린 사슬의 길이 / 4 /
t=0에서의 체인 높이 (왼쪽) / 1 /
b t=1에서의 체인 높이(왼쪽) / 3 /
[0 tf] / 1 /에 정의된 tf ODE
h 균일한 간격 길이
n개의 하위 구간 수
최소;
if (b>a, tmin = 0.25 else tmin = 0.75);
n = 카드(nh) - 1;
h = tf/n;
변수
x(i) 체인의 높이
u(i) x의 도함수
에너지 위치에너지 ;
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);
* 방정식
방정식 obj, x_eqn(i), length_eqn ;
물체..에너지 =e=
0.5*h*합(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));
length_eqn.. 0.5*h*sum(nh(i+1), sqrt(1+sqr(u(i)))) +
sqrt(1+sqr(u(i+1)))) =e= L;
모델 체인 /all/;
$ifThenI x%mode%==xbook
$onEcho >minos.opt
초기본 한도 = 5000
$offEcho
chain.workspace=120;
$endIf
에너지를 최소화하는 nlp를 사용하여 체인을 해결합니다.
$ifThenI x%mode%==xbook
파일 res /chain.dat/;
입술을 넣어
루프(i, x.l(i):10:5 넣기, 넣기/)
$endIf
*------------ 2011년 1월 26일
* nh=1000의 경우 다음과 같은 결과를 얻었습니다.
* CONOPT: 20회 반복, 2.654초, vfo=5.0685102
* KNITRO: 8회 반복, 0.380초, vfo=5.06850999
* MINOS : 202회 반복, 73.145초, vfo=5.068510
* 매달린 사슬 끝