Archive for สิงหาคม 2015
เป็นเกมส์ผลรวมเป็นศูนย์ เนื่องจากผลรวมนี้คือการรวมความสำเร็จ ชนะพร้อมกันไม่ได้
1. ขั้นตอนวิธีแบบค่าน้อยสุด-มากสุด minimax algorithm จุด root node แทนผู้เล่นแรกๆ และจุดโหนดลูกแทนผู้เล่นฝ่ายตรงข้าม จุดปลายสุดจะระบุคะแนน เราต้องหาการเล่นวิธีที่ดีดีที่สุดของผู้เล่นคนแรกดังนั้น จึงเลือกคะแนนสูงสุดต่อจุดของจุดต่อลูกๆๆของมัน ส่วนที่จุดต่อของผู้เล่นฝั่งตรงข้ามจะเลือกคะแนนสูงสุดของจุดต่อลูกๆมัน ส่วนจุดต่อฝั่งตรงข้ามจะเลือกคะแนนต่ำสุดของจุดลูกๆของมัน สำหรับจุดต่อที่น้อยที่สุดMIN คะแนนเริ่มแรกก่อนการเปรียบเทียบ จะเท่ากับ +infinityและลดลงเรื่อยๆเมื่อโปรแกรมทำงานต่อไป ส่วนจุดต่อมากที่สุด(MAX)คะแนนจะเริ่มที่-infinityและเพิ่มขึ้นเรื่อยๆ แผนถูมิต้นไม้ขนาดใหญ่จนต้องกำหนดขอบเขตล่วงหน้า
1. ขั้นตอนวิธีแบบค่าน้อยสุด-มากสุด minimax algorithm จุด root node แทนผู้เล่นแรกๆ และจุดโหนดลูกแทนผู้เล่นฝ่ายตรงข้าม จุดปลายสุดจะระบุคะแนน เราต้องหาการเล่นวิธีที่ดีดีที่สุดของผู้เล่นคนแรกดังนั้น จึงเลือกคะแนนสูงสุดต่อจุดของจุดต่อลูกๆๆของมัน ส่วนที่จุดต่อของผู้เล่นฝั่งตรงข้ามจะเลือกคะแนนสูงสุดของจุดต่อลูกๆมัน ส่วนจุดต่อฝั่งตรงข้ามจะเลือกคะแนนต่ำสุดของจุดลูกๆของมัน สำหรับจุดต่อที่น้อยที่สุดMIN คะแนนเริ่มแรกก่อนการเปรียบเทียบ จะเท่ากับ +infinityและลดลงเรื่อยๆเมื่อโปรแกรมทำงานต่อไป ส่วนจุดต่อมากที่สุด(MAX)คะแนนจะเริ่มที่-infinityและเพิ่มขึ้นเรื่อยๆ แผนถูมิต้นไม้ขนาดใหญ่จนต้องกำหนดขอบเขตล่วงหน้า
Constraint Satisfaction Problems (ความพึงพอใจของปัญหาข้อจำกัด)
วันจันทร์ที่ 24 สิงหาคม พ.ศ. 2558
Posted by Antioch
Constraint Satisfaction Problems (ความพึงพอใจของปัญหาข้อจำกัด)
- ค้นหาปัญหามาตรฐาน:
-สถานะ,เป้าหมาย,การกระทำ,ฟังก์ชั่นการแก้ปัญหาที่มีโดเมนที่เฉพาะเจาะจง
- CSP:
-เป้าหมายการดำเนินการฟังก์ชั่นการแก้ปัญหาที่มีโดเมนที่เฉพาะเจาะจง
-สถานะเป้าหมายการดำเนินการเป็นไปตามมาตรฐานการแสดง
-ขั้นตอนวิธีการค้นหาสามารถใช้ประโยชน์จากโครงสร้างของรัฐและใช้งานทั่วไปมากกว่าการวิเคราะห์พฤติกรรมปัญหาที่เฉพาะเจาะจง
-สถานะจะถูกกำหนดโดยตัวแปร Xi ด้วยค่าจากDi
-ชุดของข้อจำกัด ที่อนุญาตระบุรวมกันของค่าสำหรับย่อยของตัวแปร
-วิธีการแก้ปัญหาให้กับ CSP เป็นรัฐที่ตอบสนองข้อ จำกัด ทั้งหมด
-อัลกอริทึมที่มีประโยชน์ช่วยให้วัตถุประสงค์ทั่วไปมีอำนาจมากขึ้นขั้นตอนวิธีการค้นหากว่ามาตรฐาน
การระบายสีแผนที่ให้ใช้สีที่น้อยที่สุดแสดงแผนที่
- ตัวแปร:WA, NT, Q,NSW, V, SA, T
- ขอบเขตที่สนใจ:Di = {สีแดง, สีเขียว, สีฟ้า}
- ข้อจำกัด:ภูมิภาคที่อยู่ติดกัน ต้องมีที่แตกต่างกัน สีเช่น WA ≠ NT
- วิธีการแก้ปัญหา:มีการมอบหมายงานที่สมบูรณ์และสอดคล้องกัน
- เสร็จสมบูรณ์: ตัวแปรทั้งหมดที่ได้รับมอบหมายค่า
- สอดคล้อง: ตอบสนองการกำหนดข้อจำกัด
Constraint graph
- Binary CSP: แต่ละข้อจำกัดที่เกี่ยวข้องกับสองตัวแปร
- Constraint graph: โหนดเป็นตัวแปรโค้งที่มีข้อจำกัด
ชนิดของข้อจำกัด
Unary constraints: ที่เกี่ยวข้องกับเอกตัวแปรเดียว
e.g., SA ≠ green
Binary constraints :-ข้อจำกัดเกี่ยวข้องกับคู่ของตัวแปร
e.g., SA ≠ WA
Higher-order: ข้อจำกัดที่เกี่ยวข้องกับมากกว่า3ตัวแปรขึ้นไป
ปัญหาที่ได้รับมอบหมายReal-world CSPs
=เช่นสิ่งที่สอนในชั้นเรียน
ปัญหา timetabling
=เช่น ระดับที่จะถูกนำเสนอเมื่อใดและที่ไหน
- การจัดตารางเวลาการขนส่ง
- การตั้งเวลาโรงงาน
- ขอให้สังเกตว่าปัญหาที่แท้จริงของโลกจำนวนมากที่เกี่ยวข้องกับมูลค่าที่แท้จริงตัวแปร
ค้นหาสูตรมาตรฐาน (เพิ่มขึ้น)Standard search formulation (incremental)
วิธีธรรมดาในการค้นหา
สถานะจะถูกกำหนดโดยค่าที่ได้รับมอบหมายเพื่อให้ห่างไกล
สถานะจะถูกกำหนดโดยค่าที่ได้รับมอบหมายเพื่อให้ห่างไกล
- สถานะเริ่มต้น: การกำหนดที่ว่างเปล่า {}
- ฟังก์ชั่นตัวตายตัวแทน (การกระทำ): กำหนดค่าให้ตัวแปรที่ไม่ได้กำหนดว่าไม่ขัดแย้งกับที่ได้รับมอบหมายในปัจจุบัน
-->ล้มเหลวถ้าไม่มีการกำหนดตามกฎ
- การทดสอบเป้าหมาย: การกำหนดปัจจุบันเสร็จสมบูรณ์
- ค่าใช้จ่ายในเส้นทาง: ค่าใช้จ่ายคงที่ (เช่น 1) สำหรับทุกขั้นตอนนี้จะเหมือนกันสำหรับ CSPs ทั้งหมด
วิธีการแก้ปัญหาทุกคนจะปรากฏขึ้นที่ระดับความลึก n กับตัวแปร n
-->ใช้การค้นหาความลึกแรก
ย้อนรอยการค้นหา (Backtracking search)
- ค้นหาความลึกเป็นครั้งแรกสำหรับ CSPs กับการกำหนดตัวแปรเดียวที่เรียกว่าการค้นหาย้อนรอย(backtracking search)
- เลือกค่าตัวแปรหนึ่งที่เวลาและย้อนรอยเมื่อตัวแปรมีค่าไม่เหลือทางกฎหมายที่จะกำหนด
- ค้นหา backtracking เป็นอัลกอริทึมไม่รู้ขั้นพื้นฐานสำหรับ CSPs
ย้อนรอยการปรับปรุงประสิทธิภาพ(Improving backtracking efficiency)
- วิธีการใช้งานทั่วไปมีความเร็วมากในการรับ:
- ซึ่งตัวแปรควรจะกำหนดต่อไปหรือไม่
- ในสิ่งที่เรียงลำดับตามค่าที่พยายาม?
- เราสามารถตรวจสอบความล้มเหลวที่หลีกเลี่ยงไม่ได้ในช่วงต้น?
ตัวแปรที่จำกัดมากที่สุด
ตัวแปรที่จำกัดมากที่สุด:เลือกตัวแปรที่มีค่าน้อยที่สุดตามกฎหมายที่
-a.k.a. ค่าขั้นต่ำที่เหลืออยู่ (MRV) การแก้ปัญหา
- หากมีตัวแปร X กับค่าศูนย์ตามกฎหมายที่เหลือ แก้ปัญหา MRV จะเลือก X และความล้มเหลวที่จะถูกตรวจพบ ทันทีที่หลีกเลี่ยงการค้นหาจุดหมายผ่านอื่น ๆ ตัวแปรซึ่งท้ายที่สุดก็จะล้มเหลวต่อไป
- ส่วนใหญ่ constraining ตัวแปร (หรือปริญญาแก้ปัญหา)
- เลือกตัวแปรที่มีข้อ จำกัด มากที่สุดในตัวแปรที่เหลือ
- พยายามที่จะลดปัจจัยที่แตกแขนงเกี่ยวกับทางเลือกในอนาคต
-จะมีประโยชน์เป็นผูกเบรกหลัง MRV แก้ปัญหา
ค่า constraining น้อย(Least constraining value)
Given ตัวแปรเลือกค่า constraining น้อย:- the หนึ่งที่ออกกฎทางเลือกน้อยที่สุดสำหรับตัวแปรที่เหลือ
It พยายามที่จะออกจากความยืดหยุ่นสูงสุดสำหรับการกำหนดตัวแปรที่ตามมา
การตรวจสอบไปข้างหน้า(Forward checking)
เมื่อใดก็ตามที่ตัวแปร X ที่มีการกำหนดขั้นตอนการตรวจสอบไปข้างหน้ามีลักษณะที่แต่ละ Y ตัวแปรที่ไม่ได้กำหนดที่เชื่อมต่อกับ X โดยข้อ จำกัด และลบจากY’s domainค่าใด ๆ ที่ไม่สอดคล้องกับค่าที่เลือกสำหรับปX.
การตรวจสอบไปข้างหน้า(Forward checking)
ความคิด:
- รูปที่1
- ติดตามเหลือค่าตามกฎสำหรับตัวแปรที่ไม่ได้กำหนด
- ยุติ (และ backtrack) ค้นหาเมื่อตัวแปรใดที่มีทางและค่าตามกฎ
- รูปที่2
- ติดตามเหลือค่าตามกฎสำหรับตัวแปรที่ไม่ได้กำหนด
- ยุติ (และ backtrack) ค้นหาเมื่อตัวแปรใดที่มีทางและค่าตามกฎ
- รูปที่3
- ติดตามเหลือค่าตามกฎสำหรับตัวแปรที่ไม่ได้กำหนด
- ยุติ (และ backtrack) ค้นหาเมื่อตัวแปรใดที่มีทางและค่าตามกฎ
- รูปที่4
- ติดตามเหลือค่าตามกฎสำหรับตัวแปรที่ไม่ได้กำหนด
- ยุติ (และ backtrack) ค้นหาเมื่อตัวแปรใดที่มีทางและค่าตามกฎ
- รูปที่5
- เมื่อเทียบกับไม่มีการตรวจสอบไปข้างหน้า: ตรวจพบปัญหาหลังจากที่ขั้นตอนที่5ได้รับมอบหมาย
การขยายพันธุ์อย่างจำกัด(Constraint propagation)
- การตรวจสอบการส่งต่อแพร่กระจายข้อมูลจากได้รับมอบหมายให้ตัวแปรที่ไม่ได้กำหนด แต่ไม่ได้ให้ตรวจสอบเริ่มต้นสำหรับความล้มเหลวทั้งหมด:
- NT และ SA ไม่สามารถทั้งเป็นสีฟ้า!
- การขยายพันธุ์อย่างจำกัด(Constraint propagation) ซ้ำบังคับใช้ข้อจำกัดในประเทศ มันแพร่กระจายผลกระทบของข้อจำกัด ในตัวแปรหนึ่งบนตัวแปรอื่น ๆ
Arc consistency(สอดคล้อง)
- รูปแบบที่ง่ายของการขยายพันธุ์ที่ทำให้โค้งแต่ละที่สอดคล้อง (consistent)กัน
- X--> Y ถ้ามีความสอดคล้อง
- สำหรับทุกค่า x ของ X มีบาง y ที่ได้รับอนุญาต
- การตรวจสอบความArc consistency ต้องใช้ซ้ำ ๆ จนกระทั่งไม่มีความไม่สอดคล้องกันมากขึ้นยังคงอยู่
- ถ้า x สูญเสียค่าใกล้เคียงของ X จะต้องมีการเดินทาง
- เช่นเมื่อ V สูญเสียค่าจะต้องตรวจสอบค่าของNSW และ SA’s จากนั้นจะต้องตรวจสอบค่าของNSW’s and SA’s และอื่น ๆ
Classes of Search
Class | Name | Operation |
ไม่รู้เส้นทางใด | Depth-First Breadth-First |
ระบบการตรวจสอบข้อเท็จจริงของต้นไม้ ทั้งค้นหาจนกว่าจะพบเป้าหมาย |
รู้เส้นทางเส้นทาง | Greedy Best- First | ใช้มาตรการแก้ปัญหาของความดีของสถานะ เช่น ระยะทางประมาณเป้าหมาย |
ไม่รู้ความเหมาะสม | UniformCost | ใช้เส้นทาง "ความยาว" วัดพบ "สั้น" เส้นทาง |
รู้ความเหมาะสม | A* | ใช้เส้นทาง"ความยาว"
มาตรการและ การแก้ปัญหาพบเส้นทาง"สั้น" |
Uninformed (ไม่รู้) VS. Informed (รู้)
- Uninformed search :(หรือการค้นหาแบบตาบอด): ไม่มีเพิ่มเติมข้อมูลเกี่ยวกับสถานะเกินกว่าที่ระบุไว้ในคำนิยามปัญหา
- Informed search :(หรือการค้นหาที่ Heuristicการค้นหาที่เลือกคำตอบที่เหมาะสมกับการค้นหาเท่านั้นแต่อาจจะไม่ใช่คำตอบที่ดีที่สุด): ใช้ problem- 7? ค้นหาแจ้ง (เทียบกับการแก้ปัญหาการค้นหา): ใช้ความรู้เฉพาะปัญหาที่นอกเหนือจากความหมายของปัญหาของตัวเอง
Informed (Heuristic) Search
- บางขั้นตอนวิธีการค้นหาที่ใช้heuristic functions.
- heuristic functionsอาจจะช่วยเป็นแนวทางในการค้นหาและเพิ่มความเร็วอย่างน้อยโดยเฉลี่ยกระบวนการในการหาที่เป้าหมาย
- การประเมินผลการใช้ฟังก์ชัน f (s) ซึ่งประมาณการระยะทางไปยังเป้าหมาย
- ขยายโหนดที่มีลักษณะที่ดีที่สุด (มีแนวโน้มมากที่สุด)ในขณะที่คนที่มีต่ำสุด f (s)
- เราจะหารือสองวิธี:
- Greedy best-first search
- A* search
Greedy Best-First Search
- ขยายโหนดที่ปรากฏขึ้นใกล้เคียงกับเป้าหมาย
- เลือกเส้นทางที่ดีที่สุดที่ดูจากโหนดปัจจุบัน S เพื่อเป้าหมาย
- f (s) = h (s) h (s): ประเมินค่าใช้จ่ายของเส้นทางถูกที่สุดจากโหนดเพื่อเป้าหมาย
- h (เป้าหมาย) = 0
- วิธีการแก้ปัญหา:A-C-O-N-E-X เสียค่าใช้จ่าย 86
- ทางออกที่ดีที่สุด: A-S-P-X เสียค่าใช้จ่าย 80
- วิธีการแก้ปัญหาที่พบโดยโลภค้นหาที่ดีที่สุดอาจจะเป็นครั้งแรกไม่เหมาะสม
A* Search
- ขยายโหนดที่ปรากฏอยู่บนเส้นทางที่ดีที่สุดจากจุดเริ่มต้นไปสู่เป้าหมาย
- เลือกเส้นทางที่ดีที่สุดที่ดูจากจุดเริ่มต้นไปสู่เป้าหมาย
- f (s) = g (s) + h (s)
g (s): ค่าใช้จ่ายของเส้นทางที่ถูกที่สุดตั้งแต่ต้นจน s
h (s): ประเมินค่าใช้จ่ายของเส้นทางถูกที่สุดจาก s ไปโหนดเป้าหมาย
- h (เป้าหมาย) = 0
- ในตัวอย่างของเรา A * พบทางออกที่ดีที่สุด:A-S-P-X (เสียค่าใช้จ่าย 80)
- นี้ไม่ได้เกิดอุบัติเหตุ ในความเป็นจริง A * จะเสมอหาทางออกที่ดีที่สุดทุกครั้งที่เขา) ตอบสนองเงื่อนไขบางอย่าง
Admissibility
ฟังก์ชั่นการแก้ปัญหา h (s) เป็นที่ยอมรับ (หรือในแง่ดี) ถ้ามันไม่เคย overestimates ค่าใช้จ่ายไปที่เป้าหมายA* Search
- A* = สมบูรณ์ที่สุด,ดีที่สุด
- A * จะเสร็จสมบูรณ์และที่ดีที่สุดที่ได้รับ h (s) ตอบสนองเงื่อนไขบางประการ
- เงื่อนไขอะไร?--> h (s) เป็นที่ยอมรับ
- ดังนั้น เป็นปัญหาหรือไม่? -->หน่วยความจำ
หน่วยความจำขอบเขตในการค้นหาแบบHeuristic
- A * ความต้องการในปริมาณที่ชี้แจงของหน่วยความจำ
- การแก้ไข: การใช้หน่วยความจำขอบเขตการค้นหาแก้ปัญหา
ซ้ำที่ดีที่สุดครั้งแรกที่การค้นหา (BFS)
ซ้ำ-ลึก * A (IDA *)
หน่วยความจำแบบย่อขอบเขต A * (SMA *)
ซ้ำที่ดีที่สุดครั้งแรกที่การค้นหา (RBFS)
- หนึ่งที่ไม่สามารถให้ขึ้นใจของพวกเขา
- คล้ายกับ DFS แต่แทนที่จะดำเนินการต่อไปอย่างไม่มีกำหนดลงเส้นทางปัจจุบัน RBFS ติดตามมูลค่าของเส้นทางเลือกที่ดีที่สุดที่มีอยู่จากบรรพบุรุษใด ๆ ของโหนดปัจจุบัน ถ้าโหนดปัจจุบันเกินกว่านี้วงเงินที่เรียกซ้ำคลายกลับไปที่ทางเลือกเส้นทาง ในฐานะที่เป็นเรียกซ้ำคลาย, RBFS แทนที่ค่าของแต่ละโหนดไปตามเส้นทางที่ดีที่สุดมูลค่าของโหนดลูก
- ที่ดีที่สุดถ้า h เป็นที่ยอมรับ
- การเปลี่ยนแปลงและยังคงมีหน่วยความจำน้อยจึงลำบากในการฟื้นฟูโหนดที่มากเกินไป
- ประหยัดมากเกินไปเกี่ยวกับหน่วยความจำที่มันไม่มีประสิทธิภาพ
IDA*
- ซ้ำ-ลึก * A (IDA *)
- คล้ายกับการค้นหาลึกซ้ำมาตรฐาน แต่ใช้f ค่าใช้จ่าย (g + h) เป็นทางลัด (แทนของความลึก); ที่ซ้ำกัน, ตัดเป็นค่าใช้จ่าย f เล็กที่สุดของโหนดใด ๆ ที่เกินตัดทวนก่อนหน้านี้
Simplified Memory-Bounded A* (SMA*)
- ขยายที่ดีที่สุด (ต่ำสุด f) โหนดจนกว่าหน่วยความจำเต็ม
- เพิ่มโหนดใหม่ในการค้นหาต้นไม้โดยวางโหนดเก่า มักจะลดลงที่เลวร้ายที่สุด (f สูงสุด) อย่างใดอย่างหนึ่ง
- เมื่อวางโหนดสำรองค่า F ไปยังparent ด้วยวิธีนี้ancestor ของทรีย่อย(subtree) ไม่รู้ที่มีคุณภาพของเส้นทางที่ดีที่สุดในทรีย่อยว่า
- เพิ่มทรีย่อย(subtree)ใหม่ลืมเฉพาะเมื่อเส้นทางอื่น ๆ ได้รับการแสดงที่จะดูแย่ลง
การค้นหาแบบกำหนดทิศทาง
เป็นการค้นหาแบบที่เริ่มต้นการสำวจจากโหนดหนึ่งไปยังอีกโหนดหนึ่งอาศัยทิศทางเป็นตัวกำหนดการค้นหา ไม่มีข้อมูลอะไรมาเสริมการตัดสินใจ คือการหยิบข้อมูลมาตรวจสอบในขั้นต่อไป ไม่ต้องอาศัยข้อมูลใดๆทั้งสิ้น ตัวอย่าง Depth First Search ,Breadth First Search
การค้นหาDepth First Search
เป้นการค้นหาแบบลึกก่อน กำหนดทิศทางจากรูปโครงสร้างต้นไม้ เริ่มจากRoot เดินลงมาที่ลึกสุดTerminal Node ให้ย้อนขึ้นไปที่กิ่ง แยกต่ำสุดของกิ่งเดียวกัน และยังไม่ทำการสำรวจแล้วทำการสำรวจโหนดในกิ่งนั้น ถ้าพบโหนดที่ต้องการการค้นหาก็สิ้นสุด ถ้าไม่พบก็สำรวจจนถึงปลายทาง ถ้าไม่พบให้ย้อนขึ้นมายังกิ่งแยกต่ำสุดที่ยังไม่สำรวจถัดไปแล้วทำการสำรวจโหนดบนกิ่งแยกนั้น ทำสลับกับไปเรื่อยๆจนพบโหนดที่ต้องการหาหรือสำรวจให้ครบทุกโหนด
เมื่อการค้นหาในกิ่งแรกมาถึงโหนดปลายทาง คือ 4 การค้นหาจะย้ายไปที่โหนดต่ำสุดที่มีกิ่งแยกไม่มีการสำรวจ ในที่นี้คือกิ่งโหนด 3 ให้ทำการสำรวจโหนด 5 ซึ่งเป็นโหนดปลายทาง จากนั้นย้อนไปจุดต่ำสุดในตำแหน่งเดียวกันที่มีกิ่งแยกและกิ่งแยกนั้นไม่มีการสำรวจ ในที่นี้โหนด2 ทำการสำรวจโหนด 6 ทำเช่นนี้ครบทุกโหนด หรือพบโหนดที่ต้องการหาแบบลึกก่อน เมื่อสำรวจโหนดในกิ่งใดกิ่งหนึ่ง ที่เริ่มต้นจากโหนดรากลงมา เราต้องบันทึกว่าโหนดใดบ้างมีกิ่งแยกออกมา
การค้นหาBreadth First Search
เป็นการกำหนดทิศทางการค้นหาที่ทำการสำรวจที่ละระดับของโครงสร้างต้นไม้ ดดยเริ่มจากโหนดรากแล้วลงมาที่ระดับ1จากซ้ายไปขวา จนกว่าจะพบโหนดที่ต้องการ หรือจนครบทุกโหนด เป้นหมายเลขที่กำกับบนโหนด
จะอาศัยการจัดการโครงสร้างข้อมูลแบบคิวมาช่วย เช่นกัน ด้วยวิธีการเช่นเดียวกับการค้นหาแบบลึกก่อน คือให้เริ่มต้นสำรวจที่โหนดเริ่มต้น แล้วนำโหนดที่ข้างเคียงเก็บไว้ในคิว เมื่อสำรวจโหนดเริ่มต้นจนเสร็จ ให้นำข้อมูลในคิวออกมาสำรวจ นำโหนดข้างเคียงที่ไม่ได้สำรวจและไม่ได้อยู่ในคิวใส่ในคิว ทำจนพบโหนดที่ต้องการหรือเมื่อสำรวจครบทุกโหนด สำหรับโหนดข้างเคียงในที่นี้หมายถึงโหนดที่มีเส้นเชื่อม เชื่อมกับโหนดที่กำลังสำรวจหรือกล่าวอีกนัยหนึ่ง คือ โหนดที่อยู่ติดกันและมีทางเดินเชื่อมหากัน
การค้นหาแบบฮิวริสติก
ความแตกต่างระหว่างการค้นหาข้อมูลธรรมดา และ การค้นหาข้อมูลแบบฮิวริสติก(Heuristic Search) การค้นหาแบธรรมดาจะเป็นการตรวจสอบข้อมูลจนครบ ถ้าข้อมูลไม่ใหญ่มาก การค้นหาแบบนี้จะให้คำตอบที่ถูกต้องเสมอ แต่ในบางครั้งข้อมูลมีขนาดใหญ่มาก การตรวจสอบต้องทำหลายล้านครั้ง ซึ่งทำให้การเปรียบเทียบข้อมูลทุกตัวเพื่อหาคำตอบที่เป็นไปไม่ได้ ลักษณะของปัยหาแบบนี้ เช่น การหาทางที่สั้นที่สุดเราจะต้องเปรียบเทียบเส้นทาง 99! ครั้ง หรือ (n-1)! เมื่อ n คือจำนวนเมืองซึ่งต้องการเปรียบเทียบจำนวนที่ไม่อาจเปรียบเทียบให้เสร็จได้ ดังนั้นจะตอบคำถามว่าเส้นที่สั้นที่สุดคือเส้นทางใด จะยากมากและอาจหาไม่ได้เลยก็ได้ ดังนั้นการแก้ปัญหาต้องอาศัยวิธีการฮิวริสติก วิธีการนี้เลือกคำตอบที่เหมาะสมให้กับการค้นหาเท่านั้น แต่ไม่ได้คำตอบที่ดีที่สุด
เครื่องมือช่วยค้นหาฮิวริสติก คือ ฮิวริสติกฟังชัน
Heuristic Functionทำหน้าที่วัดขนาดความเป็นไปได้ในการแก้ปัญหา เพื่อกำหนดทิศทางของการค้นหาคำตอบ หรือกล่าวอีกนัยหนึ่งคือ ฮิวริสติกฟังชันจะเป็นการบอกว่าสำรวจครั้งต่อไปจะเลือกสำรวจโหนดที่กิ่งใด โดยบอกขนาดของความเป็นไปได้ และขนาดความเป็นไปได้แสดงเป้นตัวเลข
การวัดความเป็นไปได้ในการแก้ปัญหา จะกระทำได้โดยพิจารณษถึงวิธีการ(Aspects)ต่างๆ ที่ใช้ในการแก้ปัญหา ณ สถานะหนึ่งว่า จะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกำหนดน้ำหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี น้ำหนักเหล่านี้จะถูกแสดงด้วยตัวเลขที่กำกับไว้โหนดต่างๆ ในกระบวนการค้นหา และค่าเหล่านี้จะเป็นตัวที่ใช้ในการประมาณความเป็นไปได้ว่าเส้นทางผ่านโหนดนั้น มีความเป็นไปได้นำสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหน
เครื่องมือช่วยค้นหาฮิวริสติก คือ ฮิวริสติกฟังชัน
Heuristic Functionทำหน้าที่วัดขนาดความเป็นไปได้ในการแก้ปัญหา เพื่อกำหนดทิศทางของการค้นหาคำตอบ หรือกล่าวอีกนัยหนึ่งคือ ฮิวริสติกฟังชันจะเป็นการบอกว่าสำรวจครั้งต่อไปจะเลือกสำรวจโหนดที่กิ่งใด โดยบอกขนาดของความเป็นไปได้ และขนาดความเป็นไปได้แสดงเป้นตัวเลข
การวัดความเป็นไปได้ในการแก้ปัญหา จะกระทำได้โดยพิจารณษถึงวิธีการ(Aspects)ต่างๆ ที่ใช้ในการแก้ปัญหา ณ สถานะหนึ่งว่า จะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกำหนดน้ำหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี น้ำหนักเหล่านี้จะถูกแสดงด้วยตัวเลขที่กำกับไว้โหนดต่างๆ ในกระบวนการค้นหา และค่าเหล่านี้จะเป็นตัวที่ใช้ในการประมาณความเป็นไปได้ว่าเส้นทางผ่านโหนดนั้น มีความเป็นไปได้นำสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหน
การค้นหาBest-first search
การค้นหาแบบเลือกโหนดที่ดีที่สุด (most promising) การทราบว่าโหนดใดดีที่สุดนี้สามารถทำได้โดยอาศัยฮิวริสติกฟังชั่น ฮิวริสติก ฟังชันนี้ทำหน้าที่เหมือนตัววัดผลกรีดีอัลกอริทึมGreedy Algorithm
เลือกโหนดที่ดีที่สุดก่อน อาศัยการวัดสถานะไปยังเป้าหมาย ดังนั้นการเลือกโหนดต้องเลือกโหนดที่มีค่าh ดีที่สุด
การค้นหาด้วยอัลกอริทึมA*
เลือกโหนดที่ใช้ดำเนินการต่อที่ดีที่สุด วิธีการเลือกโหนดที่ใช้ในการดำเนินการต่อ พิจารณาจากโหนดที่ดีที่สุด ความแตกต่างระหว่างA* กับฮิวริกฟังชั่น ฮิวริกฟังชั่น จะวัดจากโหนดราก(เริ่ม) โหนดปัจจุบัน(สถานะปัจจุบัน) แต่ค่าฮิวริสติก ฟังก์ชั่นA*จะเกิดการรวมค่า2ค่า คือ ค่าวัดจากสถานะปัจจุบันไปยังสถานะเริ่มต้น รวมค่าที่วัดจากสถานะปัจจุบัยนไปยังสถานะเป้าหมายถ้ากำหนดให้ตัวแปร fแทนค่าของฮิวริสติก ฟังชันของA* และg เป็นฟังชันที่ใช้วัดค่า(cost)จากสถานะเริ่มต้นจนถึงสถานะปัจจุบัน h' เป็นฟังชั่นที่ใช้วัดค่าจากสถานะปัจจุบันถึงสถานะเป้าหมาย
การค้นหาข้อมูลแบบ A*ของปัญหา 8-Puzzle ในการคำนวณค่าของ g คือการเปรียบเทียบสถานะปัจจุบัน กับสถานะเริ่มต้น และค่า h' คือการเปรียบเทียบสถานะปัจจุบันกับสถานะเป้าหมาย ซึ่งในการคำนวณค่าgและh'
การหาค่าของ g ทำได้โดยเปรียบเทียบสถานะปัจจุบันกับสถานะเริ่มต้น คือการนับว่าแต่ละช่องของตารางปัจจุบันห่างจากจุดเริ่มต้นไปกี่ช่อง เช่นที่ช่อง1ตารางทั้งสองไม่ห่างกัน ดังนั้นได้ค่า0 ที่ช่อง1ที่ช่อง2 สถานะปัจจุบันไม่มีค่าไม่คิด และเช่นกันที่ช่องที่3และ4ก็มีค่าเป็น0 เพราะทั้งสองตารางไม่ต่างกัน สำหรับตารางที่5 จะมีค่าเป็น1เพราะ8ห่างจากที่เคยอยู่ 1 ช่อง ทำเช่นนี้เรื่อยๆเราจะได้คำตอบช่องตารางต่างๆ ดังนี้
1=0,2=0,3=0,4=0,5=1,6=0,7=0,8=1,9=0รวม g=2
สถานะเริ่มต้น |
สถานะเป้าหมาย |
1=0,2=0,3=0,4=0,5=1,6=0,7=0,8=1,9=0รวม g=2
สำหรับค่าของ h'จะได้
1=1,2=0,3=0,4=1,5=1,6=0,7=0,8=1,9=0รวมh'=3 f=2+3=5
1=1,2=0,3=0,4=1,5=1,6=0,7=0,8=1,9=0รวมh'=3 f=2+3=5
ข้อสังเกต
1.เกี่ยวกับตัวอัลกอริทึม
- คำนึงถึงเส้นทางที่ดีที่สุดด้วย
- ทำอย่างไรให้ได้คำตอบนั้น กำหนดให้ g=0
- ถ้าต้องการให้ได้เส้นทางที่มีขั้นตอนน้อยที่สุด เราสามารถกำหนดให้ ค่าของโหนดไปยังโหนดลูกมีค่าคงที่(เท่ากับ 1)
2.เกี่ยวกับค่า h'และ h (ค่าจากโหนดถึงโหนดลูก)
- ถ้า h'เป็น perfect estimator ของh, A* algorithm กลายเป็นการเข้าหาเป้าหมายโดยไม่มีการค้นหา
- เมื่อ h'= ค่าที่ดีที่สุด ก็คือการหากำหนดระยะทางที่ใกล้ที่สุด
- เมื่อh'=0 การค้นหาจะถูกควบคุมโดยg
- ถ้าg=0อีก การค้นหาจะเป็นแบบ random
- ถ้าgเป็น1การค้นหาจะเป็น breadth-first
Knowledge Representation
วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2558
Posted by Antioch
Tag :
Knowledge Representation
การแทนความรู้ (Knowledge Representation)
กำหนดปัญหา
หนึ่งวิธีการทั่วไปในการแก้ปัญหาในไอเพื่อลดปัญหาที่จะแก้ไขให้เป็นหนึ่งในค้นหากราฟ
การใช้วิธีการนี้เราจะต้องกำหนดปัญหาที่เกิดขึ้นโดยระบุ
การใช้วิธีการนี้เราจะต้องกำหนดปัญหาที่เกิดขึ้นโดยระบุ
- State space
- เริ่มต้นState
- เป้าหมาย
- การดำเนินการ
Stateแสดงทั้งหมด (และโดยเฉพาะอย่างยิ่งเท่านั้น)ด้านที่เกี่ยวข้องของปัญหาที่จะแก้ไขพื้นที่State
คือชุดของStateที่เป็นไปได้ทั้งหมด
เราถือว่าการกระทำที่มีกำหนดว่าเป็นเราทราบว่าหลังจากที่Stateกระทำที่เป็นดำเนินการ
นอกจากนี้เรายังคิดว่าการดำเนินการที่มีความต่อเนื่อง
กราฟที่1 กราฟแสดงถึงปัญหาที่เกิดขึ้น
กราฟที่2 การค้นหาจากต้นไม้ของกราฟ
initial state = คือสถานะเริ่มต้น
goal = เป้าหมา่ยที่อยากให้ตัวเลขมันเรียงกัน
กราฟแสดงถึงปัญหาที่เกิดขึ้น
ไปจาก A ถึง B โดยใช้ขั้นตอนน้อยที่สุดเท่าที่เป็นไปได้
ชั้นของการค้นหา
Breadth-First Search ตามแนวกว้าง
Depth-First Search ตามแนวลึก
ข้อเสียDepth-First Search
-เป็นวิธีที่ไม่ดี
-ไม่รับประกันว่าจะหยุด ถ้าต้นไม้มากมายก็ต้องค้นจากที่ลึกก่อน เพื่อแก้ไขปัญหานี้:Depth-Limited Search
Depth-Limited Search
- DFS ที่มีความลึกคงที่ โหนดที่ระดับความลึกไม่มีการสืบทอด
- อะไรคือสิ่งที่เหมาะสมcut-off depth d?
- ถ้า d มีขนาดเล็กเกินไปไม่อาจหาเป้าหมายได้
- ถ้า d มีขนาดใหญ่เกินไป: การทำงานพิเศษ
- สิ่งที่เกี่ยวกับการเริ่มต้นที่มีขนาดเล็กและให้ d เพิ่มขึ้น?
- ซ้ำลึกการค้นหา
Iterative Deepening Search
- ค้นหาลึกมากขึ้น
- DFS มีความลึกคงค่อยๆที่เพิ่มขึ้น
- มันไม่ซ้ำมากเกินไปในการทำงานหรือไม่
- ในต้นไม้เวลาถูกครอบงำโดยการค้นหาแนวลึกที่สุด(deepest search)
ประสิทธิภาพ
- สมบูรณ์: การประกันเพื่อหาทางแก้ปัญหาเมื่อในทางหนึ่งที่มีอยู่?
- เหมาะสมกับ: ทางออกที่ดีที่สุด?
- ซับซ้อนเวลา
- ซับซ้อนพื้นที่
เกณฑ์ BFS DFS
เสร็จสมบูรณ์? Yes Yes
(ถ้าไม่มีเส้นทางที่ไม่มีที่สิ้นสุด)
การเชื่อมโยงน้อยที่สุด? Yes No
(แต่ไม่จำเป็นต้องเป็นทางออกที่ดีที่สุด)
เวลา O(bd) O(bm)
พื้นที่ O(bd) O(bm)
กรณีเวลาที่เลวร้ายที่สุด
ในการค้นหา
- ปัจจัยที่แตกแขนง
- d: ความลึกของเป้าหมายตื้น
- m: ความลึกสูงสุดของต้นไม้ค้นหา (ดังนั้น d = เมตร BFS, d≤mใน DFS)
ในกรณีที่เลวร้ายที่สุดวิธีการค้นหาอาจจะจบลงมีการขยายตัวของสถานะ
- BFS: O (BD)
- DFS: O (พิพิธภัณฑ์)
BFS
- กรณีที่เลวร้ายที่สุดที่เกิดขึ้นเมื่อโหนดทั้งหมดที่ระดับความลึก d ได้รับการสร้างขึ้น แต่ไม่ขยายตัวเลย
- Q มีขนาด BD, ที่อยู่, ขนาดชี้แจงใน d
DFS
- Q ถือที่ยังไม่ขยาย "พี่น้องsiblings" ของโหนดตามเส้นทางที่ได้รับการพิจารณา
- Q ถือไม่เกิน m(b-1)+1 = O(bm)
BFS Revisited
- การขยายตัว Node: A, B, C, E (เป้าหมาย)
- โซลูชั่นที่พบ: A-B-E (ค่าใช้จ่าย 100) - ไม่ดีที่สุด
- การแก้ไขปัญหานี้: การค้นหาเครื่องแบบค่าใช้จ่าย
Uniform-Cost Search การค้นหาแบบประหยัดต้นทุน
- ขยายโหนดที่มีค่าใช้จ่ายในเส้นทางที่ต่ำที่สุด (ใกล้เคียงกับเป้าหมาย)
- เหมือนกับ BFS หากค่าใช้จ่ายขั้นตอนทั้งหมดเท่ากัน
- การขยายตัว Node: A, C, D, E (เป้าหมาย)
- โซลูชั่นที่พบ: A-C-D-E (ต้นทุน 3) - ที่ดีที่สุด
- ที่ดีสำหรับค่าใช้จ่ายที่ไม่สม่ำเสมอ
Bidirectional Searchการค้นหาสองทิศทาง
- การค้นหาพร้อมกันสองคนคนหนึ่งไปข้างหน้าจากสถานะเริ่มต้นย้อนหลังจากเป้าหมายอื่น ๆ
- ประหยัดพื้นที่
สถานะเริ่มต้น
สถานะเป้าหมาย
ตารางทั้งหมดมี 8 ช่อง (ไม่นับช่องว่าง) ถ้าช่องใดตรงกับสถานะเป้าหมายได้1คะแนน ถ้าไม่ตรงได้0 เช่นคะแนนในสถานะเริ่มต้นในปัจจุบันคือ4คะแนนเพราะมีตาราง3457ตรงกับสถานะเป่้าหมาย เมื่อมีการเลื่อนช่องว่าง1ครั้ง ก็จะคิดคะแนน1ครั้ง เช่นจากสถานะเริ่มต้น ถ้าเลื่อนช่องว่างขึ้นข้างบน สถานะใหม่จะมี 5คะแนน เพราะช่องตรงกับเป้าหมายมี 5ช่องคือ 34567(ไม่นับช่องว่าง)
การเปลี่ยนสถานะทำให้เกิดสถานะใหม่สูงสุด 4 สถานะ เพราะทิศทางการเลื่อนของช่องว่างมีได้สูงสุด 4 ทิศทาง ในการเลือกว่าสถานะใหม่อันไหนดีที่สุดให้พิจารณษจากคะแนนที่ได้ สถานะใหม่ที่เลือกได้นี้ ทำให้การเลื่อนช่องว่างอีก แล้วทำการคำนวณคะแนนที่ได้ออกมา ทำอย่างงี้เรื่อยๆจนกว่าสถานะใหม่มี 8คะแนน
การแก้ปัญหาจากสถานะเริ่มต้น แล้วเลื่อนช่องว่างขึ้น ซ้ายและขวา(เลื่อนลงไม่ได้)แล้วทำการเลื่อนช่องว่างไปซ้าย ขึ้น และขวา(ไม่เลื่อนลงเพราะจะทำให้สถานะใหม่กลับสู้เริ่มต้นอีก)ทำการเลื่อนช่องว่างไปทำเช่นนี้ซ้ำจนได้ผลลัพธ์ออกมา
วิธีการแก้ปัญหา
สมมุติ ปริภูมิปัญหา คือกล่องดำที่เต็มไปด้วยสถานะต่างๆมากมายที่สร้างขึ้นมาด้วยกฎ รวมถึงเป้าหมายก็อยู่ในนั้นด้วยการแก้ปัญหา คือเราค้นหาตำแหน่งเป้าหมายในปริภูมิปัญหานั้น หาเส้นทางเป้าหมายย้อนกลับไปทางเริ่มต้น กระบวนการของคอมพิวเตอร์จะทำการแก้ปัญหาคำตอบ search การแก้ปัญหาต้องพิจารณาคือ- การค้นหาคำตอบ
- การแสดงความรู้
- กระบวนการในการเลือก
การค้นหาคำตอบ
เป็นการกำหนดทิสทางสำหรับการค้นหาและรูปแบบโครงสร้างข้อมูลที่ใช้สำหรับการค้นหา เป็นการกำหนดลำดับของการพิจารณาโหนดหรือสถานะต่างๆ ในโครงสร้างข้อมูลสำหรับการค้นหาคำตอบ
การสร้างรูปแบบเครื่อข่ายข้อมูลกราฟ ดีกว่าต้นไม้ เพราะจะประหยัดพื้นที่หน่วยความจภำ การค้นหาข้อมูลทำได้เร็วกว่า ข้อเสีย ทำให้เชื่อมต่อของข้อมูลทำได้ยาก ใช้เวลาในการเชื่อมต่อข้อมูลนานกว่า ดังนั้นการออกแบบโครงสร้างบางครั้งจึงนิยมสร้างเป้นต้นไม้ก่อนแล้วค่อยเปลี่ยนเป็นกราฟ
การแสดงความรู้
Knowledge Representation เป้นวิธ๊การแสดงความรู้ในการแก้ปัญหาให้อยู่ในรูปแบบที่คอมพิวเตอร์ประมวลผลได้ การแสดงคสามรู้นี้จุะอยู่ในรูปประโยค และจะต้องสอดคล้องกันทั้งในแง่ของไวยากรณ์ ท Syntax และความหมาย Semantic
เงื่อนไข-->ข้อสรุป
ในกรณ๊ที่ความรู้ไม่ใช่ตัวเลข เป็นobjectและfact ที่มีความสัมพันธ์กัน เช่น ความรู้ "Plant is on the table พืชอยู่บนโต็ะ"
จะมีobject 2 ตัว พืชและโต๊ะ มีonแสดงถึงความสัมพันธ์การแสะดงความรู้แบบนี้จะมีการกล่าวถึงต่อไปอย่างละเอียด
ON(plant,table):plant is on the table
IN(table,room):table is in the room
UNDER (table,window)table is under the window
อย่างไรการแสดงความรู้มีสิ่งที่ควรคำนึงถึง
1.รวมความรู้เป็นหนึ่งเดียวกันได้อย่างไร เช่น ถ้าอธิบายลักษณะห้องห้องหนึ่ง ห้องนี้มีโต๊ะตั้งไว้ใต้หน้าต่าง table is under the window แล้ววันหนึ่งมีการเปลี่ยนฐานความรู้ว่า CENTER (table,room)ในระบบแสดงความรู้มีวิธีการอย่างไรที่จะแจ้งให้ทราบว่าUNDER (table,window) ไม่ได้เพราะในเมื่อโต๊ะมาอยู่กลางห้องก็เป็นไปไม่ได้ทีโต๊ะจะอยู่ใต้หน้าต่างด้วย
2.จัดลำดับให้ค้นหาง่าย เช่น ถ้าเติมABOVE(ceiling,floor)เข้าไปในฐานความรู้ ใส่ตรงไหนที่จะไม่ต้องบอกทุกครั้งเมื่อมีการอ้างถึงว่า เพดานอยู่เหนือพื้น
ทั้งหมดที่กล่าวมานี้เป็นการแสดงความรู้ด้วยเฟรม(frame)
เงื่อนไข-->ข้อสรุป
ในกรณ๊ที่ความรู้ไม่ใช่ตัวเลข เป็นobjectและfact ที่มีความสัมพันธ์กัน เช่น ความรู้ "Plant is on the table พืชอยู่บนโต็ะ"
จะมีobject 2 ตัว พืชและโต๊ะ มีonแสดงถึงความสัมพันธ์การแสะดงความรู้แบบนี้จะมีการกล่าวถึงต่อไปอย่างละเอียด
ON(plant,table):plant is on the table
IN(table,room):table is in the room
UNDER (table,window)table is under the window
อย่างไรการแสดงความรู้มีสิ่งที่ควรคำนึงถึง
1.รวมความรู้เป็นหนึ่งเดียวกันได้อย่างไร เช่น ถ้าอธิบายลักษณะห้องห้องหนึ่ง ห้องนี้มีโต๊ะตั้งไว้ใต้หน้าต่าง table is under the window แล้ววันหนึ่งมีการเปลี่ยนฐานความรู้ว่า CENTER (table,room)ในระบบแสดงความรู้มีวิธีการอย่างไรที่จะแจ้งให้ทราบว่าUNDER (table,window) ไม่ได้เพราะในเมื่อโต๊ะมาอยู่กลางห้องก็เป็นไปไม่ได้ทีโต๊ะจะอยู่ใต้หน้าต่างด้วย
2.จัดลำดับให้ค้นหาง่าย เช่น ถ้าเติมABOVE(ceiling,floor)เข้าไปในฐานความรู้ ใส่ตรงไหนที่จะไม่ต้องบอกทุกครั้งเมื่อมีการอ้างถึงว่า เพดานอยู่เหนือพื้น
ทั้งหมดที่กล่าวมานี้เป็นการแสดงความรู้ด้วยเฟรม(frame)
การค้นหา
จุดเริ่มต้นคือstart state พิจารนาสถานะเป้าหมาย goal state ถ้าไม่ใช่ต้องหาเป้าหมายต่อไป การค้นหาต้องค้นหาจากระยะทางที่ใกล้ที่สุดก่อน ทำให้ค้นหาง่ายขึ้น
ส่วนประกอบการค้นหา
โครงสร้างข้อมูลของต้นไม้ค้นหาSearch tree ต้องประกอบด้วยจุดต่อnodeแต่ละจุดต่อประกอบด้วยมั้ง
1.state=สถานะที่ต้องมีการเชื่อมโยง
2.parent node=จุดต่อม่าย
3.operation=การดำเนินการ
4.depth node=ความลึกของจุดต่อ จำนวนชั้นจุดต่อ
5.path cost=ค่าระยะทาง
1.state=สถานะที่ต้องมีการเชื่อมโยง
2.parent node=จุดต่อม่าย
3.operation=การดำเนินการ
4.depth node=ความลึกของจุดต่อ จำนวนชั้นจุดต่อ
5.path cost=ค่าระยะทาง
การวัดความสำเร็จการค้นหา
ประกอบด้วยเกณฑ์ข้อสรุป
1.Completeness ค้นพบคำตอบไหม?
2.Time complexity เวลาค้นหา
3.Space complexity จำนวนหน่วยความจำที่ใช้ในการจำจุดต่อจุด
4. Optimality มีประสิทธิภาพ?
1.Completeness ค้นพบคำตอบไหม?
2.Time complexity เวลาค้นหา
3.Space complexity จำนวนหน่วยความจำที่ใช้ในการจำจุดต่อจุด
4. Optimality มีประสิทธิภาพ?
ค้นหามี2แบบ ค้นหาแบบสม่ำเสมอ การค้นหาแบบแจ้งให้ทราบ
การค้นหาแบบสม่ำเสมอ uniform search
1.การค้นหาแบบกว้าง breadth first search เป็นการค้นหาเริ่มจากราก ค้นหาไปยังจุดต่อลูก ถ้าความสูงของต้นไม้มีค่าเท่ากับ dการค้นหาจะd+1 สามารถเขียนโปรแกรมโดยใช้คิว ค้นหาจะประสบความสำเร็จต่อเมื่อสถานะที่ต้องการค้นหาอยู่แบบตื้นๆ ค้นหาแนวกว้างจะสมบูรณ์ ต่อเมื่อจำนวนครั้งมีไม่มากนัก ขึ้นอยู่กับชั้นของจุดต่อ
1.การค้นหาแบบกว้าง breadth first search เป็นการค้นหาเริ่มจากราก ค้นหาไปยังจุดต่อลูก ถ้าความสูงของต้นไม้มีค่าเท่ากับ dการค้นหาจะd+1 สามารถเขียนโปรแกรมโดยใช้คิว ค้นหาจะประสบความสำเร็จต่อเมื่อสถานะที่ต้องการค้นหาอยู่แบบตื้นๆ ค้นหาแนวกว้างจะสมบูรณ์ ต่อเมื่อจำนวนครั้งมีไม่มากนัก ขึ้นอยู่กับชั้นของจุดต่อ
2. การค้นหาแนวลึก depth first searchโดยเริ่มจากจุดราก แล้วค้นหาไปยังลูกที่ลึกที่สุดทางซ้ายมือก่อน แล้วค้นต่อลูกทางขวามือ bเป็นจำนวนจุดต่อในแต่ละชั้นและmเท่ากับจำนวนชั้น
Depth first search ใช้หน่วยความจำน้อยกว่าการค้นหาในbreadth first search เพราะว่ามีการเก็บข้อมูลเฉพาะในวิถีที่พิจารณาเท่านั้น ในขณะที่การค้นหาแนวกว้างต้องเก็บข้อมูลทุกจุดต่อในแต่ละระดับครั้งละ 1ระดับ ทุกสถานะก่อนจะพิจารณาระดับหนึ่ง การค้นหาแนวกว้างจะไม่ถูกกักอยู่ในสถานที่วนซ้ำ เหมือนกันการค้นหาแนวลึก เกิดได้ถ้าถ้าไม่มีการเก็บข้อมูลของสถานะที่ได้ผ่านมาแล้ว แต่ถ้าหากปัญหานั้นมีผลเฉลยนั้นมีหลายผลเฉลย การค้นหาแนวกว้างจะได้ผลเฉลยที่ระยะที่สั้นที่สุด ซึ่งระยะทางจำนวนใช้กฎในขณะที่การค้นหาแนวลึกได้ผลเฉลี่ยที่มากกว่า เพราะว่าเพราะว่าผลเฉลยที่ระยะสั้นที่สุดไม่ได้ถูกนำพิจารณาในการค้นหานั้น
3.การค้นหาจำกัดความลึก depth limited search เป็นการกำหนดค่าความลึก ของเส้นทางเอาไว้โดยกำหนดในขั้นตอนวิธีในขณะค้นหาเลยก็ได้ เช่น แผนที่ประเทศไทย77จังหวัด ค่าสูงสุดของการค้นหาคือ19ชั้น จากการกำหนดนี้รับรองว่าต้องค้นพบผลลัพธ์ แต่จะไม่รองรับว่าจะค้นพบระยะทางที่สั้นที่สุดก่อน ซึ่งถ้ากำหนดระยะทางสิ้นสุดสั้นเกินไปก็จะค้นไม่พบ เวลาและการใช้เนื้อที่การค้นคล้ายกับก่รค้นหาแนวลึก
Depth first search ใช้หน่วยความจำน้อยกว่าการค้นหาในbreadth first search เพราะว่ามีการเก็บข้อมูลเฉพาะในวิถีที่พิจารณาเท่านั้น ในขณะที่การค้นหาแนวกว้างต้องเก็บข้อมูลทุกจุดต่อในแต่ละระดับครั้งละ 1ระดับ ทุกสถานะก่อนจะพิจารณาระดับหนึ่ง การค้นหาแนวกว้างจะไม่ถูกกักอยู่ในสถานที่วนซ้ำ เหมือนกันการค้นหาแนวลึก เกิดได้ถ้าถ้าไม่มีการเก็บข้อมูลของสถานะที่ได้ผ่านมาแล้ว แต่ถ้าหากปัญหานั้นมีผลเฉลยนั้นมีหลายผลเฉลย การค้นหาแนวกว้างจะได้ผลเฉลยที่ระยะที่สั้นที่สุด ซึ่งระยะทางจำนวนใช้กฎในขณะที่การค้นหาแนวลึกได้ผลเฉลี่ยที่มากกว่า เพราะว่าเพราะว่าผลเฉลยที่ระยะสั้นที่สุดไม่ได้ถูกนำพิจารณาในการค้นหานั้น
3.การค้นหาจำกัดความลึก depth limited search เป็นการกำหนดค่าความลึก ของเส้นทางเอาไว้โดยกำหนดในขั้นตอนวิธีในขณะค้นหาเลยก็ได้ เช่น แผนที่ประเทศไทย77จังหวัด ค่าสูงสุดของการค้นหาคือ19ชั้น จากการกำหนดนี้รับรองว่าต้องค้นพบผลลัพธ์ แต่จะไม่รองรับว่าจะค้นพบระยะทางที่สั้นที่สุดก่อน ซึ่งถ้ากำหนดระยะทางสิ้นสุดสั้นเกินไปก็จะค้นไม่พบ เวลาและการใช้เนื้อที่การค้นคล้ายกับก่รค้นหาแนวลึก
4.การค้นหาแบบทีดีที่สุดก่อน(ฺBest-first search)เป็นกระบวนการค้นหาข้อมูลที่นำเอาข้อดีbreadth first searchกับdepth first searchมารวมกันเป็นวิธีการเดียว ดดยแต่ละขั้นค้นหาในโหนดลูกนั้น เลือกเอาโหนดทที่ดีที่สุด(most promising)
ความฉลาดไม่จำเป็นต้องมีข้อมูลจำนวนมากเสมอไป แต่เกี่ยวข้องกับการแทนความรู้ต่างๆลงในโปรแกรมและให้เหตุผลของโปรแกรม การแทนความรู้ เป็นคำพื้นฐานที่ใช้อ้างถึงกระบวนการแทนโดยคอมพิวเตอร์ยุคใหม่ เป็นส่วนหนึ่งของอ็อบเจกต์ต่างๆและอ้างถึงอ็อบเจกต์นั้น ความรู้ที่แทนได้จะเก็บไว้ในคอมพิวเตอร์และทำให้คอมพิวเตอร์หาข้อสรุปได้
เทคนิคการแทนความรู้
3ชนิดคือ
3ชนิดคือ
1.การแทนความรู้เชิงตรรกะ logic-based representation
กระบวนการในการนำข้อเท็จจริง เข้าไปประมวลตรรกะแล้ว จะได้เป็นผลลัพธ์ออกมา ถ้าค่าความจริงเป็นจริงจะสามารถพิสูจน์ได้ทางคณิตศาสตร์ว่าผลที่ได้จะต้องจริง ตรรกศาสตร์ที่ใช้แทนความรู้แบ่งออกเป็น2ชนิด คือ ตรรศาสตร์ประพจน์ และแคลคูลัสภาคแสดง
1.1ตรรกศาสตร์ประพจน์(propositional logic) เป้นประโยคที่กล่าวถึงสิ่งใดสิ่งหนึ่งที่มีลักษณะเฉพาะ (ประโยคอะตอม)
กฎข้อที่1 ประพจน์เป็นกฎ
กฎข้อที่2 ถ้า P และ Q เป็นกฎแล้วต่อไปนี้เป็นกฎ
เช่น it is raining and pussy is outside-->pussy gets wet
ถ้าใส่วงเล็บจะแตกต่างกัน
1.(it is raining and pussy is outside)-->pussy gets wet
ถ้าใส่วงเล็บจะแตกต่างกัน
1.(it is raining and pussy is outside)-->pussy gets wet
2.it is raining and (pussy is outside-->pussy gets wet)
ประโยค1คือถ้าฝนตกจริงและแมวที่ชื่อพุชซี่อยู่ข้างนอกจริงพุชซี่จะต้องเปียก
ประโยค2คือฝนตกแล้วขณะนี้จริงถ้าพุชซี่อยู่ข้างนอกพุซซี่ขะเปียก
ตารางค่าความจริงแบ่งออกเป็น3ประเภท
1.สัจนินันดร์(tautology)จะได้ค่าความเป็นจริงเป็นจริงเสมอในทุกกรณ๊
2.คอนทินเจนต์(contingent)ได้ค่าความเป็นจริงที่มีโอกาศจริงบ้างเท็จบ้าง
3.อินคอนซิเทนต์(inconsistent)ได้ค่าความจริงที่ไม่มีทางเป็นจริงหมด
1.2 แคลคูลัสภาคแสดง(predicate calculus)
or bird(tweety)
is a (tweety ,bird)
ลองพิจารณา "If tweety files then tweety is a bird.Tweety flies. Therefore tweety is a bird"
2.คอนทินเจนต์(contingent)ได้ค่าความเป็นจริงที่มีโอกาศจริงบ้างเท็จบ้าง
3.อินคอนซิเทนต์(inconsistent)ได้ค่าความจริงที่ไม่มีทางเป็นจริงหมด
1.2 แคลคูลัสภาคแสดง(predicate calculus)
or bird(tweety)
is a (tweety ,bird)
ลองพิจารณา "If tweety files then tweety is a bird.Tweety flies. Therefore tweety is a bird"
2.การแทนความรู้เชิงอ็อบเจกต์object-based representation
3.การแทนความรู้เชิงกฎrule-based representation
ชนิดของ Agent
- Simple reflex agents
- Model-based agents
- Goal-based agents
- Utility-based agents
- Learning agents
Simple reflex agents
- การดำเนินการบนพื้นฐานของ Percept ปัจจุบัน (ไม่มีประวัติ)
- ขึ้นอยู่กับกฎสภาพการกระทำ (ถ้ามีแล้ว)
- ที่เรียบง่าย แต่มีสติปัญญาที่ จำกัด มากEx: Thermostat
Model-based agents
ติดตามประวัติศาสตร์ Percept
- สร้าง "รูปแบบ"
- ตามยังคงอยู่ในการปกครองถ้าแล้ว
Ex: หุ่นยนต์เครื่องดูดฝุ่น - ครอบคลุมพื้นที่ทั้งหมด
Goal-based agents
- มีข้อมูลเกี่ยวกับสถานการณ์บางอย่างที่เป็นที่พึงประสงค์
- ท่ามกลางความเป็นไปได้หลายเลือกหนึ่งซึ่งถึงเป้าหมายของรัฐ
Ex: ระบบตรวจสอบคำที่ไม่ดี - ตรวจหาและลบที่เกิดขึ้นคำหยาบ
Utility-based agents
- มีข้อมูลบางอย่างที่อธิบายระดับของความพอใจ (เช่นเมื่อมีเงื่อนไขที่น่าพอใจหลายที่บางส่วนที่มีความสำคัญมากขึ้นกว่าคนอื่น ๆ )
Ex: แท็กซี่อัตโนมัติ - พิจารณาความถูกต้องค่าใช้จ่ายที่, เวลา, ความปลอดภัย ฯลฯ
Learning agents
- ประสบการณ์การใช้เพื่อปรับปรุงประสิทธิภาพ
Ex: แนะนำหนังสือ - สร้างรายชื่อหนังสือที่ลูกค้าอาจชอบตามเปิด / ประวัติการซื้อของเขาและเธอ
Agents
เป็นสิ่งที่รับรู้ของสภาพแวดล้อมที่ผ่านการเซ็นเซอร์และการกระทำที่ผ่านตัวกระตุ้น
เปรียบเทียบมนุษย์กับหุ่นยนต์
มนุษย์
- เซ็นเซอร์เหมือนมนุษย์ มองภาพ ได้ยินเสียง สัมผัส ได้กลิ่น รู้รส
- ตัวกระตุ้นต่อสิ่งเร้าของมนุษย์: มือขาริมฝีปากอวัยวะอื่น ๆ
หุ่นยนต์
- เซ็นเซอร์หุ่นยนต์: กล้องอินฟาเรด, ไมโครโฟน
- กระตุ้นหุ่นยนต์: มอเตอร์, ชิ้นส่วนเครื่องจักรกล
Percepts and Actions
percepts: ข้อมูลAgentจากสภาพแวดล้อม
actions: output จากAgentที่มีต่อสิ่งแวดล้อม
Rationality ความมีเหตุผล
- วัดสมรรถนะของผู้ประเมินพฤติกรรมของ agent
- rational agent ทำหน้าที่เพื่อเพิ่มค่าที่คาดหวังexpectedของการวัดประสิทธิภาพการทำงานรับ percept history ซึ่งมันต้องใช้เวลาการกระทำของมัน เชื่อว่าbelievesจะบรรลุเป้าหมาย
- เหตุผล: ทำให้ได้รับข้อมูลที่ดีที่สุด
- เหตุผล ≠ การรอบรู้ทุกอย่าง
- เหตุผล ≠ ความสำเร็จ
PEAS
การออกแบบเป็นตัวแทนที่มีเหตุผลที่เราจะต้องระบุสภาพแวดล้อมของงานซึ่งเป็นหลัก
"ปัญหา" ที่เป็น rational agents "การแก้ปัญหา"
- สี่องค์ประกอบของสภาพแวดล้อมของงาน: PEAS
- วัดสมรรถนะ
- สิ่งแวดล้อม
- Actuators
- Sensors
ตัวอย่างเช่น โปรแกรมOX
- การวัดประสิทธิภาพการทำงาน: ร้อยละที่ชนะ
- ความพึงพอใจของผู้เล่นคนที่ใช้งานง่าย
- สิ่งแวดล้อม: ผู้เล่นของมนุษย์
- Actuators: จอแสดงผลคอมพิวเตอร์อินเตอร์เฟซแบบกราฟิก
- เซนเซอร์:แป้นพิมพ์
ตัวอย่าง: แท็กซี่อัตโนมัติ
- การวัดประสิทธิภาพการทำงาน: ความปลอดภัยเวลา
- ถูกต้องตามกฎหมายกำไร ฯลฯ
- สิ่งแวดล้อม: ถนนยานพาหนะอื่น ๆ , คนเดินเท้า
- ผู้โดยสาร ฯลฯ
- Actuators: พวงมาลัยพาวเวอร์, เร่ง, เบรกสัญญาณ
- ฮอร์น, ฯลฯ
- เซนเซอร์: กล้องโซนาร์วัดความเร็ว, GPS, ฯลฯ