งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

CSC201 Anaysis and Design of Algorithmss CSC201 Anaysis and Design of Algorithmss Analysis of Searching Algorithms Asst.Prof. Dr.Surasak Mungsing E-mail:

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "CSC201 Anaysis and Design of Algorithmss CSC201 Anaysis and Design of Algorithmss Analysis of Searching Algorithms Asst.Prof. Dr.Surasak Mungsing E-mail:"— ใบสำเนางานนำเสนอ:

1 CSC201 Anaysis and Design of Algorithmss CSC201 Anaysis and Design of Algorithmss Analysis of Searching Algorithms Asst.Prof. Dr.Surasak Mungsing Aug-141

2 Graph Search Methods ปัญหากราฟจำนวนมากแก้โดยวิธีการค้นหา (Many graph problems solved using a search method)  การหาเส้นทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง (Path from one vertex to another)  กราฟเชื่อมต่อกันหรือไม่ (Is the graph connected?)  การหาต้นไม้แผ่ของกราฟ (Find a spanning tree)  Etc. วิธีการค้นหาที่รู้จักกันทั่วไป (Commonly used search methods):  Breadth-first search.  Depth-first search. Aug-142

3 8/1/20143 CSE221 การวิเคราะห์และ ออกแบบขั้นตอนวิธี

4 8/1/20144 Breadth-First Search Example  ถ้าให้โหนดแทน เมืองต่างๆ กราฟก็เหมือน ถนนที่เชื่อมเมือง ซึ่งสามารถที่พา ไปยังเมืองต่างๆ ได้

5 8/1/20145 จากเมือง Chicago, สามารถท่องไปยังเมือง ต่างๆได้โดยวิธี breadth- first search ได้ดังนี้  เริ่มด้วยการเดินทางไป ยังเมืองที่อยู่ใกล้ที่สุด ก่อน ได้แก่เมือง Saint Louis, Milwaulkee, Detroit และ Indianapolis Breadth-First Search Example

6 8/1/20146 จากนั้น ก็เดินทาง ต่อไปยังเมืองที่ใกล้ ที่สุดของเมืองต่างๆที่ ยังไม่ได้  จากเมือง Milwaulkee ไปยังเมือง Minneapolis และเมือง Omaha Breadth-First Search Example

7 8/1/20147  จากเมือง St. Louis ไป เมือง Kansas City, Tulsa, Nashville และ Lexington Breadth-First Search Example

8 8/1/20148 Breadth-First Search Example  จากเมือง Indianapolis ไป เมือง Cincinnati และเมือง Columbus

9 8/1/20149 Data structures for BFS algorithm 1. สร้าง array ของโหนดจากกราฟ G. แต่ละโหนดจะกำหนด สี (color), ระยะทาง (distance) และโหนดก่อนหน้า ( predecessor ) : - color: (White, Grey, Black). White: ถ้ายังไม่เคยตรวจสอบมาก่อน ดังนั้นในกาเริ่มต้นทุก โหนดเป็นสี WHITE Grey: ถ้าถูกตรวจแล้วแต่โหนดประชิดของโหนดนี้ยังไม่ถูก ตรวจ Black: ถ้าโหนดถูกตรวจสอบแล้วและโหนดประชิดก็ถูกตรวจ แล้วด้วย - distance: จำนวน edges ที่จะต้องเดินทางนับจากจุดเริ่มต้น มีค่า เป็น INFINITY เมื่อเริ่มต้น - predecessor: โหนดก่อนหน้าก่อนที่จะถึงโหนดนี้ 2. สร้างคิว Q ของโหนดสี GREY ทั้งหมด ( โหนดที่ไปถึง แล้วแต่ยังไม่ได้ไปต่อ ) 3. ให้การแทนข้อมูลกราฟ G เป็นแบบ adjacency list

10 Time Complexity  Each visited vertex is put on (and so removed from) the queue exactly once.  When a vertex is removed from the queue, we examine its adjacent vertices.  O(n) if adjacency matrix used  O(vertex degree) if adjacency lists used  Total time  O(mn), where m is number of edges in the component that is searched (adjacency matrix)  O(n + sum of component vertex degrees) (adj. lists) = O(n + number of edges in component)

11 8/1/201411

12 8/1/201412

13 8/1/ Depth-First Search ลองนึกภาพคนเดินหาทาง ออกจากเขาวงกต เขาจะ เดินไปข้างหน้าเรื่อยๆ จนกระทั่งถึงทางตันหรือ พบเส้นทางที่เคยเดินผ่าน มาก่อน จากนั้นจะเลี้ยวไป ทางแยกที่ยังไม่เคยไปมา ก่อนเพื่อเดินหน้าค้นหา ทางออกจากเขาวงกต ต่อไป สำหรับกราฟแผนที่ เมือง Chicago เหตุการณ์ จะเป็นดังนี้

14 8/1/ Depth-First Search จากเมือง Chicago ไปยังเมือง Milwaukee

15 8/1/ Depth-First Search จากเมือง Milwaukee ไปยังเมือง Minneapolis

16 8/1/ Depth-First Search จากเมือง Minneapolis ไปยังเมือง Omaha

17 8/1/ Depth-First Search จากเมือง Omaha ไปยังเมือง Kansas City

18 8/1/ Depth-First Search จากเมือง Kansas City ไปยังเมือง St. Louis

19 8/1/ Depth-First Search จากเมือง St. Louis ไปยังเมือง Tulsa

20 8/1/ Depth-First Search จากเมือง St. Louis ไปยังเมือง Nashville

21 8/1/ Depth-First Search จากเมือง Nashville ไปยังเมือง Lexington

22 8/1/ Depth-First Search จากเมือง Lexington ไปยังเมือง Cincinnati Cincinnati

23 8/1/ Depth-First Search จากเมือง Cincinnati ไปยังเมือง Columbus

24 8/1/ Depth-First Search จากเมือง Columbus ไปยังเมือง Detroit Detroit

25 8/1/ Depth-First Search จากเมือง Columbus ไปยังเมือง Indianapolis

26 8/1/ Data structures for DFS algorithm 1. สร้าง array ของโหนดจากกราฟ G. แต่ละโหนดจะ กำหนด color, predecessor, start_time และ end_time: - color: (White, Grey, Black). White: ถ้ายังไม่เคยตรวจสอบมาก่อน ดังนั้นในกา เริ่มต้นทุกโหนดเป็นสี WHITE Grey: ถ้าถูกตรวจแล้วแต่โหนดประชิดของโหนดนี้ ยังไม่ถูกตรวจ Black: ถ้าโหนดถูกตรวจสอบแล้วและโหนดประชิดก็ ถูกตรวจแล้วด้วย - start_time: เวลาในขั้นตอนวิธีเมื่อโหนดถูกมาเยือนเป็นครั้งแรก - end_time: เวลาในขั้นตอนวิธีเมื่อโหนดประชิดถูกตรวจสอบ แล้ว ( เมื่อโหนดนี้เป็น black ) - predecessor: โหนดก่อนหน้าก่อนที่จะถึงโหนดนี้เป็นครั้งแรก 2. ให้การแทนข้อมูลกราฟ G เป็นแบบ adjacency list

27 Depth-First Search Properties  Time complexity เหมือนกับของ BFS.  คุณสมบัติที่เกี่ยวกับการหาเส้นทาง การหาการเชื่อมต่อกัน ขององค์ประกอบและ spanning tree ของ BFS และ DFS เหมือนกัน  มีหลายปัญหาที่วิธีของ BFS ดีกว่า DFS และก็มีหลายปัญหา ที่วิธีของ DFS ดีกว่า BFS

28 8/1/ Breadth-first search VS Depth-first search trees

29 8/1/ Breadth-first search VS Depth-first search trees

30 8/1/201430

31 8/1/201431

32 8/1/ แนวคิดของเทคนิค Hashing  แต่ละค่าคีย์จะ map ไปยังตัวเลขที่มีค่าระหว่าง 0 ถึง TableSize -1 และเก็บอยู่ในตำแหน่งที่เหมาะสม  การ map ค่าคีย์ทำโดย hash function ซึ่งในทาง ทฤษฎีจะเป็นฟังก์ชันง่ายๆซึ่งสามารถให้ผลลัพทธ์ที่ แตกต่างกันสำหรับค่าคีย์หนึ่งๆ  มีประเด็นที่จะต้องพิจารณาคือการเลือก hash function และการแก้ปัญหาเมื่อค่าคีย์ 2 ค่า ประมวลผลโดย hash function แล้วได้ผลลัพทธ์ เดียวกัน

33 8/1/ Hash function  hash function อย่างง่าย hash(key) = key MOD TableSize  TableSize ควรเป็นตัวเลขจำเพาะ (prime number)  การได้ผลลัพธ์เหมือนกันจากค่าคีย์ที่แตกต่างกัน เรียกว่า Collision  การแก้ปัญหา Collision ทำโดยการเก็บค่าคีย์ใน Hash table แบบ  Separate Chaining  Open Addressing

34 8/1/ Separate chaining Key={0, 81, 64, 25, 36, 49, 4, 1, 9, 16} H(x) = x % 10

35 8/1/ Open addressing with Linear Probing  Key {89, 18, 49, 58, 69}  Hash function: hash(x)=x MOD 10  Collision resolution strategy: f(i)=i

36 8/1/ Open addressing with Quadratic Probing  Key {89, 18, 49, 58, 69}  Hash function: hash(x)=x MOD 10  Collision resolution strategy: f(i)=i 2

37 8/1/ Open addressing with Double Hashing  Key {89, 18, 49, 58, 69}  Hash functions: hash(x)=x MOD 10 hash 2 (x)=7-(x MOD 7)  Collision resolution strategy: f(i)=i*hash 2 (x)

38 8/1/ Theorem ถ้าใช้การแก้ปัญหา Collision แบบ Quadratic probing และ table size เป็นเลข prime แล้ว ข้อมูลใหม่จะมีที่ลงในตารางเสมอหากว่า table ยังอย่างน้อยครึ่งหนึ่งของตารางยังว่าง If quadratic probing is used, and the table size is prime, then a new element can always be inserted if the table is at least half empty.

39 8/1/ Rehashing Open addressing hash table with linear probing with input 13, 15, 6, 24 Open addressing hash table with linear probing after 23 is inserted Open addressing hash table after rehashing

40 1-Aug-1440 Next Lecture: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Greedy, Divide and Conquer


ดาวน์โหลด ppt CSC201 Anaysis and Design of Algorithmss CSC201 Anaysis and Design of Algorithmss Analysis of Searching Algorithms Asst.Prof. Dr.Surasak Mungsing E-mail:

งานนำเสนอที่คล้ายกัน


Ads by Google