Sudoku Simpel

Minder simpele sudoku’s

Minder simpele Sudoku’s (niveau 4 en 5 van Denksport bijvoorbeeld) zijn niet van begin tot eind eenvoudigweg in te vullen. We maken veelvuldig gebruik van het noteren van kandidaten in de cellen en moeten ons bewust zijn van de aanwezigheid van kandidaten die in andere cellen uitgesloten kunnen worden.
We nemen onderstaande Sudoku (een bewerkte versie van Sudoku 4 uit Sudoku 5-6 genius, nummer 218) als uitgangspunt om dit te demonstreren. Print de Sudoku, of neem deze over op papier om zelf mee te denken n.a.v. mijn instructies:

Eerst passen we de eerder besproken technieken (horizontaal en verticaal checken en checken op de gevolgen van de ingevulde cellen) toe. Probeer dit uit op papier. Als je het goed gedaan hebt is het resultaat als volgt (cijfers in de gele cellen zijn toegevoegd).

 

Verder komen we hier niet met de strategie die we gebruiken voor het oplossen van simpele Sudoku’s. We zullen kandidaten moeten noteren in een aantal (of misschien wel in alle) nog niet gevulde cellen.

Kandidaten noteren
We beginnen met het noteren van de kandidaten in rijen en kolommen die op grond van de bekende cellen leiden tot een of/of. Meestal zien we ze in één oogopslag als we rijen of kolommen checken. Ik geef een voorbeeld: In het voorbeeld hierboven staat een 4 in R1 K3 en in R2 K5. In Blok 3 moet er dus een 4 staan in R3 en wel in R3 K7 of R3 K9. We noteren deze kandidaten in het klein in de cellen en onderstrepen ze.

In de volgende figuur zijn alle kandidaten die uit een horizontale scan volgen genoteerd in blauw en die uit een verticale scan volgen in groen. 

In een Sudoku op papier voorzie ik deze meestal van een onderstreping, zodat ik ze later kan onderscheiden van de minder gewichtige kandidaten die we ook nodig hebben. In deze digitale omgeving markeer ik ze door een blokje om deze cijfers te zetten. Verderop zal blijken hoe belangrijk het is om in één oogopslag te zien dat het om ‘of/of-kandidaten’ gaat.

In dit voorbeeld zijn we alleen tweetallen tegengekomen, maar ook een rij of kolom met 3 keer hetzelfde cijfer als kandidaat in één blok komt regelmatig voor.

Naast ‘of/of-kandidaten’ hebben we ook de eenvoudige kandidaten nodig om verder te komen. Omdat we zo snel mogelijk nieuwe oplossingen van cellen zoeken, beginnen we met een rij, kolom of blok met de meeste ingevulde cellen. In dit geval is K4 het meest veelbelovend, omdat hier al 6 cijfers zijn ingevuld. Er ontbreken dus 3 cijfers (5, 7 en 9) en we checken welke hiervan we kunnen noteren in de lege cellen in K4.
In R1 staat al een 9 en dat cijfer is dus geen kandidaat in R1 K4. We noteren hierin alleen 5 en 7.
In R2 K4 en R6 K4 bevatten de regels en blokken waarin deze cellen zich bevinden geen 5, 7 of 9 en we vullen dus alle 3 de cijfers als kandidaat in. Zie bijgaande figuur die kolom 4, 5 en 6 laat zien.

In de praktijk is het moeilijk om de cijfers mooi op 3 regels in een cel te schrijven. Ik gebruik meestal 2 regels per cel, de eerste voor de cijfers 1 t/m 4 en de tweede voor 5 t/m 9.
Uiteraard is het wel het meest overzichtelijk om alle 9 cijfers een vast plekje te geven, zoals je in het blokje hiernaast kunt zien, maar nodig is het niet.

We gaan verder met het oplossen d.m.v. kandidaten:
Regel 1 heeft al 5 opgeloste cellen. We schrijven hier de kandidaten in:

De kandidaat 8 komt maar één keer voor en kan dus genoteerd worden als oplossing van R1 K1.
We kijken nu naar Blok 2. Daarin is nog maar één cel leeg, namelijk R2 K6. 

Omdat in geen enkele cel in dit blok het cijfer 6 kandidaat is, zal R2 K6 als oplossing de 6 krijgen.
Tot slot kijken we naar B5. Hier ontbreken de cijfers 2, 5, 7 en 9. Vul de cellen met kandidaten in dit blok nu zelf. Dit is het resultaat:

Werken met tweelingen en drielingen
Het belangrijkste hulpmiddel is het werken met tweelingen en drielingen bij de kandidaten. In feite gaat het hier ook om ‘of/of’-kandidaten’, maar twee- en drielingen zijn vaak wat lastiger te vinden. Zorg dat je deze techniek goed snapt, want hiermee kun je snel heel veel kandidaten uitsluiten en dus flinke stappen maken.
Stel dat er één cijfer precies twee (of 3) keer voorkomt als kandidaat in een gedeelte van een rij of kolom dat zich in één blok bevindt, zoals in het voorbeeld hier.

In deze figuur komt het kandidaatcijfer 2 precies twee keer voor in R1 en meer specifiek in het gedeelte van R1 dat zich in één blok bevindt (B1). We hebben dus een tweeling gevonden.
Omdat elk cijfer maar één keer voor kan komen in een regel, kunnen we concluderen dat er op R1 een 2 moet staan in R1 K1 of in R1 K3.
Omdat we weten dat het cijfer 2 ook in B1 maar één keer voor kan komen, kunnen we concluderen dat de 2 in dit blok zich op één van de genoemde posities in R1 moet bevinden. Immers, als we bijvoorbeeld de 2 in R3 K1 zouden invullen, kan er in B1 verder geen 2 voorkomen. Dit zou betekenen dat er geen 2 staat in R1 en dat is onmogelijk.
We kunnen de 2 in R3 K1 en R3 K3 dus weggummen.
De oplettende puzzelaar heeft ontdekt dat ook het kandidaatcijfer 6 precies 2 keer voorkomt in R1. Dit tweetal voldoet echter niet aan de eis dat de cijfers in één blok staan en kan niet gebruikt worden voor verdere conclusies.

Het omgekeerde is ook mogelijk: stel dat we een blok hebben met een kandidaatcijfer dat twee of drie keer voorkomt in een gedeelte van het blok dat samenvalt met één rij of met één kolom.

We zien dat het cijfer 2 in B1 drie keer kandidaat is en wel alle drie de keren op regel 1. Omdat we zeker weten dat er één cijfer 2 in B1 moet staan, moet R1 K1, R1 K2 of R1 K3 als oplossing een 2 hebben. Welke van de drie het is weten we nog niet, maar we weten wel dat er op R1 geen 2 kan staan op een andere plek. We kunnen door het vinden van deze drieling dus de 2 in R1 K5 en die in R1 K9 weggummen.

Deze techniek geldt ook voor de combinatie van een kolom en een blok en werkt ook weer in twee richtingen. Zie de volgende voorbeelden en bedenk zelf welke kandidaatcijfers er weggestreept kunnen worden.
Tip: loop per kolom en per blok de cijfers 1 tot en met 9 na om te zien hoe vaak en waar ze voorkomen.

Oplossing linker figuur: we zien in K2 twee keer het cijfer 8 binnen één blok, namelijk in R4 K2 en R5 K2. Verder komen er in deze kolom geen cijfers 8 voor. We weten dus dat de 8 op één van de posities thuishoort. Dat geldt dan ook voor B4. Echter: er staat op meer plekken in B4 een cijfer 8. Deze mogen we dus weggummen.

Oplossing rechter figuur: we zien in B4 twee keer het cijfer 8 en wel in één kolom. Omdat elk cijfer in elk blok maar één keer voor kan komen weten we nu dat dit in het gedeelte van B4 is waar K2 dit blok kruist. Andere cijfers 8 in K2 (alleen in R9 K2 in dit geval) mogen dus worden verwijderd.

Samenvatting:
(1) als er één cijfer precies twee (of 3) keer voorkomt als kandidaat in een gedeelte van een rij of kolom dat zich in één blok bevindt, kunnen we dit cijfer als kandidaat schrappen in de rest van dit blok.
(2) als er één cijfer precies twee (of 3) keer voorkomt als kandidaat in een gedeelte van een blok dat samenvalt met één rij of kolom en als dit cijfer in dit blok verder niet voorkomt, kunnen we dit cijfer als kandidaat schrappen in de rest van deze rij of kolom.

Tweelingen en drielingen in onze voorbeeld-Sudoku
We grijpen nu terug op de Sudoku die we aan het oplossen waren en kijken of we verder komen met de techniek die we zojuist geleerd hebben.

Eerst stellen vast dat de enige kandidaat 9 in B2 in R2 K4 staat en kunnen hier dus de waarde 9 invullen. Dit betekent dat we de 9 in R6 K4 kunnen uitgummen, omdat dit cijfer maar één keer voor kan komen in K4. Ook de 9 in R2 K3 kunnen we schrappen, want ook in R2 mag de 9 maar één keer voorkomen. Het schrappen van de 9 in R2 K3 heeft een fijne bijkomstigheid, want deze 9 maakte deel uit van een tweeling. Als we de 9 in R2 K3 verwijderen weten we dat er een 9 moet staan in R3 K3. We vullen deze in.
We concentreren ons even op kolom 5 en 6 en vullen daar de kandidaten in (in rood) en stellen vast dat het kandidaatcijfer 2 in B5 maar twee keer voorkomt en wel beide keren in K5. Zoals we geleerd hebben betekent dit dat er elders in K5 geen 2 als kandidaat kan voorkomen. We gummen dus de 2 in R1 K5 uit en markeren de beide tweeën als tweeling door ze te onderstrepen. Dan is dit het resultaat.

We stellen vast dat er een tweeling van het cijfer 6 in B8 staat en we kunnen deze markeren als of/of-kandidaten, maar kunnen hier voorlopig geen conclusies aan verbinden.
We komen nu niet verder met de besproken technieken, zonder meer kandidaten in te vullen en we vullen nu eerst alle kandidaten in.
Ik ga hierbij meestal volgt te werk: ik kies een blok, kolom of rij waarin relatief veel waarden bekend zijn en start daar, in de hoop op tussentijdse oplossingen. In dit geval kies ik bijvoorbeeld voor B1. Daarin zijn vijf van de negen cijfers bekend (1, 3, 4, 8 en 9). Er zijn dus nog 4 cijfers die we als kandidaat toe moeten voegen aan de cellen van dit blok.
Ik onthoud even deze vier cijfers: 2, 5, 6 en 7. Nu bekijk ik een lege cel in dit blok (bijvoorbeeld R2 K1) en kijk welke van deze 4 cijfers hier kandidaat is, door de rij en de kolom waar deze cel deel van uitmaakt te scannen. Ik zie geen cijfer 2 in R2 en ook niet in K1, dus de 2 is kandidaat. Ik vul deze in. Voor het cijfer 5 geldt hetzelfde. De 6 echter komt voor in R2 en kunnen we dus weglaten. Het cijfer 7 komt niet voor in R2 en ook niet in K1 en die vermeld ik dus ook.
R2 K1 is hiermee afgerond. We gaan verder met R2 K3. We checken weer of 2, 5, 6 of 7 hier een plekje moeten krijgen. Dat geldt wel voor de 2 en de 5, maar 6 en 7 komen voor in R2 of K3 en vervallen dus. We noteren dus alleen de cijfers 2 en 5 als kandidaat in deze cel.
Zo werken we alle cellen uit de blok af. Dit is het resultaat (kandidaten van deze ronde in wit):

We zien nu in één oogopslag dat het cijfer 7 maar één keer voorkomt en vullen dit in als oplossing in R2 K1. Verder komen we nu niet en we gaan verder met het toevoegen van kandidaten.
We kiezen nu K8 voor het noteren van de kandidaten. Deze bevat 5 cijfers: 2, 3, 5, 7 en 9. We missen dus 1, 4, 6 en 8 en onthouden deze cijfers. We vullen nu de cellen van boven naar beneden. We kijken dus eerst naar R2 K8. Welke van de cijfers 1, 4, 6 en 8 moeten we hier als kandidaat vermelden? Die cijfers die niet voorkomen in R2 en niet in B3. Dat is alleen de 8, want 1, 4 en 6 komen al voor in R2. De oplossing van cel R2 K8 is dus het cijfer 8. De ontbrekende cijfers in K8 zijn dus alleen nog 1, 4 en 6.
Dan kijken we naar de tweede cel in deze kolom die nog niet is opgelost: R4 K8. Welke cijfers uit de reeks 1, 4, 6 kunnen we hier plaatsen? Dat zijn alleen de 1 en de 4, want het cijfer 6 staat al in de kruisende rij R4.
Welke kandidaten kunnen we kwijt in R7 K8? Dat zijn alle 3 de overgebleven kandidaten 1, 4 en 6.
In R8 K8 tenslotte kunnen we alleen de kandidaten 1 en 6 plaatsen, want de 4 komt al voor in R8.
Kolom 8 is hiermee afgerond. We kijken nu naar R3. Daar ontbreken de kandidaten in 2 cellen:
R3 K7 en R3 K9. Hier staan al enkele kandidaten ingevuld, maar we zullen moeten bekijken of er nog meer mogelijkheden zijn.
De ingevulde cijfers in R3 zijn 1, 3, 7, 8 en 9. De cijfers die ontbreken zijn dus 2, 4, 5 en 6. We bekijken nu welke van deze cijfers we toe moeten voegen aan R3 K7. Dat is alleen het cijfer 5, want de kandidaten 2 en 4 zijn al ingevuld en de cijfers 6 en 9 komen al voor in het blok waarin deze cel zich bevindt (B3) en kunnen hier dus onmogelijk staan.
Hetzelfde doen we voor R3 K9. Ook hier kunnen we alleen een 5 toevoegen, want K8 bevat al een 2; de 4 is al vermeld als kandidaat en in B3 (waarin R3 K9 zich bevindt) staan al een 6 en een 9.

Algemeen: bij het invullen van kandidaten kunnen we redeneren vanuit een blok, vanuit een rij of vanuit een kolom.

  • Als we de kandidaten in de cellen van een blok invullen kijken we steeds naar de rij en de kolom die deze cel kruisen om te zien welke kandidaten overbodig zijn, omdat deze cijfers al voorkomen in de kruisende rij of kolom.
  • Als we de kandidaten in de cellen van een rij invullen kijken we steeds naar het blok waarin deze cel zich bevindt en de kolom die deze cel kruist om te zien welke kandidaten overbodig zijn, omdat deze cijfers al voorkomen in dit blok of in deze kruisende kolom.
  • Als we de kandidaten in de cellen van een kolom invullen kijken we steeds naar het blok waarin deze cel zich bevindt en de rij die deze cel kruist om te zien welke kandidaten overbodig zijn, omdat deze cijfers al voorkomen in dit blok of in deze kruisende rij.

Vul nu zelf de ontbrekende kandidaten per rij, kolom of blok aan tot alle cellen gevuld zijn. Kies steeds een rij, kolom of blok waarin zo weinig mogelijk lege cellen staan. Begin bijvoorbeeld met R2. Hierin ontbreken de kandidaten nog maar in 2 cellen. Hier zie je het resultaat nadat alle kandidaten van deze Sudoku zijn ingevuld.

Nalopen van alle cellen

We lopen nu per regel en per kolom alle opties na. De resultaten zijn weergegeven in donkergroen.

Per regel

We beginnen per regel en starten met R1. We kijken of en hoe vaak we alle kandidaatcijfers tegenkomen in deze regel. Het cijfer 2 komt maar één keer voor en kan dus worden ingevuld in R1 K6, nadat de kandidaten in deze cel zijn uitgegumd. Verder zijn hier geen bijzonderheden.

Regel 2: geen nieuwe mogelijkheden.

Regel 3: tweeling van zes in R3 K1 en R3 K2. We onderstrepen deze.

Regel 4 tot en met 9: geen nieuwe mogelijkheden.

Per kolom

We starten met K1. We zien hier een tweeling van enen in R4 K1 en R6 K1. We onderstrepen deze beide cijfers 1 en verwijderen de andere cijfers 1 in dit blok B4.

In K2 zien we een tweeling van zevens in B4. Onderstrepen maar weer. Helaas geen kandidaten die kunnen worden verwijderd in dit blok.

In K3 markeren we twee enen in B7 als tweeling. Ook hier helaas geen kandidaten die kunnen worden verwijderd in dit blok.

K4 tot en met K7 bieden geen nieuwe informatie.

In K8 zien we een tweeling in B9. De zessen in dit blok die buiten K8 vallen mogen we dus uitgummen. Door deze gum-actie hebben we in K7 alleen nog zessen in B6. Ook deze onderstrepen we.

K9 biedt geen nieuwe inzichten.

Nalopen van de consequenties van de wijzigingen

De verdwenen kandidaten kunnen leiden tot nieuwe conclusies.

We lopen alle rijen, kolommen en blokken nog eens na:

R9 heeft nu een tweeling van 6 in B7. De overige vier kandidaat-zessen in B7 kunnen we dus schrappen.

In K3 staat nu nog maar één cijfer 6, namelijk in R6 K3. We verwijderen de kandidaten in deze cel en noteren de 6. 

Door het invullen van deze 6, kunnen we alle kandidaat-cijfers 6 verwijderen uit B4 en uit R6.

Hiermee is R5 K1 ook opgelost, want hier blijft met het weggummen van het cijfer 6 alleen het cijfer 2 over. We vullen deze in. Verder hebben we met het weggummen van de 6 in R6 K7 de helft van een tweeling verwijderd. De andere helft (de 6 in R5 K7) is dus de oplossing van R5 K7. We vullen ook hier een 6 in.

Tip: Als je een aantal cellen tegelijk kunt oplossen loop je het risico om enkele consequenties hiervan te vergeten. Daarom gebruik ik in dit soort situaties een markering (schuin streepje) rechtsboven in de cel om aan te geven dat deze nog op consequenties bekeken moet worden.
Zodra ik alle gevolgen van het invullen van dit cijfer heb verwerkt gum ik dit streepje weer uit.

Met het invullen van het cijfer 2 in R5 K1 kunnen we alle kandidaat-tweeën in B4, K1 en R5 verwijderen. 

Als we dit doen, houden we in R4 K3 alleen de kandidaat 5 over. En we vullen deze in. Nu kunnen we alle kandidaat-cijfers 5 in B4, K3 en R4 uitgummen.

Hiermee hebben we ook een andere cel opgelost, namelijk R2 K3 (=2). We vullen deze in.

Verder is door het uitgummen van het cijfer 2 in R5 K5 de helft van een tweeling van tweeën verdwenen. We weten dus nu dat R4 K5 (die de andere helft van de tweeling bevat) als oplossing het cijfer 2 heeft. Hiermee hebben we weer de helft een een tweeling (van het cijfer 4) geschrapt en de kandidaat 4 in R3 K9 is dus de oplossing van deze cel.

Verwijder alle kandidaatcijfers 2 uit R2, K3 en B1.

Door het verwijderen van de kandidaat 2 uit R2 K7 hebben we de helft van een tweeling geschrapt en we kunnen dus de andere helft van de tweeling tot oplossing promoveren in R3 K7. Dit wordt een twee!

Tot slot zien we in R7 K3 alleen nog maar een kandidaatcijfer 1 staan en we noteren deze als oplossing. Hiermee hebben we de helft van een tweeling van tweeën geschrapt en we stellen vast dat de overgebleven helft de oplossing is van R7 K2 (=2 dus). 

We gummen nu de enen uit in R7, B7 en K3 en de tweeën in R7, B7 en K2.

Dit leidt weer tot de oplossing 8 in R8 K3 en die weer tot 5 in R8 K2. 

Schrap nu nog de kandidaten die hiermee komen te vervallen en verwerk de gevolgen daarvan.

Hier het resultaat als je alles goed gedaan hebt, maar als je slim bent heb je misschien wel meer oplossingen gevonden en misschien heb je de hele Sudoku wel opgelost. Ik ben hier even gestopt.

Probeer nu zelf deze Sudoku volledig verder op te lossen. Kijk daarbij eerst naar alle cellen die nog maar één kandidaat bevatten. Vul deze één voor één in en kijk meteen naar de gevolgen voor het blok, de rij en de kolom waarin de cel staat. Verwijder meteen alle kandidaten die je kunt uitsluiten door de opgeloste cel en ga pas dan verder met de volgende cel die nog maar één kandidaat bevat.

Kijk ook naar regels, kolommen of blokken die een cel bevatten met een kandidaat die niet in de andere cellen van deze regel, kolom of dit blok voorkomt. Die kun je uiteraard meteen als oplossing voor de betreffende cel invullen!

Hoewel deze Sudoku op te lossen is zonder kennis van de volgende paragraaf, wil ik deze hier toch graag introduceren.

Werken met paren

We zien in R4 K1 en in R4 K8 dezelfde 2 cijfers staan, namelijk 1 en 4. Omdat elke cijfer in elke regel maar één keer voor kan komen, weten we dat één van deze twee cellen het cijfer 1 moet bevatten en de andere het cijfer 4. Dat betekent dat er in R4 verder geen enen en vieren meer kunnen voorkomen en die kunnen we dus schrappen.

Dan is dit het resultaat:

Algemeen: als er in één regel, kolom of blok twee cellen met alleen twee exact dezelfde kandidaten voorkomen, kun je die kandidaten in alle andere cellen van de rij, kolom of het blok verwijderen. 

Het eindresultaat:

Kun je dit niet helemaal reproduceren? Mail me dan gerust met een schermafdruk met uitleg waar het fout gaat.