私はAcyclicグラフの推移的減少を行うコードを書こうとしています。 だから要素は次のとおり推移の減少 - コードでのエラー - Python
(3,5)、(5,2)、(2,1)、(4,2)、(3,1)、(4,1)
この は、私がこれまでに書かれたものです:
graph = [[3, 5],[5, 2],[2, 1],[4, 2],[3, 1],[4, 1]]
for i in range(len(graph)):
for j in range(len(graph)):
for k in range(len(graph)):
if [i,j] in graph and [j,k] in graph:
a = [i,k]
graph.pop(a)
print(graph)
を私は以下を得ることを期待しています実行した後(4,1)削除:
>> (3, 5), (5, 2), (2, 1), (4, 2), (3, 1)
しかし、代わりに、返されます:
>> (3, 5), (5, 2), (2, 1), (4, 2), (3, 1), (4, 1)
私は間違っていることを理解できません。もし誰かがエラーを指摘できれば、それは素晴らしいでしょう!
P.S:グラフの冗長なエッジが除去されています。例えば、AがBに接続され、BがCに接続されている場合、Aは(A→B)と(B→C)また、Cに接続されているため、 (A - > C)は冗長です.AはCからBに到達できるため、削除する必要があります。
dfsツリーに興味があるかもしれません。それはGoogleです。 – sashas