การแบ่งแยกและเอาชนะ Divide & Conquer

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
อัลกอริทึม ITS101 2/2011.
วิธีการตั้งค่าและทดสอบ เครื่องคอมพิวเตอร์ก่อนใช้งาน
Proprietary and Confidential © Astadia, Inc. | 1.
พระบาทสมเด็จพระเจ้าอยู่หัวทรงพระราชทาน
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
การซ้อนทับกัน และคลื่นนิ่ง
Chapter 2 Root of Nonlinear Functions
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 6 The Fast.
แนวทางการรายงานผลการปฏิบัติราชการโดยผ่านระบบเครือข่ายอินเตอร์เน็ต
โครงการแลกเปลี่ยนเรียนรู้ เกี่ยวกับระเบียบกระทรวงการคลัง
การจัดเก็บข้อมูลตามตัวบ่งชี้ สกอ. และ สมศ.
(เฟส 1 ระยะทดลองใช้งาน อรม.อร.)
Use Case Diagram.
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
C Programming Lecture no. 6: Function.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
A.5 Solving Equations การแก้สมการ.
กระบวนการคิดทางคณิตศาสตร์
Asst.Prof. Dr.Surasak Mungsing
CSC201 Analysis and Design of Algorithms Greedy, Divide and Conquer
การแปลงภาพสีเทาให้เป็นภาพขาวดำ
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
บทที่ 2 อาร์เรย์ อาร์เรย์ คือ ชุดของตัวแปรเดียวกัน ซึ่งสมาชิกของอาร์เรย์จะเป็นตัวแปรพื้นฐาน จำนวนสมาชิกในอาร์เรย์มีขนานแน่นอน และสมาชิกของอาร์เรย์แต้ละตัว.
เครื่องมือช่วยในการจับประเด็น รวบรวมความคิดให้เป็นหมวดหมู่
รายงานในระบบบัญชีแยกประเภททั่วไป (GL – General Ledger)
ระบบการเบิก-จ่าย ลูกหนี้เงินยืม
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ณัฏฐวุฒิ เอี่ยมอินทร์
สัปดาห์ที่ 7 การแปลงลาปลาซ The Laplace Transform.
บทที่ 3 การวิเคราะห์ Analysis.
คำสั่งควบคุมการทำงานของ ActionScripts
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
การดำเนินการทดสอบทางการศึกษาแห่งชาติ (O-NET)
รองศาสตราจารย์ ดร.เอมอัชฌา วัฒนบุรานนท์
วิชาคณิตศาสตร์ ชั้นประถมศึกษาปีที่6
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
ค21201 คณิตศาสตร์เพิ่มเติม 1
ความหมายของวิทยาศาสตร์
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
ภาษาอังกฤษเพื่อการสื่อสาร อ32204
เพื่อการเข้าสู่ตำแหน่งทางวิชาการ รองศาสตราจารย์ ดร.พันธ์ ทองชุมนุม
School of Information Communication Technology,
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
โครงสร้างข้อมูล Queues
จำนวนจริง จำนวนอตรรกยะ จำนวนตรรกยะ เศษส่วน จำนวนเต็ม จำนวนเต็มบวก
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
อัลกอริทึมแบบละโมบ.
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
โครงสร้างข้อมูลและอังกอลิทึม
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
บทที่ 5 Function. Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การค้นในปริภูมิสถานะ
กำหนดการพลวัต (Dynamic programming)
Week 13 Basic Algorithm 2 (Searching)
การแบ่งแยกและเอาชนะ Divide & Conquer
โครงการจัดทำฐานข้อมูลผ่านเว็บไซต์
ใบสำเนางานนำเสนอ:

การแบ่งแยกและเอาชนะ Divide & Conquer ตอนที่ 2

บทนำ กลวิธีนี้มีใช้เพื่อจัดการกับปัญหาในหลากหลายศาสตร์กับการออกแบบ อัลกอริทึม เพื่อแก้ไขปัญหาเชิงคำนวณ แนวคิดการแก้ปัญหาแบบนี้มี หลักการว่า แบ่งปัญหาใหญ่นั้นออกเป็นปัญหาย่อยๆ หลาย ๆ ปัญหาที่มี ขนาดเล็กกว่า หาคำตอบของแต่ละปัญหาย่อย แล้วนำคำตอบย่อยๆ ที่ได้นี้มา รวมกันเพื่อกลายเป็นคำตอบของปัญหาใหญ่ อาจจะซับซ้อนน้อยกว่า และ ใช้เวลาโดยรวมที่ดีกว่าก็ได้ อัลกอริทึมแบบแบ่งแยกและเอาชนะมักมีประสิทธิภาพที่ดีกว่าอัลกอริทึมที่ ทำงานอย่างตรงไปตรงมา ค่อยเป็นค่อยไป นอกจากนี้ยังเขียนบรรยายตัว อัลกอริทึมในรูปของการทำซ้ำแบบเรียกซ้ำได้อย่างเหมาะมาก ทำให้เขียน บรรยายอัลกอริทึมได้อย่างไม่ซับซ้อน และวิเคราะห์ประสิทธิภาพการทำงาน ได้ง่าย

หัวข้อ โครงของอัลกอริทึมแบบ Divide & Conquer ตัวอย่าง Quick select Min + Max

โครงของอัลกอริทึมแบบ Divide & Conquer

Divide – Conquer - Combine DQ ( P) { if ( P is trivial ) return Solve ( P ) Divide P into P1, P2, … , Pk for ( i =1to k ) Si = DQ ( Pi ) S = Combine ( S1, S2, …, Sk) return S }

Quick select

Selection : หาตัวน้อยสุดอันดับ k

Sort ได้ d[k] คือคำตอบ

ใช้ min-heap

ใช้ max-heap

QuickSelect

QuickSelect

QuickSelect : วิเคราะห์

QuickSelect : กรณีเร็วสุด

QuickSelect : กรณีช้าสุด

QuickSelect : กรณีเฉลี่ย

QuickSelect : กรณีช้าสุด O(n)

Median – of – Median – of - Five

Median – of – Median – of - Five

เวลาในการหา mm5

QuickSelect

Min + Max

min + max

min + max : แบ่งครึ่ง

min + max : แบ่งครึ่งๆ

min + max : แบ่งครึ่งๆ

min + max : แบ่ง(n-2) + 2

min + max : แบ่ง(n-2) + 2

วิเคราะห์ : แบ่ง(n-2) + 2

แบ่งครึ่งเหลือเศษมากกว่า