def GNP(n,p): G = Grafica(n) for u in range(n): for v in range(u+1, n): r = random.random() if r < p: G.conectar(u,v) return G
def main(): ''' Función principal main. Esta función es la encargada de proporcionar al usuario una interfaz desde la cual poder seleccionar cada uno de los algoritmos implementados. Antes de seleccionar cualquier opción de algoritmo es necesario cargar la gráfica deseada desde un archivo .json, desde el cuál se debe definir "vertices" como una lista y "aristas" como una lista de listas, cada lista en cuestión con el siguiente formato: [origen, destino, peso]. :return: None ''' # Variables: opcion = 0 grafica = None print("**** Algoritmos de busqueda ****") print("Escoja una opcion:\ \n\t1. Cargar grafica desde archivo .json\ \n\t2. Dijkstra\ \n\t3. Bellman-Ford\ \n\t4. A*\ \n\t5. Salir") while opcion != "5": opcion = input("\n\tOpcion: ") if opcion == "1": try: file_name = input("\t\tNombre del archivo json: ") grafica = Grafica() grafica.leerArchivo(file_name) print("\n\tArchivo cargado exitosamente\n") except: grafica = None print("\t\tEl archivo no existe") if grafica: if opcion == "2": origen = int(input("\t\tOrigen: ")) try: grafica.dijkstra(origen) except: print("\t\tEl origen no existe") elif opcion == "3": origen = int(input("\t\tOrigen: ")) try: grafica.BellmanFord(origen) except: print("\t\tEl origen no existe") elif opcion == "4": origen = int(input("\t\tOrigen: ")) destino = int(input("\t\tDestino: ")) try: grafica.aStar(origen, destino) except: print("\t\tDatos incorrectos") else: print("\n\tElija una opción válida\n")
def main(): """Función principal main """ # Variables: opcion = 0 grafica = None print("**** Algoritmos de busqueda ****") print("Escoja una opcion:\ \n\t1. Cargar grafica desde archivo .json\ \n\t2. Dijkstra\ \n\t3. Bellman-Ford\ \n\t4. A*\ \n\t5. Salir") while opcion != "5": opcion = input("\n\tOpcion: ") if opcion == "1": try: file_name = input("\t\tNombre del archivo json: ") grafica = Grafica() grafica.leerArchivo(file_name) print("\n\tArchivo cargado exitosamente\n") except: grafica = None print("\t\tEl archivo no existe") if grafica: if opcion == "2": origen = int(input("\t\tOrigen: ")) try: grafica.dijkstra(origen) except: print("\t\tEl origen no existe") elif opcion == "3": origen = int(input("\t\tOrigen: ")) try: grafica.BellmanFord(origen) except: print("\t\tEl origen no existe") elif opcion == "4": origen = int(input("\t\tOrigen: ")) destino = int(input("\t\tDestino: ")) try: grafica.aStar(origen, destino) except: print("\t\tDatos incorrectos") else: print("\n\tElija una opción válida\n")
for w, u, v in aristas: if D.misma_componente(u, v): continue mst.append((u, v, w)) D.juntar(u, v) return mst def kruskal(G): aristas = G.aristas() aristas.sort() D = DisjointSets(G.num_verts) return aristas_sin_ciclos(aristas, D) if __name__ == "__main__": G = Grafica(5) G.conectar(0,1,2) G.conectar(0,2,3) G.conectar(1,4,1) G.conectar(1,2,3) G.conectar(2,3,4) G.conectar(3,4,1) print("Prim:") for arista in prim(G): print(arista) print("Kruskal:") for arista in kruskal(G): print(arista)
from Agente import Agente from Entorno import Entorno from Grafica import Grafica entorno = Entorno(20) agente = Agente(entorno) grafica = Grafica(agente, entorno) agente.ejecutar_acciones(100) grafica.graficar()
#to do def lca(self, u, v): if self.A[u] == self.A[v]: return lca_ingenuo(p, u, v, A[u]) else: if self.h[u] < self.h[v]: v, u = u, v while self.h[u] > self.h[v]: u = self.A[u] if self.A[u] == self.A[v]: return lca_ingenuo(p, u, v, A[u]) else: u = self.A[u] v = self.A[v] return self.lca(u, v) if __name__ == "__main__": G = Grafica(5) G.conectar(0, 1) G.conectar(1, 2) G.conectar(0, 3) G.conectar(3, 4) print(es_arbol(G)) p = encontrar_padres(G, 0) print(p) print(ancestros(p, 4)) print(lca_ingenua(p, 4, 1))
def generar_grafica(n, A): G = Grafica(n) for u,v in A: G.conectar(u,v) return G