설명
국방과학기술부 마이크로파레이더과 조직은 합성 개구 레이더를 사용하여 획득합니다. 선택된 지상 표적의 고해상도 이미지. 이는 이것을 사용한다 항공기에 장착된 장치로 최대 20개의 직사각형 영역을 스캔합니다. 해상도가 1 이하인 이미지를 얻기 위해 스와스(슬롯 머신)라고 함 미터. 지정된 순서의 스와스와 비행 경로는 매핑 소프트웨어를 사용하여 계획됩니다. 이전에 DSTO는 시각적으로 추적하여 미션에 가장 적합한 투어를 결정해 왔습니다. 시작 베이스부터 종료 베이스까지 가능한 스와스 시퀀스. 이 방법은 시간이 많이 걸리고 최적성을 보장하지 못했습니다. 이동한 거리. 우리는 계획을 세우기 위한 최적화 소프트웨어 도구를 개발했습니다. 미션 투어를 보다 효율적으로 수행할 수 있습니다. DSTO는 이제 최대로 임무를 계획할 수 있습니다. 20개의 스와스를 몇 초 만에 처리하는 데 걸리는 시간이 1시간이 아닙니다. 시각적 접근. 제안된 투어 길이는 평균적으로 다음과 같은 개선을 보여줍니다. 수동으로 생산된 것보다 15% 더 높습니다. 소프트웨어에는 다음이 포함됩니다. 비행 금지 구역의 운영 문제를 처리하는 방법 및 이미지와 관련된 그림자.
대형 모델 유형 :MIP
카테고리 : 슬롯 머신 모델 라이브러리
메인 파일 : 슬롯 머신gms 포함: swathdat.gdx
$title 합성 조리개 레이더 감시를 위한 임무 계획(슬롯 머신SEQ=325)
$onText
국방과학기술부 마이크로파레이더연구부
조직은 합성 개구 레이더를 사용하여 획득합니다.
선택된 지상 표적의 고해상도 이미지. 이는 이것을 사용한다
항공기에 장착된 장치로 최대 20개의 직사각형 영역을 스캔합니다.
해상도가 1 이하인 이미지를 얻기 위해 스와스(슬롯 머신)라고 함
미터. 지정된 순서의 스와스와
비행 경로는 매핑 소프트웨어를 사용하여 계획됩니다. 이전에 DSTO는
시각적으로 추적하여 미션에 가장 적합한 투어를 결정해 왔습니다.
시작 베이스부터 종료 베이스까지 가능한 스와스 시퀀스. 이
방법은 시간이 많이 걸리고 최적성을 보장하지 못했습니다.
이동한 거리. 우리는 계획을 세우기 위한 최적화 소프트웨어 도구를 개발했습니다.
미션 투어를 보다 효율적으로 수행할 수 있습니다. DSTO는 이제 최대로 임무를 계획할 수 있습니다.
20개의 스와스를 몇 초 만에 처리하는 데 걸리는 시간이 1시간이 아닙니다.
시각적 접근. 제안된 투어 길이는 평균적으로 다음과 같은 개선을 보여줍니다.
수동으로 생산된 것보다 15% 더 높습니다. 소프트웨어에는 다음이 포함됩니다.
비행 금지 구역의 운영 문제를 처리하는 방법 및
이미지와 관련된 그림자.
Panton, D M 및 Elbers, AW, 합성 조리개에 대한 임무 계획
레이더 감시. 인터페이스 29, 2(1999), 73-88.
키워드: 혼합 정수 선형 계획법, Miller-Tucker-Zemlin 하위 투어 제거,
반복적인 하위 투어 제거, 여행하는 세일즈맨 문제, 군사 응용,
네트워크 최적화, 합성 개구 레이더 감시
$offText
세트
s '스와스' / s0*s20 /
n '노드' / n1*n4 /
sx(s,n) '유효한 슬롯 머신 노드 조합' / s0.n1, (s1*s20).set.n /
a(s,n,s,n) '호';
별칭 (s,i,j), (n,np);
매개변수 l(s,n,s,n) '호 길이';
$gdxIn swathdat.gdx
$load l
a(sx,s,n) = l(sx,s,n);
* TSP형 모델
변수
x(s,n,s,n) '노드 간 TSP 투어'
y(s,s) '스와스 간 TSP 투어'
z '목표';
이진변수 x, y;
방정식
defobj '목표'
defone(s) '스와스당 하나의 호 입력'
defbal(s,n) '흐름 균형'
defy(s,s) 'TSP 노드 투어에 의해 결정된 TSP 스와스 투어';
defobj.. z =e= sum(a, l(a)*x(a));
defone(s).. sum(a(sx,s,n), x(a)) =e= 1;
defbal(sx).. sum(a(s,n,sx), x(a)) - sum(a(sx,s,n), x(a)) =e= 0;
defy(i,j)$(not sameas(i,j)).. y(i,j) =e= sum(a(i,n,j,np), x(a));
$orgse를 설정하지 않은 경우 $goTo secuts
* 슬롯 머신 MIPLIB 2003 인스턴스의 원래 하위 투어 제거 제약 조건
양의 변수 u(s);
방정식 se(s,s) '하위 투어 제거';
se(i,j)$(ord(i) > 1이고 ord(j) > 1이고 sameas(i,j)가 아님)..
u(i) - u(j) + 카드*y(i,j) =l= 카드-1;
u.fx('s0') = 0;
$goTo 해결
$label 초컷
세트
cc '하위 투어 제거 컷' / c1*c150 /
c(cc) '활성 컷';
c(cc) = 아니오;
매개변수
cutcoeff(cc,s,s) '하위 투어 제거 컷에 대한 계수'
rhs(cc) '하위 투어 제거 컷의 오른쪽';
cutcoeff(c,s,s) = 0;
rhs(c) = 0;
방정식 cut(cc) '동적 하위 투어 제거 컷';
cut(c).. sum((i,j), cutcoeff(c,i,j)*y(i,j)) =l= rhs(c);
$label 해결
모델 폭 / 모두 /;
옵션 optCr = 0, limRow = 0, limCol = 0, solPrint = off;
* 하위 투어 제거 제약 없이 해결
mip를 사용하여 슬롯 머신 min z를 해결합니다.
$if orgse 설정 $exit
세트
t '투어' / t1*t25 /
투어(i,j,t) '하위 투어'
from(i) '항상 하나의 요소, 즉 from 슬롯 머신를 포함합니다.'
next(j) '항상 하나의 요소를 포함합니다: to 슬롯 머신'
Visited(i) '스와스가 이미 방문되었는지 플래그 지정'
tt(t) '항상 하나의 요소를 포함합니다: 현재 하위 투어'
curc(cc) '항상 하나의 요소를 포함합니다: 현재 SE 컷' / c1 /;
Scalar goon '루프 제어에 사용되는 플래그로 이동' / 1 /;
$eolCom //
동안(군 = 1,
// 첫 번째 스와스에서 투어 시작
(i) = 아니오;
tt(t) = 아니요;
투어(i,j,t) = 아니오;
방문(i) = 아니오;
from('s0') = 예;
tt('t1') = 예;
y.l(i,j) = round(y.l(i,j));
동안(카드(부터),
// 'from' 슬롯 머신 다음에 방문한 슬롯 머신를 찾습니다.
다음(i) = 아니요;
loop((from,i)$y.l(from,i), next(i) = yes;);
투어(from,next,tt) = 예; // 테이블에 저장
방문(from) = 예; // 'from'을 방문한 것으로 표시
from(j) = next(j);
if(sum(visited(next),1) > 0, // 투어 시작 시점으로 돌아온 경우
// 새로운 하위 투어의 시작점을 찾습니다.
tt(t) = tt(t-1);
(i) = 아니오;
군 = 1;
loop(i$(방문하지 않음(i) 및 goon), from(i) = yes; goon = 0;);
);
);
전시 투어;
if(tt('t2'),
군 = 0; // 한 번만 둘러보기 -> 중지
else // else: 컷을 소개합니다.
// 두 번의 투어의 경우 보완 삭감을 얻으므로 긴 투어를 제거합니다.
if(tt('t3'),
if(sum(tour(i,j,'t1'),1) < sum(tour(i,j,'t2'),1),
투어(i,j,'t2') = 아니오;
그렇지 않으면
투어(i,j,'t1') = 투어(i,j,'t2');
투어(i,j,'t2') = 아니오;
);
tt('t2') = 예;
);
군 = 1;
루프(t$군,
rhs(curc) = -1;
방문(i) = sum(tour(i,j,t),1);
루프(투어(i,j,t),
cutcoeff(curc,i,visited) = 1;
rhs(curc) = rhs(curc) + 1;
);
c(curc) = 예;
curc(cc) = curc(cc-1);
goon = 카드(curc)이고 tt(t+1)가 아닙니다.
);
abort$(card(curc) = 0) 'cc를 작게 설정';
z를 최소화하는 mip를 사용하여 슬롯 머신를 해결합니다.
군 = 1;
);
);