การวิเคราะห์และออกแบบขั้นตอนวิธี

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 1 การรวมธุรกิจ.
Advertisements

 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
หน่วยที่ 5 การเวียนเกิด
กระบวนการของการอธิบาย
บทที่ 3 นักวิเคราะห์ระบบและการ วิเคราะห์ระบบ. 1. นักวิเคราะห์ระบบ (System Analysis) 1.1 ความหมายของนักวิเคราะห์ระบบ นักวิเคราะห์ระบบ (System Analysis:
ประเภทของ CRM. OPERATIONAL CRM เป็น CRM ที่ให้การสนับสนุนแก่กระบวนการธุรกิจ ที่เป็น “FRONT OFFICE” ต่างๆ อาทิ การขาย การตลาด และการ ให้บริการ SALES FORCE.
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
Project Management by Gantt Chart & PERT Diagram
แบบจำลองอะตอม ครูวนิดา อนันทสุข.
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
ประเด็นที่เปลี่ยนแปลงจากปี 2560
การตรวจสอบคุณภาพเครื่องมือ
หน่วยที่ 1 ข้อมูลทางการตลาด. สาระการเรียนรู้ 1. ความหมายของข้อมูลทางการตลาด 2. ความสำคัญของข้อมูลทางการตลาด 3. ประโยชน์ของข้อมูลทางการตลาด 4. ข้อจำกัดในการหาข้อมูลทาง.
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
เกม คณิตคิดเร็ว.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การทำ Normalization 14/11/61.
มาตรฐานระบบการบริหารงานคุณภาพ
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
การวิเคราะห์และออกแบบขั้นตอนวิธี
การบริหารโครงการ Project Management
Trees (2) University of Phayao Sanchai Yeewiyom
Dr.Surasak Mungsing CSE 221/ICT221 Analysis and Design of Algorithms Lecture 14: P and NP Problems Dr.Surasak Mungsing
การบันทึกรายการค้าในสมุดบัญชี
Multistage Cluster Sampling
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
บทที่ 1 หน่วยผลิตและทางเลือกภายใต้โครงสร้างตลาด
การบัญชีต้นทุนช่วง (Process Costing).
Asst.Prof. Dr.Surasak Mungsing
บทที่ 8 การควบคุมโครงการ
การวิเคราะห์และออกแบบขั้นตอนวิธี
กรณีศึกษา : นักเรียน ระดับ ปวช.2 สาขาวิชาการบัญชี
หลักการแต่ง คำประพันธ์ประเภท โคลง. หลักการแต่ง คำประพันธ์ประเภท โคลง.
ชื่อผู้วิจัย นางสาวศุวรีย์ จำปามูล
การรายงานความคืบหน้าหรือสถานะ
แผนการขายลูกค้า SMEs พื้นที่ บน.3.1 ขบน ก.พ
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
Data storage II Introduction to Computer Science ( )
World Time อาจารย์สอง Satit UP
บทที่ 9 การทำซ้ำ (Loop).
บทที่7 ทฤษฎีกราฟเบื้องต้น
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
โซ่อุปทานและโลจิสติกส์ ญาลดา พรประเสริฐ คณะวิทยาการจัดการ
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
การวิจัยทางการท่องเที่ยว
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
งานนำเสนอสำหรับโครงการ นิทรรศการวิทยาศาสตร์
หน่วยการเรียนรู้ที่ 2 การกำหนดประเด็นปัญหา
ตัวแบบมาร์คอฟ (Markov Model)
ชัยพฤกษ์รัตนาธิเบศร์ - วงแหวน
การจัดทำแผนการสอบบัญชีโดยรวม
การประเมินผลโครงการ บทที่ 9 ผศ.ญาลดา พรประเสริฐ yalada.
มหาวิทยาลัยราชภัฏสวนสุนันทา
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
การกระจายอายุของบุคลากร วิทยาลัยดุริยางคศิลป์
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
Decision: Single and Double Selection (if and if-else statement)
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 12: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Dynamic.
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
Class Diagram.
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

การวิเคราะห์และออกแบบขั้นตอนวิธี CSE 221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 14: Review (หลัง Mid-Term) อาจารย์ผู้สอน: ดร. สุรศักดิ์ มังสิงห์ E-mail: mungsing@spu.ac.th URL: http://www.spu.ac.th/~mungsing Office Hour: 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี Topics Binary Search Tree and AVL Tree Graph: Single source shortest path Decision Tree Breadth-first-search and Depth-first-search Algorithm Design Techniques Non-deterministic polynomial problems 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี Binary Search tree ต้นไม้ Binary Search Tree (BST) เก็บค่าที่น้อยกว่า Root ไว้ใน Left sub-tree และ ค่าที่มากกว่า Root ไว้ใน Right sub-tree BST มีหลายรูปแบบและ BST ที่มีความสูงน้อยจะมีประสิทธิภาพในกรจัดเก็บและค้นหาข้อมูลมากกว่า BST ที่มีความสูงมาก ต้นไม้ BST ที่เตี้ยที่สุดจะอยู่ในรูปแบบของ AVL Tree การค้นหาข้อมูลใน BST จะมีจำนวนครั้งการเปรียบเทียบข้อมูลระหว่างการค้นหาไม่เกินความสูงของ BST Complexity ของ BST Algorithm ในการณี Worst case อยู่ใน O(n) และในกรณี Best case อยู่ใน O( logn) 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี AVL Tree AVL Tree คือ ต้นไม้ BST ที่ความสูงของ Left sub-tree และ ความสูงของ Right sub-tree ต่างกันไม่เกิน 1 ระดับ คือเป็น Balanced binary search tree การเพิ่มหรือลบโหนดใน AVL Tree อาจส่งผลให้ AVL Tree เสียสมดุลและขาดคุณสมบัติของการเป็น Balanced BST ซึ่งสามารถปรับให้ต้นไม้นั้นสมดุลและเป็น AVL Tree ได้อีกโดยการหมุนหนึ่งหรือสองครั้งแล้วแต่กรณี มี 4 กรณีที่ต้องพิจารณาในการหมุน คือ L of L, R of R, L of R และ R of L ถ้าเป็นกรณี L of L หรือ R of R ให้มุน 1 ครั้ง (Single Rotation) ถ้าเป็นกรณี L of R หรือ R of L ให้มุน 2 ครั้ง (Double Rotation) ในการหมุนนั้นให้หมุนในทิศทางตรงกันข้ามกับ sub-Tree ที่สูงกว่า เช่น ถ้า Left sub-tree สูงกว่าให้หมุนไปทางขวาและถ้า Right sub-tree สูงกว่าให้หมุนไปทางซ้าย 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

ตัวอย่างการหมุน การหมุนกรณี Left of Left การหมุนกรณี Right of Left Simple double rotation right Complex double rotation right 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Single Source Short Path Dijskstra’s Algorithm 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Dijskstra’s Algorithm 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Dijskstra’s Algorithm 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Decision Tree Exercise นักลงทุนพบที่ดินประกาศขายแปลงหนึ่ง ในทีดินแปลงนี้หากมีการสำรวจและพบว่ามีแร่เศรษฐกิจก็จะทำให้ที่ดินมีราคาสูงขึ้นคือ ถ้าสำรวจพบว่ามีสายแร่ดีบุก ก็จะนำที่ดินไปขายต่อได้ 10 ล้านบาทและถ้าสำรวจพบสายแร่ทองคำก็จะนำไปขายต่อได้ 50 ล้านบาท จึงพิจารณาว่าจะตัดสินใจตัดสินใจลงทุนอย่างไรดี ระหว่างไม่ลงทุนซื้อที่ดิน หรือ ซื้อที่ดินก่อนทันทีแล้วทำการสำรวจหาแร่เศรษฐกิจ หรือ ลงทุนสำรวจก่อนแล้วจึงตัดสินใจว่าจะซื้อหรือไม่ซื้อ ซึ่งมีข้อมูลประกอบดังนี้ ทางเลือกที่ 1 เลือกไม่ซื้อที่ดินตั้งแต่แรก ซึ่งก็จะไม่มีค่าใช้จ่ายและไม่มีผลตอบแทนการลงทุน ทางเลือกที่ 2 ซื้อที่ดินก่อนแล้วทำการสำรวจซึ่งจะต้องจ่ายเงินค่าที่ดินทันที 5 ล้านบาทและค่าสำรวจอีก 1 ล้านบาท และจากข้อมูลสถิติ ที่ดินที่มีลักษณะคล้ายที่ดินแปลงนี้จะมีโอกาสพบ ดีบุก 2% มีโอกาสพบ ทองคำ 0.05% โดยจะมีการพบเแร่เศรษฐกิจเพียงชนิดเดียวเท่านั้น (ไม่มีโอกาสที่จะพบ 2 ชนิดหรือมากกว่า และ ไม่มีโอกาสพบแร่เศรษฐกิจอื่นเลย) ทางเลือกที่ 3 ยังไม่ตัดสินใจซื้อที่ดินผืนนี้ทันที แต่จะลงทุนทำการสำรวจเบื้องต้นก่อนเป็นเวลา 3 วัน แล้วจึงตัดสินใจว่าจะซื้อที่ดินผืนนี้หรือไม่ ซึ่งจะเสียค่าได้สิทธิ์ในการสำรวจเป็นเงิน 500,000 บาทและจากประสพการณ์จะมีค่าใช้จ่ายในการสำรวจอีก เป็นเงิน 200,000 บาท ถ้าผลการสำรวจประสพความสำเร็จอย่างมีนัยสำคัญ โอกาสที่จะพบ ดีบุก และ ทองคำ จะเพิ่มเป็น 4% และ 1% ตามลำดับ แต่ถ้าผลสำรวจไม่ประสพความสำเร็จ โอกาสที่จะพบ ดีบุก และทองคำ จะลดลงเป็น 0.3 % และ 0.02% ตามลำดับ จงสร้างต้นไม้ตัดสินใจสำหรับเลือกวิธีลงทุน และคำนวณค่าคาดหวังจากการลงทุนของแต่ละทางเลือก

ที่โหนด 3 มีค่าคาดหวัง = (0.5*(-0.7 )) + ((0.5*(-0.7 ))= -0.7 Decision Tree เลือกไม่ซื้อตั้งแต่แรก มีกำไรเป็น 0 ค่าคาดหวังที่โหนด 2 = (2%x4) + (0.05%x44) + ((97.55%x(-6)) = -5.771 ค่าคาดหวังที่โหนด 6 = (4%x4.3) + (1%x44.3) + ((95%x(-5.7)) = -4.8 ค่าคาดหวังที่โหนด 7 = (.3%x4.3) + (0.02%x44.3) + ((99.68%x(-5.7)) = -5.66 ที่โหนด 4 ถ้าซื้อที่ดินจะมีค่าคาดหวัง -4.8 ถ้าไม่ซื้อที่ดินจะมีค่าคาดหวัง -0.7 ดังนั้นเลือกไม่ซื้อที่ดิน ที่โหนด 5 ถ้าซื้อจะมีค่าคาดหวัง -5.66 ถ้าไม่ซื้อจะมีค่าคาดหวัง -0.7 ดังนั้นเลือกไม่ซื้อที่ดิน ที่โหนด 3 มีค่าคาดหวัง = (0.5*(-0.7 )) + ((0.5*(-0.7 ))= -0.7

จากค่าคาดหวังที่คำนวณได้ เลือกตัดสินใจไม่ซื้อตั้งแต่แรก ที่โหนด 2 ถ้าซื้อทันทีแล้วลงทุนสำรวจจะมีค่าคาดหวัง -5.771 จากค่าคาดหวังที่คำนวณได้ เลือกตัดสินใจไม่ซื้อตั้งแต่แรก ที่โหนด 8 เลือกไม่ซื้อตั้งแต่แรก มีกำไรเป็น 0 ที่โหนด 3 สำรวจเบื้องต้น 3 วันและตัดสินใจไม่ซื้อ มีค่าคาดหวัง = -0.7

Breadth-first-search Breadth-first search (BFS) เป็นการค้นหาในแนวกว้างซึ่งที่กระจายออกทีละระดับ เริ่มต้นจากโหนดที่กำหนดไปยังโหนดที่เชื่อมต่อถึงกันโดยตรงทั้งหมดก่อน ถ้าหาไม่พบข้อมูลที่ต้องการก็จะค้นหาต่อไปยังโหนดอื่นที่เชื่อมต่อโดยตรงกับโหนดในรอบการค้นหาที่ผ่านมา สำหรับโหนดที่เชื่อมต่อโดยตรงแต่ยังไม่ได้ทำการสำรวจจะเก็บไว้ในคิวเพื่อทำการสำรวจในภายหลังตามลำดับ ทำการค้นหาจนกว่าจะพบข้อมูลที่ต้องการหรือสิ้นสุดการค้นหาโดยไม่พบข้อมูล 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี Depth-first-search Depth-first search (DFS) เป็นการค้นหาในแนวลึก โดยเริ่มจากโหนดที่กำหนดแล้วไปค้นหาที่โหนดซึ่งเป็นหนึ่งในจำนวนโหนดต่างๆที่เชื่อมต่อโดยตรงกับโหนดเริ่มต้น และหลังจากนั้นก็ค้นหาต่อไปยังหนึ่งในจำนวนโหนดต่างๆที่เชื่อมต่อโดยตรงกับโหนดที่ผ่านมา สำหรับโหนดที่เชื่อมต่อโดยตรงอื่นๆที่ยังไม่ได้ทำการสำรวจจะเก็บไว้ในสแต็กเพื่อทำการสำรวจในภายหลัง ดังที่แสดงในรูปที่ 10.2 การค้นหาดำเนินไปในลักษณะดังกล่าวเรื่อยๆจนกว่าจะพบข้อมูลที่ค้นหาหรือสิ้นสุดการค้นหาโดยไม่พบข้อมูล 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Search Tree Search Tree ของการค้นหาแบบ BSF Search Tree ของการค้นหาแบบ DSF เริ่มจากเมือง Chicago เริ่มจากเมือง Chicago 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

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

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี การทำ Rehashing Theorem ในการแก้ปัญหา Collision แบบ Quadratic probing และ table size เป็นเลข prime แล้ว ข้อมูลใหม่จะมีที่ลงในตารางเสมอหากว่า table ยังอย่างน้อยครึ่งหนึ่งของตารางยังว่าง ตัวอย่างการทำ Rehashing 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Greedy Method & Divide and Conquer Greedy method เป็นเทคนิคที่การตัดสินใจเลือกหนทางปฏิบัติโดยพิจารณาทางเลือกที่เห็นว่าดีที่สุดในขณะนั้น โดยไม่สนใจต่อผลกระทบหรือทางเลือกที่จะต้องตัดสินใจในอนาคต หนทางปฏิบัติที่เลือกอาจเป็นเพียง Local optimum เท่านั้น อาจต้องมีการปรับเลือกหนทางปฏิบัติกันใหม่อีกเพื่อให้ได้ผลลัพธ์ที่ดีที่สุดของปัญหา (Global optimum) ตัวอย่างการใช้เทคนิค Greedy Algorithm ที่ได้เห็นมาแล้วในบทเรียนก่อนหน้านี้ได้แก่ Dijkstra’s, Prim’s และ Kruskal’s Algorithms การประยุกต์ใช้เทคนิคนี้กับการแก้ปัญหายังมีอีกมาก เช่น ปัญหาการกำหนดงาน (Simple Scheduling Problems) ปัญหาการบรรจุ (Approximate Bin Packing) Divide and Conquer Strategy เป็นเทคนิคการออกแบขั้นตอนวิธีที่แบ่งออกเป็น 2 ขั้นตอน คือ Divide ซึ่งเป็นขั้นตอนการแบ่งปัญหาออกเป็นส่วนย่อยๆแล้วแก้ปัญหาย่อยเหล่านั้นโดยวิธีการของฟังก์ชันที่เรียกตัวเองอย่างน้อย 2 ครั้ง Conquer เป็นขั้นตอนของการสร้างผลลัพธ์ของปัญหาใหญ่จากผลลัพธ์ของปัญหาย่อย ตัวอย่างการแก้ปัญหาโดยใช้เทคนิคของ Divide and Conquer เช่น ปัญหา the Maximum Subsequence Sum ซึ่งมีความซับซ้อนด้านเวลาเป็น O(nlogn) และขั้นตอนวิธีของการเรียงลำดับแบบ Mergesort และ Quicksort ซึ่งมีความซับซ้อนด้านเวลาในกรณี worst-case ของ Mergesort และ กรณี average-case ของ Quicksort เป็น O(nlogn) ตัวอย่างอื่นๆที่ใช้เทคนิคของ Divide and Conquer ได้แก่ ปัญหาการหาคู่ของจุดที่มีระยะห่างกันน้อยที่สุด (Closest-point Problem) 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Dynamic Programming and Back traking Dynamic Programming เป็นเทคนิคการแก้ปัญหาที่ไม่ใช้ Recursive call เพื่อปรับปรุงประสิทธิภาพการทำงานของขั้นตอนวิธีให้ดีขึ้น โดยใช้วิธีบันทึกผลลัพธ์ย่อยของแต่ละขั้นตอนอย่างเป็นระบบลงในตาราง วิธีการดังกล่าวนี้คือหลักการของ Dynamic Programming ตัวอย่างของการใช้เทคนิคของ Dynamic programming เช่นปัญหาการคำนวณตัวเลข Fibonacci number ซึ่งหากใช้วิธีการของ Recursive algorithm จะมีความซับซ้อนด้านเวลาเป็น Exponential คือ O(2n) แต่หากเปลี่ยนมาใช้วิธีการของ non-recursive algorithm เป็นลักษณะของ Linear algorithm จะช่วยให้การทำงานมีประสิทธิภาพยิ่งขึ้นมากเป็น O(n) ตัวอย่างอื่นๆที่ใช้เทคนิค Dynamic programming ได้แก่ ปัญหา All-pairs Shortest Path, Dijkstra’s algorithm (Single-source, Shortest-path) ปัญหา Resource Allocation Backtracking เป็นเทคนิคที่ใช้ในการหาคำตอบให้กับปัญหาที่ต้องมีการทดสอบผลของการการตัดสินใจในแต่ละขั้นตอนว่าจะดำเนินการต่อไปอย่างไร ถ้าได้คำตอบที่ต้องการก็จะหยุดการทำงาน แต่ถ้าผลการตัดสินใจที่ผ่านมาไม่ได้คำตอบที่ต้องการก็จะมีการย้อนกลับขั้นตอนตามเส้นทางการตัดสิใจเดิมและตัดสินใจเดินหน้าค้นหาคำตอบต่อไปใหม่ ตัวอย่างของการใช้เทคนิคนี้ในชีวิตประจำวันเช่นการจัดเฟอร์นิเจอร์ในห้องรับแขก โดยทำการย้ายเฟอร์นิเจอร์ไปวางตามจุดต่างๆของห้อง ถ้าดูแล้วไม่ถูกใจ(ไม่ใช่ solution ที่ต้องการ) ก็อาจจะต้องย้ายเฟอร์นิเจอร์บางอย่างกลับมาที่เดิมอีก แล้วก็ตัดสินใจใหม่ว่าจะวางไว้ที่ไหนดี เป็นต้น ตัวอย่างของการใช้เทคนิคนี้ในการออกแบบขั้นตอนวิธีอีกตัวอย่างหนึ่งคือการแก้ปัญหา 8 ราชินี (Eight Queens Problem) 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

Non-deterministic Polynomial Problems ปัญหาเป็นแบบ P หรือ NP ปัญหาแบ่งเป็น 2 กลุ่ม กลุ่มแรกคือปัญหาที่แก้ไขได้ในเวลา Polynomial กลุ่มที่สองคือปัญหาที่ ไม่ สามารถแก้ไขได้ในเวลา Polynomial ปัญหาในกลุ่มที่สองอาจแก้ได้ในเวลา Polynomial ถ้าใช้วิธีเดา (guess) คำตอบ โดยกำหนดระยะเวลาในการเดาคำตอบให้อยู่ในรูปของเวลา P ปัญหาที่แก้ไขได้ในเวลา Polynomial เรียกว่าปัญหาแบบ P ปัญหาที่แก้โดยใช้เวลา P ในการเดาคำตอบ เป็นปัญหาแบบ NP หรือ Non-Deterministic Polynomial Problems 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี การลดรูปของปัญหา ในด้านของทฤษฎีการคำนวณได้ และทฤษฎีความซับซ้อนในการคำนวณ คำว่า "การลดรูป" นั้นหมายถึงการพิจารณาการแก้ปัญหาอย่างหนึ่งให้ไปเป็นการแก้ปัญหาอีกปัญหาหนึ่ง ซึ่งบางทีอาจจะรู้สึกว่าปัญหานั้นไม่เกี่ยวกันเลยก็ได้ ถ้าเรากล่าวว่า A ลดรูปเป็น B เราหมายความว่าการแก้ปัญหา B ได้จะส่งผลให้เราสามารถแก้ปัญหา A ได้ด้วย เพราะฉะนั้น A จะไม่ยากไปกว่า B ในปี ค.ศ. 1971 Cook ได้แสดงให้เห็นว่าปัญหา SAT เป็นปัญหาที่ยากที่สุดใน NP โดยการพิสูจน์ว่าทุกๆปัญหาใน NP สามารถลดรูปแบบพหุนามไปเป็น SAT ได้หมด ในปี ค.ศ. 1972 Karp ได้อาศัยกลวิธีการลดรูปเพื่อแสดงให้เห็นว่ามีปัญหาอื่นๆอีกมากมายหลากหลายรูปแบบที่มีความยากง่ายเทียบเท่ากับ SAT นั่นก็คือกลุ่มปัญหาที่เรียกว่า NP-Complete ซึ่งเป็นกลุ่มปัญหาที่ยากที่สุดใน NP หมายความว่าเป็นกลุ่มปัญหาที่มีความยากง่ายทัดเทียมกันหมด (อันเป็นที่มาของคำว่า Complete) 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

สรุปเกี่ยวกับปัญหา P และ NP NP-Complete NP หากใครพบอัลกอริทึมที่มีประสิทธิภาพที่แก้เพียง 1 ปัญหาใน NP-Complete ก็ย่อมหมายความว่าทุกปัญหาใน NPC เป็นปัญหาง่ายทั้งสิ้น (นั่นคือพิสูจน์ได้ว่า P = NP) ในทางกลับกัน ถ้ามีใครสามารถพิสูจน์เพียง 1 ปัญหาใดใน NPC เป็นปัญหายาก ก็สรุปได้ว่าทุกปัญหาในกลุ่มนี้เป็นปัญหายากทั้งสิ้น (นั่นคือ พิสูจน์ได้ว่า P  NP หรือ P  NP) 1/3/2019 CSE221 การวิเคราะห์และออกแบบขั้นตอนวิธี

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