data structures
play

Data Structures Algorithm Theory WS 2012/13 Fabian Kuhn Examples - PowerPoint PPT Presentation

Chapter 4 Data Structures Algorithm Theory WS 2012/13 Fabian Kuhn Examples Dictionary: Operations: insert( key,value ), delete( key ), find( key ) Implementations: Linked list: all operations take time ( : size of data


  1. Chapter 4 Data Structures Algorithm Theory WS 2012/13 Fabian Kuhn

  2. Examples Dictionary: • Operations: insert( key,value ), delete( key ), find( key ) • Implementations: – Linked list: all operations take ���� time ( � : size of data structure) – Balanced binary tree: all operations take � log � time – Hash table: all operations take ��1� times (with some assumptions) Stack (LIFO Queue): • Operations: push, pull • Linked list: ��1� for both operations (FIFO) Queue: • Operations: enqueue, dequeue • Linked list: ��1� time for both operations Here: Priority Queues (heaps) , Union ‐ Find data structure Algorithm Theory, WS 2012/13 Fabian Kuhn 2

  3. Dijkstra’s Algorithm Single ‐ Source Shortest Path Problem: • Given: graph � � ��, �� with edge weights � � � 0 for � ∈ � source node � ∈ � • Goal: compute shortest paths from � to all � ∈ � Dijkstra’s Algorithm: 1. Initialize � �, � � 0 and � �, � � ∞ for all � � � 2. All nodes are unmarked 3. Get unmarked node � which minimizes ���, �� : For all � � �, � ∈ � , � �, � � min � �, � , � �, � � � � 4. mark node � 5. 6. Until all nodes are marked Algorithm Theory, WS 2012/13 Fabian Kuhn 3

  4. Example ∞ 1 32 ∞ ∞ 3 9 10 23 4 13 ∞ ∞ 3 2 6 2 ∞ ∞ 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 ∞ 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 4

  5. Example ∞ 1 32 ∞ ∞ 3 9 10 23 4 13 � ∞ 3 2 6 2 ∞ �� �� 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 5

  6. Example ∞ 1 32 � ∞ 3 9 10 23 4 13 � ∞ 3 2 6 2 ∞ � 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 6

  7. Example � 1 32 � ∞ 3 9 10 23 4 13 � �� �� 3 2 6 2 ∞ � 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 7

  8. Example � 1 32 � �� �� 3 9 10 23 4 13 � �� �� 3 2 6 2 ∞ � 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 8

  9. Example � 1 32 � �� �� 3 9 10 23 4 13 � � 3 2 6 2 ∞ � 1 3 ∞ 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 9

  10. Example � 1 32 � �� �� 3 9 10 23 4 13 � � 3 2 6 2 �� �� � 1 3 �� �� 17 9 19 8 2 1 � 20 ∞ 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 10

  11. Example � 1 32 � �� �� 3 9 10 23 4 13 � � 3 2 6 2 �� �� � 1 3 �� �� 17 9 19 8 2 1 � 20 �� �� 18 �� �� 1 Algorithm Theory, WS 2012/13 Fabian Kuhn 11

  12. Implementation of Dijkstra’s Algorithm Dijkstra’s Algorithm: 1. Initialize � �, � � 0 and � �, � � ∞ for all � � � 2. All nodes are unmarked 3. Get unmarked node � which minimizes ���, �� : For all � � �, � ∈ � , � �, � � min � �, � , � �, � � � � 4. mark node � 5. 6. Until all nodes are marked Algorithm Theory, WS 2012/13 Fabian Kuhn 12

  13. Priority Queue / Heap • Stores ( key,data ) pairs (like dictionary) • But, different set of operations: • Initialize ‐ Heap : creates new empty heap • Is ‐ Empty : returns true if heap is empty • Insert ( key,data ): inserts ( key,data ) ‐ pair, returns pointer to entry • Get ‐ Min : returns ( key,data ) ‐ pair with minimum key • Delete ‐ Min : deletes minimum ( key,data ) ‐ pair • Decrease ‐ Key ( entry,newkey ): decreases key of entry to newkey • Merge : merges two heaps into one Algorithm Theory, WS 2012/13 Fabian Kuhn 13

  14. Implementation of Dijkstra’s Algorithm Store nodes in a priority queue, use ���, �� as keys: 1. Initialize � �, � � 0 and � �, � � ∞ for all � � � 2. All nodes are unmarked 3. Get unmarked node � which minimizes ���, �� : mark node � 4. For all � � �, � ∈ � , � �, � � min � �, � , � �, � � � � 5. 6. Until all nodes are marked Algorithm Theory, WS 2012/13 Fabian Kuhn 14

  15. Analysis Number of priority queue operations for Dijkstra: � • Initialize ‐ Heap : |�| • Is ‐ Empty : |�| • Insert : |�| • Get ‐ Min : |�| • Delete ‐ Min : |�| • Decrease ‐ Key : � • Merge : Algorithm Theory, WS 2012/13 Fabian Kuhn 15

  16. Priority Queue Implementation Implementation as min ‐ heap:  complete binary tree, e.g., stored in an array ���� • Initialize ‐ Heap : ���� • Is ‐ Empty : � ��� � • Insert : • Get ‐ Min : � � � ��� � • Delete ‐ Min : � ��� � • Decrease ‐ Key : • Merge (heaps of size � and � , � � � ): ��� ��� �� Algorithm Theory, WS 2012/13 Fabian Kuhn 16

  17. Better Implementation • Can we do better? • Cost of Dijkstra with complete binary min ‐ heap implementation: � � log � • Can be improved if we can make decrease ‐ key cheaper… • Cost of merging two heaps is expensive • We will get there in two steps: Binomial heap  Fibonacci heap Algorithm Theory, WS 2012/13 Fabian Kuhn 17

  18. Definition: Binomial Tree Binomial tree � � of order � � � 0 : � � � � ��� � � � � � Algorithm Theory, WS 2012/13 Fabian Kuhn 18

  19. Binomial Trees � � � � � � � � Algorithm Theory, WS 2012/13 Fabian Kuhn 19

  20. Properties 1. Tree � � has 2 � nodes 2. Height of tree � � is � 3. Root degree of � � is � 4. In � � , there are exactly � nodes at depth � � Algorithm Theory, WS 2012/13 Fabian Kuhn 20

  21. Binomial Coefficients • Binomial coefficient: � � : # of � � element � subsets of a set of size � • Property: � ��� ��� � � ��� � � Pascal triangle: Algorithm Theory, WS 2012/13 Fabian Kuhn 21

  22. Number of Nodes at Depth in Claim: In � � , there are exactly � nodes at depth � � Algorithm Theory, WS 2012/13 Fabian Kuhn 22

  23. Binomial Heap • Keys are stored in nodes of binomial trees of different order � nodes : there is a binomial tree � � or order � iff bit � of base ‐ 2 representation of � is 1 . • Min ‐ Heap Property: Key of node � � keys of all nodes in sub ‐ tree of � Algorithm Theory, WS 2012/13 Fabian Kuhn 23

  24. Example • 10 keys: �2, 5, 8, 9, 12, 14, 17, 18, 20, 22, 25� • Binary representation of � : 11 � � 1011  trees � � , � � , and � � present � � � � � � 5 2 17 9 14 20 8 12 18 25 22 Algorithm Theory, WS 2012/13 Fabian Kuhn 24

  25. Child ‐ Sibling Representation Structure of a node: parent key degree child sibling � � � � � � Algorithm Theory, WS 2012/13 Fabian Kuhn 25

  26. Link Operation • Unite two binomial trees of the same order to one tree:  12 � � ⨁� � ⇒ � ���  • Time: ����  15 20 18   ⨁ 25 40 22 � � � �     30   Algorithm Theory, WS 2012/13 Fabian Kuhn 26

  27. Merge Operation Merging two binomial heaps: • For � � �, �, … , ��� � : If there are 2 or 3 binomial trees � � : apply link operation to merge 2 trees into one binomial tree � ��� � � � � � � � � � �� � �� � � � � � � � � � �� � �� Time: � � � � � � � � � � � �� � �� � � ∪ � � Algorithm Theory, WS 2012/13 Fabian Kuhn 27

  28. Example 9 13 5 2 17 12 18 14 20 8 22 25 Algorithm Theory, WS 2012/13 Fabian Kuhn 28

  29. Operations Initialize : create empty list of trees Get minimum of queue: time ��1� (if we maintain a pointer) Decrease ‐ key at node � : • Set key of node � to new key • Swap with parent until min ‐ heap property is restored • Time: ��log �� Insert key � into queue � : 1. Create queue � � of size 1 containing only � 2. Merge � and � � • Time for insert: ��log �� Algorithm Theory, WS 2012/13 Fabian Kuhn 29

  30. Operations Delete ‐ Min Operation: 1. Find tree � � with minimum root � 2. Remove � � from queue �  queue �′ 3. Children of � form new queue �′′ 4. Merge queues �′ and �′′ • Overall time: ����� �� Algorithm Theory, WS 2012/13 Fabian Kuhn 30

  31. Delete ‐ Min Example 2 5 17 9 14 20 8 12 18 25 22 Algorithm Theory, WS 2012/13 Fabian Kuhn 31

  32. Complexities Binomial Heap ���� • Initialize ‐ Heap : ���� • Is ‐ Empty : � ��� � • Insert : � � • Get ‐ Min : � ��� � • Delete ‐ Min : � ��� � • Decrease ‐ Key : ����� �� • Merge (heaps of size � and � , � � � ): Algorithm Theory, WS 2012/13 Fabian Kuhn 32

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend