The Algorithm Design Manual Second Edition



Download 5,51 Mb.
Pdf ko'rish
bet258/488
Sana31.12.2021
Hajmi5,51 Mb.
#273936
1   ...   254   255   256   257   258   259   260   261   ...   488
Bog'liq
2008 Book TheAlgorithmDesignManual

9.4.1

3-Satisfiability

Satisfiability’s role as the first NP-complete problem implies that the problem is

hard to solve in the worst case. But certain special-case instances of the problem

are not necessarily so tough. Suppose that each clause contains exactly one literal.

We must appropriately set that literal to satisfy such a clause. We can repeat this

argument for every clause in the problem instance. Thus only when we have two

clauses that directly contradict each other, such as =

{{v

1

}, {v

1

}}, will the set

not be satisfiable.

Since clause sets with only one literal per clause are easy to satisfy, we are

interested in slightly larger classes. How many literals per clause do you need to

turn the problem from polynomial to hard? This transition occurs when each clause

contains three literals, i.e.



Problem: 3-Satisfiability (3-SAT)

Input: A collection of clauses where each clause contains exactly 3 literals, over

a set of Boolean variables .



Output: Is there a truth assignment to such that each clause is satisfied?

Since this is a restricted case of satisfiability, the hardness of 3-SAT implies

that satisfiability is hard. The converse isn’t true, since the hardness of general

satisfiability might depend upon having long clauses. We can show the hardness

lights) has directly or indirectly tried to come up with a fast algorithm to test



330

9 .


I N T R A C T A B L E P R O B L E M S A N D A P P R O X I M A T I O N A L G O R I T H M S

of 3-SAT using a reduction that translates every instance of satisfiability into an

instance of 3-SAT without changing whether it is satisfiable.

This reduction transforms each clause independently based on its length, by

adding new clauses and Boolean variables along the way. Suppose clause C

i

con-


tained literals:

• k = 1, meaning that C

i

=

{z

1

– We create two new variables v

1

, v

2

and four


new 3-literal clauses:

{v

1

, v

2

, z

1

}{v

1

, v

2

, z

1

}{v

1

, v

2

, z

1

}{v

1

, v

2

, z

1

}. Note

that the only way that all four of these clauses can be simultaneously satisfied

is if z

1

= true, which also means the original C



i

will be satisfied.



• k = 2, meaning that C

i

=

{z

1

, z

2

– We create one new variable v

1

and two


new clauses:

{v

1

, z

1

, z

2

}{v

1

, z

1

, z

2

}. Again, the only way to satisfy both of

these clauses is to have at least one of z

1

and z



2

be true, thus satisfying c



i

.

• k = 3, meaning that C



i

=

{z

1

, z

2

, z

3

– We copy C

i

into the 3-SAT instance

unchanged:

{z

1

, z

2

, z

3

}.



• k > 3, meaning that C

i

=

{z

1

, z

2

, ..., z



n

– We create n − 3 new variables and

n

2 new clauses in a chain, where for 2 ≤ j ≤ n−3, C

i,j

=

{v



i,j

1

, z

j+1

, v

i,j

},

C

i,1

=

{z

1

, z

2

, v



i,1

}, and C

i,n

2

=

{v



i,n

3

, z

n

1

, z

n

}.

The most complicated case here is that of the large clauses. If none of the

original literals in C

i

are true, then there are not enough new variables to be able

to satisfy all of the new subclauses. You can satisfy C

i,1

by setting v



i,1

= false, but

this forces v

i,2

= false, and so on until finally C



i,n

2

cannot be satisfied. However,

if any single literal z

i

= true, then we have n



− 3 free variables and n − 3 remaining

3-clauses, so we can satisfy each of them.

This transform takes O(n) time if there were clauses and total literals

in the SAT instance. Since any SAT solution also satisfies the 3-SAT instance and

any 3-SAT solution describes how to set the variables giving a SAT solution, the

transformed problem is equivalent to the original.

Note that a slight modification to this construction would serve to prove that

4-SAT, 5-SAT, or any (k



≥ 3)-SAT is also NP-complete. However, this construction

breaks down if we try to use it for 2-SAT, since there is no way to stuff anything

into the chain of clauses. It turns out that a depth-first search on an appropriate

graph can be used to give a linear-time algorithm for 2-SAT, as discussed in Section

14.10

(page


472

).


Download 5,51 Mb.

Do'stlaringiz bilan baham:
1   ...   254   255   256   257   258   259   260   261   ...   488




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish