Tournament Trees Winner Trees Complete binary tree with n external nodes and n - 1 internal nodes. External nodes represent tournament players. Winner trees. Each internal node represents a match Loser Trees. played between its two children; the winner of the match is stored at the internal node. Root has overall winner. Winner Tree For 16 Players Winner Tree For 16 Players 1 1 2 3 1 2 2 3 6 1 3 2 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 Smaller element wins => min winner tree. player match node Complexity Of Initialize Winner Tree For 16 Players 1 • O(1) time to play match at each match node. 1 2 • n - 1 match nodes. • O(n) time to initialize n player winner tree. 3 1 2 2 3 6 1 3 2 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 height is log 2 n (excludes player level)
Applications Sort 16 Numbers 1 Sorting. 1 2 Put elements to be sorted into a winner 3 1 2 2 tree. Repeatedly extract the winner and 3 6 1 3 2 4 2 5 replace by a large value. 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 Sort 16 Numbers Sort 16 Numbers 1 1 1 1 2 2 3 1 2 2 3 1 2 2 3 6 1 3 2 4 2 5 3 6 1 3 2 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 Sorted array. Sort 16 Numbers Sort 16 Numbers 1 1 1 1 2 2 3 1 2 2 3 3 2 2 3 6 5 3 2 4 2 5 3 6 5 3 2 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 1 Sorted array. Sorted array.
Sort 16 Numbers Sort 16 Numbers 1 2 3 3 2 2 3 3 2 2 3 3 2 2 3 6 5 3 2 4 2 5 3 6 5 3 2 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 1 Sorted array. Sorted array. Sort 16 Numbers Sort 16 Numbers 2 2 3 3 2 2 3 3 2 2 3 3 2 2 3 6 5 3 2 4 2 5 3 6 5 3 6 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 2 2 1 2 2 Sorted array. Sorted array. Sort 16 Numbers Sort 16 Numbers 2 2 3 3 2 2 3 3 4 2 3 3 4 2 3 6 5 3 6 4 2 5 3 6 5 3 6 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 2 2 1 2 2 Sorted array. Sorted array.
Sort 16 Numbers Sort 16 Numbers 2 2 3 3 2 2 3 3 4 2 3 3 4 2 3 6 5 3 6 4 2 5 3 6 5 3 6 4 2 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 2 2 1 2 2 Sorted array. Sorted array. Sort 16 Numbers Sort 16 Numbers 2 2 3 3 2 2 3 3 4 2 3 3 4 5 3 6 5 3 6 4 5 5 3 6 5 3 6 4 5 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 2 2 1 2 2 Sorted array. Sorted array. Sort 16 Numbers Sort 16 Numbers 2 3 3 3 4 4 3 3 4 5 3 3 4 5 3 6 5 3 6 4 5 5 3 6 5 3 6 4 5 5 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 1 2 2 1 2 2 Sorted array. Sorted array.
Time To Sort Sort 16 Numbers 3 • Initialize winner tree. 3 4 � O(n) time • Remove winner and replay. 3 3 4 5 � O(log n) time • Remove winner and replay n times. 3 6 5 3 6 4 5 5 � O(n log n) time • Total sort time is O(n log n). 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 • Actually Theta(n log n). 1 2 2 3 Sorted array. Winner Tree Operations Replace Winner And Replay 1 • Initialize 1 2 � O(n) time • Get winner 3 1 2 2 � O(1) time • Remove/replace winner and replay 3 6 1 3 2 4 2 5 � O(log n) time 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 � more precisely Theta(log n) Replace winner with 6. Replace Winner And Replay Replace Winner And Replay 1 1 1 1 2 2 3 1 2 2 3 1 2 2 3 6 1 3 2 4 2 5 3 6 1 3 2 4 2 5 4 3 6 8 6 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 6 5 7 3 2 6 9 4 5 2 5 8 Replay matches on path to root. Replay matches on path to root.
Replace Winner And Replay Loser Tree 1 1 2 Each match node stores the match loser rather than the match winner. 3 1 2 2 3 6 1 3 2 4 2 5 4 3 6 8 6 5 7 3 2 6 9 4 5 2 5 8 Opponent is player who lost last match played at this node. Min Loser Tree For 16 Players Min Loser Tree For 16 Players 3 3 6 1 4 8 4 8 5 7 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 Min Loser Tree For 16 Players Min Loser Tree For 16 Players 1 1 3 3 2 6 3 2 6 3 4 2 4 8 5 7 6 9 4 8 5 7 6 9 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8
Min Loser Tree For 16 Players Min Loser Tree For 16 Players 1 1 3 3 2 2 6 3 4 5 6 3 4 5 4 8 5 7 6 9 5 8 4 8 5 7 6 9 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 Winner Min Loser Tree For 16 Players 1 2 2 3 3 2 2 6 3 4 5 6 3 4 5 4 8 5 7 6 9 5 8 4 8 5 7 6 9 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 4 3 6 8 1 5 7 3 2 6 9 4 5 2 5 8 Complexity Of Loser Tree Winner 1 2 Initialize 3 2 • One match at each match node. 3 3 2 • One store of a left child winner. • Total time is O(n). 6 3 5 4 5 • More precisely Theta(n). 4 8 9 5 7 6 9 5 8 4 3 6 8 9 1 5 7 3 2 6 9 4 5 2 5 8 Replace winner with 9 and replay matches.
More Tournament Tree Complexity Of Replay Applications • One match at each level that has a match • k-way merging of runs during an external node. merge sort • O(log n) • Truck loading • More precisely Theta(log n). Truck Loading Truck Loading n = 5 packages weights [2, 5, 6, 3, 4] truck capacity c = 10 � n packages to be loaded into trucks � each package has a weight Load packages from left to right. If a package � each truck has a capacity of c tons doesn’t fit into current truck, start loading a � minimize number of trucks new truck. Truck Loading Truck Loading n = 5 packages n = 5 packages weights [2, 5, 6, 3, 4] weights [2, 5, 6, 3, 4] truck capacity c = 10 truck capacity c = 10 truck1 = [2, 5] truck1 = [2, 5, 3] truck2 = [6, 3] truck2 = [6, 4] truck3 = [4] uses 3 trucks when 2 trucks suffice
Bin Packing Bin Packing Truck loading is same as bin packing. Truck is a bin that is to be packed (loaded). • n items to be packed into bins Package is an item/element. • each item has a size Bin packing to minimize number of bins is NP-hard. Several fast heuristics have been proposed. • each bin has a capacity of c • minimize number of bins Bin Packing Heuristics First Fit • First Fit. n = 4 � Bins are arranged in left to right order. weights = [4, 7, 3, 6] � Items are packed one at a time in given order. capacity = 10 � Current item is packed into leftmost bin into which it fits. � If there is no bin into which current item fits, start a new bin. Pack red item into first bin. First Fit First Fit n = 4 n = 4 weights = [4, 7, 3, 6] weights = [4, 7, 3, 6] capacity = 10 capacity = 10 Pack blue item next. Doesn’t fit, so start a new bin.
First Fit First Fit n = 4 n = 4 weights = [4, 7, 3, 6] weights = [4, 7, 3, 6] capacity = 10 capacity = 10 Pack green item. Pack yellow item into first bin. Need a new bin. First Fit Bin Packing Heuristics n = 4 • First Fit Decreasing. weights = [4, 7, 3, 6] � Items are sorted into decreasing order. � Then first fit is applied. capacity = 10 Not optimal. 2 bins suffice. Bin Packing Heuristics Bin Packing Heuristics • Best Fit. • Best Fit Decreasing. � Items are packed one at a time in given order. � Items are sorted into decreasing order. � To determine the bin for an item, first � Then best fit is applied. determine set S of bins into which the item fits. � If S is empty, then start a new bin and put item into this new bin. � Otherwise, pack into bin of S that has least available capacity .
Performance Complexity Of First Fit • For first fit and best fit: Use a max tournament tree in which Heuristic Bins <= (17/10)(Minimum Bins) + 2 the players are n bins and the value of a player is the available capacity in the bin. • For first fit decreasing and best fit decreasing: O(n log n), where n is the number of Heuristic Bins <= (11/9)(Minimum Bins) + 4 items.
Recommend
More recommend