ตรรกศาสตร์

วันอังคารที่ 15 กันยายน พ.ศ. 2558
Posted by Antioch

Logical Agent

  • มีฐานความรู้ของตนซึ่งเป็นชุดของประโยคที่แสดงออกในความรู้ภาษาเป็นตัวแทน
  • ตัวแทนตรรกะสามารถเพิ่มประโยคใหม่เพื่อ KB รวมทั้งใช้ในการตอบคำถามสรุปมาจาก KB รับประกันได้ว่าจะถูกต้องหาก KB ที่ถูกต้อง
  • อนุมาน: อันเกิดประโยคใหม่จากที่มีอยู่
Ex: โจอี้เป็นสุนัข; สุนัขเป็นสัตว์; โจอี้จึงเป็นสัตว์

โจทย์

Propositions: assertions, statements
  • เป็นเรื่องที่สามารถเป็นจริงหรือเท็จ
  • ตัวอักษรเป็นทั้งสัญลักษณ์หรือสัญลักษณ์เชิงลบ
 Ex: P, ~Q
Ex:“โจอี้เป็นสุนัข” P
“สุนัขเป็นสัตว์” Q
“ฉันมีสองแอปเปิ้ล” S

ตัวดำเนินการทางตรรกศาสตร์

~ not (negation, sometimes written ~) ปฎิเสธ
Λ and (conjunction)ตัวเชื่อม
V or (disjunction)
↔ if and only if ถ้าแล้ว
ลำดับความสำคัญ (สูงสุดไปต่ำสุด):~, Λ, V, , ↔

ถูกต้อง(Valid)

  • คำสั่งที่ถูกต้อง (หรือเราบอกว่าเป็นคำสั่งซ้ำซาก) ถ้าหากคำสั่งที่เป็นความจริง เพื่อทดแทนที่เป็นไปได้ของตัวแปรของพวกเขา
  • Ex: (พีวีพี ~) เป็นซ้ำซาก

p      ~p       p V ~p
T       F          T
F        T         T

Unsatisfiable

  •  คำสั่งเป็น unsatisfiable (หรือเราบอกว่าคำสั่งที่เป็นความขัดแย้ง) ถ้าหากว่าคำสั่งที่เป็นเท็จเพื่อทดแทนที่เป็นไปได้ใด ๆตัวแปรของพวกเขา
  • Ex: (P Λ ~ P) เป็นความขัดแย้ง
p      ~p       p Λ ~p
T        F       F
F        T       F

Satisfiable(ความพอใจ)

คำสั่งคือ satisfiable (พอใจ)ถ้าหากว่า
คำสั่งที่เป็นจริงสำหรับอย่างน้อยหนึ่งที่เป็นไปได้
ทดแทนของตัวแปรของพวกเขา
Ex: ทั้งสอง (pΛ q) (p V q) มีความพอใจ
p    q        p Λ q p V q
T    T            T      T
T    F            F      T
F    T            F      T
F    F            F       F

ประพจน์ตรรกะสมมูล (Logical equivalent)


De Morgan’s Laws (กฎของมอร์แกนเดอ)
~(p Λ q) ≡ ~p V ~q
~(p V q) ≡ ~p Λ ~q
Transformation(การเปลี่ยนแปลง)
p q ≡ ~p V q
Contrapositive
p q ≡ ~q ~p

Propositional Logic(ตรรกะของประพจน์)

“โจอี้เป็นสุนัข” P
“สุนัขเป็นสัตว์” Q
“โจอี้เป็นสัตว์” R
“โจอี้เป็นสุนัข; สุนัขเป็นสัตว์; โจอี้จึงเป็นสัตว์”
(P Λ Q) --> R
ดังนั้นวิธีการที่สามารถประโยคตรรกะเหล่านี้ช่วยให้เราแก้ปัญหา?

Entailment

Entailment: ประโยคจากเหตุผลดังต่อไปนี้อื่น
KB ╞ α
ฐานความรู้ของ KB ที่มีรายละเอียดαประโยคถ้าหากαเป็นความจริงในโลกทั้งหมดที่ KB ที่เป็นความจริง
Ex: x + y = 4 entails y + x = 4

Proof by contradiction(การพิสูจน์โดยข้อขัดแย้ง)


  • α ╞ β iff (α Λ ~β) is unsatisfiable
  • นั่นคือสมมติว่าเรารู้ว่าαเราสามารถพิสูจน์βโดยแสดงให้เห็นว่า (αΛ ~ β) ไม่สามารถเป็นจริง
  • ในคำอื่น ๆ ที่เราพิสูจน์ได้ว่าเป็นความจริงβโดยแสดงให้เห็นว่าถ้าβเป็นเท็จก็จะขัดแย้งกับα
Example 1
Given
(P Λ ~R) “พีทอยู่ที่นี่ "และ" รอนไม่ได้อยู่ที่นี่” (1)
(~Q R) “หากควีนไม่อยู่ที่นี่แล้วรอนอยู่ที่นี่” (2)
ต้องการที่จะพิสูจน์
Q “ควีนอยู่ที่นี่” (3)
 หลักฐานจากความขัดแย้ง จำเป็นที่จะต้องแสดงให้เห็นว่าทุกการรวมกันของค่าความจริง P, Q, R, ไม่มีใครทำให้ประโยคต่อไปนี้เป็นความจริง
(1) Λ (2) Λ ~(3)
(P Λ ~R) Λ (~Q R) Λ ~Q

  • ? เราได้แสดงให้เห็นว่า
          (1) Λ (2) Λ ~ (3)
           ไม่สามารถที่จะเป็นจริง และเรากำลังได้รับว่าทั้งสอง (1) และ(2) เป็นจริง
           ดังนั้น ~ (3) ต้องเป็นเท็จซึ่ง   ทำให้ (3) ความจริงที่เราอยากจะพิสูจน์
Example 2
Given
Q R (1)
~(R P) Q (2)
P V R (3)
ต้องการที่จะพิสูจน์
P V Q (4)
หลักฐานจากความขัดแย้ง จำเป็นที่จะต้องแสดงให้เห็นว่าประโยคต่อไปนี้ไม่สามารถเป็นจริง
(1) Λ (2) Λ (3) Λ ~(4)

  • (1) Λ (2) Λ (3) Λ ~(4)มักจะเป็นเท็จและ(1), (2), (3)เป็นจริง ดังนั้น(4)ต้องเป็นจริงตามที่ต้องการ
Example 3

Given
Q R (1)
~(R P) Q (2)
P R (3)
ต้องการที่จะพิสูจน์
R (4)
หลักฐานจากความขัดแย้ง จำเป็นที่จะต้องแสดงให้เห็นว่าประโยคต่อไปนี้ไม่สามารถเป็นจริง
(1) Λ (2) Λ (3) Λ ~(4)
(1) Λ (2) Λ (3) Λ ~(4)
สามารถเป็นจริงหรือเท็จ เราไม่สามารถพิสูจน์ได้ว่าเป็นความจริง R

Conjunctive Normal Form

  • ประโยคที่อยู่ในรูปแบบปกติที่เชื่อมต่อกัน (CNF) ถ้ามันจะแสดงเป็นร่วมของ disjunctions ของตัวอักษร
(literal1 V ... V literali) Λ ... Λ (literalj V ... V literalk)
  • ประโยคของประพจน์ลอจิกทุกคนสามารถเป็นกลายเป็น CNF
  • วิธีการเปลี่ยนประโยคเป็น CNF
  • R ↔ (P V Q)
1. แทนที่ (α ↔ β) กับ (α β) Λ (β α)
    (R (P V Q)) Λ ((P V Q) R)
      2. แทนที่ (α β) กับ(~α V β)
        (~R V (P V Q)) Λ (~(P V Q) V R)

        Resolution(ความละเอียด)

        • มติที่จะใช้เวลาสองข้อ CNFและสร้างประโยคใหม่ที่มีตัวอักษรทั้งหมดของทั้งสองคำสั่งเดิมยกเว้นสองตัวอักษรเสริม
        Ex: Given: (A V B) Λ (~B V C)
              ผลลัพธ์: A V C
        (A V B) Λ (~B V C)หมายถึงA V C (แต่ไม่ได้อยู่ในทางกลับกัน)
          1 แปลง ~ αและคำสั่งจาก KB ที่จะ CNF
            2. แต่ละคู่ที่มีตัวอักษรที่สมบูรณ์คือ มีมติในการผลิตคำสั่งใหม่ซึ่งเป็นเพิ่มไปยังชุดถ้ามันไม่ได้อยู่แล้วต่อไปจนกว่าหนึ่งในสองสิ่งที่เกิดขึ้น:
            • ? ไม่มีคำสั่งใหม่ที่สามารถเพิ่มที่ กรณี KB ไม่ตกทอดαหรือ
            • ? การประยุกต์ใช้กฎความละเอียดที่มา ข้อที่ว่างเปล่าในกรณีที่ส่งผล KB α
            ไม่มีคำสั่งที่ต้องทำ ความละเอียด--> ไม่สามารถที่จะ พิสูจน์ให้เห็นว่า R เป็นความจริง

            First-Order Logic


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

            Universal Quantifier

            "สำหรับทุกอย่าง ... "
            Ex:
            สำหรับ x ทุกคนถ้า x เป็นเด็ก x ชอบไอศครีม
            เด็กขวาน (x)? ชอบ (x, ไอศครีม)
            สำหรับ x ทุก x เป็นทั้งสีเหลืองหรือสีเขียว (หรือทั้งสอง)
            Ax เหลือง (x) กรีน V (x)

            Existential Quantifier(E)

            อัตถิภาวปริมาณ
            • "สำหรับบางคน ... " หรือ "มีอยู่ ... "
            •  Ex: มีเด็กบางคนที่ไม่ชอบผัก (E)
            อดีตเด็ก (x) Λ ~ ชอบ (x, ผัก)(E)
            มี x บางอย่างเช่นว่าถ้ากินผักขม x คือ x
            จะกลายเป็นที่แข็งแกร่ง
            อดีตกิน (x, ผักโขม)? ที่แข็งแกร่ง (x)

            Nested Quantifier

            • ปริมาณที่ซ้อนกัน
            • ทุกคนมีคนที่เขา / เธอชอบ
            Ax Ey มนุษย์ (x) Λมนุษย์ (y) Λชอบ (x, y) ขวาน
            • มีคนที่ทุกคนชอบคือ
            Ax มนุษย์ (x) Λมนุษย์ (y) Λชอบ (x, y)

            Negation

            และการปฏิเสธ
            • การเชื่อมต่อระหว่าง
            ชอบขวาน (x, IceCream)
            ขวาน ~ ~ ชอบ (x, IceCream)
            อดีต ~ ชอบ (x, IceCream) ~
            ทุกคนชอบไอศครีม
            ไม่มีใครที่ไม่เป็น
            •  บางกฎ
            ไม่ชอบไอศครีม
            Ax ≡≡ E ~ ~ Ex x ขวาน

            CNF in FOL

            • วิธีการเปลี่ยนประโยคเป็น CNF

            Resolution in FOL

            • ในขณะที่ลอจิกประพจน์เพื่อที่จะใช้ความละเอียด FOL ต้องใช้ประโยคที่จะอยู่ใน CNF
            • ความละเอียด: คล้ายกับผู้ที่อยู่ในลอจิกประพจน์ แต่มีตัวแปร / ทดแทนอย่างต่อเนื่อง

            •  ได้รับ Au, v, x, y
              กิน (x, y)? ล่า (x, y)
              ล่า (ยูวี) ~ ล่า (V, มึง)
            • ? ต้องการที่จะพิสูจน์
              (1) ถ้าฉันกินคุณฉันล่าคุณ
              (2) ถ้าฉันล่าคุณคุณไม่ล่าฉัน
              น้ำหนัก ~ กิน (สิงโตน้ำหนัก)
            • ? นั่นคือพิสูจน์ว่า (1) Λ (2) Λ ~ (3) เป็น unsatisfiable
              (3) มีสิงโตบางสิ่งบางอย่างที่ไม่ได้กิน
              ตัวอย่างเครดิต: สเวนนิก



            การตัดสินใจใช้ทฤษฎีเกม(Decision Making using Game Theory) 

            Games as Search Problems(เกมเป็นปัญหาค้นหา)

            Minimax

            • ได้รับต้นไม้เกมนี้กลยุทธ์ที่ดีที่สุดสามารถ กำหนดโดยการตรวจสอบค่าของ Minimax แต่ละโหนด
            • minimax_value(s)
              Utility(s) if s is terminal
              maxs’ є Successors(s) minimax_value(s’)if s is MAX
               mins’ є Successors(s) minimax_value(s’) if s is MIN
              คำนวณค่าminimaxจากด้านล่างขึ้น
              • ค่าฟังก์ชั่นมินิแมกซ์) พบว่าผลของ MAX MIN สมมติว่ายังเล่นได้อย่างดีที่สุด
              • ค่าฟังก์ชั่นมินิแมกซ์) พบว่าผลของ MAX กรณีเลวร้ายที่สุด; ว่ามีที่แม็กซ์อาจได้รับแม้จะเป็นผลดีกว่าถ้า MIN เล่นที่ไม่ได้อย่างดีที่สุด
              • ปัญหาที่อาจเกิดขึ้น: จำนวนมากของโหนดในต้นไม้ค้นหา (ชี้แจงในการแยกปัจจัยและความลึก)
              • แต่ก็เป็นไปได้ที่จะได้รับการแก้ปัญหาตรงเดียวกันโดยไม่ต้องมองหาที่โหนดในต้นไม้เกมทุก !!

              Alpha-Beta Pruning


              • จะช่วยให้การแก้ปัญหาเช่นเดียวกับมินิแมกซ์จะโดยไม่ได้มองที่โหนดในต้นไม้เกมทุก
              • Prunesไปสาขาที่ไม่สามารถเป็นไปได้ มีอิทธิพลต่อการตัดสินใจครั้งสุดท้าย
              • α: ค่าที่ต่ำกว่ามินิแมกซ์มุ่ง MAX
              • β: ค่ามินิแมกซ์บนมุ่ง MIN

              • ด้วยการตัดแต่งกิ่งα-βดูที่ 6 โหนด
              • โดยไม่ต้องมีการตัดแต่งกิ่งα-βดูที่ 9 โหนด
              • ยังคงมีการตัดแต่งกิ่งแม้จะมีα-βทำงานในเต็มรูปแบบต้นไม้ที่เป็นไปไม่ได้เกมมากที่สุดในโลกแห่งความจริงปัญหาที่เกิดขึ้น

              หมากรุก


              •  กว่า 1,300 ปี
              • เกมกระดานสองคนซึ่งจำลองการต่อสู้ระหว่างกองทัพทั้งสองฝ่ายตรงข้าม
              • ผู้เล่นผลัดกันการย้ายหรือการจับ
              • วัตถุประสงค์: เพื่อจับกษัตริย์ของฝ่ายตรงข้าม
              • ตรวจสอบ: ผู้เล่น declares "ตรวจสอบ" เมื่อเขาย้ายในลักษณะที่คุกคาม พระมหากษัตริย์ของฝ่ายตรงข้ามกับการจับภาพ (และพระมหากษัตริย์มีความหมายของการหลบหนี) ฝ่ายตรงข้ามจะต้องได้รับพระมหากษัตริย์ออกจากการตรวจสอบทันที
              • ก่อให้เกิดปัญหา หมากรุกเป็นปัญหาการค้นหาโดยการระบุพื้นที่ของรัฐสถานะเริ่มต้นเป้าหมายการดำเนินการค่าใช้จ่ายในเส้นทาง
              • สร้างต้นไม้ค้นหา
              • ปัญหาที่อาจเกิดขึ้น
              • จะเป็นการดีที่สร้างต้นไม้ค้นหาทั้งหมดทางลงไปทุกใบและใช้มินิแมกซ์ ใช้การตัดแต่งกิ่งα-βเพื่อลดต้นไม้ค้นหา
              • ในความเป็นจริงต้นไม้ค้นหาอาจจะมีขนาดใหญ่เกินกว่าที่จะสร้าง
              • แทนการสร้างต้นไม้ที่สมบูรณ์หยุดที่จุดหนึ่งและประเมินคุณภาพของโหนดโดยใช้ฟังก์ชั่นการประเมินผล

              การตัดสินใจแบบ Real-Time

              • โดยประมาณ (และแน่นอน) การแก้ปัญหา
              • ใช้ฟังก์ชั่นการประเมินผลการแก้ปัญหา
              • กำหนดของสถานะ (หรือขั้วกลาง) ฟังก์ชั่นการประเมินผลตอบแทนประมาณการของยูทิลิตี้ที่คาดหวังของเกมที่
              • ควรจะรวดเร็วในการคำนวณ
              • Ex: ฟังก์ชั่นการประเมินผลง่ายสำหรับการหมากรุก
              Pawn: 1 point
              Knight/bishop: 3 points
              Rook: 5 points
              Queen: 9 points
              สรุปผลคะแนนของทุกชิ้นบนกระดาน
              ฟังก์ชั่นการประเมินผลที่สูงขึ้นอาจจะยัง
              มองไปที่ความสัมพันธ์ระหว่างตำแหน่งในหมู่ชิ้น

              • ในการตัดสินใจแบบ real-time ใช้มินิแมกซ์ที่มีการตัดแต่งกิ่งα-βกับสองการปรับเปลี่ยน
                        -Cut ออกต้นไม้ค้นหาที่ขีด จำกัด ระดับความลึกคงที่
                        -ฟังก์ชั่นการประเมินผลการใช้งานที่จะประเมินยูทิลิตี้ของสถานะ
              • ตัดควรจะนำมาใช้กับนิ่ง (ไม่สำคัญ) รัฐ




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

              วันอังคารที่ 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การค้นหาสองทิศทาง

              • การค้นหาพร้อมกันสองคนคนหนึ่งไปข้างหน้าจากสถานะเริ่มต้นย้อนหลังจากเป้าหมายอื่น ๆ
              • ประหยัดพื้นที่


              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