Reducing Knapsack to TSP Pasi Frnti Knapsack problem
Reducing Knapsack to TSP Pasi Fränti
Knapsack problem • Input: knapsack instance {2, 3, 5, 7, 11} • Size of the knapsack S=15.
Step 1: Create one node for every item • Input: knapsack instance {2, 3, 5, 7, 11} • Create a node for every knapsack element. 2 7 5 3 11
Step 2: Add start and end points • Input: knapsack instance {2, 3, 5, 7, 11} • Add node 0 as the home. • Add node N+1 as the turning point. 2 7 5 0 3 n+1 11 N+2 nodes needed to represent the knapsack instance
Step 3: Create forward links • Input: knapsack instance {2, 3, 5, 7, 11} • Draw links from smaller nodes to bigger ones. • Set weights according to the bigger node: w(i, j)=j. 2 7 7 7 7 5 5 0 5 n+1 5 3 3 3 11 11 11
Step 4: Create forward links for node N+1 • Input: knapsack instance {2, 3, 5, 7, 11} • Draw links to N+1 with weights w(i, N+1)=0. 2 7 7 7 7 5 5 0 5 5 3 3 3 11 11 11 0 0 0 n+1
Step 5: Create backward links • Input: knapsack instance {2, 3, 5, 7, 11} • Draw backward links from bigger to smaller nodes. • Set weight of the link as w(j, i)=0. 0 2 7 0 0 0 5 0 0 3 0 0 0 11 n+1
Solution for KP Solution for TSP • KP = {3, 5, 7} • TSP = 0 -3 -5 -7 -(N+1)-11 -2 -0 (S=15) Visit the nodes in an increasing order ! 2 7 0 0 5 0 n+1 5 0 3 3 11
Solution for TSP Solution for KP • TSP = 0 -3 -5 -7 -(N+1)-11 -2 -0 • KP = {3, 5, 7} (all nodes which arrival cost > 0) Select nodes with entrance w>0 ! 2 0 7 77 0 0 0 5 55 n+1 0 3 33 11
- Slides: 9