그래서 비 주기적 그래프의 전이 감소를 수행하는 코드를 작성하려고합니다. 그래서 요소는 다음일시적 감소 - 코드의 오류 - 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 -> C) 즉, A가 B에 연결되고 B가 C에 연결되면 A는 또한이 경우 (A -> C)는 A가 C를 통해 C에 도달 할 수 있으므로 중복되어야하므로 제거해야합니다.
dfs 트리에 관심이있을 수 있습니다. 구글 그것. – sashas