Могут ли лучшие SAT-решатели вычислять простые числа?


11

Современные SAT-решатели очень хороши в решении многих реальных примеров экземпляров SAT. Тем не менее, мы знаем, как генерировать сложные: например, использовать сокращение от факторинга до SAT и давать числа RSA в качестве входных данных.

Возникает вопрос: что если я возьму простой пример факторинга? Вместо того , чтобы два больших простых чисел на бит, что если я взять простой р на бревне п биты и простой д о н / логе п битах, пусть N = р д , и кодирует Р С Т О Р ( Н ) , как , например SAT. Nn/2plognn/lognN=pqFACTOR(N)Nбыло бы легко подсчитать с помощью методов грубой силы поиска или просеивания, так как один из факторов настолько мал; современный SAT-решатель с некоторым стандартным сокращением от факторинга до SAT также подхватывает эту структуру?

Можно пополнить SAT-решателей фактор , где | р | = Войти п быстро?N=pq|p|=logn

Ответы:


10

Существуют и другие, более простые примеры, которые, как нам известно, доказывают, что текущие алгоритмы не могут решить за субэкспоненциальное время. Эти алгоритмы не способны к подсчету (почти все они являются усовершенствованиями DPLL, которые соответствуют пропозициональной доказательственной системе Резолюции).

К сожалению, такие примеры являются неудовлетворительными. Вопрос о нахождении естественных выполнимых сложных примеров для этих алгоритмов является интересной исследовательской задачей (Рассел Импальяццо упомянул об этом на прошлогоднем семинаре по доказательству сложности в Банфе). Существуют удовлетворительные случаи, когда мы точно знаем, что алгоритмы терпят неудачу, если есть такой экземпляр, но они не очень естественны (они основаны на формулах, выражающих правильность алгоритмов).

Что касается факторинга, если размер чисел небольшой (например, логарифмический, как в вашем случае, т.е. числа даны в унарном виде), то теоретически нет результата, который говорит, что не может быть решен с помощью современных алгоритмов, и на самом деле мы можем написать простое алгоритмы полиномиального времени, которые учитывают эти числа. Таким образом, может ли конкретная программа решения SAT решить их, может зависеть от конкретного алгоритма.


logNN/logN

@Artem, любая сложность доказательства для нижнего предела для Resolution может привести пример, например, принцип дырки в голубях. Можно легко извлечь доказательство Резолюции (опровержения) для неудовлетворительного экземпляра из вычисления этих алгоритмов на этом экземпляре. Натан Сегерлинд (Nathan Segerlind) в 2007 году провел хороший опрос, в котором IIRC рассказывает об этом, помимо прочего. Дайте мне знать, если его там нет, и я найду вам другую ссылку.
Каве

@ Артем, я думаю, что аргумент работает и в том случае, если только одно из чисел является логарифмическим, то есть мы можем решить его за полиномиальное время, просматривая все маленькие числа, чтобы посмотреть, является ли одно из них фактором произведения.
Каве

@Kaven да, именно поэтому я сделал одно из чисел логарифмическим по размеру. Я объясняю это в вопросе. Я просто не хочу ответа, который предполагает унарное представление, как предложено в третьем абзаце. Я посмотрю на Segerlind позже. Еще раз спасибо за комментарий: D.
Артем Казнатчеев

@ Артем, пожалуйста. :) (Я использовал одинарное, потому что предполагал, что оба числа малы, и использовал одинарное, чтобы справиться с тем фактом, что размер должен быть экспоненциальным в них, или же можно просто дополнить их, чтобы сделать их большими.)
Kaveh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.