The input to this problem is a sequence of n +1 points s,p1,-. , Pn in the Euclidean plane. We are given dist(i,j) denoting the distance from point p; to point p; for i
Minimum cost route algorithm using the dynamic programming route :
class shortest_path
{
static int INF = Integer.MAX_VALUE,N = 4;
static int minCostRec(int cost[][], int s, int d)
{
if (s == d || s+1 == d)
return cost[s][d];
int min = cost[s][d];
for (int i = s+1; i<d; i++)
{
int c = minCostRec(cost, s, i) +
minCostRec(cost, i, d);
if (c < min)
min = c;
}
return min;
}
static int minCost(int cost[][])
{
return minCostRec(cost, 0, N-1);
}
public static void main(String args[])
{
int cost[][] = { {0, 0, 0, 0,0,0 0},
{INF, 7, 6, 10,15,12,20},
{INF, INF, 4, 4 , 9 ,15,16},
{INF, INF, INF, 5,5,8,12},
{INF,INF,INF,INF ,8 ,15,12},
{INF,INF,INF,INF,INF,10,7},
{INF,INF,INF,INF,INF,INF,7}
};
System.out.println(minCost(cost));
}