dc.contributor.advisor | Saksa, Tytti | |
dc.contributor.author | Leskelä, Jesse | |
dc.date.accessioned | 2023-05-22T10:49:52Z | |
dc.date.available | 2023-05-22T10:49:52Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | https://jyx.jyu.fi/handle/123456789/87069 | |
dc.description.abstract | Tutkielman aiheena on tutkia japanilaisten ristikoiden eli nonogrammien ratkaisua syvyyshakualgoritmia käyttäen. Nonogram on Japanissa 1990-luvulla kehitetty pulmapeli, jossa on tarkoituksena värittää ristikon ruutuja rivi- ja sarakevihjeiden avulla erilaisia
ratkaisumenetelmiä hyödyntäen. Nonogram-ristikoiden ratkaisu on NP-täydellinen ongelma,
joten tehokasta polynomisessa ajassa ja kaikille ristikoille toimivaa ratkaisualgoritmia ei ole
löydetty. Tutkielmassa esitetään syvyyshakualgoritmin lisäksi vihjeisiin perustuva ratkonta-
algoritmi sekä simuloitua jäähdytystä hyödyntävä algoritmi. Tutkielman lopussa vertaillaan
eri julkaisuissa saatuja ratkontatuloksia edellä mainittujen algoritmien lisäksi myös näiden
yhdistelmien osalta.
Tutkimusten perusteella voidaan havaita, että syvyyshakumenetelmä löytää aina ratkaisun
mille tahansa ristikolle, mutta kyseinen menetelmä on erittäin hidas ristikon koon kasvaessa.
Simuloitu jäähdytys toimii vastaavasti hyvin pienillä ristikoilla, mutta ristikon koon kasvaessa suoritusaika kasvaa eksponentiaalisesti. Vihjeiden avulla ratkominen onnistuu polynomisessa ajassa, mutta arvaamista vaativissa ristikoissa kyseinen menetelmä ei pysty löytämään
kokonaista ratkaisua. Tällaisissa tapauksissa vihjeratkojien ja esimerkiksi syvyyshakualgoritmien yhdistelyn todettiin tuottavan hyviä tuloksia jopa suurten ristikoiden ratkaisussa. | fi |
dc.description.abstract | The aim of this thesis is to examine the solving process of japanese puzzles known
as nonograms using depth-first search. Nonogram is a puzzle game invented in Japan in the
1990’s, and the aim of the game is to color squares in a grid based on the given row and
column hints. Solving nonogram puzzles is an NP-complete problem, which means that no
efficient algorithm exists that can solve all puzzles in polynomial time. In addition to the
depth-first search algorithm, this thesis presents an algorithm, often called a line solver, that
uses row and column hints to solve the puzzle as well as an algorithm that uses simulated
annealing to find a solution. The final part focuses on the results gathered from different
publications regarding the solving time and efficiency of the aforementioned algorithms as
well as their combined uses.
The results indicate that depth-first search will always find a solution for any given puzzle but
the execution time will increase rapidly in conjunction with puzzle size. Simulated annealing
works well with smaller puzzles, but the execution time increases exponentially as puzzle
size increases. Line solvers can solve puzzles in polynomial time but cannot find a complete
solution should guessing be required to advance the solving process. In such cases combining
line solvers and other algorithms, depth-first search for instance, produced commendable
results even on larger puzzles. | en |
dc.format.extent | 22 | |
dc.language.iso | fi | |
dc.rights | In Copyright | en |
dc.subject.other | nonogram | |
dc.subject.other | japanilainen ristikko | |
dc.subject.other | ratkaiseminen | |
dc.subject.other | syvyyshaku | |
dc.title | Nonogram-ristikoiden ratkaisu syvyyshaulla | |
dc.type | bachelor thesis | |
dc.identifier.urn | URN:NBN:fi:jyu-202305223143 | |
dc.type.ontasot | Bachelor's thesis | en |
dc.type.ontasot | Kandidaatintyö | fi |
dc.contributor.tiedekunta | Informaatioteknologian tiedekunta | fi |
dc.contributor.tiedekunta | Faculty of Information Technology | en |
dc.contributor.laitos | Informaatioteknologia | fi |
dc.contributor.laitos | Information Technology | en |
dc.contributor.yliopisto | Jyväskylän yliopisto | fi |
dc.contributor.yliopisto | University of Jyväskylä | en |
dc.contributor.oppiaine | Tietotekniikka | fi |
dc.contributor.oppiaine | Mathematical Information Technology | en |
dc.type.coar | http://purl.org/coar/resource_type/c_7a1f | |
dc.rights.accesslevel | openAccess | |
dc.type.publication | bachelorThesis | |
dc.contributor.oppiainekoodi | 602 | |
dc.subject.yso | ongelmanratkaisupelit | |
dc.subject.yso | algoritmit | |
dc.subject.yso | tietotekniikka | |
dc.subject.yso | suorituskyky | |
dc.subject.yso | värittäminen | |
dc.rights.url | https://rightsstatements.org/page/InC/1.0/ | |