Class ErdosRenyiGraph

  • All Implemented Interfaces:
    it.unimi.dsi.lang.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.

    Warning: From version 3.5.2, this classes uses BinomialDistribution instead of the previous COLT-based Binomial class. As a side-effect, the graphs generated with the same parameters will be different.

    • 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​(int n,
                               double p)
        Creates an Erdős–Rényi graph with given parameters and no loops.
        Parameters:
        n - the number of nodes.
        p - the probability of generating an arc.
      • ErdosRenyiGraph

        public ErdosRenyiGraph​(java.lang.String n,
                               java.lang.String p,
                               java.lang.String seed,
                               java.lang.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​(java.lang.String n,
                               java.lang.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​(java.lang.String n,
                               java.lang.String p,
                               java.lang.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.
      • 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​(java.lang.String[] arg)
                         throws java.io.IOException,
                                com.martiansoftware.jsap.JSAPException
        Throws:
        java.io.IOException
        com.martiansoftware.jsap.JSAPException