From a7034598b99ca786e94c9ccf26eea7d0b882369e Mon Sep 17 00:00:00 2001 From: vinay00018 Date: Thu, 5 Dec 2024 18:35:53 +0530 Subject: [PATCH] initial commit --- src/main/java/Main.java | 13 ++++++----- .../java/algorithmRunner/AlgorithmRunner.java | 22 ++++++++++++++++++- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index aafb30a..068b22f 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,3 +1,5 @@ +import java.util.Scanner; + import algorithmRunner.AlgorithmRunner; import algorithmRunner.RunResult; import graph.Graph; @@ -6,6 +8,11 @@ public class Main { public static void main(String[] args) { + Scanner s=new Scanner(System.in); + String userChoice = s.nextLine().trim().toLowerCase(); + boolean labelled = userChoice.equals("yes"); + + String patternGraphFilepath = args[0]; String hostGraphFilepath = args[1]; @@ -15,12 +22,8 @@ public static void main(String[] args) { hostGraphFilepath, patternGraph, patternGraphFilepath); - AlgorithmRunner.runAlgorithm(result, hostGraph, patternGraph); + AlgorithmRunner.runAlgorithm(result, hostGraph, patternGraph,labelled); } - - - - } diff --git a/src/main/java/algorithmRunner/AlgorithmRunner.java b/src/main/java/algorithmRunner/AlgorithmRunner.java index ca9b5cd..15f18c7 100644 --- a/src/main/java/algorithmRunner/AlgorithmRunner.java +++ b/src/main/java/algorithmRunner/AlgorithmRunner.java @@ -7,9 +7,29 @@ import java.util.List; +import graph.VertexLists; + public class AlgorithmRunner { - public static void runAlgorithm(RunResult result, Graph hostGraph, Graph patternGraph) { + public static void runAlgorithm(RunResult result, Graph hostGraph, Graph patternGraph,boolean labelled) { +if (labelled) { + // If labelled, run the labelled subgraph counting algorithm + LabelledSubgraphCountingAlgorithm lSa = new LabelledSubgraphCountingAlgorithm(hostGraph, patternGraph, hostGraph.getHighestDegVertices(0)); + int count = lSa.run(); + result.setCount(count); +} else { + // If unlabelled, run both algorithms and compute the unlabelled result + LabelledSubgraphCountingAlgorithm labelledSubgraphCountingAlgorithm = new LabelledSubgraphCountingAlgorithm(hostGraph, patternGraph, hostGraph.getHighestDegVertices(0)); + int A = labelledSubgraphCountingAlgorithm.run(); + + + int B = BruteForceLabelledSubgraphCountingAlgorithm.countLabelledCopiesWithLists(patternGraph,hostGraph); + + int unlabelledCount = A / B; + System.out.println("Number of unlabelled copies of the subgraph: " + unlabelledCount); + result.setCount(unlabelledCount); +} + long startTime = System.currentTimeMillis(); Runtime.getRuntime().addShutdownHook(