- Home
- Documents
*Deterministic Dynamic Programming - Deterministic Dynamic Programming Dynamic programming is a...*

prev

next

out of 91

View

18Download

0

Embed Size (px)

� � � � � � � � � � �

Match PuzzleE X A M P L E 1

MilkE X A M P L E 2

†This section covers topics that may be omitted with no loss of continuity.

Deterministic Dynamic Programming

Dynamic programming is a technique that can be used to solve many optimization problems. In most applications, dynamic programming obtains solutions by working backward from the end of a problem toward the beginning, thus breaking up a large, unwieldy problem into a series of smaller, more tractable problems.

We introduce the idea of working backward by solving two well-known puzzles and then show how dynamic programming can be used to solve network, inventory, and resource- allocation problems. We close the chapter by showing how to use spreadsheets to solve dynamic programming problems.

18.1 Two Puzzles†

In this section, we show how working backward can make a seemingly difficult problem almost trivial to solve.

Suppose there are 30 matches on a table. I begin by picking up 1, 2, or 3 matches. Then my opponent must pick up 1, 2, or 3 matches. We continue in this fashion until the last match is picked up. The player who picks up the last match is the loser. How can I (the first player) be sure of winning the game?

Solution If I can ensure that it will be my opponent’s turn when 1 match remains, I will certainly win. Working backward one step, if I can ensure that it will be my opponent’s turn when 5 matches remain, I will win. The reason for this is that no matter what he does when 5 matches re- main, I can make sure that when he has his next turn, only 1 match will remain. For exam- ple, suppose it is my opponent’s turn when 5 matches remain. If my opponent picks up 2 matches, I will pick up 2 matches, leaving him with 1 match and sure defeat. Similarly, if I can force my opponent to play when 5, 9, 13, 17, 21, 25, or 29 matches remain, I am sure of victory. Thus, I cannot lose if I pick up 30 � 29 � 1 match on my first turn. Then I sim- ply make sure that my opponent will always be left with 29, 25, 21, 17, 13, 9, or 5 matches on his turn. Notice that we have solved this puzzle by working backward from the end of the problem toward the beginning. Try solving this problem without working backward!

I have a 9-oz cup and a 4-oz cup. My mother has ordered me to bring home exactly 6 oz of milk. How can I accomplish this goal?

962 C H A P T E R 1 8 Deterministic Dynamic Programming

Solution By starting near the end of the problem, I cleverly realize that the problem can easily be solved if I can somehow get 1 oz of milk into the 4-oz cup. Then I can fill the 9-oz cup and empty 3 oz from the 9-oz cup into the partially filled 4-oz cup. At this point, I will be left with 6 oz of milk. After I have this flash of insight, the solution to the problem may easily be described as in Table 1 (the initial situation is written last, and the final sit- uation is written first).

P R O B L E M S Group A

1 Suppose there are 40 matches on a table. I begin by picking up 1, 2, 3, or 4 matches. Then my opponent must pick up 1, 2, 3, or 4 matches. We continue until the last match is picked up. The player who picks up the last match is the loser. Can I be sure of victory? If so, how?

2 Three players have played three rounds of a gambling game. Each round has one loser and two winners. The losing player must pay each winner the amount of money that the winning player had at the beginning of the round. At the end of the three rounds each player has $10. You are told that each player has won one round. By working backward, determine the original stakes of the three players. [Note: If the answer turns out to be (for example) 5, 15, 10, don’t worry about which player had which stake; we can’t really tell which player ends up with how much, but we can determine the numerical values of the original stakes.]

Group B

3 We have 21 coins and are told that one is heavier than any of the other coins. How many weighings on a balance will it take to find the heaviest coin? (Hint: If the heaviest coin is in a group of three coins, we can find it in one weighing. Then work backward to two weighings, and so on.)

4 Given a 7-oz cup and a 3-oz cup, explain how we can return from a well with 5 oz of water.

18.2 A Network Problem Many applications of dynamic programming reduce to finding the shortest (or longest) path that joins two points in a given network. The following example illustrates how dynamic programming (working backward) can be used to find the shortest path in a network.

TA B L E 1 Moves in the Cup-and-Milk Problem

No. of Ounces No. of Ounces in 9-oz Cup in 4-oz Cup

6 0 6 4 9 1 0 1 1 0 1 4 5 0 5 4 9 0 0 0

1 8 . 2 A Network Problem 963

Joe Cougar lives in New York City, but he plans to drive to Los Angeles to seek fame and fortune. Joe’s funds are limited, so he has decided to spend each night on his trip at a friend’s house. Joe has friends in Columbus, Nashville, Louisville, Kansas City, Omaha, Dallas, San Antonio, and Denver. Joe knows that after one day’s drive he can reach Columbus, Nashville, or Louisville. After two days of driving, he can reach Kansas City, Omaha, or Dallas. After three days of driving, he can reach San Antonio or Denver. Fi- nally, after four days of driving, he can reach Los Angeles. To minimize the number of miles traveled, where should Joe spend each night of the trip? The actual road mileages between cities are given in Figure 1.

Solution Joe needs to know the shortest path between New York and Los Angeles in Figure 1. We will find it by working backward. We have classified all the cities that Joe can be in at the beginning of the nth day of his trip as stage n cities. For example, because Joe can only be in San Antonio or Denver at the beginning of the fourth day (day 1 begins when Joe leaves New York), we classify San Antonio and Denver as stage 4 cities. The reason for classifying cities according to stages will become apparent later.

The idea of working backward implies that we should begin by solving an easy prob- lem that will eventually help us to solve a complex problem. Hence, we begin by finding the shortest path to Los Angeles from each city in which there is only one day of driving left (stage 4 cities). Then we use this information to find the shortest path to Los Ange- les from each city for which only two days of driving remain (stage 3 cities). With this information in hand, we are able to find the shortest path to Los Angeles from each city that is three days distant (stage 2 cities). Finally, we find the shortest path to Los Ange- les from each city (there is only one: New York) that is four days away.

To simplify the exposition, we use the numbers 1, 2, . . . , 10 given in Figure 1 to la- bel the 10 cities. We also define cij to be the road mileage between city i and city j. For example, c35 � 580 is the road mileage between Nashville and Kansas City. We let ft(i) be the length of the shortest path from city i to Los Angeles, given that city i is a stage t city.†

Stage 4 Computations

We first determine the shortest path to Los Angeles from each stage 4 city. Since there is only one path from each stage 4 city to Los Angeles, we immediately see that f4(8) � 1,030, the shortest path from Denver to Los Angeles simply being the only path from Den- ver to Los Angeles. Similarly, f4(9) � 1,390, the shortest (and only) path from San An- tonio to Los Angeles.

Stage 3 Computations

We now work backward one stage (to stage 3 cities) and find the shortest path to Los An- geles from each stage 3 city. For example, to determine f3(5), we note that the shortest path from city 5 to Los Angeles must be one of the following:

Path 1 Go from city 5 to city 8 and then take the shortest path from city 8 to city 10.

Path 2 Go from city 5 to city 9 and then take the shortest path from city 9 to city 10.

The length of path 1 may be written as c58 � f4(8), and the length of path 2 may be writ- ten as c59 � f4(9). Hence, the shortest distance from city 5 to city 10 may be written as

Shortest PathE X A M P L E 3

†In this example, keeping track of the stages is unnecessary; to be consistent with later examples, however, we do keep track.

964 C H A P T E R 1 8 Deterministic Dynamic Programming

f3(5) � min {c58 � f4(8) � 610 � 1,030 � 1,640*c59 � f4(9) � 790 � 1,390 � 2,180 [the * indicates the choice of arc that attains the f3(5)]. Thus, we have shown that the shortest path from city 5 to city 10 is the path 5–8–10. Note that to obtain this result, we made use of our knowledge of f4(8) and f4(9).

Similarly, to find f3(6), we note that the shortest path to Los Angeles from city 6 must begin by going to city 8 or to city 9. This leads us to the following equation:

f3(6) � min {c68 � f4(8) � 540 � 1,030 � 1,570*c69 � f4(9) � 940 � 1,390 � 2,330 Thus, f3(6) � 1,570, and the shortest path from city 6 to city 10 is the path 6–8–10.

To find f3(7), we note that

f3(7) � min {c78 � f4(8) � 790 � 1,030 � 1,820c79 � f4(9) � 270 � 1,390 � 1,660* Therefore, f3(7) � 1,660, and the shortest path from city 7 to city 10 is the path 7–9–10.

Stage 2 Computations

Given our knowledge of f3(5), f3(6), and f3(7), it is now easy to work backward one more stage and compute f2(2), f2(3), and f2(4) and thus the shortest paths to Los Angeles from city 2, city 3, and city 4. To illustrate how this is done, we find the shortest path (and its length) from city 2 to city 10. The shortest path from city 2 to city 10 must begin