2 SAT學習小計

2022-07-24 09:48:06 字數 851 閱讀 2029

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

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

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

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

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

舉例子就是:

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

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

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

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

那麼設\(a\)去的狀態為\(a\),不去的狀態為\(a^\)。

設\(b\)去的狀態為\(b\),不去的狀態為\(b^\)。

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

\(a^->b\)則表示\(a\)不去,則\(b\)必須去。

\(b^->a\)則表示\(b\)不去,則\(a\)必須去。

這樣若有眾多的限制條件,就可以構造出乙個有向圖,那麼原問題就轉化成乙個圖上的問題,於是各種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 表示選第二個點,...