꼭짓점 제약 조건을 사용하여 음수주기 찾기


11

가중 가장자리와 그래프 감안할 때, 우리는 어떻게 주어진 정점 세트에 적어도 하나 개의 정점을 포함하는 음의주기를 찾을 수 있습니다 ? 감사.{V1,V2,,Vk}


이 질문은 분명하지 않습니다. 무엇, 가장자리 또는 정점에 가중치가 있습니까? 무엇 이며, V (1) 정점 또는 정점의 집합? {V1,V2,,Vk}V1
Yixin Cao

@YixinCao 편집 해 주셔서 감사합니다 : 가장자리의 무게, 은 꼭짓점입니다. V1
Tianyi Cui

답변:


8

당신이 간단 할주기를 필요로하지 않는 경우, 그 강력하게 연결된 구성 요소로 (감독) 그래프를 중단하고, 주어진 정점 중 하나를 포함하는 각 구성 요소에 대해 , 구성 요소가 음의주기가 포함되어 있는지 여부를 확인합니다. 성분이없는 경우, V i를 포함하는 음의주기가 없습니다 . 일부 구성 요소가하는 경우에, 당신은 포함하는 (단순하지 않은) 부정적인주기 찾을 수 V를 내가 부정적인주기의 여러 사본을 복용하고,과에주기의 일부 정점에서 해당 경로를 추가하여 V I를 . (원하는주기를 암시 적으로 나타내는 총 시간은 방향 그래프에서 음의주기를 찾는 시간과 같습니다. 예 : O (ViViViVi , I는 기억 경우).O(nm)

주기가 단순해야하는 경우 단일 정점 만 제공하더라도 문제가 NP- 완전하게됩니다 . (문제에 대한 해밀턴 경로를 줄일 수 있습니다 : 주어진 그래프 G 에서 주어진 소스 S 에서 주어진 싱크 T 까지의 해밀턴 경로를 찾으 려면 기존 모서리 가중치 -1을 제공 한 다음 두 모서리를 가진 인공 정점 V 1 을 추가하십시오 비용 N / 2 - 0.01 에서 각각 하나 V 1S 로부터 한 TV 1 ).V1STGV1N/20.01V1STV1

사이클이 정점을 반복하지만 모서리는 반복하지 않도록 허용하는 경우에도 NP가 완전하다고 생각합니다 (유사한 축소로 각 정점 를 표준 방식 으로 지정된 모서리 ( v , v ' ) 로 분할 ).v(v,v)


2
나는이 대답이 내 것보다 훨씬 낫다.
David Eppstein

6

입력 내용이 유 방향 그래프라고 가정하겠습니다. 방향이없는 경우에 이것을 수행하는 방법을 모르겠습니다.

그래프의 꼭짓점 세트의 복사본을 개 만듭니다 . 여기서 n 은 그래프의 꼭짓점 수입니다. 에서 각 가장자리를 교체 UV 에서 이동 가장자리 원래 그래프의 복사 난을 복사 해제 i + 1V 의 모든 선택을 위해, 내가 . 또한 경우, U는 지정된 정점 세트 아니지만 그렇지 속하는 또한 사본 진행 에지 포함 I 복사 0브이 .nnuviui+1viuiu0v

확장 그래프의 사이클은 모두 원래 그래프의 사이클로 다시 투영되지만 확장 그래프의 모든 사이클에는 지정된 정점이 하나 포함되어 있습니다 (그렇지 않으면 확장 레이어를 거꾸로 갈 수 없음). 확장 된 그래프에 음의주기가 포함 된 경우 지정된 정점을 포함하는 음의주기.


원래 그래프가있는 경우 정점과 m의 가장자리를, 새롭게 구축 그래프 것이다 N 2 정점과 n은 m의 가장자리. 음의주기를 찾으려면 O ( n 3 m ) 시간 이 필요 하며 이는 꽤 큰 것 같습니다. 나는 여전히 더 나은 해결책을 기다리고 있으며 많은 감사를드립니다! nmn2nmO(n3m)
Tianyi Cui

2
아마도 더 문제가되는 것으로 밝혀진주기는 반드시 단순하지는 않습니다. 간단한 네거티브 사이클이 필요합니까?
David Eppstein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.