A bit late to the discussion, but this has deep connections. As a programmer, your job is provide business invariants using complexity management techniques. And checking that your state space is small is a tool with gigantic payoff.
Maintaining a small state space it why we want to let it crash. Each program instruction can potentially multiply the number of states possible. Erlang even has this whole "Let It Crash" philosophy as a guideline [1].
Maintaining a small state space is how you tame concurrent programs, where adding one thread can cartesian-product your state space. But there are tools like TLA+ which can help you build proofs over this state space. And build invariants that your threads can use safely. Hre is a visualizer of that state space [2]. Notice any resemblance to the graphs you just saw in the video?
Programming sometimes feel like this "Rush Hour" puzzle.
I think it's a side effect of the graph layout algorithm.
It seems all nodes repel and edges are elastic, so the layout algorithm is kind of like a physical simulation (think magnetic monopoles and rubber bands).
He seems to throw new nodes near the originating node, and lets the simulation stabilize.
I just went to submit this myself. It's one of the most enjoyable math explainers I've seen in a while, I love exploring these multidimensional graphs that describe so much about everyday life.
Beautiful visualization and presentation of this topic. It's not mentioned in the video, but the base mathematical puzzle shown is the classic traffic puzzle game "Rush hour".
A bit late to the discussion, but this has deep connections. As a programmer, your job is provide business invariants using complexity management techniques. And checking that your state space is small is a tool with gigantic payoff.
Maintaining a small state space it why we want to let it crash. Each program instruction can potentially multiply the number of states possible. Erlang even has this whole "Let It Crash" philosophy as a guideline [1].
Maintaining a small state space is how you tame concurrent programs, where adding one thread can cartesian-product your state space. But there are tools like TLA+ which can help you build proofs over this state space. And build invariants that your threads can use safely. Hre is a visualizer of that state space [2]. Notice any resemblance to the graphs you just saw in the video?
Programming sometimes feel like this "Rush Hour" puzzle.
[1] https://wiki.c2.com/?LetItCrash [2] https://prob.hhu.de/w/index.php?title=State_space_visualizat...
Thanks for posting. So much knowledge and skill required to create such a video.
I love the presentation/teaching concept for the SS. However, the wiggly, bouncy animation is an unnecessary distraction.
I think it's a side effect of the graph layout algorithm.
It seems all nodes repel and edges are elastic, so the layout algorithm is kind of like a physical simulation (think magnetic monopoles and rubber bands).
He seems to throw new nodes near the originating node, and lets the simulation stabilize.
Yeah, I get that, but if I want to see the difference in configurations, I can't because they keep bouncing and that's not even a property of the SS.
Speaking for myself, it helps to direct my visual attention to the changes happening in the graph as they are introduced. I find it helpful.
I just went to submit this myself. It's one of the most enjoyable math explainers I've seen in a while, I love exploring these multidimensional graphs that describe so much about everyday life.
Beautiful visualization and presentation of this topic. It's not mentioned in the video, but the base mathematical puzzle shown is the classic traffic puzzle game "Rush hour".
Thank you. Now I have loads more videos to watch. "Mandelbrot's Evil Twin" is kind of crazy trying to visualize a 6-dimensional space in my head.
Aside from nice animations and pleasing graphs, does this provide any intuition or insight?