체인 : 행잉체인

참조

  • Neculai Andrei, 슬롯 커뮤니티 기술을 사용한 비선형 최적화 애플리케이션, 스프링거 최적화 및 그 애플리케이션, 모델체인(5.28) 장기계공학의 응용, 2013

카테고리 : 슬롯 커뮤니티 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

* 매달린 사슬 끝