I recently stumbled upon a blog post by Alejandra González (a.k.a @blyxyas) that seeks to compress a tic-tac-toe game state into as few bits as possible. She arrived at a solution in 18 bits. This got me thinking, can we do better?
This one class I took in college presented a problem with a custom puzzle that involved closing loops on points laid out in a checkerboard pattern. If you implemented your solution using Lisp, you got a letter grade bonus, where otherwise the only criterion for your score was the performance of your solution.
I’m reminded of this problem I faced years ago because having a compact representation that is useful was key to extracting maximum performance.
Ultimately, I hand coded in x86 SIMD instructions to solve many instances of the problem in parallel, packing about eight problem instances into one register. It was the highest performing solution in the class and it both angered and disappointed the professor.
A useful, compact representation is key to efficiently solving many problems.
This one class I took in college presented a problem with a custom puzzle that involved closing loops on points laid out in a checkerboard pattern. If you implemented your solution using Lisp, you got a letter grade bonus, where otherwise the only criterion for your score was the performance of your solution.
I’m reminded of this problem I faced years ago because having a compact representation that is useful was key to extracting maximum performance.
Ultimately, I hand coded in x86 SIMD instructions to solve many instances of the problem in parallel, packing about eight problem instances into one register. It was the highest performing solution in the class and it both angered and disappointed the professor.
A useful, compact representation is key to efficiently solving many problems.