이 경로 문제의 복잡성이 알려져 있습니까?


9

인스턴스 : 무 방향 그래프G 두 개의 정점으로 st, 정수 k0.

질문 : 존재 하는가st 경로 G경로가 최대로 교차하도록 k삼각형? (이 문제의 경우 경로에서 삼각형의 가장자리가 하나 이상 있으면 경로가 삼각형과 교차한다고합니다.)


3
이것이 잘못 되었습니까? 각 모서리에 가중치를 할당 한 다음 가장 짧은 st 경로를 찾습니다. 각 모서리의 무게는 해당 모서리를 포함하는 삼각형의 수입니다. 이 경로의 무게는 만나는 삼각형의 수와 같지 않지만 최소한의 삼각형 수를 가진 st 경로입니다. (가능한 문제는 삼각형의 두 가장자리를 방문하기 때문에 하나 이상의 삼각형을 두 번 셀 수 있지만 삼각형을 선택하는 이유는 삼각형의 다른 가장자리를 통과하는 것보다 작고 간단한 경로 수단이 있기 때문입니다 삼각형의 두 가장자리가 서로 옆에 있습니다).
Saeed

3
@Saeed 이해가 안됩니다 : 초과 계산으로 인해 차선책을 선택하지 않는다는 주장은 무엇입니까? 당신의 알고리즘은 확실히 2 근사입니다. 어쩌면 수정은 가장자리를 추가하는 것입니다(u,w) 모든 길에 uvw 무게가 둘 다 포함 된 삼각형의 수와 동일 (u,v)(v,w)
Sasho Nikolov

2
맞습니다, 우리는 u에서 v로 갈 수 있습니다. 그리고 우리는 x (삼각형 uvw에없는 다른 노드)를 선택하고 잘못된 w로갑니다 (실수는 삼각형 uvw에없는 정점 사이에서 놓쳤다는 것입니다) 하지만 모든 st 경로에 대해 α 원래 그래프에 삼각형은 무게의 경로가 있습니다 α보조 그래프에서. 또한 새 그래프에서 경로의 가중치는 항상 원래 그래프에서 해당 경로의 삼각형 수 이상입니다.
Saeed

1
수정 후에도 작동하지 않는 것에 대해 조금 더 생각합니다. 내가 잘못된 희망을 가져 오면 미안 해요. 수정이 잘못된 이유를 확인하려면 꼭짓점을 고려하십시오.u>v>w>x 경로에 P 그리고 우리는 삼각형이 있습니다 u,v,wv,w,x 그리고 가장자리를 가정 vxuw삼각형이 너무 많습니다. 우리가 연결하는 인공적인 새로운 가장자리를 사용한다면u>w 우리는 삼각형을 세었다 v,w,x두번. 추신 : 우리가 단순히 교체한다고 생각했기 때문에 내 추론이 잘못되었습니다.u>vv>w 새로운 (멀티) 엣지 u>w. 모든 경로에 인공 가장자리를 추가하면 사소하게 작동합니다. NPC 인 것 같습니다.
Saeed

1
내 아이디어가 작동하지 않습니다-여러 세트를 유지해야하며 너무 많은 세트가있을 것이라고 생각합니다.
reinierpost

답변:


1

자체 에지가 없다고 가정 G.

노드 사이의 각 모서리 vivjG, 허락하다 E[i,j]=1, E[i,j]=0가장자리가 없다면. 계산n×n 매트릭스 C[i,j]=k=1nE[i,k]E[k,j]각 노드 쌍 사이의 2 홉 경로 수를 제공합니다. vivj. 그런 다음 사이에 가장자리vivjG 계산하다 D[i,j]=E[i,j]C[i,j] 그렇지 않으면 설정 D[i,j]=가장자리가 포함 된 삼각형 수 (또는 가장자리가없는 경우 무한대)를 제공합니다. 계산에 필요한 행렬 곱셈C 소송 비용 O(n3) (의 희소성에 따라 더 빠르게 계산 될 수 있음) G).

이제 계산 n×n 매트릭스 A그런 A[i,j]=min(D[i,j],mink(D[i,k]+D[k,j]E[i,j])). 는 어떤 삼각형의 두 가장자리를 따라가는 경로를 설명하기 위해 에서 길이가 최대 2 인 최단 경로입니다.AD

이제 Dijkstra를 사용하여 가 (가중치) 인접 행렬 인 모든 그래프 에서 에서 와 사이의 최단 경로를 계산하십시오 (모든 에지 가중치가 양수이므로). 즉 , 여기서 는 열대 세미 링에 대한 폐쇄입니다 (거리 행렬 제공).vivjGAA[i,j]kA

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.