2012-07-06 22 views
6

bir Boole formüle sahiptir: (x_ {1} veya x_ {2}) ve (x_ {3} ya da x_ {4}) ve ..... ve (x_ {2R-1 } veya x_ {2r}), burada x_ {i} kümesine aittir: {p_ {1}, p_ {2}, ... p_ {99}, ~ p_ {1}, ~ p_ { 2}, ... ~ p_ {99}} ve verilen formülün x_ {i} bazı değerlerinin doğru olup olmadığını belirlemeliyim.Boole Satisfiability - algoritması

Genel olarak hesaplama açısından zor olduğunu biliyorum. Ama bu özel problemi yapabileceğim hızlı bir yol var mı? Şimdiye kadar, geri dönüşümü denedim - bu, özyinelemede, mümkün olan her değişken için mümkün olan her değeri (0 veya 1 çok fazla değil) ve henüz değere sahip olmayan her değişken, önemsizdir. Yinelemeye girmeden önce, (her değişkenin bir değeri olmadığında bile) formülü kontrol ediyorum ve eğer yanlışsa, daha derine inmem. Ama çok yavaş. Herhangi bir fikir? Yardım için çok minnettar olurum.

+2

ilginç bir sorun gibi geliyor, ama belki [Math.StackExchange] (http://math.stackexchange.com/) daha algoritma gelişimine yardımcı olabilir. Yine de uygulamanıza yardımcı olacağız! –

cevap

5

yalnızca iki başına değişkenleri VEYA maddesini varsa, o zaman bir doğrusal zamanlı çözümü vardır 2-SAT var.