def pruebas_camino_minimo():
    print("PRUEBAS CAMINO MINIMO\n")
    grafo = Grafo()
    grafo.add_edge(1, 2)
    grafo.add_edge(2, 3)
    grafo.add_edge(3, 4)

    camino = funciones.camino_minimo(grafo, 1, 4)
    for v in camino[:-1]:
        print(v, "-> ", end='')
    print(camino[-1])
    camino2 = funciones.camino_minimo(grafo, 2, 4)
    for v in camino2[:-1]:
        print(v, "-> ", end='')
    print(camino2[-1])
    grafo.add_edge(2, 4)
    camino = funciones.camino_minimo(grafo, 1, 4)
    for v in camino[:-1]:
        print(v, "-> ", end='')
    print(camino[-1])
    camino2 = funciones.camino_minimo(grafo, 2, 4)
    for v in camino2[:-1]:
        print(v, "-> ", end='')
    print(camino2[-1])

    grafo.add(5)
    camino = funciones.camino_minimo(grafo, 1, 5)
    print(camino)
def pruebas_ciclo():
    print("\n\n PRUEBAS CICLO DE LARGO n\n")
    grafo = Grafo()
    grafo.add_edge('A', 'B')
    grafo.add_edge('B', 'C')
    grafo.add_edge('C', 'A')
    grafo.add_edge('C', 'D')
    grafo.add_edge('B', 'E')
    grafo.add_edge('E', 'D')
    grafo.add_edge('D', 'F')
    grafo.add_edge('F', 'E')
    grafo.add('G')
    lista = funciones.ciclo(grafo, 'B', 3)
    print(lista)
def pruebas_tarjan():
    print("\n\nPRUEBAS COMPONENTES CONEXAS\n")
    grafo = Grafo()
    grafo.add_edge('A', 'B')
    grafo.add_edge('B', 'C')
    grafo.add_edge('C', 'A')
    grafo.add_edge('C', 'D')
    grafo.add_edge('B', 'E')
    grafo.add_edge('E', 'D')
    grafo.add_edge('D', 'F')
    grafo.add_edge('F', 'E')
    grafo.add('G')
    #! H e I tienen que ser una sola componente
    grafo.add_edge('H', 'I')
    grafo.add_edge('I', 'H')
    cfc(grafo)
Esempio n. 4
0
def letras() -> Grafo:
    """
    Ejemplo 1: Letras
    """

    # Crear grafo y agregar nodos
    grafo = Grafo()
    grafo.add('A', 'B', 'C', 'D')

    # Conectar nodos con sus respectivas distancias
    grafo.connect('B', 'C', 200)
    grafo.connect('B', 'A', 100)
    grafo.connect('A', 'D', 50)
    grafo.connect('D', 'C', 10)

    imprimir_camino(grafo, 'A', 'C')

    return grafo
Esempio n. 5
0
def _agregar_nodo(grafo: Grafo):
    """
    Agregar un nodo al grafo
    :param grafo: El grafo donde se agregará el nodo
    """
    while True:
        nombre = input(
            'Ingrese un nombre para el nuevo nodo (ENTER para cancelar): ')
        if len(nombre) == 0:
            _clear_screen()
            break
        if grafo.add(nombre):
            print(f'Nodo "{nombre}" agregado correctamente\n')
            _wait_enter()
            break
        else:
            print(f'El nodo "{nombre}" ya existe\n')
Esempio n. 6
0
    for row in csvfile:
        relations.append(row)

    for relation in relations:
        for value in csvfile[relation]:
            triples.append((counter, relation, value))
            counter += 1
        counter = 1
    return triples


graph = Grafo()
triples = maketriples(pathtocsv)

for triple in triples:
    graph.add(triple[0], triple[1], triple[2])


def triples2dot(triples):
    dot = \
        """ 
        graph "grafo" { 
        overlap = "scale"; 
        """

    for s, p, o in triples:
        dot = dot + ('%s -- %s [label=%s]\n' %
                     (re.sub('[^A-Za-z0-9]+', '',
                             str(s)), re.sub('[^A-Za-z0-9]+', '', str(o)),
                      re.sub('[^A-Za-z0-9]+', '', str(p))))
    dot = dot + "}"
Esempio n. 7
0
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from grafo import Grafo #Triplestore
from staticvars.staticpaths import pathtocsv #String path to CSV file
import pandas as pd

relations = []
triples = []
pathtocsv = pathtocsv

def maketriples(filepath):
    counter = 1
    csvfile = pd.read_csv(filepath)
    csvfile.drop_duplicates(inplace=True, keep='first')
    for row in csvfile:
        relations.append(row)

    for relation in relations:
        for value in csvfile[relation]:
            triples.append((str(counter), str(relation), str(value)))
            counter += 1
        counter = 1
    return triples

graph = Grafo()
triples=maketriples(pathtocsv)


for triple in triples:
    graph.add(str(triple[0]),str(triple[1]),str(triple[2]))