Spider Solitaire is NP-Compleet Kenneth Verstraete 21 april 2016 1 Inleiding Spider Solitaire is een populair kaartspel dat alleen gespeeld wordt. Het werd/wordt standaard bij o.a. Microsoft Windows meegeleverd. Voor dit spel worden twee kaartspellen gebruikt. Dit betekent dus dat er 104 kaarten zijn of twee kopieën van de vier kleuren. Het doel van het spel is om alle kaarten op tafel weg te spelen. 2 Het spel Om het spel te starten moeten de kaarten volgens de volgende regels op tafel gelegd worden: Er worden tien tableaustapels gemaakt, vier van deze stapels bevatten elk zes kaarten, de andere zes stapels bevatten elk vijf kaarten. 54 kaarten bevinden zich dus in deze stapels. In elk van de stapels liggen alle kaarten behalve de bovenste omgekeerd op tafel. De resterende 50 kaarten worden bijgehouden in een apart deck. Hierin is geen enkele kaart zichtbaar. 2.1 Regels Het spel wordt dan volgens de volgende regels gespeeld: Kaarten kunnen enkel in sets uit het spel verwijderd worden. Dit kan als en slechts als ze in een stapel liggen waarin het volgende geldt: De stapel bevat minstens 1 kaart van iedere waarde van een bepaald kleur. De kaarten van een set liggen op elkaar en worden dus niet onderbroken door kaarten van een ander kleur. 1
De kaarten van een set zijn gesorteerd van groot naar klein waarbij de kaart met de kleinste waarde bovenaan de stapel ligt. Wanneer hieraan voldaan is, moet de set uit het spel verwijderd worden. Alleen de bovenste kaart van een stapel is zichtbaar, er kan geen nieuwe kaart in een stapel omgedraaid worden zolang de bovenste kaart niet op een andere stapel gelegd wordt. Kaarten kunnen van een stapel genomen worden als ze: bovenaan de stapel liggen. een set van kaarten zijn die dezelfde kleur hebben en waarbij, als t de bovenste kaart is, elke kaart in die set waarde t + b heeft met b het aantal kaarten op die kaart. Er kan slechts 1 kaart of een set van kaarten op hetzelfde moment genomen worden. Kaarten en sets mogen alleen bovenaan een stapel, met bovenste kaart t, geplaatst worden als de stapel leeg is of als de genomen kaart of de laatste kaart in de genomen set waarde t 1 heeft. Als er genoeg kaarten over zijn in het deck, dan kunnen die op de tableaustapels gelegd worden, 1 op elke stapel van links naar rechts. De speler wint als alle kaarten uit het spel verdwenen zijn. 2.2 Veralgemening Omdat een vaste grootte van het deck enkel een eindig aantal startopstellingen toelaat, betekent dit dat een computer die al die startopstellingen kent een spel Spider Solitaire in constante tijd kan berekenen. Om het probleem interessanter te maken, wordt de grootte van het deck variabel gemaakt. Dit wordt gedaan door het aantal kleuren of het aantal kaarten per kleur te laten variëren. In deze paper werd gekozen om het aantal kaarten per kleur te laten variëren. Om de complexiteit te kunnen analyseren is het ook nodig dat de speler alle kaarten en hun volgorde kan zien. Andere mogelijke vaste getallen die variabel gemaakt kunnen worden zijn de tableaubreedte en de grootte van het deck. 2.3 Soorten zetten Er zijn twee soorten zetten, het nemen en het leggen van een kaart. mogelijk voor zowel een enkele kaart of een sequentie van kaarten. Dit is 2
3 Spider Solitaire is NP-compleet Stelling 1 Spider Solitaire NP Er zijn twee soorten zetten waarbij de actie niet meteen ongedaan gemaakt kan worden: 1. Het wegnemen van een kaart die niet matchte met de bovenste kaart van het verborgen gedeelte van de stapel. 2. De zetten waarbij volledige sets gemaakt worden en deze dus van tafel verdwijnen. De zetten van de eerste soort komen alleen voor bij de opstelling van het initiële tableau of wanneer kaarten uit het deck gespeeld worden (als deze er is). Dus het aantal zetten van de eerste soort is beperkt door het aantal van die kaarten in het initiële tableau en het aantal kaarten in het deck. Kaarten verdwijnen uit het spel wanneer ze een volledige set vormen, hierdoor is het aantal zetten van de tweede soort beperkt door het totaal aantal kaarten in het spel. Omdat er een polynomiale grens is op het aantal zetten dat niet ongedaan gemaakt kunnen worden, is het aantal acties in de oplossingen ook polynomiaal begrensd. De soorten zetten die het Spider Solitaire probleem tot voltooiing brengen zijn de zetten die kaarten in sets plaatsen die later vervolledigd zullen worden. Om de nodige kaarten te verkrijgen is het meestal nodig om deze uit een stapel te halen waar ze niet vanboven liggen, hierdoor is het nodig om eerst de kaarten bovenop de nodige van de stapel te halen. Er zijn 8n kaarten in het spel, aangezien de hoogste kaart van elk kleur niet verplaatst hoeft te worden (want deze liggen onderaan sets), zijn er maximaal 8n 8 kaarten die verplaatst moeten worden. In het slechtste geval zitten deze kaarten onderaan de stapel en zijn er dus maximaal 8n 1 zetten nodig om deze vrij te krijgen. Dit resulteert in een polynomiale bovengrens van 64n 2 72n + 8 zetten tussen de niet-omkeerbaare zetten door. Stelling 2 Spider Solitaire NP-hard Het bewijs verloopt via een reductie van 3SAT. Stel (V, C) een 3SAT -instantie, met V = {v 1, v 2,..., v n } een set van variabelen en C = {c 1, c 2,..., c n } een set van clausules over V die exact drie literalen bevatten en neem l i,j als de j-de literaal van de i-de clausule. Om het bewijs duidelijker te maken wordt gebruik gemaakt van het voorbeeld uit figuur 1. Voor de overzichtelijkheid worden de literalen over V geordend met v i de (2i 1)- de literaal, v i de 2i-de literaal en l k de k-de literaal. Definieer ook o k als de som van het aantal voorkomens van l k voor alle k k. Nu een aantal definities: De selectiewaarde: val s = C + 2n + 2 De waarde van l k : val k = val s + 2k + 2o k 3
Figuur 1: Voorbeeld van een Spider Solitaire Opgave. 4
De clausulewaarde: val c = val 2n + 2 De bodemwaarde: val B = val c + 6 C De fundamentwaarde: val F = val B + 4 C + 2 Zoals in figuur 1 te zien is, zijn de stapels in vier groepen verdeeld: 1. De eerste 2 V + 1 stapels worden de literaalselectiestapels genoemd. Constructie: De eerste stapel bevat alleen de kaart (,val s ). De andere stapels bevatten elk drie kaarten. Elke stapel komt overeen met een literaal. De stapel voor l k is gedefinieerd als (,val k ), (,val s k 1), (,val s k) als k oneven is en (,val k ), (,val s k), (,val s k + 1) als k even is. 2. De volgende 4 C stapels worden de clausulestapels genoemd. Deze worden onderverdeeld in groepen die elk vier stapels bevatten. Elke groep komt overeen met een clausule. Constructie: Elke groep is als volgt gestructureerd: er zijn vier stapels in elke groep. Definieer de bodemwaarde voor de groep als val B + 4(i 3) en de basiswaarde voor de groep als val c + 6(i 1). De eerste drie stapels bevatten elk vier kaarten. De eerste en tweede kaart zijn de bodemwaarde en de basiswaarde + 1, onafhankelijk van het kleur. De derde en vierde kaart zijn afhankelijk van de literalen in de clause en zijn gedefinieerd als (,val k 2m4) en (, val k 2m+1) waarin m berekend wordt zodat (i,j) het m-de voorkomen is van l k. De kaart in de vierde stapel is gedefinieerd als de basiswaarde voor de groep met als kleur. 3. De volgende acht stapels worden de fundamentstapels genoemd. Constructie: De acht stapels hebben elk 1 kaart en zien er als volgt uit: (, val F ),(, val F ),(, val F ),(, val F ),(, val F ),(, val F ),(, val F ),(, val F ). 4. De laatste stapel bevat de meeste kaarten en alle duplicaten, deze wordt de grote stapel genoemd. Constructie: De bovenste n kaarten van deze stapel zijn kaarten die geen twee keer voorkomen en enkel naar een vierde stapel in de clausulegroepen verplaatst kunnen worden. Om ervoor te zorgen dat dit niet te vroeg gebeurt, krijgen ze de waarde val B + 4 C. Claim: Een Spider Solitaire opgave kan opgelost worden als en slechts als er een vervullende toekenning bestaat voor de variabelen van de logische formule. Bewijs: Stel dat er een vervullende toekenning a : V {true, f alse} bestaat, dan lost de volgende strategie de opgave op. Voor alle i {1, 2,..., n}, verplaats de twee bovenste kaarten van de literaalselectiestapels die overeenkomen met de literalen die waar zijn volgens de vervullende toekenning naar de eerste stapel. De vrijgekomen schoppen kunnen dan gebruikt worden om kaarten van 5
de clausulestapels te halen. Deze worden de literaalkeuzekaarten genoemd. In het voorbeeld zijn dit de 15, 27 en 41 van. De eerste drie stapels van iedere clausulegroep komen overeen met de literalen van die clause. De bovenste twee kaarten van die stapels kunnen verplaatst worden als en slechts als de literaalkeuzekaarten van de overeenkomende literaal vrijgekomen zijn. Omdat de opgave een vervullende toekenning heeft, is er in iedere clause minstens 1 literaal die waar is. Daardoor is het in iedere clausulegroep mogelijk om de kaart in de vierde stapel naar een van de eerste drie stapels te verplaatsen. Als dit gebeurd is voor alle clausules, kan voor minstens 1 stapel de bovenste twee kaarten naar een lege stapel verplaatst worden waardoor kaarten met een hoge waarde vrijkomen. Het probleem lost zichzelf dan op omdat alle kaarten in volgorde op de fundamentstapels terechtkomen. Stel nu dat Spider Solitaire opgave oplosbaar is. Het is onmogelijk om de onderste kaart van een stapel te verplaatsen, behalve van de vierde stapels in de clausulegroepen, voordat een kaart van de grote stapel genomen wordt. Dit betekent dat de eerste zet van de bovenste kaart van de grote stapel enkel naar een lege vierde stapel kan gaan. Als eerste zet kan de bovenste kaart ook op geen enkele kaart gelegd worden want alle mogelijke kaarten liggen eronder. Samen betekent dit dat er dus geen andere mogelijkheid is dan de bovenste kaart van de grote stapel op een vierde stapel van de clausulegroepen te leggen. Voor iedere clausulegroep moet de kaart uit de vierde stapel verplaatst worden, dit kan alleen wanneer de twee bovenste kaarten van een van de eerste drie stapels verplaatst zijn. De enige manier waarop dit kan gebeuren is als er bodemkaarten van de literaalselectiestapels vrijgekomen zijn. Aangezien het niet mogelijk is om de literaalkeuzekaarten van zowel v i als v i vrij te spelen, eist dit het bestaan van een vervullende toekenning aan de variabelen waarmee het nodige bewezen is. Referenties [1] Complexity results for standard benchmark domains in planning., Artificial Intelligence 143 (2), pp. 219-262, 2003 [2] Jesse Stern, Spider Solitaire is NP-Complete, http://arxiv.org/abs/1110.1052 6