SAT 오라클이 다항식 시간 알고리즘의 속도를 높이는 데 얼마나 도움이됩니까?


23

오라클 에 대한 액세스 는 모든 항목에 대해 대폭적인 초고속 속도를 제공합니다 (세트가 비어 있지 않다고 가정). 그러나 \ bf P 가이 오라클 액세스로부터 얼마나 많은 이점을 얻을 수 있는지는 분명하지 않습니다 . 물론 \ bf P 의 속도 향상은 다항식 일 수는 없지만 여전히 다항식 일 수 있습니다. 예를 들어, SAT 오라클이없는 것보다 가장 짧은 경로를 더 빨리 찾을 수 있습니까? 하위 모듈 함수 최소화 또는 선형 프로그래밍과 같은 좀 더 복잡한 작업은 어떻습니까? 그들은 (또는 \ bf P의 다른 자연 문제 ) SAT 오라클 로부터 이익을 얻 습니까?N P - PSATNPPP S A T P S A TPPSATPSAT

보다 일반적으로 에서 문제를 선택 하고 Oracle을 사용하면 의 문제 중 어느 것이 속도를 높일 수 있습니까? PNPPP


2
오라클은 얼마나 빠릅니까? 걸리는 경우 시간이 더 문제가 걸리는 경우보다 고속화 할 수 여기서, 시간 토 식의 크기이다. O ( S 5 ) O(s)O(s5)s
피터 쇼어

2
@PeterShor 나는 오라클이 SAT 수식을 쿼리로 수신하면 단일 단계 (일정 시간)로 수식이 만족 스러운지 여부를 나타내는 YES 또는 NO 응답을 반환한다고 가정합니다. 이것은 수식 크기와 무관합니다. 물론 쿼리하려면 쿼리를 작성해야합니다. 이 구성 시간은 수식 크기와 무관하며 쿼리에 필요한 수식에 따라 달라집니다. 그러나 일단 공식이 구성되면 답을받는 것이 모든 공식에 대해 단일 단계로 계산됩니다.
Andras Farago

3
SAT oracle 대신 SAT oracle을 허용 한 경우 문제에 대한 최소 회로를 찾는 데 사용될 수 있습니다. 이것은 거의 최적의 어떤 문제 (단지 상각 것 이유는 당신이 한 번만를 사용하는 경우, 다음의 크기이다에 비용을 상각 줄 것 당신이 적어 공식은 기본적으로 원래의 폴리 시간 알고리즘의 실행입니다 - 그러나 그 단계 후에 당신은 크기의 모든 인스턴스에 대한 최적의 회로를 갖게 됩니다. Σ 2 S A T nΣ2SATΣ2SATn
Joshua Grochow

@JoshuaGrochow 귀하의 의견은 매우 흥미 롭습니다! 자세한 내용과 함께 답변으로 보는 것이 좋습니다.
Andras Farago

답변:


15

사실, 시간에 결정적 튜링 기계의 수용 것입니다 - 시간 환원 SAT (건설은 잊기 시뮬레이션을 통해이며, 아 로라 - 바락 참조), 비 결정적 기계가 결정보다 상당히 빠른 그래서 일반적으로 어떤 시간 하나, 우리는 적어도 SAT 오라클의 속도 향상을 보게 될 것입니다.O ( t log t )tO(tlogt)

보다 구체적으로, AKS 알고리즘의 가장 좋은 변형은 시간 에서 비트 수 의 우선 성을 테스트하는 것처럼 보이므로 우선 성 테스트가 필요합니다 . 그러나 우리가 "오래된 학교"로 가면 프랫은 를 결정하기 위해 비 결정적 TM을 제공했습니다 . 이 기계의 승인은 시간 내에 SAT 인스턴스로 (결정적으로) 줄어들 수 있습니다 .O ( n 6nO ( n 3O(n6polylogn)O ( n 3O(n3polylogn)O(n3polylogn)

3SUM 문제는 또 다른 예일 수 있습니다. 솔루션을 추측하고 이차 시간 내에 솔루션을 확인한 다음 이러한 기계의 수용을 이차 시간 내에 SAT로 줄일 수 있습니다.


7

좀 더 일반적으로, NP-P에서 어떤 문제를 고르고 오라클을 사용할 수 있다면 P의 어떤 문제가 가속화 될 수 있습니까?

이 질문은 한 문제를 다른 문제로 줄이는 데 필요한 표현과 시간에 더 직접적으로 도달합니다 ....

내가 생각하는 주요 대답은 정수 / 선형 프로그래밍 오라클입니다. 해당 문제의 결정 버전은 NP-complete입니다. 특별한 경우이기 때문에 선형 프로그래밍에서 사소한 "감소"가 있습니다. 그러나 선형 프로그래밍 전용 (OLP 만 해당) 오라클은 선형 프로그래밍으로 즉시 해결할 수있는 많은 문제를 가속화합니다. 문제를 LP로 다시 작성하면 선형 시간으로 줄일 수 있습니다. 예를 들어, 최단 경로 및 기타 흐름 문제, 일치.

그러나 나는 그 사람에 대해 많이 생각하지 않은 것을 더 아마, ILP는 어떤 수단에 의해 하나라고 생각하지 않습니다 예를 들어, 최단 경로 TSP 또는 등등을 감소시킨다.


3

오라클 대신 오라클을 허용하는 경우 관련 메모 (추가 의견, 요청에 의한 답변으로 게시) 에서 모든 문제에 대한 최소 회로를 찾는 데 사용될 수 있습니다. (이것은 Karp-Lipton의 증거와 같은 아이디어를 따릅니다). 이것은 모든 문제에 대해 거의 최적의 상각 비용을 줄 것입니다. 이것이 상각되는 이유는 이것을 한 번만 사용 하면 적어 놓은 공식 의 크기 가 본질적으로 원래 폴리 타임 알고리즘의 런타임이지만 그 단계 후에는 모든 사람들에게 최적의 회로를 갖기 때문입니다 크기의 인스턴스 .Σ 2 S A T P Σ 2 S A T nSATΣ2SATPΣ2SATn


그것이 있음을 보여주기 때문에 나는 매우 흥미로운이 답을 찾을 오라클은보다 더 / 유용 강력한 될 수 있습니다 도 실질적인 문제, -oracle ! 물론 우리는 ( 가 두 번째 수준 아래로 붕괴되지 않는다고 가정)를 알고 있었지만 와는 아무런 관련이없는 다소 모호한 이론적 사실처럼 보였습니다 . 그러나 이러한 인식은 틀 렸으며, 그 차이는 실제 문제조차도 필수적 일 수 있습니다 . (우리는 둘 다 없다는 것을 너무의 나쁜 ,도 아니다 오라클을 ...) N P P N P N PN P P H P P N P N P N PNPNPNPPNPNPNPPHPPNPNPNP
안드라스 Farago

1
@AndrasFarago : 재미있는 포인트! 에서 오라클이 더 높은 " 실제 문제"에 흥미롭고 자연스러운 결과가 있는지 궁금합니다 . 필자의 초기 추측은 우리가 몇 가지 정량화 대안을 잘 사용하는 방법을 잘 모른다는 사실과 관련하여 실제로 알지 못한다는 것입니다. cstheory.stackexchange.com/a/11403/129P HPPH
Joshua Grochow

@ JoshuaGrochow PH의 고수준 오라클을 사용하는 문제는 다음과 같습니다. 원래 문제를 올바르게 해결하는 최소 크기 회로를 찾으십시오. 최소 크기 회로 중에서 (지수 적으로 많을 수 있음) 에너지 효율이 최대 인 에너지 효율성을 가진 회로를 찾으십시오. 결과 회로 (아마도 기하 급수적으로 많은 회로) 중에서 최소 깊이를 갖는 회로를 찾으십시오. 또한 다양한 목적 함수 (대부분의 기능)를 번갈아 최소화 / 최대화합니다. 중첩 최소 / 최대 최적화를 위해서는 PH의 수준의 오라클 이 필요 하다고 생각 합니다. k + 2kk+2
Andras Farago
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.