İki taraflı ağırlıklı bir grafiğim var (tam olarak bir atama problemi) ve en ucuz yol/seçimi bulmak istiyorum. Yolu başarmak için DFS veya Greedy BFS'yi nasıl uygulayacağımı biliyor musunuz?İki taraflı ağırlıklı bir grafikte en ucuz yol DFS/Açgözlü BFS
Bir adiacency listesi olarak temsil grafiği var (ya da ben en iyisi olacağını düşünüyorum) ne istiyorum mümkün mü bu ve DFS algoritması
adjlist = {"A": ["W", "X"],
"B": ["W", "X", "Y", "Z"],
"C": ["Y", "Z"],
"D": ["W", "X", "Y", "Z"],
"W": ["A", "B", "D"],
"X": ["A", "B", "D"],
"Y": ["B", "C", "D"],
"Z": ["B", "C", "D"] }
def dfser(graph, root):
visited =[]
stack = [root, ]
while stack:
node = stack.pop()
if node not in visited:
visited.append(node)
stack.extend([x for x in graph[node] if x not in visited])
return visited
gibi? Sonuç şöyle olmalıdır: AWBXCYDZ veya en ucuz toplamı olan bir şey.
Ya da tüm olası geçişleri kökünden alabilir miyim? Bu DFS sadece bana bir tane verir ama ben tüm olası tranversalları istiyorum istiyorum
Bu ödev mi:
networkx modül bipartite graphs ve ilgili algoritmalar uygular? Eğer değilse, bu algoritmaların çoğunu uygulayan 'networkx' modülüne bakabilirsiniz. Ne denediğinizi ve özellikle neler yaptığınızı gösterirseniz daha fazla yardım alırsınız. – AChampion