Handledare: Mikael Goldmann

Relevanta dokument
Sudokulösare: Jämförelse av körtider för backtracking och mänskliga strategier

Algoritm för Sudokulösning med mänskliga strategier. ROBERT HEDIN och JACOB RYDH

Algoritm för Sudokulösning med mänskliga strategier

Lässtrategier för att förstå och tolka texter samt för att anpassa läsningen efter textens form och innehåll. (SV åk 1 3)

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Att göra examensarbete i Miljö och vattenteknik. Se W:s exjobbssida.

Matcha rätt hjärta till rätt patient med AI. Dennis Medved

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Självlärande Hare and Hounds-spelare med Q-learning. HARALD HARTWIG och MAX WESTERMARK

Att göra examensarbete i Miljö och vattenteknik

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Project Specification: Analysis of voting algorithms

Svårighetsgrad: Domare: Fjärdedomare:

1 LAG A: LAG B: DOMAROBSERVATÖRSRAPPORT SVENSKA FOTBOLLFÖRBUNDET

Algoritmer och problemlösning

Föreläsning 4: Kombinatorisk sökning

Tentamen: Programutveckling ht 2015

Jämförelse av skrivtekniker till cacheminne

AI utmaningar inom kvalitetssäkring. Henrik Emilsson Teststrateg, Nordic Medtest AB

Times-rankingen. Universitetsrankingen från Times Higher Education. Avdelningen för analys och utvärdering PM: 2010:02. Göteborgs universitet

Att göra examensarbete i Miljö och vattenteknik

Projektdokumentation för Othello

Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE

Att lösa Sudoku. Metoden Solve (börjar nedtill på sid 3)

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Taktikanalys i tennis

Huvudräkningsspelet Plump

TDDD92 Artificiell intelligens -- projekt

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.

Innan KAIST Första dagarna Studierna

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

Hur kan AI förbättra våra processer?

Tentamen TEN1 HI

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Kravspecifikation. Stefan Johansson D08 Grupp 15

Självlärande Hare and Hounds spelare med Q-learning

Föreläsning 8 Innehåll

matematik FACIT Läxbok Koll på Sanoma Utbildning Hanna Almström Pernilla Tengvall

Vad är det där? STEG 1: Få olika saker att visas på svarta tavlan

Ontologier. Cassandra Svensson

Algoritmer och datastrukturer TDA Fredrik Johansson

Tentamen Datastrukturer D DAT 035/INN960

Examensarbeten, litteraturstudier och teoretisk geoekologi / geografi. Gemensamma riktlinjer för hela institutionen

E-boksstudie vid Högskolebiblioteket i Jönköping: resultat och konsekvenser för förvärvet

Rapportskrivning Användarcentrerad Design. Anders Lindgren

Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019

Statistisk mönsterigenkänning

Ett spel skapat av Albin Wahlstrand

Mobil streckkodsavläsare

Problemlösning. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 10. Peter Dalenius Institutionen för datavetenskap

Introduktion till datateknik och datavetenskap

Nämnarens kryptoskola fördjupning. Enkel transposition

Klas Hejdenberg

Mälardalens högskola

Chief Information Officer

Digitalisering av vården

En innebandyspelare består av två olika grundpelare. Den ena är fysik som består av styrka, snabbhet, kondition och balans.

Att skriva vetenskapligt - uppsatsintroduktion

Genetisk programmering i Othello

Algoritmer, datastrukturer och komplexitet

FÖRBÄTTRA DIN PREDIKTIVA MODELLERING MED MACHINE LEARNING I SAS ENTERPRISE MINER OSKAR ERIKSSON - ANALYSKONSULT

Upprepade mönster (fortsättning från del 1)

Datateknik B, Tillämpad datavetenskap, 30 högskolepoäng Computer Engineering, Applied Computer Science, Intermediate Course, 30 Credits

Extramaterial till Matematik X

Tentamen Datastrukturer för D2 DAT 035

Artificiell Intelligens inom datorspel Är det ett seriöst ämne?

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

LINKÖPINGS UNIVERSITET. Rekommendationssystem

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Kundhandledning för EBIS. E-space Business Intelligence System. Version

Studienämnden Data

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Kognitionsergonomi. Grupp 4 Uppgift 1: Uttagsautomater Marpe Tanaka Jacob Fyge Åsa Jönsson Louise Knutsson

Matematik och det nya medialandskapet

[][] Arrayer med två index

Hur skriva och granska uppsats?

Grundläggande datavetenskap 4p

Kurser inom Datavetenskapligt kandidatprogram och Computer Science Master s programme våren 2010

Vad är Artificiell Intelligens (AI) Olika typer av AI och deras användningsområden Innovation med hjälp av AI Framtiden och etiska frågeställningar

JämKAS Plus. Trappsteg 5 6. Jäm Stöd

Artificiell Intelligens den nya superkraften

Självlärande Dots & Boxes-spelare

Exempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers,

TNK049 Optimeringslära

Handbok Solitär. Graeme Gott Ronny Yabar Aizcorbe Översättare: Stefan Asserhäll

Deadlocks. detektera och undvik

Rektangelpussel 1. Använd tre bitar vilka som helst och gör en 3 5-rektangel.

Shakey s värld med HTNplanering

Datastrukturer och algoritmer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

UPPGIFT 1 FORTSÄTT TALFÖLJDEN

Föreläsning 6: Analys och tolkning från insamling till insikt

Välkommen till Civilingenjör Datateknik! Stefan Forsström & Magnus Eriksson Avdelningen för informationssystem och -teknologi

UNIVERSITETSRANKNINGEN FRÅN QS 2015

Skriva, presentera och opponera uppsats på läkarprogrammet Examensarbete termin 10

Programmering. Analogt och med smårobotar. Nina Bergin

EN SCHACK AI BASERAD PÅ CASE-BASED REASONING MED GRUNDLIG LIKHET

Transkript:

2012-02- 23 Jacob Rydh Robert Hedin Sudoku Solver Projektspecifikation Handledare: Mikael Goldmann

Introduktion Vi ska studera och utforma olika algoritmer för att lösa Sudoku puzzel. Vi kommer testa olika algoritmer som finns tillgängliga och jämföra dem mot en brute-force lösning. Därefter kommer vi att utforma en egen algoritm för att lösa puzzlen. Problemformulering Ett sudoku spel går ut på att placera in siffror på ett rutmönstrat bräde (World Sudoku Federation, 2012). Varje bräda är uppdelad i mindre brädor som i sin tur består av 3 x 3 rutor. I början av spelet finns det ett antal siffror utplacerade på den stora brädan. Det gäller sen att själv fylla i rutorna med siffror från 1-9 på ett sådant sätt att inga dubbletter återfinns i vare sig samma rad eller samma mindre 3 x 3 bräda (Se bild 1). Det gäller så såväl vågrätta som lodräta rader samt inom varje liten 3 x 3 bräde. De initialt utplacerade siffrorna ska vara utsatta på ett sådant sätt att spelet endast har en korrekt lösning. Bild 1 Det huvudsakliga målet är att utforma en algoritm som på ett effektivt sätt löser puzzlet. Vi kommer jämföra hur snabb lösningen är i förhållande till en brute-force algoritm. Detta kommer att utföras på puzzel med varierande svårighetsgrad. Vår egenskapade algoritm kommer att bli analyserad för att se vilka styrkor och svagheter den har i förhållande till andra kända algoritmer.

Tillvägagångssätt Vi kommer till en början sätta oss in i kända algoritmer för att lösa puzzlet. Vi kommer delvis utforska vilka program som finns för att lösa puzzlet idag samt tala med folk som spelar sudoku på en högre nivå. Vi kommer därför ta kontakt med sudoku klubbar för att se vilka strategier mänskliga spelare använder för att snabbt lösa ett Sudoku puzzel. Det finns ett antal kända algoritmer för att lösa ett sudoku puzzel. Vi har tittat på en algroritm som löser problemet genom backtracking, där problemet tex kan konstrueras upp som en graf för att sedan lösas med hjälp av graffärgning. Komplexiteten för graffärgning är förvisso NPfullständigt men eftersom spelplanen är så pass liten går denna metod att använda. En annan algoritm som vi har tittat på är en som liknar mer hur en människa fungerar och hur vi löser ett sudoku puzzel. Genom att skriva ned de olika siffrorna en ruta kan innefatta kan man på ett smidigt sätt få en bättre bild över spelet och med uteslutningsmetoden kan man successivt stryka bort siffror tills bara den rätta finns kvar (A Pencil- and- Paper Algorithm for Solving Sudoku Puzzles 2009). Vi har även planer på att tittat på lösningar som använder sig av artificiell intelligens för att lösa problemet (Artificial Intelligence through Search: Solving Sudoku Puzzles 2008). Därefter kommer vi ta ut de bästa tillgängliga algoritmerna och strategierna, och analysera deras för- och nackdelar. Vår förhoppning är att vi sedan kommer att kunna skriva en egen algoritm som är effektivare än de nuvarande. Referenser World Sudoku Federation (2012). [Elektronisk]. Tillgänglig på: http://worldsudokufederation.org/. Hämtad februari 23, 2012. Prof. J.F. Crook, 2009. Notices of the AMS. volume 56 number 4. A Pencil- and- Paper Algorithm for Solving Sudoku Puzzles. Tillgänglig på: http://www.ams.org/notices/200904/rtx090400460p.pdf. Hämtad februari 23, 2012. Tim Kovacs. 2008. University of Bristol. What is Computer Science? #10. Artificial Intelligence through Search: Solving Sudoku Puzzles.Tillgänglig på: http://www.cs.bris.ac.uk/publications/papers/2000948.pdf

Tidsplan 12 februari - Vi börjar leta efter relevanta källor som kommer användas till bakgrundsinformation om problemet. Vi tar kontakt med klubbar och letar efter kända algoritmer som löser puzzlet. 20 februari - Vi har nu tillräckligt med källor för att börja att på riktigt analysera problemet och de algoritmerna vi hittat. Vi har även varit i kontakt med någon bättre spelare. Vi har byggt upp en databas med puzzel av olika svårighetsgrader som vi kan använda för att testa algoritmerna. 1 mars - Nu har vi tillräckligt med kött på benen för att börja skriva rapporten. Vi sammanställer det vi har kommit fram till och skriver ihop en struktur för den slutgiltiga rapporten. Vi börjar även med vår egen algoritm som kommer bygga på de analyser vi nu gjort. 8 mars - Halvvägsrapporten är klar. Vi arbetar vidare med vår algoritm. Utför test där vi på vår algoritm för att se hur väl den står sig.

1 april - Rapporten är färdigskriven och den ända som återstår är att gå igenom rapporten för att se till att den är utformad på ett sammanhängande och välförståeligt sätt. Vi lägger ganska mycket tid åt detta då vi vet av att den inte är vår starkaste sida.