Generators - Bipartite ---------------------- >>> from networkx import * >>> from networkx.generators.bipartite import * Configuration Model ------------------- >>> aseq=[3,3,3,3] >>> bseq=[2,2,2,2,2] >>> G=bipartite_configuration_model(aseq,bseq) Traceback (most recent call last): ... NetworkXError: invalid degree sequences, sum(aseq)!=sum(bseq),12,10 >>> aseq=[3,3,3,3] >>> bseq=[2,2,2,2,2,2] >>> G=bipartite_configuration_model(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,2,2,2] >>> bseq=[3,3,3,3] >>> G=bipartite_configuration_model(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,1,1,1] >>> bseq=[3,3,3] >>> G=bipartite_configuration_model(aseq,bseq) >>> sorted(G.degree()) [1, 1, 1, 2, 2, 2, 3, 3, 3] >>> GU=project(G,range(len(aseq))) >>> GU.number_of_nodes() 6 >>> GD=project(G,range(len(aseq),len(aseq)+len(bseq))) >>> GD.number_of_nodes() 3 Havel-Hakimi Graph ------------------ >>> aseq=[3,3,3,3] >>> bseq=[2,2,2,2,2] >>> G=bipartite_havel_hakimi_graph(aseq,bseq) Traceback (most recent call last): ... NetworkXError: invalid degree sequences, sum(aseq)!=sum(bseq),12,10 >>> bseq=[2,2,2,2,2,2] >>> G=bipartite_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,2,2,2] >>> bseq=[3,3,3,3] >>> G=bipartite_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> GU=project(G,range(len(aseq))) >>> GU.number_of_nodes() 6 >>> GD=project(G,range(len(aseq),len(aseq)+len(bseq))) >>> GD.number_of_nodes() 4 Reverse Havel-Hakimi Graph -------------------------- >>> aseq=[3,3,3,3] >>> bseq=[2,2,2,2,2] >>> G=bipartite_reverse_havel_hakimi_graph(aseq,bseq) Traceback (most recent call last): ... NetworkXError: invalid degree sequences, sum(aseq)!=sum(bseq),12,10 >>> bseq=[2,2,2,2,2,2] >>> G=bipartite_reverse_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,2,2,2] >>> bseq=[3,3,3,3] >>> G=bipartite_reverse_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,1,1,1] >>> bseq=[3,3,3] >>> G=bipartite_reverse_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [1, 1, 1, 2, 2, 2, 3, 3, 3] >>> GU=project(G,range(len(aseq))) >>> GU.number_of_nodes() 6 >>> GD=project(G,range(len(aseq),len(aseq)+len(bseq))) >>> GD.number_of_nodes() 3 Alternating Havel-Hakimi Graph ------------------------------ >>> aseq=[3,3,3,3] >>> bseq=[2,2,2,2,2] >>> G=bipartite_alternating_havel_hakimi_graph(aseq,bseq) Traceback (most recent call last): ... NetworkXError: invalid degree sequences, sum(aseq)!=sum(bseq),12,10 >>> bseq=[2,2,2,2,2,2] >>> G=bipartite_alternating_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,2,2,2] >>> bseq=[3,3,3,3] >>> G=bipartite_alternating_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] >>> aseq=[2,2,2,1,1,1] >>> bseq=[3,3,3] >>> G=bipartite_alternating_havel_hakimi_graph(aseq,bseq) >>> sorted(G.degree()) [1, 1, 1, 2, 2, 2, 3, 3, 3] >>> GU=project(G,range(len(aseq))) >>> GU.number_of_nodes() 6 >>> GD=project(G,range(len(aseq),len(aseq)+len(bseq))) >>> GD.number_of_nodes() 3 Preferential Attachment ----------------------- >>> aseq=[3,2,1,1] >>> G=bipartite_preferential_attachment_graph(aseq,0.5) Random Regular Bipartite ------------------------ FIXME: test this somehow G=bipartite_random_regular_graph(2,12) G.degree() [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] is_bipartite(G) True Coloring and bipartite sets --------------------------- >>> G=complete_bipartite_graph(2,2) >>> is_bipartite(G) True >>> A,B=bipartite_sets(G) >>> A [0, 1] >>> B [2, 3] >>> bipartite_color(G) {0: 1, 1: 1, 2: 0, 3: 0} >>> G=path_graph(10) >>> is_bipartite(G) True >>> A,B=bipartite_sets(G) >>> A [0, 2, 4, 6, 8] >>> B [1, 3, 5, 7, 9] >>> G=cycle_graph(5) >>> is_bipartite(G) False >>> G=cycle_graph(6) >>> is_bipartite(G) True