mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-26 22:14:08 +08:00
@ -11,8 +11,7 @@ class PageRank {
|
||||
nodes = in.nextInt();
|
||||
PageRank p = new PageRank();
|
||||
System.out.println(
|
||||
"Enter the Adjacency Matrix with 1->PATH & 0->NO PATH Between two WebPages: "
|
||||
);
|
||||
"Enter the Adjacency Matrix with 1->PATH & 0->NO PATH Between two WebPages: ");
|
||||
for (i = 1; i <= nodes; i++) {
|
||||
for (j = 1; j <= nodes; j++) {
|
||||
p.path[i][j] = in.nextInt();
|
||||
@ -37,13 +36,8 @@ class PageRank {
|
||||
int k = 1; // For Traversing
|
||||
int ITERATION_STEP = 1;
|
||||
InitialPageRank = 1 / totalNodes;
|
||||
System.out.printf(
|
||||
" Total Number of Nodes :" +
|
||||
totalNodes +
|
||||
"\t Initial PageRank of All Nodes :" +
|
||||
InitialPageRank +
|
||||
"\n"
|
||||
);
|
||||
System.out.printf(" Total Number of Nodes :" + totalNodes
|
||||
+ "\t Initial PageRank of All Nodes :" + InitialPageRank + "\n");
|
||||
|
||||
// 0th ITERATION _ OR _ INITIALIZATION PHASE //
|
||||
for (k = 1; k <= totalNodes; k++) {
|
||||
@ -52,9 +46,7 @@ class PageRank {
|
||||
System.out.print("\n Initial PageRank Values , 0th Step \n");
|
||||
|
||||
for (k = 1; k <= totalNodes; k++) {
|
||||
System.out.printf(
|
||||
" Page Rank of " + k + " is :\t" + this.pagerank[k] + "\n"
|
||||
);
|
||||
System.out.printf(" Page Rank of " + k + " is :\t" + this.pagerank[k] + "\n");
|
||||
}
|
||||
|
||||
while (ITERATION_STEP <= 2) { // Iterations
|
||||
@ -64,21 +56,13 @@ class PageRank {
|
||||
this.pagerank[k] = 0;
|
||||
}
|
||||
|
||||
for (
|
||||
InternalNodeNumber = 1;
|
||||
InternalNodeNumber <= totalNodes;
|
||||
InternalNodeNumber++
|
||||
) {
|
||||
for (
|
||||
ExternalNodeNumber = 1;
|
||||
ExternalNodeNumber <= totalNodes;
|
||||
ExternalNodeNumber++
|
||||
) {
|
||||
if (
|
||||
this.path[ExternalNodeNumber][InternalNodeNumber] == 1
|
||||
) {
|
||||
for (InternalNodeNumber = 1; InternalNodeNumber <= totalNodes; InternalNodeNumber++) {
|
||||
for (ExternalNodeNumber = 1; ExternalNodeNumber <= totalNodes;
|
||||
ExternalNodeNumber++) {
|
||||
if (this.path[ExternalNodeNumber][InternalNodeNumber] == 1) {
|
||||
k = 1;
|
||||
OutgoingLinks = 0; // Count the Number of Outgoing Links for each ExternalNodeNumber
|
||||
OutgoingLinks
|
||||
= 0; // Count the Number of Outgoing Links for each ExternalNodeNumber
|
||||
while (k <= totalNodes) {
|
||||
if (this.path[ExternalNodeNumber][k] == 1) {
|
||||
OutgoingLinks = OutgoingLinks + 1; // Counter for Outgoing Links
|
||||
@ -86,21 +70,14 @@ class PageRank {
|
||||
k = k + 1;
|
||||
}
|
||||
// Calculate PageRank
|
||||
this.pagerank[InternalNodeNumber] +=
|
||||
TempPageRank[ExternalNodeNumber] *
|
||||
(1 / OutgoingLinks);
|
||||
this.pagerank[InternalNodeNumber]
|
||||
+= TempPageRank[ExternalNodeNumber] * (1 / OutgoingLinks);
|
||||
}
|
||||
}
|
||||
System.out.printf("\n After " + ITERATION_STEP + "th Step \n");
|
||||
|
||||
for (k = 1; k <= totalNodes; k++) {
|
||||
System.out.printf(
|
||||
" Page Rank of " +
|
||||
k +
|
||||
" is :\t" +
|
||||
this.pagerank[k] +
|
||||
"\n"
|
||||
);
|
||||
System.out.printf(" Page Rank of " + k + " is :\t" + this.pagerank[k] + "\n");
|
||||
}
|
||||
|
||||
ITERATION_STEP = ITERATION_STEP + 1;
|
||||
@ -108,16 +85,13 @@ class PageRank {
|
||||
|
||||
// Add the Damping Factor to PageRank
|
||||
for (k = 1; k <= totalNodes; k++) {
|
||||
this.pagerank[k] =
|
||||
(1 - DampingFactor) + DampingFactor * this.pagerank[k];
|
||||
this.pagerank[k] = (1 - DampingFactor) + DampingFactor * this.pagerank[k];
|
||||
}
|
||||
|
||||
// Display PageRank
|
||||
System.out.print("\n Final Page Rank : \n");
|
||||
for (k = 1; k <= totalNodes; k++) {
|
||||
System.out.printf(
|
||||
" Page Rank of " + k + " is :\t" + this.pagerank[k] + "\n"
|
||||
);
|
||||
System.out.printf(" Page Rank of " + k + " is :\t" + this.pagerank[k] + "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user