선형 프로그래밍 (LP)은 P에 있고 정수 프로그래밍 (IP)은 NP- 하드입니다. 그러나 컴퓨터는 유한 한 정밀도로만 숫자를 조작 할 수 있기 때문에 실제로 컴퓨터는 선형 프로그래밍에 정수를 사용하고 있습니다. 이 때문에 LP와 IP가 동일한 복잡성 클래스에 있지 않아야합니까?
선형 프로그래밍 (LP)은 P에 있고 정수 프로그래밍 (IP)은 NP- 하드입니다. 그러나 컴퓨터는 유한 한 정밀도로만 숫자를 조작 할 수 있기 때문에 실제로 컴퓨터는 선형 프로그래밍에 정수를 사용하고 있습니다. 이 때문에 LP와 IP가 동일한 복잡성 클래스에 있지 않아야합니까?
답변:
50 명의 담당자가 필요하기 때문에 의견을 말할 수 없지만 라파엘의 의견에 대해 몇 가지 오해가 퍼져있다.
이것은 절대적으로 거짓입니다. 요점은 실제로 볼록 함입니다. 일부 기술적 제약 조건을 제한하고, 볼록 세트에 대한 볼록 함수를 최소화 (또는 오목 함수를 최대화)하는 것은 다항식 시간 수렴의 의미에서 본질적으로 사소한 것입니다.
느슨하게 말해서, "수학적"최적화 문제의 볼록성과 "컴퓨터 과학"최적화에서 욕심 많은 알고리즘의 실행 가능성 사이에 대응이 있다고 말할 수 있습니다. 이는 로컬 검색 방법을 모두 사용할 수 있다는 의미입니다. 욕심 많은 알고리즘을 역 추적 할 필요가없고 볼록 최적화 문제에서 하강 방향을 후회할 필요가 없습니다. 목표 함수에 대한 로컬 개선은 항상 세계 최적에 가깝습니다.
볼록하지 않은 경우에는 그렇지 않습니다. 여기에는 전역 최소값이있을 수 있지만 NP 문제에 적용될 때 욕심 알고리즘이하는 것과 같은 방식으로 로컬 하강 알고리즘이 항상 그려지는 여러 개의 로컬 최소값이 있습니다. 때때로 그들은 대부분의 경우에 맞지 않는 진정한 최적을 찾습니다.
짧은 대답 : 정수를 사용하여 SAT 에 대한 부울을 시뮬레이션 할 수 있기 때문에 자신을 제한하지 않으면 실제로 SAT를 시뮬레이션 할 수 없습니다. 가능한 대답을 얻을 수 있지만 시뮬레이션하려는 SAT 인스턴스와 관련하여 더 이상 의미가 없습니다.
이것에 대한 답은 그들이 같은 복잡성 클래스에 속하지 않는다는 것입니다. 라는 증거는 아무도 없습니다 . 문제가 왜 다른지에 대한 더 깊은 이유를 이해한다면 복잡성 클래스가 왜 다른지 이해해야합니다.
선형 프로그래밍이 "효율적인"이유는 솔루션 공간이 단일 볼록 다면체로 표현 될 수 있기 때문입니다. 해당 다면체에서 "가장 높은"정점을 찾으려고하면 ( "높이"를 최대화 할 수량에 맞추기 위해 선형 프로그래밍 문제에 선형 변환을 적용 할 수 있음) 모든 정점에서 모서리를 따라 이동할 수 있습니다. "내리막"을 가지 않아도 가장 높은 지점. 정수 프로그래밍을 "고난"하게 만드는 이유는 지속적인 솔루션 공간이 없지만 많은 분리 된 솔루션 공간이 있으며 최적의 솔루션을 향해 점진적으로 작업 할 수있는 방법이 없다는 것입니다.
다른 답변은 정확하지만 약간 기술적입니다. 행렬을 스윕 (제거)하고 해결책을 찾고 있다고 가정하면 행렬은 다음과 같습니다.
column x1 x2 x3 x4 x5 x6 | solution
-----------------------------------
1 1 1 | 3
1 | 1
1 1 | 2
2 1 1 | 1
Lineair 프로그래밍에서 이제 비 피벗 열 (x5, x6)을 0으로 설정하고 x4를 0.5로 설정하고 사소한 솔루션을 찾을 수 있습니다. 정수 프로그래밍에서는 피벗이 아닌 열을 0으로 설정할 수 없습니다. 해결책을 찾기가 더 어렵습니다 (NP-hard). 또한 해는 에 있으므로 유한 / 무한 정밀도와 직접 관련이 없습니다.