[ANN] tarantella 1.1.1

620 views
Skip to first unread message

Mark Engelberg

unread,
Jul 29, 2019, 4:23:28 AM7/29/19
to clojure
"You won't believe this one weird trick for solving Sudokus and other puzzles."

Tarantella is an implementation of Knuth's Dancing Links algorithm. I demonstrated in my 2017 Clojure Conj talk how it can be used to solve an assortment of puzzles (https://youtu.be/TA9DBG8x-ys) and some of you may have played around with the library after that talk.

I've recently made a number of improvements and refinements, and completely overhauled the README. Those of you with an interest in puzzles and/or constraint programming may enjoy reading through the README and getting a feel for how this library can be applied to certain classes of constraint problems.

Tarantella is also a great case study in the combination of speed and expressiveness you can get by writing a Clojure API for a lower-level implementation written in Java.

Jason Felice

unread,
Jul 29, 2019, 10:10:22 AM7/29/19
to clo...@googlegroups.com
This is really nice talk that's given me a bunch to think about.  Thanks!

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/CAORbMOPOPRZ%3DeJOWT3AKrzrfLTxq%2B4rOrGDpH5DxHLAOB0gxkQ%40mail.gmail.com.

Steve Miner

unread,
Jul 30, 2019, 5:18:52 PM7/30/19
to clo...@googlegroups.com
Thanks for updated Tarantella.  I also enjoyed re-watching your talk.  

I just wrote a blog post to cover a simple solution to the Eight Queens problem using Tarantella.

Mark Engelberg

unread,
Jul 30, 2019, 7:03:40 PM7/30/19
to clojure
Thanks for writing the n-queens code and the blog post. It's great to see tarantella performing well.

There's a certain amount of overhead associated with setting up the dancing links data structure, so I would conjecture that as your problem gets more complicated (e.g., increasing n), you'd see tarantella become competitive with the fastest of your hand-rolled implementations.

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.

Steve Miner

unread,
Jul 31, 2019, 9:31:54 AM7/31/19
to clo...@googlegroups.com
My original benchmarks were for Eight Queens.  I ran some more tests with larger N and found that at N=14, the Tarantella version is the clear performance winner on my machine.
Reply all
Reply to author
Forward
0 new messages