An open API service indexing awesome lists of open source software.

https://github.com/csurfer/scala-dlx

Dancing links based implementation of AlgorithmX in Scala
https://github.com/csurfer/scala-dlx

algorithm dancing-links scala sudoku sudoku-solver

Last synced: 23 days ago
JSON representation

Dancing links based implementation of AlgorithmX in Scala

Awesome Lists containing this project

README

        

# scala-dlx

[![Build Status](https://travis-ci.org/csurfer/scala-dlx.svg?branch=master)](https://travis-ci.org/csurfer/scala-dlx)
[![Licence](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/csurfer/scala-dlx/master/LICENSE)

**Dancing links(DLX)** based implementation of **AlgorithmX** in **Scala** to solve **Exact Cover** based problems.

## References
- [Prof. Donald Knuth's paper called Dancing Links](https://www.ocf.berkeley.edu/~jchu/publicportal/sudoku/0011047.pdf)
- [AlgorithmX](https://en.wikipedia.org/wiki/Knuth's_Algorithm_X)

## Links to different parts of the project
- [Examples](src/main/scala/examples) of different problems. **(Start here to get a feel for the problem at hand)**
- [DLX core](src/main/scala/dlx) consists of
- Implementation of classes requried to implement DLX structure
- Implementaion of AlgorithmX using DLX.
- [Problem Types](src/main/scala/problemtype) consists of implementations of different problems we can solve using AlgorithmX.
- Set exact cover
- 9x9 Sudoku solver (Easy and Hard)
- [Utility](src/main/scala/util) and other generic functions.

## What to expect in future ?
- [Pentomino](https://en.wikipedia.org/wiki/Pentomino) solution using AlgorithmX once I figure out how exactly I can map the constraints.