From 1536209eb3ee3a83f90b1f7213154186adcb81e0 Mon Sep 17 00:00:00 2001 From: William Jacobs Date: Wed, 6 Mar 2019 22:24:50 -0500 Subject: [PATCH] Optimization: don't push forest edges if there are no non-forest edges This optimizes the process of searching for a replacement edge to refrain from pushing forest edges down when a tree does not have any same-level non-forest edges. If a tree doesn't have any such edges, then there definitely isn't a replacement edge at that level, so we can avoid doing extra work. Interestingly, with this optimization, ConnGraph reduces to a single Euler tour forest if the graph is a forest, with addEdge and removeEdge taking O(log N) (non-amortized) time with high probability. --- pom.xml | 2 +- .../btrekkie/connectivity/ConnGraph.java | 25 +++++++++++------- target/dynamic-connectivity-0.1.0.jar | Bin 16535 -> 0 bytes ...nectivity-0.1.1-jar-with-dependencies.jar} | Bin 35737 -> 36024 bytes target/dynamic-connectivity-0.1.1.jar | Bin 0 -> 16831 bytes 5 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 target/dynamic-connectivity-0.1.0.jar rename target/{dynamic-connectivity-0.1.0-jar-with-dependencies.jar => dynamic-connectivity-0.1.1-jar-with-dependencies.jar} (60%) create mode 100644 target/dynamic-connectivity-0.1.1.jar diff --git a/pom.xml b/pom.xml index 604e31212..f3c88c5c5 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.github.btrekkie.connectivity dynamic-connectivity - 0.1.0 + 0.1.1 dynamic-connectivity Data structure for dynamic connectivity in undirected graphs diff --git a/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java b/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java index 4f16deb76..c60b7db2f 100644 --- a/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java +++ b/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java @@ -829,17 +829,22 @@ public class ConnGraph { while (levelVertex1 != null) { EulerTourNode root1 = levelVertex1.arbitraryVisit.root(); EulerTourNode root2 = levelVertex2.arbitraryVisit.root(); - EulerTourNode root; - if (root1.size < root2.size) { - root = root1; - } else { - root = root2; - } - pushForestEdges(root); - replacementEdge = findReplacementEdge(root); - if (replacementEdge != null) { - break; + // Optimization: if hasGraphEdge is false for one of the roots, then there definitely isn't a + // replacement edge at this level + if (root1.hasGraphEdge && root2.hasGraphEdge) { + EulerTourNode root; + if (root1.size < root2.size) { + root = root1; + } else { + root = root2; + } + + pushForestEdges(root); + replacementEdge = findReplacementEdge(root); + if (replacementEdge != null) { + break; + } } // To save space, get rid of trees with one node diff --git a/target/dynamic-connectivity-0.1.0.jar b/target/dynamic-connectivity-0.1.0.jar deleted file mode 100644 index d097c59ba8a28edf7d4bdb8c293c34229c53caf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16535 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 J7R%4y{vSezlB@s# diff --git a/target/dynamic-connectivity-0.1.0-jar-with-dependencies.jar b/target/dynamic-connectivity-0.1.1-jar-with-dependencies.jar similarity index 60% rename from target/dynamic-connectivity-0.1.0-jar-with-dependencies.jar rename to target/dynamic-connectivity-0.1.1-jar-with-dependencies.jar index 509855f6bb783ba03e2a619bf56212574162cada..9a757a0386524358af8dc6c47543f13f8bdc9a26 100644 GIT binary patch delta 13614 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 delta 13358 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