<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Perfekter_Code</id>
	<title>Perfekter Code - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Perfekter_Code"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Perfekter_Code&amp;action=history"/>
	<updated>2026-05-19T13:40:46Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Perfekter_Code&amp;diff=585682&amp;oldid=prev</id>
		<title>imported&gt;Ulricus Angelus: /* growthexperiments-addlink-summary-summary:1|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Perfekter_Code&amp;diff=585682&amp;oldid=prev"/>
		<updated>2025-05-31T12:26:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;perfekter Code&amp;#039;&amp;#039;&amp;#039;, oder auch &amp;#039;&amp;#039;&amp;#039;dicht gepackter Code&amp;#039;&amp;#039;&amp;#039;, bezeichnet in der [[Codierungstheorie]] einen [[Blockcode]] &amp;lt;math&amp;gt;\mathcal C \subset \Sigma^n&amp;lt;/math&amp;gt;, in dem jedes Wort &amp;lt;math&amp;gt;w \in \Sigma^n&amp;lt;/math&amp;gt; nur zu genau einem [[Code]]wort &amp;lt;math&amp;gt;c \in \mathcal C&amp;lt;/math&amp;gt; (und nicht zu mehreren) einen geringsten [[Hamming-Abstand]] &amp;lt;math&amp;gt;d_w&amp;lt;/math&amp;gt; hat, wobei &amp;lt;math&amp;gt;d_w \leq \Delta(\mathcal C)&amp;lt;/math&amp;gt; ist.&lt;br /&gt;
&lt;br /&gt;
Bei der meist verwendeten [[Decodierregel#Maximum-Likelihood-Decodierung|Maximum-Likelihood-Decodierung]] bedeutet dies, dass jedes empfangene Wort &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; genau ein Codewort &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; hat, zu dem es den geringsten Hamming-Abstand hat und zu dem es eindeutig zugeordnet werden kann. Daraus leitet sich die Bezeichnung &amp;#039;&amp;#039;perfekt&amp;#039;&amp;#039; ab, denn es gibt keine mehrdeutigen Decodiermöglichkeiten.&lt;br /&gt;
&lt;br /&gt;
== Mathematische Beschreibung ==&lt;br /&gt;
Sei &amp;lt;math&amp;gt;\mathcal C \subset \Sigma^n &amp;lt;/math&amp;gt; ein [[Blockcode]] mit &amp;lt;math&amp;gt;|\Sigma| = q&amp;lt;/math&amp;gt;, wobei &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt; das verwendete [[Alphabet (Mathematik)|Alphabet]] darstellt. Alle Codeworte &amp;lt;math&amp;gt;\mathcal C&amp;lt;/math&amp;gt; haben untereinander einen Mindest-Hamming-Abstand von &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;. Der Blockcode kann damit&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;t = \left \lfloor \frac{d-1}{2}  \right \rfloor&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fehler korrigieren.&lt;br /&gt;
&lt;br /&gt;
Um perfekt zu sein, muss der minimale Hamming-Abstand zwischen zwei Codeworten eines Codes ungerade sein, da sonst für &amp;lt;math&amp;gt;c_1,c_2 \in \mathcal C : \Delta(c_1,c_2) = d&amp;lt;/math&amp;gt; mindestens ein Wort &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;\Delta(c_1, w) = \tfrac{d}{2} = \Delta(w, c_2)&amp;lt;/math&amp;gt; existiert, was im Widerspruch zur Definition perfekter Codes steht.&lt;br /&gt;
&lt;br /&gt;
Da der Code &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt;-fehlerkorrigierend ist, kann ein Wort &amp;lt;math&amp;gt;w \in \Sigma^n&amp;lt;/math&amp;gt; einem Codewort &amp;lt;math&amp;gt;c \in C&amp;lt;/math&amp;gt; eindeutig zugeordnet werden, wenn der Hamming-Abstand &amp;lt;math&amp;gt;d = \Delta(c,w) \leq t&amp;lt;/math&amp;gt; ist. Umgekehrt bedeutet dies für ein bestimmtes Codewort &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;, dass alle Wörter &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; mit einem Hamming-Abstand von maximal &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; nach &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; decodiert werden. Als Menge wird dies so geschrieben:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathcal B_t(c) := \{ w \in \Sigma^n \mid \Delta(w,c) \leq t \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Menge wird auch als Kugel (manchmal auch Hyperwürfel) mit Radius &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; um &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; bezeichnet. Die Anzahl der Elemente von &amp;lt;math&amp;gt;\mathcal B_t(c)&amp;lt;/math&amp;gt; lässt sich berechnen zu:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;|\mathcal B_t(c)| = { \sum_{i=0}^t (q-1)^i \binom n i }&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; Fehlerstellen gibt es [[Binomialkoeffizient|&amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; aus &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt;]] mögliche Positionen für die Fehler. Dabei stehen pro Fehlerstelle &amp;lt;math&amp;gt;q-1&amp;lt;/math&amp;gt; falsche Symbolwerte zur Verfügung. Es gibt &amp;lt;math&amp;gt;|\mathcal C|&amp;lt;/math&amp;gt; Kugeln. Diese sind disjunkte Teilmengen des &amp;lt;math&amp;gt;\Sigma^n&amp;lt;/math&amp;gt;. Daraus ergibt sich die Ungleichung&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; |\Sigma^n| \geq |\mathcal C| {\sum_{i=0}^t(q-1)^i \binom n i} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aufgelöst nach &amp;lt;math&amp;gt;\mathcal C&amp;lt;/math&amp;gt; und mit &amp;lt;math&amp;gt;|\Sigma^n| = q^n&amp;lt;/math&amp;gt; folgt:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; |\mathcal C| \leq \frac{q^n}{{\sum_{i=0}^t(q-1)^i \binom n i}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Ungleichung für die Anzahl der Codewörter wird &amp;#039;&amp;#039;&amp;#039;Hamming-Schranke&amp;#039;&amp;#039;&amp;#039; oder auch &amp;#039;&amp;#039;&amp;#039;Kugelpackungsschranke&amp;#039;&amp;#039;&amp;#039; genannt.&lt;br /&gt;
&lt;br /&gt;
Ein perfekter Code zeichnet sich dadurch aus, dass alle Wörter &amp;lt;math&amp;gt;w \in \Sigma^n&amp;lt;/math&amp;gt; in genau einer der Kugeln enthalten sind (anders ausgedrückt: Die Kugeln überdecken den Raum). Deshalb gilt für die Hamming-Schranke selbst die Gleichheit.&lt;br /&gt;
&lt;br /&gt;
== Alternative Interpretation ==&lt;br /&gt;
Man kann sich diese Grenze auch wie folgt veranschaulichen (der Einfachheit halber nur anhand binärer Codes erläutert, d.&amp;amp;nbsp;h. für &amp;lt;math&amp;gt;q = 2&amp;lt;/math&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
Für einen &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; Fehler korrigierenden Code muss der Decoder genug&lt;br /&gt;
Information erhalten, um alle folgenden Fälle unterscheiden zu können:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;|\mathcal C| = 2^k&amp;lt;/math&amp;gt; verschiedene Informationswörter und jeweils&lt;br /&gt;
* alle möglichen Muster von &amp;lt;math&amp;gt;0\ldots t&amp;lt;/math&amp;gt; Bitfehlern der &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bits eines Codewortes&lt;br /&gt;
&lt;br /&gt;
Da es &amp;lt;math&amp;gt;\binom n i&amp;lt;/math&amp;gt; Möglichkeiten gibt, &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; [[Bitfehler]] auf&lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bits zu verteilen, ergeben sich insgesamt&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;2^k \cdot \sum_{i=0}^t \binom n i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fälle, die mit den zur Verfügung stehenden &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bits unterschieden werden müssen, also&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;2^n \ge 2^k \cdot \sum_{i=0}^t \binom n i&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Bei einem perfekten Code gilt Gleichheit, das heißt die &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bits tragen exakt die minimal benötigte Information.  Diese (Un-)Gleichung entspricht der obigen allgemeinen Definition für den Fall &amp;lt;math&amp;gt;q = 2&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;|\mathcal C| = 2^k&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Man ist zwar eigentlich nur an der Korrektur der &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Informationsbits interessiert, wofür entsprechend weniger Zusatzinformation genügen würde – diese &amp;lt;math&amp;gt;n-k&amp;lt;/math&amp;gt; Bits Zusatzinformation müssten dann aber fehlerfrei sein, was natürlich in der Regel nicht gewährleistet ist. Daher ist eine Korrektur &amp;#039;&amp;#039;aller&amp;#039;&amp;#039; &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Bits erforderlich.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Perfekte Codes ==&lt;br /&gt;
Falls die Alphabetgröße &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; eine [[Primzahlpotenz]] ist, so gilt:&lt;br /&gt;
&lt;br /&gt;
Ist &amp;lt;math&amp;gt;\mathcal C&amp;lt;/math&amp;gt; ein perfekter Code mit Parametern &amp;lt;math&amp;gt;[n,k;d,q]&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;k = \mathrm{log}_q(|\mathcal C|)&amp;lt;/math&amp;gt;, so gibt es einen Code&amp;amp;nbsp;&amp;lt;math&amp;gt;\mathcal D&amp;lt;/math&amp;gt; mit denselben Parametern, so dass &amp;lt;math&amp;gt;\mathcal D&amp;lt;/math&amp;gt; einer der folgenden Codes ist&amp;lt;ref&amp;gt;F.J. MacWilliams, N.J.A. Sloane: &amp;#039;&amp;#039;The Theory of Error-Correcting Codes&amp;#039;&amp;#039;. North-Holland, Amsterdam 1977&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Werner Lütkebohmert: &amp;#039;&amp;#039;Codierungstheorie&amp;#039;&amp;#039;. Vieweg, Braunschweig / Wiesbaden 2003&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Ein trivialer Code: Ein Code heißt hier &amp;#039;&amp;#039;trivial&amp;#039;&amp;#039;,&lt;br /&gt;
** falls er entweder nur &amp;lt;math&amp;gt;q^0 = 1&amp;lt;/math&amp;gt;, d.&amp;amp;nbsp;h. ein einziges Codewort enthält: &amp;lt;math&amp;gt;[m, 0; 2m+1, q]&amp;lt;/math&amp;gt; oder&lt;br /&gt;
** falls er alle &amp;lt;math&amp;gt;q^m&amp;lt;/math&amp;gt; möglichen Codewörter der gegebenen Blocklänge enthält: &amp;lt;math&amp;gt;[m, m; 1, q]&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Ein [[Dualsystem|binärer]] [[Wiederholungs-Code]] mit ungerader Codewortlänge. Die Parameter lauten &amp;lt;math&amp;gt;[2m+1, 1; 2m+1, 2]&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Ein [[Hamming-Code]] über dem [[Endlicher Körper|endlichen Körper]] &amp;lt;math&amp;gt;\mathbb{F}_q&amp;lt;/math&amp;gt;, mit Parametern &amp;lt;math&amp;gt;\;\left[ \frac{q^m-1}{q-1}, \frac{q^m-1}{q-1}-m; 3, q \right]&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Der binäre [[Golay-Code]] &amp;lt;math&amp;gt;\mathcal{G}_{23}&amp;lt;/math&amp;gt; mit Parametern &amp;lt;math&amp;gt;[23, 12; 7, 2]&amp;lt;/math&amp;gt;.&lt;br /&gt;
* Der [[Ternärsystem|ternäre]] [[Golay-Code]] mit Parametern &amp;lt;math&amp;gt;\mathcal{G}_{11}&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;[11, 6; 5, 3]&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m&amp;lt;/math&amp;gt; steht hierbei jeweils für eine positive natürliche Zahl &amp;lt;math&amp;gt;m \in \mathbb{N}^{+}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Die Codes &amp;lt;math&amp;gt;\mathcal C&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\mathcal D&amp;lt;/math&amp;gt; haben die gleichen Parameter und können somit bei gleicher Blocklänge&amp;amp;nbsp;&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; gleich viele Fehler korrigieren.&lt;br /&gt;
Die Umwandlung eines trivialen Codes in einen linearen Code mit denselben Parametern ist einfach: Falls der Code ein einziges Codewort enthält, so kann stattdessen auch der [[Nullvektor]] &amp;lt;math&amp;gt;c_0 = (0,\dots,0)&amp;lt;/math&amp;gt; als einziges Codewort dienen, und der entstandene Code ist linear. Der einzige verbleibende triviale Code ist derjenige, der sämtliche &amp;lt;math&amp;gt;q^n&amp;lt;/math&amp;gt; möglichen Wörter der gegebenen Blocklänge enthält. Dieser ist aber bereits linear.&lt;br /&gt;
Bei den  restlichen Codes aus der Liste handelt es sich bereits um [[Linearer Code|lineare Codes]]. Es gibt für jeden perfekten Code, der im Allgemeinen kein linearer Code ist, einen linearen Code mit den gleichen Parametern – sofern die Größe des Alphabetes eine Primzahlpotenz ist.&lt;br /&gt;
&lt;br /&gt;
Es ist offen, ob, und für welche Parameter es nicht triviale perfekte Codes gibt, falls die Alphabetgröße keine Primzahlpotenz ist.&lt;br /&gt;
&lt;br /&gt;
Für praktische Zwecke sind die trivialen Codes uninteressant, da entweder&lt;br /&gt;
* keine Information übertragen werden kann oder&lt;br /&gt;
* keine Fehler erkannt oder korrigiert werden können.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kodierungstheorie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ulricus Angelus</name></author>
	</entry>
</feed>