Post by Dan ChristensenPost by d***@gmail.comWell... the proof is correct, I suppose. I'm not sure I see the point,
though. This task is easily formalized in terms of Markov decision
processes (and can be solved by common reinforcement learning
algorithms, I'm sure).
I was not familiar with the Monkey-Banana problem until a few days ago when
friend asked if I could formalize it in my DC Proof system. He said, it is
one of the central problems in AI. I devised a formalization based on a
number of functions mapping N -> {1,2} (see links given). I was surprised
and delighted that he seemed to think it was an important innovation, and a
new way of looking at the problem.
Post by d***@gmail.comWhat is the new state concept that has been introduced?
My friend said I was "introducing the state concept" for what he called
"action logic problems." I presume he was talking about my numbering of the
various problem states, defining each state in terms of previous ones, e.g.
for all i in N, if positionOfChair( i )=1 then positionOfChair( i+1 )=2. Is
this really something new? Any comments would be appreciated.
Regards,
Dan
Download my DC Proof software at http://www.dcproof.com
No, it's not new. Here is a prolog program for solving the monkey-and-banana
problem. This program, or variations of it, has been around for decades.
-------------------------------------------------------------------------
% Monkey and banana problem
% Description of legal moves
move( state(middle, onbox, middle, hasnot),
grasp, % Grasp banana
state(middle, onbox, middle, has) ).
move( state(P, onfloor, P, H),
climb, % Climb box
state(P, onbox, P, H) ).
move( state(P1, onfloor, P1, H),
push(P1, P2), % Push box from P1 to P2
state(P2, onfloor, P2, H) ).
move( state(P1, onfloor, B, H),
walk(P1, P2), % Walk from P1 to P2
state(P2, onfloor, B, H) ).
% canget(State,Moves): monkey in State can get banana by performing Moves
canget( state(_,_,_,has), [] ).
canget(State1,[M|List]) :- move(State1,M,State2), canget(State2,List).
solve(Moves) :- canget(state(atdoor,onfloor,atwindow,hasnot),Moves).
-------------------------------------------------------------------------
Notice how states are identified by the word 'state' in the program source.
Here is a sample run:
-------------------------------------------------------------------------
orion:~/lang/statespace/monkey-and-banana dseaman$ swipl
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.10)
Copyright (c) 1990-2006 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- [mb].
% mb compiled 0.00 sec, 2,280 bytes
Yes
?- solve(Moves).
Moves = [walk(atdoor, atwindow), push(atwindow, middle), climb, grasp]
Yes
?-
-------------------------------------------------------------------------
--
Dave Seaman
U.S. Court of Appeals to review three issues
concerning case of Mumia Abu-Jamal.
<http://www.mumia2000.org/>