数学建模旅游问题C4(7)

2018-12-29 21:26

302006

ylabel('目标值');

legend('最佳值','平均值'); grid; hold off

%交叉函数,使用CX方法

function BB = Crossover(B,N,NIND,pc) tem = B(:,1); B(:,1) = []; for i = 1:2:NIND-1

if unifrnd(0,1,1,1) < pc c1 = B(i,:); c2 = B(i+1,:); k=1;FLAG=0; FLAG(k) = 1; STOP = 0; for time = 1:N-1 for j = 1:N-1

if c1(j) == c2(FLAG(k)) for s = 1:k

if j == FLAG(s) STOP = 1; end end

if STOP == 0 k = k+1; FLAG(k) = j; break; end end end

if STOP == 1 break; end end temp = c2;

for j = 1:length(FLAG)

temp(FLAG(j)) = c1(FLAG(j)); end

BB(i,:) = [tem(i,1),temp]; temp = c1;

for j = 1:length(FLAG)

temp(FLAG(j)) = c2(FLAG(j)); end

最佳旅游路线设计30

302006

BB(i+1,:) = [tem(i+1),temp]; else

BB(i,:) = [tem(i,1),B(i,:)]; BB(i+1,:) = [tem(i+1,1),B(i+1,:)]; end

end

%变异函数,使用倒位变异 function BB = Muta(B,N,NIND,pm) for i = 1:NIND

if unifrnd(0,1,1,1) < pm flag1 = 0;

d = unidrnd(N-2,1,2) + [1,1]; if d(1) > d(2) temp = d(1); d(1) = d(2); d(2) = temp; elseif d(1) == d(2) d(2) = d(2) + 1; end

L = d(2)-d(1); for j = 1:L + 1

flag1(j) = B(i,d(2)+1-j); end

for j = 1:L + 1

B(i,d(1)-1+j) = flag1(j); end end end BB=B;

%随机生成初始个体 function a = manu(N); c = 1:N; c(7)=[]; a(1)=7; for i = 2:N

k = unidrnd(N+1-i,1,1); a(i) = c(k); c(k)=[]; end %计算长度

最佳旅游路线设计31

302006

function s = Distance(y,N,D);

DLTIME = [60 12 96 24 24 36 24 36 12 24 24 24 18 54 72 24]; s = 0; for i = 1:15

s = s + D(y(i),y(i+1))+DLTIME(y(i)); end

s=s+DLTIME(y(16));

function D = DS(C) n = length(C); D = zeros(n,n); for i = 1:n for j = i+1:n

D(i,j) = norm(C(:,i) - C(:,j)); D(j,i) = D(i,j); end end

程序3:LINGO软件求解第三问线性归化模型 MODEL:

!程序说明:本程序为用Lingo软件求解三个考察小组各自的考察路线,使总的时间消耗最少; SETS: !定义集合;

CITY / 1.. 20/: U;

!定义20个景区;

GROUP /1,2,3/: G; !定义3个考察小组; LINK( GROUP, CITY): X; !定义景区与考察小组之间的关系;

ENDSETS DATA: !数据;

U=10 4 2 16 4 4 6 4 6 2 6 8 4 4 4 20 3 9 12 4;!每个景区的考察时间; ENDDATA

!目标函数:使三个小组中最长的考察时间最短;

MIN=@MAX(GROUP(I):@SUM(LINK(I,J):u(J)*X(I,J))); !每个景区有且仅有一个小组考察;

@FOR(CITY(J):@SUM( GROUP(I): X( I, J)) = 1); !定义整数变量;

@FOR( LINK: @BIN( X)); END

程序4:五一黄金周线路设计程序 主程序:Pro.m Ar = load('Ar.m'); D = load('D.m'); idt = load('dlt.m');

最佳旅游路线设计

32

302006

count = 0; for kk = 1:20 Te = []; t = 1; k = 1;

b = find(Ar(:,1)==1); a = length(b); c = unidrnd(a,1,1); Te(k) = b(c); Ar(b(c),1) = 0; t = t + idt(Te(k)); while t<24

b = find(Ar(:,t)==1); a = length(b); if a == 0 break; end

for j = 1:k for i = a:-1:1 if b(i) == Te(j) b(i) = []; a = a - 1; break; end end end if a == 0 break; end

vec1 = 100*ones(20,1); for i = 1:a vec1(b(i)) = 0; end

vec = vec1' + D(Te(k),:); [e,f] = min(vec); Te(k+1) = f; Ar(Te(k+1),t) = 0; t = t + idt(f); k = k+1; end

disp('线路:') disp(Te); disp(t); if t>=20

最佳旅游路线设计33

302006

count = count + 1; end end

disp(count);

子程序:solveAr.m Ar = zeros(20,24);

b = [5 2 1 8 2 2 3 2 3 1 3 4 2 2 2 10 2 5 6 2]; for i = 1:20

c = floor(24/b(i)); for j = 1:c-1

Ar(i,(j-1)*b(i)) = 1; end end

save('Ar.m','Ar','-ascii','-tabs');

子文件D.m存放20*20的最短路矩阵; 子程序dlt.m存放逗留时间;

最佳旅游路线设计34


数学建模旅游问题C4(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版六年级上册语文期末复习1.2(日积月累语境测试题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: