def test_bipartite_unconnected(): B = Graph() v1 = B.insert_vertex(1) v2 = B.insert_vertex(2) v3 = B.insert_vertex(3) v4 = B.insert_vertex(4) v5 = B.insert_vertex(5) v6 = B.insert_vertex(6) v7 = B.insert_vertex(7) B.insert_edge(v1, v2, 3) B.insert_edge(v1, v4, 3) B.insert_edge(v3, v2, 5) B.insert_edge(v3, v4, 2) B.insert_edge(v5, v6, 1) B.insert_edge(v5, v7, 1) e = B.edges() if bipartite(B) is None: print('Test test_bipartite_unconnected failed') else: A, B = bipartite(B) C = set() D = set() for x in A: C.add(x.element()) for y in B: D.add(y.element()) graphic_from_partition(C, D, e, 'test_bipartite_unconnected')
def test_bipartite_connected(): """ Verifica che che bipartite() riconosca correttamente un grafo connesso bipartito :return: """ B = Graph() v1 = B.insert_vertex(1) v2 = B.insert_vertex(2) v3 = B.insert_vertex(3) v4 = B.insert_vertex(4) v5 = B.insert_vertex(5) v6 = B.insert_vertex(6) v7 = B.insert_vertex(7) B.insert_edge(v1, v2, 3) B.insert_edge(v1, v4, 3) B.insert_edge(v2, v3, 5) B.insert_edge(v3, v4, 2) B.insert_edge(v4, v5, 5) B.insert_edge(v5, v6, 1) B.insert_edge(v5, v7, 1) e = B.edges() if bipartite(B) is None: print('Test test_bipartite_connected failed') else: A, B = bipartite(B) C = set() D = set() for x in A: C.add(x.element()) for y in B: D.add(y.element()) graphic_from_partition(C, D, e, 'test_bipartite_connected')
def test_bipartite_connected_not_verified(): """ Verifica che che bipartite() riconosca correttamente un grafo connesso non bipartito :return: """ B = Graph() v1 = B.insert_vertex(1) v2 = B.insert_vertex(2) v3 = B.insert_vertex(3) v4 = B.insert_vertex(4) v5 = B.insert_vertex(5) v6 = B.insert_vertex(6) v7 = B.insert_vertex(7) B.insert_edge(v1, v2, 3) B.insert_edge(v1, v4, 3) B.insert_edge(v2, v3, 5) B.insert_edge(v3, v4, 2) B.insert_edge(v4, v5, 5) B.insert_edge(v5, v6, 1) B.insert_edge(v5, v7, 1) # arco rotto B.insert_edge(v2, v4, 5) if bipartite(B) is None: print('Test test_bipartite_connected_not_verified passed') else: print('Test test_bipartite_connected_not_verified failed')
def graph_randomize(n: int): graph = Graph() random = Random() for i in range(0, n): graph.insert_vertex(i) for v in graph.vertices(): for u in graph.vertices(): if bool(random.getrandbits(1)) and u != v and graph.get_edge( u, v) is None: graph.insert_edge(u, v) print("number of vertices " + str(graph.vertex_count()) + "\nnumber of edges " + str(graph.edge_count())) return graph
def test_bipartite_unconnected_not_verified(): B = Graph() v1 = B.insert_vertex(1) v2 = B.insert_vertex(2) v3 = B.insert_vertex(3) v4 = B.insert_vertex(4) v5 = B.insert_vertex(5) v6 = B.insert_vertex(6) v7 = B.insert_vertex(7) B.insert_edge(v1, v2, 3) B.insert_edge(v1, v4, 3) B.insert_edge(v3, v2, 5) B.insert_edge(v3, v4, 2) B.insert_edge(v5, v6, 1) B.insert_edge(v5, v7, 1) # arco rotto B.insert_edge(v2, v4, 2) if bipartite(B) is None: print('Test test_bipartite_unconnected_not_verified passed') else: print('Test test_bipartite_unconnected_not_verified failed')
from TdP_collections.graphs.graph import Graph from Gruppo6_4_TdP.pkg_3.emergency_call import emergency_call import string from Gruppo6_4_TdP.util import randList grafo1 = Graph(True) v0 = grafo1.insert_vertex(0) v1 = grafo1.insert_vertex(1) v2 = grafo1.insert_vertex(2) v3 = grafo1.insert_vertex(3) v4 = grafo1.insert_vertex(4) v5 = grafo1.insert_vertex(5) v6 = grafo1.insert_vertex(6) grafo1.insert_edge(v1, v0, 1) grafo1.insert_edge(v0, v4, 4) grafo1.insert_edge(v3, v4, 3) grafo1.insert_edge(v1, v3, 10) grafo1.insert_edge(v1, v2, 1) grafo1.insert_edge(v4, v5, 2) grafo1.insert_edge(v5, v6, 1) grafo1.insert_edge(v2, v6, 1) grafo1.insert_edge(v6, v4, 1) # polizia = {v4: 1, v5: 2, v6: 3} polizia = {1: v4, 2: v5, 3: v6} volanti = emergency_call(grafo1, polizia, v5, 2)
from TdP_collections.graphs.graph import Graph from pkg_4.esercizio4 import complete_bipartite graph1 = Graph() graph2 = Graph() graph3 = Graph() graph4 = Graph() vertex = [] print("TEST GRAFO BIPARTIBILE") for i in range(4): vertex.append(graph1.insert_vertex(i)) graph1.insert_edge(vertex[0], vertex[1]) graph1.insert_edge(vertex[0], vertex[2]) graph1.insert_edge(vertex[1], vertex[3]) graph1.insert_edge(vertex[2], vertex[3]) bipartibile, x, y = complete_bipartite(graph1) if bipartibile: print("E' bipartibile ") print("Insieme di bipartizione X") for k in x: print(k) print("Insieme di bipartizione Y") for k in y: print(k) else: print("Non e' bipartibile ")
red.add( v ) # se il vertice attuale è blu coloro quelli collegati di rosso else: if v in red and color == 1 or v in blue and color == 2: # se i vertici collegati a quello attuale sono già stati visitati controllo il loro colore e se è lo stesso nb = None # attuale imposto la variabile non bipartito a None level = next_level # vado a controllare il livello successivo return nb, red, blue # ritorno il valore di nb e le due partizioni if __name__ == '__main__': gbi = Graph() #GRAFO UNO a = gbi.insert_vertex("A") b = gbi.insert_vertex("B") c = gbi.insert_vertex("C") d = gbi.insert_vertex("D") e = gbi.insert_vertex("E") gbi.insert_edge(a, b) gbi.insert_edge(a, c) gbi.insert_edge(b, d) gbi.insert_edge(d, e) gbi.insert_edge(e, a) gbi2 = Graph() #GRAFO DUE a = gbi2.insert_vertex("A") b = gbi2.insert_vertex("B")
from TdP_collections.graphs.graph import Graph from Ex4 import FakeNewsDetector graph = Graph() vertices = [] for i in range(0, 9): vertices.append(graph.insert_vertex(i)) graph.insert_edge(vertices[0], vertices[1]) graph.insert_edge(vertices[0], vertices[2]) graph.insert_edge(vertices[0], vertices[3]) graph.insert_edge(vertices[1], vertices[4]) graph.insert_edge(vertices[1], vertices[5]) graph.insert_edge(vertices[2], vertices[6]) graph.insert_edge(vertices[3], vertices[7]) graph.insert_edge(vertices[5], vertices[8]) n, l = FakeNewsDetector.installer(graph, vertices[0]) print(n) print(*l, sep="-")
sol += str(elem) sol += ", " print("seconda partizione composta da : ", sol) print( "---------------------------------------- TEST_BIPARTITE ----------------------------------------" ) print("******* CASO 1 *******") print( "Grafo composto da due componenti non connesse tra di loro ma entrambe bipartibili\n**********************" ) g = Graph() v = [] for i in range(1, 9): v.append(g.insert_vertex(i)) print("Prima componente connessa composta da 1, 2, 3, 4, 5, 6, 7, 8") g.insert_edge(v[0], v[1]) g.insert_edge(v[0], v[3]) g.insert_edge(v[2], v[1]) g.insert_edge(v[2], v[3]) g.insert_edge(v[2], v[5]) g.insert_edge(v[4], v[3]) g.insert_edge(v[4], v[5]) g.insert_edge(v[4], v[7]) g.insert_edge(v[6], v[5]) g.insert_edge(v[6], v[7]) print("Seconda componente connessa composta da 9,10") v1 = g.insert_vertex(9) v2 = g.insert_vertex(10)