Выравнивание может быть достигнуто следующим образом (снижение с 2SAT до HornSAT). Таким образом, также может быть сведен к формуле Хорна таким образом. Спасибо Джошуа Горхову за указание на это сокращение.(p∨q)
Входные данные: формула 2-SAT с предложениями C 1 , ..., C k для переменных x 1 , ..., x n .ϕC1Ckx1xn
Построим формулу Рога следующим образом:Q
Будет 4 ( n выбирать 2 ) + 2 n + 1 новых переменных, по одной на каждое возможное предложение
2-cnf для переменных x, содержащее не более 2 литералов ( не только предложения C i в ϕ ) - это в том числе единичных статей и пустой п .. новый переменный , соответствующая п D будет обозначать г D .×n2+2n+1xCiϕDzD
4 ( n выберите 2 ) происходит из того факта, что каждая пара ( x i , x j )
порождает четыре предложения 2-cnf. 2 п исходит из того , что каждый х я могу создать 2 единицы положения. И, наконец, «один» происходит из пустого предложения. Таким образом, общее количество возможных предложений 2-cnf равно =
4 × ( n выберите 2 ) + 2 n + 1 .×n2(xi, xj)2nxi=×n2+2n+1
Если 2-cnf-предложение следует из двух других 2-cnf-предложений D и E на одном шаге разрешения, то мы добавляем предложение Horn
( z D ∧ z E → z F )
к Q ... Снова, мы делаем это для всех возможных 2-CNF положений - все 4 × ( п
выбрать 2 ) + 2 п + 1 из них - не только в с я .FDE(zD∧zE→zF)Q×n2+2n+1Ci
Затем мы добавим блок пункты к Q , для каждого п С я
появляющимся во входной ф ... Наконец, мы добавим пункт блока ( ¬ г е т р т у ) на Q .zCiQCiϕ(¬zempty)Q
Формула Рога теперь завершена. Заметим, что переменные, используемые в Q , полностью отличаются от переменных, используемых в ϕ .QQϕ