;;; travel.scm Dave Reed 9/04/08 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define MOVES '((Omaha --> Chicago) (Omaha --> Denver) (Chicago --> Denver) (Chicago --> LosAngeles) (Chicago --> Omaha) (Denver --> LosAngeles) (Denver --> Omaha) (LosAngeles --> Chicago) (LosAngeles --> Denver))) (define (GET-MOVES state) (define (get-help movelist) (cond ((null? movelist) '()) ((equal? state (caar movelist)) (cons (caddar movelist) (get-help (cdr movelist)))) (else (get-help (cdr movelist))))) (get-help MOVES)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define DISTANCES '((Omaha (Omaha 0) (Chicago 500) (Denver 400) (LosAngeles 1700)) (Chicago (Chicago 0) (Omaha 500) (Denver 700) (LosAngeles 2000)) (Denver (Denver 0) (Omaha 400) (Chicago 700) (LosAngeles 1400)) (LosAngeles (LosAngeles 0) (Omaha 1700) (Chicago 2000) (Denver 1400)))) (define (HEURISTIC state goalState) (- 0 (cadr (assoc goalState (cdr (assoc state DISTANCES))))))