Russel, So, you're talking about a programming environment which is:
--Functional (and "managed" in your specific sense) --Memoized --Has a well-integrated argmax function, which can take arbitrary code as an objective, and do smart things to maximize The kind of system I'm thinking of: --Computation model is "weighted deduction" as in Dyna --Supports memoization as part of a suit of optimizations for weighted deduction --Supports max as one of the summarization operations So, I suppose the goals are not directly compatible. Weighted deduction is not obviously helpful for metaprogramming! On the other hand, I think the sort of flexible decomposition which you described for maximization (spend specific amounts of time on different sub-problems) might benefit from some language support. By this I mean that it may be helpful to have more than just a well-integrated argmax function which can take (and produce) arbitrary code. Some of what you said reminded me of prolog-like reasoning: there are several ways to achieve a goal (similar to having several rules which may produce a result), and the system should spend time on each in an intelligent way (and do so recursively). Merely giving an objective function to an argmax does not specify this kind of structure. This might rely on an integration of functional programming with logical programming, maybe based on Curry or Mercury. However, that only integrates constraint structure. In order to specify composeable structure for real-valued optimization problems, something more like weighted deduction might be helpful. (But again, it's not so obvious that weighted deduction is a good model for metaprogramming.) On Sun, Oct 14, 2012 at 9:03 AM, Russell Wallace <[email protected]>wrote: > On Fri, Oct 12, 2012 at 6:12 AM, Abram Demski <[email protected]>wrote: > > (good thoughts about chunking and memoization which I'm still mulling over) > > In any case, most of this is wild speculation based on a distinct lack of >> experience implementing such systems... >> > > Yep. One of the tricky parts of this whole business is it's hard to think > clearly about what heuristics etc. an AI system could usefully employ > without being able to try some out; but that would require an adequate > framework within which to write them; but it's hard to design such a > framework without having figured out some use cases in detail first; but > that requires thinking clearly about heuristics etc. Chicken and egg. > > In practice I end up basically bouncing back and forth between thinking > about one or the other, hopefully slowly converging. Right now I'm again > trying to sketch an end to end use case in the domain of software > verification on the 'assume you have an ideal language implementation in > which to write the code' basis. > *AGI* | Archives <https://www.listbox.com/member/archive/303/=now> > <https://www.listbox.com/member/archive/rss/303/7190161-766c6f07> | > Modify<https://www.listbox.com/member/?&>Your Subscription > <http://www.listbox.com> > -- Abram Demski http://lo-tho.blogspot.com/ ------------------------------------------- AGI Archives: https://www.listbox.com/member/archive/303/=now RSS Feed: https://www.listbox.com/member/archive/rss/303/21088071-c97d2393 Modify Your Subscription: https://www.listbox.com/member/?member_id=21088071&id_secret=21088071-2484a968 Powered by Listbox: http://www.listbox.com
