lec23
TRANSCRIPT
![Page 1: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/1.jpg)
Priority Queues
Two kinds of priority queues:
• Min priority queue.
• Max priority queue.
![Page 2: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/2.jpg)
Min Priority Queue
• Collection of elements.
• Each element has a priority or key.
• Supports following operations: isEmpty size add/put an element into the priority queue get element with min priority remove element with min priority
![Page 3: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/3.jpg)
Max Priority Queue
• Collection of elements.
• Each element has a priority or key.
• Supports following operations: isEmpty size add/put an element into the priority queue get element with max priority remove element with max priority
![Page 4: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/4.jpg)
Complexity Of Operations
Two good implementations are heaps and leftist trees.
isEmpty, size, and get => O(1) time
put and remove => O(log n) time where n is the size of the priority queue
![Page 5: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/5.jpg)
Applications
Sorting
• use element key as priority
• put elements to be sorted into a priority queue
• extract elements in priority order if a min priority queue is used, elements are
extracted in ascending order of priority (or key) if a max priority queue is used, elements are
extracted in descending order of priority (or key)
![Page 6: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/6.jpg)
Sorting Example
Sort five elements whose keys are 6, 8, 2, 4, 1 using a max priority queue. Put the five elements into a max priority queue. Do five remove max operations placing removed
elements into the sorted array from right to left.
![Page 7: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/7.jpg)
After Putting Into Max Priority Queue
Sorted Array
68
2
41 Max Priority
Queue
![Page 8: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/8.jpg)
After First Remove Max Operation
Sorted Array
6
2
41
8
Max Priority Queue
![Page 9: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/9.jpg)
After Second Remove Max Operation
Sorted Array
2
41
86
Max Priority Queue
![Page 10: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/10.jpg)
After Third Remove Max Operation
Sorted Array
21
864
Max Priority Queue
![Page 11: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/11.jpg)
After Fourth Remove Max Operation
Sorted Array
1
8642
Max Priority Queue
![Page 12: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/12.jpg)
After Fifth Remove Max Operation
Sorted Array
86421
Max Priority Queue
![Page 13: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/13.jpg)
Complexity Of Sorting
Sort n elements. n put operations => O(n log n) time. n remove max operations => O(n log n) time. total time is O(n log n). compare with O(n2) for sort methods of
Chapter 2.
![Page 14: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/14.jpg)
Heap Sort
Uses a max priority queue that is implemented as a heap.
Initial put operations are replaced by a heap initialization step that takes O(n) time.
![Page 15: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/15.jpg)
Machine Scheduling
m identical machines (drill press, cutter, sander, etc.)
n jobs/tasks to be performed assign jobs to machines so that the time at which
the last job completes is minimum
![Page 16: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/16.jpg)
Machine Scheduling Example
3 machines and 7 jobs
job times are [6, 2, 3, 5, 10, 7, 14]
possible schedule
A
B
C
time ----------->
6
2
3
7
13
13
21
![Page 17: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/17.jpg)
Machine Scheduling Example
Finish time = 21
Objective: Find schedules with minimum finish time.
A
B
C
time ----------->
6
2
3
7
13
13
21
![Page 18: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/18.jpg)
LPT Schedules
Longest Processing Time first.
Jobs are scheduled in the order14, 10, 7, 6, 5, 3, 2
Each job is scheduled on the machine on which it finishes earliest.
![Page 19: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/19.jpg)
LPT Schedule
[14, 10, 7, 6, 5, 3, 2]
A
B
C
14
10
7 13
15
16
16
Finish time is 16!
![Page 20: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/20.jpg)
LPT Schedule
• LPT rule does not guarantee minimum finish time schedules.
• (LPT Finish Time)/(Minimum Finish Time) <= 4/3 - 1/(3m)
where m is number of machines.
• Usually LPT finish time is much closer to minimum finish time.
• Minimum finish time scheduling is NP-hard.
![Page 21: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/21.jpg)
NP-hard Problems
• Infamous class of problems for which no one has developed a polynomial time algorithm.
• That is, no algorithm whose complexity is O(nk) for any constant k is known for any NP-hard problem.
• The class includes thousands of real-world problems.
• Highly unlikely that any NP-hard problem can be solved by a polynomial time algorithm.
![Page 22: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/22.jpg)
NP-hard Problems• Since even polynomial time algorithms with
degree k > 3 (say) are not practical for large n, we must change our expectations of the algorithm that is used.
• Usually develop fast heuristics for NP-hard problems. Algorithm that gives a solution close to best. Runs in acceptable amount of time.
• LPT rule is good heuristic for minimum finish time scheduling.
![Page 23: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/23.jpg)
Complexity Of LPT Scheduling
• Sort jobs into decreasing order of task time. O(n log n) time (n is number of jobs)
• Schedule jobs in this order. assign job to machine that becomes available first must find minimum of m (m is number of machines)
finish times takes O(m) time using simple strategy so need O(mn) time to schedule all n jobs.
![Page 24: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/24.jpg)
Using A Min Priority Queue
• Min priority queue has the finish times of the m machines.
• Initial finish times are all 0.
• To schedule a job remove machine with minimum finish time from the priority queue.
• Update the finish time of the selected machine and put the machine back into the priority queue.
![Page 25: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/25.jpg)
Using A Min Priority Queue
• m put operations to initialize priority queue
• 1 remove min and 1 put to schedule each job
• each put and remove min operation takes O(log m) time
• time to schedule is O(n log m)
• overall time is
O(n log n + n log m) = O(n log (mn))
![Page 26: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/26.jpg)
Huffman Codes
Useful in lossless compression.
May be used in conjunction with LZW method.
Read from text.
![Page 27: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/27.jpg)
Min Tree Definition
Each tree node has a value.
Value in any node is the minimum value in the subtree for which that node is the root.
Equivalently, no descendent has a smaller value.
![Page 28: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/28.jpg)
Min Tree Example
2
4 9 3
4 8 7
9 9
Root has minimum element.
![Page 29: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/29.jpg)
Max Tree Example
9
4 9 8
4 2 7
3 1
Root has maximum element.
![Page 30: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/30.jpg)
Min Heap Definition
• complete binary tree
• min tree
![Page 31: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/31.jpg)
Min Heap With 9 Nodes
Complete binary tree with 9 nodes.
![Page 32: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/32.jpg)
Min Heap With 9 Nodes
Complete binary tree with 9 nodes that is also a min tree.
2
4
6 7 9 3
8 6
3
![Page 33: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/33.jpg)
Max Heap With 9 Nodes
Complete binary tree with 9 nodes that is also a max tree.
9
8
6 7 2 6
5 1
7
![Page 34: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/34.jpg)
Heap Height
Since a heap is a complete binary tree, the height of an n node heap is log2 (n+1).
![Page 35: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/35.jpg)
9 8 7 6 7 2 6 5 1
1 2 3 4 5 6 7 8 9 100
A Heap Is Efficiently Represented As An Array
9
8
6 7 2 6
5 1
7
![Page 36: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/36.jpg)
Moving Up And Down A Heap9
8
6 7 2 6
5 1
7
1
2 3
4 5 6 7
8 9
![Page 37: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/37.jpg)
Putting An Element Into A Max Heap
Complete binary tree with 10 nodes.
9
8
6 7 2 6
5 1
7
7
![Page 38: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/38.jpg)
Putting An Element Into A Max Heap
New element is 5.
9
8
6 7 2 6
5 1
7
75
![Page 39: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/39.jpg)
Putting An Element Into A Max Heap
New element is 20.
9
8
6
7
2 6
5 1
7
7
7
![Page 40: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/40.jpg)
Putting An Element Into A Max Heap
New element is 20.
9
8
6
7
2 6
5 1
7
77
![Page 41: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/41.jpg)
Putting An Element Into A Max Heap
New element is 20.
9
86
7
2 6
5 1
7
77
![Page 42: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/42.jpg)
Putting An Element Into A Max Heap
New element is 20.
9
86
7
2 6
5 1
7
77
20
![Page 43: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/43.jpg)
Putting An Element Into A Max Heap
Complete binary tree with 11 nodes.
9
86
7
2 6
5 1
7
77
20
![Page 44: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/44.jpg)
Putting An Element Into A Max Heap
New element is 15.
9
86
7
2 6
5 1
7
77
20
![Page 45: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/45.jpg)
Putting An Element Into A Max Heap
New element is 15.
9
8
6
7
2 6
5 1
7
77
20
8
![Page 46: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/46.jpg)
Putting An Element Into A Max Heap
New element is 15.
8
6
7
2 6
5 1
7
77
20
8
9
15
![Page 47: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/47.jpg)
Complexity Of Put
Complexity is O(log n), where n is heap size.
8
6
7
2 6
5 1
7
77
20
8
9
15
![Page 48: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/48.jpg)
Removing The Max Element
Max element is in the root.
8
6
7
2 6
5 1
7
77
20
8
9
15
![Page 49: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/49.jpg)
Removing The Max Element
After max element is removed.
8
6
7
2 6
5 1
7
77 8
9
15
![Page 50: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/50.jpg)
Removing The Max Element
Heap with 10 nodes.
8
6
7
2 6
5 1
7
77 8
9
15
Reinsert 8 into the heap.
![Page 51: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/51.jpg)
Removing The Max Element
Reinsert 8 into the heap.
6
7
2 6
5 1
7
77
9
15
![Page 52: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/52.jpg)
Removing The Max Element
Reinsert 8 into the heap.
6
7
2 6
5 1
7
77
9
15
![Page 53: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/53.jpg)
Removing The Max Element
Reinsert 8 into the heap.
6
7
2 6
5 1
7
77
9
15
8
![Page 54: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/54.jpg)
Removing The Max Element
Max element is 15.
6
7
2 6
5 1
7
77
9
15
8
![Page 55: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/55.jpg)
Removing The Max Element
After max element is removed.
6
7
2 6
5 1
7
77
9
8
![Page 56: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/56.jpg)
Removing The Max Element
Heap with 9 nodes.
6
7
2 6
5 1
7
77
9
8
![Page 57: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/57.jpg)
Removing The Max Element
Reinsert 7.
6 2 6
5 1
79
8
![Page 58: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/58.jpg)
Removing The Max Element
Reinsert 7.
6 2 6
5 1
7
9
8
![Page 59: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/59.jpg)
Removing The Max Element
Reinsert 7.
6 2 6
5 1
7
9
8
7
![Page 60: Lec23](https://reader035.vdocument.in/reader035/viewer/2022062320/559891211a28ab0c718b4596/html5/thumbnails/60.jpg)
Complexity Of Remove Max Element
Complexity is O(log n).
6 2 6
5 1
7
9
8
7