С Вашей оценкой размера согласен, но он не имеет значения, так как в задаче сумма подмножества все биты всех элементов этого множества никак не коррелируют друг с другом, являясь по сути случайными величинами с равномерным распределением, так как зависят лишь от наличия каждой переменной в каждом дизъюнкте и наличия у этой переменной знака отрицания. Поэтому применение модуля
не должно вызвать появления большого количества лишних решений в среднем по всему массиву булевых функций от
переменных.
Покажу эту мысль на примере из практики.
Возьмём задачу дискретного логарифма по простому модулю.
. В прошлом веке она использовалась в криптографии, к тому же лет сорок уже болтается между
и
классами, в общем пользуется популярностью, к тому же задача сильно нелинейна, что приводит к большому размеру КНФ.
Шесть лет назад была кандидатская на тему "КНФ представления для задач факторизации, дискретного логарифма...", там можно посмотреть оценки количества дизъюнктов. Правда от вспомогательных переменных для простоты там, если правильно помню, не избавлялись, но такая чистка количество дизъюнктов лишь увеличивает. Так вот дизъюнктов там очень много. Значит из такой КНФ получится задача суммы подмножества с размером элементов множества сильно больше размера модуля. Это задача subset sum с одной стороны.
С другой стороны используем следующий алгоритм. Берём написанную выше задачу дискретного логарифма по простому модулю. Сформируем множество из
, взятому по степеням двойки. В полученном множестве путём прибавления модуля к отдельным элементам добьёмся взаимной простоты всех элементов. Найдём остаток от
по каждому элементу множества и применим китайскую теорему об остатках. Если один из элементов множества взяли пропорциональным
, где
- количество бит в модуле
, то путём сокращения модуля, получившегося после теоремы об остатках, получаем задачу дискретного логарифма в форме суммы подмножества по модулю
. Здесь старый и новый модуль соразмерны, количество лишних решений будет минимально, если вообще будет.
Осталось сравнить размер двух результатов.