Informationstechnik am Beispiel eines Spiels

Am Beispiel eines kleinen Spiels möchten wir einige Aspekte der Telekommunikationsinformatik bzw. der Informations- und Kommunikationstechnik illustrieren.

Spielregeln

Spieler A denkt sich eine Zahl zwischen 1 und 16. Spieler B muss die Zahl erraten, darf dazu aber nur Fragen stellen, die Spieler A mit "Ja" oder "Nein" beantworten kann.

Spieltaktiken für Spieler B

Bei einer einfache Taktik probiert Spieler B die Zahlen von 1 bis 15 systematisch durch. Bei einem "Ja" hat er die richtige Zahl gefunden. Werden alle Fragen mit "Nein" beantwortet, ist die gesuchte Zahl 16.

In der Informatik entwickeln und analysieren wir Algorithmen (z.B. Taktiken für das Zahlenratenspiel), die wir dann in Programmiersprachen (z.B. Python) implementieren und testen. Also implementieren wir die einfache Taktik in Python.

Die einfache Taktik ist leicht zu verstehen und auch leicht zu implementieren (wenig Code, nur eine Schleife und eine Bedinung). Allerdings benötigt sie unnötig viele Fragen, d.h. sie ist nicht sehr effizient. Bei einer cleveren Taktik halbiert Spieler B mit jeder Frage den gesuchten Zahlenbereich und steuert die gesuchte Zahl systematisch an. Auch das können wir implementieren.

Vergleich der beiden Taktiken ("durchschnittliche Laufzeit")

Nun sind wir in der Informatik und Kommunikationstechnik immer daran großen und vielen Daten interessiert, d.h. es ist relavant, was passiert, wenn das Spiel mit größeren Zahlen gespiele wird. Was wäre, wenn das Spiel mit Zahlen von 1 bis 32 gespielt wird? Die einfache Taktik benötigt durchschnittlich 16 Fragen, während die clevere stets nur 5 Fragen benötigt ($32 = 2^5$), d.h. der Abstand zwischen den Taktiken wird größer.

Im Allgemeinen gilt: Sei $N$ die Anzahl der Zahlen, so benötigt die einfache Taktik durchschnittlich $\frac{N}{2}$ Fragen; die clevere Taktik lediglich $\lceil \log_{2} N \rceil$ Fragen.

Informationsgehalt der Fragen bzw. der Antworten

Neben der Beobachtung des Laufzeitverhalten interessiert liefert uns die Informationstheorie auch den Grund für das unterschiedliche Verhalten. Der Informationsgehalt gibt an, "wieviel" Information in einer Nachricht (hier: in der Antwort) steckt. Er ist definiert als negativer Logarithmus der Auftrittswahrscheinlicht.

Für die einfache Taktik ist bei der ersten Frage die Wahrscheinlichkeit für ein "Ja" $\frac{1}{16} = 6.25\%$, für ein "Nein" $\frac{15}{16} = 93.75\%$. Der Informationsgehalt ist damit $ H_{ja}=-ld(\frac{1}{16})=4$ und $H_{nein} = -ld(\frac{15}{16}) \approx 0.09$. Der Informationsgehalt für die gesamte Antwort ist die (mit den Wahrscheinlichkeiten) gewichtete Summe, d.h. $ H_{Antwort1} = \frac{1}{16} \cdot H_{ja} + \frac{15}{16} \cdot H_{nein} \approx 0.34$.

Für die clevere Taktik sind (wegen der gleich großen Intervalle) die Wahrscheinlichkeiten für "Ja" und "Nein" jeweils 50%, d.h. $ H_{ja} = H_{nein} = -ld(\frac{1}{2})=1$. Der Informationsgehalt für jede Antwort ist damit $ H_{Antwort} = \frac{1}{2} \cdot H_{ja} + \frac{1}{2} \cdot H_{nein} = 1$.

Spieler B erhält also bei der cleveren Taktik mehr Informationen durch die Antworten und benötigt dadurch weniger Fragen, um die gesuchte Zahl zu ermitteln.

Übertragung in unsicheren Kanälen

Wie verändern nun das Spiel und fügen eine weitere Regel hinzu: Spieler A darf bei (maximal) einer Frage lügen. Wie sähe jetzt eine clevere Taktik für Spieler B aus? Bei einer Antwort von A weiß Spieler B natürlich nicht, ob A gelogen hat.

Spieler A ist jetzt ein Informationskanal, in dem bei Übertragungen Störungen auftreten können. Wir müssen daher Redundanzen einbauen, um den Effekt einzelner Störungen (hier: einmaliges Lügen) zu bemerken bzw. auszugleichen.

Eine einfache Strategie wäre, jede Frage zweimal zu stellen. Erhält Spieler B jeweils die gleiche Antwort, handelt es sich um die korrekte Antwort. Erhält Spieler B ungleiche Antworten, fragt er ein drittes mal und kann per Mehrheitsentscheid die korrekte Antwort ableiten (2x Wahrheit vs. 1xLüge). Damit würde eine Spieltaktik, die ursprünglich $M$ Fragen benötigt, nun $2M+1$ Fragen benötigen.

Eine effektivere Redundanz kann mit dem Hamming-Code erzeugt werden. Dieser erkennt und korrigiert einen Bit-Fehler in 4 Bits durch Hinzunahme von 3 Bits, d.h. wir können mit 7 Fragen die geheime Zahl ermitteln -- und auch ermitteln, bei welcher Frage (wenn überhaupt) Spieler A gelogen hat. Der Code dafür ist schon etwas länger :-)

Zusammenfassung

Das Beispiel "Zahlenraten" verdeutlicht schon einige Inhalte des Studiums der Telekommunikationsinformatik bzw. der Informations- und Kommunikationstechnik.