IMPORTANT: Your code must load and run correctly! There is now no excuse for it not to: you have a test function which will load your file and at least check that you have defined the proper procedures. A handful of students had some problems last time; these problem were things such as unbalanced parentheses, having things other than your code in the file. There will be a 10% penalty if we have to edit your file to make it work with our tester.
Also note the limit on heap memory as described towards the bottom of this page.
Your scheme code file should look something like this:
; Your Name (load "a3code") (load "a3tests") (define (ep-children s) ...) (define (ep-manhattan state goal) ...) (define (ep-heuristic state goal) ...)
You cannot do this from the newer CS machines because they do not have AFS. You can however, do it from the older machines such as dishwasher. You will have to klog -cell rpi.edu and then copy your file to /afs/rpi.edu/dept/cs/ai/submit3.
Your answer should definitely be smaller than the text's suggested answer, and you should try to devise a way to avoid identical expression trees from appearing at multiple nodes in the search tree.
The performance evaluation will be measured in terms of cpu time, number of nodes evaluated, and whether the solution returned is optimal. It should be fairly easy to get at least half of the points for this part of the problem. (The breakdown is as follows: 8 points for part (a), 16 points for part (b), and 6 points for part (c).) It should take more work to get almost all the points, and I'd expect only a few students to have heuristics that garner all 16 points for this problem.
I've put a few suggestions for heuristics on this page if you're looking for suggestions on something to implement.
The compiled code only runs on x86 Intel hardware for MIT Scheme versions 7.5. I'm working on a compiled version for SunOS with MIT Scheme 7.3. (Mon. 9/25 update: still no luck yet; i'll try some more but at this point can't guarantee that it will be availible for Sun hardware.)
scheme -largewill start scheme with more memory than usual (about 3-4 times, i think). You can also specify a size for the heap directly:
scheme -heap 4000This sets the heap to 4000K words. This should be more than large enough for any decent heuristic. This is what the web tester will use, so your program must execute in this size heap.
The -large flag is equivalent to setting the heap to around 1200. You can get memory information with the Scheme command (print-gc-statistics).