SlideShare a Scribd company logo
1 of 68
Download to read offline
Trí Tuệ Nhân Tạo
(Artificial Intelligence)
Viện Công nghệ thông tin và Truyền thông
Trường Đại học Bách Khoa Hà Nội
Năm học 2016
Thân Quang Khoát
khoattq@soict.hust.edu.vn
Nội dung môn học:
n  Giới thiệu về Trí tuệ nhân tạo
n  Tác tử
n  Giải quyết vấn đề: Tìm kiếm, Thỏa mãn ràng buộc
q  Tìm kiếm với tri thức bổ sung (Informed search)
n  Logic và suy diễn
n  Biểu diễn tri thức
n  Biểu diễn tri thức không chắc chắn
n  Học máy
2
Trí tuệ nhân tạo
Nhắc lại: Tìm kiếm theo cấu trúc cây
n  Một chiến lược (phương pháp) tìm kiếm = Một cách xác định
thứ tự xét các nút của cây
3
Trí tuệ nhân tạo
Tìm kiếm với tri thức bổ sung
n  Các chiến lược tìm kiếm cơ bản (uninformed search
strategies) chỉ sử dụng các thông tin chứa trong định nghĩa
của bài toán
q  Không phù hợp với nhiều bài toán thực tế (do đòi hỏi chi phí quá
cao về thời gian và bộ nhớ)
n  Các chiến lược tìm kiếm với tri thức bổ sung (informed search
strategies) sử dụng các tri thức cụ thể của bài toán → Quá
trình tìm kiếm hiệu quả hơn
q  Các giải thuật tìm kiếm best-first (Greedy best-first, A*)
q  Các giải thuật tìm kiếm cục bộ (Hill-climbing, Simulated annealing,
Local beam, Genetic algorithms)
q  Các giải thuật tìm kiếm đối kháng (MiniMax, Alpha-beta pruning)
4
Trí tuệ nhân tạo
Best-first search
n  Ý tưởng: Sử dụng một hàm đánh giá f(n) cho mỗi nút của
cây tìm kiếm
q  Để đánh giá mức độ “phù hợp” của nút đó
à  Trong quá trình tìm kiếm, ưu tiên xét các nút có mức độ phù hợp
cao nhất
n  Cài đặt giải thuật
q  Sắp thứ tự các nút trong cấu trúc fringe theo trật tự giảm dần về
mức độ phù hợp
n  Các trường hợp đặc biệt của giải thuật Best-first search
q  Greedy best-first search
q  A* search
5
Trí tuệ nhân tạo
Greedy best-first search
n  Hàm đánh giá f(n) là hàm heuristic h(n)
n  Hàm heuristic h(n) đánh giá chi phí để đi từ nút hiện tại n
đến nút đích (mục tiêu)
n  Ví dụ: Trong bài toán tìm đường đi từ Arad đến
Bucharest, sử dụng: hSLD(n) = Ước lượng khoảng cách
đường thẳng (“chim bay”) từ thành phố hiện tại n đến
Bucharest
n  Phương pháp tìm kiếm Greedy best-first search sẽ xét
(phát triển) nút “có vẻ” gần với nút đích (mục tiêu) nhất
6
Trí tuệ nhân tạo
Greedy best-first search – Ví dụ (1)
7
Trí tuệ nhân tạo
Greedy best-first search – Ví dụ (2)
8
Trí tuệ nhân tạo
Greedy best-first search – Ví dụ (3)
9
Trí tuệ nhân tạo
Greedy best-first search – Ví dụ (4)
10
Trí tuệ nhân tạo
Greedy best-first search – Ví dụ (5)
11
Trí tuệ nhân tạo
Greedy best-first search – Các đặc điểm
n  Tính hoàn chỉnh?
q  Không – Vì có thể vướng (chết tắc) trong các vòng lặp kiểu như:
Iasi à Neamt à Iasi à Neamt à…
n  Độ phức tạp về thời gian?
q  O(bm)
q  Một hàm heuristic tốt có thể mang lại cải thiện lớn
n  Độ phức tạp về bộ nhớ?
q  O(bm) – Lưu giữ tất cả các nút trong bộ nhớ
n  Tính tối ưu?
q  Không
12
Trí tuệ nhân tạo
A* search
n  Ý tưởng: Tránh việc xét (phát triển) các nhánh tìm kiếm
đã xác định (cho đến thời điểm hiện tại) là có chi phí cao
n  Sử dụng hàm đánh giá f(n) = g(n) ⊕ h(n)
q  g(n) = chi phí từ nút gốc cho đến nút hiện tại n
q  h(n) = chi phí ước lượng từ nút hiện tại n tới đích
q  f(n) = chi phí tổng thể ước lượng của đường đi qua nút hiện tại n
đến đích
13
Trí tuệ nhân tạo
A* search – Ví dụ (1)
14
Trí tuệ nhân tạo
A* search – Ví dụ (2)
15
Trí tuệ nhân tạo
A* search – Ví dụ (3)
16
Trí tuệ nhân tạo
140+140+366 99+140+176 151+140+380 80+140+193
A* search – Ví dụ (4)
17
Trí tuệ nhân tạo
> 415> 415 > 415
=> xét đến nút thứ 2 là Fagaras
A* search – Ví dụ (5)
18
Trí tuệ nhân tạo
xét đến thằng này do nó có chi phí
f(n) nhỏ nhất
A* search – Ví dụ (6)
19
Trí tuệ nhân tạo
A* search – Các đặc điểm
n  Nếu không gian các trạng thái là hữu hạn và có giải
pháp để tránh việc xét (lặp) lại các trạng thái, thì giải
thuật A* là hoàn chỉnh (tìm được lời giải) – nhưng không
đảm bảo là tối ưu
n  Nếu không gian các trạng thái là hữu hạn và không có
giải pháp để tránh việc xét (lặp) lại các trạng thái, thì giải
thuật A* là không hoàn chỉnh
n  Nếu không gian các trạng thái là vô hạn, thì giải thuật A*
là không hoàn chỉnh
n  Khi nào thì A* tối ưu?
20
Trí tuệ nhân tạo
Các ước lượng chấp nhận được
n  Một ước lượng h(n) được xem là chấp nhận được nếu
đối với mọi nút n: 0 ≤ h(n) ≤ h*(n), trong đó h*(n) là chi phí
thật (thực tế) để đi từ nút n đến đích
n  Một ước lượng chấp nhận được không bao giờ đánh giá
quá cao (overestimate) đối với chi phí để đi tới đích
q  Thực chất, ước lượng chấp nhận được có xu hướng đánh giá
“lạc quan”
n  Ví dụ: Ước lượng hSLD(n) đánh giá thấp hơn khoảng
cách đường đi thực tế
n  Định lý: Nếu h(n) là đánh giá chấp nhận được, thì
phương pháp tìm kiếm A* sử dụng giải thuật TREE-
SEARCH là tối ưu
21
Trí tuệ nhân tạo
Tính tối ưu của A* - Chứng minh (1)
n  Giả sử có một đích không tối ưu (suboptimal goal) G2 được sinh ra
và lưu trong cấu trúc fringe. Gọi n là một nút chưa xét trong cấu trúc
fringe sao cho n nằm trên một đường đi ngắn nhất đến một đích tối
ưu (optimal goal) G
n  Ta có: 1) f(G2) = g(G2) vì h(G2) = 0
n  Ta có: 2) g(G2) > g(G) vì G2 là đích không tối ưu
n  Ta có: 3) f(G) = g(G) vì h(G) = 0
n  Từ 1)+2)+3) suy ra: 4) f(G2) > f(G)
22
Trí tuệ nhân tạo
Tính tối ưu của A* - Chứng minh (2)
n  Ta có: 5) h(n) ≤ h*(n) vì h là ước lượng chấp nhận được
n  Từ 5) suy ra: 6) g(n) + h(n) ≤ g(n) + h*(n)
n  Ta có: 7) g(n) + h*(n) = f(G) vì n nằm trên đường đi tới G
n  Từ 6)+7) suy ra: 8) f(n) ≤ f(G)
n  Từ 4)+8) suy ra: f(G2) > f(n). Tức là, giải thuật A* không bao giờ xét G2
23
Trí tuệ nhân tạo
5
Các ước lượng chấp nhận được (1)
Ví dụ đối với trò chơi ô chữ 8 số:
n  h1(n) = số các ô chữ nằm ở sai vị trí (so với vị trí của ô chữ đấy ở
trạng thái đích)
n  h2(n) = khoảng cách dịch chuyển (←,→,↑,↓) ngắn nhất để dịch
chuyển các ô chữ nằm sai vị trí về vị trí đúng
n  h1(S) = ?
n  h2(S) = ?
24
Trí tuệ nhân tạo
Các ước lượng chấp nhận được (2)
Ví dụ đối với trò chơi ô chữ 8 số:
n  h1(n) = số các ô chữ nằm ở sai vị trí (so với vị trí của ô chữ đấy ở
trạng thái đích)
n  h2(n) = khoảng cách dịch chuyển (←,→,↑,↓) ngắn nhất để dịch
chuyển các ô chữ nằm sai vị trí về vị trí đúng
n  h1(S) = 8
n  h2(S) = 3+1+
2+2+
2+3+
3+2 = 18
25
Trí tuệ nhân tạo
3
1
2
Ước lượng ưu thế
n  Ước lượng h2 được gọi là ưu thế hơn / trội hơn (dominate) ước
lượng h1 nếu:
q  h*(n) ≥ h2(n) ≥ h1(n) đối với tất cả các nút n
n  Nếu ước lượng h2 ưu thế hơn ước lượng h1, thì h2 tốt hơn (nên
được sử dụng hơn) cho quá trình tìm kiếm
n  Trong ví dụ (ô chữ 8 số) ở trên: Chi phí tìm kiếm = Số lượng trung
bình của các nút phải xét:
q  Với độ sâu d =12
n  IDS (Tìm kiếm sâu dần): 3.644.035 nút phải xét
n  A*(sử dụng ước lượng h1): 227 nút phải xét
n  A*(sử dụng ước lượng h2): 73 nút phải xét
q  Với độ sâu d =24
n  IDS (Tìm kiếm sâu dần): Quá nhiều nút phải xét
n  A*(sử dụng ước lượng h1): 39.135 nút phải xét
n  A*(sử dụng ước lượng h2): 1.641 nút phải xét
26
Trí tuệ nhân tạo
Các ước lượng kiên định
n  Một ước lượng h được xem là kiên định (consistent), nếu với mọi nút
n và với mọi nút tiếp theo n' của n (được sinh ra bởi hành động a):
h(n) ≤ c(n,a,n') + h(n')
n  Nếu ước lượng h là kiên định, ta có:
f(n') = g(n') + h(n')
= g(n) + c(n,a,n') + h(n')
≥ g(n) + h(n) = f(n)
Nghĩa là: f(n) không giảm trong bất kỳ đường đi (tìm kiếm) nào
đi qua n
n  Định lý: Nếu h(n) là kiên định, thì phương pháp tìm kiếm A* sử
dụng giải thuật GRAPH-SEARCH là tối ưu
27
Trí tuệ nhân tạo
Các đặc điểm của A*
n  Tính hoàn chỉnh?
q  Có (trừ khi có rất nhiều các nút có chi phí f ≤ f(G) )
n  Độ phức tạp về thời gian?
q  Bậc của hàm mũ – Số lượng các nút được xét là hàm mũ của độ
dài đường đi của lời giải
n  Độ phức tạp về bộ nhớ?
q  Lưu giữ tất cả các nút trong bộ nhớ
n  Tính tối ưu?
q  Có
28
Trí tuệ nhân tạo
A* vs. UCS
29
Trí tuệ nhân tạo
n  Tìm kiếm với chi phí cực
tiểu (UCS) phát triển theo
mọi hướng
n  Tìm kiếm A* phát triển chủ yếu
theo hướng tới đích, nhưng
đảm bảo tính tối ưu
Các giải thuật tìm kiếm cục bộ
n  Trong nhiều bài toán tối ưu, các đặc điểm thường phức
tạp và ta không thể tìm được lời giải tối ưu.
q  Trạng thái đích = Lời giải của bài toán phải thoả mãn ràng buộc
nào đó.
n  Ví dụ: Bài toán n quân hậu (bố trí n quân hậu trên một bàn cờ kích
thước nxn, sao cho các quân hậu không ăn nhau)
q  Bài toán tối ưu có nhiều điểm cực trị địa phương.
n  Trong những bài toán như thế, chúng ta có thể sử dụng
các giải thuật tìm kiếm cục bộ
n  Tại mỗi thời điểm, chỉ lưu một trạng thái “hiện thời" duy
nhất. Mục tiêu: cố gắng “cải thiện” trạng thái (cấu hình)
hiện thời này đối với một tiêu chí nào đó (định trước)
30
Trí tuệ nhân tạo
Ví dụ: Bài toán n quân hậu
n  Bố trí n (=4) quân hậu trên một bàn cờ có kích thước
n×n, sao cho không có 2 quân hậu nào trên cùng hàng,
hoặc trên cùng cột, hoặc trên cùng đường chéo
31
Trí tuệ nhân tạo
Tìm kiếm leo đồi – Giải thuật
32
Trí tuệ nhân tạo
Tìm kiếm leo đồi – Bài toán ô chữ
2 8 3
1 6 4
7 5
2 8 3
1 4
7 6 5
2 3
1 8 4
7 6 5
1 3
8 4
7 6 5
2
3
1 8 4
7 6 5
2
1 3
8 4
7 6 5
2
start goal
-5
h = -3
h = -3
h = -2
h = -1
h = 0h = -4
-5
-4
-4-3
-2
f(n) = -(Số lượng các ô chữ nằm sai vị trí) 33h(n)
(nếu di
chuyển sang
phải)
(nếu di
chuyển sang
trái)
(nếu di chuyển lên trên)
Tìm kiếm leo đồi: bài toán 8 quân hậu (1)
n  Ước lượng h = tổng số các cặp quân hậu ăn nhau, hoặc là trực tiếp
hoặc gián tiếp
n  Trong trạng thái (bàn cờ) trên: h =17
34
Trí tuệ nhân tạo
Tìm kiếm leo đồi: bài toán 8 quân hậu (2)
§  Trạng thái bàn cờ trên là một giải pháp tối ưu cục bộ (a
local minimum)
q  Với ước lượng h =1 (vẫn còn 1 cặp hậu ăn nhau)
35
Trí tuệ nhân tạo
Tìm kiếm leo đồi – Minh họa
n  Nhược điểm: Tùy vào trạng thái đầu, giải thuật tìm kiếm leo đồi có
thể “tắc” ở các điểm cực đại cục bộ (local maxima)
q  Không tìm được lời giải tối ưu toàn cục (global optimal solution)
36
Trí tuệ nhân tạo
Simulated annealing search
n  Dựa trên quá trình tôi ủ (annealing process): Kim loại nguội đi
và lạnh cứng lại thành cấu trúc kết tinh
n  Phương pháp tìm kiếm Simulated Annealing có thể tránh
được các điểm tối ưu cục bộ (local optima)
n  Phương pháp tìm kiếm Simulated Annealing sử dụng chiến
lược tìm kiếm ngẫu nhiên, trong đó chấp nhận các thay đổi
làm tăng giá trị hàm mục tiêu (i.e., cần tối ưu) và cũng chấp
nhận (có hạn chế) các thay đổi làm giảm
n  Phương pháp tìm kiếm Simulated Annealing sử dụng một
tham số điều khiển T (như trong các hệ thống nhiệt độ)
q  Bắt đầu thì T nhận giá trị cao, và giảm dần về 0
37
Trí tuệ nhân tạo
Simulated annealing search: giải thuật
n  Ý tưởng: Thoát khỏi (vượt qua) các điểm tối ưu cục bộ bằng cách
cho phép cả các dịch chuyển “tồi” từ trạng thái hiện thời, nhưng
giảm dần tần xuất của các di chuyển tồi này
38
Trí tuệ nhân tạo
Simulated annealing search: các đặc điểm
n  (Có thể chứng minh được) Nếu giá trị của tham số T (xác
định mức độ giảm tần xuất đối với các di chuyển tồi)
giảm chậm, thì phương pháp tìm kiếm Simulated
Annealing sẽ tìm được lời giải tối ưu toàn cục với xác
suất xấp xỉ 1
n  Phương pháp tìm kiếm Simulated Annealing Search rất
hay được sử dụng trong các lĩnh vực: thiết kế sơ đồ
bảng mạch VLSI, lập lịch bay, …
39
Trí tuệ nhân tạo
Local beam search
n  Ở mỗi thời điểm (trong quá trình tìm kiếm), luôn lưu giữ k
– thay vì chỉ 1 – trạng thái tốt nhất
n  Bắt đầu giải thuật: Chọn k trạng thái ngẫu nhiên
n  Ở mỗi bước tìm kiếm, sinh ra tất cả các trạng thái kế tiếp
của k trạng thái này
n  Nếu một trong số các trạng thái là trạng thái đích, thì giải
thuật kết thúc (thành công); nếu không, thì chọn k trạng
thái tiếp theo tốt nhất (từ tập các trạng thái tiếp theo), và
lặp lại bước trên
40
Trí tuệ nhân tạo
Giải thuật di truyền – Giới thiệu
n  Dựa trên (bắt chước) quá trình tiến hóa tự nhiên trong sinh học
n  Áp dụng phương pháp tìm kiếm ngẫu nhiên (stochastic search)
để tìm được lời giải (vd: một hàm mục tiêu, một mô hình phân
lớp, …) tối ưu
n  Giải thuật di truyền (Generic Algorithm – GA) có khả năng tìm
được các lời giải tốt thậm chí ngay cả với các không gian tìm
kiếm (lời giải) không liên tục rất phức tạp
n  Mỗi khả năng của lời giải được biểu diễn bằng một chuỗi nhị
phân (vd: 100101101) – được gọi là nhiễm sắc thể
(chromosome)
•  Việc biểu diễn này phụ thuộc vào từng bài toán cụ thể
41
Trí tuệ nhân tạo
Giải thuật di truyền – Mô tả
n  Xây dựng (khởi tạo) quần thể (population) ban đầu
•  Tạo nên một số các giả thiết (khả năng của lời giải) ban đầu
•  Mỗi giả thiết khác các giả thiết khác (vd: khác nhau đối với các giá trị của một
số tham số nào đó của bài toán)
n  Đánh giá quần thể
•  Đánh giá (cho điểm) mỗi giả thiết (vd: bằng cách kiểm tra độ chính xác của
hệ thống trên một tập dữ liệu kiểm thử)
•  Trong lĩnh vực sinh học, điểm đánh giá này của mỗi giả thiết được gọi là độ
phù hợp (fitness) của giả thiết đó
•  Xếp hạng các giả thiết theo mức độ phù hợp của chúng, và chỉ giữ lại các giả
thiết tốt nhất (gọi là các giả thiết phù hợp nhất – survival of the fittest)
n  Sản sinh ra thế hệ tiếp theo (next generation)
•  Thay đổi ngẫu nhiên các giả thiết để sản sinh ra thế hệ tiếp theo (gọi là các
con cháu – offspring)
n  Lặp lại quá trình trên cho đến khi ở một thế hệ nào đó có giả thiết tốt nhất có độ
phù hợp cao hơn giá tri phù hợp mong muốn (định trước)
42
Trí tuệ nhân tạo
GA(Fitness, θ, n, rco, rmu)
Fitness: A function that produces the score (fitness) given a hypothesis
θ: The desired fitness value (i.e., a threshold specifying the termination condition)
n: The number of hypotheses in the population
rco: The percentage of the population influenced by the crossover operator at each step
rmu: The percentage of the population influenced by the mutation operator at each step
Initialize the population: H ← Randomly generate n hypotheses
Evaluate the initial population. For each h∈H: compute Fitness(h)
while (max{h∈H}Fitness(h) < θ) do
Hnext ← ∅
Reproduction (Replication). Probabilistically select (1-rco).n hypotheses of
H to add to Hnext.
The probability of selecting hypothesis hi from H is:
∑=
= n
j
j
i
i
)Fitness(h
)Fitness(h
)P(h
1
43
Trí tuệ nhân tạo
GA(Fitness, θ, n, rco, rmu)
…
Crossover.
Probabilistically select (rco.n/2) pairs of hypotheses from H, according to
the probability computation P(hi) given above.
For each pair (hi, hj), produce two offspring (i.e., children) by applying
the crossover operator. Then, add all the offspring to Hnext.
Mutation.
Select (rmu.n) hypotheses of Hnext, with uniform probability.
For each selected hypothesis, invert one randomly chosen bit (i.e., 0 to 1,
or 1 to 0) in the hypothesis’s representation.
Producing the next generation: H ← Hnext
Evaluate the new population. For each h∈H: compute Fitness(h)
end while
return argmax{h∈H}Fitness(h)
44
Trí tuệ nhân tạo
Giải thuật di truyền – Minh họa
[Duda et al., 2000]
45
Trí tuệ nhân tạo
Các toán tử di truyền
n 3 toán tử di truyền được sử dụng để sinh ra các cá thể con cháu
(offspring) trong thế hệ tiếp theo
•  Nhưng chỉ có 2 toán tử lai ghép (crossover) và đột biến (mutation) tạo nên
sự thay đổi
n Tái sản xuất (Reproduction)
→ Một giả thiết được giữ lại (không thay đổi)
n Lai ghép (Crossover) để sinh ra 2 cá thể mới
→ Ghép (“phối hợp") của hai cá thể cha mẹ
•  Điểm lai ghép được chọn ngẫu nhiên (trên chiều dài của nhiễm sắc thể)
•  Phần đầu tiên của nhiễm sắc thể hi được ghép với phần sau của nhiễm
sắc thể hj, và ngược lại, để sinh ra 2 nhiễm sắc thể mới
n Đột biến (Mutation) để sinh ra 1 cá thể mới
→ Chọn ngẫu nhiên một bit của nhiễm sắc thể, và đổi giá trị (0→1 / 1→0)
•  Chỉ tạo nên một thay đổi nhỏ và ngẫu nhiên đối với một cá thể cha mẹ!
46
Trí tuệ nhân tạo
Các toán tử di truyền – Ví dụ
[Mitchell, 1997]
11101001000
00001010101
11111000000
(crossover mask)
11101010101
00001001000
Lai ghép tại
1 điểm:
Tái sản xuất: 11101001000 11101001000
11101001000
00001010101
11001011000
00101000101
Lai ghép tại
2 điểm:
00111110000
(crossover mask)
Đột biến: 11101001000 11101011000
Cha mẹ – Thế hệ
hiện tại
Con cháu– Thế
hệ tiếp theo
47
Trí tuệ nhân tạo
Toán tử lai ghép – Ví dụ
Bài toán bố trí 8 quân hậu trên bàn cờ - Toán tử lai ghép
(crossover)
48
Trí tuệ nhân tạo
Tìm kiếm có đối thủ
n  Các thủ tục tìm kiếm sâu dần (IDS) và tìm kiếm A* hữu
dụng đối với các bài toán (tìm kiếm) liên quan đến một
tác tử
n  Thủ tục tìm kiếm cho các bài toán liên quan đến 2 tác tử
có mục tiêu đối nghịch nhau (xung đột với nhau)?
q  Tìm kiếm có đối thủ (Adversarial search)
n  Phương pháp tìm kiếm có đối thủ được áp dụng phổ biến
trong các trò chơi (games)
49
Trí tuệ nhân tạo
Các vấn đề của tìm kiếm trong trò chơi
n  Không thể dự đoán trước được phản ứng của đối thủ
q  Cần xác định (xét) một nước đi phù hợp đối với mỗi phản ứng
(nước đi) có thể của đối thủ
n  Giới hạn về thời gian (trò chơi có tính giờ)
q  Thường khó (hoặc không thể) tìm được giải pháp tối ưu → Xấp xỉ
n  Tìm kiếm có đối thủ đòi hỏi tính hiệu quả (giữa chất
lượng của nước đi và thời gian chi phí) – Đây là một yêu
cầu khó khăn
n  Nguyên tắc trong các trò chơi đối kháng
q  Một người chơi thắng = Người chơi kia thua
q  Mức độ (tổng điểm) thắng của một người chơi = Mức độ (tổng
điểm) thua của người chơi kia
50
Trí tuệ nhân tạo
Trò chơi cờ ca-rô
n  Trò chơi cờ ca-rô là một ví dụ phổ biến trong AI để minh
họa về tìm kiếm có đối thủ
q  Vd: http://www.ourvirtualmall.com/tictac.htm
n  Là trò chơi đối kháng giữa 2 người (gọi là MAX và MIN)
q  Thay phiên nhau đi các nước (moves)
q  Kết thúc trò chơi: Người thắng được thưởng (điểm), người thua
bị phạt (điểm)
51
Trí tuệ nhân tạo
A huge breakthrough in AI, 2016
n  AlphaGo of Google has just beaten a top player at Go
(cờ vây), January 2016
q  Go is a 2500 year-old game.
q  Go is one of the most complex games.
n  AlphaGo learns from 30 millions human moves, and plays
itself to find new moves.
n  It finally beat Fan Hui (Europe’s reigning Go champion)
q  http://www.wired.com/2016/01/in-a-huge-breakthrough-googles-
ai-beats-a-top-player-at-the-game-of-go/
q  http://www.nature.com/news/google-ai-algorithm-masters-ancient-
game-of-go-1.19234
52
Trí tuệ nhân tạo
Biểu diễn bài toán trò chơi đối kháng
n  Trò chơi bao gồm các thông tin
q  Trạng thái bắt đầu (Initial state): Trạng thái của trò chơi + Người
chơi nào được đi nước đầu tiên
q  Hàm chuyển trạng thái (Sucessor function): Trả về thông tin gồm
(nước đi, trạng thái)
n  Tất cả các nước đi hợp lệ từ trạng thái hiện tại
n  Trạng thái mới (là trạng thái chuyển đến sau nước đi)
q  Kiểm tra kết thúc trò chơi (Terminal test)
q  Hàm tiện ích (Utility function) để đánh giá các trạng thái kết thúc
n  Trạng thái bắt đầu + Các nước đi hợp lệ = Cây biểu diễn
trò chơi (Game tree)
53
Trí tuệ nhân tạo
Cây biểu diễn trò chơi cờ ca-rô
54
Trí tuệ nhân tạo
Các chiến lược tối ưu
n  Một chiến lược tối ưu là một chuỗi các nước đi giúp đưa
đến trạng thái đích mong muốn (vd: chiến thắng)
n  Chiến lược của MAX bị ảnh hưởng (phụ thuộc) vào các
nước đi của MIN – và ngược lại
n  MAX cần chọn một chiến lược giúp cực đại hóa giá trị
hàm mục tiêu – với giả sử là MIN đi các nước đi tối ưu
q  MIN cần chọn một chiến lược giúp cực tiểu hóa giá trị hàm mục
tiêu
n  Chiến lược này được xác định bằng việc xét giá trị
MINIMAX đối với mỗi nút trong cây biểu diễn trò chơi
q  Chiến lược tối ưu đối với các trò chơi có không gian trạng thái xác
định (deterministic states)
55
Trí tuệ nhân tạo
Giá trị MINIMAX
n  MAX chọn nước đi ứng với giá trị MINIMAX cực đại (để
đạt được giá trị cực đại của hàm mục tiêu)
n  Ngược lại, MIN chọn nước đi ứng với giá trị MINIMAX
cực tiểu
56
Trí tuệ nhân tạo
Giải thuật MINIMAX
57
Trí tuệ nhân tạo
Giải thuật MINIMAX – Các đặc điểm
n  Tính hoàn chỉnh
q  Có (nếu cây biểu diễn trò chơi là hữu hạn)
n  Tính tối ưu
q  Có (đối với một đối thủ luôn chọn nước đi tối ưu)
n  Độ phức tạp về thời gian
q  O(bm)
n  Độ phức tạp về bộ nhớ
q  O(bm) (khám phá theo chiến lược tìm kiếm theo chiều sâu)
n  Đối với trò chơi cờ vua, hệ số phân nhánh b ≈35 và hệ số
mức độ sâu của cây biểu diễn m≈100
q  Chi phí quá cao – Không thể tìm kiếm chính xác nước đi tối ưu
58
Trí tuệ nhân tạo
Cắt tỉa tìm kiếm
n  Vấn đề: Giải thuật tìm kiếm MINIMAX vấp phải vấn đề
bùng nổ (mức hàm mũ) các khả năng nước đi cần phải
xét → không phù hợp với nhiều bài toán trò chơi thực tế
n  Chúng ta có thể cắt tỉa (bỏ đi – không xét đến) một số
nhánh tìm kiếm trong cây biểu diễn trò chơi
n  Phương pháp cắt tỉa α-β (Alpha-beta prunning)
q  Ý tưởng: Nếu một nhánh tìm kiếm nào đó không thể cải thiện đối
với giá trị (hàm tiện ích) mà chúng ta đã có, thì không cần xét đến
nhánh tìm kiếm đó nữa!
q  Việc cắt tỉa các nhánh tìm kiếm (“tồi”) không ảnh hưởng đến kết
quả cuối cùng
59
Trí tuệ nhân tạo
Cắt tỉa α-β – Ví dụ (1)
60
Trí tuệ nhân tạo
Cắt tỉa α-β – Ví dụ (2)
61
Trí tuệ nhân tạo
max sẽ không chọn nhánh này
do nếu chọn thì nó chỉ có thể
nhận giá trị lớn nhất là 2 (vì
min sẽ chọn nhánh đến số 2)
x
Cắt tỉa α-β – Ví dụ (3)
62
Trí tuệ nhân tạo
Cắt tỉa α-β – Ví dụ (4)
63
Trí tuệ nhân tạo
Cắt tỉa α-β – Ví dụ (5)
64
Trí tuệ nhân tạo
x
cắt tiếp
nhánh này
Tại sao được gọi là cắt tỉa α-β?
n  α là giá trị của nước đi
tốt nhất đối với MAX (giá
trị tối đa) tính đến hiện
tại đối với nhánh tìm
kiếm
n  Nếu v là giá trị tồi hơn α,
MAX sẽ bỏ qua nước đi
ứng với v
q  Cắt tỉa nhánh ứng với v
n  β được định nghĩa
tương tự đối với MIN
65
Trí tuệ nhân tạo
Giải thuật cắt tỉa α-β (1)
66
Trí tuệ nhân tạo
Giải thuật cắt tỉa α-β (2)
67
Trí tuệ nhân tạo
Cắt tỉa α-β
n  Đối với các trò chơi có không gian trạng thái lớn, thì
phương pháp cắt tỉa α-β vẫn không phù hợp
q  Không gian tìm kiếm (kết hợp cắt tỉa) vẫn lớn
n  Có thể hạn chế không gian tìm kiếm bằng cách sử dụng
các tri thức cụ thể của bài toán
q  Tri thức để cho phép đánh giá mỗi trạng thái của trò chơi
q  Tri thức bổ sung (heuristic) này đóng vai trò tương tự như là hàm
ước lượng h(n) trong giải thuật tìm kiếm A*
68
Trí tuệ nhân tạo

More Related Content

What's hot

Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Báo cáo bài tập lớn
Báo cáo bài tập lớnBáo cáo bài tập lớn
Báo cáo bài tập lớnhung le
 
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019TiLiu5
 
Chuong 2 dai so tuyen tinh 2
Chuong 2   dai so tuyen tinh 2Chuong 2   dai so tuyen tinh 2
Chuong 2 dai so tuyen tinh 2Trương Huỳnh
 
Chuong 4.1 tin hieu va pho
Chuong 4.1 tin hieu va phoChuong 4.1 tin hieu va pho
Chuong 4.1 tin hieu va phothanhyu
 
tổng hợp bài tập java có đáp án chi tiết
 tổng hợp bài tập java có đáp án chi tiết tổng hợp bài tập java có đáp án chi tiết
tổng hợp bài tập java có đáp án chi tiếtHoàng Trí Phan
 
Bài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoBài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoDự Nguyễn Quang
 
ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNguest717ec2
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Nhóc Nhóc
 
xử lý số tín hiệu -Chuong 5
xử lý số tín hiệu -Chuong 5xử lý số tín hiệu -Chuong 5
xử lý số tín hiệu -Chuong 5Ngai Hoang Van
 
Xu lý tín hiệu số
Xu lý tín hiệu sốXu lý tín hiệu số
Xu lý tín hiệu sốHao Truong
 
Công thức Vật lý đại cương II
Công thức Vật lý đại cương IICông thức Vật lý đại cương II
Công thức Vật lý đại cương IIVũ Lâm
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnNguyen Thieu
 
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quanFablab Hanoi
 
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019TiLiu5
 

What's hot (20)

Chapter1234
Chapter1234Chapter1234
Chapter1234
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Báo cáo bài tập lớn
Báo cáo bài tập lớnBáo cáo bài tập lớn
Báo cáo bài tập lớn
 
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
Bài giảng XỬ LÝ TÍN HIỆU SỐ_10440012092019
 
Chuong 2 dai so tuyen tinh 2
Chuong 2   dai so tuyen tinh 2Chuong 2   dai so tuyen tinh 2
Chuong 2 dai so tuyen tinh 2
 
Chuong 4.1 tin hieu va pho
Chuong 4.1 tin hieu va phoChuong 4.1 tin hieu va pho
Chuong 4.1 tin hieu va pho
 
Ktmt chuong 2
Ktmt chuong 2Ktmt chuong 2
Ktmt chuong 2
 
tổng hợp bài tập java có đáp án chi tiết
 tổng hợp bài tập java có đáp án chi tiết tổng hợp bài tập java có đáp án chi tiết
tổng hợp bài tập java có đáp án chi tiết
 
Bài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân TạoBài giảng Trí Tuệ Nhân Tạo
Bài giảng Trí Tuệ Nhân Tạo
 
ThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáNThiếT Kế Và đáNh Giá ThuậT ToáN
ThiếT Kế Và đáNh Giá ThuậT ToáN
 
Chuong5
Chuong5Chuong5
Chuong5
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02
 
Chuong02
Chuong02Chuong02
Chuong02
 
xử lý số tín hiệu -Chuong 5
xử lý số tín hiệu -Chuong 5xử lý số tín hiệu -Chuong 5
xử lý số tín hiệu -Chuong 5
 
Xu lý tín hiệu số
Xu lý tín hiệu sốXu lý tín hiệu số
Xu lý tín hiệu số
 
Công thức Vật lý đại cương II
Công thức Vật lý đại cương IICông thức Vật lý đại cương II
Công thức Vật lý đại cương II
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
 
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
[Fablab Hanoi] 20161211_Talk: Trí tuệ nhân tạo và ứng dụng_Chương 1: Tổng quan
 
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019
BÀI GIẢNG XÁC SUẤT THỐNG KÊ - TS. PHẠM QUANG KHOÁI_10435012092019
 

Viewers also liked

Sustainable Solution in Hang Tag Production
Sustainable Solution in Hang Tag ProductionSustainable Solution in Hang Tag Production
Sustainable Solution in Hang Tag ProductionAsif Iqbal
 
Tips to make your computer happy
Tips to make your computer happyTips to make your computer happy
Tips to make your computer happytechexpert2345
 
Project/Problem Based Learning Unit (audia marisol)
Project/Problem Based Learning Unit (audia marisol)Project/Problem Based Learning Unit (audia marisol)
Project/Problem Based Learning Unit (audia marisol)Marisol Audia
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátTráng Hà Viết
 
syllabus_OS_Fall_2015
syllabus_OS_Fall_2015syllabus_OS_Fall_2015
syllabus_OS_Fall_2015Neha Gupta
 
Gestion proyecto empresa
Gestion proyecto  empresaGestion proyecto  empresa
Gestion proyecto empresaAnthony Lopez
 
Dress intelligently to get raised
Dress intelligently to get raisedDress intelligently to get raised
Dress intelligently to get raisedFashionBro
 
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebookTài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebookTráng Hà Viết
 

Viewers also liked (11)

Sustainable Solution in Hang Tag Production
Sustainable Solution in Hang Tag ProductionSustainable Solution in Hang Tag Production
Sustainable Solution in Hang Tag Production
 
Tips to make your computer happy
Tips to make your computer happyTips to make your computer happy
Tips to make your computer happy
 
GESCO Presentation 22 Dec 2016
GESCO Presentation 22 Dec 2016GESCO Presentation 22 Dec 2016
GESCO Presentation 22 Dec 2016
 
Project/Problem Based Learning Unit (audia marisol)
Project/Problem Based Learning Unit (audia marisol)Project/Problem Based Learning Unit (audia marisol)
Project/Problem Based Learning Unit (audia marisol)
 
CURRICULUM VITAE Thony
CURRICULUM VITAE ThonyCURRICULUM VITAE Thony
CURRICULUM VITAE Thony
 
Oop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quátOop unit 09 lập trình tổng quát
Oop unit 09 lập trình tổng quát
 
Rec naturais e energia
Rec naturais e energiaRec naturais e energia
Rec naturais e energia
 
syllabus_OS_Fall_2015
syllabus_OS_Fall_2015syllabus_OS_Fall_2015
syllabus_OS_Fall_2015
 
Gestion proyecto empresa
Gestion proyecto  empresaGestion proyecto  empresa
Gestion proyecto empresa
 
Dress intelligently to get raised
Dress intelligently to get raisedDress intelligently to get raised
Dress intelligently to get raised
 
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebookTài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
 

Similar to Artificial intelligence ai l4-tim kiem-heuristic

Trí tueeuj nhân tạo
Trí tueeuj nhân tạoTrí tueeuj nhân tạo
Trí tueeuj nhân tạoThuần Phong
 
Artificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocArtificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocTráng Hà Viết
 
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2Hồ Lợi
 
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếmFablab Hanoi
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Do Ngoc Tuan
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Do Ngoc Tuan
 

Similar to Artificial intelligence ai l4-tim kiem-heuristic (7)

Trí tueeuj nhân tạo
Trí tueeuj nhân tạoTrí tueeuj nhân tạo
Trí tueeuj nhân tạo
 
Artificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocArtificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buoc
 
BaiGiang_2.pdf
BaiGiang_2.pdfBaiGiang_2.pdf
BaiGiang_2.pdf
 
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
 
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm
[Fablab Hanoi] 20161211_Talk:Trí tuệ nhân tạo và ứng dụng _Chương 2: Tìm kiếm
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4
 

More from Tráng Hà Viết

Artificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuArtificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuTráng Hà Viết
 
Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Tráng Hà Viết
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnTráng Hà Viết
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaTráng Hà Viết
 
Oop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoOop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoTráng Hà Viết
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpTráng Hà Viết
 
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpTráng Hà Viết
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngTráng Hà Viết
 
Công cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishCông cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishTráng Hà Viết
 

More from Tráng Hà Viết (15)

Artificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuArtificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieu
 
Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiện
 
Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Oop unit 10 ngoại lệ
Oop unit 10 ngoại lệOop unit 10 ngoại lệ
Oop unit 10 ngoại lệ
 
Oop unit 08 đa hình
Oop unit 08 đa hìnhOop unit 08 đa hình
Oop unit 08 đa hình
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
 
Oop unit 06 kế thừa
Oop unit 06 kế thừaOop unit 06 kế thừa
Oop unit 06 kế thừa
 
Oop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng caoOop unit 05 một số kỹ thuật java nâng cao
Oop unit 05 một số kỹ thuật java nâng cao
 
Oop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớpOop unit 04 các kỹ thuật xây dựng lớp
Oop unit 04 các kỹ thuật xây dựng lớp
 
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớp
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
Oop unit 02 java cơ bản
Oop unit 02 java cơ bảnOop unit 02 java cơ bản
Oop unit 02 java cơ bản
 
Công cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishCông cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFish
 

Recently uploaded

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGhoinnhgtctat
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANGPHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
PHÁT TRIỂN DU LỊCH BỀN VỮNG Ở TUYÊN QUANG
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

Artificial intelligence ai l4-tim kiem-heuristic

  • 1. Trí Tuệ Nhân Tạo (Artificial Intelligence) Viện Công nghệ thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội Năm học 2016 Thân Quang Khoát khoattq@soict.hust.edu.vn
  • 2. Nội dung môn học: n  Giới thiệu về Trí tuệ nhân tạo n  Tác tử n  Giải quyết vấn đề: Tìm kiếm, Thỏa mãn ràng buộc q  Tìm kiếm với tri thức bổ sung (Informed search) n  Logic và suy diễn n  Biểu diễn tri thức n  Biểu diễn tri thức không chắc chắn n  Học máy 2 Trí tuệ nhân tạo
  • 3. Nhắc lại: Tìm kiếm theo cấu trúc cây n  Một chiến lược (phương pháp) tìm kiếm = Một cách xác định thứ tự xét các nút của cây 3 Trí tuệ nhân tạo
  • 4. Tìm kiếm với tri thức bổ sung n  Các chiến lược tìm kiếm cơ bản (uninformed search strategies) chỉ sử dụng các thông tin chứa trong định nghĩa của bài toán q  Không phù hợp với nhiều bài toán thực tế (do đòi hỏi chi phí quá cao về thời gian và bộ nhớ) n  Các chiến lược tìm kiếm với tri thức bổ sung (informed search strategies) sử dụng các tri thức cụ thể của bài toán → Quá trình tìm kiếm hiệu quả hơn q  Các giải thuật tìm kiếm best-first (Greedy best-first, A*) q  Các giải thuật tìm kiếm cục bộ (Hill-climbing, Simulated annealing, Local beam, Genetic algorithms) q  Các giải thuật tìm kiếm đối kháng (MiniMax, Alpha-beta pruning) 4 Trí tuệ nhân tạo
  • 5. Best-first search n  Ý tưởng: Sử dụng một hàm đánh giá f(n) cho mỗi nút của cây tìm kiếm q  Để đánh giá mức độ “phù hợp” của nút đó à  Trong quá trình tìm kiếm, ưu tiên xét các nút có mức độ phù hợp cao nhất n  Cài đặt giải thuật q  Sắp thứ tự các nút trong cấu trúc fringe theo trật tự giảm dần về mức độ phù hợp n  Các trường hợp đặc biệt của giải thuật Best-first search q  Greedy best-first search q  A* search 5 Trí tuệ nhân tạo
  • 6. Greedy best-first search n  Hàm đánh giá f(n) là hàm heuristic h(n) n  Hàm heuristic h(n) đánh giá chi phí để đi từ nút hiện tại n đến nút đích (mục tiêu) n  Ví dụ: Trong bài toán tìm đường đi từ Arad đến Bucharest, sử dụng: hSLD(n) = Ước lượng khoảng cách đường thẳng (“chim bay”) từ thành phố hiện tại n đến Bucharest n  Phương pháp tìm kiếm Greedy best-first search sẽ xét (phát triển) nút “có vẻ” gần với nút đích (mục tiêu) nhất 6 Trí tuệ nhân tạo
  • 7. Greedy best-first search – Ví dụ (1) 7 Trí tuệ nhân tạo
  • 8. Greedy best-first search – Ví dụ (2) 8 Trí tuệ nhân tạo
  • 9. Greedy best-first search – Ví dụ (3) 9 Trí tuệ nhân tạo
  • 10. Greedy best-first search – Ví dụ (4) 10 Trí tuệ nhân tạo
  • 11. Greedy best-first search – Ví dụ (5) 11 Trí tuệ nhân tạo
  • 12. Greedy best-first search – Các đặc điểm n  Tính hoàn chỉnh? q  Không – Vì có thể vướng (chết tắc) trong các vòng lặp kiểu như: Iasi à Neamt à Iasi à Neamt à… n  Độ phức tạp về thời gian? q  O(bm) q  Một hàm heuristic tốt có thể mang lại cải thiện lớn n  Độ phức tạp về bộ nhớ? q  O(bm) – Lưu giữ tất cả các nút trong bộ nhớ n  Tính tối ưu? q  Không 12 Trí tuệ nhân tạo
  • 13. A* search n  Ý tưởng: Tránh việc xét (phát triển) các nhánh tìm kiếm đã xác định (cho đến thời điểm hiện tại) là có chi phí cao n  Sử dụng hàm đánh giá f(n) = g(n) ⊕ h(n) q  g(n) = chi phí từ nút gốc cho đến nút hiện tại n q  h(n) = chi phí ước lượng từ nút hiện tại n tới đích q  f(n) = chi phí tổng thể ước lượng của đường đi qua nút hiện tại n đến đích 13 Trí tuệ nhân tạo
  • 14. A* search – Ví dụ (1) 14 Trí tuệ nhân tạo
  • 15. A* search – Ví dụ (2) 15 Trí tuệ nhân tạo
  • 16. A* search – Ví dụ (3) 16 Trí tuệ nhân tạo 140+140+366 99+140+176 151+140+380 80+140+193
  • 17. A* search – Ví dụ (4) 17 Trí tuệ nhân tạo > 415> 415 > 415 => xét đến nút thứ 2 là Fagaras
  • 18. A* search – Ví dụ (5) 18 Trí tuệ nhân tạo xét đến thằng này do nó có chi phí f(n) nhỏ nhất
  • 19. A* search – Ví dụ (6) 19 Trí tuệ nhân tạo
  • 20. A* search – Các đặc điểm n  Nếu không gian các trạng thái là hữu hạn và có giải pháp để tránh việc xét (lặp) lại các trạng thái, thì giải thuật A* là hoàn chỉnh (tìm được lời giải) – nhưng không đảm bảo là tối ưu n  Nếu không gian các trạng thái là hữu hạn và không có giải pháp để tránh việc xét (lặp) lại các trạng thái, thì giải thuật A* là không hoàn chỉnh n  Nếu không gian các trạng thái là vô hạn, thì giải thuật A* là không hoàn chỉnh n  Khi nào thì A* tối ưu? 20 Trí tuệ nhân tạo
  • 21. Các ước lượng chấp nhận được n  Một ước lượng h(n) được xem là chấp nhận được nếu đối với mọi nút n: 0 ≤ h(n) ≤ h*(n), trong đó h*(n) là chi phí thật (thực tế) để đi từ nút n đến đích n  Một ước lượng chấp nhận được không bao giờ đánh giá quá cao (overestimate) đối với chi phí để đi tới đích q  Thực chất, ước lượng chấp nhận được có xu hướng đánh giá “lạc quan” n  Ví dụ: Ước lượng hSLD(n) đánh giá thấp hơn khoảng cách đường đi thực tế n  Định lý: Nếu h(n) là đánh giá chấp nhận được, thì phương pháp tìm kiếm A* sử dụng giải thuật TREE- SEARCH là tối ưu 21 Trí tuệ nhân tạo
  • 22. Tính tối ưu của A* - Chứng minh (1) n  Giả sử có một đích không tối ưu (suboptimal goal) G2 được sinh ra và lưu trong cấu trúc fringe. Gọi n là một nút chưa xét trong cấu trúc fringe sao cho n nằm trên một đường đi ngắn nhất đến một đích tối ưu (optimal goal) G n  Ta có: 1) f(G2) = g(G2) vì h(G2) = 0 n  Ta có: 2) g(G2) > g(G) vì G2 là đích không tối ưu n  Ta có: 3) f(G) = g(G) vì h(G) = 0 n  Từ 1)+2)+3) suy ra: 4) f(G2) > f(G) 22 Trí tuệ nhân tạo
  • 23. Tính tối ưu của A* - Chứng minh (2) n  Ta có: 5) h(n) ≤ h*(n) vì h là ước lượng chấp nhận được n  Từ 5) suy ra: 6) g(n) + h(n) ≤ g(n) + h*(n) n  Ta có: 7) g(n) + h*(n) = f(G) vì n nằm trên đường đi tới G n  Từ 6)+7) suy ra: 8) f(n) ≤ f(G) n  Từ 4)+8) suy ra: f(G2) > f(n). Tức là, giải thuật A* không bao giờ xét G2 23 Trí tuệ nhân tạo 5
  • 24. Các ước lượng chấp nhận được (1) Ví dụ đối với trò chơi ô chữ 8 số: n  h1(n) = số các ô chữ nằm ở sai vị trí (so với vị trí của ô chữ đấy ở trạng thái đích) n  h2(n) = khoảng cách dịch chuyển (←,→,↑,↓) ngắn nhất để dịch chuyển các ô chữ nằm sai vị trí về vị trí đúng n  h1(S) = ? n  h2(S) = ? 24 Trí tuệ nhân tạo
  • 25. Các ước lượng chấp nhận được (2) Ví dụ đối với trò chơi ô chữ 8 số: n  h1(n) = số các ô chữ nằm ở sai vị trí (so với vị trí của ô chữ đấy ở trạng thái đích) n  h2(n) = khoảng cách dịch chuyển (←,→,↑,↓) ngắn nhất để dịch chuyển các ô chữ nằm sai vị trí về vị trí đúng n  h1(S) = 8 n  h2(S) = 3+1+ 2+2+ 2+3+ 3+2 = 18 25 Trí tuệ nhân tạo 3 1 2
  • 26. Ước lượng ưu thế n  Ước lượng h2 được gọi là ưu thế hơn / trội hơn (dominate) ước lượng h1 nếu: q  h*(n) ≥ h2(n) ≥ h1(n) đối với tất cả các nút n n  Nếu ước lượng h2 ưu thế hơn ước lượng h1, thì h2 tốt hơn (nên được sử dụng hơn) cho quá trình tìm kiếm n  Trong ví dụ (ô chữ 8 số) ở trên: Chi phí tìm kiếm = Số lượng trung bình của các nút phải xét: q  Với độ sâu d =12 n  IDS (Tìm kiếm sâu dần): 3.644.035 nút phải xét n  A*(sử dụng ước lượng h1): 227 nút phải xét n  A*(sử dụng ước lượng h2): 73 nút phải xét q  Với độ sâu d =24 n  IDS (Tìm kiếm sâu dần): Quá nhiều nút phải xét n  A*(sử dụng ước lượng h1): 39.135 nút phải xét n  A*(sử dụng ước lượng h2): 1.641 nút phải xét 26 Trí tuệ nhân tạo
  • 27. Các ước lượng kiên định n  Một ước lượng h được xem là kiên định (consistent), nếu với mọi nút n và với mọi nút tiếp theo n' của n (được sinh ra bởi hành động a): h(n) ≤ c(n,a,n') + h(n') n  Nếu ước lượng h là kiên định, ta có: f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') ≥ g(n) + h(n) = f(n) Nghĩa là: f(n) không giảm trong bất kỳ đường đi (tìm kiếm) nào đi qua n n  Định lý: Nếu h(n) là kiên định, thì phương pháp tìm kiếm A* sử dụng giải thuật GRAPH-SEARCH là tối ưu 27 Trí tuệ nhân tạo
  • 28. Các đặc điểm của A* n  Tính hoàn chỉnh? q  Có (trừ khi có rất nhiều các nút có chi phí f ≤ f(G) ) n  Độ phức tạp về thời gian? q  Bậc của hàm mũ – Số lượng các nút được xét là hàm mũ của độ dài đường đi của lời giải n  Độ phức tạp về bộ nhớ? q  Lưu giữ tất cả các nút trong bộ nhớ n  Tính tối ưu? q  Có 28 Trí tuệ nhân tạo
  • 29. A* vs. UCS 29 Trí tuệ nhân tạo n  Tìm kiếm với chi phí cực tiểu (UCS) phát triển theo mọi hướng n  Tìm kiếm A* phát triển chủ yếu theo hướng tới đích, nhưng đảm bảo tính tối ưu
  • 30. Các giải thuật tìm kiếm cục bộ n  Trong nhiều bài toán tối ưu, các đặc điểm thường phức tạp và ta không thể tìm được lời giải tối ưu. q  Trạng thái đích = Lời giải của bài toán phải thoả mãn ràng buộc nào đó. n  Ví dụ: Bài toán n quân hậu (bố trí n quân hậu trên một bàn cờ kích thước nxn, sao cho các quân hậu không ăn nhau) q  Bài toán tối ưu có nhiều điểm cực trị địa phương. n  Trong những bài toán như thế, chúng ta có thể sử dụng các giải thuật tìm kiếm cục bộ n  Tại mỗi thời điểm, chỉ lưu một trạng thái “hiện thời" duy nhất. Mục tiêu: cố gắng “cải thiện” trạng thái (cấu hình) hiện thời này đối với một tiêu chí nào đó (định trước) 30 Trí tuệ nhân tạo
  • 31. Ví dụ: Bài toán n quân hậu n  Bố trí n (=4) quân hậu trên một bàn cờ có kích thước n×n, sao cho không có 2 quân hậu nào trên cùng hàng, hoặc trên cùng cột, hoặc trên cùng đường chéo 31 Trí tuệ nhân tạo
  • 32. Tìm kiếm leo đồi – Giải thuật 32 Trí tuệ nhân tạo
  • 33. Tìm kiếm leo đồi – Bài toán ô chữ 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 2 3 1 8 4 7 6 5 1 3 8 4 7 6 5 2 3 1 8 4 7 6 5 2 1 3 8 4 7 6 5 2 start goal -5 h = -3 h = -3 h = -2 h = -1 h = 0h = -4 -5 -4 -4-3 -2 f(n) = -(Số lượng các ô chữ nằm sai vị trí) 33h(n) (nếu di chuyển sang phải) (nếu di chuyển sang trái) (nếu di chuyển lên trên)
  • 34. Tìm kiếm leo đồi: bài toán 8 quân hậu (1) n  Ước lượng h = tổng số các cặp quân hậu ăn nhau, hoặc là trực tiếp hoặc gián tiếp n  Trong trạng thái (bàn cờ) trên: h =17 34 Trí tuệ nhân tạo
  • 35. Tìm kiếm leo đồi: bài toán 8 quân hậu (2) §  Trạng thái bàn cờ trên là một giải pháp tối ưu cục bộ (a local minimum) q  Với ước lượng h =1 (vẫn còn 1 cặp hậu ăn nhau) 35 Trí tuệ nhân tạo
  • 36. Tìm kiếm leo đồi – Minh họa n  Nhược điểm: Tùy vào trạng thái đầu, giải thuật tìm kiếm leo đồi có thể “tắc” ở các điểm cực đại cục bộ (local maxima) q  Không tìm được lời giải tối ưu toàn cục (global optimal solution) 36 Trí tuệ nhân tạo
  • 37. Simulated annealing search n  Dựa trên quá trình tôi ủ (annealing process): Kim loại nguội đi và lạnh cứng lại thành cấu trúc kết tinh n  Phương pháp tìm kiếm Simulated Annealing có thể tránh được các điểm tối ưu cục bộ (local optima) n  Phương pháp tìm kiếm Simulated Annealing sử dụng chiến lược tìm kiếm ngẫu nhiên, trong đó chấp nhận các thay đổi làm tăng giá trị hàm mục tiêu (i.e., cần tối ưu) và cũng chấp nhận (có hạn chế) các thay đổi làm giảm n  Phương pháp tìm kiếm Simulated Annealing sử dụng một tham số điều khiển T (như trong các hệ thống nhiệt độ) q  Bắt đầu thì T nhận giá trị cao, và giảm dần về 0 37 Trí tuệ nhân tạo
  • 38. Simulated annealing search: giải thuật n  Ý tưởng: Thoát khỏi (vượt qua) các điểm tối ưu cục bộ bằng cách cho phép cả các dịch chuyển “tồi” từ trạng thái hiện thời, nhưng giảm dần tần xuất của các di chuyển tồi này 38 Trí tuệ nhân tạo
  • 39. Simulated annealing search: các đặc điểm n  (Có thể chứng minh được) Nếu giá trị của tham số T (xác định mức độ giảm tần xuất đối với các di chuyển tồi) giảm chậm, thì phương pháp tìm kiếm Simulated Annealing sẽ tìm được lời giải tối ưu toàn cục với xác suất xấp xỉ 1 n  Phương pháp tìm kiếm Simulated Annealing Search rất hay được sử dụng trong các lĩnh vực: thiết kế sơ đồ bảng mạch VLSI, lập lịch bay, … 39 Trí tuệ nhân tạo
  • 40. Local beam search n  Ở mỗi thời điểm (trong quá trình tìm kiếm), luôn lưu giữ k – thay vì chỉ 1 – trạng thái tốt nhất n  Bắt đầu giải thuật: Chọn k trạng thái ngẫu nhiên n  Ở mỗi bước tìm kiếm, sinh ra tất cả các trạng thái kế tiếp của k trạng thái này n  Nếu một trong số các trạng thái là trạng thái đích, thì giải thuật kết thúc (thành công); nếu không, thì chọn k trạng thái tiếp theo tốt nhất (từ tập các trạng thái tiếp theo), và lặp lại bước trên 40 Trí tuệ nhân tạo
  • 41. Giải thuật di truyền – Giới thiệu n  Dựa trên (bắt chước) quá trình tiến hóa tự nhiên trong sinh học n  Áp dụng phương pháp tìm kiếm ngẫu nhiên (stochastic search) để tìm được lời giải (vd: một hàm mục tiêu, một mô hình phân lớp, …) tối ưu n  Giải thuật di truyền (Generic Algorithm – GA) có khả năng tìm được các lời giải tốt thậm chí ngay cả với các không gian tìm kiếm (lời giải) không liên tục rất phức tạp n  Mỗi khả năng của lời giải được biểu diễn bằng một chuỗi nhị phân (vd: 100101101) – được gọi là nhiễm sắc thể (chromosome) •  Việc biểu diễn này phụ thuộc vào từng bài toán cụ thể 41 Trí tuệ nhân tạo
  • 42. Giải thuật di truyền – Mô tả n  Xây dựng (khởi tạo) quần thể (population) ban đầu •  Tạo nên một số các giả thiết (khả năng của lời giải) ban đầu •  Mỗi giả thiết khác các giả thiết khác (vd: khác nhau đối với các giá trị của một số tham số nào đó của bài toán) n  Đánh giá quần thể •  Đánh giá (cho điểm) mỗi giả thiết (vd: bằng cách kiểm tra độ chính xác của hệ thống trên một tập dữ liệu kiểm thử) •  Trong lĩnh vực sinh học, điểm đánh giá này của mỗi giả thiết được gọi là độ phù hợp (fitness) của giả thiết đó •  Xếp hạng các giả thiết theo mức độ phù hợp của chúng, và chỉ giữ lại các giả thiết tốt nhất (gọi là các giả thiết phù hợp nhất – survival of the fittest) n  Sản sinh ra thế hệ tiếp theo (next generation) •  Thay đổi ngẫu nhiên các giả thiết để sản sinh ra thế hệ tiếp theo (gọi là các con cháu – offspring) n  Lặp lại quá trình trên cho đến khi ở một thế hệ nào đó có giả thiết tốt nhất có độ phù hợp cao hơn giá tri phù hợp mong muốn (định trước) 42 Trí tuệ nhân tạo
  • 43. GA(Fitness, θ, n, rco, rmu) Fitness: A function that produces the score (fitness) given a hypothesis θ: The desired fitness value (i.e., a threshold specifying the termination condition) n: The number of hypotheses in the population rco: The percentage of the population influenced by the crossover operator at each step rmu: The percentage of the population influenced by the mutation operator at each step Initialize the population: H ← Randomly generate n hypotheses Evaluate the initial population. For each h∈H: compute Fitness(h) while (max{h∈H}Fitness(h) < θ) do Hnext ← ∅ Reproduction (Replication). Probabilistically select (1-rco).n hypotheses of H to add to Hnext. The probability of selecting hypothesis hi from H is: ∑= = n j j i i )Fitness(h )Fitness(h )P(h 1 43 Trí tuệ nhân tạo
  • 44. GA(Fitness, θ, n, rco, rmu) … Crossover. Probabilistically select (rco.n/2) pairs of hypotheses from H, according to the probability computation P(hi) given above. For each pair (hi, hj), produce two offspring (i.e., children) by applying the crossover operator. Then, add all the offspring to Hnext. Mutation. Select (rmu.n) hypotheses of Hnext, with uniform probability. For each selected hypothesis, invert one randomly chosen bit (i.e., 0 to 1, or 1 to 0) in the hypothesis’s representation. Producing the next generation: H ← Hnext Evaluate the new population. For each h∈H: compute Fitness(h) end while return argmax{h∈H}Fitness(h) 44 Trí tuệ nhân tạo
  • 45. Giải thuật di truyền – Minh họa [Duda et al., 2000] 45 Trí tuệ nhân tạo
  • 46. Các toán tử di truyền n 3 toán tử di truyền được sử dụng để sinh ra các cá thể con cháu (offspring) trong thế hệ tiếp theo •  Nhưng chỉ có 2 toán tử lai ghép (crossover) và đột biến (mutation) tạo nên sự thay đổi n Tái sản xuất (Reproduction) → Một giả thiết được giữ lại (không thay đổi) n Lai ghép (Crossover) để sinh ra 2 cá thể mới → Ghép (“phối hợp") của hai cá thể cha mẹ •  Điểm lai ghép được chọn ngẫu nhiên (trên chiều dài của nhiễm sắc thể) •  Phần đầu tiên của nhiễm sắc thể hi được ghép với phần sau của nhiễm sắc thể hj, và ngược lại, để sinh ra 2 nhiễm sắc thể mới n Đột biến (Mutation) để sinh ra 1 cá thể mới → Chọn ngẫu nhiên một bit của nhiễm sắc thể, và đổi giá trị (0→1 / 1→0) •  Chỉ tạo nên một thay đổi nhỏ và ngẫu nhiên đối với một cá thể cha mẹ! 46 Trí tuệ nhân tạo
  • 47. Các toán tử di truyền – Ví dụ [Mitchell, 1997] 11101001000 00001010101 11111000000 (crossover mask) 11101010101 00001001000 Lai ghép tại 1 điểm: Tái sản xuất: 11101001000 11101001000 11101001000 00001010101 11001011000 00101000101 Lai ghép tại 2 điểm: 00111110000 (crossover mask) Đột biến: 11101001000 11101011000 Cha mẹ – Thế hệ hiện tại Con cháu– Thế hệ tiếp theo 47 Trí tuệ nhân tạo
  • 48. Toán tử lai ghép – Ví dụ Bài toán bố trí 8 quân hậu trên bàn cờ - Toán tử lai ghép (crossover) 48 Trí tuệ nhân tạo
  • 49. Tìm kiếm có đối thủ n  Các thủ tục tìm kiếm sâu dần (IDS) và tìm kiếm A* hữu dụng đối với các bài toán (tìm kiếm) liên quan đến một tác tử n  Thủ tục tìm kiếm cho các bài toán liên quan đến 2 tác tử có mục tiêu đối nghịch nhau (xung đột với nhau)? q  Tìm kiếm có đối thủ (Adversarial search) n  Phương pháp tìm kiếm có đối thủ được áp dụng phổ biến trong các trò chơi (games) 49 Trí tuệ nhân tạo
  • 50. Các vấn đề của tìm kiếm trong trò chơi n  Không thể dự đoán trước được phản ứng của đối thủ q  Cần xác định (xét) một nước đi phù hợp đối với mỗi phản ứng (nước đi) có thể của đối thủ n  Giới hạn về thời gian (trò chơi có tính giờ) q  Thường khó (hoặc không thể) tìm được giải pháp tối ưu → Xấp xỉ n  Tìm kiếm có đối thủ đòi hỏi tính hiệu quả (giữa chất lượng của nước đi và thời gian chi phí) – Đây là một yêu cầu khó khăn n  Nguyên tắc trong các trò chơi đối kháng q  Một người chơi thắng = Người chơi kia thua q  Mức độ (tổng điểm) thắng của một người chơi = Mức độ (tổng điểm) thua của người chơi kia 50 Trí tuệ nhân tạo
  • 51. Trò chơi cờ ca-rô n  Trò chơi cờ ca-rô là một ví dụ phổ biến trong AI để minh họa về tìm kiếm có đối thủ q  Vd: http://www.ourvirtualmall.com/tictac.htm n  Là trò chơi đối kháng giữa 2 người (gọi là MAX và MIN) q  Thay phiên nhau đi các nước (moves) q  Kết thúc trò chơi: Người thắng được thưởng (điểm), người thua bị phạt (điểm) 51 Trí tuệ nhân tạo
  • 52. A huge breakthrough in AI, 2016 n  AlphaGo of Google has just beaten a top player at Go (cờ vây), January 2016 q  Go is a 2500 year-old game. q  Go is one of the most complex games. n  AlphaGo learns from 30 millions human moves, and plays itself to find new moves. n  It finally beat Fan Hui (Europe’s reigning Go champion) q  http://www.wired.com/2016/01/in-a-huge-breakthrough-googles- ai-beats-a-top-player-at-the-game-of-go/ q  http://www.nature.com/news/google-ai-algorithm-masters-ancient- game-of-go-1.19234 52 Trí tuệ nhân tạo
  • 53. Biểu diễn bài toán trò chơi đối kháng n  Trò chơi bao gồm các thông tin q  Trạng thái bắt đầu (Initial state): Trạng thái của trò chơi + Người chơi nào được đi nước đầu tiên q  Hàm chuyển trạng thái (Sucessor function): Trả về thông tin gồm (nước đi, trạng thái) n  Tất cả các nước đi hợp lệ từ trạng thái hiện tại n  Trạng thái mới (là trạng thái chuyển đến sau nước đi) q  Kiểm tra kết thúc trò chơi (Terminal test) q  Hàm tiện ích (Utility function) để đánh giá các trạng thái kết thúc n  Trạng thái bắt đầu + Các nước đi hợp lệ = Cây biểu diễn trò chơi (Game tree) 53 Trí tuệ nhân tạo
  • 54. Cây biểu diễn trò chơi cờ ca-rô 54 Trí tuệ nhân tạo
  • 55. Các chiến lược tối ưu n  Một chiến lược tối ưu là một chuỗi các nước đi giúp đưa đến trạng thái đích mong muốn (vd: chiến thắng) n  Chiến lược của MAX bị ảnh hưởng (phụ thuộc) vào các nước đi của MIN – và ngược lại n  MAX cần chọn một chiến lược giúp cực đại hóa giá trị hàm mục tiêu – với giả sử là MIN đi các nước đi tối ưu q  MIN cần chọn một chiến lược giúp cực tiểu hóa giá trị hàm mục tiêu n  Chiến lược này được xác định bằng việc xét giá trị MINIMAX đối với mỗi nút trong cây biểu diễn trò chơi q  Chiến lược tối ưu đối với các trò chơi có không gian trạng thái xác định (deterministic states) 55 Trí tuệ nhân tạo
  • 56. Giá trị MINIMAX n  MAX chọn nước đi ứng với giá trị MINIMAX cực đại (để đạt được giá trị cực đại của hàm mục tiêu) n  Ngược lại, MIN chọn nước đi ứng với giá trị MINIMAX cực tiểu 56 Trí tuệ nhân tạo
  • 57. Giải thuật MINIMAX 57 Trí tuệ nhân tạo
  • 58. Giải thuật MINIMAX – Các đặc điểm n  Tính hoàn chỉnh q  Có (nếu cây biểu diễn trò chơi là hữu hạn) n  Tính tối ưu q  Có (đối với một đối thủ luôn chọn nước đi tối ưu) n  Độ phức tạp về thời gian q  O(bm) n  Độ phức tạp về bộ nhớ q  O(bm) (khám phá theo chiến lược tìm kiếm theo chiều sâu) n  Đối với trò chơi cờ vua, hệ số phân nhánh b ≈35 và hệ số mức độ sâu của cây biểu diễn m≈100 q  Chi phí quá cao – Không thể tìm kiếm chính xác nước đi tối ưu 58 Trí tuệ nhân tạo
  • 59. Cắt tỉa tìm kiếm n  Vấn đề: Giải thuật tìm kiếm MINIMAX vấp phải vấn đề bùng nổ (mức hàm mũ) các khả năng nước đi cần phải xét → không phù hợp với nhiều bài toán trò chơi thực tế n  Chúng ta có thể cắt tỉa (bỏ đi – không xét đến) một số nhánh tìm kiếm trong cây biểu diễn trò chơi n  Phương pháp cắt tỉa α-β (Alpha-beta prunning) q  Ý tưởng: Nếu một nhánh tìm kiếm nào đó không thể cải thiện đối với giá trị (hàm tiện ích) mà chúng ta đã có, thì không cần xét đến nhánh tìm kiếm đó nữa! q  Việc cắt tỉa các nhánh tìm kiếm (“tồi”) không ảnh hưởng đến kết quả cuối cùng 59 Trí tuệ nhân tạo
  • 60. Cắt tỉa α-β – Ví dụ (1) 60 Trí tuệ nhân tạo
  • 61. Cắt tỉa α-β – Ví dụ (2) 61 Trí tuệ nhân tạo max sẽ không chọn nhánh này do nếu chọn thì nó chỉ có thể nhận giá trị lớn nhất là 2 (vì min sẽ chọn nhánh đến số 2) x
  • 62. Cắt tỉa α-β – Ví dụ (3) 62 Trí tuệ nhân tạo
  • 63. Cắt tỉa α-β – Ví dụ (4) 63 Trí tuệ nhân tạo
  • 64. Cắt tỉa α-β – Ví dụ (5) 64 Trí tuệ nhân tạo x cắt tiếp nhánh này
  • 65. Tại sao được gọi là cắt tỉa α-β? n  α là giá trị của nước đi tốt nhất đối với MAX (giá trị tối đa) tính đến hiện tại đối với nhánh tìm kiếm n  Nếu v là giá trị tồi hơn α, MAX sẽ bỏ qua nước đi ứng với v q  Cắt tỉa nhánh ứng với v n  β được định nghĩa tương tự đối với MIN 65 Trí tuệ nhân tạo
  • 66. Giải thuật cắt tỉa α-β (1) 66 Trí tuệ nhân tạo
  • 67. Giải thuật cắt tỉa α-β (2) 67 Trí tuệ nhân tạo
  • 68. Cắt tỉa α-β n  Đối với các trò chơi có không gian trạng thái lớn, thì phương pháp cắt tỉa α-β vẫn không phù hợp q  Không gian tìm kiếm (kết hợp cắt tỉa) vẫn lớn n  Có thể hạn chế không gian tìm kiếm bằng cách sử dụng các tri thức cụ thể của bài toán q  Tri thức để cho phép đánh giá mỗi trạng thái của trò chơi q  Tri thức bổ sung (heuristic) này đóng vai trò tương tự như là hàm ước lượng h(n) trong giải thuật tìm kiếm A* 68 Trí tuệ nhân tạo