Esempio n. 1
0
def camino_escalas(grafo,aeropuertos_de_ciudades,origen,destino):
	"""
	Imprime el camino con menos escalas entre una ciudad origen y una ciudad
	destino.
	"""
	caminos = []
	for aerop_origen in aeropuertos_de_ciudades[origen]:
		padres,orden = repo.bfs(grafo,aerop_origen)
		for aerop_destino in aeropuertos_de_ciudades[destino]:
			camino = repo.reconstruir_camino(aerop_origen,aerop_destino,padres,None)
			if aerop_destino not in orden: continue
			caminos.append((camino,orden[aerop_destino]))
	imprimir_camino(menor_condicion(caminos))
	return caminos
Esempio n. 2
0
def camino_mas(grafo,aeropuertos_de_ciudades,modo,origen,destino):
	"""
	Imprime el camino más rápido/barato desde una ciudad origen a
	una ciudad destino.
	"""
	if modo == "barato": parametro = 0
	else: parametro = 1
	caminos = []
	for aerop_origen in aeropuertos_de_ciudades[origen]:
		for aerop_destino in aeropuertos_de_ciudades[destino]:
			padre,peso = repo.camino_minimo(grafo,aerop_origen,parametro,aerop_destino)
			camino = repo.reconstruir_camino(aerop_origen,aerop_destino,padre,peso)
			#Camino es la tupla (camino,peso)
			if camino: caminos.append(camino)
	camino_minimo = menor_condicion(caminos)
	imprimir_camino(camino_minimo)
	return camino_minimo