Чи можуть найвищі показники SAT-вирішувачів визначати простоту?


11

Сучасні SAT-вирішувачі дуже добре вирішують багато реальних прикладів екземплярів SAT. Однак ми знаємо, як генерувати жорсткі: наприклад, використовувати скорочення від факторингу до SAT і дати цифри RSA як вхідні дані.

Це викликає питання: що робити, якщо я візьму простий приклад факторингу. Замість того, щоб брати два великих праймен/2 біти, що робити, якщо я беру прайм p на журналн біти і простий q на н/журналн шматочки, нехай N=pq і кодування ЖАСТОR(N) як екземпляр SAT. Nбуло б просто зарахувати чисельність методами пошуку грубої сили чи сита, оскільки один із факторів настільки малий; чи сучасний SAT-вирішувач з деяким стандартним зниженням від факторингу до SAT також підхоплює цю структуру?

Може досягти кращого коефіцієнта SAT-рішення N=pq де |p|=журналн швидко?

Відповіді:


10

Є й інші набагато простіші екземпляри, з яких ми, очевидно, знаємо, що поточні алгоритми не можуть вирішити в субекспоненційний час. Ці алгоритми нездатні рахувати (майже всі вони є вдосконаленнями DPLL, які відповідають системі пропозицій доказування Резолюції).

На жаль, такі приклади є незадовільними випадками. Питання про пошук природних задовільних випадків для цих алгоритмів є цікавою дослідницькою проблемою (Russeell Impagliazzo згадав про це під час семінару щодо складності доказів минулого року в Банфі). Є приємні випадки, коли ми, очевидно, знаємо, що алгоритми погано виходять з ладу, якщо є такий екземпляр, але вони не дуже природні (вони засновані на формулах, що виражають надійність алгоритмів).

Що стосується факторингу, якщо розмір чисел невеликий (наприклад, логарифмічний, як у вашому випадку, тобто числа задані одинарними), то теоретично немає результату, який би сказав, що не можна вирішити поточними алгоритмами, і насправді ми можемо написати прості алгоритми багаточленного часу, які множать ці числа. Отож, чи може конкретна програма розв'язувача SAT їх вирішити, може залежати від конкретного алгоритму.


Я сподівався використати бінарний і просто мати один із факторів, щоб бути дуже малим (на замовлення журналN, а інший є N/журналN) щоб максимально зберегти нормальний факторинг (я відчуваю, що перехід на одинарний просто змінює для мене занадто багато речей). Дякуємо за інформацію про простіші проблеми, чи можете ви надати посилання на документ про важкі незадовільні випадки на основі підрахунку?
Артем Казнатчеєв

@Artem, будь-яка доказова складність доказування для роздільної здатності дасть приклад, візьмемо, наприклад, принцип голубої ями. Можна легко отримати доказ роздільної здатності (спростування) для незадовільного екземпляра з обчислення цих алгоритмів у цьому екземплярі. Було приємне опитування Натана Сегерлінда з 2007 року, що IIRC висвітлює це серед іншого. Повідомте мене, якщо його немає, і я знайду вам іншу довідку.
Каве

@Artem, я думаю, що аргумент працює і в тому випадку, якщо просто одне з чисел є логарифмічним, тобто ми можемо вирішити його в поліноміальний час, переходячи всі невеликі числа, щоб побачити, чи є одне з них фактором продукту.
Каве

@Kaven так, саме тому я зробив один з числа логарифмічним за розміром. Я пояснюю це у питанні. Я просто не хочу відповіді, яка передбачає неоднакове представлення, як запропоновано вашим третім абзацом. Я погляну на Сегерлінд пізніше. Ще раз дякую за коментар: D.
Артем Казнатчеєв

@Artem, ласкаво просимо. :) (Я використовував одинарний, тому що я припускав, що обидві цифри невеликі і використовуються як одинакові, щоб мати справу з тим, що розмір повинен бути в них експоненціальний, інакше можна просто вкласти, щоб зробити їх великими.)
Kaveh,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.