Unformatted text preview:

30 DYNAMIC PROGRAMMING FOR PATH DESIGN 109 30 Dynamic Programming for Path Design Given the transition costs in red, what are the maximum and minimum costs to get from node 1 to node 11? This situation is encountered when planning paths for autonomous agents moving through a complex environment, e.g., a wheeled robot in a building. 2 9112 5 4343 4 8 83 54 14 7 58 46 54 57 34 10 4 5 47 Solution: The minimum cost is 16 (path [1,6,9,11] or [1,2,8,9,11]) and the maximum value is 28 (path [1,4,5,6,7,9,11]!). The attached code uses value iteration to find these in two and five iterations, respectively. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Value iteration solution of deterministic dynamic programming. % The program looks complicated only because I cover both % minimization and maximization in the same program! clear all; ch = input(’Find minimum (0) or maximum (1): ’); if ~ch, init = 1e6 ; % look for minimum; % big initial guesses for costs to go else, init = 1e-6 ; % look for maximum; % small initial guesses for value to go end; % interconnect matrix: row is the node (first is starting30 DYNAMIC PROGRAMMING FOR PATH DESIGN 110 % point) and column is the set of nodes pointed to. Note % that the ending node is not included because it points to % nowhere. I = [[2 6 4] % node 1 (start) points to nodes 2,6,4 [3 8 5] % node 2 points to nodes 3,8,5. And so on... [8 6 NaN] % node 3 [5 7 NaN] % node 4 [6 7 10] % node 5 [8 9 7] % node 6 [10 9 NaN] % node 7 [10 9 NaN] % node 8 [11 NaN NaN] % node 9 [11 NaN NaN]]; % node 10 % cost per link - these go with the interconnects in A. Note % that the entries with direct connection to the end node are NaN, % because we will enforce the link cost in ctg (below) explicitly C = [[3 7 5] % The cost is 3 to move between nodes 1 and 2, % and 7 to move between nodes 1 and 6, etc. [2 5 4] % node 2 [4 5 NaN] % node 3 [3 5 NaN] % node 4 [4 4 7] % node 5 [4 5 4] % node 6 [4 8 NaN] % node 7 [8 4 NaN] % node 8 [NaN NaN NaN] % node 9 [NaN NaN NaN]]; % node 10 % initial guess of cost-to-go (or value-to-go) at each node tg = [[NaN] % node 1 [init] % node 2 [init] % node 3 [init] % node 4 [init] % node 5 [init] % node 6 [init] % node 7 [init] % node 8 [4] % node 9 (points directly to end, node 11) [3]]; % node 10 (points directly to end, node 11) w = size(I,2); % width of interconnect matrix disp(sprintf(’%g ’,tg)); % list the first cost-to-go or30 DYNAMIC PROGRAMMING FOR PATH DESIGN 111 % value-to-go for k = 1:5, % carry out a fixed number of iterations % cycle through the nodes one by one. Note that we don’t % need to recompute tg for nodes that point to the end for i = 1:sum(~isnan(C(:,1))), % We’ll look for the minimum estimated cost-to-go % (or maximum estimated value-to-go) across % the possible nodes pointed to if ~ch, dummy = 1e6 ; % initialize to be huge else, dummy = 1e-6 ; % initialize to be tiny end; % look at all the nodes pointed to from node i for j = 1:w, if ~isnan(I(i,j)), % consider only true entries in I test = tg(I(i,j)) + C(i,j) ; if ~ch, % look for minimum if test < dummy, dummy = test ; end; else, % look for maximum if test > dummy, dummy = test ; end; end; end; % "true entries" end; % j: nodes pointed to tg(i) = dummy ; end; % i: nodes disp(sprintf(’%g ’,tg)); end; % k: iteration %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%MIT OpenCourseWarehttp://ocw.mit.edu 2.017J Design of Electromechanical Robotic Systems Fall 2009 For information about citing these materials or our Terms of Use, visit:


View Full Document

MIT 2 017J - Dynamic Programming for Path Design

Documents in this Course
Load more
Download Dynamic Programming for Path Design
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Dynamic Programming for Path Design and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Dynamic Programming for Path Design 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?