설명
이것은 무료 슬롯 사이트/SNOPT 매뉴얼의 예입니다. 가장 작은 원 찾기 여기에는 주어진 포인트 수가 포함되어 있습니다.
소형 모델 유형 :SP
카테고리 : 무료 슬롯 사이트 EMP 라이브러리
메인 파일 : circlesp.gms
$title 원 둘러싸는 점 - 확률론적 예(CIRCLESP,SEQ=88)
$onText
이는 무료 슬롯 사이트/SNOPT 매뉴얼의 예입니다. 가장 작은 원 찾기
여기에는 여러 개의 특정 포인트가 포함되어 있습니다.
Gill, P E, Murray, W 및 Saunders, MA, 무료 슬롯 사이트/SNOPT: SQP 알고리즘
대규모 제약 최적화, 1988.
$offText
$크기를 설정하지 않은 경우 $크기 3 설정
i 포인트 설정 /p1*p%size%/;
매개변수
x(i) x 좌표,
y(i) y 좌표;
* 무작위 데이터로 채우기
x(i) = 균일(1,10);
y(i) = 균일(1,10);
변수
원 중심의 x 좌표
원 중심의 y 좌표
r 반경;
방정식
e(i) 점은 원 안에 있어야 합니다.
e(i)..sqr(x(i)-a) + sqr(y(i)-b) =l= sqr(r);
r.lo = 0;
매개변수 xmin,ymin,xmax,ymax;
xmin = smin(i, x(i));
ymin = smin(i, y(i));
xmax = smax(i, x(i));
ymax = smax(i, y(i));
* 시작점 설정
a.l = (x최소+x최대)/2;
b.l = (ymin+ymax)/2;
r.l = sqrt( sqr(a.l-xmin) + sqr(b.l-ymin) );
s 시나리오 s /s1*s27/ 설정
매개변수
s_x(s,i), s_y(s,i);
dict / s.scenario를 설정하세요.''
x.randvar.s_x
y.randvar.s_y /;
파일 emp / '%emp.info%' /; put emp '* 문제 %무료 슬롯 사이트i%'; emp.pc=0;
루프(나,
put / 'jrandvar x("' i.tl:0 '") y("' i.tl:0 '") '
(1/3):6:2 법선(x(i),1):6:2 법선(y(i),1):6:2
(1/3):6:2 법선(x(i),1):6:2 법선(y(i),1):6:2
(1/3):6:2 일반(x(i),1):6:2 일반(y(i),1):6:2;
)
putclose / 'modeltype nlp' / '2단계 x y e r'
모델 m /all/;
r 시나리오 dict를 최소화하는 emp를 사용하여 m을 해결합니다.
* 이전 해결 시나리오를 사용하여 무료 슬롯 사이트의 암시적 NA 제약 조건으로 DE를 확장했습니다.
방정식 es(s,i), defobj;
양의 변수 rs(s);
변수 obj;
es(s,i).. sqr(s_x(s,i)-a) + sqr(s_y(s,i)-b) =l= sqr(rs(s));
defobj..obj =e= 합계(들, 1/카드(들)*rs(들));
모델 msi /es, defobj/;
xmin = smin((s,i), s_x(s,i));
ymin = smin((s,i), s_y(S,i));
xmax = smax((s,i), s_x(s,i));
ymax = smax((s,i), s_y(S,i));
* 시작점 설정
a.l = (x최소+x최대)/2;
b.l = (ymin+ymax)/2;
rs.l(s) = sqrt( sqr(a.l-xmin) + sqr(b.l-ymin) );
obj를 최소화하는 nlp를 사용하여 msi를 해결합니다.
abort$(abs(r.l-obj.l)>1e-6) 'EMP와 DE(암시적 NA) 솔루션이 다름', r.l, obj.l;
* 이전 해결 시나리오를 사용하여 무료 슬롯 사이트에서 명시적인 NA 제약 조건으로 DE를 확장했습니다.
방정식 ese(s,i), defnaa(s), defnab(s);
양수 변수 as(s), bs(s);
ese(s,i).. sqr(s_x(s,i)-as(s)) + sqr(s_y(s,i)-bs(s)) =l= sqr(rs(s));
defnaa(s-1)..as('s1') =e= as(s);
defnab(s-1).. bs('s1') =e= bs(s);
모델 mse /ese, defnaa, defnab, defobj/;
as.l(s) = (xmin+xmax)/2;
bs.l(s) = (ymin+ymax)/2;
rs.l(s) = sqrt( sqr(as.l(s)-xmin) + sqr(bs.l(s)-ymin) );
obj를 최소화하는 nlp를 사용하여 mse를 해결합니다.
abort$(abs(r.l-obj.l)>1e-6) 'EMP와 DE(명시적 NA) 솔루션이 다름', r.l, obj.l;