货郎担问题的求解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CLS

PRINT”货郎担问题的穷举解法”

PRINT”* * * * * * * * *”PRINT”“

INPUT”请输入全部村庄数目N=”;n

DIM d(n,n):s()=0

FOR i=1TO n

FOR j=1TO n

READ d(i,j)

IF d(i,j)>s0 THEN s0=d(i,j)

NEXT j

NEXT i

P=1

FOR i=1TO n-3

P=p*(i+1)

NEXT i

DIM x(p*(n-1),n-1),f(p*(n-1))

FOR K=1 TO n-1

x(0,K)=K

NEXT K

FOR i=1TO n-1

FOR K=1 TO n-1

x((i-1)*p+1,K)=x((i-1)*p,K)+1

IF x((i-1)*p+1,K)>n THEN x((i-1)*p+1,K)=x((i-1)*p+1,K)-n+1 NEXT K

m=n-2

FOR j=2 TO p

s=d(1,i+1)

FOR K=1 TO n-1

x((i-1)*p+j,K)=x((i-1)*p+j-1,K)

NEXT K

IF m<2 THEN m=n-2

x1=x((i-1)*p+j,m):x2=x((i-1)*p+j,n-1)

x((i-1)*p+j,m)=x2;x((i-1)*p+j,n-1)=x1

m=m-1

NEXT j

NEXT i

S1=s0*n: p=p*(n-1)

FOR i=1TO p

S=d(1,x(i,1))

FOR j=1TO n-2

s=s+d(x(i,j),x(i,j+1))

NEXT j

f(i)=s+d(x(i,j),j)

IFf(i)

NEXT i

m=0

FOR i=1TO p

IFf(i)=s1THENm=m+1

NEXT i

IF m=1GOTO 10

DIM x1(m):m1=1

FOR i=1TO p

IFf(i)=s1THENx1(m1)=i:m1=m1+1 NEXT i

10:PRINF

PRINT”可能的路线”;p;”条”PRINT”最佳的路线”;m;”条”

IF m>1GOTO 20

PRINT”走法”

PRINT”V(1)--”;

FOR i=1To n-1

PRINT”V(“;x(t,i);”)--”;

NEXT i

PRINT “V(1)”

PRINT”最短路线:”;s1:GOTO30 20:FOR i=1TO m

PRINT “第”;I;”条是:”

PRINT “V(1)--”;

FOR j = 1TO n-1

PRINT”V(“;x(x1(i),j);”)--”;

NEXT j

PRINT “V(1)”

NEXT i

PRINT “最短路长为:”;s1

30:END

相关文档
最新文档