참조
카테고리 : 슬롯 커뮤니티 NOA 라이브러리
메인파일 : 헥사곤.gms
$onText
문제는 육각형의 면적을 최대화하는 것입니다.
직경은 1보다 작거나 같아야 합니다.
이 공식에서는 정점(첫 번째 정점)이 원점에 고정되어 있고
두 번째 것은 x축에 있습니다. 벡터 스칼라 곱은 다음과 같이 사용됩니다.
원점에서 시작하는 모든 삼각형의 면적을 계산합니다.
따라서 x(1), y(1) 및 y(2)의 모든 항은 사라지고 대수적
문제 표현이 단순화되었습니다.
Hock, W., Schittkowski, K., 비선형 프로그래밍 코드에 대한 테스트 예제,
경제 및 수학 시스템 강의 노트, vol. 187,
Springer Verlag, 1981. (문제 108)
Gill, Ph.E., Murray, W., Saunders, M.A. 및 Wright, M., 사용자 가이드
SOL/NPSOL: 비선형 프로그래밍을 위한 FORTRAN 패키지, Tech. 의원 83-12,
스탠포드 대학교 운영 연구학과.
Himmelblau, D.M., 응용 비선형 프로그래밍, McGraw-Hill, 뉴욕,
1972. 문제 16, pp.415.
Pearson, J.D., 가변 측정법 최소화 방법. 연구 분석
Corp. Rept., RAC-TP-302, McLean, Va., 1968년 5월.
Graham, R.L., 가장 큰 작은 육각형. 조합 이론 저널,
(A) 18, 1975, pp.165-170.
$offText
6개 포인트 /1*6/에 대한 i 인덱스를 설정합니다.
별칭(i,j);
변수 x(i) 점의 x 좌표
y(i) 점의 y 좌표
Area(i) i번째 삼각형의 면적
totarea 육각형의 전체 면적
방정식 aredef(i) 삼각형 i의 면적 정의
maxdist(i,j) i와 j 사이의 최대 거리
AreaHex 목표의 정의;
areadef(i)..area(i) =e= 0.5*(x(i)*y(i+1)-y(i)*x(i+1)) ;
maxdist(i,j)$(ord(i) lt ord(j)).. sqr(x(i)-x(j))+sqr(y(i)-y(j)) =l= 1;
AreaHexa..totarea =e= sum(i,area(i));
* 초기 조건
x.fx("1") = 0; y.fx("1") = 0; y.fx("2") = 0;
x.l("2") = 0.5; x.l("3") = 0.5; x.l("4") = 0.5;
x.l("5") = 0; x.l("6") = 0;
y.l("3") = 0.4; y.l("4") = 0.8; y.l("5") = 0.8;
y.l("6") = 0.4;
모형 육각형 /all/;
총 면적을 최대화하는 nlp를 사용하여 육각형을 해결합니다.
$ifThenI x%mode%==xbook
/hexagon1.dat/ 파일로 저장
내놔;
x.l('1'):15:7, y.l('1'):15:7 /;
x.l('2'):15:7, y.l('2'):15:7 /;
x.l('3'):15:7, y.l('3'):15:7 /;
x.l('4'):15:7, y.l('4'):15:7 /;
x.l('5'):15:7, y.l('5'):15:7 /;
x.l('6'):15:7, y.l('6'):15:7 /;
put totarea.l:15:7 /;
$endIf
* 끝 육각형