From GnuGo to AlphaGo Zero – A Roadmap for Solving Difficult Problems(moderndescartes.com) What do difficult problems like digital assistants, self-driving cars, theorem-proving systems, and compilers have in common? They all have a certain level of fuzziness in their problem specification and a large solution space that makes it incredibly difficult to find optimal solutions.
Fibonacci Hashing: The Optimization That the World Forgot(probablydance.com) I recently posted a blog post about a new hash table, and whenever I do something like that, I learn at least one new thing from my comments. In my last comment section Rich Geldreich talks about his hash table which uses “Fibonacci Hashing”, which I hadn’t heard of before.
Bubble sort is not robust either (2024)(entropicthoughts.com) Just after I published the previous article on bubble sort, I stumbled over another account claiming bubble sort is somehow more robust than better algorithms (emphasis mine):11 I should clarify that I generally agree with the author’s sentiment. It’s just this example that’s wrong and triggering to me.
Analytic Combinatorics – A Worked Example(grossack.site) Another day, another blog post that starts with “I was on mse the other day…”. This time, someone asked an interesting question amounting to “how many unordered rooted ternary trees with $n$ nodes are there, up to isomorphism?”. I’m a sucker for these kinds of combinatorial problems, and after finding a generating function solution I wanted to push myself to get an asymptotic approximation using Flajolet–Sedgewick style analytic combinatorics!
The DDA Algorithm, explained interactively(aaaa.sh) I've written a number of voxel raytracers, and all of them (all the good ones, at least) use the Digital Differential Analyzer Algorithm for raycasting.
Numbering should start at zero (1982)(cs.utexas.edu) When dealing with a sequence of length N, the elements of which we wish to distinguish by subscript, the next vexing question is what subscript value to assign to its starting element.