Dies ist eine theoretische Frage, also erwarten Sie, dass viele Details in der Praxis oder sogar in der Theorie nicht berechenbar sind.Was ist die maximal theoretisch mögliche Kompressionsrate?
Nehmen wir an, ich habe eine Zeichenfolge s
, die ich komprimieren möchte. Das Ergebnis sollte eine selbstextrahierende Binärdatei sein (kann x86-Assembler sein, aber es kann auch eine andere hypothetische Turing-vollständige Low-Level-Sprache sein), die s
ausgibt.
Jetzt können wir leicht alle möglichen Binaries und Programme durchlaufen, sortiert nach Größe. Lassen Sie B_s
die Unterliste dieser Binaries sein, die s
ausgeben (natürlich ist B_s
uncomputable).
Da jeder Satz positiver Ganzzahlen ein Minimum haben muss, muss in B_s
ein kleinstes Programm b_min_s
vorliegen.
Für welche Sprachen (d. H. Satz von Zeichenfolgen) wissen wir etwas über die Größe von b_min_s
? Vielleicht nur eine Schätzung. (Ich kann einige trivialen Beispiele konstruieren, wo ich kann immer noch B_s
berechnen und auch b_min_s
, aber ich bin interessiert in interessanten Sprachen.)
Ich erinnere mich an einige sehr clevere Programme aus alten Zeiten, wie zum Beispiel Bootstrap Loader, die sich selbst mehrfach überschrieben haben. Wahrscheinlich könnte das Programm, um eine minimale Gesamtgröße des selbstextrahierenden Programms zu erreichen, irgendwie seinen eigenen Text verwenden - z. B. als eine Quelle von Konstanten. –