설명
문제는 최단 경로 또는 가장 낮은 교통 수단을 찾는 것입니다 각 도시에서 다른 모든 도시로의 비용. 이 예는 다음과 같습니다. 최단 경로 알고리즘을 제외한 sroute는 루프를 사용하여 작성됩니다.
소형 모델 유형 :무료 슬롯
카테고리 : 무료 슬롯 모델 라이브러리
메인 파일 : sroutex.gms
$title 최단 경로 알고리즘(SROUTEX,SEQ=93)
$onText
문제는 최단 경로나 최저 수송 수단을 찾는 것이다.
각 도시에서 다른 모든 도시로의 비용. 이 예는 다음과 같습니다.
최단 경로 알고리즘을 제외한 sroute는 루프를 사용하여 작성됩니다.
Dantzig, GB, 17.3장. 선형 프로그래밍 및 확장.
프린스턴 대학 출판부, 뉴저지주 프린스턴, 1963년.
키워드: 최단 경로, 그래프 이론
$offText
내가 '도시'로 설정 / 보스톤, 시카고, 달라스
캔자스시티, 로스앤젤레스, 멤피스
포틀랜드, 솔트레이크, 워시DC/;
별칭(i,j,k);
매개변수 a(i,j) '호와 비용'
/ 보스턴 .chicago 58, kansas-cty .memphis 27
보스턴 .wash-dc 25, 캔자스-cty .salt-lake 66
시카고 .kansas-cty 29, kansas-cty .wash-dc 62
시카고 .멤피스 32, 로스앤젤레스 .포틀랜드 58
Chicago .portland 130, losangeles .salt-lake 43
시카고 .솔트레이크 85, 멤피스 .wash-dc 53
달라스 .kansas-cty 29, 포틀랜드 .salt-lake 48
달라스 .losangeles 85, 달라스 .memphis 28
달라스 .솔트레이크 75 /;
매개변수 f(i,j) '두 도시 간 최단 경로';
옵션 a:0, f:0;
스칼라
old '이전 총 거리'
new '새로운 총 거리';
a(i,j) = max(a(i,j),a(j,i));
디스플레이 a;
f(i,j) = inf;
f(i,i) = 0;
f(i,j) $= a(i,j);
루프(나,
새로운 = 나;
반복(
f(i,j)$(동일하지 않음(i,j)) = smin(k$a(k,j), f(i,k) + a(k,j));
오래된 = 새로운;
new = sum(j$(f(i,j) < inf), f(i,j));
오래된 것 = 새로운 것까지);
);
디스플레이 f;