Your D1/D2 model seems to pretty accurately reflect the structure of the striatum (though in the striatum, D1 and D2 would be different cell subpopulations within the same tissue, just with different dopamine receptors. There are also cells that appear to be neutral to dopamine in the mix). There’s also the rest of the basal ganglia which does not seem to be modelled here.
The Globus Pallidus, etc. appears to apply some simple weighting on the activity of D1 and D2, and combine them to generate the output of the basal ganglia. However, rather than directly drive the cortex, they instead drive the relay cells in the thalamus that then drive the cortex.
From my own analysis, it seems like that’s enough to implement some simple search algorithms in cortical circuitry. Specifically, algorithms equivalent to the DFS + Smart Backtracking approaches that are typically used in SAT Solvers, Code Synthesis, and other domains where the goal is to solve some kind of crazy-hard problem that humans seem to be naturals at. Very interesting stuff.
This would also suggest a very different approach to problem-solving between HTM and traditional neural networks, and may suggest that some GOFAI-like algos naturally emerge from HTM, though that’s a fairly deep rabbit hole that I’m not going to get into here.
Also, on the subject of memory bandwidth requirements for HTM, it seems to me like that, at least on large scales, HTM might not require quite as much bandwidth as would be expected. Brain activity is rather sparse on large scales, and it’s not uncommon to have sparsity across cortical columns, not just within them.
I’ve been thinking a bit about some things that could be done with bloom filter -like data structures to figure out which minicolumns to quickly discount minicolumns that won’t become active. Seems like an interesting approach to optimization.
Also, props for discussing HTM on VLIWs!