Здесь цель состоит в том, чтобы свести произвольную задачу SAT к 3-SAT за полиномиальное время, используя наименьшее количество предложений и переменных. Мой вопрос мотивирован любопытством. Менее формально я хотел бы знать: «Каково« наиболее естественное »сокращение с SAT до 3-SAT?»
Теперь сокращение, которое я всегда видел в учебниках, выглядит примерно так:
Сначала возьмите свой экземпляр SAT и примените теорему Кука-Левина, чтобы свести его к схеме SAT.
Затем вы заканчиваете работу стандартным сокращением схемы SAT до 3-SAT, заменяя вентили пунктами.
Несмотря на то, что это работает, полученные 3-SAT-предложения в итоге выглядят почти не похожими на SAT-предложения, с которыми вы начинали, из-за первоначального применения теоремы Кука-Левина.
Может кто-нибудь увидеть, как сделать сокращение более непосредственно, пропуская шаг промежуточного контура и переходя непосредственно к 3-SAT? Я бы даже был рад прямому сокращению в особом случае n-SAT.
(Я бы предположил, что есть некоторые компромиссы между временем вычислений и размером выходных данных. Ясно, что вырожденное - хотя, к счастью, недопустимое, если P = NP - решение будет состоять в том, чтобы просто решить проблему SAT, а затем создать тривиальную задачу 3). -SAT экземпляр ...)
РЕДАКТИРОВАТЬ: Исходя из ответа храповика, теперь ясно, что сокращение до n-SAT несколько тривиально (и что я действительно должен был подумать, что один из них немного более тщательно, прежде чем публиковать). Я оставляю этот вопрос открытым, если кто-то знает ответ на более общую ситуацию, иначе я просто приму ответ храповика.