Kann eine Quarter-Subset-Mitgliedschaft platzsparend entschieden werden?


8

Betrachten Sie das folgende Entscheidungsproblem. Sei q=i=0n/4(ni) und sei (C0n,C1n,,Cq1n) geeignet Aufzählung der Teilmengen von {0,1,,n1} mit höchstens n/4 Elementen.

Quarter-Subset Membership
Input: Tupel von nichtnegativen ganzen Zahlen (i,j,n) binär dargestellt
Frage: ist iCjn ?

Kann durch Auswahl einer "netten" Aufzählung (Cin) die Quarter-Subset-Mitgliedschaft von einer deterministischen Turing-Maschine unter Verwendung von nicht mehr als (0.99)n Bits Arbeitsbereich für alle ausreichend großen n ?


Diskussion

Sei logx=log2x . Es ist einfach, alle Teilmengen von höchstens k aus n ausgewählten Elementen aufzulisten,n indem k Indizes der Größe logn Bits verfolgt werden. (Siehe auch die Diskussion in Knuths TAOCP-Abschnitt 7.2.1.3.) Wenn k konstant ist, sind dies nur O(logn) Bits. Wenn wir jedoch k=cn für eine Konstante c1/4 , verwenden solche Aufzählungsschemata den Ω(nlogn) -Raum. Man kann auch einen n Bit-Kennlinienvektor zusammen mit einer Überprüfung der Anzahl der gesetzten Bits verwenden. Ich interessiere mich für Schemata, die n Bits schlagen .

Eine eng verwandte Frage lautet dann:

Für ein positives , das die Ungleichung erfüllt , gibt es einen Code, der Teilmengen von höchstens Elementen darstellt, die aus , die Bits für eine Konstante und sein können effizient dekodiert?c log ( e ( 1 + c ) / c ) < 1 c n n d n d < 1cclog(e(1+c)/c)<1cnndnd<1

Man beachte , dass für ausreichend großen , und da wenn dann informationstheoretisch Daraus folgt, dass mit einem perfekten Code erreicht werden würde. (Dies ist weniger als wenn .) Ich suche daher nach einem einigermaßen sauberen Code, der ohne großen Speicherplatz kann.k i = 0 ( nnlog ( n+k-1

i=0k(ni)((nk))=(n+k1k),
k=cndclog(e
log(n+k1k)log[(e(n+k1)/k)k],
k=cn1 0 < c 0,2728dclog(e(1+c)/c)10<c0.2728

Um einen perfekten Code zu erhalten, könnte man eine Aufzählung der Teilmengen auswählen, einen Index in aufsteigender Reihenfolge durch die Aufzählung führen und dann jede Kombination durch Dekodieren des Index erhalten. Das Dekodieren eines solchen Codes, wenn anscheinend mindestens Bit Platz für die von mir betrachteten Aufzählungen erfordert , beispielsweise über charakteristische Vektoren, die durch Erhöhen des Hamming-Gewichts und dann lexikographisch geordnet sind oder über Gray-Codes.nkΩ(n/logn)n

Es könnte einen Weg geben, dies mit Raum zu tun , aber ich denke, dass eher machbar ist. o(n)(1ε)n Beachten Sie, dass seit die informationstheoretische Untergrenze bereits Bits beträgt. Es geht also wirklich darum, ob kann für einige . Ein Code, der nett genug (aber nicht unbedingt perfekt) ist, scheint zu genügen, um meine Frage zu bejahen. Es kann auch vorkommen, dass die Quarter-Subset-Mitgliedschaft effizient entschieden werden kann, ohne explizit einen Code zu erstellen. Andererseits existiert eine solche Aufzählung möglicherweise nicht: zum Beispiel jede Folge von Aufzählungen für Werte vonΩ(n)(1-ε)nε>0n(1-ε)nlog(ncn)cnlog(1/c)Ω(n)(1ε)nε>0n kann von Natur aus ungleichmäßig sein, oder es kann der Fall sein, dass eine Bit-Bindung unendlich oft verletzt werden muss.(1ε)n


Ihre Grenzen sind verschwenderisch. Wenn , dann ist und . Eine etwas sorgfältigere Berechnung (siehe z. B. mathoverflow.net/q/55585 ) zeigt, dass tatsächlich , daher ist das Protokoll erneut . Natürlich ist für alle . log ( n0<c<1/2log(ncn)=H(c)n12logn+O(1)i c n ( nlog(icn(ni))log(n(ncn))H(c)n+12logn+O(1)H(c)n-1icn(ni)=O((ncn))H(c)<1c<1/H(c)n12logn+O(1)H(c)<1c<1/2
Emil Jeřábek

@ EmilJeřábek guter Punkt, so dass die Frage auf die allgemeinere Half-Subset-Mitgliedschaft ausgedehnt und ein Großteil der Diskussion vereinfacht werden kann.
András Salamon

Antworten:


3

Ich gehe aus der Diskussion davon aus, dass Sie nicht wirklich an dem beanspruchten Arbeitsbereich interessiert sind , sondern am Gesamtraum einschließlich der Größe der Eingabe. (Andernfalls kann das triviale Bit-Codierungsschema im logarithmischen Raum decodiert werden.)n

Sei eine ausreichend große Konstante und betrachte das folgende Codierungsschema für . Teilen Sie in Blöcke , mit der Größe und setzen Sie . Die Codierung von besteht aus der Folge der folgenden Zahlen (binär geschrieben) für jedes :X { 0 , , n - 1 }kX{0,,n1}k B u u < k n / k X u ={0,,n1}kBuu<kn/k X u < kXu=XBuXu<k

Für die Größe der Codierung wird . Die Zahlen nehmen Bits, was vernachlässigbar ist. Wir haben für mindestens der , in welchem ​​Fall die Codierung von ungefähr Bits ; Die verbleibenden höchstens Bits. Die Summe beträgt höchstens Bits.s u O.|X|n/4sus un / ( 3 k ) k / 4 uO(klog(n/k))sun/(3k)k/4u H ( 1 / 3 ) nXuXuH(1/3)nk0.92n/kXu0 . 98 nn/k0.98n

Das Dekodieren läuft darauf hinaus, zu entscheiden, in welchen Block gehe, und dann herauszufinden ; Letzteres kann leicht im Raum , und man kann den Raum, der durch Codierungen der verbleibenden Blöcke belegt wird, wiederverwenden (solange der Gesamtraum mindestens beträgt, was für Ordnung ist groß genug).X u n / k + O ( logiXu2 n / k kn/k+O(logn)2n/kk

Eine bessere Analyse zeigt, dass dieses Schema im Wesentlichen Raum : sei . Da , beträgt der Durchschnitt von über höchstens . Die Codierung von dauert ungefähr Bits. Nun ist die Entropiefunktion konkav, daher ist der Durchschnitt von über höchstens und der Gesamtraum ist . Dies ist bis zum optimal .p u = s u / ( n / k ) | X | / N 1 / 4 pH(1/4)n0.812npu=su/(n/k)|X|/n1/4 u < k 1 / 4 X u H ( p u ) n / k H / 4 ) H ( 1 / 4 ) npuu<k1/4XuH(pu)n/ku < k H ( 1H(pu)u<kH(1/4)H(1/4)n+O(logn)O(logn)

An ist natürlich nichts Besonderes . Das gleiche Argument zeigt, dass es für jede Konstante ein Codierungsschema für große Teilmengen von , das annimmt Bits und kann direkt dekodiert werden. Bis zu einem gewissen Grad kann es sogar für Teilmengen mit -Größe verwendet werden, wobei , indem eine nicht konstante Anzahl von Blöcken ( oder so), aber dann wird der Overhead von stärker und überholt den Hauptterm, wenn unter ungefähr fällt .0 < c < 1 / 2 C n { 0 , ... , N - 1 } H ( c )1/40<c<1/2cn{0,,n1}s ( n ) s ( n ) « n k 2 / H (H(c)n+O(logn)s(n)s(n)nk2/H(s(n)/n)s ( n ) O(klog(n/k))s(n)n

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.