2010-07-10 3 views
2

을 최대 일치 :최소 내가 일치하는 문제가 내가 그것을 해결하는 방법을 모르는 문제

Given a complete bipartite graph (A, B). 
Each node a_i in A, has two states: s(a_i)=0 or s(a_i)=1 
Weighted edges are declared as: w(a_i, b_j, s(a_i)) 

이 상태의 구성을 수정은 문제가 최대 일치된다.

목표는 최소 최대 일치를 갖는 구성을 찾는 것입니다.

예 :

|A|=|B|=1 
w(a_0, b_0, 0) = 5; 
w(a_0, b_0, 1) = 9; 

MAX-matchings 5 ​​9이므로, (5)는 응답이다. (그래서 구성은 s (a_0) = 0 임)

+0

이것은 숙제가 아닙니다. 알고리즘 질문을 숙제로 표시하는 경향이있는 사람들이 있습니다. – Nima

답변

2

질문자가 실명을 사용하고 있기 때문에 이것이 숙제라고 생각하지 않습니다.

불행히도, 근사 비율이 2보다 큰 상태의 할당을 찾는 경우 (고유 게임, 그렇지 않으면 1.3606이라고 가정)는 NP 하드입니다. G를 최소 꼭지점 덮개의 인스턴스라고합시다. 세트 A는 G의 각 에지에 대한 정점을 갖는다. 세트 B는 G의 각 정점에 대한 정점을 가진다. w (aj, b k, 0)는 1에 해당하는 에지의 더 작은 끝점 a j은 b k에 해당하고 그렇지 않은 경우 0에 해당합니다. 더 큰 끝점에 대해 비슷하게 w (j, b k, 1)를 정의하십시오. 이 인스턴스의 최소 최대 일치는 G의 최소 정점 커버와 동일한 카디널리티를 가지며, 후자의 문제는 근사하기 어렵습니다.

알고리즘 앞면에서 최소를 최소화하기 위해 내부 최대 무게 일치 문제를 선형 프로그래밍 이중으로 대체 할 수 있습니다. 여기 J 듀얼 J에 대응하는 변수이며, Z K는 K ㄴ에 대응하는 듀얼 변수는 Y이다.

분 Σ Y J J + Σ K Z K

s.t.

∀j, k. Y J + Z K ≥ (1 - S (a J)) w (a J, K B, 0) + S (a J) w (a J, b k, 1)

∀j. s (a j) ∈ {0, 1}

∀j. y j ≥ 0

∀k.Z K ≥ 0

이 제형은 상용 소프트웨어 (예를 들어, GNU 선형 계획법 키트)에 의해 너무 많은 인적 노력없이 공격 할 수있는 혼합 정수 프로그램이다. 무차별 한 힘보다 낫지 않을 수도 있습니다.

+0

아주 좋습니다. 나는 손으로 예를 거쳐 모든 일이 성공했다고 확신 할 수 있었다. 이전에 축소에 의한 증명을 다루지 않은 사람들 (나 같은)에게 다음과 같은보다 손쉬운 접근법이 이해를 돕기를 희망합니다. G의 각 가장자리가 두 개의 꼭지점 중 하나를 "목표"로 선택할 수 있다고 생각합니다. . 어떻게하면 각 가장자리가 대상을 선택한다고 상상해보십시오. 그런 다음 최대 가중치 매칭을 실행하여 구별되는 목표 - 대상 쌍 중 가장 많은 수를 찾습니다. (실제로는 두 부분 그래프의 모든 0 가중치 가장자리를 무시할 수 있습니다 ... –

+0

... a_j와 b_k 사이 ... 여기서 b_k는 G의 a_j에서 발생하지 않습니다. MWM이 절대 선택하지 않기 때문입니다.) MWM은 실제로 목표로 삼고있는 별개의 정점의 수를 알려줍니다. 정점 당 정확히 하나의 정점이있을 것이라는 점을 실제로 고려하지 않습니다. 이를 클릭하면, 목표로하는 각기 다른 정점의 수를 최소화하도록 정점을 지정하면 (a) G의 최소 정점 수를 갖는 모든 에지를 커버하고 (b) 최소 정점 무게 매칭 (A, B). –

+0

기억해야 할 또 다른 사실은 축소 증명을 사용하면 실제로 "거꾸로"문제가 발생한다는 것입니다. 우리는 고려중인 문제의 주어진 사례를 분석하려고 시도하지 않고 대신에 다른 것으로 알려진 어려운 문제의 사례를 취하여 문제의 사례를 작성합니다. 우리가 그렇게 할 수 있다면 고려중인 문제를 해결하는 것이 적어도 알려진 것만 큼 어렵다는 것을 우리는 알고 있습니다. –

관련 문제