Okay here's the first thing I did with THRML by
@extropic
It's just a basic sudoku solver. Thermodynamic computing is a bit overkill for this task but I think since humans can actually do sudoku, it's a good intuition for what's going on under the hood.
With sudoku, there are many overlapping constraints. You start with a partially filled puzzle, which are the initial conditions, but then other rules are: no duplicates on any row, column, or square.
Now, with a sudoku problem, you know there is ONE singular solution, or a "low energy state" i.e. where there are no rule violations or collisions.
So then what you do is you program those "clamped" initial values into the TSU, and you bake in the rules (no duplicates) and then, due to the laws of thermodynamics and electricity... it just sort of settles into the correct solution (this is "annealing")
The reason I think this is such a good example of what TSUs do is because for humans (and classical computers) it's more or less a "guess and check" process. No matter what method you use with classical computation or human computation, it's an iterative refinement process of sequential steps.
But, with sudoku, as you can see in the output below, it's a single step. That's because the TSU looks at the whole problem globally.
Here's how I did this: ChatGPT PRO 🤣
No joke, ChatGPT pro one-shotted this entire problem. There were several refinements we made, though it was mostly around UI and validation (not the core logic). However, we did do an optimization step to make sure we were using the correct block batching from the THRML library.