Class GnpRandomBipartiteGraphGenerator<V,​E>

  • Type Parameters:
    V - the graph vertex type
    E - the graph edge type
    All Implemented Interfaces:
    GraphGenerator<V,​E,​V>

    public class GnpRandomBipartiteGraphGenerator<V,​E>
    extends Object
    implements GraphGenerator<V,​E,​V>
    Create a random bipartite graph based on the $G(n, p)$ Erdős–Rényi model. See the Wikipedia article for details and references about Random Graphs and the Erdős–Rényi model . The user provides the sizes $n_1$ and $n_2$ of the two partitions $(n1+n2=n)$ and the probability $p$ of the existence of an edge. The generator supports both directed and undirected graphs.
    Author:
    Dimitrios Michail
    See Also:
    GnmRandomBipartiteGraphGenerator
    • Constructor Detail

      • GnpRandomBipartiteGraphGenerator

        public GnpRandomBipartiteGraphGenerator​(int n1,
                                                int n2,
                                                double p)
        Create a new random bipartite graph generator. The generator uses the $G(n, p)$ model when $n = n_1 + n_2$ and the bipartite graph has one partition with size $n_1$ and one partition with size $n_2$. An edge between two vertices of different partitions is included with probability $p$ independent of all other edges.
        Parameters:
        n1 - number of vertices of the first partition
        n2 - number of vertices of the second partition
        p - edge probability
      • GnpRandomBipartiteGraphGenerator

        public GnpRandomBipartiteGraphGenerator​(int n1,
                                                int n2,
                                                double p,
                                                long seed)
        Create a new random bipartite graph generator. The generator uses the $G(n, p)$ model when $n = n_1 + n_2$, the bipartite graph has partition with size $n_1$ and a partition with size $n_2$. An edge between two vertices of different partitions is included with probability $p$ independent of all other edges.
        Parameters:
        n1 - number of vertices of the first partition
        n2 - number of vertices of the second partition
        p - edge probability
        seed - seed for the random number generator
      • GnpRandomBipartiteGraphGenerator

        public GnpRandomBipartiteGraphGenerator​(int n1,
                                                int n2,
                                                double p,
                                                Random rng)
        Create a new random bipartite graph generator. The generator uses the $G(n, p)$ model when $n = n_1 + n_2$, the bipartite graph has partition with size $n_1$ and a partition with size $n_2$. An edge between two vertices of different partitions is included with probability $p$ independent of all other edges.
        Parameters:
        n1 - number of vertices of the first partition
        n2 - number of vertices of the second partition
        p - edge probability
        rng - random number generator
    • Method Detail

      • generateGraph

        public void generateGraph​(Graph<V,​E> target,
                                  Map<String,​V> resultMap)
        Generates a random bipartite graph.
        Specified by:
        generateGraph in interface GraphGenerator<V,​E,​V>
        Parameters:
        target - the target graph
        resultMap - not used by this generator, can be null
      • getFirstPartition

        public Set<V> getFirstPartition()
        Returns the first partition of vertices in the bipartite graph. This partition is guaranteed to be smaller than or equal in size to the second partition.
        Returns:
        one partition of the bipartite graph
      • getSecondPartition

        public Set<V> getSecondPartition()
        Returns the second partitions of vertices in the bipartite graph. This partition is guaranteed to be larger than or equal in size to the first partition.
        Returns:
        one partition of the bipartite graph