You are on page 1of 4

c 

     
  c  
  
      
   
     
| !             
J

       

  
"| !    "   #  
$| !   
             
       
  

  

 

$%
!"#

   !
 c! 
! 

 ! 
clear all;clc;
%input
J=xlsread('data all TS.xlsx','Matriks jarak','B2:X24'); %matriks jarak dari
excel
D=xlsread('data all TS.xlsx','vol','D2:D24'); %data volume per cycle dari
excel
Dmax=24;
Amax=[9 15 0;18 10 5;18 6 19;18 8 21;13 11 16;13 4 12;14 17 23;14 3 7;22 2
20]; %solusi awal
[trip titik]=size(Amax);
for i=1:trip-1
for j=i+1:trip
L1=length(find(Amax(i,:)~=0));
L2=length(find(Amax(j,:)~=0));
A1=Amax(i,1:L1);
A2=Amax(j,1:L2);
%menghitung jarak awal
j1=J(1,A1(1));
for k=1:L1-1
j1=j1+J(A1(k),A1(k+1));
end
j1=j1+J(A1(L1),1);
j2=J(1,A2(1));
for k=1:L2-1
j2=j2+J(A2(k),A2(k+1));
end
j2=j2+J(A2(L2),1);
jold=j1+j2;
%melakukan pertukaran titik dan permutasi
A=[A1 A2];
B=perms(A);
%semua rute yang mungkin
A1=B(:,1:L1);
A2=B(:,L1+1:L1+L2);

D1=D(A1);
D1=sum(D1');
D2=D(A2);
D2=sum(D2');
%kendala (volume<=24)
y1=find(D1<=24);
y2=find(D2<=24);
y=intersect(y1,y2);
%rute yang memenuhi kendala
AA1=A1(y,:);
AA2=A2(y,:);
%menghitung jarak
iterasi=length(y);
for l=1:iterasi
j1=J(1,AA1(l,1));
for k=1:L1-1
j1=j1+J(AA1(l,k),AA1(l,k+1));
end
j1=j1+J(AA1(l,L1),1);
j2=J(1,AA2(l,1));
for k=1:L2-1
j2=j2+J(AA2(l,k),AA2(l,k+1));
end
j2=j2+J(A2(l,L2),1);
jnew(l)=j1+j2;
end
%update solusi awal dengan jarak minimum
jnewmin=min(jnew);
if jnewmin<jold
a=find(jnew==jnewmin);
Amax(i,1:L1)=AA1(a(1),:);
Amax(j,1:L2)=AA2(a(1),:);
end
A1=[];
A2=[];
B=[];
D1=[];
D2=[];
y1=[];
y2=[];
y=[];
AA1=[];
AA2=[];
jnew=[];
end
end


  
|  
| %#! 
| #&
   
| '#&
  '
| ('#c
  

"| )        * *  & '($( ) ( * + '
, & (  - '( . . ( *  
(   *
("  *
$| !      *  * 
    
   
(   *
("  *
             
     
+| %
  ( ,"+
  (","+   
   % 
   
-| !     
.| /   
0| % ,   
    
1| 2  
('#
 
c
(  
  

"
$
+
-
.
0
1
3

 













"
3
1
1
1
$
$
+
+
""


$
-
4
.
1

+
0
$
"




+
 
-
3
" 
.
"
"$
0
"4


- &


""0-113
3..
 " -0-11
"$3 
 ""$$".3
$ 3
 ""."$$ 
31
 3 114.
"$"
 "4."41-
.$0
 "" 400 
-4
 "$3.$$3
0""
 "41+-30
43 
 

+
 
+
1
1
"
1
"$

- &

%
"$4.4-"
$$-
 " ""$40
0+1
 "403++3
- 
 ""$1- -
+ +
 "41+-30
401
 " 1$.01
"-
 " ..-- 
.0-


c
( 
  

"
$
+
-
.
0










"
$
0
3
" 
"4
4
-

$
$
+
-
.
""
"
3

1
3

 






   -3



$


1
.


+
0




 ""1+-- 
 " $-30+


$-
+.$
  

You might also like