최고 SAT 솔버가 쉬운 숫자를 고려할 수 있습니까?


11

현대의 SAT 솔버는 많은 실제 SAT 인스턴스 예를 해결하는 데 매우 능숙합니다. 그러나 어려운 것을 생성하는 방법을 알고 있습니다. 예를 들어 , 인수 분해에서 SAT축소를 사용 하고 RSA 번호를 입력으로 제공합니다.

이것은 쉽게 팩토링의 예를 들면 어떨까요? 대신에 두 개의 큰 소수를 복용 I가 소수 걸릴 경우 어떻게 비트, 에 비트에 프라임의 q 비트,하자 및 인코딩 를 SAT 인스턴스로 은 매우 작은 요소 중 하나이기 때문에 무차별 대입 검색 또는 체 방법으로 쉽게 인수 할 수 있습니다. 팩토링에서 SAT 로의 표준 감소가있는 최신 SAT 솔버도이 구조에서 선택됩니까?/2로그/로그=에프영형아르 자형()

SAT- 해결 요인 여기서 빨리?=||=로그

답변:


10

현재 알고리즘이 지수 미만의 시간으로 해결할 수 없다는 것을 훨씬 더 잘 알고있는 다른 사례가 있습니다. 이러한 알고리즘은 계산할 수 없습니다 (거의 모든 알고리즘은 해상도 제안 증명 시스템에 해당하는 DPLL의 개선입니다).

불행히도 그러한 예는 만족할 수없는 사례입니다. 이 알고리즘에 대해 만족스럽고 자연스러운 사례를 찾는 것에 대한 질문은 흥미로운 연구 문제입니다 (Russeell Impagliazzo는 작년에 밴프에서 증명 복잡성 워크숍에서 이것을 언급했습니다). 만족할만한 사례가 있는데, 그러한 사례가있는 경우 알고리즘이 잘못 실패한다는 것을 알고 있지만 그다지 자연스럽지 않습니다 (알고리즘의 건전성을 표현하는 공식을 기반으로 함).

팩토링과 관련하여 숫자의 크기가 작은 경우 (예를 들어 귀하의 경우와 같이 로그, 즉 숫자가 단항으로 표시됨) 이론적으로 현재 알고리즘으로는 해결할 수 없다는 결과가 없으며 실제로 우리는 단순하게 작성할 수 있습니다 이 숫자들을 고려한 다항식 시간 알고리즘. 따라서 특정 SAT 솔버 프로그램이이를 해결할 수 있는지 여부는 특정 알고리즘에 따라 달라질 수 있습니다.


나는 바이너리를 사용하기를 바 랐고 정상적인 인수 분해를 최대한 유지 하기 위해 매우 작은 요소 중 하나 (주문 , 다른 하나는 N / log N )를 갖기를 바랐다. 나에게 너무 많은 것들을 바꾼다). 더 간단한 문제에 대한 정보를 보내 주셔서 감사합니다. 계산에 따라 만족스럽지 못한 어려운 인스턴스에 대한 논문 링크를 제공 할 수 있습니까? 로그/로그
Artem Kaznatcheev

@Artem, 결의안에 대한 증거 복잡성 하한은 예를 들어 비둘기 구멍 원리를 예로들 수 있습니다. 해당 인스턴스에서 이러한 알고리즘을 계산하여 만족할 수없는 인스턴스에 대한 해상도 (반박) 증명을 쉽게 추출 할 수 있습니다. 2007 년부터 Nathan Segerlind는 IIRC가이를 다루고 있다는 멋진 조사가있었습니다. 그것이 없으면 알려주세요 그리고 나는 당신에게 또 다른 참조를 찾을 것입니다.
Kaveh

@Artem, 나는 단지 하나의 숫자가 대수적 인 경우에도 논쟁이 효과가 있다고 생각합니다. 즉, 우리는 모든 작은 숫자를 검토하여 그중 하나가 제품의 요인인지 확인하여 다항식 시간으로 해결할 수 있습니다.
Kaveh

@ Kaven 예, 그래서 숫자의 로그 중 하나를 만든 이유입니다. 나는 질문에서 그것을 설명한다. 나는 당신의 세 번째 단락이 제안한 것처럼 단항 표현을 가정하는 대답을 원하지 않습니다. 나중에 Segerlind를 살펴볼 것입니다. 다시 한 번, 의견 : D에 감사드립니다.
Artem Kaznatcheev

@Artem, 천만에요. :) (나는 두 숫자가 작은 것으로 가정하고 크기가 그 기하 급수적으로해야한다는 사실을 처리하는 단항되는 사용했기 때문에 나는 다른 방법 중 하나가 바로 패드 그들에게 큰 만들 수 단항 사용.)
카베
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.