Exemplo n.º 1
0
def createRandomGraph(numNodes, numEdges):
    graph=Graph()
    
    all_edges=[]

    for i in range(numNodes):
        for j in range(i + 1, numNodes):
            all_edges.append( (i,  j) )
    
    
    random.shuffle(all_edges)
    
    edges=all_edges[:numEdges]

    for i in range(numNodes):
        graph.add_vertex(i)
   
    
    for edge in edges:
        #print(edge)
        graph.add_directed_edge(edge[0], edge[1])


    g1 = BokehGraph(graph)
    g1.show()
Exemplo n.º 2
0
def main(**kwargs):
    number_vertices = kwargs['num_verts']
    connected = kwargs['connected']
    number_edges = kwargs['num_edges']
    style = kwargs['style']
    if style == 'default':
        graph = default_graph()
    else:
        if number_vertices < 0 or number_edges < 0:
            raise ValueError("number must be greater than zero")
        elif number_edges > number_vertices * (number_vertices - 1) / 2:
            raise ValueError("max number of edges exceeded")
        graph = Graph()
        g = [graph.add_vertex(x) for x in range(number_vertices)]

        unique_edges = set()

        while (len(unique_edges) < number_edges):
            v1 = randint(0, number_vertices - 1)
            v2 = randint(0, number_vertices - 1)
            if v1 == v2:
                continue
            if (v2, v1) not in unique_edges:
                unique_edges.add((v1, v2))
                graph.add_edge(v1, v2)
        print('number of unique edges', len(unique_edges))

    # graph.bft(3)
    boka = BokehGraph(graph)
    if connected:
        color_connected(graph)
    boka.show()
Exemplo n.º 3
0
def main(**kwargs):
    style = kwargs["style"]
    numVerts = kwargs["num_verts"]
    numEdges = kwargs["num_edges"]

    if style == "default":
        graph = getDefaultGraph()
    elif style == "random":
        graph = getRandomGraph(numVerts, numEdges)
    elif style == 'awesome':
        graph = getGraph('awesome')
    elif style == 'radiohead':
        graph = getGraph('radiohead')
    elif style == 'bender':
        graph = getGraph('bender')
    elif style == 'lambda_logo':
        graph = getGraph('lambda_logo')
    elif style == 'connected':
        graph = getRandomGraph(numVerts, numEdges, 'connected')
    else:
        graph = getDefaultGraph()

    bokeh_graph = BokehGraph(graph)

    bokeh_graph.show()
Exemplo n.º 4
0
def createDefaultGraph():
    graph=Graph()
    graph.add_vertex('0')
    graph.add_vertex('1')
    graph.add_vertex('2')
    graph.add_vertex('3')
    graph.add_vertex('4')
    graph.add_vertex('5')
    graph.add_vertex('6')
    graph.add_vertex('7')
    graph.add_vertex('8')
    graph.add_undirected_edge('0', '1')
    graph.add_undirected_edge('0', '3')
    graph.add_directed_edge('1', '2')
    graph.add_directed_edge('1', '4')
    graph.add_directed_edge('2', '5')
    graph.add_directed_edge('2', '6')
    graph.breadth_first_search('0')
    graph.depth_first_search('0')
    graph.dfs_search_value('0','1')
    #graph.dfs_search_value('0','11')
    #graph.add_directed_edge('7','4')
    #graph.add_directed_edge('7','4')
    g1 = BokehGraph(graph)
    g1.show()
Exemplo n.º 5
0
def main(num_vertices=None, num_edges=None):
    """Build and show random graph."""
    graph = Graph()
    graph.add_random_data(num_vertices, num_edges)

    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
    print('MAIN CONNECTED COMPONENTS', graph.connected_components)
Exemplo n.º 6
0
def main(num_vertices=8, num_edges=4):
    """Build and show random graph."""
    graph = Graph()

    graph.random_graph(num_vertices, num_edges)
    graph.get_connected_components()
    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
Exemplo n.º 7
0
def main(num_vertices=8, num_edges=8, test=0):
    graph = Graph()

    if test == 1:
        graph.add_vertex('A')
        graph.add_vertex('B')
        graph.add_vertex('C')
        graph.add_vertex('D')
        graph.add_vertex('E')
        graph.add_vertex('F')
        graph.add_vertex('G')

        graph.add_edge('A', 'B')
        # graph.add_edge('A', 'D')
        # graph.add_edge('A', 'C')
        graph.add_edge('B', 'D')
        graph.add_edge('D', 'G')
        # graph.add_edge('G', 'F')
        graph.add_edge('E', 'F')

        # print (graph.vertices)
        # print (graph.search())

    if test == 2:
        graph.add_vertex('0')
        graph.add_vertex('1')
        graph.add_vertex('2')
        graph.add_vertex('3')
        graph.add_vertex('4')
        graph.add_vertex('5')
        graph.add_vertex('6')

        graph.add_edge('0', '1')
        graph.add_edge('0', '2')
        graph.add_edge('1', '3')
        graph.add_edge('1', '4')
        graph.add_edge('2', '5')
        graph.add_edge('2', '6')

    else:
        for num in range(num_vertices):
            graph.add_vertex(str(num))

        verts = []
        for _ in range(num_edges):
            vertices = sample(graph.vertices.keys(), 2)
            while vertices in verts:
                vertices = sample(graph.vertices.keys(), 2)
            graph.add_edge(str(vertices[0]), str(vertices[1]))
            verts.append(vertices)
            verts.append(vertices[::-1])

        # print (graph.vertices)
        # print (graph.search())

    bg = BokehGraph(graph)
    bg.show()
Exemplo n.º 8
0
def main():
    graph = Graph()

    # graph.debug_create_test_data()
    graph.create_vertices_and_edges(10)
    graph.get_connected_components()
    bg = BokehGraph(graph)
    # render the graph on the screen
    bg.show()
Exemplo n.º 9
0
def main(vertices=7, edges=7):
    graph = Graph()
    for vertex in range(vertices):
        graph.add_vertex(str(vertex))

    for _ in range(edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
Exemplo n.º 10
0
def main(num_vertices=0, num_edges=0, draw_components=True):
    graph = Graph()
    for number in range(num_vertices):
        graph.add_vertex()

    for _ in range(num_edges):
        verticles = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph, draw_components=draw_components)
    bokeh_graph.show()
Exemplo n.º 11
0
def main():
    graph = Graph()
    v1 = Vertex("A")
    v2 = Vertex("B")

    graph.add_vertex(v1)
    graph.add_vertex(v2)
    graph.add_edge(v1, v2, True)

    bokeh = BokehGraph(graph)
    bokeh.show()
Exemplo n.º 12
0
def main(num_vertices=2, num_edges=2, draw_components=True):
    graph = Graph()
    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num)))

    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])
    # graph.get_connected_components()
    bg = BokehGraph(graph, draw_components=draw_components)
    bg.show()
Exemplo n.º 13
0
def main(v, e):
    graph = Graph()
    for i in range(v):
        graph.add_vertex(i)
    for j in range(e):
        random_vertex = int(random.random() * v)
        random_edge = int(random.random() * e)
        print(random_vertex, random_edge)
        graph.add_edge(random_vertex, random_edge)
    print(graph.vertices)
    bg = BokehGraph(graph)
    bg.show()
Exemplo n.º 14
0
def main(num_vertices=8, num_edges=8, draw_components=True):
    graph = Graph()

    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num)))

    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(grahp, draw_components=draw_components)
    bokeh_graph.show()
Exemplo n.º 15
0
def main(num_vertices=8, num_edges=8):
    graph = Graph()

    for num in range(num_vertices):
        graph.add_vertex(str(num))
    
    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
Exemplo n.º 16
0
def main(vertices=10, edges=10):
    '''Build a random Graph'''
    graph = Graph()
    for num in range(vertices):
        graph.add_vertex(num)

    for _ in range(edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph, title="Random Graph")
    bokeh_graph.show()
Exemplo n.º 17
0
def main():
    from graph import Graph

    graph = Graph()
    graph.add_vertex("0")
    graph.add_vertex("1")
    graph.add_vertex("2")
    graph.add_vertex("3")
    graph.add_edge("0", "1")
    graph.add_edge("0", "3")
    bg = BokehGraph(graph)
    bg.show()
Exemplo n.º 18
0
def main(num_vertices=6, num_edges=6, draw_comps=True):
    """Build and show random graph."""
    graph = Graph()
    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num)))

    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph, draw_comps=draw_comps)
    bokeh_graph.show()
Exemplo n.º 19
0
 def randomize(self, grid_x=5, grid_y=4, jitter=150, edge_prob=0.6):
     #graph=self.Graph()
     for i in range(20):  #0 to 19
         string = str(i)
         self.add_vertex(string)
     for vertex in self.vertices:
         for vertex1 in self.vertices:
             decision = random()
             if decision <= edge_prob:
                 self.add_edge(vertex, vertex1)
     bg = BokehGraph(self)
     bg.show()
     """if vertex not in self.vertices:
Exemplo n.º 20
0
def main():
    from graph import Graph
    from draw import BokehGraph
    graph = Graph()
    graph.add_vertex('0')
    graph.add_vertex('1')
    graph.add_vertex('2')
    graph.add_edge('0', '1')
    graph.add_edge('2', '1')
    bg = BokehGraph(graph)
    dir(bg)
    bg.pos
    bg.show()
Exemplo n.º 21
0
def main(num_vertices=8, num_edges=8, draw_components=True):
    """Build and show random graph."""
    graph = Graph()
    # Add appropriate number of vertices
    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num)))

    # Add random edges between vertices
    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph, draw_components=draw_components)
    bokeh_graph.show()
Exemplo n.º 22
0
def main(num_vertices=8, num_edges=8):
    """Build and show random graph."""
    graph = Graph()
    # Add appropriate number of vertices
    for num in range(num_vertices):
        graph.add_vertex(str(num))

    # Add random edges between vertices
    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        # TODO check if edge already exists
        graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
Exemplo n.º 23
0
def main():
    graph = Graph()
    graph.add_vertex("0")
    graph.add_vertex("1")
    graph.add_vertex("2")
    graph.add_vertex("3")
    graph.add_vertex("4")
    graph.add_vertex("5")
    graph.add_vertex("6")
    graph.add_vertex("7")
    graph.add_edge("0", "1")
    graph.add_edge("0", "3")
    graph.add_edge("7", "5", False)

    b = BokehGraph(graph)
    b.show()
Exemplo n.º 24
0
def main(**kwargs):
    style = kwargs["style"]
    numVerts = kwargs["num_verts"]
    numEdges = kwargs["num_edges"]

    if style == "default":
        graph = getDefaultGraph()
    elif style == "random":
        graph = getRandomGraph(numVerts, numEdges)
    else:
        graph = getDefaultGraph()

    graph.breadth_first(0)

    bokeh_graph = BokehGraph(graph)

    bokeh_graph.show()
Exemplo n.º 25
0
def main(**kwargs):

    style = kwargs["style"]
    numVerts = kwargs["num_verts"]
    numEdges = kwargs["num_edges"]

    if style == 'default':
        graph = getDefaultGraph()
    elif style == "random":
        graph = getRandomGraph(numVerts, numEdges)
    else:
        graph = getDefaultGraph()

    bg = BokehGraph(graph)
    bg.show()
    graph.dfs(0, 11)
    graph.bfs(0, 11)
def main(num_vertices=8, num_edges=8, draw_components=True):
    """Build and show random graph."""
    graph = Graph()
    # Add appropriate number of vertices
    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num)))

    # Add random edges between vertices
    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        # print('vertices -> ', vertices)
        # TODO check if edge already exists
        # print(graph.components)
        if not graph.components:
            graph.add_edge(vertices[0], vertices[1])

    bokeh_graph = BokehGraph(graph, draw_components=draw_components)
    bokeh_graph.show()
Exemplo n.º 27
0
def createDefaultGraph():
    graph = Graph()  # Instantiate your graph
    graph.add_vertex(5)
    graph.add_vertex(2)
    graph.add_vertex(6)
    graph.add_vertex(1)
    graph.add_vertex(4)
    graph.add_vertex(7)
    graph.add_vertex(3)
    graph.add_edge(5, 2)
    graph.add_edge(2, 1)
    graph.add_edge(4, 3)
    # graph.add_edge(5, 6)
    # graph.add_edge(2, 4)
    # graph.add_edge(6, 7)
    cc = graph.find_connected()
    bg = BokehGraph(graph, cc)
    bg.show()
Exemplo n.º 28
0
def main(num_vertices=8, num_edges=8, test=False):
    """Build and show random graph."""
    graph = Graph()

    if test:     # Instantiate your graph
        graph.add_vertex('0')
        graph.add_vertex('1')
        graph.add_vertex('2')
        graph.add_vertex('3')
        graph.add_vertex('4')
        graph.add_vertex('5')
        graph.add_vertex('6')
        graph.add_vertex('7')
        graph.add_vertex('8')
        graph.add_vertex('9')
        graph.add_vertex('10')
    
        graph.add_edge('0', '1')
        graph.add_edge('0', '2')
        graph.add_edge('1', '3')
        graph.add_edge('1', '4')
        graph.add_edge('2', '5')
        graph.add_edge('2', '6')
        graph.add_edge('3', '1')
        graph.add_edge('4', '8')
        graph.add_edge('5', '9')
        graph.add_edge('9', '10')

    else:
        # Add appropriate number of vertices
        for num in range(num_vertices):
            graph.add_vertex(str(num))

        # Add random edges between vertices
        for _ in range(num_edges):
            vertices = sample(graph.vertices.keys(), 2)
            # check if edge already exists
            graph.add_edge(vertices[0], vertices[1])

        print(graph.search('5', method='dfs'))
        print(graph.vertices)

    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show()
Exemplo n.º 29
0
def main(num_vertices=8, num_edges=8, draw_components=True):
    """Build and show random graph."""
    graph = Graph()
    # Add appropriate number of vertices
    for num in range(num_vertices):
        graph.add_vertex(Vertex(label=str(num), component=num))

    # Add random edges between vertices
    edges = set()
    for _ in range(num_edges):
        vertices = sample(graph.vertices.keys(), 2)
        # set vertices_id to a concatenated string of ints from vertices
        vertices_id = str(vertices[0])[-1] + str(vertices[1])[-1]
        if vertices_id not in edges:
            graph.add_edge(vertices[0], vertices[1])
            edges.add(vertices_id)

    bokeh_graph = BokehGraph(graph, draw_components=draw_components)
    bokeh_graph.show()
Exemplo n.º 30
0
def main(v=10, e=5):
    graph = Graph()
    for i in range(v):
        graph.add_vertex(i)

    all_edges = []
    for i in range(e):
        for j in range(i + 1, e):
            all_edges.append((i, j))

    random.shuffle(all_edges)
    edges = all_edges[:e]

    for edge in edges:
        graph.add_edge(edge[0], edge[1])

    print(graph.connected())
    bokeh_graph = BokehGraph(graph)
    bokeh_graph.show(True)