COS3109 Artificial Intelligence (AI)
COS3109 Artificial Intelligence (AI)
COS3109 Artificial Intelligence (AI)
10
11
12
13
Intelligent behavior
• Learn or understand from experience
• Make sense out of ambiguous or
contradictory message
• Respond quickly and successfully to a
new situation
• Use reason in solving problems and
directing conduct effectively
• Deal with perplexing situations
14
15
17
ตัวอย่ างหุ่นยนต์
18
1 Games
- Chess
- Backgammon
- Go
2 Mathematics
- Geometry
- Logic
- Integral calculus
20
21
ฐานองค์ ความรู้
ข้ อเท็จจริง (Facts) (Knowledge Based)
ผู้ใช้
(USER) กลไกวินิจฉัยสรุปความ
ความเชี่ยวชาญ
(Expertise) (Inference Engine)
22
23
27
28
29
การแก้ปัญหาด้วยเทคนิคทางปัญญาประดิษฐ์
การกําหนดนิยามของปัญหาคนโทนํา้
1. ค่าของโอกาสต่างๆ ที่จะเกิดขึ้นในแต่ละสถานะ กําหนดให้ ตัวแปร
x แทนปริ มาณนํ้าในคนโทนํ้าใบแรก และ y แทนปริ มาณนํ้าใน
คนโทใบที่สอง
จะได้วา่ x = 0, 1, 2, 3, 4 (ใบแรกความจุ 4 ลิตร)
y = 0, 1, 2, 3 (ใบที่สองความจุ 3 ลิตร)
การกําหนดนิยามของปัญหาคนโทนํา้ (ต่ อ)
3. กฎที่อธิ บายปัญหานั้นๆ
- ใส่ น้ าํ ในคนโทใบแรกจนเต็ม
- ใส่ น้ าํ ในคนโทใบที่สองจนเต็ม
- เทนํ้าบางส่ วนออกจากคนโทใบแรก
- เทนํ้าบางส่ วนออกจากคนโทใบที่สอง
เปลี่ยนกฎให้เป็ นเงื่อนไขที่ง่ายต่อการนําไปใช้จะได้ดงั นี้
10
ข้ อสั งเกตในการกําหนดนิยามของปัญหา
1. การเขียนกฎมีองค์ประกอบพื้นฐานอย่างน้อย 2 ส่ วนคือ
• ส่ วนที่ใช้ตรวจสอบเงื่อนไข (condition)
• ข้อสรุ ป (conclusion)
ส่ วนเงื่อนไข -> ส่ วนข้อสรุ ป
เช่น (X,Y: X < 4) -> (4,Y)
ภายใต้เงื่อนไขของ X และ Y ที่มี X น้อยกว่า 4 ลิตร (X,Y: X < 4) จะ
สรุ ปว่ามีน้ าํ อยู่ 4 ลิตรในคนโทใบแรกและมีน้ าํ ไม่ทราบจํานวนใน
คนโทใบที่สอง (4,Y)
• กฎการผลิต (Production rule)
12
13
ขั้นตอนการเลือกกฏแสดงด้วยโครงสร้างต้นไม้
สถานะเริ่ มต้น
การหาเหตุผลแบบเดินหน้ า (Forward Reasoning)
14
2. 0 3 2
3. 3 0 9
4. 3 3 2
5. 4 2 7
6. 0 2 5
7. 2 0 9 สถานะสิ้ นสุ ด
15
17
18
19
A D E
Nodes = {A,B,C,D,E} B C
Arcs = {(A,B),(C,B), (C,D), (D,A), (E,C), (E,D)} 20
B C D
E F 21
2. Backward reasoning A B C
เป้ าหมาย+ การใช้กฏ-> จุดเริ่ มต้น
E สถานเริ่ มต้น 22
23
4. กระบวนการในการเลือกกฏ
การทําดัชนี (Indexing) จะเหมาะสมสําหรับการแสดงความรู ้ใน
ระบบการผลิต ที่วิธีการเปลี่ยนสถานะต่างๆได้ถูกกําหนดไว้เป็ น
เงื่อนไขไว้ก่อน
• หากฎทุกข้อที่มีส่วนของเงื่อนไขตรงกับเงื่อนไขที่วางเอาไว้ใน
สถานะปัจจุบนั แล้วดึงเอากฎทุกข้อนั้นออกมาเปรี ยบเทียบหา
คําตอบ
24
25
26
B C
D E F G 27
Breadth-First
1
Search (ตัวอย่ าง)
A
CB
2 3 A 4
C
ACB CB A
B
B B C C B
AC AC AB AB A
5 6 7 8 9 C
C A
B B
A C
10 11
(Goal)
30
31
32
2
A C B
A B
C B A C
3 5
B B
A A C 6
C
4
A
B (Goal)
C
33
34
35
แบบฝึ กหัด
มีพระ 3 รู ป และคนป่ า 3 คนมาถึงฝั่งแม่ นํา้ ต้ องการจะข้ ามไปยังฝั่ง
ตรงข้ าม โดยใช้ เรื อหนึ่งลํา แต่ ละรอบบรรทุกได้ ครั้ งละสองคน ซึ่ ง
ต้ องมีคนพายเรืออยู่หนึ่งคน ในแต่ ละฝั่งของแม่ นํา้ หากมีจํานวนคน
ป่ ามากกว่ าพระ พระจะถูกกิน จงหาวิธีข้ามแม่ นํ้าไปยังฝั่งตรงข้ าม
โดยให้ ท้งั หมดไปถึงและไม่ ให้ พระถูกคนป่ ากิน
36
37
Q&A
38
1
A A
A B CB
C B C
-1 -1 A -1
C
ACB CB A
B
B B C C B
AC AC AB AB
h1: Heuristic Function คือ บวก 1 แต้ม
A
C
-1 1 -3 -3 -1
ให้กบั ทุก Block ที่วางอยูบ่ นสิ่ งที่ C A
มันควรอยู่ และลบหนึ่งแต้มถ้าไม่ใช่ B
A
B
C
-3 3
(Goal)
Hill Climbing
Steepest-Ascent Hill-Climbing
การทํางานคล้ าย Hill-Climbing แต่ตา่ งตรงที่ steepest-ascent จะสร้ างโหนดลูก
ทุกตัวออกมาก่อน แล้ วค่อยเลือกตัวที่ดีที่สดุ ของลูกทังชุ
้ ด
1. ตรวจสอบสถานะเริ่ มต้ น ถ้ าสถานะเริ่มต้ นนี ้คือสถานะเป้าหมาย ให้ แสดง
คําตอบและยกเลิกการทํางาน แต่ถ้าสถานะเริ่มต้ นไม่ใช่สถานะเป้าหมาย
ให้ เปลี่ยนสถานะนี ้เป็ นสถานะปั จจุบนั และทําต่อข้ อ 2
2. ทําตามกระบวนการข้ างล่างนี ้จนกว่าจะพบคําตอบ หรื อจนกระทัง่ คาดว่า
ไม่สามารถหาคําตอบได้
2.1 ให้ BVAL เป็ นสถานะที่ไม่วา่ สถานะลูกใดๆที่เกิดใหม่จะต้ องดีกว่า
สถานะนี ้
ลักษณะของ Hill-Climbing
อาจไม่พบคําตอบ เนื่องจาก Heuristic Function ไม่ดี
ALGORITHM: Best-First
Search
Best-First Search Algorithm
1. OPEN = {initial state}
2. UNTIL (พบ goal state หรื อ ไม่มี state อยูใ่ น OPEN ) DO
2.1 ดึง state ที่ heuristic ที่มีคา่ ดีที่สดุ ออกจาก OPEN
2.2 สร้ างโหนดลูกทุกโหนดของ state นัน้
2.3 สําหรับโหนดลูกแต่ละตัว
2.3.1 IF โหนดลูก ยังไม่เคยถูกสร้ างขึ ้นมาเลย THEN
เติม โหนดลูกนันใน ้ OPEN และจํา parent state ไว้
2.3.2 IF โหนดลูกนันเคยถู้ กสร้ างขึ ้นมาแล้ วและ path ใหม่นี ้ดีกว่าเดิม
THEN เปลี่ยน parent state และ update cost ใหม่
10
step1
B 3 C 5 D 1 B 3 C 5 D 1
step2
step3 E 4 F 6
A A
B 3 C 5 D 1 B 3 C 5 D 1
step5
G 6 H 5 E 4 F 6 G 6 H 5 E 4 F 6
step4
I 2 J 1
11
g h'
A* Algorithm (cont’d)
1. ถ้า g(n) คือค่า cost ของทางเดินที่เหมาะสมจากโหนดเริ่ มต้นถึงโหนดปั จจุบนั (n)
ดังนั้นในภาวะเริ่ มต้น g(เริ่ มต้น) = 0 และให้ OPEN เป็ นรายการของโหนด ซึ่ ง
ในภาวะเริ่ มต้นนี้จะมีเฉพาะโหนดเริ่ มต้นเท่านั้นให้หาค่า h’(เริ่ มต้น)
2. เลือกโหนด N ที่อยูใ่ นรายการของ OPEN ที่มีค่าของ [g(n) + h’(n)] น้อยที่สุด ถ้า
N คือโหนดเป้ าหมาย ทางเดินของ N คือทางเดินเป้ าหมายที่เหมาะสม ซึ่ งมีค่า
cost เท่ากับ g(N) ถ้าหากว่าใน OPEN ไม่มีโหนดอยูเ่ ลยแสดงว่าไม่มีทางเดิน
เป้ าหมายในกราฟนี้
3. ย้าย N ออกจาก OPEN หาโหนดลูกทั้งหมดของ N แล้วเพิ่มเข้าไปในรายการ
ของ OPEN และสําหรับทุกๆโหนดของโหนดลูก (S) ให้หาค่า g(s) จาก
g(s) = g(N) + ค่า cost จาก N ถึง S
4. ย้อนกลับไปทําขั้นตอนที่ 2
14
15
Straight-line
Distance
17
A* search example
18
A* search example
20
21
A* search example
22
23
1
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
วิธ ีก ารแสดงความรู้ ท างตรรกศาสตร์
•ลักษณะและข้อสังเกต
- แสดงค่าความจริ ง/เท็จ เท่านั้น
- สัญลักษณ์ P,Q แทนประโยคทางตรรกศาสตร์
- ลําดับของความหมายในประโยคถูกกําหนดด้วยวงเล็บ
- ประโยคที่ซบั ซ้อนถูกสร้างโดย นําเอาประโยคความเดียว หลายๆ
ประโยคมารวมกัน เช่น ( P (Q R)) (R P)
2
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
Propositional logic: Syntax
• Propositional logic is the simplest logic – illustrates
basic ideas
• The proposition symbols S, S1 and S2 are sentences
– If S is a sentence, S is a sentence
– If S1 and S2 are sentences, S1 S2 is a sentence
BNF(Backus-Naur Form)
Sentence -> AtomicSentence
| ComplexSentence
AtomicSentence -> True | False | Symbol
Symbol -> P | Q | R | . . .
ComplexSentence -> Sentence
| (Sentence Sentence)
| (Sentence Sentence)
| (Sentence Sentence)
| (Sentence Sentence)
3
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
Logical equivalence
ตัวอย่ าง
ตัวอย่างของประโยคทัว่ ไปที่แสดงเป็ นประโยคทางตรรกศาสตร์
This car is red P
This telephone is red Q
If the car is red and the telephone is red then I’m happy P^Q->R
4
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
การตรวจสอบค่ าความจริงในการแสดงความรู้แ บบเพรดดิเ คต
การตรวจสอบค่ าความจริง
ภาพ แสดงการตรวจสอบค่าความจริงในการแสดงความรู้
แบบต่างๆ
9
10
5
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
อํานาจจําแนก (Resolution)
winter summer
~winter cold
winter หรื อ ~winter เป็ นจริ งที่ใดที่หนึ่งเท่านั้น ลดรู ปได้ summer cold
ถูกใช้เพื่อการหาค่าความจริ งของกลุ่มของประพจน์ในการแสดงความรู ้แบบ
Propositional Logic
มีข้ นั ตอนดังนี้
1. แต่ละประพจน์ของ F ( F เป็ นเซ็ตของประพจน์) จะต้องถูกทําให้อยูใ่ นรู ปของอนุ
ประโยค (Clause form)
Clause form คือ รู ปของประโยคที่เชื่อมกันด้วยเครื่ องหมาย “และ” หรื อ ”หรื อ” เช่น
P->Q ทําให้อยูใ่ นรู ป Clause form จะได้ ~PVQ
2. ทํา S ( S เป็ นประโยคที่ตอ้ งการทดสอบค่าความจริ ง) ให้เป็ นอนุประโยคและ
เปลี่ยนให้เป็ นค่า Negation (~S)
3. ทําตามขั้นตอนดังแสดงนี้
11
a b a b
(p) p
(a b) a b
(a b) a b
12
6
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
Conversion to clause form
α β : B1,1 (P1,2 P2,1)
ตัวอย่างของวิธี Resolution
ฐานความรู ้ ของ Propositional Logic
ลําดับ ประพจน์ รูปอนุประโยค
1 P P
2 (P^Q)->R ~P V ~Q V R
3 T->Q ~T V Q
4 T T ต้ องการพิสจู น์วา่ R เป็ นจริงหรื อไม่
โดยเปลี่ยนเป็ น ~R
~PV~QVR (2)
~R สมมติฐาน
~PV~Q resolvent
P (1)
~Q resolvent
~T V Q (3)
~T resolvent
T (4)
14
7
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
Q&A
15
8
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
การแสดงความรู้ ใ นปั ญญาประดิษฐ์
การแสดงความรู้ด้วย เพรดดิเคตลอจิก
การแสดงความรู้ด้วย เพรดดิเคตลอจิก
เนื่องจากการแสดงความรู้ด้วยวิธี Propositional Logic ไม่สามารถ
อธิบายความจริ งในโลกความเป็ นจริงได้ ทงหมด ั้ และยังไม่สามารถอธิบาย
ความสัมพันธ์ของสิง่ ต่างๆได้ ดังนันจึ
้ งมีการแสดงความรู้อีกแบบหนึง่ ที่ชื่อว่า
เพรดดิเคต
เพรดดิเคต หรื อ เพรดดิเคตลอจิก (Predicate Logic) หรื อ เพรดดิเค
ตแคลคูลสั (Predicate Calculus) หรื อ เฟริสท์ออร์ เดอร์ เพรดดิเคตลอจิก
(First-order Predicate Logic) หรื อ เฟริสท์ออร์ เดอร์ ลอจิก (First-order Logic)
หมายถึงวิธีการแสดงความรู้แบบเดียวกันหมด
ประโยคในภาษามนุษย์ ประโยคภาษาตรรกศาสตร์
เรี ยกว่า
ประพจน์ (Proposition)
2
1
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
การแสดงความรู้ด้ วยเพรดดิเ คตลอจิก
1. ชุดตัวอักษร (Alphabet)
- ค่าคงที่
- ตัวแปร
- ฟังก์ชนั (f,g,h) เช่น father(CHAD) พ่อของ CHAD,
mother(father(CHAD)) ย่าของ CHAD
2.เพรดดิเคต (Predicate) คือส่ วนแสดงความสัมพันธ์ของวัตถุต่างๆ เช่น
FATHER(SOMCHAI,SOMSRI)
3. ตัวเชื่อมในเพรดดิเคต (Connective Symbols) เช่นเครื่ องหมาย (, , , , )
หรื อ (V,^,->,=,~)
4. ตัวบ่งปริ มาณ (Quantifier) (, ) หรื อ (for all, for some)
3
5. ภาษาในเพรดดิเคต เรากําลังพิจารณาว่าลักษณะของประโยค
ประพจน์แบบความเดียว (เอกถรรถประโยค หรื อ Atomic) และ ประพจน์
แบบความซ้อน (อเนกถรรถประโยค หรื อ Molecular)
• Atomic Sentence คือประโยคความเดียวโดยสร้างมาจาก Predicate Symbol ตาม
ด้วยเครื่ องหมายวงเล็บและภายในวงเล็บจะเป็ นลําดับของเทอมเช่น
BROTHER(RICHARD,JOHN)
• Molecular Sentence คือประโยคความรวมที่สร้างมาจากประโยคความเดียวมา
รวมกันโดยใช้ตวั เชื่อม
2
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
ตัวอย่ างการแสดงความรู้ในทางตรรกศาสตร์
1. Marcus was a man -> Man(Marcus)
2. Marcus was a Pompeian -> Pompiean(MARCUS)
3. Marcus was born in 40 AD. -> Born(Marcus,40)
4. All man are mortal -> x Man(x) => Mortal(x)
5. All Pompeian died when the vocalno erupted in 79 AD.
Erupted (Volcano,79) x (Pompiean(x) => Dead(x,79))
6. No mortal lives longer than 150 years.
xt1t2 mortal(x) born(x, t1) gt(t2 - t1,150) dead(x, t2)
BNF(Backus-Naur Form)
Sentence -> AtomicSentence
| Sentence Connective Sentence
| Quantifier Variable,... Sentence
|~ Sentence
| (Sentence)
AtomicSentence -> Predicate(Term,…)| Term = Term
Term -> Funtion(Term,…)
| Constant ไวยากรณ์ ข องเพรดดิเ คตลอจิก
| Variable
Connective-> => | and | or | <==>
Quantifier-> for all | | for some |
Constant-> A | X1 | John| …
Variable-> a | x | s | …
Predicate-> Before | HasColor | Raining | …
Function-> Mother | LeftLegOf | Saraly | …
6
3
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
Well-formed formula (wffs)
• รูปแบบที่ถกู ต้ องของการเขียนแสดงความรู้ด้วยเพรดดิเคต
• ดูรูปแบบการเขียนจาก Backus-Naur Form
• ข้ อสังเกต
– Atomic sentence ทุกตัวเป็ น wffs
– Molecular sentence เป็ น wffs ก็ตอ่ เมื่อ แต่ละองค์ประกอบเป็ น wffs เช่น
(~F), (F V G), (F^G), (F->G) เมื่อ F และ G เป็ นประโยคที่เป็ น wffs
– Function เป็ นเทอมใน Predicate ได้ แต่ Predicate ไม่เป็ นเทอมของ
Function
– Predicate ไม่เป็ นเทอมใน Predicate อื่น เช่น
Hotel(Expensive-than(PangSaunKaew, Maeping)) ไม่เป็ น wffs
การตรวจสอบค่ าความจริง
ภาพ แสดงการตรวจสอบค่าความจริงในการแสดงความรู้
แบบต่างๆ
8
4
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
ยูน ิฟิ เคชัน (Unification)
• ตัวแปรเหมือนกัน อาจมีความหมายไม่เหมือนกัน เช่น Man(x) และ
~Man(x)
• และ ตัวแปร สามารถแทนที่ให้เป็ นค่าคงที่ได้ เช่น
Brother(x,John) กับ Brother(Richard,John)
• ดังนั้น จึงต้องการแทนที่ ตัวแปรด้วยค่าคงที่ เพื่อการพิสูจน์ผล
• เพรดดิเคต P(x,f(y),B) อาจมีรูปเป็ นแบบอื่นๆ ได้อีก เช่น P(z,f(w),B)
หรื อ P(C,f(A),B)
ดังนั้นเราจะรู ้ได้อย่างไรว่า เพรดดิเคตเหล่านี้คือสิ่ งเดียวกัน
9
10
5
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
ยูน ิฟิ เคชัน (Unification)
ตัวอย่าง
Hate(x,y)
Hate(MARCUS,z)
ต่อไปนี ้คือ Unification
s1 = {Marcus/x, z/y}
s2 = {Marcus/x,y/z}
s3 = {Marcus/x, Caesar/y, Caesar/z}
11
6
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
การแปลง Complex Sentence ให้ เ ป็ น Clause form
Predicate ที่ให้ มา
(x) { P(x) { (y) [P(y) P(f(x,y))] ^ ~(y)[Q(x,y) P(y)]}}
1. Eliminate implication symbols: เปลีย่ นรูปของ x y เป็ น ~x V y
(x) { ~P(x) V { (y) [~P(y) V P(f(x,y))] ^ ~(y)[~Q(x,y) V P(y)]}}
2. Reduce scope of negation symbols
(x) { ~P(x) V { (y) [~P(y) V P(f(x,y))] ^ (y)[Q(x,y) ^ ~P(y)]}}
3. Standardize variables: เปลีย่ นชื่อของตัวแปร ตาม scope ของ quantifiers
(x) { ~P(x) V { (y) [~P(y) V P(f(x,y))] ^ (w)[Q(x,w) ^ ~P(w)]}}
4. Eliminate existential quantifiers: แทนค่าตัวแปรด้ วย Skolem function
(x) { ~P(x) V { (y) [~P(y) V P(f(x,y))] ^ [Q(x,g(x)) ^ ~P(g(x))]}}
13
14
7
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
การแปลง Complex Sentence ให้ เ ป็ น Clause form (ต่ อ )
7. Eliminate universal quantifier: เราสามารถตัด universal
quantifier ทิ ้งได้ เลยเพราะรู้วา่ ตัวแปรทุกตัวเป็ นของ universal
quantifier
8. Eliminate ^ symbols: แทน (X1^X2^…^Xn) ด้ วยเซ็ต {X1,X2, ...,Xn} โดยที่
Xiใดๆ เป็ น disjunction of literal หรื อ clause จากตัวอย่างจะได้ 3 clauses
(1) ~P(x) V ~P(y) V P(f(x,y)) (2) ~P(x) V Q(x,g(x))
(3) ~P(x) V ~P(g(x))
9. Rename variables: ไม่ให้ variables หนึง่ ๆ ปรากฏในหลายๆ clauses
(1) ~P(x1) V ~P(y) V P(f(x1,y)) (2) ~P(x2) V Q(x2,g(x2))
(3) ~P(x3) V ~P(g(x3))
15
8
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.
ตัวอย่างการใช้ Resolution ร่ วมกับ Unification (ต่ อ )
~ Hate(Marcus,Ceasar) 5
Marcus/x2
3 ~Roman(Marcus) V Loyalto(Marcus,Caesar)
Marcus/x1
~Pompeian(Marcus) V Loyalto(Marcus,Ceasar) 2
7 Loyalto(Marcus,Caesar)
Marcus/x4, Caesar/y1
1 ~Man(Marcus) V ~ Ruler(Caesar) V~Tryassassinate(Marcus,Caesar)
~Ruler(Caesar) V ~ Tryassassinate(Marcus,Caesar) 4
~ Tryassassinate(Marcus,Caesar) 8
17
Q&A
18
9
COS3109 Artificial Intelligence Atchara Mahaweerawat, Ph.D.