org.apache.giraph.graph.Vertex.getNumEdges()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(11.3k)|赞(0)|评价(0)|浏览(138)

本文整理了Java中org.apache.giraph.graph.Vertex.getNumEdges()方法的一些代码示例,展示了Vertex.getNumEdges()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Vertex.getNumEdges()方法的具体详情如下:
包路径:org.apache.giraph.graph.Vertex
类名称:Vertex
方法名:getNumEdges

Vertex.getNumEdges介绍

[英]Get the number of outgoing edges on this vertex.
[中]获取此顶点上的传出边数。

代码示例

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. protected double transitionProbability(
  3. Vertex<LongWritable, DoubleWritable, NullWritable> vertex,
  4. double stateProbability, Edge<LongWritable, NullWritable> edge) {
  5. // Uniform transition probability
  6. return stateProbability / vertex.getNumEdges();
  7. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public long getEdgeCount() {
  3. long edges = 0;
  4. for (Vertex<I, V, E> vertex : vertexMap.values()) {
  5. edges += vertex.getNumEdges();
  6. }
  7. return edges;
  8. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<LongIdDoubleValueFriendsList> messages) throws IOException {
  5. DoubleWritable vertexValue = new DoubleWritable(0.0);
  6. if (vertex.getNumEdges() > 0) {
  7. vertexValue.set(Math.log(1.0 / (double) vertex.getNumEdges()));
  8. }
  9. vertex.setValue(vertexValue);
  10. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public long getEdgeCount() {
  3. long edges = 0;
  4. for (byte[] vertexBytes : vertexMap.values()) {
  5. WritableUtils.reinitializeVertexFromByteArray(vertexBytes,
  6. representativeVertex, useUnsafeSerialization, getConf());
  7. edges += representativeVertex.getNumEdges();
  8. }
  9. return edges;
  10. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public void writeVertex(
  3. Vertex<WritableComparable, Writable, Writable> vertex)
  4. throws IOException, InterruptedException {
  5. StringBuilder sb = new StringBuilder(vertex.getNumEdges() * 10);
  6. for (Edge<WritableComparable, Writable> edge : vertex.getEdges()) {
  7. addEdge(sb, vertex.getId(), edge);
  8. }
  9. addNodeInfo(vertex, sb);
  10. getRecordWriter().write(new Text(sb.toString()), null);
  11. }
  12. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. /** Increment V & E counts for new vertex read, store values
  2. * for that outgoing _temporary_ Partition, which shares the
  3. * Partition ID for the actual remote Partition the collection
  4. * will eventually be processed in.
  5. * @param partitionOwner the owner of the Partition this data
  6. * will eventually belong to.
  7. * @param vertex the vertex to extract counts from.
  8. * @param <I> the vertex id type.
  9. * @param <V> the vertex value type.
  10. * @param <E> the edge value type.
  11. */
  12. public <I extends WritableComparable, V extends Writable,
  13. E extends Writable> void
  14. incrementCounters(PartitionOwner partitionOwner,
  15. Vertex<I, V, E> vertex) {
  16. final int id = partitionOwner.getPartitionId();
  17. // vertex counts
  18. vertexAccumulator
  19. .put(id, getVerticesForPartition(id) + 1);
  20. totalVertexCount++;
  21. // edge counts
  22. totalEdgeCount += vertex.getNumEdges();
  23. edgeAccumulator.put(id, getEdgesForPartition(id) +
  24. vertex.getNumEdges());
  25. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, NullWritable, NullWritable> vertex,
  4. Iterable<LongWritable> messages) throws IOException {
  5. HashSet<LongWritable> toDelete = new HashSet<LongWritable>();
  6. for (LongWritable id : messages) {
  7. toDelete.add(new LongWritable(id.get()));
  8. }
  9. Iterator<MutableEdge<LongWritable,NullWritable>> edgeIterator =
  10. vertex.getMutableEdges().iterator();
  11. while (edgeIterator.hasNext()) {
  12. if (toDelete.contains(edgeIterator.next().getTargetVertexId())) {
  13. edgeIterator.remove();
  14. }
  15. }
  16. if (vertex.getNumEdges()<getConf().getInt(K_VALUE, K_VALUE_DEFAULT)) {
  17. sendMessageToAllEdges(vertex, vertex.getId());
  18. removeVertexRequest(vertex.getId());
  19. }
  20. vertex.voteToHalt();
  21. }
  22. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, LongWritable, DoubleWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. LongWritable vertexValue = vertex.getValue();
  6. vertexValue.set(vertex.getNumEdges());
  7. vertex.setValue(vertexValue);
  8. vertex.voteToHalt();
  9. }
  10. }

代码示例来源:origin: grafos-ml/okapi

  1. private void migrate(
  2. Vertex<LongWritable, VertexValue, EdgeValue> vertex,
  3. short currentPartition, short newPartition) {
  4. vertex.getValue().setCurrentPartition(newPartition);
  5. // update partitions loads
  6. int numberOfEdges = vertex.getNumEdges();
  7. aggregate(loadAggregatorNames[currentPartition], new LongWritable(
  8. -numberOfEdges));
  9. aggregate(loadAggregatorNames[newPartition], new LongWritable(
  10. numberOfEdges));
  11. aggregate(AGGREGATOR_MIGRATIONS, new LongWritable(1));
  12. // inform the neighbors
  13. PartitionMessage message = new PartitionMessage(vertex.getId()
  14. .get(), newPartition);
  15. sendMessageToAllEdges(vertex, message);
  16. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, NullWritable> vertex,
  4. Iterable<LongIdFriendsList> messages)
  5. throws IOException {
  6. // Add the friends of this vertex in a HashSet so that we can check
  7. // for the existence of triangles quickly.
  8. HashSet<LongWritable> friends = new HashSet<LongWritable>();
  9. for (Edge<LongWritable, NullWritable> edge : vertex.getEdges()) {
  10. friends.add(new LongWritable(edge.getTargetVertexId().get()));
  11. }
  12. int edges = vertex.getNumEdges();
  13. int triangles = 0;
  14. for (LongIdFriendsList msg : messages) {
  15. for (LongWritable id : msg.getMessage()) {
  16. if (friends.contains(id)) {
  17. // Triangle found
  18. triangles++;
  19. }
  20. }
  21. }
  22. double clusteringCoefficient =
  23. ((double)triangles) / ((double)edges*(edges-1));
  24. DoubleWritable clCoefficient = new DoubleWritable(clusteringCoefficient);
  25. aggregate(CL_COEFFICIENT_AGGREGATOR, clCoefficient);
  26. vertex.setValue(clCoefficient);
  27. vertex.voteToHalt();
  28. }
  29. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, VertexValue, EdgeValue> vertex,
  4. Iterable<PartitionMessage> messages) throws IOException {
  5. boolean isActive = messages.iterator().hasNext();
  6. short currentPartition = vertex.getValue().getCurrentPartition();
  7. int numberOfEdges = vertex.getNumEdges();
  8. // update neighbors partitions
  9. updateNeighborsPartitions(vertex, messages);
  10. // count labels occurrences in the neighborhood
  11. int totalLabels = computeNeighborsLabels(vertex);
  12. // compute the most attractive partition
  13. short newPartition = computeNewPartition(vertex, totalLabels);
  14. // request migration to the new destination
  15. if (newPartition != currentPartition && isActive) {
  16. requestMigration(vertex, numberOfEdges, currentPartition,
  17. newPartition);
  18. }
  19. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
  4. Iterable<BytesWritable> messages) throws IOException {
  5. RandomMessageBenchmarkWorkerContext workerContext = getWorkerContext();
  6. if (getSuperstep() < workerContext.getNumSupersteps()) {
  7. for (int i = 0; i < workerContext.getNumMessagePerEdge(); i++) {
  8. workerContext.randomizeMessageBytes();
  9. sendMessageToAllEdges(vertex,
  10. new BytesWritable(workerContext.getMessageBytes()));
  11. long bytesSent = workerContext.getMessageBytes().length *
  12. vertex.getNumEdges();
  13. aggregate(AGG_SUPERSTEP_TOTAL_BYTES, new LongWritable(bytesSent));
  14. aggregate(AGG_SUPERSTEP_TOTAL_MESSAGES,
  15. new LongWritable(vertex.getNumEdges()));
  16. }
  17. } else {
  18. vertex.voteToHalt();
  19. }
  20. }
  21. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, VertexValue, EdgeValue> vertex,
  4. Iterable<PartitionMessage> messages) throws IOException {
  5. short partition = vertex.getValue().getCurrentPartition();
  6. if (partition == -1) {
  7. partition = (short) rnd.nextInt(numberOfPartitions);
  8. }
  9. aggregate(loadAggregatorNames[partition],
  10. new LongWritable(vertex.getNumEdges()));
  11. vertex.getValue().setCurrentPartition(partition);
  12. vertex.getValue().setNewPartition(partition);
  13. PartitionMessage message = new PartitionMessage(vertex.getId()
  14. .get(), partition);
  15. sendMessageToAllEdges(vertex, message);
  16. }

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, NullWritable, DoubleWritable> vertex,
  4. Iterable<LongIdBloomFilter> messages) throws IOException {
  5. BloomFilter filter = new BloomFilter(numBits, numFunctions, hashType);
  6. for (Edge<LongWritable, DoubleWritable> e : vertex.getEdges()) {
  7. filter.add(new Key(Longs.toByteArray(e.getTargetVertexId().get())));
  8. }
  9. sendMessageToAllEdges(vertex,
  10. new LongIdBloomFilter(vertex.getId(), filter, vertex.getNumEdges()));
  11. }
  12. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. /**
  2. * Creates list of parents based on the received ids and halts the vertices
  3. * that don't have any parent or outgoing edge, hence, they can't be
  4. * part of an SCC.
  5. * @param vertex Current vertex.
  6. * @param messages Received ids from the Transpose phase.
  7. */
  8. private void trim(Vertex<LongWritable, SccVertexValue, NullWritable> vertex,
  9. Iterable<LongWritable> messages) {
  10. SccVertexValue vertexValue = vertex.getValue();
  11. // Keep the ids of the parent nodes to allow for backwards traversal
  12. for (LongWritable parent : messages) {
  13. vertexValue.addParent(parent.get());
  14. }
  15. // If this node doesn't have any parents or outgoing edges,
  16. // it can't be part of an SCC
  17. vertexValue.set(vertex.getId().get());
  18. if (vertex.getNumEdges() == 0 || vertexValue.getParents() == null) {
  19. vertexValue.deactivate();
  20. } else {
  21. messageValue.set(vertexValue.get());
  22. sendMessageToAllEdges(vertex, messageValue);
  23. }
  24. }

代码示例来源:origin: apache/giraph

  1. @Override
  2. public void checkOutput(NumericTestGraph<LongWritable, Writable, LongWritable> graph) {
  3. Assert.assertEquals(1, graph.getVertex(1).getNumEdges());
  4. Assert.assertNull(graph.getVertex(1).getEdgeValue(new LongWritable(-1)));
  5. Assert.assertEquals(2, graph.getVertex(1).getEdgeValue(new LongWritable(2)).get());
  6. Assert.assertEquals(1, graph.getVertex(2).getNumEdges());
  7. Assert.assertEquals(-1, graph.getVertex(2).getEdgeValue(new LongWritable(-1)).get());
  8. }
  9. },

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. long edges = vertex.getNumEdges();
  2. sendMessageToAllEdges(vertex,
  3. new DoubleWritable(vertex.getValue().get() / edges));

代码示例来源:origin: grafos-ml/okapi

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) {
  5. if (getSuperstep() == 0) {
  6. vertex.setValue(new DoubleWritable(1f / getTotalNumVertices()));
  7. }
  8. if (getSuperstep() >= 1) {
  9. double sum = 0;
  10. for (DoubleWritable message : messages) {
  11. sum += message.get();
  12. }
  13. DoubleWritable vertexValue =
  14. new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
  15. vertex.setValue(vertexValue);
  16. }
  17. if (getSuperstep() < getContext().getConfiguration().getInt(
  18. MAX_SUPERSTEPS, MAX_SUPERSTEPS_DEFAULT)) {
  19. long edges = vertex.getNumEdges();
  20. sendMessageToAllEdges(vertex,
  21. new DoubleWritable(vertex.getValue().get() / edges));
  22. } else {
  23. vertex.voteToHalt();
  24. }
  25. }
  26. }

代码示例来源:origin: org.apache.giraph/giraph-examples

  1. @Override
  2. public void compute(
  3. Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
  4. Iterable<DoubleWritable> messages) throws IOException {
  5. if (getSuperstep() >= 1) {
  6. double sum = 0;
  7. for (DoubleWritable message : messages) {
  8. sum += message.get();
  9. }
  10. DoubleWritable vertexValue =
  11. new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
  12. vertex.setValue(vertexValue);
  13. aggregate(MAX_AGG, vertexValue);
  14. aggregate(MIN_AGG, vertexValue);
  15. aggregate(SUM_AGG, new LongWritable(1));
  16. LOG.info(vertex.getId() + ": PageRank=" + vertexValue +
  17. " max=" + getAggregatedValue(MAX_AGG) +
  18. " min=" + getAggregatedValue(MIN_AGG));
  19. }
  20. if (getSuperstep() < MAX_SUPERSTEPS) {
  21. long edges = vertex.getNumEdges();
  22. sendMessageToAllEdges(vertex,
  23. new DoubleWritable(vertex.getValue().get() / edges));
  24. } else {
  25. vertex.voteToHalt();
  26. }
  27. }

代码示例来源:origin: org.apache.giraph/giraph-core

  1. @Override
  2. public void compute(
  3. Vertex<IntWritable, FloatWritable, NullWritable> vertex,
  4. Iterable<FloatWritable> messages) throws IOException {
  5. if (getSuperstep() >= 1) {
  6. float sum = 0;
  7. for (FloatWritable message : messages) {
  8. sum += message.get();
  9. }
  10. vertex.getValue().set((0.15f / getTotalNumVertices()) + 0.85f * sum);
  11. }
  12. if (getSuperstep() < getConf().getInt(SUPERSTEP_COUNT, 0)) {
  13. sendMessageToAllEdges(vertex,
  14. new FloatWritable(vertex.getValue().get() / vertex.getNumEdges()));
  15. } else {
  16. vertex.voteToHalt();
  17. }
  18. }
  19. }

相关文章