You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hugegraph.apache.org by ji...@apache.org on 2022/11/09 10:25:06 UTC
[incubator-hugegraph] 03/33: set louvain max community members limit 10w (#9)
This is an automated email from the ASF dual-hosted git repository.
jin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
commit c96d4e94e1b713fd6e0d03a4f0d34826f43245b3
Author: Jermy Li <li...@baidu.com>
AuthorDate: Fri Apr 10 17:35:22 2020 +0800
set louvain max community members limit 10w (#9)
Change-Id: I5cc3be846ff4536ebfba1f9bf54a0adda7409036
---
.../baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java | 12 +++++++-----
.../baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java | 8 ++++----
.../hugegraph/job/algorithm/path/RingsDetectAlgorithm.java | 12 +++++++-----
3 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java
index 80f10da77..4cc6a88ba 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/KCoreAlgorithm.java
@@ -72,9 +72,12 @@ public class KCoreAlgorithm extends AbstractCommAlgorithm {
Traverser traverser = new Traverser(job);
return traverser.kcore(sourceLabel(parameters),
sourceCLabel(parameters),
- direction(parameters), edgeLabel(parameters),
- k(parameters), alpha(parameters),
- degree(parameters), merged(parameters));
+ direction(parameters),
+ edgeLabel(parameters),
+ k(parameters),
+ alpha(parameters),
+ degree(parameters),
+ merged(parameters));
}
protected static int k(Map<String, Object> parameters) {
@@ -139,7 +142,6 @@ public class KCoreAlgorithm extends AbstractCommAlgorithm {
return kcoresJson.asJson();
}
- @SuppressWarnings("unchecked")
private static void mergeKcores(Set<Set<Id>> kcores, Set<Id> kcore) {
boolean merged = false;
/*
@@ -173,7 +175,7 @@ public class KCoreAlgorithm extends AbstractCommAlgorithm {
public Set<Id> kcore(Iterator<Vertex> vertices, Directions direction,
EdgeLabel label, int k, double alpha,
long degree) {
- int minNeighbors = (int) Math.floor(1 / alpha * k);
+ int minNeighbors = (int) Math.floor(1.0 / alpha * k);
SimilarsMap map = fusiformSimilarity(vertices, direction, label,
minNeighbors, alpha, k - 1,
0, null, 1, degree,
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java
index 9c4f80f64..ecb500a7d 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/comm/LouvainTraverser.java
@@ -65,7 +65,7 @@ public class LouvainTraverser extends AlgoTraverser {
public static final String C_MEMBERS = "c_members";
private static final long LIMIT = AbstractAlgorithm.MAX_QUERY_LIMIT;
- private static final int MAX_COMM_SIZE = 1000000;
+ private static final int MAX_COMM_SIZE = 100000; // 10w
private static final Logger LOG = Log.logger(LouvainTraverser.class);
@@ -372,9 +372,9 @@ public class LouvainTraverser extends AlgoTraverser {
for (Pair<Community, MutableInt> nbc : nbCommunities(pass, nbs)) {
// △Q = (Ki_in - Ki * Etot / m) / 2m
Community otherC = nbc.getLeft();
- if (otherC.size() > MAX_COMM_SIZE) {
- LOG.info("Skip community {} due to its size > {}",
- otherC, MAX_COMM_SIZE);
+ if (otherC.size() >= MAX_COMM_SIZE) {
+ LOG.info("Skip community {} for {} due to its size >= {}",
+ otherC.cid, v, MAX_COMM_SIZE);
continue;
}
// weight between c and otherC
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java
index 6a1a0add7..b3ce1ec99 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/path/RingsDetectAlgorithm.java
@@ -63,9 +63,12 @@ public class RingsDetectAlgorithm extends AbstractAlgorithm {
Traverser traverser = new Traverser(job);
return traverser.rings(sourceLabel(parameters),
sourceCLabel(parameters),
- direction(parameters), edgeLabel(parameters),
- depth(parameters), degree(parameters),
- capacity(parameters), limit(parameters));
+ direction(parameters),
+ edgeLabel(parameters),
+ depth(parameters),
+ degree(parameters),
+ capacity(parameters),
+ limit(parameters));
}
public static class Traverser extends AlgoTraverser {
@@ -89,8 +92,7 @@ public class RingsDetectAlgorithm extends AbstractAlgorithm {
this.updateProgress(++this.progress);
Id source = ((HugeVertex) vertices.next()).id();
PathSet rings = traverser.rings(source, dir, label, depth,
- true, degree,
- capacity, limit);
+ true, degree, capacity, limit);
for (Path ring : rings) {
Id min = null;
for (Id id : ring.vertices()) {