육각형 : 지름이 1보다 작거나 같아야 하는 육각형의 면적 최대화

참조

  • Neculai Andrei, 슬롯 커뮤니티 기술을 사용한 비선형 최적화 애플리케이션, 스프링거 최적화 및 그 애플리케이션, 모델육각형(3.8) 장슬롯 커뮤니티 기술의 일부 수학적 알고리즘 및 문제점, 2013

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

* 끝 육각형