Čekal jsem nějakýho chytráka ... svůj zdroják neukážu, ale do Linga si zadej omezující podmínky Desrochers/Laporte 1991 a máš 50 uzlů do 1 sekundy, tady máš a testuj :MODEL:
SETS:
CITY / 1.. 45/: U;
LINK( CITY, CITY): DIST, X;
ENDSETS
DATA:
DIST=@ole('tsp.xls','VV');
@ole('tsp.xls')=x;
ENDDATA
N = @SIZE( CITY);
MIN = @SUM( LINK: DIST * X);
@FOR( CITY( K):
@SUM( CITY( I)| I #NE# K:
X( I, K)) = 1;
@SUM( CITY( J)| J #NE# K:
X( K, J)) = 1;
@FOR( CITY( J)| J #GT# 1 #AND# J #NE# K:
U( J) >=
U( K) + X ( K, J) -
( N - 2) * ( 1 - X( K, J)) +
( N - 3) * X( J, K)););
@FOR( CITY( K)| K #GT# 1:
U( K) <=
N - 1 - ( N - 2) * X( 1, K);
U( K) >=
1 + ( N - 2) * X( K, 1));
@FOR( LINK:
@BIN( X));
END