Bir boole devresini bir boole formülüne dönüştürmenin karmaşıklığı


10

Bir boolean devre Verilen üzerinde (sadece DEĞİL kullanan, AND ve OR kapıları) değişkenler, devre tarafından temsil edilen boolean formülü ayıklamak için en etkili yolu nedir? Bu sorun için bir çoklu zaman algoritması var mı?nCn


Devrenin ne tür kapıları var?
Lev Reyzin

1
Fan girişi veya fan çıkışı ile ilgili hangi kısıtlamalar var? Sadece tek bir fan çıkışı varsa, o zaman önemsizdir: devrenin kendisi aslında formül için bir AST'dir.
Mark Reitblatt

1
Genel olarak sınırlı fan girişi. Ama kesin olarak söylemek gerekirse, AND ve OR'de fan girişi 2 diyelim. Literatürdeki birçok referansta, bir devre ve formüllerin birbirinin yerine kullanıldığını görüyorum, ancak bir devreyi formüle dönüştürmenin kolay olup olmadığını bilmek istiyorum sorun.
Nikhil

6
Genel olarak, herhangi bir eşdeğer formülün küçük bir devre için bile üstel boyutta olmasını beklersiniz.
Kristoffer Arnsfelt Hansen

4
Polinom boyutlu formüller devrelerine eşdeğerdir . Çok boyutlu devrelerin ( ) eşdeğer olduğu bilinmemektedir . Formüller ve devreler genellikle devrenin derinliği sınırlandığında birbirinin yerine kullanılır. NC1 N C 1P/polyNC1
Kaveh

Yanıtlar:


8

Sorunuzu doğru bir şekilde anlarsam, CIRCUIT-SAT'dan SAT'a standart azaltmayı kullanabileceğinizi söyleyebilirim: Her kapıyı yeni bir değişken olarak temsil edin ve ardından tüm devreyi CNF formunda temsil edin, her bir cümle ; burada yeni değişkendir ve giriş formülü , diğer kapıların girişleri temsil eden değişkenleri kullanarak tarafından verilir . Bu basit bir geçişle yapılabilir (doğrusal bir zamanda, açıkça optimaldir).v ϕ(vϕ)vϕ

Örneğin, hade eğer üç giriş, , ve , AND bağlayan kapılar ve sıra sıra ve , ve eğer gates- temsil etmek üç değişkeni sokabilmekteydi onların çıkışlarını birbirine bağlayan bir OR kapısı , ve , sırasıyla, ve aşağıdaki formüle yenidenÇıktı değişkeninin açıkça dahil edildiğine dikkat edin.x 2 x 3 x 1 x 2 x 2 x 3 v 1 v 2 v 3 ( v 1( x 1x 2 ) ) ( v 2( x 2x 3 ) ) ( v 3( v 1v 2 ) ) v 3x1x2x3x1x2x2x3v1v2v3

(v1(x1x2))(v2(x2x3))(v3(v1v2))v3.

Algoritmalara Giriş Cormen ve ark. NP-Tamlık bölümünde bunu ayrıntılı olarak açıklar.


CIRCUIT-SAT fan çıkışı 1 kapılarını kullanmıyor mu?
Mark Reitblatt

1
Elbette - ama görebildiğim kadarıyla, bu azaltmayı / dönüşümü etkilemez. Her çıktıyı yeni bir değişken olarak temsil etme fikri, her çıktıyı bir giriş olarak birkaç kez yeniden kullanabileceğiniz anlamına gelir (keyfi olarak büyük fan çıkışına karşılık gelir). Başka bir deyişle, bu cevapta verilen çözüm keyfi devreler için çalışmalıdır.
Magnus Lie Hetland

3
Tahminimce bu istenen şey değil . Bence istenen şey, devre ile aynı değişkenler kümesi üzerinde bir formül yapmaktır.
Kristoffer Arnsfelt Hansen

1
Hm. Evet, muhtemelen haklısın. Yeni değişkenlerin tanıtılması CIRCUIT-SAT - CNF-SAT durumunda mantıklıdır, ancak daha genel bir ortamda değil - katılıyorum.
Magnus Lie Hetland

1
Cx1,x2,,xnϕ(x1,x2,,xn)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.