dönüştürmenin en etkili yolu


18

EDIT (22 Ağu 2011):

Soruyu daha da basitleştiriyorum ve soruya bir lütuf katıyorum. Belki de bu daha basit sorunun cevabı kolay olacaktır. Ayrıca orijinal sorunun artık geçerli olmayan tüm kısımlarına da değineceğim. (Orijinal soruyu kısmen cevapladıkları için Stasys Jukna ve Ryan O'Donnell'e teşekkürler!)


Arka fon:

AC verilen 0 derinliği k ve büyüklüğü S devre, başka bir AC vardır 0 derinliği, k boyutu ile aynı işlevi işlem devresi O(Sk) , böylece yeni devre tüm kapılar için fanout = 1 olur. Başka bir deyişle, devre bir ağaç gibi görünür (girişler hariç, girişler birden fazla kapıya geçebileceğinden). Bunu yapmanın bir yolu, tüm kapılar fanout = 1 olana kadar fanout> 1 olan tüm kapıları çoğaltmaktır.

Ama bu AC dönüştürmek için en etkili yoludur 0 AC'ye devreleri 0 fanout 1 ile devreleri? Ryan O'Donnell'in ders notlarının 14. Dersinde aşağıdakileri okudum :

Diyelim ki C, Parite'yi hesaplayan S boyutundaki herhangi bir derinlik-k devresidir. C'nin, seviyelerin VE ve OR geçitlerinin değiştiği, giriş tellerinin 2n değişmez olduğu ve her kapının fan çıkışı 1 olduğu (yani, bir ağaç olduğu), kademeli bir derinlik-k devresine dönüştürülebileceğini göstermek için bir egzersiz ) - ve boyut en fazla artar (2kS)2O(S4) .

Dipnot: Aslında, bu biraz zor bir egzersizdir. Eğer k'yi “sabit” olarak düşünürseniz, sadece bedenini elde etmeniz gerekiyorsa bu daha kolaydır O(Sk).

Bu, S boyutundaki herhangi bir derinlik k AC 0 devresini almanın ve fanout 1, derinlik k ve boyut ( 2 k S ) 2 olan bir AC 0 devresine dönüştürmenin bir yolu olduğu anlamına mı geliyor ? Öyleyse, bu nasıl yapılır ve bu en iyi bilinen yöntem midir? (2kS)2

Orijinal Soru:

Derinliği k ve boyutu S olan bir AC 0 devresi verildiğinde , bunu k derinliği ve kapı fanout 1'in AC 0 devresine dönüştürmenin en iyi bilinen yöntemi (sonuçtaki devrenin devre boyutunu en aza indirmek açısından) nedir? Bunun için bilinen herhangi bir alt sınır var mı?


Daha yeni, daha basit soru:

Bu soru, ortaya çıkan devrenin sabit derinlikte olması konusunda ısrar etmediğim orijinalin gevşemesidir. Yukarıda açıklandığı gibi, k derinliği S, AC boyutu olan bir AC 0 devresini yeni devre tüm kapılar için fanout = 1 olacak şekilde boyutunda bir devreye dönüştürmenin bir yolu vardır. Daha iyi bir yapı var mı?O(Sk)

Derinliği k ve boyutu S olan bir AC 0 devresi verildiğinde , bunu kapı kesicisi 1 ile herhangi bir derinlikte bir devreye dönüştürmenin en iyi bilinen yöntemi (sonuçtaki devrenin devre boyutunu en aza indirmek açısından) nedir?


5
bağlanmış ok Ama bağlanmış ise ( 2 k, S ) 2O(Sk)(2kS)2 için yapacağını rasgele (sadece Parite fonksiyonunun hesaplanması olanlar) devreleri, daha sonra bir simüle olabilir , her boyutu fanin-2 devresi bir fanin- ile O ( S 5 ) boyutunda 2 formül : S fanin-2 kapıları, sınırsız faninin bir kapısını simüle etmek için yeterlidir. Daha sonra formül O derinliğinden birine dönüştürülebilir ( log S )SO(S5)SO(logS)(yanlış bir şekilde Spira'ya atfedilen iyi bilinen bir sonuç). Böylece, devre derinliğinin en çok olduğunu görürüz . Ancak bu gerçek olamayacak kadar hoş: devre derinliği için en iyi bilinen üst sınır sadece O ( S / log S ) . O(logS)O(S/logS)
Stasys

2
Btw O(kS)2) gerçekten de keyfi devreler için geçerlidir , ancak sadece fanin-2'nin kapılarına izin verirsek (bkz. Örneğin Wegener'in kitabında Thm. 4.1); o zaman devreler hala ara sonuçları hatırlayabilir. Fanin-1 ile durum çok farklı: burada devrelerin hafızası yok. Ancak Robin'in sorusu çok ilginç. Göstermek için daha ilginç olacaktır derinliği-3 büyüklüğü devreleri daha küçük boyutta derinliği-3 formüller ile simüle edilebilir S 2 . SS2
Stasys

4
Stas'ın yukarıda söylediklerine güvenirim; Bu notlarda çok dikkatli değildim (üzgünüm). Çok çok kağıtları geçiyor, ancak neredeyse hiç alıntının ile - - onları yazarken Öte yandan, oldukça gerçeği kaynak konusunda sinirli hatırlıyorum kimse keyfi dönüştürebilirsiniz katmanlı olanları içine devreleri boyutu havaya uçurmadan "fazla" . Bu konuda bilinen en iyi sonuca bir işaretçi görmek isterim. AC0
Ryan O'Donnell

2
@Ryan O'Donnell: gerçekten, kolayca O ( k S ) üfleme ile katmanlı bir devre yapabilirsiniz . Her AND geçidinin girdi olarak yalnızca OR geçitlerine sahip olmasını sağlamak için ilişkilendirilebilirlik kullanırız; derinlik değişmeden kalır. Daha sonra kapıları derinliklerine göre düzenleyin ve gerekirse katmanlı bir devre almak için önemsiz fanin-1 VEYA ve AND kapılarını ekleyin; derinlik aynı kalır ve boyut sadece k faktörü ile artar. Ancak Robin'in bir devrenin bir formüle dönüştürülmesini istediğini anladım . O(kS)
Stasys

2
@Ryan O'Donnell: Yanıtınız ve ders notlarınızı çevrimiçi olarak gönderdiğiniz için teşekkür ederiz! Özellikle, Boole fonksiyonlarının analizi hakkındaki ders notlarınız çok yardımcı olmuştur.
Robin Kothari

Yanıtlar:


11

Önceki yorumlarımı özetlemeye çalışacağım.

İlk önce orijinal devrenizin (sabit) derinliğe sahip olduğu gerçeğini görmezden gelelim ; sadece S bedeninde olduğunu varsayın . Let bir her sınırsız fanin devre boyut en küçük numaralı şekilde olması S sınırsız bir fanin formül haline transforme edilebilir F boyutu O ( S A ) . Şimdiye kadar yapabileceğimiz en iyi şeyin A = O ( S /kSASFO(SA). S = O ( n ) boyutundaki herhangi bir (fanin-2) devresinin olup olmadığı bilinmemektedir.A=O(S/log2S)S=O(n) daha küçük bir formülle simüle edilebilir ( n / log n ) .exp(n/logn)

Talebi göstermek için, aşağıdaki formüle dönüşümü bir fanin-2, aşağıdaki formülün içine F ' büyüklüğü M = O ( S 2 A ) . İyi derinliği, bilinen D , her formül F ' ise boyutu, logaritmik yapılabilir D = O ( log M ) = O ( bir oturum S ) . [Bu ilk olarak Khrapchenko 1968 tarafından gösterildi ve daha sonra big-O altındaki sabit D 1.73 log 2 M'ye geliştirildi.FFM=O(S2A)DFD=O(logM)=O(AlogS)D1.73log2MDiğer taraftan fanin-2 devreleri için en iyi bilinen sonuç [Paterson ve Valiant, TCS 2 (3), 397-400] . Bu nedenle, bir simülasyon sahip olan A daha küçük S / log 2 S devreleri için bilinen en iyi Boyutu-derinlik simülasyon iyileştirecektir.Depth=O(Size/logSize)AS/log2S

Bununla birlikte, bu sadece bir "dikkat kelimesi" dir - sorunuza cevap vermez, çünkü orijinal devrenizin sabit derinliği olduğunu varsayarsınız, bu durumda sadece A = k (veya A = k - 1 alabiliriz) tek bir çıkış kapımız varsa). Paterson-Valiant simülasyonunun gücü, derinliği neredeyse tüm boyutta olan keyfi, hatta dengesiz devreler için geçerli olmasıdır! Ancak sınırlı derinlik ayarınızda, k = 3 durumu bile net değildir: S boyutundaki her derinlik-3 devresi, S 2'den çok daha küçük bir derinlik-3 formülüne dönüştürülebilir mi?kA=kA=k1k=3SS2? Sanırım cevap "hayır" olmalı (öğrenciler için ilginç bir alıştırma olabilir). Derinlik-3 formülü sadece CNF'lerin büyük bir OR'sidir. Soru, ortak birçok cümleyi paylaşan ancak başka türlü büyük derinlik-3 formülünü zorlamak için "çok farklı" olan bir CNF OR'si bulmaktır.

Sorun şu ki bir formül (fanout-1 devresi) elde etmek istiyoruz . Yukarıda işaret edildiği gibi, fanout-2'nin kapılarına izin vermek simülasyonu kolaylaştırır: Hoover, Klawe ve Pippenger [JACM 31 (1), 1980] boyutu ve derinliği D olan herhangi bir fanin-2 devresinin eşdeğer bir fanin-2 ve fanout'a sahip olduğunu gösterir. -2 boyutu devre 3 , S - 2 , n ve derinlik 2 D . Fanin sınırlandırılmamış olduğu taktirde, o zaman elde edilen devre boyutu olacaktır O ( S 2 ) ve derinlik O ( D günlük S ) .SD3S2n2DO(S2)O(DlogS)

Sorunuzla ilgili bir şekilde başka bir sonuç daha var. Lozhkin (1981) bir Boole fonksiyonu halinde ispat bir hesaplanabilmektedir bir Cı- 0 formül derinliği k ve boyut S , o , K derinlik fanin-2, aşağıdaki formül ile hesaplanabilir D k - 1 + log 2 S (bu, kitabımdaki Teorem 6.2'den geliyor). Önemsiz bir üst sınırın sadece D k log S (her bir kapıyı bir derinlik log S ağacı ile simüle edersek) olacağını unutmayın .fAC0 kSfDk1+log2SDklogSlogS

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.