GithubHelp home page GithubHelp logo

taios / sokoban Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gemkodor/sokoban

0.0 0.0 0.0 3.03 MB

A Sokoban game made with python and pygame

Python 26.26% Shell 0.46% Jupyter Notebook 73.29%

sokoban's Introduction

Sokoban with automated planning

This is the solution to task 6B from the fourth NI-UMI lecture at FIT CTU in 2020/21.

CTU username: saframa6

Solution

First I have created domain and task. Latter is automatically generated. Then I used Fast Downward planning system. Tested were all available solvers provided by Fast Downward. At the time of testing there we 14 solvers available. Each solver had 30 minutes limit to find and improve its solution on the given grid. However, only 6 of them were able to find a solution. Best solution was 271 steps found by seq-sat-fdss-1 in 46 seconds.

Second I have forked and modified the existing SOKOBAN game and simulated the best path in it.

Lastly, from the output of solvers, I have created graphs describing solver performance.

Performance

fast downward ipc planners comparison on sokoban
Figure 1: Performance comparison of Fast Downward planning systems. Each had 30 minutes to run and improve its solution. Planners were compared by their search time and plan cost, which is the number of movements to complete given SOKOBAN game. If the solver found multiple solutions, the one with the lowest plan cost is displayed.
fast downward ipc planners comparison on sokoban table
Figure 2: Performace results of Fast Downward planning systems. nan means that the planner did not find any solution in 30 minutes. If the solver found multiple solutions, the one with the lowest plan cost is displayed.

Video of the best solution

  • seq-sat-fdss-1, 271 steps, search time 46 seconds

video

sokoban's People

Contributors

taios avatar gemkodor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.