อัลกอริทึมและผังงาน อาจารย์สมเกียรติ ช่อเหมือน

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึม ITS101 2/2011.
Advertisements

Chapter 8 : Logic Modeling & Data Modeling
การทำงานแบบเลือกทำ (Selection)
ลักษณะโครงสร้างของผังงาน
ขั้นตอนการพัฒนาโปรแกรม
การแก้ปัญหาด้วยคอมพิวเตอร์
ผังงานโปรแกรม (Program Flowchart)
รหัสเทียม (Pseudo Code)
Asst.Prof. Dr.Surasak Mungsing
CSC201 Analysis and Design of Algorithms Greedy, Divide and Conquer
การวิเคราะห์ประสิทธิภาพของอัลกอริธึม (Performance Analysis)
ให้ประหยัดการใช้หน่วยความจำ (space) ด้วยความรวดเร็ว (time)
การเขียนโปรแกรมภาษาซี
บทที่ 11 การเขียนโปรแกรมแบบ Structured Programming และการจัดการตรวจสอบข้อผิดพลาด.
Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them? At the heart of computer program.
การออกแบบโปรแกรม ขั้นตอนการแก้ปัญหา การนิยามปัญหา (Problem definition)
ใบงาน 1. ให้นักเรียนคัดลอกเนื้อหาและตัวอย่างเรื่อง การวิเคราะห์ปัญหาและการจำลองความคิดตั้งแต่สไลด์ที่ 2-11 ลงในสมุด (ถ้าไม่มีให้ทำในกระดาษสมุด1คู่) 2.
ปัญหาคืออะไร. การวิเคราะห์ขั้นตอนวิธีการแก้ไขปัญหา รายวิชา การโปรแกรมและการประยุกต์ (ง30222)
หน่วยที่ 4 หลักการแก้ปัญหากับภาษาคอมพิวเตอร์
Introduction ธนวัฒน์ แซ่เอียบ.
Programming & Algorithm
การค้นในปริภูมิสถานะ
20 May 2556 Problem Analysis and Algorithms in Programming.
Problem Analysis and Algorithm (การวิเคราะห์ปัญหา และการจำลองความคิด)
Problem Analysis and Algorithm in Programming (การวิเคราะห์ปัญหา และการจำลองความคิดในการเขียนโปรแกรมคอมฯ)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
ผังงานโปรแกรม (Program Flowchart)
BC322 : Computer Programing (ครั้งที่ 1)
ว่าที่ ร.ต.หญิงวรรณธิดา วรสุทธิพงษ์ ครูแผนกวิชาคอมพิวเตอร์ธุรกิจ
เอกสารประกอบการบรรยาย หลักสูตร Fundamental หัวข้อวิชา องค์กรและระบบงานตรวจสอบภายใน สำนักกำกับและพัฒนาการตรวจสอบภาครัฐ กรมบัญชีกลาง.
หลักการและวิธีการแก้ปัญหาด้วยกระบวนการทางเทคโนโลยีสารสนเทศ
Data Structure & Algorithm Concept
การวิเคราะห์และออกแบบขั้นตอนวิธี
การแสดงขั้นตอนวิธีด้วยรหัสเทียม (Pseudo-Code)
โครงสร้างโปรแกรมภาษา C
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
Complexity Lecturers : Boontee Kruatrachue Room no Kritawan Siriboon Room no. 913 Text : Data Structures & Algorithm.
สื่อการสอนรายวิชา ง30204 โปรแกรมภาษาชี ภาษาคอมพิวเตอร์และโปรแกรม
“หลักการแก้ปัญหา”.
บทนำ แผนภาพกระแสข้อมูล (Data Flow Diagram) เป็นการออกแบบที่แสดงตรรกะของกระบวนการทำงาน โดยมีการวาดแผนผังออกมา คล้ายกับการสร้างบ้าน ที่ต้องมีแปลน ภายนอก.
บทที่ 2 ขั้นตอนการทำงาน (Algorithm)
การออกแบบระบบ System Design.
Principles of Problem Solving and Basic Programming หลักการแก้ปัญหาและการเขียนโปรแกรมเบื้องต้น2(1-2-3) สัปดาห์ที่ 13 การเขียนรหัสเทียม (Pseudo Code)
การวัดอัลกอริทึม (Analysis of Algorithm)
Asst.Prof. Dr.Surasak Mungsing
ส่วนการทะเบียนทั่วไป สำนักบริหารการทะเบียน
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 04: การวิเคราะห์หาความซับซ้อนด้านเวลา ในรูป.
โรงเรียนคุณภาพประจำตำบล
Problem Solving ขั้นตอนวิธีและการแก้ปัญหาสำหรับวิทยาการคอมพิวเตอร์
อัลกอริทึม (Algorithm ) ขั้นตอนวิธี
การเขียนผังงาน (Flow Chart)
คำอธิบาย รายวิชา รายวิชา การงานอาชีพและเทคโนโลยี 6 รหัสวิชา ง23102 ชั้นมัธยมศึกษาปีที่ 3 ตัวชี้วัด ม.3/1 อธิบายหลักการทำโครงงานที่มีการใช้เทคโนโลยีสารสนเทศ.
Lecture no. 1: Introduction to Computer and Programming
Chapter 3 Basic Input & Output.
5 แบบจำลองกระบวนการ Process Modeling
การเขียนซูโดโค้ด และการเขียนโฟลชาร์ต
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 11: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Greedy,
ประชุมผู้อำนวยการสำนักงานเขตพื้นที่การศึกษา ณ โรงแรมเอวาน่า บางนา กทม
Algorithms Analysis Sanchai Yeewiyom
อุทธรณ์,ฎีกา.
บทที่ 7 การเขียนผังงานระบบ.
การวิเคราะห์และออกแบบขั้นตอนวิธี
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
นายชลี ลีมัคเดช ทีมพัฒนาระบบฯ
狗隻的訓練 聖士提反女子中學附屬小學 孫晞庭.
ประเด็นการขับเคลื่อนองค์การไปสู่ระบบราชการ 4.0
การสร้างผังงานโปรแกรม
การวิเคราะห์โจทย์ปัญหา (Problem Analysis)
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 12: เทคนิคการออกแบบขั้นตอนวิธีตอนวิธี Dynamic.
อัลกอริทึม (Algorithm) ???
ใบสำเนางานนำเสนอ:

อัลกอริทึมและผังงาน อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tko@webmail.npru.ac.th)

เนื้อหาที่สนใจ ขั้นตอนวิธีการแก้ปัญหาหรืออัลกอริทึม (algorithm) การวัดประสิทธิภาพของขั้นตอนวิธี ขั้นตอนวิธีที่ดี การวิเคราะห์ขั้นตอนวิธี การออกแบบขั้นตอนวิธี รูปแบบการเขียนขั้นตอนวิธี การเขียนบรรยาย การเขียน Pseudo Code การเขียนผังงาน การใช้ผังงานในการแสดงขั้นตอนวิธี ขั้นตอนวิธีการที่นิยมนำมาใช้แก้ปัญหา รูปแบบการทำงานในแต่ละขั้นตอนวิธี http://1.bp.blogspot.com/-tw1caa8lBus/Vphe8RV3rwI/AAAAAAAAAKM/wAhp-ds7iQM/s1600/8.png

ขั้นตอนวิธีการแก้ปัญหา เมื่อพบกับปัญหา แต่ละคนจะมีวิธีจัดการหรือแก้ปัญหาที่แตกต่างกันไป  แต่ละวิธีการอาจให้ผลลัพธ์ที่เหมือนหรือแตกต่างกันบ้าง ทั้งนี้ขึ้นอยู่กับความรู้  ความสามารถ และประสบการณ์ของบุคคล การวิเคราะห์และหาวิธีการแก้ปัญหา สามารถสรุปเป็นรูปแบบที่แน่นอนและต้องเรียนรู้เพิ่มเติม เพื่อแก้ปัญหาได้อย่างสมบูรณ์ การตอบสนองความต้องการของมนุษย์ โดยอาศัยความรู้และประสบการณ์ ในการเขียนโปรแกรมให้คอมพิวเตอร์ทำงานตามที่ต้องการ https://blog.kissmetrics.com/google-algorithm-change/

อัลกอริทึม (algorithm) การทำงานอย่างเดียวกัน อาจเลือกขั้นตอนวิธีที่ต่างกันได้ ผลลัพธ์ที่ได้จะเหมือนหรือต่างกันก็ได้ ความแตกต่างของจำนวนและชุดคำสั่งที่ใช้ต่างกัน ส่งผลให้ เวลา (time) ขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน ความซับซ้อน (complexity) ต่างกัน https://www.rkdf.ac.in/Result.php

การวัดประสิทธิภาพของอัลกอริทึม   สิ่งที่ต้องพิจารณา           1) โปรแกรมนั้นใช้เนื้อที่ความจำ (Memory) มากน้อยเพียงใด           2) โปรแกรมนั้นใช้อัลกอริทึม (Algorithm) ที่เร็วเพียงใด           ในทางทฤษฎี จะระบุความเร็วการทำงานของอัลกอริทึม โดยพิจารณา หรือประมวลผลจำนวนข้อมูลที่อัลกอริทึมนั้นกระทำก่อนที่จะได้ผลลัพธ์ว่ามีการทำงานกี่ครั้ง จำนวนครั้งแทนด้วย N ความเร็วในการทำงานเรียกว่า ฟังก์ชั่น บิ๊กโ-อ (big-oh) : Order of N หรือ O(N) http://combiboilersleeds.com/keywords/score-1.html

อัลกอริทึม (algorithm) ขั้นตอนวิธี ประกอบด้วยขั้นตอนต่างๆ เช่น การทำตามลำดับ การแบบวนซ้ำ (iterate) หรือ เวียนเกิด (recursive) การใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) การแก้ไขปัญหาและการตัดสินใจ ต้องใช้ทักษะในการตัดสินใจที่ดี เพื่อให้เกิดผลลัพธ์ที่คุ้มค่า http://www.entraining.net/in-house_decision-making-manager.php

อัลกอริทึม (algorithm) การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์  แต่สามารถใช้กับปัญหาอื่น ๆ ได้ เช่น การออกแบบวงจรไฟฟ้า การทำงานเครื่องจักรกล ปัญหาในธรรมชาติ เช่น วิธีการคิดเลขของมนุษย์ หรือวิธีการขนอาหารของแมลง www.cpmscheduling.com

การวิเคราะห์ขั้นตอนวิธี การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) Input การนำเข้า Process กิจกรรม/วิธีการประมวลผล (การกระทำ) output การแสดงผลลัพธ์ การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) การดำเนินการแก้ปัญหา (Implementation) การตรวจสอบและปรับปรุง (Refinement)  http://www.nickols.us/ten_tips.htm http://www.krunee.com/E_learning/content4111.html

การออกแบบขั้นตอนวิธี ก่อนการเขียนโปรแกรม ต้องออกแบบขั้นตอนวิธี ซึ่งเป็นขั้นตอนการทำงานในการแก้ปัญหา เพื่อช่วยให้การเขียนโปรแกรมเป็นไปได้สะดวกและรวดเร็วขึ้น http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=IntroToAlgorithms

รูปแบบการเขียนขั้นตอนวิธี 1.ลักษณะการบรรยาย (Narrative Description)  2.การเขียนผังงาน (Flowchart) 3.รหัสเทียมที่เรียกว่า การเขียนซูโดโค้ด (Pseudo Code) ผังงาน เห็นภาพที่สุด บรรยาย ต้องใช้ความสามารถสูงในการเขียนบรรยายหรืออธิบาย รหัสเทียม ใกล้เคียงการเขียนโปรแกรม http://www.conceptdraw.com/How-To-Guide/flowchart-symbols https://krupooh93.wordpress.com/2016/11/04/1-3- ซูโดโค้ดและการเขียนผั/ https://sites.google.com/site/seiyngphelngkabseiyngkrid66/home/khxkhid-cak-reuxng/kha-xuthan-maryath-ni-kar-saedng/kar-kheiyn-brryay

ขั้นตอนวิธีที่ดีควรมีคุณสมบัติ 1) มีความถูกต้อง 2) ใช้เวลาในการปฏิบัติงานน้อยที่สุด 3) สั้น กระชับ 4) ใช้หน่วยความจำน้อยที่สุด 5) มีความยืดหยุ่นในการใช้งาน 6) ใช้เวลาในการพัฒนาน้อยที่สุด 7) ง่ายต่อการทำความเข้าใจ http://joma.tk/good/

Algorithm ที่นิยมนำมาใช้แก้ปัญหา อัลกอริทึมที่นิยมใช้กันมาก ได้แก่           1) อัลกอริทึมแบบแตกย่อย (Divide-and-conquer) จะนำปัญหาหลักมาทำการแตกย่อยแล้วนำคำตอบที่ได้จากการแตกย่อยมารวมเข้าด้วยกัน           2) อัลกอริทึมแบบเคลื่อนที่ (Dynamic  Programming) เป็นการหลีกเลี่ยงการคำนวณเพื่อหาคำตอบซ้ำ ๆ ซาก ๆ ซึ่งหากมีการคำนวณซ้ำอีก ก็นำคำตอบที่เก็บไว้มาใช้ได้           3) อัลกอริทึมแบบทางเลือก (Greedy  Algorithm) จะหาคำตอบโดยเลือกทางเลือกที่ดีที่สุดที่พบได้ในขณะนั้น https://www.youtube.com/watch?v=qErwUZXXGlM

การเขียนบรรยาย การเขียนอธิบายขั้นตอนการทำงาน การอธิบายตามลำดับ แสดงขั้นตอนของกิจกรรมและการปฏิบัติหรือการเปลี่ยนแปลง ทำให้ผู้อื่นเข้าใจ เหมาะกับการอธิบาย ขั้นตอนและกรรมวิธีซึ่งเป็นลำดับ การเขียนอธิบายด้วยการให้คำจำกัดความ การเขียนอธิบายด้วยการให้รายละเอียดและการยกตัวอย่างประกอบ การเขียนอธิบายเพื่อเปรียบเทียบความเหมือนหรือแตกต่าง การเขียนอธิบายเพื่อชี้ให้เห็นสาเหตุและผลลัพธ์ที่สัมพันธ์กัน https://wisnun.wordpress.com/การสอน/ทักษะเทคนิคการสอน http://schoolweb.eduzones.com/nisarat/content.php?view=201303272131301tgarkk https://prezi.com/kwcnzmg8ax22/presentation/

การเขียนรหัสเทียม การกำหนดโครงร่างกระบวนการทำงานของโปรแกรม คำสั่งที่จำลองความคิดเป็นลำดับขั้นตอน โดยใช้ประโยคคำสั่งหรือสัญลักษณ์แสดงให้เห็นการทำงานของโปรแกรม  คล้ายการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ สามารถนำไปพัฒนาเป็นชุดคำสั่งด้วยภาษาคอมพิวเตอร์ได้ง่าย http://mr-west.uk/algorithms/pseudocode/

รูปแบบการเขียน Pseudo Code        Algorithm Problem_1       Variables : mLoop, Sum, testScore, average             Begin                     Input mLoop                     Sum = 0                     For I = 1 to mLoop                             Input testScore                             Sum = Sum + testScore                     Next                     average = Sum / mLoop                     Print average             End Problem_1 1. การกำหนดค่า และการคำนวณ 2. การอ่าน/รับข้อมูล 3. การแสดงผลข้อมูล 4. การกำหนดเงื่อนไข 5. ในกรณีที่มีหลายเงื่อนไข  6. การทำงานเป็นรอบ (Loop) https://sites.google.com/site/programmingm42/-rhas-theiym-psuedo-code

การเขียนผังงาน ผังงาน หรือสัญลักษณ์ที่กำหนดขึ้น เพื่อแสดงขั้นตอนและวิธีการตามมาตรฐาน แสดงให้เห็นโครงสร้างทั้งหมดในการแก้ปัญหาก่อนลงมือเขียนโปรแกรม (Standard Flowchart Symbols) https://www.edrawsoft.com/flowchart-symbols.php

การเขียนผังงาน ควรมีจุดเริ่มต้น-จุดสิ้นสุด เพียงจุดเดียวในแต่ละงาน การดำเนินการจากบนลงล่าง ด้านหน้าไปด้านหลัง ใช้ลูกศรแสดงทิศทางที่ชัดเจน ใช้สัญลักษณ์ตามแบบมาตรฐาน สัญลักษณ์มีขนาดตามความเหมาะสม มีการเขียนอธิบายให้เข้าใจง่าย สั้นและชัดเจน https://stwannaporn.wordpress.com/2014/06/29/การเขียนผังงาน-flowchart/

การใช้ผังงานในการแสดงขั้นตอนวิธี เมื่อรู้ว่าจะแก้ปัญหาอย่างไร การใช้ผังงานแสดงให้เห็นภาพหรือรายละเอียดในการดำเนินการ เพื่อให้สามารถเขียนโปรแกรมได้ตามที่คิดหรือออกแบบ ง่ายต่อการปรับปรุงแก้ไขขั้นตอนและวิธีการ ตรวจสอบข้อผิดพลาดได้ง่าย ป้องกันความผิดพลาดในการทำงานร่วมกัน http://pangrutai.blogspot.com/

รูปแบบการทำงานในขั้นตอนวิธี ในการแสดงขั้นตอนวิธี ประกอบด้วยรูปแบบได้ดังนี้ แบบกำหนดขอบเขต แบบลำดับขั้นตอน แบบเงื่อนไขและทางเลือกด้วยตรรกะ (logic) และ/หรือ เปรียบเทียบ (comparison) แบบวนทำซ้ำ (iterate) หรือ เวียนเกิด (recursive) แบบแบ่งย่อย (function)

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