Search over Algebraic Graphs
A compact algebraic graph can represent quadratically many arcs. A linear-size switching graph lets Dijkstra search it without expanding them.
My personal blog where I delve into whatever seems interesting! You can find a history of my posts here.
A compact algebraic graph can represent quadratically many arcs. A linear-size switching graph lets Dijkstra search it without expanding them.
Years ago in New York City’s Bryant park I came across a pop up store that sold puzzles, one of which was this wooden cube. I didn’t know what it was back then, but simplicity of the puzzle and the feel of the wooden blocks was attractive to me and so I bought it.
Lately I’ve been thinking about time series analysis to aid in Reflect’s insights features. Towards this end, I’ve had a Hacker News thread about anomaly detection bookmarked in Later. I finally got to looking at it and there was a comment that mentioned the article left out matrix profiles, which I had never heard of, so I decided to look into them.
Recently I’ve been working in static analysis land and as a part of that have been familiarizing myself with data flow analysis. I look at a fair amount of MIR and so decided to delve into the rustc_mir_dataflow crate to see how these things are handled in the rust compiler. There is a helpful introduction to this topic in the rustc dev guide, and this post fleshes things out a bit.
It would be such a shame if I couldn’t combine Rust, recursion schemes, and graphs into one blog post (with the added bonus of leaving out C++). So here we go!
I was recently looking into implementing some
speculative execution functionality using std::async; based on some seed data,
the goal was to asynchronously run a compute-intensive calculation
where the result may or may not be needed at a later time. When new seed
data became available, it was an indication that any
in-progress computation should be terminated early and that
its result be considered defunct.
In a previous post we utilized recursion schemes in prototyping a genetic algorithms library. I wanted to look more into their use cases and was happy to discover that they could even be leveraged for dynamic programming.
This post assumes a basic understanding of genetic algorithms and the terminology associated with them, as well as a cursory understanding of recursion schemes; resources for both may be found scattered within the post. All source code can be found here.