Das Poster-Rätsel 2026–2027

Die sieben Brücken von Königsberg

Kannst du eine durchgehende Runde zeichnen, die jede der 7 Brücken genau einmal überquert, ohne jemals denselben Weg zurückzugehen? Die Menschen in Königsberg haben es jahrelang versucht. 1736 sah sich Leonhard Euler die Sache genauer an — und fand einen überraschend kurzen Weg, die Frage zu klären.

A2-Format · druckfertiges PDF

Weitere Sprachen: Français · Nederlands · English

Das Problem

Königsberg, im damaligen Preußen gelegen (heute Kaliningrad, Russland), war an beiden Ufern des Flusses Pregel erbaut. In der Mitte der Stadt teilte sich der Fluss um zwei Inseln: eine zentrale Insel, den Kneiphof, und eine zweite Insel im Osten. Sieben Brücken verbanden diese vier Landstücke:

  • zwei Brücken zwischen dem Nordufer und der zentralen Insel;
  • zwei Brücken zwischen der zentralen Insel und dem Südufer;
  • eine Brücke zwischen den beiden Inseln;
  • eine Brücke von der Ostinsel zu jedem Ufer.
Die sieben Brücken von Königsberg Eine Karte von Königsberg: der Fluss Pregel mit einem Nordufer (A), einem Südufer (D), einer zentralen Insel namens Kneiphof (B) und einer Ostinsel (C). Sieben nummerierte Brücken verbinden sie: 1 und 2 verbinden A und B, 3 und 4 verbinden B und D, 5 verbindet A und C, 6 verbindet B und C, und 7 verbindet C und D. 1 2 3 4 5 6 7 A Nordufer B Kneiphof C Ostinsel D Südufer

Dein Ziel — alle drei erfüllen:

  1. Überquere alle 7 Brücken
  2. Jede genau einmal
  3. Ende dort, wo du gestartet bist

Kein Schwimmen, keine Boote — nur die Brücken.

Abbildung 1. Königsberg im Jahr 1736: vier Landstücke, verbunden durch sieben Brücken. Probiere den Spaziergang selbst aus oder sieh dir einen Beispielversuch an, der stecken bleibt.

Probier es oben aus: Die Einwohner suchten angeblich einen Spaziergang, der jede Brücke genau einmal überquert und — in der Version auf unserem Poster — dort endet, wo er begonnen hat. Niemand fand einen. Keinen Weg zu finden beweist nicht, dass es keinen gibt, und hier kam Euler ins Spiel.

Also… ist es möglich?

Nein! Und du musst nicht jeden Weg ausprobieren, um sicher zu sein. Hier ist der Trick.

Die Rein-und-raus-Regel. Jedes Mal, wenn du durch ein Landstück gehst, kommst du über eine Brücke an und verlässt es über eine andere. Die Brücken dieses Landstücks werden also paarweise benutzt: eine hinein, eine hinaus.

Wenn du dort enden musst, wo du gestartet bist, braucht jedes Landstück eine gerade Anzahl von Brücken (2, 4, 6…).

Zähl sie nach:

  • Nordufer 3 Brücken ungerade 3 = 1 Paar + 1 übrig
  • Kneiphof 5 Brücken ungerade 5 = 2 Paare + 1 übrig
  • Ostinsel 3 Brücken ungerade 3 = 1 Paar + 1 übrig
  • Südufer 3 Brücken ungerade 3 = 1 Paar + 1 übrig

Alle vier haben eine ungerade Anzahl. Es bleibt immer eine Brücke übrig, also ist die Runde unmöglich. Leonhard Euler hat diesen Trick 1736 gefunden.

So zu denken — eine einfache Regel zu finden, statt alles auszuprobieren — ist genau das, worum es bei der Belgischen Informatik-Olympiade geht.

Gefahrenzone Ich will alles über dieses Problem mit Graphentheorie wissen Beweise, Sätze und Algorithmen voraus.

Achtung — nicht Teil des Stoffs

Das gehört überhaupt nicht zum Stoff der Qualifikationsrunden, des Viertelfinales und des Halbfinales der Belgischen Informatik-Olympiade. Du brauchst nichts davon, um gut abzuschneiden.

Wenn dir solche Themen Spaß machen, schau dir Competitive Programmingan.

Modellieren: von der Karte zum Graphen

Euler bemerkte, dass fast alles auf der Karte unwichtig ist. Die Form der Inseln, die Länge der Brücken und der Verlauf der Straßen können die Antwort nicht beeinflussen. Nur eines zählt: welche Landstücke jede Brücke verbindet.

Wir werfen die Karte also weg. Ersetze jedes Landstück durch einen Punkt, einen Knoten, und jede Brücke durch eine Linie zwischen zwei Knoten, eine Kante. Das Ergebnis ist ein Graph G = (V, E) mit vier Knoten und sieben Kanten.

Die Brücken von Königsberg als Multigraph Vier Knoten: A das Nordufer oben, B die zentrale Insel links, C die Ostinsel rechts, D das Südufer unten. Sieben Kanten: 1 und 2 verbinden A und B, 3 und 4 verbinden B und D, 5 verbindet A und C, 6 verbindet B und C, 7 verbindet C und D. 1 2 3 4 5 6 7 A Nordufer B Zentrale Insel C Ostinsel D Südufer
Abbildung 2. Königsberg als Graph. Knoten: A Nordufer, B zentrale Insel, C Ostinsel, D Südufer. Die Kanten 1–2 verbinden A und B, 3–4 verbinden B und D, 5 verbindet A und C, 6 verbindet B und C, 7 verbindet C und D. Vergleiche mit der Karte in Abbildung 1: dieselben Buchstaben, dieselben Brückennummern.

Manche Knotenpaare sind durch zwei Kanten verbunden: A–B und B–D. Ein Graph, der solche parallelen Kanten erlaubt, heißt Multigraph. In diesem Modell wird das Rätsel zu einer reinen Frage über G: Gibt es einen geschlossenen Kantenzug, der jede Kante genau einmal benutzt? Ein solcher Kantenzug heißt Eulerkreis. Ein Eulerweg benutzt ebenfalls jede Kante genau einmal, darf aber in einem anderen Knoten enden als dem, in dem er begonnen hat.

Grade

Der Grad deg(v) eines Knotens v ist die Anzahl der Kantenenden, die ihn berühren. Gleichbedeutend ist es die Anzahl der Brücken, die von diesem Landstück abgehen.

Grad jedes Knotens in Abbildung 2
Knoten Landstück Brücken Grad
A Nordufer 1, 2, 5 3 (ungerade)
B Zentrale Insel 1, 2, 3, 4, 6 5 (ungerade)
C Ostinsel 5, 6, 7 3 (ungerade)
D Südufer 3, 4, 7 3 (ungerade)
Summe der Grade 14

Zur Kontrolle nutzen wir das Handschlag-Lemma. Jede Kante hat genau zwei Enden, und jedes Ende erhöht den Grad eines Knotens um 1. Für jeden Graphen gilt also:

∑v ∈ V deg(v) = 2 |E|,
und hier 3 + 5 + 3 + 3 = 14 = 2 × 7.

Eine Folgerung: Die Summe aller Grade ist gerade, also hat jeder Graph eine gerade Anzahl von Knoten mit ungeradem Grad.

Die Invariante

Angenommen, ein Kantenzug benutzt jede Kante genau einmal. Betrachte einen Knoten v, der weder Start noch Ende ist. Jedes Mal, wenn der Kantenzug über eine Kante in v ankommt, muss er über eine andere, noch unbenutzte Kante wieder wegführen. Die Kanten an v werden also paarweise benutzt, eine hinein und eine hinaus. Weil jede Kante benutzt wird, sind alle Kanten an v gepaart, und deg(v) ist gerade.

Nur die beiden Endpunkte des Kantenzugs haben je eine ungepaarte Kante: die erste Kante, die vom Start wegführt, und die letzte Kante, die am Ende ankommt. Ist der Kantenzug geschlossen, sind Start und Ende derselbe Knoten, und diese beiden Kanten bilden ebenfalls ein Paar. Die Parität des Grades ist eine Invariante, die keine clevere Route umgehen kann.

Satz von Euler

Sei G ein zusammenhängender Multigraph (Knoten ohne Kanten werden ignoriert).

  • G hat genau dann einen Eulerkreis, wenn jeder Knoten geraden Grad hat.
  • G hat genau dann einen Eulerweg, wenn er 0 oder 2 Knoten mit ungeradem Grad hat. Bei 2 beginnt jeder solche Weg an einem ungeraden Knoten und endet am anderen.

Das obige Argument beweist die Richtung „nur wenn“, und das ist alles, was das Rätsel braucht. Euler stellte die Umkehrung ohne Beweis auf. Carl Hierholzer bewies sie 1873, indem er eine Konstruktion angab.

Königsberg hat vier Knoten mit ungeradem Grad. Das schließt einen Eulerkreis aus, der keinen ungeraden Knoten erlaubt. Es schließt auch einen Eulerweg aus, der höchstens zwei zulässt. Die Runde, die das Poster verlangt, gibt es also nicht, und ebenso wenig irgendeine Route, geschlossen oder offen, die jede Brücke genau einmal überquert.

Warum das in der Informatik wichtig ist

Eulers Satz ersetzt eine Suche durch eine Zählung. Du musst keine Routen ausprobieren, sondern nur Grade zählen:

from collections import Counter

def euler_kind(edges):
    """Classify a connected multigraph given as a list of edges (u, v)."""
    degree = Counter()
    for u, v in edges:
        degree[u] += 1
        degree[v] += 1
    odd = sum(1 for d in degree.values() if d % 2 == 1)
    if odd == 0:
        return "Eulerian circuit"
    if odd == 2:
        return "Eulerian path"
    return "neither"

koenigsberg = [("A", "B"), ("A", "B"), ("B", "D"), ("B", "D"),
               ("A", "C"), ("B", "C"), ("C", "D")]
print(euler_kind(koenigsberg))  # neither: four odd vertices

Das läuft in O(V + E) Zeit: ein Durchlauf über die Kanten, dann einer über die Knoten. Eine vollständige Prüfung kontrolliert außerdem, dass alle Kanten zu einer einzigen Zusammenhangskomponente gehören, mit einer Breiten- oder Tiefensuche, die ebenfalls O(V + E) kostet. Eine naive Suche, die jede Reihenfolge der Kanten ausprobiert, kann bis zu E! Folgen untersuchen. Das sind 7! = 5.040 für Königsberg, aber 20! ≈ 2,4 × 1018 für einen Graphen mit nur 20 Kanten.

Dieselbe Idee taucht überall in der Informatik auf:

  • Der Algorithmus von Hierholzer baut einen Eulerkreis in O(E) Zeit. Folge unbenutzten Kanten, bis du wieder am Start bist. Baue dann von einem beliebigen Knoten dieses Kreises, der noch unbenutzte Kanten hat, einen weiteren Kreis und füge ihn ein.
  • Das Problem des chinesischen Briefträgers fragt nach dem kürzesten geschlossenen Kantenzug, der jede Kante mindestens einmal benutzt, etwa bei der Postzustellung, bei Schneepflügen oder Straßenkehrmaschinen. Auf ungerichteten Graphen lässt es sich in Polynomialzeit lösen. Man paart die Knoten mit ungeradem Grad über ein perfektes Matching mit minimalem Gewicht, gewichtet nach der Länge des kürzesten Weges. Dann geht man den kürzesten Weg zwischen jedem gepaarten Knotenpaar ein zweites Mal.
  • De-Bruijn-Graphen bei der Genomassemblierung: DNA-Sequenzierer lesen Millionen kurzer Fragmente, die in überlappende Teilstrings der Länge k zerlegt werden. Jeder Teilstring wird zu einer gerichteten Kante von seinen ersten k − 1 Buchstaben zu seinen letzten k − 1 Buchstaben. Das Genom wieder zusammenzusetzen wird dann zur Suche nach einem Eulerweg. In gerichteten Graphen lautet die Bedingung, dass an jedem Knoten der Eingangsgrad gleich dem Ausgangsgrad ist, außer dass der Start eine ausgehende Kante mehr und das Ende eine eingehende Kante mehr hat.
  • Der hamiltonsche Kontrast: Ersetze „jede Kante genau einmal“ durch „jeden Knoten genau einmal“, und kein einfacher Gradtest funktioniert mehr. Zu entscheiden, ob ein Graph einen Hamiltonweg hat, ist NP-vollständig. Es ist kein Polynomialzeit-Algorithmus bekannt, und einen zu finden würde P = NP beweisen.

Übung

Die Stadt baut eine achte Brücke. Zwischen welchen beiden Landstücken könnte sie liegen, damit ein Eulerweg existiert? Nenne alle Paare, die funktionieren, und gib jeweils an, wo der Kantenzug beginnen und enden muss.

Zusatzfrage: Kann eine einzige neue Brücke jemals einen Eulerkreis möglich machen? Wie viele neue Brücken sind dafür mindestens nötig?

Darum geht es bei der Olympiade

Euler hat das Rätsel nicht gelöst, indem er mehr Routen ausprobierte. Er fand das richtige Modell und die richtige Invariante. Die Belgische Informatik-Olympiade verlangt dieselbe Art des Denkens und anschließend ein Programm, das es anwendet.

Die Online-Qualifikationsrunden laufen vom 1. Dezember 2026 bis zum 28. Februar 2027. Du kannst sie in der Schule oder zu Hause machen, mit Blockly oder Python.