INC 551 Artificial Intelligence Lecture 4 Iterative Improvement Algorithms & Constraint Satisfaction Problems (CSP)
Deliberative Agent Environment Action Sense, Perceive Make Decision World Model Sense, Perceive State-Action nodes or others
World Model (Black Box) Best action? What is the best action? Similar to optimization problem
Search for Best Solution System Input Output 1 2 3 4 5 6 : 23 12 192 175 34 16 :
Iterative Improvement Algorithms (Optimality Search) Hill Climbing Simulated Annealing Genetic Algorithms
Comparison มีจิงโจ้ตาบอดที่ต้องการพาตัวเองกระโดดขึ้นไปบนยอดสูงสุดของยอดเขา Hill Climbing จิงโจ้ลองหย่อนขาไปในทิศต่างๆ ถ้าสูงขึ้นก็จะยอมก้าว Simulated Annealing จิงโจ้กินเหล้าเข้าไปก้าวผิดก้าวถูก แต่พอผ่านไปก็จะสร่างเมาแล้วก้าวถูกมากๆขึ้น Genetic Algorithms ใช้วิธีออกลูกหลานมากๆ แล้วเรายิงจิงโจ้ที่อยู่ต่ำๆทิ้งไปเรื่อยๆ จนในที่สุด จะหวังว่าจิงโจ้ที่เหลืออยู่คือตัวที่อยู่สูงๆ
Hill Climbing ข้อเสีย สามารถติดอยู่ที่ local minima “ลองก้าว” ถ้าสูงกว่าเดิมก็ไป
8-queen problem วาง queen 8 ตัวให้ไม่สามารถกินกันได้
Thinking ชนกัน = 5 คู่ ชนกัน = 3 คู่ ชนกัน = 1 คู่
Traveling Salesman Problem หาเส้นทางที่สั้นที่สุดที่เชื่อมเมืองเป็น chain
Thinking ระยะทางรวม = 230 ระยะทางรวม = 110
Simulated Annealing T ลดลงเรื่อยๆเมื่อเวลาผ่านไปจนเป็น 0 คล้าย hill-climbing แต่จะเดินลงเขาด้วย ด้วย probability T ลดลงเรื่อยๆเมื่อเวลาผ่านไปจนเป็น 0
Evolutionary Algorithms Genetic Algorithms (GA) Evolutionary Strategies (ES) Evolution Programming (EP)
Objective of the Algorithms Finding a Maximum or minimum (numerical way) เหมาะสำหรับปัญหาที่ไม่ทราบอะไรเกี่ยวกะมันเลย รู้แค่มี input อย่างนี้ output ออกมาเป็นอย่างนี้
Evolutionary Algorithm Initial Population Representation Evaluation Selection Crossover Mutation
8-Queen Crossover Example
Heuristics of Evolutionary Algorithms System Input Output 1 2 3 4 5 6 : 23 12 192 175 34 16 : แถวๆนี้น่าจะดี ลองเยอะๆหน่อย โดยลองค่าที่มาจากคุณสมบัติ ของ 2 ค่านี้เช่น 3.6
Evolutionary Algorithms System Input Output 1 2 3 4 5 6 : 23 12 192 175 34 16 : Fitness Function Population Evaluation
(Mutation, Recombination) 1 2 3 4 5 6 1 2 3 4 5 6 2.1 3.2 4.3 5.4 5.2 6.4 Evaluation Breeding Initial Population Add offsprings 3 4 5 3.2 4.3 5.2 Selection New population in the next era
Create initial random population Procedure of Evolutionary Algorithms Create initial random population Evaluate fitness of each individual yes Termination criteria satisfied ? stop no Select parents according to fitness Recombine parents to generate offspring Mutate offspring Replace population by new offspring
Constraint Satisfaction Problems Variables – X1,X2,X3,…. Constraints – C1,C2,C3,…. ต้องการหาค่า X1,X2,X3,… ที่ satisfy C1,C2,C3,…. ปัญหาแบบนี้สามารถแก้ได้ด้วยวิธีการ search
Example
Constraint Graph Variables อันไหนเชื่อมกันแสดงว่ามี constraint ต่อกัน Nodes คือ variables Link คือ constraints Variables อันไหนเชื่อมกันแสดงว่ามี constraint ต่อกัน
Example Cryptarithmetic
Sudoku Sudoku is a CSP problem.
Types of Constraints Unary (เกี่ยวกับ 1 ตัวแปร เช่น WA ≠ red) Binary (เกี่ยวกับ 2 ตัวแปร เช่น WA ≠ Q) High-order (เกี่ยวกับ 2 ตัวแปร เช่นใน Cryptarithmetic) Preference (เป็น soft constraint ที่เกี่ยวกับ optimization เช่น red < green)
Search Formulation Initial State = Empty set (no assignment to any variables) Successor function = Assign 1 value to 1 variable Goal = All constraints are satisfied
Search Choices Breadth – first Depth - first Depth-first ที่ expand node ตาม constraint เรียก Backtracking search
Breadth – first ได้ solution ที่ depth n อาจได้ solution ซ้ำกันถ้าคำตอบสลับกันได้ Depth – first Depth จำกัด = n ใช้เนื้อที่และเวลาน้อย
Backtracking Search
Depth-first เป็น uninformed search เราสามารถเพิ่มประสิทธิภาพได้จากการจัดลำดับ หรือ ขจัด solution ที่ไม่น่าป็นไปได้ จัดเป็น informed search ด้วย heuristics
Most-constraint Heuristic หรือ minimum remaining values heuristic จะเลือก assign variable ที่มี set of value น้อยที่สุดก่อน หรือ variable ที่มี constraints มากสุดก่อน
Least-constraint Heuristic จะเลือก assign variable ให้มี constraints กับ variables ที่เหลือน้อยที่สุด
Forward checking Heuristic จะ keep track ค่าที่เป็นไปได้ของแต่ละ variable จะ backtrack เมื่อ variable ใดอันหนึ่งไม่มีค่าที่จะเป็นไปได้
Constraint Propagation Method Idea: การนำเอา constraints มาประกอบกันจะช่วยให้ลดจำนวน node ได้
Arc Consistency Heuristic เป็นวิธีการ propagate constraints แบบหนึ่ง จะมี list ของ constraints ทั้งหมดไว้ โดยทั่วไป จะเป็น Queue แล้วจะทำการ check ทีละอัน หลังจากนั้นจะทำการขจัด domain ของ variable ที่เป็นไปไม่ได้ทิ้ง วิธีนี้จะทำให้ทราบล่วงหน้าเมื่อ variable assignment ใช้ไม่ได้
for every value of X, some value of Y must be true กฏ for every value of X, some value of Y must be true OK!
for every value of X, some value of Y must be true กฏ for every value of X, some value of Y must be true NSW = blue ทำให้ SA = ?? ดังนั้นตัด NSW = blue ออก
Blue ใน NSW ไป รัฐที่มี constraints ต้องมา check ใหม่
พบว่า detect error ได้ก่อน forward checking ธรรมดา
Arc Consistency Algorithm (AC3)
Tree-Structure CSPs Problem ที่มี constraint graph เป็น tree (ไม่เป็น loop) จะมีขั้นตอนการ solve ที่แน่นอนตายตัว จะทำให้ลดเวลาในการคิดอย่างมาก
Nearly Tree-Structured CSPs จะทำได้โดยให้ค่า SA fix ไปเลย แล้วตัดออกไป ถ้าไม่ได้ก็ลองเปลี่ยนค่า SA ใหม่