Archive for สิงหาคม 2015

เกมส์ทิกแทกโท

วันอังคารที่ 25 สิงหาคม พ.ศ. 2558
Posted by Antioch
เป็นเกมส์ผลรวมเป็นศูนย์ เนื่องจากผลรวมนี้คือการรวมความสำเร็จ ชนะพร้อมกันไม่ได้
1. ขั้นตอนวิธีแบบค่าน้อยสุด-มากสุด minimax algorithm จุด root node แทนผู้เล่นแรกๆ และจุดโหนดลูกแทนผู้เล่นฝ่ายตรงข้าม จุดปลายสุดจะระบุคะแนน เราต้องหาการเล่นวิธีที่ดีดีที่สุดของผู้เล่นคนแรกดังนั้น จึงเลือกคะแนนสูงสุดต่อจุดของจุดต่อลูกๆๆของมัน ส่วนที่จุดต่อของผู้เล่นฝั่งตรงข้ามจะเลือกคะแนนสูงสุดของจุดต่อลูกๆมัน ส่วนจุดต่อฝั่งตรงข้ามจะเลือกคะแนนต่ำสุดของจุดลูกๆของมัน สำหรับจุดต่อที่น้อยที่สุดMIN คะแนนเริ่มแรกก่อนการเปรียบเทียบ จะเท่ากับ +infinityและลดลงเรื่อยๆเมื่อโปรแกรมทำงานต่อไป ส่วนจุดต่อมากที่สุด(MAX)คะแนนจะเริ่มที่-infinityและเพิ่มขึ้นเรื่อยๆ แผนถูมิต้นไม้ขนาดใหญ่จนต้องกำหนดขอบเขตล่วงหน้า

2.ขั้นตอนวิธีการตัดออกแบบอัลฟา-เบต้า(alpha beta pruning)

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 และความล้มเหลวที่จะถูกตรวจพบ ทันทีที่หลีกเลี่ยงการค้นหาจุดหมายผ่านอื่น ๆ ตัวแปรซึ่งท้ายที่สุดก็จะล้มเหลวต่อไป
- MRV ไม่ได้ช่วยในการเลือกภูมิภาคครั้งแรกที่จะมีสีเพราะภูมิภาคครั้งแรกทุกคนมีสามสีตามกฎหมาย
- ส่วนใหญ่ 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)
  • เราจะหารือสองวิธี:
  1. Greedy best-first search
  2. A* search

Greedy Best-First Search

  • ขยายโหนดที่ปรากฏขึ้นใกล้เคียงกับเป้าหมาย
  • เลือกเส้นทางที่ดีที่สุดที่ดูจากโหนดปัจจุบัน S เพื่อเป้าหมาย
  • f (s) = h (s)  h (s): ประเมินค่าใช้จ่ายของเส้นทางถูกที่สุดจากโหนดเพื่อเป้าหมาย
  • h (เป้าหมาย) = 0

Greedy Best-First Search
  • วิธีการแก้ปัญหา: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)ต่างๆ  ที่ใช้ในการแก้ปัญหา ณ สถานะหนึ่งว่า จะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกำหนดน้ำหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี น้ำหนักเหล่านี้จะถูกแสดงด้วยตัวเลขที่กำกับไว้โหนดต่างๆ ในกระบวนการค้นหา และค่าเหล่านี้จะเป็นตัวที่ใช้ในการประมาณความเป็นไปได้ว่าเส้นทางผ่านโหนดนั้น มีความเป็นไปได้นำสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหน

การค้นหา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
สำหรับค่าของ 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.เกี่ยวกับตัวอัลกอริทึม
  • คำนึงถึงเส้นทางที่ดีที่สุดด้วย
  • ทำอย่างไรให้ได้คำตอบนั้น กำหนดให้ 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

การแทนความรู้ (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)


ปัญหาและการแก้ปัญหา

วันศุกร์ที่ 21 สิงหาคม พ.ศ. 2558
Posted by Antioch
การค้นหา
จุดเริ่มต้นคือstart state พิจารนาสถานะเป้าหมาย goal state ถ้าไม่ใช่ต้องหาเป้าหมายต่อไป การค้นหาต้องค้นหาจากระยะทางที่ใกล้ที่สุดก่อน ทำให้ค้นหาง่ายขึ้น
ส่วนประกอบการค้นหา
โครงสร้างข้อมูลของต้นไม้ค้นหาSearch tree ต้องประกอบด้วยจุดต่อnodeแต่ละจุดต่อประกอบด้วยมั้ง
1.state=สถานะที่ต้องมีการเชื่อมโยง
2.parent node=จุดต่อม่าย
3.operation=การดำเนินการ
4.depth node=ความลึกของจุดต่อ จำนวนชั้นจุดต่อ
5.path cost=ค่าระยะทาง
การวัดความสำเร็จการค้นหา
ประกอบด้วยเกณฑ์ข้อสรุป
1.Completeness ค้นพบคำตอบไหม?
2.Time complexity เวลาค้นหา
3.Space complexity จำนวนหน่วยความจำที่ใช้ในการจำจุดต่อจุด
4. Optimality มีประสิทธิภาพ?
ค้นหามี2แบบ ค้นหาแบบสม่ำเสมอ การค้นหาแบบแจ้งให้ทราบ
การค้นหาแบบสม่ำเสมอ uniform search
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ชั้น จากการกำหนดนี้รับรองว่าต้องค้นพบผลลัพธ์ แต่จะไม่รองรับว่าจะค้นพบระยะทางที่สั้นที่สุดก่อน ซึ่งถ้ากำหนดระยะทางสิ้นสุดสั้นเกินไปก็จะค้นไม่พบ เวลาและการใช้เนื้อที่การค้นคล้ายกับก่รค้นหาแนวลึก
4.การค้นหาแบบทีดีที่สุดก่อน(ฺBest-first search)เป็นกระบวนการค้นหาข้อมูลที่นำเอาข้อดีbreadth first searchกับdepth first searchมารวมกันเป็นวิธีการเดียว ดดยแต่ละขั้นค้นหาในโหนดลูกนั้น เลือกเอาโหนดทที่ดีที่สุด(most promising)

การแทนความรู้

วันพุธที่ 19 สิงหาคม พ.ศ. 2558
Posted by Antioch
              ความฉลาดไม่จำเป็นต้องมีข้อมูลจำนวนมากเสมอไป แต่เกี่ยวข้องกับการแทนความรู้ต่างๆลงในโปรแกรมและให้เหตุผลของโปรแกรม  การแทนความรู้ เป็นคำพื้นฐานที่ใช้อ้างถึงกระบวนการแทนโดยคอมพิวเตอร์ยุคใหม่ เป็นส่วนหนึ่งของอ็อบเจกต์ต่างๆและอ้างถึงอ็อบเจกต์นั้น ความรู้ที่แทนได้จะเก็บไว้ในคอมพิวเตอร์และทำให้คอมพิวเตอร์หาข้อสรุปได้
เทคนิคการแทนความรู้
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
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.การแทนความรู้เชิงอ็อบเจกต์object-based representation
3.การแทนความรู้เชิงกฎrule-based representation



ชนิดของ Agent

วันอังคารที่ 18 สิงหาคม พ.ศ. 2558
Posted by Antioch

ชนิดของ 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: แนะนำหนังสือ
  • สร้างรายชื่อหนังสือที่ลูกค้าอาจชอบตามเปิด / ประวัติการซื้อของเขาและเธอ

Intelligent Agents

วันอาทิตย์ที่ 16 สิงหาคม พ.ศ. 2558
Posted by Antioch

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, ฯลฯ

Welcome to My Blog

Popular Post

Blogger templates

ขับเคลื่อนโดย Blogger.

Sample text

Blogger templates

Followers

- Copyright © AI -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -

Highlight and copy the HTML below, then paste it into the code for your Web site