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:27 UTC
[incubator-hugegraph] 24/33: update Betweenness with Stressness (#60)
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 71f6e8179679c0cc3ccbf42f3df74c07b89e7d9e
Author: houzhizhen <ho...@163.com>
AuthorDate: Mon Sep 21 14:03:22 2020 +0800
update Betweenness with Stressness (#60)
---
.../hugegraph/job/algorithm/AlgorithmPool.java | 4 +-
.../job/algorithm/SubgraphStatAlgorithm.java | 6 +--
.../job/algorithm/cent/AbstractCentAlgorithm.java | 1 +
...gorithm.java => StressCentralityAlgorithm.java} | 44 +++++++++++-----------
4 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java
index 9a8412077..325293669 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/AlgorithmPool.java
@@ -22,7 +22,7 @@ package com.baidu.hugegraph.job.algorithm;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import com.baidu.hugegraph.job.algorithm.cent.BetweenessCentralityAlgorithm;
+import com.baidu.hugegraph.job.algorithm.cent.StressCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.ClosenessCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.DegreeCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.EigenvectorCentralityAlgorithm;
@@ -45,7 +45,7 @@ public class AlgorithmPool {
INSTANCE.register(new CountEdgeAlgorithm());
INSTANCE.register(new DegreeCentralityAlgorithm());
- INSTANCE.register(new BetweenessCentralityAlgorithm());
+ INSTANCE.register(new StressCentralityAlgorithm());
INSTANCE.register(new ClosenessCentralityAlgorithm());
INSTANCE.register(new EigenvectorCentralityAlgorithm());
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java
index bf3509734..09f994d14 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/SubgraphStatAlgorithm.java
@@ -33,7 +33,7 @@ import com.baidu.hugegraph.backend.id.Id;
import com.baidu.hugegraph.config.CoreOptions;
import com.baidu.hugegraph.config.HugeConfig;
import com.baidu.hugegraph.job.UserJob;
-import com.baidu.hugegraph.job.algorithm.cent.BetweenessCentralityAlgorithm;
+import com.baidu.hugegraph.job.algorithm.cent.StressCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.ClosenessCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.DegreeCentralityAlgorithm;
import com.baidu.hugegraph.job.algorithm.cent.EigenvectorCentralityAlgorithm;
@@ -158,8 +158,8 @@ public class SubgraphStatAlgorithm extends AbstractAlgorithm {
Map<String, Object> parameters = ImmutableMap.copyOf(PARAMS);
results.put("degrees", algo.call(job, parameters));
- algo = new BetweenessCentralityAlgorithm();
- results.put("betweeness", algo.call(job, parameters));
+ algo = new StressCentralityAlgorithm();
+ results.put("stress", algo.call(job, parameters));
algo = new EigenvectorCentralityAlgorithm();
results.put("eigenvectors", algo.call(job, parameters));
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java
index fd8453fff..752dc74ba 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/AbstractCentAlgorithm.java
@@ -157,6 +157,7 @@ public abstract class AbstractCentAlgorithm extends AbstractAlgorithm {
// ignore non shortest path
return false;
}
+ // TODO: len may be smaller than shortest
if (shortest == null) {
triples.put(key, len);
} else {
diff --git a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java
similarity index 68%
rename from hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java
rename to hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java
index 968f636ba..87f1471d4 100644
--- a/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/BetweenessCentralityAlgorithm.java
+++ b/hugegraph-core/src/main/java/com/baidu/hugegraph/job/algorithm/cent/StressCentralityAlgorithm.java
@@ -30,13 +30,13 @@ import com.baidu.hugegraph.job.UserJob;
import com.baidu.hugegraph.type.define.Directions;
import com.baidu.hugegraph.util.ParameterUtil;
-public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm {
+public class StressCentralityAlgorithm extends AbstractCentAlgorithm {
public static final String KEY_WITH_BOUNDARY = "with_boundary";
@Override
public String name() {
- return "betweeness_centrality";
+ return "stress_centrality";
}
@Override
@@ -48,16 +48,16 @@ public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm {
@Override
public Object call(UserJob<Object> job, Map<String, Object> parameters) {
try (Traverser traverser = new Traverser(job)) {
- return traverser.betweenessCentrality(direction(parameters),
- edgeLabel(parameters),
- depth(parameters),
- degree(parameters),
- sample(parameters),
- withBoundary(parameters),
- sourceLabel(parameters),
- sourceSample(parameters),
- sourceCLabel(parameters),
- top(parameters));
+ return traverser.stressCentrality(direction(parameters),
+ edgeLabel(parameters),
+ depth(parameters),
+ degree(parameters),
+ sample(parameters),
+ withBoundary(parameters),
+ sourceLabel(parameters),
+ sourceSample(parameters),
+ sourceCLabel(parameters),
+ top(parameters));
}
}
@@ -74,16 +74,16 @@ public class BetweenessCentralityAlgorithm extends AbstractCentAlgorithm {
super(job);
}
- public Object betweenessCentrality(Directions direction,
- String label,
- int depth,
- long degree,
- long sample,
- boolean withBoundary,
- String sourceLabel,
- long sourceSample,
- String sourceCLabel,
- long topN) {
+ public Object stressCentrality(Directions direction,
+ String label,
+ int depth,
+ long degree,
+ long sample,
+ boolean withBoundary,
+ String sourceLabel,
+ long sourceSample,
+ String sourceCLabel,
+ long topN) {
assert depth > 0;
assert degree > 0L || degree == NO_LIMIT;
assert topN >= 0L || topN == NO_LIMIT;