0-1 선형 프로그래밍 : 최적 공식 계산


14

고려 차원 공간 및하자 형태의 선형 제약 될 여기서 , 및 .n{0,1}nca1x1+a2x2+a3x3+ ... +an1xn1+anxnkaiRxi{0,1}kR

분명히 c 는 두 개의 서브 세트 S_cS _ {\ lnot c} 에서 \ {0,1 \} ^ n 을 분리하는 효과가 있습니다. S_c은 모두 만족스러운 점만을 포함 C를 반면 S _ {\ LNOT C}는 모든 위조 및들만 포함 점 C를 .{0,1}nScS¬cSccS¬cc

가정이 |Sc|n . 이제 OS_c 의 부분 집합으로 Sc다음 세 문장이 모두 유지 되도록 하자 .

  1. O 는 정확히 n 점을 포함합니다 .
  2. 이러한 n 점은 선형 적으로 독립적입니다.
  3. 이러한 n 포인트는 c로 표시되는 초평면으로부터 최소 거리에있는 포인트 c입니다. 보다 정확하게, d (x, c)를 하이퍼 플레인 c 에서 d(x,c)x \ in \ {0,1 \} ^ n 의 거리로 둡니다 . 그리고, \ FORALL B \ SUBSETEQ S_c 되도록 B를 만족 1 및 2는 경우가 있음 \ sum_ {B의 X \} D (X, c) \ GEQ \ sum_ {X \에서 O} D (X, c) . 다시 말해, O 는 조건 1과 조건 2를 모두 만족하는 S_c의 모든 부분 집합 중에서 초평면 c 로부터 점의 거리의 합을 최소화하는 것이다 .x{0,1}ncBScBxBd(x,c)xOd(x,c)OScc

질문

  1. 가 주어지면 효율적 으로 계산할 수 있습니까? OcO
  2. 그것을 계산하는 가장 잘 알려진 알고리즘은 무엇입니까?

 

n=3

n = 3 인 예

S¬c={(1,0,1)} , .O={(0,0,1),(1,1,1),(1,0,0)}

 

2012 년 5 월 12 일 업데이트

자극

동기 부여는 를 사용 하면 최적의 제약 조건 를 결정할 수 있어야하며, 이는 의 점으로 정의 된 초평면이어야하기 때문 입니다. OcnO

최적 구속 조건 는 최적 폴리 토프 연결되는 구속 조건 입니다.cP

최적의 폴리 토프 는 정점이 전부이고 초기 폴리 토프 의 정수 정점 만있는 것입니다 (정수 정점은 좌표가 모두 정수인 정점입니다).PP

최적의 제형

프로세스는 0-1 인스턴스 의 각 제약 조건 에 대해 반복 될 수 있으며 , 매번 를 해당 최적 제약 조건 대체 합니다. 결국, 이것은 최적의 폴리 토프를 초래할 것이다 의 . 그런 다음 정점 이 의 초기 폴리 토프 의 정수 정점 이므로 모든 알고리즘 을 사용하여 최적의 정수 솔루션을 계산할 수 있습니다. 효율적 으로 계산할 수 있다는 것은 의미 하지만 다음과 같은 추가 질문은 여전히 ​​유효합니다.cLPIccPIPPILPPP=NP

추가 질문

이 라인을 따라 이전 작업이 있습니까? polytope 주어진 최적의 polytope 감안할 때 이미 컴퓨팅 작업을 조사한 사람이 있습니까? 가장 잘 알려진 알고리즘은 무엇입니까?P PP


서브 세트 합계를 줄이면 정확하게하기 어려운 NP 인 것처럼 보입니다. 감안 이진 정수 서브 세트 합산에 존재 하는지를 테스트하기 위해 S , 우리는 초평면의상의 포인트가 있는지를 테스트 할 수있다 (V)가 1 X 1 + + V 1 X N = S . 근사치에 관심이 있습니까? v1,,vnsv1x1++v1xn=s
Colin McQuillan

@ ColinMcQuillan : 질문은 정확한 해결책을위한 것이지만 근사치에도 관심이 있습니다. 의견을 답변으로 바꾸지 않겠습니까?
Giorgio Camerani

@ColinMcQuillan : 또한 초평면은 평등을 사용하여 정의되고 내 평면은 불평등을 사용하여 정의됩니다. 이것이 경도면에서 차이가 없습니까? 아직 확인하지 않았으므로 그냥 묻습니다.
Giorgio Camerani

나는 에 대한 모든 제한에 대해 약간 혼란 스럽습니다 . 당신의 볼록 선체에 대한 정보를 찾고 있다면 S c를 다음 작업의 결과가 많이 0-1 배낭 폴리 토프에 대한 문헌 연구가있다. 근사 공식의 관점에서 이것을 참조하십시오 . OSc
오스틴 뷰캐넌

답변:


6

서브 세트 합계를 줄이면 정확하게하기 어려운 NP 인 것처럼 보입니다. 를 계산하는 효율적인 절차가 있다고 가정합니다 . 양의 정수 v 1 , , v n 이 이진수로 인코딩 된 경우 s에 합산되는 부분 집합이 있는지 테스트하려고합니다 . s 보다 큰 정수를 버려 전처리합니다 .Ov1,,vnss

최소 조건을 충족시키는 v 1 x 1 + + v 1 x ns 를 만족시키는 작은 세트 의 점 를 얻으려면 프로 시저를 호출하십시오 (전처리는 | S c |n을 보장합니다 ). 이 세트에는 확실히 하이퍼 플레인 v 1 x 1 + + v 1 x n = s의 점이있을 것입니다.Ov1x1++v1xns|Sc|nv1x1++v1xn=s


어쩌면 내가 여기서 뭔가 거시적 내려다 보이는 해요,하지만 난이 질문 : 1) 당신이 말하는 "주어 정수" 당신이로 뜻 어떤 바이너리를 ? 에 속하는 R . 아마도 바이너리로 인코딩 된 것을 의미합니까? 아니면 긍정적으로 말하고 싶습니까? 2) 왜 s 보다 큰 정수를 모두 버리는가 ? 솔루션에 기여할 수 있습니다. 예를 들어 : v 1 = 3 , v 2 = 7 , v 3 = 5 ,v1,...,vnRs 멀리 던져 V (2) 당신이 유일한 해결책 잃을 { V 2 , V 3 } . v1=3,v2=7,v3=5,s=2v2{v2,v3}
Giorgio Camerani

2
나는 콜린 수단이 무엇인지 생각 하면 제약 계수 내가 합리적인 평소의 이진 표현의 숫자입니다 다음 NP-하드로 문제가 나타납니다이. (실수와 NP- 경도의 혼합은 항상 까다 롭습니다.)ai
Jeffε

1
@GiorgioCamerani : 긍정적 인 답변이 필요했습니다.-답변을 업데이트했습니다.
Colin McQuillan

1

IP의 볼록 껍질에 도달하려고하는 것 같습니다. 본질적으로 이것이 컷 알고리즘이 달성하려고하는 것입니다. 비록이 방법들이 매력적으로 호소하기는하지만 실제로는 운이 좋지 않습니다.

유효한 불평등의 발생에 관한 모든 이론이 있습니다. 좋은 출발점은 shrijver의 정수 프로그래밍 이론이 될 것입니다.

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