입니다. 최대 컷의 인스턴스가 주어지면 모든 엣지 가중치에 -1을 곱합니다. 이 문제의 제약은 모든 홀수 사이클을 제거하기 위해 에지가 제거되도록 지시한다. 즉, 최대 - 중량 이분 서브 그래프를 찾아야한다.
이 문제는 사실 2 라벨 고유 라벨 커버 문제와 동일합니다. 목표는 (i) 서로 다른 색상의 정점을 연결하는 양의 가장자리 (ii) 같은 색상의 정점을 연결하는 음의 가장자리에 대한 비용 합계를 최소화하도록 각 정점을 검정 또는 흰색으로 색칠하는 것입니다. 이러한 모든 모서리를 삭제하는 것은 원래의 문제에 대한 유효한 해결책입니다. 반대로, 삭제할 올바른 가장자리 집합이 주어지면 색칠을 결정할 수 있습니다. 나는 semidefinite 프로그래밍에 기반한 approximation 알고리즘을 기대한다 (그리고 relax은 branch와 bound를 위해 사용될 수있다).
그러나 조합 최적화에 익숙하지 않다면, 내가 제안 할 알고리즘은 정수 프로그래밍입니다. e
을 지우면 x(e)
을 1로 놓고, 그렇지 않으면 x(e)
을 0으로합시다.
minimize sum_{edges e} cost(e) x(e)
subject to
for every simple cycle C with an odd number of negative edges,
sum_{edges e in C} x(e) >= 1
for each edge e, x(e) in {0, 1}
솔버가 대부분의 작업을 수행합니다. 문제는 내가 작성한 지수의 지수를 다루는 것입니다. 가장 간단한 것은 모든 간단한 사이클을 생성하고 솔버 전체 프로그램을 제공하는 것입니다. 또 다른 가능성은 제약 조건의 하위 집합을 사용하여 최적으로 풀고 솔루션이 실제로 유효한지 테스트하고 그렇지 않은 경우 하나 이상의 누락 된 제약 조건을 도입하는 것입니다. 테스트를 수행하려면, 양의 가장자리로 결합 된 정점이 동일한 색상을, 음의 가장자리로 결합 된 정점이 다른 색상을 갖도록 삭제되지 않은 하위 그래프를 두 가지 색상으로 표시합니다. 색깔 탐욕; 우리가 붙어 있다면 이상한 순환이 있습니다.
더 세련되면서 column generation이라는 기술을 통해 작성된 프로그램을 해결할 수 있습니다.
또한 양의 모서리를 제거 할 가능성이있어주기가 없기 때문에 (충돌하는 사이클이 없음) 양의 가장자리 가중치가 줄어들어 그 가능성에 영향을 줍니까? –
@VikramBhatArgh, 네. NP 경도 감소는 그대로입니다. –
부정적인 가장자리 제거가 문제의 하위 집합이므로 np-hard 부분에 동의하므로 문제는 최소한 어렵습니다. +1 –