function model= creatrandommodel(N) N=15; FCR=20; FCQ=10; FCP=10; capsmall=5000; caplarge=15000; Pmin=ceil(0.15*N); Pmax=ceil(0.3*N); P=randi([Pmin Pmax]); d = [ 0 576.9631 946.4954 597.5972 373.8127 559.7673 709.0215 1208.328 603.6477 695.208 680.709 1936.572 332.4644 592.5679 908.7715 576.9631 0 369.5327 613.0386 429.1079 312.8831 1196.489 1502.14 405.8975 1241.961 960.3459 2318.076 786.5959 949.5669 938.7461 946.4954 369.5327 0 858.3308 749.6018 556.0706 1541.273 1764.791 621.3306 1603.165 1250.962 2600.078 1137.335 1266.851 1124.778 597.5972 613.0386 858.3308 0 255.0303 311.3071 790.1213 907.4331 237.0703 932.2173 406.3386 1741.873 485.5564 1186.858 345.8738 373.8127 429.1079 749.6018 255.0303 0 225.8954 794.1726 1080.374 238.944 879.5647 533.156 1889.528 402.3291 947.3188 598.541 559.7673 312.8831 556.0706 311.3071 225.8954 0 1009.689 1216.868 94.2588 1104.574 694.9153 2047.122 627.115 1084.5 626.1548 709.0215 1196.489 1541.273 790.1213 794.1726 1009.689 0 663.8762 982.7378 221.422 447.8044 1249.763 411.1133 1097.608 851.8228 1208.328 1502.14 1764.791 907.4331 1080.374 1216.868 663.8762 0 1143.791 874.5181 551.6299 841.624 880.0728 1714.651 694.0088 603.6477 405.8975 621.3306 237.0703 238.944 94.2588 982.7378 1143.791 0 1094.906 636.9045 1978.943 620.488 1151.868 535.0244 695.208 1241.961 1603.165 932.2173 879.5647 1104.574 221.422 874.5181 1094.906 0 642.2092 1375.635 477.459 963.7202 1046.119 680.709 960.3459 1250.962 406.3386 533.156 694.9153 447.8044 551.6299 636.9045 642.2092 0 1358.213 378.5906 1236.192 405.0906 1936.572 2318.076 2600.078 1741.873 1889.528 2047.122 1249.763 841.624 1978.943 1375.635 1358.213 0 1608.082 2335.816 1530.57 332.4644 786.5959 1137.335 485.5564 402.3291 627.115 411.1133 880.0728 620.488 477.459 378.5906 1608.082 0 858.251 700.8213 592.5679 949.5669 1266.851 1186.858 947.3188 1084.5 1097.608 1714.651 1151.868 963.7202 1236.192 2335.816 858.251 0 1500.774 908.7715 938.7461 1124.778 345.8738 598.541 626.1548 851.8228 694.0088 535.0244 1046.119 405.0906 1530.57 700.8213 1500.774 0 ]; w= [ 0 6469 7629 20036 4690 6194 11688 2243 8857 7248 3559 9221 10099 22866 3388 6469 0 12999 13692 3322 5576 3878 3202 6699 4198 2454 7975 1186 7443 1162 7629 12999 0 35135 5956 14121 5951 5768 16578 4242 3365 22254 1841 23665 6517 20036 13692 35135 0 19094 35119 21423 27342 51341 15826 28537 65387 12980 44097 51525 4690 3322 5956 19094 0 7284 3102 1562 7180 1917 2253 5951 1890 7097 2009 6194 5576 14121 35119 7284 0 5023 3512 10419 3543 2752 14412 2043 15642 5014 11688 3878 5951 21423 3102 5023 0 11557 6479 34261 10134 27350 6929 7961 4678 2243 3202 5768 27342 1562 3512 11557 0 5615 7095 10753 30362 1783 3437 8897 8857 6699 16578 51341 7180 10419 6479 5615 0 4448 5076 22463 4783 24609 9969 7248 4198 4242 15826 1917 3543 34261 7095 4448 0 4370 17267 3929 8602 2753 3559 2454 3365 28537 2253 2752 10134 10753 5076 4370 0 15287 3083 4092 7701 9221 7975 22254 65387 5951 14412 27350 30362 22463 17267 15287 0 5454 15011 17714 10099 1186 1841 12980 1890 2043 6929 1783 4783 3929 3083 5454 0 3251 1126 22866 7443 23665 44097 7097 15642 7961 3437 24609 8602 4092 15011 3251 0 5550 3388 1162 6517 51525 2009 5014 4678 8897 9969 2753 7701 17714 1126 5550 0 ]; C = zeros(N,1); B=zeros(1,N); Y = zeros(1,N); % p=zeros(15,n); Q=zeros(15,N); R=zeros(15,N); %d1=zeros(n,n); O=zeros(N,N); % d=zeros(n,n); for i=1:N O(i)=sum (w(i,:)); end M=100000; for i=1:N C(i)= sum(d(i,:)); end [~ ,index]=sort(C); % P=ceil(rand*(N*0.4)); for i=1:P Y(index(i))=1; end D_temp = d; for i = 1:N if Y(i) == 0 D_temp(:,i) = M; end end for i = 1:N [kk,B(i)] = min(D_temp(i,:)); end xhat=rand(N,N); xii=diag(xhat); xii=diag(xhat)'; if any(xii>=0.5) [~,so]=sort(xii,'descend'); nHub=0; for i=so if xii(i)<=0.5 | nHub>=P break; end xii(i)=1; nHub=nHub+1; end xii(xii<1)=0; else [~,imax]=max(xii); xii(:)=0; xii(imax)=1; end Hubs=find(xii==1); x=xhat; for i=1:N if xii(i)==0 x(i,:)=0; end if xii(i)==1 x(i,:)=0; else x(:,i)=0; x(i,i)=1; end end h=zeros(1,N); for i=1:N [~, h(i)]=max(x(:,i)); x(:,i)=0; x(h(i),i)=1; end oc=zeros(N,N); for i=1:N for j=1:N if i==j oc(i,j)=0; else k=h(i); l=h(j); P_J(i,k)=sum(sum(w(:)*xii))/capsmall; oc(i,j)= P_J(i,k)*FCP*d(i,k)+ R(k,l)*FCR*d(k,l)+Q(l,j)*FCQ*d(l,j); end end end costperdistanceuint=sum(w(:))/sum(d(:)); c=costperdistanceuint+C(i); rmin=0; rmax=15; r=randi([rmin rmax],N,N); r=r-diag(diag(r)); rc=r.*c; SumRC=sum(rc(:)); f=200; F=f.*P; model.N=N; model.P=P; model.d=d; model.w=w; model.C=C; model.c=c; model.F=F; model.rc=rc; model.r=r; model.Y=Y; model.D_temp=D_temp; model.P_J(i,k)=P_J(i,k); end