Dear CP-Community,
Gene's recent threads really got me thinking: What could help "spread the message" about CP (in the applied sense)?
And I think one thing that ML did really well was hammering the concepts of "supervised learning", "unsupervised learning" and "reinforcement learning" into people's heads. And by that I mean literally anyone ...
Practictioners can look at a problem and match it to their own business needs: "Oh this system can tell cats apart from dogs; I need to tell parts with scratches apart from good parts <- that's my system!
On the other hand, in CP (perhaps algorithms in general), our problems are very hard to grasp for people outside of computer science / math
* Set partitioning
* Latin squares
* SAT
While we would have much more tangible and powerful "problem classes"
* Scheduling-like problems
* Packing-like problems
And I think that this could provoke a similar effect.
To help with that (getting newcomers more interested), I've started a repository with a focus on solution visualizations based on Python and MiniZinc:
and uploaded a bunch of YT videos
I know that we already have CSPlib but I think this is geared more towards benchmarks (solution counting, propagation strength, runtimes etc.) for CP researchers. I'd be happy to port some of the more applied problems including a visualization to the repo.
I hope that you find these resources useful (maybe for outreach and teaching), I welcome all kinds of contributions and happy to hear your feedback.
Cheers
Alexander