Chapter 6 Traveling Salesman Problem ESSENTIAL QUESTIONS: Section 6.1: How does Hamilton’s Circuits and Paths compare to Euler’s? Section 6.2: What is a complete graph? Section 6.3: What do the Traveling Salesman Problems (TSPs) use weighted graphs? Section 6.4: What are simple strategies for solving TSPs? Section 6.5: How does the Brute-Force and Nearest –Neighbor Algorithms solve TSPs? Section 6.6: What is an approximate algorithm? Section 6.7: How does the Repetitive Nearest – Neighbor Algorithm improve your ability to solve TSPs? Section 6.8: How does the Cheapest-Link Algorithm differ from the Nearest-Neighbor Algorithm? WORD WALL: Brute-Force Algorithm Cheapest-Link Algorithm Complete Graph Weight Hamilton Circuit Hamilton Path Inefficient Algorithm Nearest-Neighbor Algorithm Repetitive Nearest-Neighbor Algorithm Traveling Salesman Problem (TSP) Weighted Graph Extra Review/ Possible Homework: 6.1 = pp. 221 - 2 # 2, 4, 6, 7, 10, 11 6.2 = p 223 # 25 – 28 6.3 = pp. 222 – 3 # 13 – 16 6.4/6.5 = pp. 223 – 225 # 29 - 31, 33, 35 6.7 = p. 225 #37 – 39, 41 6.8 = pp. 225 - 6 #43-45, 47 • Section 6.1: Hamilton Circuits and Hamilton Paths HAMILTON CIRCUITS AND PATHS • HAMILTON = Touch each VERTEX exactly one time (enter/ leave once). EULER CIRCUITS AND PATHS EULER = touch each EDGE of a graph exactly one time. • • By Definition: must touch every vertex “can touch more than once depending on degree” By Definition: Doesn’t require touching every edge HAMILTON Circuits/Paths VERSUS EULER Circuits/Paths For each of the following graphs, use our definitions of Hamilton and Euler to determine if circuits and paths of each type are possible. Graph 1 Graph 2 Graph 3 Graph 4 Graph 5 Graph 6 EULER PATH NO YES NO NO YES NO EULER CIRCUIT YES NO NO YES NO NO HAMILTON PATH YES YES YES YES NO YES HAMILTON CIRCUIT YES NO YES NO NO NO What do you notice about the relationship between a graph having an Euler Circuit or Path and having a Hamilton Circuit of path? There is no relationship IN GENERAL, THERE ARE NO THEOREMS TO DETERMINE IF A GRAPH HAS A HAMILTON PATH OR CIRCUIT. HELPFUL HINT: #1: FOR HAMILTON CIRCUITS/ PATHS, VERTICES OF DEGREE 1 OR 2 ARE VERY HELPFUL BECAUSE THEY REPRESENT REQUIRED EDGES TO REACH THAT VERTEX. #2: EXAMPLE: Hamilton Circuit = A, B, C, D, A SHIFT/SAME Hamilton Circuits: Follows the SAME rotation order for a circuit, but with a different start. B, C, D, A, B C, D, A, B, C D, A, B, C, D A B D C DISTINCT Hamilton Circuits: A different order of vertices (Left to Right) from the same starting vertex. (reverse order counts) A, D, C, B, A (reverse order) A, D, B, C, A AND reverse = A, C, B, D, A A, B, D, C, A AND reverse = A, C, D, B, A EXAMPLE #1: List all possible Hamiltonian circuits in the following graph A B 1. A, B, C, D, E, F, G, A 2. A, B, E, D, C, F, G, A 3. A, F, C, D, C, B, G, A 4. A, F, E, D, C, B, G, A REVERSE EACH ONE OF THESE 4 CIRCUITS C D G F E What about the Hamiltonian circuits that start at B, C, D, etc.? Well, since such a circuit must pass through all of the vertices it doesn’t matter which vertex we start with. Related to the idea of shifts of circuits. EXAMPLE #2: (a) Find a Hamiltonian path that begins at A and ends at E. (b) Find a Hamiltonian circuit that starts at A and ends with the pair of vertices E, A. (c) Find a Hamiltonian path that begins at F and ends at G. A D E F B G (a) A, F, B, C, G, D, E (b) A, F, B, C, G, D, E, A (c) F, B, C, E, A, D, G F, A, E, B, C, D, G C Example 3: The following graph has no Hamiltonian circuits or paths--why not? 4 bridges exist = can’t have a circuit; No path possible because multiple vertices of degree 1 EXAMPLE #4: (a) Find all Hamiltonian circuits that starts at A. (b) Find all Hamiltonian circuits that starts at D. (c) Explain why your answers in a and b must have the same number of circuits. (a) A, C, F, D, E, B, A A, D, F, E, B, C, A A, D, E, F, C, B, A (REVERSE ORDER as well) (b) Re-order answers in part a (c) Re-ordering concept A D F C E B HOMEWORK: pp. 221 - 222 # 2, 4, 6, 7, 10, 11 Section 6.2: Complete Graphs EXAMPLE PUT 6 OR 8 DOTS ON WHITEBOARD AND START CONNECTING THEM AND ASK STUDENTS TO DESCRIBE HOW I AM MAKING THE GRAPH: “ONE DOT IS CONNECTED TO EVERY OTHER DOT” TO START DEFINITION COMPLETE GRAPH: A graph in which every pair of distinct vertices is joined by exactly one edge. o Notation: KN = a complete graph of N vertices EXAMPLES OF COMPLETE GRAPHS for 3, 4, and 5 vertices: K3 K4 K5 Use the definition of a complete graph to answer the following questions: 1. Does a complete graph have to be connected? 2. Is a complete graph allowed to have loops? YES; “every pair of vertices connected by an edge” NO; “Distinct (Different) Vertices only” 3. Is a complete graph allowed to have multiple edges? 4. Can different vertices have different degree? NO; exactly “one edge” NO; each vertex must be connected all remaining vertices What is the DEGREE of each VERTEX for N vertices? K3: Degree = 2 K4: Degree = 3 K5: Degree = 4 1 Less than the # of vertices Degree = N - 1 How many EDGES are in KN (complete graph of N vertices)? What is the relationship between edges and degrees? EDGES TOTAL DEGREE K3: EDGES = 3 6 = 3*2 Euler’s Sum of Degree Theorem: (total # of degrees) = 2 * (# of edges) N(N-1) = 2 * (# of edges) K4: EDGES = 6 12 = 4*3 K5: EDGES = 10 20 = 5*4 K6: EDGES = 15 30 = 6*5 N ( N 1) number of edges in KN 2 Where have you seen this formula before? Chapter 1: the number of pairwise comparisons. DEGREE and VERTICES are consecutive numbers. Complete Graph KN SUMMARY OF COMPLETE GRAPH INFORMATION Number of Vertices Degree of Each Vertex N N–1 Connected Graph, No Loops, No Multiple Edges Number of Edges N ( N 1) 2 K3= Complete Graph of 4 Vertices 1) How many Hamiltonian circuits does it have? A 2 B 1 A, B, C, A 2 A, C, B, A K4 = Complete Graph of 4 Vertices 1) How many Hamiltonian circuits does it have? 1 A, B, C, D, A 6 A B C K3 C K4 D 2 3 4 5 6 A, B, D, C, A A, C, B, D, A A, C, D, B, A A, D, B, C, A A, D, C, B, A If we were to answer the same questions for K5 we would find the following: 1) How many Hamiltonian circuits does it have? (Do you notice any possible relation in how we answered this question for K3 and K4 that might help you here?) (5 - 1) (5 - 2) ( 5 - 3) (5 - 4) = (4)(3)(2)(1) = 24 (see page 202 for exact circuits) How many DISTINCT HAMILTON CIRCUITS are in KN? Complete Graph K3: K4: K5: K6: Vertices 3 4 5 6 Hamilton Circuits 2 6 24 120 (N – 1)! = (Degree) != Distinct Hamilton Circuits in KN. Calculator Command Reminder: [MATH] – [PRB] – [4:!] INDEPENDENT PRACTICE: Apply the Properties of Complete Graphs (1) How many edges are there in K20? 20(19)/2 = 190 edges (2) How many distinct Hamilton Circuits exist in K10? (10 – 1)! = 9! = 362880 (3) How many vertices are in the K50 graph? N = 50 (4) What is the degree of every vertex in K200? Degree = 200-1 = 199 (5) How many distinct Hamilton Circuits exist in K22? (22 – 1)! = 21! Or 5.109094217E19 (6) How many edges are there in K32? Edges = (32)(32 – 1)/2 = 496 edges (7) What is the degree of every vertex in K15? Degree = 15 – 1 = 14 (8) If KN has 120 distinct Hamiltonian circuits then what is N? N=6 Trial and Error: Divide 120 by consecutive numbers starting with 2 Add one to last number used = Number of vertices (9) If KN has 55 edges then what is N? N = 11 55 = (N)(N-1)/2; HINT: square root trick of DOUBLE EDGES round up = N and round down = N -1 (10) If the number of edges of K12 is x and the number of edges of K13 is y, what is the values of y - x? (13)(12)/2 - (12)(11)/ 2 = (12/2) (13-11) = 12 (11) For each of the following cases find the value of N. a. KN has 5040 distinct Hamilton Circuits. 5040 = 7!; N = 7 + 1 = 8 b. KN has 66 edges. 66 = 12*11/2; N = 12 c. KN has 80,200 edges. 80,200 = 401*400/2; N = 401 (12) If KN has 362,880 distinct Hamilton Circuits, then… 362,880 = 6!; N = 7 a. How many vertices are in the KN graph? 7 VERTICES b. What is the degree of each vertex are in the KN graph? 7 -1 = 6 c. How many edges are in the KN graph?7*6/2 = 21 edges Section 6.3: Traveling Salesman Problems WEIGHTED GRAPH: Any graph whose edges have numbers associated or assigned to them (NOT DRAWN TO SCALE ALWAYS) o Weights: number for each edge o Examples of Weights: distance, time, cost… Complete Weighted Graph: Complete graph that has weights associated with it TRAVELING SALESMAN PROBLEMS: From home, the traveling salesman must visit different destinations to sell goods and return home. This is essentially finding a Hamilton Circuit. GOAL: Try to find the cheapest, most efficient, optimal route that is a Hamilton circuit for a given graph (find the least total weight) Example – The Simpsons: Homer Simpson he has to run errands at the Kwik-E-Mart, the Retirement Home and Moe`s. Assuming that he wants to begin and end his day at home find the route that will allow him to get back to napping as soon as possible. A 20 The numbers will represent the number of blocks between each destination. D 8 When we place values like this on the edges of a graph we refer to them as the weights of the edges. 15 17 12 20 C B What if Homer preferred going to see Grandpa first to get it out of the way? A–B–C–D–A A-B-D-C- A 12 + 20 + 17 + 8 = 57 BLOCKS 12+15+17+20 = 64 BLOCKS What if Homer preferred going to the KWIK-E-MART last? A-B-D-C- A A–D–B–C–A 12+15+17+20 = 64 BLOCKS 8 +15 + 20 + 20 = 63 BLOCKS Traveling Salesman Problem Steps: (1) Create graph models (2) Apply weights to these models (3) Find optimal Hamilton Circuits. (Not Always a practical statement) REAL-LIFE EXAMPLES: 1) Routing School Buses 2) Package Deliveries: UPS or FedEx Delivery Truck 3) Running Errands around Town 4) Planning a road trip 5) Grocery Shopping: Planning which aisles you need to go down HOMEWORK: pp. 222 – 223 # 13 – 16 Section 6.4 and 6.5: Simple Algorithms for Solving Traveling Salesman Problems Strategy #1: BRUTE FORCE (Exhaustive Search) Circuit A, B, C, D, A Mirror Image A, D, C, B, A A, B, D, C, A A, C, D, B, A A, C, B, D, A A, D, B, C, A Weight 13 + 9 + 14 + 15 = 51 13 + 16 + 14 + 12 = 55 15 A 13 12 B 12 + 9 + 16 + 15 = 52 D 16 14 9 BRUTE-FORCE ALGORITHM Step 1: Make a list of ALL distinct Hamilton circuits of the graph from ONE starting vertex Step 2: Calculate its TOTAL WEIGHT for each circuit. Step 3: Choose an OPTIMAL circuit. (There is always more than one optimal circuit because of mirrorimages) PRO: Guarantee Optimal Hamilton Circuit CON: INEFFICIENT ALGORITHM # steps needed to carry out algorithm grows disproportionately with the size of population (vertices) ie TAKES A LOT OF TIME the more vertices/ edges there are STRATEGY #2: NEAREST – NEIGHBOR ALGORITHM From the start vertex, go to the vertex that is the shortest to get to. From each new vertex go to the next new city that is the shortest to get to. When there are no more new vertices to go to, go to the starting vertex. A (12) C (9) B (16) D (15) A = 52 NEAREST-NEIGHBOR ALGORITHM Start: Start at the designated starting vertex (home). If there is no designated starting vertex, pick any vertex. Step 1: From the starting vertex go to its NEAREST NEIGHBOR (vertex that is the smallest weight away) Middle Steps: From each vertex go to its nearest neighbor that hasn’t already been visited. (smallest remaining weight of possible vertices) Keep doing this until all the vertices have been visited. Last Step: From the last neighbor (vertex) RETURN to the starting vertex (home). PRO: EFFICIENT ALGORITHM Amount of computational effort required to implement it grows in some reasonable proportion with the size of population (vertices) ie WORKS FAST/ LESS TIME CONSUMING TO COMPLETE METHOD CON: Not an optimal Algorithm; Answers won’t always be the OPTIMAL, but relatively close to being the best possible way C A weighted Graph may also be represented as table. Vertices along the first row and column. Weights on the interior of table. A B C D D A 8 A AB = 12 AC = 20 AD = 8 B BA = 12 BC = 20 BD = 15 C CA = 20 CB = 20 D DA = 8 CD = 17 12 20 15 17 DB = 15 DC = 17 B 20 Observations: 1) Diagonal is blank because NO LOOPS exist. 2) Upper Right Triangle and Lower Left Triangle are Identical Numbers a. Represent Same Edges, but are in different order of starting and ending vertices Draw the following complete weighted graph described by table: A B C D E A B 3 3 4 5 5 7 6 9 C D E 4 5 6 5 7 9 6 8 6 1 8 1 FIND THE NEAREST NEIGHBOR SOLUTION STARTING AT D: D (1) E (6) A (3) B (5) C (6) D = 21 C The following Complete Weighted Graph can also be represented by the table: A A B C D E F G 75 50 28 35 15 22 30 60 80 65 50 40 48 35 28 20 30 29 40 32 B 75 C 50 30 D 28 60 40 E 35 80 48 20 F 15 65 35 30 40 G 22 50 28 29 32 40 60 50 C 13 B 30 C 13 75 A 65 A 28 28 48 B 35 22 35 50 29 DD 32 30 20 15 G G 13 80 E E 40 FF Does BRUTE FORCE seem practical here? NO; (7-1)!= 720 POSSIBLE HAMILTON CIRCUITS Start at Vertex A – Find the NEAREST NEIGHBOR SOLUTION: (Use table or graph) A – (15) – F – (13) – G – (28) – C – (30) – B – (60) – D – (20) - E – (35) - A = 201 HOMEWORK: pp. 223 – 225 # 29 - 31, 33, 35 Section 6.7: Repetitive Nearest-Neighbor Algorithm The Nearest Neighbor Algorithm is an EFFICIENT but NOT always ACCURATE algorithm. Is there a way we can improve it because we like its efficiency? Compare from different starting spots The REPETITIVE Nearest-Neighbor Algorithm: Perform the Nearest-Neighbor Algorithm for every vertex of the graph as the starting vertex. Compare circuits and CHOOSE the circuit with least weight of all the options. o If needed, Re-order (shift) that Hamilton Circuit to have the DESIGNATED START vertex first. o Re-ordered (shifted) circuits have the same weight but change its starting vertex EXP #1: Perform the nearest neighbor algorithm for start of A. A 9 D 10 15 A: A, B, D, C, A = 9 + 13 + 11+ 15 = 48 B: B, A, D, C, B = 9 + 10 + 11 + 17 = 47 13 11 C: C, D, A, B, C = 11 + 10 + 9 + 17 = 47 B 17 C D: D, A, B, C, D = 10 + 9 + 17 + 11 = 47 Final Answer: A,B,C,D,A or A,D,C,B,A = 47 EXAMPLE #2: Label the graph and complete the Repetitive nearest neighbor algorithm for a start of C. A E B ACEDBA = $773 C BCAEDB = $722 D A A B C D E $185 $119 $152 $133 B C $185 $119 $121 $121 $150 $174 $200 $120 CAEDBC = $722 (Final) D E $152 $133 $150 $200 $174 $120 $199 $199 DBCAED = $722 ECADBE = $741 EXAMPLE #3: Perform repetitive nearest neighbor algorithm for a start of B. A B C D E F G A B C 75 50 28 35 15 22 75 50 30 30 60 40 80 48 65 35 50 28 D E F G 28 35 15 22 60 80 65 50 40 48 35 28 20 30 29 20 40 32 30 40 13 29 32 13 Final: shift A Answer B, D, E, A, F, G, C, B B, C, G, F, A, E, D, B START with A: a,f,g,c,b,d,e,a 201 = 5+13+28+30+60+20+35 START with B: b,c,g,f,a,d,e,b 214 =30+28+13+15+28+20+80 START with C: c,g,f,a,d,e,b,c 214 =28+13+15+28+20+80+30 START with D: d,e,a,f,g,c,b,d 221=20+35+15+13+28+50+60 START with E: e,d,a,f,g,c,b,e 214= 20+28+15+13+28+30+80 START with F: f,a,g,d,e,c,b,f 229 =15+22+29+20+48+30+65 START with G: g,f,a,d,e,c,b,g 204=13+15+28+20+48+30+50 HOMEWORK: p. 225 #37 – 39, 41 Section 6.8: Cheapest-Link Algorithm GOAL: Piece together a Hamilton circuit by individual edges or “LINKS” of graph trying to choose the smallest or “cheapest” weights first. The Cheapest-Link Algorithm for N Vertices: Step #1: Pick the edge with the smallest weight first. Mark the edge (or otherwise note that you have chosen it). o Smallest weight ANYWHERE on the graph Step #2: Pick the next ‘cheapest’ edge anywhere in the graph. Mark or note it. Step #3, …, N-1:Continue picking the ‘cheapest’ available edge in the graph and as long as (a) it does not close a circuit and (b) it does not result in three edges coming out of a single vertex. (DEGREE = 2) (c) Ties can be broken at random and don’t break the two rules HINT: Draw out the edges chosen helps to double check what is and is not available. Step #N: Connect the last two vertices to close the circuit (you are forced to choose this edge so no need for “cheapest”) REORDER CIRCUIT TO THE NECESSARY STARTING VERTEX (N Vertices = N edges chosen for circuit) B 30 EXAMPLE #1: Start at G C C 40 48 60 50 35 B 75 A 65 A 28 28 22 35 50 29 32 DD 30 20 15 G 80 E E 40 FF 13 G When table only, draw links to visualize circuit. A B C D E F G A B 75 75 50 30 28 60 35 80 15 65 22 50 C D E F 50 28 35 15 30 60 80 65 40 48 35 40 20 30 48 20 40 35 30 40 28 29 32 13 START IT AT G: G G 22 50 28 29 32 13 – F – A – D – E – C – B – G = 13 + 15 + 28 + 20 + 48 + 30 + 50 = 204 EXAMPLE #2: Start at B A 12 E 19 24 B 17 29 21 19 27 C 9 D Start at B: B, A, E, C, D, B B, D, C, E, A, B EXAMPLE #3: Start at D A B C D A $185 $119 $152 B $185 $121 $150 C $119 $121 $174 D $152 $150 $174 E $133 $200 $120 $199 E $133 $200 $120 $199 A – C = 119 E – C = 120 B – D = 150 A – D = 152 E – B = 200 741 = total cost Start at D: D, A, C, E, B, D or D, B, E, C, A, D = 741 HOMEWORK: pp. 225 - 6 #43-45, 47