2 SAT學習小計

2021-10-09 03:24:28 字數 966 閱讀 3795

2-sat是乙個非常簡單的東東,但是網上很多的資料都把這個玩意寫得無比複雜。

可能這就是詳細把,由於我太菜了,只會記結論。

sat 是適定性(satisfiability)問題的簡稱。一般形式為 k - 適定性問題,簡稱 k-sat。而當 k>2 時該問題為 np 完全的。所以我們只研究 k=2 的情況。

所以說了怎麼多東東,2-sat到底是什麼鬼。

其實就是給你很多的兩兩限制條件,然後要求出某種方案使得能夠滿足這所有的限制條件。

舉例子就是:

當然,這個例子極其智障。根本看不懂。

比如說,有兩個人要派乙個人去取錢,可以同時去,但是必須有乙個人去。

那麼我們就可以看到有3種情況:

那麼上面這3中情況中,能產生限制條件的是第二種情況。

那麼設a

aa去的狀態為a

aa,不去的狀態為a−1

a^a−

1。設b

bb去的狀態為b

bb,不去的狀態為b−1

b^b−

1。那麼可以用一條有向邊來描述這個限制條件:

a −1

−>

ba^->b

a−1−

>

b則表示a

aa不去,則b

bb必須去。

b −1

−>

ab^->a

b−1−

>

a則表示b

bb不去,則a

aa必須去。

這樣若有眾多的限制條件,就可以構造出乙個有向圖,那麼原問題就轉化成乙個圖上的問題,於是各種tarjan之類的演算法就可以往上面套了。

聽著還是挺簡單的,但分析還是有困難的。

那就看例題!

【wc2016模擬】廢水**

學習資料:

2 SAT學習小計

2 sat是乙個非常簡單的東東,但是網上很多的資料都把這個玩意寫得無比複雜。可能這就是詳細把,由於我太菜了,只會記結論。sat 是適定性 satisfiability 問題的簡稱。一般形式為 k 適定性問題,簡稱 k sat。而當 k 2 時該問題為 np 完全的。所以我們只研究 k 2 的情況。所...

模板 2 SAT 問題 2 SAT

2 sat 問題 模板 有n個布林變數 x 1 x n 另有m個需要滿足的條件,每個條件的形式都是 x i 為true false或 x j 為true false 比如 x 1 為真或 x 3 為假 x 7 為假或 x 2 為假 2 sat 問題的目標是給每個變數賦值使得所有條件得到滿足。輸入格式...

2 SAT學習筆記

由對稱性解2 sat問題 2 sat解法 上面兩篇 很清楚的介紹了什麼是2 sat以及一些原理演算法 2 sat問題是圖論中乙個比較有意思的問題,重點是建圖,對於邊的意思,就是如果你選了i,就必須選j。2 sat問題有個很明顯的地方就是對於每個i,i包含兩個點,i表示選第乙個點,i 表示選第二個點,...