Present proposal project เรื่อง Thailand shortest path
1.ที่มา ปัจจุบันการศึกษาได้กล่าวถึงบทบาทเทคโนโลยีสารสนเทศกับการศึกษาว่าสามารถนำ เทคโนโลยีสารสนเทศมาประยุกต์ใช้กับการศึกษาในลักษณะต่าง ๆ ระบบสื่อประสม (Multimedia ) ระบบสารสนเทศ (Information System ) ระบบฐานข้อมูล( Data System) ระบบปัญญาประดิษฐ์( Artificial Intelligence) และที่ขาดไม่ได้คือ ระบบ Web based Application ซึ่งการสร้างผลงานชิ้นนี้ขึ้นมาก็เพื่อการนำความรู้ที่เกี่ยวข้อง ทั้งหมดนี้เข้ามาแก้ปัญหา เพื่อให้ผลงานชิ้นนี้ได้อำนวยความสะดวกให้กับผู้ที่ต้องการ ค้นหาระยะทางจากจังหวัดหนึ่งไปยังอีกจังหวัดหนึ่งภายในประเทศไทยนี้ ให้มีระยะทางที่ สั้นที่สุดและเหตุนี้ก็จะทำให้ได้ระยะเวลาที่น้อยที่สุดอีกด้วย
2.วัตถุประสงค์ 1.เพื่อให้ผู้ที่ต้องการศึกษาเกี่ยวกับเรื่องนี้ได้ศึกษาและมีการนำไปพัฒนาต่อยอดเพื่อ ประโยชน์สูงสุด 2.เพื่อต้องการอำนวยความสะดวกให้กับผู้ที่ต้องการใช้งานเกี่ยวกับการหาระยะทางระหว่าง จังหวัดหนึ่งไปยังอีกจังหวัดหนึ่ง ภายในประเทศไทย 3.เพื่อต้องการนำความรู้ที่ได้จากรายวิชาต่างๆ เช่น Artificial Intelligence(AI), Data base (DB) และ Web based Application เข้ามาบูรณาการเพื่อสร้างผลงานมาใช้ ประโยชน์จริง
3.ขอบเขตของระบบ 1.User หรือ ผู้ใช้งานโดยอาจเป็นผู้ที่ต้องการศึกษาค้นคว้าหาความรู้เรื่องที่เกี่ยวข้องกับ การทำงานของระบบหรืออาจเป็นผู้ที่ต้องการใช้ประโยชน์โดยการหาระยะทางภายใน จังหวัดที่สั้นที่สุด 2.จังหวัดภายในประเทศไทยซึ่งมีทั้งหมด 77 จังหวัด 3.มีการดึงข้อมูล feed มาจากบริการ google API
4. ระยะเวลาการดำเนินงาน และหน้าที่ของสมาชิก วันที่ 10 มกราคม พ.ศ. 2556 – วันที่ 16 กุมภาพันธ์ พ.ศ. 2556 หน้าที่ของสมาชิก 1.นาย ถิรายุ วรรณีเวชศิลป์ รหัสนิสิต 53160005 หน้าที่ Programmer 2.นางสาว เพียงพิณ ขวัญศุภฤกษ์ รหัสนิสิต 53160013 หน้าที่ Database 3.นางสาว มาลินี มีโพธิ์ รหัสนิสิต 53160014 หน้าที่ SA 4.นางสาว ณัฏฐนันท์ แสงสุริย์ รหัสนิสิต 53160026 หน้าที่ SA 5.นาย ปรัชญา ครองข้าวนาสาร รหัสนิสิต 53160027 หน้าที่ Programmer 6.นางสาว จริยา มงคลธนวัฒน์ รหัสนิสิต 53160063 หน้าที่ PM
5. การวิเคราะห์และออกแบบระบบ 5.1 การวิเคราะห์ google map API 5.2 Model Driven & SOA Architecture 5.3 Use case Diagram 5.4 Process ที่สำคัญของระบบ 5.5 Algorithm ที่นำมาประยุกต์ใช้ภายในระบบ
5.1 การวิเคราะห์ google map API (ต่อ) คำว่า Google Maps API นั้นต้องขอแยกมาอธิบายเป็น 2 ส่วน ส่วนคำว่า Google Maps และส่วนคำ ว่า API - Google Maps เป็นแอพพลิเคชั่นตัวหนึ่งที่อยู่บนเว็บไซต์ของ Google และให้บริการในการค้นหาแผนที่ หรือระบุบอกตำแหน่งบริษัทฯ, ร้านค้า, สถานที่, จุดนัดหมายเป็นต้น - API ย่อมาจาก Application Programing Inteface คือ การที่ผู้ใช้ (Client) สามารถเรียกใช้ ข้อมูล(Data)/ความสามารถ(Method) ของอีกโปรแกมหนึ่ง (หรือเว็บหนึ่ง) ผ่านทางช่องทางใด ช่องทางหนึ่ง ที่ผู้ให้บริการ (Service provider)ได้กำหนดไว้ โดยที่ผู้ใช้งาน ไม่ต้องรู้หรือเข้าใจว่า มันทำงานยังไงแค่รู้ว่าจะเรียกดูข้อมูลหรือเรียกใช้ บริการนั้นยังไงสร้างการเชื่อมต่อยังไง ส่งข้อมูลอะไรให้บ้าง และจะได้ผลลัพธ์ออกมายังไง
5.1 การวิเคราะห์ google map API (ต่อ) สรุป คำว่า Google Maps API นั้นเป็นบริการของ Google อีกรูปแบบหนึ่งที่เราสามารถนำข้อมูลของ Google Maps ที่ทาง Google ให้บริการโดยส่วนมากจะนำมาใช้กับเว็บไซต์ของบริษัทฯหรือเว็บไซต์ห้างร้านต่างๆ เพื่อ เป็นอีกช่องทางที่ให้ลูกค้ารู้ว่าบริษัทฯหรือห้างร้านนั้นอยู่ที่ใดของประเทศ
5.1 การวิเคราะห์ google map API (ต่อ)
5.1 การวิเคราะห์ google map API (ต่อ) google map API เราจะใช้สำหรับค้นหา และสร้าง เส้นทางใน Google map เนื้อหาต่อไปนี้เป็นการใช้งาน Google map สำหรับการสร้างเส้นทาง เพื่อหาระยะทาง และระยะเวลา ในการเดินทาง ระหว่างตำแหน่ง 2 จุดในแผนที่ สิ่งที่ควรจะได้รับจากเนื้อหาในส่วนนี้ คือ - สามารถ ทำการค้นหาเส้นทาง ได้จาก Algorithm ต่างๆของเรา โดยใช้ cost(weight) ที่ได้มาจาก google map API - สามารถ ทำการสร้างเส้นทาง จากตำแหน่งที่ต้องการได้ - สามารถดึงข้อมูล จากการสร้างเส้นทาง เช่น สถานที่เริ่มต้น สถานที่ ปลายทาง และระยะทาง ในการเดินทาง เพื่อนำไปใช้งานได้ - รู้จักกับ event การเปลี่ยนแปลงทิศทาง ของ เส้นทางที่สร้าง เป็นต้น
ตัวอย่าง
5.2 Model Driven & SOA Architecture 1.Tools Drive - Google map API - ภาษา PHP - phpMyadmin - XML 2.Data Driven - รายชื่อจังหวัดทั้งหมดในประเทศไทย - ระยะทาง ของแต่ละจังหวัด ไปยังจังหวัดใกล้เคียง (km.) - การกระจัดของระยะทาง จากแต่ละจังหวัด ไปยังจังหวัดเป้าหมาย (km.) - จังหวัดเริ่มต้น - จังหวัดเป้าหมาย
5.2 Model Driven & SOA Architecture (ต่อ) 3.Process Driven ดึงรายชื่อ จังหวัดจากตาราง cost ไปเป็น input เพื่อขอ ค่า cost จาก feed ของบริการ google API ส่งจังหวัดปลายทาง ไปเป็น input เพื่อขอ h(x) จาก feed google เเละเก็บลง ฐานข้อมูล คำนวณหาเส้นทางด้วย Recursive best-first search Algorithm คำนวณหาเส้นทางด้วย Greedy Algorithm แสดงผลลัพธ์ของเส้นทางที่ได้ จากการคำนวณของสองอัลกอริทึม เเละเปรียบเทียบ
5.2 Model Driven & SOA Architecture (ต่อ)
5.3 Use case Diagram
5.4 Process ที่สำคัญของระบบ 1.นำข้อมูล ที่ได้จาก google API จัดเก็บลง Data Base 2.นำข้อมูลจาก Data Base มาคำนวณหาเส้นทาง ด้วย Recursive Best- First Search Algorithm 3.นำข้อมูลจาก Data Base มาคำนวณหาเส้นทาง ด้วย Greedy Algorithm 4.นำผลลัพธ์ของทั้งสอง Algorithm มาทำการเปรียบเทียบ เพื่อหาเส้นทางที่ดีที่สุด
5.5 Algorithm ที่นำมาประยุกต์ใช้ภายในระบบ 1. Recursive best-first search Algorithm ในการทำงานของการค้นหาแบบนี้จะเป็นการทำงานแบบเดียวกับ ITERATIVE DEEPENING A* (IDA*) SEARCH คือ จะกำหนดโดยฟังก์ชั่น f(n)=g(n)+h(n) โดยที่ ถ้ามีการสร้างโหนดที่มีค่าเกิน กว่า cutoff จะตัดเส้นทางที่เลือกนั้นออกไปโดยไม่นำมาคิดต่อจากนั้นก็จะทำการ backtrack กลับไป เลือกเส้นทางใหม่ เพื่อหาทางเดินที่เมื่อเปรียบเทียบค่า cutoff กับค่า f(n) ณ โหนดนั้นๆ แล้วค่า f(n) มี ค่าน้อยกว่าหรือเท่ากับ cutoff ก็จะทำการเลือกเส้นทางนั้นแล้วดำเนินการต่อ แต่จะมีข้อแตกต่างกับ ITERATIVE DEEPENING A* (IDA*) SEARCH ตรงที่การ backtrack กลับไปยังโหนดเดิมเมื่อเส้นทางที่จะไปต่อข้างหน้าไม่ใช่ทางที่ดี (f(n)<=cutoff ) หากมีการ backtrack แล้วนั่นหมายถึงเราเลือกเดินทางใหม่ ซึ่งก็จะลบทางเดินที่เป็นทางเก่าทิ้งไปทั้งหมดโดยไม่จำไว้ ซึ่งทำ ให้ การทำงานของอัลกอริทึมนี้จะต้องมี Current-value และ alterative-value ข้อดี คือ มีการเยี่ยมไปยังโหนดต่างๆน้อย , ลดการวนซ้ำไปเรื่อยๆ, หา ทางที่ดีที่สุดได้ง่าย *จุดเด่น คือ จะเก็บเฉพาะโหนดที่ได้ทำการจำแนกออกไปและจะลบโหนดที่ได้ทำการ Backtrack กลับไปทิ้ง ทำให้ไม่เปลืองหน่วยความจำ
5.5 Algorithm ที่นำมาประยุกต์ใช้ภายในระบบ (ต่อ) 2. Greedy Algorithm เป็นขั้นตอนวิธีการแก้ปัญหาที่คิดแบบง่ายๆ และตรงไปตรงมา โดยพิจารณาว่าข้อมูลที่มีอยู่ใน ขณะนั้นมีทางเลือกใดที่ ให้ผลตอบแทนคุ้มที่สุด ขั้นตอนวิธีจะหาทางเลือกที่ดูดีที่สุดในขณะนั้นซึ่งถ้า ข้อมูลนั้นพอเพียงที่จะทำให้สรุปคำตอบที่ดีที่สุด เราจะได้ขั้นตอนวิธีที่มีประสิทธิภาพ โดยทั่วไปเราจะใช้ Greedy algorithm กับปัญหาเหมาะสมที่สุด Optimization problem เพราะว่า เราต้องการการตัดสินใจ ว่าทางเลือกในปัจจุบันมีค่าตอบแทนมากที่สุดหรือน้อยที่สุดหรือไม่ ข้อดีของ Greedy Algorithm • เป็นเทคนิคการออกแบบ Algorithm ที่ไม่ซับซ้อนมากนัก เมื่อเทียบกับเทคนิคอื่น ๆ • สามารถนำไปประยุกต์ใช้ได้กับปัญหาหลายชนิด • ใช้หลักการแบ่งปัญหาออกเป็นขั้น ๆ (Stage) ในแต่ละ Stage จะมีการตัดสินใจเพื่อเลือก ทางเลือกที่ดีที่สุดในขณะนั้น
ภาพรวม
ขอบคุณครับ / ค่ะ