cpack.gms : 단위원에 동일한 크기의 원 채우기

설명

단위원(반지름 1)이 주어지면 동일한 집합을 찾으십시오.
최적화된(최대) 반경 r을 갖는 원 크기
그러한 원은 중첩되지 않는 형태로 단위원에 포함됩니다.
배열.

LGO 라이브러리의 테스트 예

소형 모델 유형 :QCP


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


메인 파일 : cpack.gms

$title 단위원에 동일한 크기의 원 채우기 (CPACK,SEQ=387)

$onText
단위원(반지름 1)이 주어지면 동일한 집합을 찾으세요.
최적화된(최대) 반경 r을 갖는 원 크기
그러한 원은 중첩되지 않는 형태로 단위원에 포함됩니다.
배열.

LGO 라이브러리의 테스트 예

Pinter, J D, 무료 슬롯 사이트/LGO를 사용한 비선형 최적화.
글로벌 최적화 저널 38 (2007), 79-101.

키워드: 2차 제약조건 프로그래밍, 원 채우기 문제, 수학
$offText

$k를 설정하지 않은 경우 $set k 5
i / i1*i%k% /를 설정합니다.

별칭(i,j);

* 여기서는 순서쌍 i,j i < j의 집합 ij(i,j)를 정의합니다.
ij(i,j)를 설정합니다. ij(i,j)$(ord(i) < ord(j)) = 예;

변수
   r '동일한 크기의 원의 반경'
   x(i) '원 i의 x 좌표'
   y(i) '원 i의 y 좌표';

방정식
   외접(i) '원을 단위원으로 묶습니다'
   nooverlap(i,j) '원이 겹치지 않도록 강제';

외접(i).. sqr(1 - r) =g= sqr(x(i)) + sqr(y(i));

nooverlap(ij(i,j)).. sqr(x(i) - x(j)) + sqr(y(i) - y(j)) =g= 4*sqr(r);

x.lo(i) = -1; x.up(i) = 1;
y.lo(i) = -1; y.up(i) = 1;

* 일부 실현 가능한 솔루션이 생성되는 로컬 솔버의 시작 값(적어도 k=5인 경우)
x.l(i) = -0.2 + ord(i)*0.1;
y.l(i) = -0.2 + ord(i)*0.1;

* 이 경계는 k>=5에 유효합니다.
r.lo = 0.05; r.up = 0.4;

모델 m / 모두 /;

r을 최대화하는 qcp를 사용하여 m을 해결합니다.

디스플레이 r.l;