it.unimi.dsi.webgraph.examples
Class ErdosRenyiGraph

java.lang.Object
  extended by it.unimi.dsi.webgraph.ImmutableGraph
      extended by it.unimi.dsi.webgraph.ImmutableSequentialGraph
          extended by it.unimi.dsi.webgraph.examples.ErdosRenyiGraph
All Implemented Interfaces:
FlyweightPrototype<ImmutableGraph>

public class ErdosRenyiGraph
extends ImmutableSequentialGraph

An Erdős–Rényi random graph: the number of nodes is fixed, and there is a fixed probability that an arc is put between any two nodes (independently for every pair).

Note that an instance of this class is not random-access: you can, however, make a mutable copy of the returned graph and then take its immutable view.


Nested Class Summary
 
Nested classes/interfaces inherited from class it.unimi.dsi.webgraph.ImmutableGraph
ImmutableGraph.LoadMethod
 
Field Summary
 
Fields inherited from class it.unimi.dsi.webgraph.ImmutableGraph
GRAPHCLASS_PROPERTY_KEY, PROPERTIES_EXTENSION
 
Constructor Summary
ErdosRenyiGraph(int n, double p, boolean loops)
          Creates an Erdős–Rényi graph with given parameters.
ErdosRenyiGraph(int n, double p, long seed, boolean loops)
          Creates an Erdős–Rényi graph with given parameters and random seed.
ErdosRenyiGraph(int n, long m, boolean loops)
          Creates an Erdős–Rényi graph with given parameters and random seed.
ErdosRenyiGraph(int n, long m, long seed, boolean loops)
          Creates an Erdős–Rényi graph with given parameters and random seed.
ErdosRenyiGraph(String n, String p)
          Creates an Erdős–Rényi graph with given parameters and no loops.
ErdosRenyiGraph(String n, String p, String loops)
          Creates an Erdős–Rényi graph with given parameters.
ErdosRenyiGraph(String n, String p, String seed, String loops)
          Creates an Erdős–Rényi graph with given parameters and random seed.
 
Method Summary
 ErdosRenyiGraph copy()
          Throws an UnsupportedOperationException.
 ImmutableGraph generate()
          Deprecated. An instance of this class is already an ImmutableSequentialGraph.
 ImmutableSequentialGraph generate(long seed)
          Deprecated. An instance of this class is already an ImmutableSequentialGraph.
static void main(String[] arg)
           
 NodeIterator nodeIterator()
          Returns a node iterator for scanning the graph sequentially, starting from the first node.
 int numNodes()
          Returns the number of nodes of this graph.
 
Methods inherited from class it.unimi.dsi.webgraph.ImmutableSequentialGraph
nodeIterator, outdegree, randomAccess, successorArray
 
Methods inherited from class it.unimi.dsi.webgraph.ImmutableGraph
basename, equals, hashCode, load, load, load, loadMapped, loadMapped, loadOffline, loadOffline, loadOnce, loadSequential, loadSequential, numArcs, outdegrees, store, store, successors, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ErdosRenyiGraph

public ErdosRenyiGraph(int n,
                       double p,
                       long seed,
                       boolean loops)
Creates an Erdős–Rényi graph with given parameters and random seed.

Parameters:
n - the number of nodes.
p - the probability of generating an arc.
seed - a seed for pseudorandom number generation.
loops - whether loops are allowed or not.

ErdosRenyiGraph

public ErdosRenyiGraph(int n,
                       double p,
                       boolean loops)
Creates an Erdős–Rényi graph with given parameters.

Parameters:
n - the number of nodes.
p - the probability of generating an arc.
loops - whether loops are allowed or not.

ErdosRenyiGraph

public ErdosRenyiGraph(String n,
                       String p,
                       String seed,
                       String loops)
Creates an Erdős–Rényi graph with given parameters and random seed.

This constructor can be used with an ObjectParser.

Parameters:
n - the number of nodes.
p - the probability of generating an arc.
seed - a seed for pseudorandom number generation.
loops - whether loops are allowed or not.

ErdosRenyiGraph

public ErdosRenyiGraph(String n,
                       String p)
Creates an Erdős–Rényi graph with given parameters and no loops.

This constructor can be used with an ObjectParser.

Parameters:
n - the number of nodes.
p - the probability of generating an arc.

ErdosRenyiGraph

public ErdosRenyiGraph(String n,
                       String p,
                       String loops)
Creates an Erdős–Rényi graph with given parameters.

This constructor can be used with an ObjectParser.

Parameters:
n - the number of nodes.
p - the probability of generating an arc.
loops - whether loops are allowed or not.

ErdosRenyiGraph

public ErdosRenyiGraph(int n,
                       long m,
                       long seed,
                       boolean loops)
Creates an Erdős–Rényi graph with given parameters and random seed.

Parameters:
n - the number of nodes.
m - the expected number of arcs.
seed - a seed for pseudorandom number generation.
loops - whether loops are allowed or not.

ErdosRenyiGraph

public ErdosRenyiGraph(int n,
                       long m,
                       boolean loops)
Creates an Erdős–Rényi graph with given parameters and random seed.

Parameters:
n - the number of nodes.
m - the expected number of arcs.
loops - whether loops are allowed or not.
Method Detail

numNodes

public int numNodes()
Description copied from class: ImmutableGraph
Returns the number of nodes of this graph.

Albeit this method is not optional, it is allowed that this method throws an UnsupportedOperationException if this graph has never been entirely traversed using a node iterator. This apparently bizarre behaviour is necessary to support implementations as ArcListASCIIGraph, which do not know the actual number of nodes until a traversal has been completed.

Specified by:
numNodes in class ImmutableGraph
Returns:
the number of nodes.

copy

public ErdosRenyiGraph copy()
Description copied from class: ImmutableSequentialGraph
Throws an UnsupportedOperationException.

Specified by:
copy in interface FlyweightPrototype<ImmutableGraph>
Overrides:
copy in class ImmutableSequentialGraph
Returns:
a flyweight copy of this immutable graph.
See Also:
FlyweightPrototype

nodeIterator

public NodeIterator nodeIterator()
Description copied from class: ImmutableGraph
Returns a node iterator for scanning the graph sequentially, starting from the first node.

Overrides:
nodeIterator in class ImmutableGraph
Returns:
a NodeIterator for accessing nodes and successors sequentially.

generate

@Deprecated
public ImmutableSequentialGraph generate(long seed)
Deprecated. An instance of this class is already an ImmutableSequentialGraph.

Generates an Erdős–Rényi graph with the specified seed.

This method exists only for backward compatibility.

Parameters:
seed - the seed for random generation.
Returns:
the generated graph.

generate

@Deprecated
public ImmutableGraph generate()
Deprecated. An instance of this class is already an ImmutableSequentialGraph.

Generates an Erdős–Rényi graph.

This method exists only for backward compatibility.

Returns:
the generated graph.

main

public static void main(String[] arg)
                 throws IOException,
                        JSAPException
Throws:
IOException
JSAPException