0% found this document useful (0 votes)
43 views

UID:20BCS3972 Date of Performance:: WS8 Write A Program To Implement Floyd-Warshall Algorithm

Student Rohit Kumar completed a lab experiment on implementing the Floyd-Warshall algorithm to find the shortest paths in a graph. The algorithm initializes the solution matrix to the input graph matrix, then iteratively considers each vertex as an intermediate vertex to update the shortest paths between all pairs of vertices. Rohit coded the Floyd-Warshall algorithm, tested it on a sample graph, and wrote a summary of what was learned from implementing the algorithm.

Uploaded by

Rohit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

UID:20BCS3972 Date of Performance:: WS8 Write A Program To Implement Floyd-Warshall Algorithm

Student Rohit Kumar completed a lab experiment on implementing the Floyd-Warshall algorithm to find the shortest paths in a graph. The algorithm initializes the solution matrix to the input graph matrix, then iteratively considers each vertex as an intermediate vertex to update the shortest paths between all pairs of vertices. Rohit coded the Floyd-Warshall algorithm, tested it on a sample graph, and wrote a summary of what was learned from implementing the algorithm.

Uploaded by

Rohit Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Student Name: Rohit kumar UID:20BCS3972

Branch: CSE Section/Group: 20BDA3_A


Semester: 4 Date of Performance: 11/04/2022
Subject Name: DAA(LAB) Subject Code: 20-CSP-285

1. Aim/Overview of the practical:


WS8 Write a program to implement Floyd-Warshall algorithm.

2. Task to be done:
Implementation pf floyd-warshall.

3. Algorithm/Flowchart (For programming based labs):

We initialize the solution matrix same as the input graph matrix as a first step.
Then we update the solution matrix by considering all vertices as an intermediate vertex.
The idea is to one by one pick all vertices and updates all shortest paths which include the picked vertex as an
intermediate vertex in the shortest path. When we pick vertex number k as an intermediate vertex, we already have
considered vertices {0, 1, 2, .. k-1} as intermediate vertices. For every pair (i, j) of the source and destination
vertices respectively, there are two possible cases.
1) k is not an intermediate vertex in shortest path from i to j. We keep the value of dist[i][j] as it is.
2) k is an intermediate vertex in shortest path from i to j. We update the value of dist[i][j] as dist[i][k] + dist[k][j] if
dist[i][j] > dist[i][k] + dist[k][j]
The following figure shows the above optimal substructure property in the all-pairs shortest path problem.

4. Steps for experiment/practical:

#include <bits/stdc++.h>
using namespace std;

#define V 4

#define INF 99999


void printSolution(int dist[][V]);

void floydWarshall(int graph[][V])


{

int dist[V][V], i, j, k;

for (i = 0; i < V; i++)


for (j = 0; j < V; j++)
dist[i][j] = graph[i][j];

for (k = 0; k < V; k++) {

for (i = 0; i < V; i++) {

for (j = 0; j < V; j++) {

if (dist[i][j] > (dist[i][k] + dist[k][j])


& (dist[k][j] != INF
& dist[i][k] != INF))
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}

printSolution(dist);
}

void printSolution(int dist[][V])


{
cout << "The following matrix shows the shortest "
"distances"
" between every pair of vertices \n";
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
if (dist[i][j] == INF)
cout << "INF"
<<" ";
else
cout << dist[i][j] << " ";
}
cout << endl;
}
}

int main()
{
\
int graph[V][V] = { { 0, 5, INF, 10 },
{ INF, 0, 3, INF },
{ INF, INF, 0, 1 },
{ INF, INF, INF, 0 } };

floydWarshall(graph);
return 0;
}

5. Result/Output/Writing Summary:
Learning outcomes (What I have learnt):
1. Floyd –Warshall Algorithm

Evaluation Grid (To be created as per the SOP and Assessment guidelines by the faculty):

Sr. No. Parameters Marks Obtained Maximum Marks


1.
2.
3.

You might also like