Travelling Sales Person problem using Branch & Bound

SOURCE CODE:
#include<stdio.h>
int main(){
int n,rmin=999,cmin=999,rsum=0,csum=0,i,j;
printf("Enter # of vertices :\n");
scanf("%d",&n);
int arr[n][n];
printf("Enter adjacency matrix :\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++){
scanf("%d",&arr[i][j]);
if(arr[i][j]==0)
arr[i][j]=999;
}

for(i=0;i<n;i++){
rmin=999;
for(j=0;j<n;j++){
if(arr[i][j] < rmin)
rmin=arr[i][j];
}
rsum+=rmin;
for(j=0;j<n;j++)
if(arr[i][j]!=999)
arr[i][j]=arr[i][j]-rmin;
}

for(i=0;i<n;i++){
cmin=999;
for(j=0;j<n;j++){
if(arr[j][i] < cmin)
cmin=arr[j][i];
}
csum+=cmin;
for(j=0;j<n;j++)
if(arr[j][i]!=999)
arr[j][i]=arr[j][i]-cmin;
}
printf("\nsolved matrix is :\n");
for(i=0;i<n;i++,printf("\n"))
for(j=0;j<n;j++)
printf("%d\t",arr[i][j]);

printf("Value of L at root node is %d\n",rsum+csum);
return 0;

}
OUTPUT:
Enter # of vertices :
5
Enter adjacency matrix :
0 20 30 10 11
15 0 16 4 2
3 5 0 2 4
19 6 18 0 3
16 4 7 16 0

solved matrix is :
999     10      17      0       1
12      999     11      2       0
0       3       999     0       2
15      3       12      999     0
11      0       0       12      999

Value of L at root node is 25

Comments