이 정점 사이클 커버 문제에 대한 효율적인 알고리즘이 있습니까?


23

나는 유향 그래프 의 최대 정점 사이클 커버 를 찾는 알고리즘을 찾으려고 노력했습니다. 즉, 가능한 많은 사이클과 함께 모든 정점을 포함하는 분리 된 사이클 세트입니다 (우리는 고려하지 않습니다) 여기에서 개별 정점 사이클). 최소 정점 사이클 커버 를 찾는 문제 와 정확히 사이클 의 정점 사이클 커버를 찾는 문제 는 NP- 완전 하다는 것을 알고 있습니다. 그러나 최대 사례는 어떻습니까?G의 KGGk

이 흥미로운 것에 대한 대답은 일반적으로 찾을 수 있지만, 이것을 사용하려는 그래프는 실제로 구성에 의해 상당히 제약을 받으므로 문제가 NP- 완전하더라도 이러한 특정 인스턴스에 대한 다항식 솔루션이있을 수 있습니다.

우리는 정수의 목록이 , 요소 우리는 사용합니다 요소는 을 참조 를 정렬 한 후. 예로서:l i S s i LLliSsiL

L=(1,3,2,5,0,7,4,2,6,0,8,1)S=(0,0,1,1,2,2,3,4,5,6,7,8)

그래프의 정점을 쌍으로 식별 될 것이다 되도록 및 . 그래프는 경우에만 방향 모서리 . (이 그래프의주기는 주기적으로 순열 될 수있는 일련의 값에 해당하며 정렬 된 위치에있게됩니다.)l i = n s in ( n ,(n,i)li=nsins j = n(n,i)(m,j)sj=n

위의 예는 1 기반 지수를 사용하여 다음 그래프를 산출합니다.

여기에 이미지 설명을 입력하십시오

작동하지 않는 한 가지 방법은 가장 작은 사이클을 반복적으로 제거하는 욕심 많은 접근 방법입니다 (이 예제에서 볼 수 있듯이).

이 문제는 (실수하지 않은 경우) 주어진 목록 을 정렬하는 데 필요한 스왑 수를 묻는 것과 같습니다 . (이 문제를 처음으로 살펴보면 어떤 것이 영감을 얻었습니까?)

Juho의 답변에 대한 몇 가지 조언과 문학을 통해 조금 더 선별 한 후, 나는 매우 밀접한 관련이 있는 과제 문제 를 발견했습니다 . 그러나 할당 문제는 가중 이분 그래프로 표현되었으며 지금 까지이 문제를 줄이기 위해 가장자리와 가중치를 선택할 수있는 방법을 찾지 못했습니다. 가중치 함수를 최소화하는 관점에서 문제를 공식화하려는 경우 직관적 인 접근 방식은 각 사이클의 가중치가 이고사이클의 모서리 (또는 정점) 수입니다. (물론 이것은 가중치를 설정하는 것과 같습니다.| C | 1|C|1|C|1즉, 무게는 포함 된 특정 모서리가 아니라주기의 크기에 따라 달라집니다. 그러나 이것은 아마도 누군가에게 문제를 줄이는 방법에 대한 또 다른 아이디어를 줄 것입니다.

또한 싸이클의 크기제한하면 일반 그래프에서 APX-hard 문제가 발생합니다. 이것은 반드시 사이클 수를 최대화하는 작업이나 여기에서 고려중인 특정 그래프에 대해서도 동일하다는 것을 의미하지는 않지만 중요 할 수있을 정도로 밀접하게 관련되어있는 것 같습니다.

요약 : 위의 과정으로 구성된 그래프에 대해 최대 정점 분리 사이클 커버를 찾을 수 있습니까?

두 가지 측면에서, 최대 정점 분리 사이클 커버에 최소한 하나의 사이클 커버를 허용하는 임의의 그래프에 대한 효율적인 솔루션이 있는지 (아마도 주요 질문에 대한 답변으로 빠질 것입니다) 또는 관심이 있는지 여부에 관심이 있습니다. 최대 커버의 사이클 수를 결정하면 (각각에 포함 된 실제 모서리와 반대) 문제가 더 간단 해집니다. 사람들이 스스로 정식 답변을받을 자격이 있다고 생각되면이 질문들을 별도의 질문으로 게시하게되어 기쁩니다.


신장 교환에 관한 CS 문헌을 보셨습니까? 문제는 관련이있는 것 같습니다. 따라서이 방법에 적용 할 수있는 방법이 있는지 궁금합니다. 이것은 막 다른 골목일지도 모릅니다.
DW

@DW 나는하지 않았다 (나는 그것이 사실인지 몰랐다). 내가 찾을 수있는 것을 볼 수 있습니다. 감사합니다.
Martin Ender

문제는 실제로 이론적 인 관점 에서 연구 한 신장 교환과 실제로 유사하다. 예를 들어 Roughgarden 의이 논문 은 작은주기가 거의 명백한 이유로 선호 된다고 설명한다 (p3). 사이클 크기는 "동시 작업"을 의미하고 작은 작업은 합병증이나 기증자가 마음을 바꾸는 등 모든 작업을 수행 할 위험을 줄입니다.
vzn

@AustinMohr 필자는 설명하는 구성에서 얻은 그래프를 항상 사이클로 분해 할 수 있다고 생각합니다. 또한 어떤 사이클을 제거하더라도 나머지는 사이클로 분해 할 수 있습니다. 일반 그래프도 처리하려면 하나 이상의 완전한 표지가 있다고 가정하십시오.
마틴 엔더

@ MartinBüttner 특정 경우에 모든 목록 요소가 고유하면 문제가 순열 의 (고유 한) 사이클 분해 를 찾는 것과 동등 합니까?
mhum

답변:


4

Gkk=2k=3 kk

GG((3/5)ϵ)ϵ>0

위의 주장에 대한 자세한 내용과 증거는 [1]을 참조하십시오.


[1] Bläser, Markus 및 Bodo Manthey. "3 사이클 커버에 대한 2 개의 근사 알고리즘." 조합 최적화를위한 근사 알고리즘. Springer Berlin Heidelberg, 2002. 40-50.


흥미롭게도, 나는 그 논문의 참고 문헌을 따르려고 노력할 것입니다. 감사. (k 사이클 커버가 정확히 k 사이클의 커버라고 생각했을 때 잘못 읽었을 것입니다. 또는 다른 곳에서 사용 된 것과 다른 정의 일 수도 있습니다.)
Martin Ender

2
@ MartinBüttner 그런데 Bläser의 박사 학위 논문을 보길 원할 입니다. (독일어로되어 있지만 문제가 없을 것입니다 :-)). 실제로 최대 무게 2 사이클 커버를 계산하는 세부 사항을 다루어야합니다.
Juho

|V|nn

좀 더 생각해 보면 실제로 무게로 문제를 공식화 할 수 있는지 확실하지 않습니다. 동일한 무게로 모든 사이클 커버의 무게가 동일합니다. 사이클에 대한 나의 "비용"은 실제로 길이에서 1을 뺀 것입니다. 그래서 가능한 많은 사이클을 원합니다. 이것이 무게로 공식화 될 수 있다면 할당 문제로 줄어 들지 만 그렇지 않으면 계속 검색해야한다고 생각합니다.
Martin Ender
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.