Komplexe Logik (auch bekannt als Trial and Contradiction, Bifurcation, oder Nishio) ist die ultimative Rückfallstrategie, wenn alle anderen Techniken scheitern. Sie testet einen Kandidaten, indem sie vorübergehend annimmt, er sei korrekt, und dann prüft, ob diese Annahme zu einem unmöglichen Zustand führt.
Wenn ein Widerspruch auftritt, war die Annahme falsch, und wir können diesen Kandidaten sicher eliminieren.
Interactive Example
Click "Apply Logic" to see the strategy in action.
Erklärung am echten Beispiel
Im Beispielpuzzle oben trifft der Löser auf eine Situation, wo Standardstrategien nicht funktionieren:
Der Test: 1. Zelle R1C1 hat Kandidaten {7, 9} 2. Der Löser fragt: "Was wenn R1C1 = 7?"
Der Prozess: 1. Setze R1C1 vorübergehend auf 7 2. Versuche das Puzzle von diesem Zustand aus zu lösen 3. Ergebnis: Das Puzzle wird unlösbar (Widerspruch)
Die Schlussfolgerung: - Da R1C1 = 7 zu einem unmöglichen Zustand führt - Kann R1C1 nicht 7 sein - Eliminiere 7 aus R1C1
Ergebnis: R1C1 muss 9 sein.
Wie es funktioniert
Die Kernlogik
Diese Strategie nutzt Beweis durch Widerspruch:
1. ANNAHME: Kandidat X ist in Zelle A
2. TEST: Versuche das Puzzle mit dieser Annahme zu lösen
3. ERGEBNIS: Entweder...
- ✅ Lösbar → X könnte korrekt sein (keine Eliminierung)
- ❌ Unlösbar → X ist definitiv falsch → ELIMINIERE X
Der Algorithmus
Für jede ungelöste Zelle:
Für jeden Kandidaten in dieser Zelle:
1. Mache eine Kopie des Gitters
2. Setze den Kandidaten als Wert der Zelle
3. Lasse einen schnellen Löser laufen, um Lösbarkeit zu prüfen
4. Wenn "unlösbar" → eliminiere diesen Kandidaten
5. Stop nach erster erfolgreicher Eliminierung
Prioritäten-Reihenfolge
Der Löser testet Kandidaten effizient:
| Priorität | Zell-Typ | Warum diese Reihenfolge |
|---|---|---|
| 1. | Zweiwertige Zellen (2 Kandidaten) | Wahrscheinlichste, um schnelle Widersprüche zu erzwingen |
| 2. | Alle anderen Zellen | Rückfall für komplexere Situationen |
Zweiwertige Zellen zuerst zu testen ist effizient, weil: - Sie weniger Kandidaten zum Testen haben - Einen Kandidaten zu eliminieren löst die Zelle sofort - Widersprüche propagieren schneller
Widersprüche verstehen
Ein Widerspruch tritt auf, wenn das Puzzle unmöglich wird:
| Widerspruchs-Typ | Beispiel |
|---|---|
| Leere Zelle | Eine Zelle hat keine gültigen Kandidaten mehr |
| Duplikat in Region | Gleiche Zahl taucht zweimal in Zeile/Spalte/Box auf |
| Kein Platz für Wert | Ein Wert hat keine gültige Zelle in einer Region |
Wenn irgendeiner davon auftritt, muss die Annahme, die ihn verursacht hat, falsch sein.
Beispiel Widerspruchs-Kette
Lass uns verfolgen, was passieren könnte, wenn wir R1C1 = 7 annehmen:
Schritt 1: Setze R1C1 = 7
Schritt 2: R1C7 kann nicht 7 sein (gleiche Zeile) → R1C7 = 9 (einzige Option)
Schritt 3: R4C7 kann nicht 9 sein → R4C7 = ... (propagiert)
Schritt 4: Irgendwann...
Schritt N: Irgendeine Zelle verliert alle Kandidaten → WIDERSPRUCH!
Der Löser verfolgt nicht jeden Schritt—er prüft einfach, ob das Puzzle gelöst werden kann. Wenn nicht, war die ursprüngliche Annahme falsch.
Wann Komplexe Logik benutzt wird
Diese Strategie ist ein letztes Mittel, angewendet nur wenn alles andere scheitert:
| Vor Komplexer Logik | Beispiele |
|---|---|
| Alle Basis-Strategien | Naked Single, Hidden Single |
| Intersections-Strategien | Pointing, Box/Line |
| Subset-Strategien | Naked Pair, Hidden Triple |
| Fish-Strategien | X-Wing, Swordfish |
| Wing-Strategien | Y-Wing, XYZ-Wing |
| Chain-Strategien | XY-Chain, X-Cycle |
| Einzigartigkeits-Strategien | Unique Rectangle, BUG |
Erst nachdem ALLE diese Strategien keine Eliminierungen produzieren, aktiviert sich Komplexe Logik.
Ist es "Schummeln"?
Es gibt eine Debatte in der Sudoku-Community über Versuch-und-Irrtum:
| Perspektive | Argument |
|---|---|
| Puristen | "Echte" Strategien sollten muster-basiert sein, nicht raten |
| Pragmatiker | Wenn es korrekte Eliminierungen logisch produziert, ist es gültig |
| Unsere Sicht | Es ist immer noch Logik—nur rechnerisch verifiziert statt muster-abgeglichen |
Komplexe Logik ist kein zufälliges Raten. Sie testet systematisch Hypothesen und eliminiert nur Kandidaten, die bewiesenermaßen unmöglich sind.
Vergleich: Komplexe Logik vs Chains
| Aspekt | Chain-Strategien | Komplexe Logik |
|---|---|---|
| Methode | Folge logischen Links manuell | Automatisiertes erschöpfendes Testen |
| Geschwindigkeit | Schnell (Muster-Abgleich) | Langsam (volle Lösungs-Versuche) |
| Beweis | Schritt-für-Schritt Deduktion | Verifiziert durch Löser |
| Menschenfreundlich | Ja (kann gefolgt werden) | Nein (zu viele Schritte) |
Chain-Strategien wie XY-Chain oder X-Cycle tun im Wesentlichen das Gleiche wie Komplexe Logik, aber sie finden den Widerspruch durch erkennbare Muster statt Brute-Force-Testen.
Wie der Löser Kandidaten testet
Unser Löser nimmt einen hoch optimierten Ansatz:
- Mache eine Kopie des aktuellen Gitters
- Setze den Kandidaten als Wert der Zelle in der Kopie
- Lasse einen schnellen Löser laufen um zu prüfen, ob das Puzzle gelöst werden kann
- Wenn unlösbar → der Kandidat ist unmöglich → eliminiere ihn
Schlüssel-Features: - Schneller Backtracking-Löser: Nutzt optimierte Algorithmen um Widersprüche schnell zu erkennen - Timeout-Schutz: Verhindert Steckenbleiben in extrem komplexen Positionen - Eine Eliminierung auf einmal: Kehrt nach erster erfolgreicher Eliminierung zurück für Effizienz
Tipps für Anfänger
Manueller Ansatz
Wenn du Komplexe Logik von Hand nutzen willst:
- Wähle eine zweiwertige Zelle — Wähle eine Zelle mit nur 2 Kandidaten
- Nimm einen Wert an — Schreibe ihn leicht mit Bleistift rein
- Propagiere vorsichtig — Wende Naked Singles und andere einfache Strategien an
- Achte auf Widersprüche — Leere Zellen, Duplikate, etc.
- Wenn Widerspruch gefunden — Radiere und eliminiere diesen Kandidaten
- Wenn blockiert (kein Widerspruch) — Radiere und versuche den anderen Kandidaten
Wann man es nutzt
- Wenn du jede andere Strategie probiert hast, die du kennst
- Wenn das Puzzle als "Extreme" oder "Expert+" bewertet ist
- Wenn du einfach das Puzzle beenden willst!
Schwierigkeits-Betrachtungen
| Puzzle-Level | Komplexe Logik nötig? |
|---|---|
| Easy | Nie |
| Medium | Nie |
| Hard | Selten |
| Expert | Manchmal |
| Extreme | Oft |
Puzzle-Designer vermeiden typischerweise Puzzles, die Komplexe Logik erfordern, aber manche extrem schweren Puzzles haben keinen anderen Lösungsweg.
Warum es "Komplexe Logik" heißt
Der Name spiegelt wider, dass: - Die zugrundeliegende Logik solide ist (Beweis durch Widerspruch) - Die Kette von Deduktionen komplex ist (zu lang um manuell zu folgen) - Sie Situationen behandelt, die zu kompliziert für muster-basierte Strategien sind
Es ist nicht "Raten"—es ist verifizierte logische Deduktion, die zufällig Computer-Assistenz benötigt.
Häufige Missverständnisse
"Es ist nur Raten"
Nein. Jede Eliminierung ist bewiesenermaßen unmöglich. Wir "raten" nicht die Antwort—wir beweisen, was NICHT die Antwort ist.
"Jedes Puzzle kann so gelöst werden"
Ja, aber... Komplexe Logik kann jedes gültige Sudoku lösen, aber es ist ineffizient. Benannte Strategien sind schneller und eleganter.
"Ich sollte es zuerst nutzen um Zeit zu sparen"
Schlechte Idee. Benannte Strategien sind meistens schneller und helfen dir zu lernen. Komplexe Logik ist ein letztes Mittel, keine Abkürzung.
Verwandte Strategien
Strategien die ähnliche Dinge tun (Muster-Basiert)
- XY-Chain — Findet Widerspruchs-Pfade durch zweiwertige Zellen
- XY-Cycle — Schleife die Widerspruch erzeugt
- X-Cycle — Einzelkandidat-Widerspruchs-Schleife
- Forcing Chains — Allgemeine ketten-basierte Deduktionen
Strategien die man zuerst probieren sollte
- Simple Coloring — Zwei-Farben Kandidaten-Verfolgung
- 3D Medusa — Erweitertes Färben
- W-Wing — Zweiwertiges Zellen-Paar-Muster
- Empty Rectangle — Box-Linien-Interaktions-Muster (Demnächst)
Einzigartigkeits-Strategien
- Unique Rectangle — Tödliche Muster vermeiden
- BUG Typ 1 — Bivalue Universal Grave