설명
이 모델에서는 특정 슬롯 나라 옵션 구문을 사용하여 모든 항목을 계산합니다.
도시의 순열. 각 순열의 비용을 계산합니다.
이를 통해 최적의 투어를 찾아보세요. 순열의 수 때문에
기하급수적으로 증가하므로 대규모 인스턴스에는 좋은 생각이 아니지만
이는 모든 순열을 생성하는 슬롯 나라 기능을 보여줍니다.
설정합니다.
키워드: 여행하는 세일즈맨 문제, 완전한 열거,
슬롯 나라 언어 기능
소형 모델 유형 :슬롯 나라
카테고리 : 슬롯 나라 모델 라이브러리
$title 여행하는 외판원 문제 인스턴스는 명시적인 순열 열거(PTSP,SEQ=374)로 해결되었습니다.
$onText
이 모델에서는 특정 슬롯 나라 옵션 구문을 사용하여 모든 항목을 계산합니다.
도시의 순열. 각 순열의 비용을 계산합니다.
이를 통해 최적의 투어를 찾아보세요. 순열의 수 때문에
기하급수적으로 증가하므로 대규모 인스턴스에는 좋은 생각이 아니지만
이는 모든 순열을 생성하는 슬롯 나라 기능을 보여줍니다.
설정합니다.
키워드: 여행하는 세일즈맨 문제, 완전한 열거,
슬롯 나라 언어 기능
$offText
$includebr17.inc
$설정되지 않은 경우 N $set N 7
$ifE %N%>17 $abort 최대 도시 수는 17입니다.
i(ii) '도시의 하위 집합' / i1*i%N% /;
별칭(i,j,k);
$eval pmax 사실(카드(i))
세트
p '도시의 모든 순열' / p1*p%pmax% /
m(p,ii,ii) '실제 순열';
* 슬롯 나라가 모든 순열을 생성하도록 합니다.
옵션 m > i;
bestTour(i,i)를 설정합니다.
스칼라 pObj, bestObj / inf /;
* 순열을 반복하고 순열/순회 비용을 계산합니다.
루프(p,
pObj = 0;
loop((i,j)$m(p,i,j), pObj = pObj + sum(m(p,i++1,k), c(j,k)););
if(pObj < bestObj,
bestTour(i,j) = m(p,i,j);
bestObj = pObj;
);
);
bestObj, bestTour 표시;