I dunno, I still think it might be possible to make tractable program induction through MCMC.<p>I&#x27;ve been trying (but failing) to do so by clustering similar generative rules of different complexity together then getting the algorithm to search the grammar space in a way that it recursively tries simpler models first then goes on to try generating (and learning) more complex rules that are known to have similar output to the best simpler ones.<p>My intuition is that you have to cluster your generative rules into an taxonomy that your algorithm can navigate from the top. It&#x27;s exponentially inefficient to try to recognize &quot;dog&quot; until you have recognized that the simpler &quot;animal&quot; is a good approximation.<p>I also think that in the ultimate solution, the output leaf statements of the grammar will be parametrized like a normal programming language, so that for example, the algorithm can generate a color, a radius and then generate 100 circles referencing this single color and radius to represent repeated patterns without having to learn their size and color individually when they are clearly homogeneous or invariant across a bunch. The bayesian, occam&#x27;s razor, solution to a bunch of similar things that you don&#x27;t have a category for yet is shared parameters. These parameters enable learning with very few examples. The algorithm doesn&#x27;t have to learn a full new category to make good predictions, it can simply notice a functional parametric pattern in a part of a scene and extrapolate immediately.<p>I haven&#x27;t cracked it however. It&#x27;s grueling to debug probabilistic algorithms compared to clear cut binary ones!