Tải bản đầy đủ (.docx) (43 trang)

Thực hành trí tuệ nhân tạo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (551.06 KB, 43 trang )

Thực hành: Trí tuệ nhân tạo

GVHD: Võ Đức Hoàng

PHẦN I: THUẬT TOÁN
Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định
I. Cờ ta canh
1. Đề bài.
Tám (8) quân cờ được chỉ ra trong hình, gồm một bảng kích thước 3x3 với 8
quân cờ dược đánh số từ 1 đến 8 và một ô trống. Một quân cờ đứng cạnh ô trống có
thể đi vào ô trống. Mục tiêu là luôn luôn tiến tới vị trí các quân cờ như ở trong hình
bên phải (trạng thái đích).
Trạng thái đầu
1

2

3

7

4

6

5

Trạng thái đích

8


1

2

3

4

5

6

7

8

Hãy trình bày thuật toán và viết chương trình demo để di chuyển các quân cờ
sao cho số bước di chuyển là thấp nhất (tối ưu). Dữ liệu được đọc từ file là ma trận
vuông 3x3.
2. Thuật toán A* giải quyết bài toán

Trò chơi 8 số ở mức độ khó vừa phải nên là một trò chơi rất thú vị. một giải
pháp điển hình gồm khoảng 20 bước, mặc dù con số này biến đổi phụ thuộc vào
trạng thái đầu. Hệ số rẽ nhánh khoảng bằng 3 (khi ô trống ở giữa, có bốn khả năng

1


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng

di chuyển; khi nó ở góc có hai khả năng di chuyển; và khi nó ở trên các cạnh, có ba
dụ khác
đểcần
minh
họa
chohàm
sự mềm
dẻo của
là hàm
việc xác định
khả năng đi). Để giảiMột
bàivítoán
này ta
tìm
một
Heuristic
tốt.Logic
Ta cómờhai
ước lượng:
- H1 = số lượng các số sai vị trí
- H2 = tổng số khoảng cách của các số so với vị trí mục tiêu, là tổng
khoảng cách theo chiều ngang và theo chiều dọc.
Bài toán tacanh khi được giải bằng thuật toán A* sẽ thực hiện theo các bước sau:
Từ trạng thái ban đầu ta xác định được trạng thái đích.
- Gọi G là số bước đã di chuyển ô trống
- H là hàm heuristic, ước tính số hao tổn để tới trạng thái đích, tính bằng tổng
các quãng đường của các ô ở vị trí sai để về tới vị trí đúng F=G+H.
Có hai danh sách Open và Close,
- Open chứa các trạng thái chưa xét,
- Close chứa các trạng thái đã xét.

Ban đầu ta thêm trạng thái khởi đầu vào Open, sau đó chọn trạng thái có f
= g + h nhỏ nhất, lúc này danh sách Open chứa duy nhất trạng thái khởi đầu nên ta
lấy trạng thái khởi đầu khỏi Open, và đưa vào danh sách Close các trạng thái đã xét.
Từ trạng thái đang xét ta xác định được trạng thái tiếp theo, dựa vào các hướng di
chuyển của ô trống. Đưa tất cả các trạng thái mới mà chưa có trong Close và Open
vào danh sách Open. Ta tiếp tục chọn trạng thái có f = g + h nhỏ nhất khỏi Open
như bước đầu tiên cho đến khi tìm ra trạng thái đích thì dừng lại. Từ trạng thái đích
vừa tìm được đi ngược lại danh sách ta sẽ tìm được đường đi từ trạng thái khởi đầu
đến trạng thái đích.
Ví dụ: cho hình sau:

2


Thực hành: Trí tuệ nhân tạo
N= 1+6+1+2+1=11 nên trạng thái đích là

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

• Các bước giải bài toán như sau:
 Đầu tiên ta xác định trạng thái tiếp theo của bài toán trên:
Có ba trường hợp xảy ra:

1
2
3
Đối với trường hợp 1 có g= 1, h= 4,f= h+g=5
Đối với trường hợp 2 có g= 1, h= 5,f= h+g=6

Đối với trường hợp 2 có g= 1, h= 6,f= h+g=7
So sánh các f với nhau ta thấy f của trường hợp 1 nhỏ nhất nên trạng thái tiếp theo
là trạng thái 1.
 Từ 1 ta có ba trạng thái:

3


Thực hành: Trí tuệ nhân tạo

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

1.1
1.2
1.3
Đối với trường hợp 1.1 có g= 2, h= 3,f= h+g=5
Đối với trường hợp 1.2 có g= 2, h= 5,f= h+g=7
Đối với trường hợp 1.3 có g= 2, h= 5,f= h+g=7
So sánh các f với nhau ta thấy f của trường hợp 1 nhỏ nhất nên trạng thái tiếp theo
là trạng thái 1.1
 Từ 1.1 có hai trạng thái:

1.1.1

1.1.2

Đối với trường hợp 1.1.1 có g= 3, h= 2,f= h+g=5
Đối với trường hợp 1.1.2 có g= 3, h= 4,f= h+g=7

So sánh các f với nhau ta thấy f của trường hợp 1 nhỏ nhất nên trạng thái tiếp theo
là trạng thái 1.1.1
 Từ 1.1.1 có một trạng thái:

4


Thực hành: Trí tuệ nhân tạo

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Từ trạng này có: g= 4, h=1, f= 5.
 Ta có trạng thái đích:

3. Cài đặt thuật toán.

4. Kết quả demo.
II.

Trò chơi viết số
1. Đề bài:
Hai người chơi với nhau trò chơi như sau: với 1 số a đang có sẵn, đến lượt mình
chơi, người đó sẽ viết số a+1 hay 2a với điều kiện số mới viết này không vượt qua
số nguyên dương N cho trước. Với số bắt đầu là 1, ai viết được số N trước thì xem
như thắng.
Xem như máy là người đi sau. Trình bày thuật toán và viết chương trình mô tả
trò chơi sao cho khả năng thắng của máy cao. Dữ liệu được đọc từ bàn phím.
2. Thuật toán giải quyết(Mimax).

Giả sử cả các người chơi đều lựa chọn chiến thuật chơi tối ưu, thì khi một người
viết số x, ta có thể biết người đó sẽ chắc chắn thắng hay thua.

5


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Với n không quá lớn, và bạn là một trong hai người chơi, bạn có thể lập bảng
Một
ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định
trạng thái cho trò chơi
này.
Trong bài này, bảng trạng thái thực chất là mảng A[] với A[i] = 0 hoặc 1, tương ứng
với khả năng thắng chắc hoặc thua chắc.
Khởi tạo : A[n] = 1 (thắng)
Bạn sẽ phải suy nghĩ tiếp công thức để điền được đầy đủ trạng thái cho bảng.
Sau đó, khi chơi ta chỉ việc cố gắng viết một số có khả năng thắng chắc đã được chỉ
ra trong bảng trạng thái, tất nhiên nếu đối thủ đi trước, luôn chọn một chiến lược đi
tối ưu, và A[1] == 1, thì ta vẫn không thể thắng được.
3. Cài đặt thuật toán

4. Kết quả Demo
III.

Bài toán phân việc
1. Đề bài:
Có n chi tiết máy J1, J2, ..., Jn cần gia công lần lượt trên 3 máy A, B, C với thời
gian hoàn thành tương ứng của 1 chi tiết là TA, TB, TC. Các chi tiết từ J1, J2, ..., Jn có
thể gia công theo thứ tự bất kỳ tuy nhiên một chi tiết Ji phải được gia công lần lượt

theo thứ tự trên máy A  máy B  máy C.
Trình bày thuật toán và viết chương trình mô tả sao cho tổng thời gian gia công
hoàn thành n chi tiết là thấp nhất (tối ưu). Dữ liệu được đọc từ file có dạng như sau:
DULIEU.INP
n

//số chi tiết cần gia công

J1A, J2A,...., JnA

//thời gian gia công các chi tiết trên máy A

J1B, J2B,...., JnB

//thời gian gia công các chi tiết trên máy B

J1C, J2C,...., JnC

//thời gian gia công các chi tiết trên máy C

Kết quả xuất ra là thứ tự các công việc
2. Thuật toán giải quyết bài toán

Một thuật toán hết sức nổi tiếngđể giải bài toán trên đó là thuật toán Johnson.
Thuật toán gồm các bước nhưsau:
Chia các chi tiết thành 2 nhóm: Nhóm N1 gồm các chitiết Di thoả mãn ai < bi và
nhóm N2gồm các chi tiết Di thoả mãn ai > bi. Cácchi tiết Di thoả mãn ai = bi xếp vào
nhóm nàocũng được.
Sắp xếp các chi tiết trong N1 theo chiều tăng của cácai và sắp xếp các chi tiết
trong N2 theo chiều giảm củacác bi.

Nối N2 vào đuôi N1. Dãy thu được (đọc từtrái sang phải) sẽ là lịch gia công tối
ưu.

6


Thực hành: Trí tuệ nhân tạo
Như vậy với ví dụ sau:

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Bước 1: Ta có:N1 = {3, 5}; N2 = {1, 2, 4}.
Bước 2: Sau khisắp xếp thì N1 = {3, 5}; N2= {2, 4, 1};
Bước 3: Lịchgia công là: 3 -> 5 -> 2 -> 4 ->1.
Thuật toán Johnson đã được chứng minhvà cách làm trên sẽ cho ta được lịch
gia công tối ưu thoả mãn yêu cầu đề bài.Tuy nhiên, ở đây tôi muốn giới thiệu với
các bạn một thuật toán tham ăn kháccũng có độ chính xác cao (gần như tuyệt đối)
mà có phần đơn giản hơn và ứngdụng của nó cũng khá rộng rãi. Thuật toán như sau:
Bước 1: Lập mảng Cvới Ci = ai / bi (i = 1, 2,..., n).
Bước 2: Sắp xếp mảng Ctăng dần theo giá trị các phần tử cùng với sự thay
đổi thứ tự các chi tiết máy.Thứ tự các chi tiết mấy cuối cùng chính là thứ tự gia
công cần tìm.
Như vậy với ví dụ trước ta có vớithuật toán trên thì:
Bước 1: Mảng C = [2,7/6, 1/9, 7/3, 2/5].
Thứ tựcác chi tiết giữ nguyên là: D1 -> D2 -> D3 -> D4 -> D5
Bước 2: Sau khi sắp xếptăng dần thì
C = [1/9, 2/5, 7/6, 2, 7/3]
Thứ tự cácchi tiết là: D3 -> D5 -> D2 -> D4 -> D1

Thứ tự trên chính là thứ tự giacông phải tìm. Chúng ta có thể dễ dàng thấy
được lịch trình gia công ở đây hoàntoàn giống với lịch trình gia công nếu như
chúng ta giải quyết bài toán vớithuật toán Johnson. Các bạn có thể kiểm tra độ đúng
đắn của thuật toán vớinhiều bộ test khác, tôi xin đưa ra một ví dụ nữa:

Thứtự gia công sẽ là: D1 -> D4 -> D2-> D5-> D3
Hoặc:D4 -> D1 -> D5 -> D2 -> D3
Thuật toán lập tỉ số như trên cònđược ứng dụng khá rộng rãi ở một số bài
toán có chủ đề tương tự. Chúng ta hãyxét bài toán sau: Bắt đầu từ thời điểm 0, một
người làm n công việc đánh sốhiệu từ 1 -> n(n ≤ 200). Với 1 ≤ i ≤ N, việc i cần làm
trong T[i] đơn vị thời gian.Từ thời điểm 0 đến lúc bắt đầu làm công việc nào đó,
người đó bị phạt một lượngtiền C[i] cho mỗi đơn vị thời gian. Khi đã làm một việc
nào thì phải làm xongviệc ấy sau đó mới được chuyển sang làm việc khác. Hãy thu
xếp trình tự làmviệc sao cho tổng số tiền phạt là ít nhất. Giả sử dữ liệu cho trong tệp
có dạngnhư ví dụ sau:

7


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
6
Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định
311647
434213
Với dòng đầu đó là số lượng công việc (ở đâyn=6), dòng thứ 2 ghi thứ tự số
lượng thời gian cần thiết cho từng công việc.Dòng thứ 3 ghi số tiền phạt cho mỗi
đơn vị thời gian ở các công việc tương ứng.
Để giải quyết bài toán trên ta có thể sử dụng thuậttoán lập dãy tỉ số như trên.
Giả sử mảng A gồm các phần tử A[i] = T[i] / C[i] (i =1, 2,..., n). Khi đóta có các

bước giải như sau:
Bước 1: mảng A là 3/4 ; 1/3 ; 1/4 ; 6/2 ;4/1 ; 7/3.
Thứ tự công việc vẫn giữ nguyên.
Bước 2: Sắp xếp mảng Atăng dần: 1/4 ; 1/3 ; 3/4 ; 7/3 ; 6/2 ; 4/1. Thứ tự công
việc lúc này là: 3 -> 2 -> 1 -> 6 -> 4 -> 5.
 Côngviệc 3 làm từ 0 -> 1 h. Sốtiền bị phạt là: 0 (đồng).
 Côngviệc 2 làm từ 1 -> 2 h. Sốtiền bị phạt là: 1*3 = 3 (đồng).
 Côngviệc 1 làm từ 2 -> 5 h. Sốtiền bị phạt là: 2*4 = 8 (đồng).
 Côngviệc 6 làm từ 5 -> 12 h. Sốtiền bị phạt là: 5*3 = 15 (đồng).
 Côngviệc 4 làm từ 12 -> 18h. Sốtiền bị phạt là: 12*2 = 24 (đồng).
 Côngviệc 5 làm từ 18 -> 19h. Sốtiền bị phạt là: 18*1 = 18 (đồng).
Thứ tự công việc trên chính làthứ tự cần tìm. Tổng số tiền bị phạt trong trường
hợp này là: 68 (đồng).
3. Cài đặt thuật toán
4. Kết quả Demo
IV. Bài toán người du lịch
1. Đề bài.
Một người khách du lịch muốn đi thăm n thành phố được đánh số từ 1 n và quay
lại thành phố xuất phát. Mạng lưới giao thông giữa n thành phố này là hai chiều và
được cho bởi ma trận A[i,j] trong đó A[i,j]=1 nếu có đường đi từ thành phố i đến
thành phố j, A[i,j]=0 trong trường hợp ngược lại.
Hãy thiết lập lộ trình cho người khách hay thông báo không tồn tại lời giải. Dữ liệu
được đọc từ file có dạng như sau:
DULIEU.INP
Dòng 1: Ghi số nguyên n (n<=20).
Dòng i+1 (1<=i<=n) ghi n số nguyên không âm (0 hoặc 1).
Kết quả xuất ra chu trình đường đi. (Chu trình HAMILTON)

8



Thực hành: Trí tuệ nhân tạo
2. Thuật toán giải quyết bài toán.

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Thuật toán đàn kiến giải bài toán người du lịch
Để bắt chước hành vi của các con kiến thực, Dorigo xây dựng các con kiến
nhân tạo (artificial ants) cũng có đặc trưng sản sinh ra vết mùi để lại trên đường đi
và khả năng lần vết theo nồng độ mùi để lựa chọn con đường có nồng độ mùi cao
hơn để đi. Với bài toán Người du lịch trên đồ thị trong không gian hai chiều với
trọng số là khoảng cách Euclide giữa hai đỉnh bất kỳ, Dorigo gắn với mỗi cạnh (i, j)
ngoài trọng số d(i, j) trên là nồng độ vết mùi trên cạnh đó, đặt là
. Ban đầu, các
nồng độ mùi trên mỗi cạnh được khởi tạo bằng một hằng số c nào đó.
Phương pháp tìm đường đi mô phỏng hành vi con kiến
Các con kiến sẽ tiến hành tìm đường đi từ đỉnh xuất phát qua một loạt các
đỉnh và quay trở về đỉnh ban đầu, tại đỉnh u một con kiến sẽ chọn đỉnh v
chưa được đi qua trong tập láng giềng của u theo xác suất sau:

trong đó
.- UV(u) là tập các đỉnh láng giềng của u chưa được con kiến hiện tại đi qua.
gọi là thông tin heurtistic giúp đánh giá chính xác hơn sự lựa chọn của

con kiến khi quyết định đi từ đỉnh u qua đỉnh v.

Ta có thể hiểu công thức trên đơn giản như sau: quyết định lựa chọn đỉnh tiếp theo
để đi của con kiến được lựa chọn ngẫu nhiên theo xác suất (tức là đỉnh nào có xác

suất cao hơn sẽ có khả năng được chọn cao hơn, nhưng không có nghĩa là các đỉnh
có xác suất thấp hơn không được chọn mà nó được chọn với cơ hội thấp hơn mà
thôi). Ý tưởng này được thể hiện qua kỹ thuật Bánh xe xố số (Lottery Wheel) sẽ

9


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
được trình bày sau. Và xác suất này (hay khả năng chọn đỉnh tiếp theo của con kiến)
ví dụ
khác
minhđược
họa cho
sự (theo
mềm dẻo
mờ kiến
là việc
tỷ lệ thuận với nồng Một
độ vết
mùi
trênđểcạnh
chọn
đặc của
tínhLogic
của con
tựxác định
nhiên) và tỷ lệ nghịch với độ dài cạnh,
là những hệ số điểu khiển việc lựa chọn
của con kiến nghiêng về phía nào.

Kỹ thuật bánh xe xổ số.
Đây là kỹ thuật phổ biến hay sử dụng trong các phương pháp tìm kiếm dựa vào xác
suất, đặc biệt trong phép toán Chọn lọc (Selection) của thuật toán di truyền (Genetic
Algorithm). Cụ thể kỹ thuật như sau:
Giả sử V={v1,v2, …, vn} là tập các láng giềng của u, p1, p2, …, pn là xác suất lựa
chọn đỉnh tiếp theo từ u của tương ứng v1,v2, …, vn,
tức là chắc

chắn chọn 1 trong các đỉnh trên để đi tiếp. Để đảm bảo ưu thế của những đỉnh có
xác suất lớn, nhưng vẫn đảm bảo cơ hội của các đỉnh có xác suất thấp hơn người ta
sinh ra một số ngẫu nhiên k thuộc (0, sum] rồi chọn i nhỏ nhất sao cho

Cách làm này mô phỏng hoạt động của một vòng quay xổ số (vòng được
chia làm nhiều phần không bằng nhau), rõ ràng khi quay ta không biết kim của bánh
quay sẽ chỉ vào phần nào nhưng ta cũng có thể nhận thấy ngay là phần lớn hơn sẽ
nhiều khả năng kim rơi vào đó hơn. Chính vì vậy kỹ thuật này được gọi là Bánh xe
xổ số.
Như vậy, các con kiến từ một đỉnh xuất phát, lần lượt tới thăm các đỉnh tiếp
theo theo quy tắc trên (thăm xong đánh dấu chúng lại) cho đến thăm tới đỉnh cuối
cùng và quay về đỉnh ban đầu, kết thúc một hành trình. Quá trình này được lặp đi
lặp lại, hành trình tốt hơn (có chiều dài ngắn hơn) sẽ được cập nhật cho đến một
khoảng thời gian đủ tốt (thông thường tính toán theo số vòng lặp, với các trường
hợp nhỏ (số đỉnh <=200) số vòng lặp bằng 500 là đủ tìm ra kết quả tối ưu, còn với
các trường hợp lớn hơn ta phải thử với số lần lặp lớn hơn nhiều, tùy thuộc vào từng
bộ dữ liệu cụ thể.
Sau khi và trong quá trình các con kiến tìm đường đi các vết mùi (
) được
cập nhật lại, vì chúng bị biến đổi do quá trình bay hơi và do quá trình tích lũy của
các con kiến trên cạnh đó. Có rất nhiều cách cập nhật mùi, mỗi cách có ảnh hưởn
nhất định đến chất lượng của thuật toán. Trong phạm vi kiến thức phổ thông, chúng

tôi giới thiệu cách cập nhật mùi đơn giản nhất như sau:
Sau mỗi vòng lặp (các con kiến đều tìm được hành trình riêng của mình), vết
mùi trên mỗi cạnh được cập nhật lại theo công thức sau:

10


Thực hành: Trí tuệ nhân tạo

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

trong đó

gọi là tham số bay hơi (sở dĩ gọi như vậy vì sau mỗi lần cập nhật

lượng mùi trên cạnh (i,j) sẽ mất đi một lượng là

, thường được chọn là

0,8 trong cài đặt và chạy chương trình. Ngoài lượng bay hơi mất đi đó mỗi cạnh (i,
j) còn được tích tụ thêm một lượng mùi
nhất định tùy thuộc vào từng con kiến
đi qua, cụ thể được tính như sau:

trong đó Q là một hằng số, Lk là độ dài hành trình của con kiến thứ k.
Nhờ việc cập nhật mùi này, sau mỗi vòng lặp (hay sau mỗi lần các con kiến đi
hết hành trình), nồng độ vết mùi trên các cạnh sẽ thay đổi (hoặc giảm hoặc tăng
dần) ảnh hưởng đến quyết định chọn của các con kiến, có thể ở bước lặp này chọn

một cạnh để đi nhưng đến bước lặp khác vẫn con kiến đó lại không đi qua cạnh đó
nữa. Nhờ vậy thuật toán có khả năng tìm được lời giải tốt trong những trường hợp
dữ liệu cực lớn.
3. cài đặt thuật toán.
4. Kết quả demo.
V. Bài toán hệ thống dây diện
1. Đề bài.
Một công ty cần thay toàn bộ hệ thống dây điện cho N phòng làm việc. Cho biết
sơ đồ mạng lưới điện hiện có của n căn phòng được biểu diễn bằng ma trận A[i,j]
trong đó A[i,j] chính là độ dài của dây điện nối giữa 2 phòng i và j (A[i,j]=A[j,i],
A[i,j]=0 nếu không có (không thể) dây nối giữa phòng i và j). Hãy lập trình tính độ
dài của dây dẫn cần sử dụng sao cho cả N phòng dều có điện và số lượng này là ít
nhất.
Dữ liệu được đọc từ file có N+1 dòng dạng như sau: DULIEU.INP
Dòng 1: Ghi số nguyên N.
Dòng i+1 (1<=i<=N) ghi N số nguyên A[i,1] A[i,2] .........A[i,N].
Các số ghi trên 1 dòng cách nhau ít nhất 1 dấu cách.
Kết quả xuất ra màn hình cách nối và tổng độ dài nhỏ nhất.

11


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
2. Thuật toán Prim tìm cây phủ tối tiểu.
dụđỉnh
kháckđểbất
minh
họa chothường
sự mềmchọn

dẻo của
việc xác định
Bước 1: XuấtMột
phátvítừ
kỳ (thông
đỉnhLogic
đầu mờ
tiên)là chọn
một cạnh có trọng số nhỏ nhất liền kề với đỉnh k (min{A[k][j]}j=1..n) ta
đánh dấu 2 đỉnh đi qua cạnh đó
và số cạnh tìm được là 1. Chuyển sang bước 2.
Bước 2: Tìm cạnh nhỏ nhất của đồ thị với điều kiện cạnh tìm được phải có 1
đỉnh chưa đánh dấu và 1 đỉnh đã đánh dấu (min{A[i][j]}j=1..n, i=1..n sao
cho i đánh đấu và j chưa đánh dấu) để tránh trường hợp tạo thành chu trình.
Ta tăng số cạnh tìm được lên 1 và chuyển sang bước 3.
Bước 3: Nếu số cạnh tìm được bằng n-1 kết thúc thuật toán, ngược lại quay
về bước 2.
3. Cài đặt thuật toán.
Ta tổ chức mảng 1 chiều D để đánh dấu . Nếu D[i]=1 đỉnh i được đánh
dấu và D[i]=0 nếu i chưa được đánh dấu.
Bước 1: Tìm min{A[1][j]}j=1..n. Sau đó gán D[1]=D[j]=1 (đánh dấu 2 đỉnh
1,j) và cho số cạnh tìm được bằng 1 (Dem=1).
Bước 2: Tìm min{A[i][j]}j=1..n, i=1..n với điều kiện D[i]=1 và D[j]=0. Sau
đó gán D[j]=1 (đánh dấu đỉnh j vừa tìm được) và tăng số cạnh lên 1 (Dem+
+).
Bước 3: Nếu Dem = n-1 thì thuật toán kết thúc.
4. Kết quả demo.
VI. Trò chơi đoán số
1. Đề bài.
Cậu bé nghĩ ra 1 số (Gọi là S) gồm bỗn chữ số (không nhất thiết khác nhau)

trong sáu chữ số từu 1 đến 6. Để tìm số đó máy lần lượt đưa ra các số dự đoán (gọi
là M), mỗi số gồm 4 chữ số không nhất thiết khác nhau. Với mỗi lần dự đoán, máy
nhận được 2 câu trả lời của cậ bé cho 2 câu hỏi sau.
Có bao nhiêu chữ số trong M là chữ số trong S nhưng vị trí xuất hiện của
mỗi chữ số đó là sai?
Có bao nhiêu chữ số trong M là chữ số trong S và đồng thời vị trí xuất hiện
của mỗi chữ số đều đúng?
Yêu cầu: Hãy hiện lên màn hình các số máy dự đoán và nói mỗi số đó nhận 2 câu
trả lời từ bàn phím của cậu bé cho đến khi được số đúng như cậu bé nghĩ. (Số lần
dự đoán không quá 6 lần).
Ví dụ: Số cần tìm là 5436
1234
Đúng số - Đúng vị trí : 1

12


Thực hành: Trí tuệ nhân tạo
Đúng số - Sai vị trí : 1
2156

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Đúng số - Đúng vị trí : 1
Đúng số - Sai vị trí : 1
1416
Đúng số - Đúng vị trí : 2
Đúng số - Sai vị trí : 0

5436
Đúng số - Đúng vị trí : 4
Đúng số - Sai vị trí : 0
2. Thuật toán.
3. Cài đặt thuật toán.
4. Kết quả demo.

VII. Chia quà
1. Đề bài.
Trong ngày sinh nhật Tom và Jerry nhận được N đồ chơi (N<=40). Trên đồ chơi
i có giá tiền là Xi. Hai anh em quyết định mỗi người phải có trách nhiệm bảo quản 1
phần số quà và phân chia sao cho chênh lệch tổng giá trị tiền đồ chơi mà mỗi người
phải bảo quản là ít nhất. Hãy giúp Tom bà Jerry phân chia trách nhiệm. Dữ liệu đọc
từ file text có dạng sau:
Dòng 1 : ghi số nguyên dương N.
Dòng 2 : Ghi N số nguyên dương tương ứng với giá trị N đồ vật.

2. Thuật toán
Với một số M bất kì, nếu ta biếtđược có tồn tại một cách chọn các gói kẹo để
tổng số kẹo của các gói được chọnbằng đúng M không, thì bài toán được giải sẽ
quyết. Vì đơn giản là ta chỉ cầnchọn số M sao cho M gần với Ai/2nhất (với i
=1,2,..,N). Sau đó xếp các gói kẹo để tổng bằng M vào phần một,phần thứ hai sẽ
gồm các gói kẹo còn lại. Để kiểm tra được điều trên ta sẽ xâydựng tất cả các tổng có

13


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
thể có của N gói kẹo bằng cách: ban đầu chưa có tổngnào được sinh ra. Làm lần

dụN,
khác
minh
mềmtra
dẻoxem
của hiện
Logictạimờ
việc xác định
lượt với các gói kẹo Một
từ 1 ví
đến
vớiđểgói
kẹohọa
thứcho
i,tasựkiểm
cólàcác
tổng nào đã được sinh ra, giả sử các tổng đó làx1, x2,.., xt vậy thì đến bước này sẽ có
thểsinh ra các tổng x1, x2,.., xt và Aivà x1+Ai,x2+Ai,..,xt+Ai.Với N gói kẹo, mà mỗi
gói có không quá 100 cái kẹo vậy tổng số kẹo không vượtquá N*100 <= 10000 cái
kẹo. Dùng mảng đánh dấu D, nếu có thể sinh được ratổng bằng k thì D[k] = 1
ngược lại D[k] = 0.
3. Cài đặt thuật toán.
4. Kết quả demo.
VIII. Tô màu bản đồ
1. Đề bài.
Có 1 bản đồ có N nước. Mỗi nước được tô 1 màu để phân biệt. Các nước liền kề
nhau không được tô cùng màu với nhau. Hãy xác định số màu tối thiểu để tô bản đồ
sao cho các miền kề nhau không được tô cùng màu.
◊ File dữ liệu đầu vào: GRAPH.INP có cấu trúc
n


m

(n đỉnh:1,2,...,n; m là số cạnh)

x1

y1

(danh sách m cạnh)

x2

y2
....

xm

ym

................
◊ File kết quả: COLOR.OUT
VERTEX:

1

2

...


n

COLOR:

c1

c2

...

cn

◊ Ví dụ:
GRAPH.INP

COLOR.OUT

10

18

VERTEX: 1 2

3 4 5 67 8 9 10

1

2

COLOR: 2 3


2 1 1 12 3 2 3

1

4

1

5

1

8

14


Thực hành: Trí tuệ nhân tạo
2
3
2

5

2

6

3


5

3

6

3

8

4

7

5

7

5

8

5

9

6

9


6

10

8

9

9

10

------

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

----------

5

5

VERTEX:

1

2


3

4

5

1

2

COLOR:

1

2

1

2

3

2

3

3

4


4

5

5

1

2. Thuật toán
Giả sử chúng ta có một đồ thị chứa các đỉnh x và y. G: xy là một đồ thị thu
được từ đồ thị G bằng
cách thay thế hai đỉnh x và y bằng một đỉnh, đỉnh đó có cạnh nối tới tất cả các
đỉnh kề với đỉnh x, y
hoặc cả x lẫn y. Hay là hai đỉnh x và y đã được nhập với nhau. Đồ thị G - {x} là
một đồ thị thu được

15


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Từ đồ thị G bằng cách loại bỏ đỉnh x cùng với tất cả các cạnh nối tới đỉnh x đó.
Một đồ thị trống Một
là đồví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định
thị không chứa một đỉnh hay một cạnh nào. Hai đỉnh gọi là kề nhau nếu có cạnh
nối với nhau.
Với một đỉnh x bất kỳ, ta xây dựng một tập các bộ 3 như sau:
Code:
(x, z(1,1), y1)

(x, z(1,2), y1)
. ........
(x, z(1,m1), y1)
. ........
(x, z(i,1), yi)
(x, z(i,2), yi)
. ........
(x, z(i,mi), yi)
. .........
(x, z(n,mn), yn)
Trong đó đỉnh thứ nhất kề với đỉnh thứ hai, đỉnh thứ 2 kề với đỉnh thứ 3. Và
không tồn tại một bộ 3 nào mà:
đỉnh thứ nhất kề hoặc trùng với đỉnh thứ 3. Từ tập các bộ 3 đó, ta tìm các đỉnh yi
sao cho có:
mi = max(m1, m2,..., mn) và đặt yi = x. Nếu có nhiều đỉnh y đạt max ta chọn
đỉnh đầu tiên.
Ta có thể hình dung: Chọn một đỉnh trong số những đỉnh không kề với đỉnh x,
kề với đỉnh (đỉnh trung gian)
kề với đỉnh x, có số đỉnh trung gian là lớn nhất.

16


Thực hành: Trí tuệ nhân tạo
Các bước của thuật toán (đồ thị G là dữ liệu vào):

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định


Bước 1: Đặt j = 1, H=G.
Bước 2: Đặt vj là đỉnh có bậc cao nhất trong H.
Bước 3: Từ vj xây dựng tất cả các bộ 3 như trên và tìm đỉnh x. Nếu không tìm
được x, trong trường hợp
không tìm được bộ 3 nào, chọn một đỉnh có bậc lớn nhất không kề với vj.
Bước 4: Nhập x vào vj và quay lại bước 3 cho tới khi không chọn được một đỉnh
nào nữa thì quay lại bước 2
với : H=H-{vj}, j=j+1.
Bước 5: Khi không còn một đỉnh nào còn lại trong H, dựng lại và tô màu i cho
tất cả các đỉnh được
3.
4.
IX.
1.

Cài đặt thuật toán.
Kêt quả demo.
Người lái đò
Đề bài.

Viết chương trình mô phỏng bài toán người lái đò (có thể có giao diện đồ họa). Bài
toán phát biểu như sau:
Tại bến sông nọ có bắp cải, sói và dê muốn bác lái đò chở qua sông. Biết rằng tại
một thời điểm thuyền của bác lái đò chỉ chở tối đa được 2 khách. Nếu sói và dê
đứng riêng với nhau (không có mặt bác lái đò và bắp cải) thì sói sẽ ăn thịt dê. Nếu
dê và bắp cải đứng riêng với nhau (không có mặt bác lái đò và sói) thì dê sẽ ăn bắp
cải.
Ký hiệu bờ sông mà sói, dê, bắp cải và bác lái đò đang đứng là 1, bờ sông bên kia là
2. Hãy viết chương trình giải quyết bài toán trên.


2. Thuật toán
Với bài toán này , cách biểu diễn tri thức tốt nhất có thể vạch ra các ràng buộc
vốn sẵn có trong bài toán đó là
Xây dựng một biểu đồ với các nút có đánh nhãn biều diễn người lái đò mang
theo thứ mà ông ta cần mang theo trên mỗi chuyến đò .
Và các cạnh liên kết giữa các nút biễu diễn bằng các đường mũi tên chỉ các chuyến
đò sang sông

17


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Biểu đồ biễu diễn tri thức của bài toán người lái đò được mô tả như hình:

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Với người lái đò và ba thứ ông ta muốn mang theo ở bên này sông hay bên
kia sông , ta có 21+3 = 16 lần sắp xếp khác nhau , trong đó 6 lần sắp xếp khác qua
lại sông không an toàn đó là :







Sói , dê và bắp cải bên này sông hoặc bên kia sông
Sói và dê bên này sông hoặc bên kia sông
Dê và bắp cải bên này sông hoặc bên kia sông

Và 10 lần sắp xếp qua sông an toàn đó là ( Kí hiệu: Sói :S , Dê : D , Bắp cài : B ,
Người lái đò : N)
LD  SB
LSD  B
LSB  D
LDB  S
LSDB  Rỗng

18


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Khi tri thức của bài toán đã được biễu diễn , phương pháp giải bài toán trong
ví dụ
để minh
họa cho
sự mềm
củadiễn
Logic
việc xác định
lĩnh vực trí tuệ nhânMột
tạo đó
là khác
kỹ thuật
tìm kiếm
trong
miềndẻo
biểu
tri mờ

thứclà của
bài toán đó .
Để giải bài toán người lái đò , kỹ thuật tìm kiếm là bằng cách bám dò tìm theo
các đường mũi tên bắt đầu từ nút khởi tạo liên kết qua các nút để đi đến đích .
3. Cài đặt thuật toán.
4. Kêt quả demo.

X. Qua sông
1. Đề bài.
Viết chương trình mô phỏng bài toán qua sông (có thể có giao diện đồ họa). Bài
toán phát biểu như sau:
Tại bến sông nọ có 3 thầy tu và 3 con quỷ muốn qua sông. Biết rằng tại một thời
điểm thuyền chỉ chở tối đa được 2 khách. Nếu bất cứ ở trên bờ nào, bên này hoặc
bên kia thì số con quỷ phải bé hơn hoặc bằng số thầy tu, ngược lại quỷ sẽ ăn thịt
thầy tu.
Hãy viết chương trình giải quyết bài toán trên.
2. Thuật toán giải quyết.
Bài toán tập trung vào qui tắc : Nếu ở 1 "nơi" nào đó, số Quỷ(Q) nhiều hơn số
người(N) thì quỷ sẽ ăn người - nói theo ứng xử trò chơi, đây là trạng thái "thua" còn nói theo tập trạng thái ta đang muốn xây dựng thì đây là "trạng thái vị phạm",
và nó sẽ không được xem xét trong tập trạng thái của ta ( sẽ gọi là 1 trạng thái sai,
nếu có phát sinh trong quá trình tìm kiếm cũng sẽ bị bỏ qua, không bao giờ xét đến)
Cách thức biến đổi từ trạng thái này đến trạng thái khác là : Từ bờ bên có thuyền
chất 1, 2 N/Q gì đó lên thuyền và cho chạy qua bờ bên kia. Trạng thái xung đột sẽ
chỉ được
Xem xét sau khi N/Q đã sang được bên kia.
Xét về “nơi” có thể xảy ra xung đột thì có tất cả ba nơi.
Thuyền, bờ 1, bờ 2
Dễ thấy đối với "thuyền" thì theo mô tả bài toán này, sẽ không có xung đột trên
thuyền. Đơn giản vì thuyền phải có ít nhất 1 N/Q ( Người hay quỷ) điều khiển mới
chạy, và trên thuyền cho phép chở nhiều nhất 2 N/Q. Xét mọi trường hợp, ko có

xung đột trên thuyền

19


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Cho nên ta chỉ quan tâm đến tình trạng N/Q 2 bờ, và vị trí của thuyền ở đâu ( Bờ
Một
ví là
dụnếu
khácđãđểbiết
minh
sự mềmydẻo
mờ là
việc xác định
1/ Bở 2 ?). 1 nhận xét
nữa
bờhọa
1 cócho
x người,
quỉ,của
ta Logic
cũng biết
luôn
bên bờ 2 có 3-x người, 3-y quỷ. Vậy để phân biệt các trạng thái của bài này ta chỉ
cần biết 3 yếu tố:
Số người bên bờ 1.
Số quỷ bên bờ 1.
Thuyền đang ở bờ 1(true/false)

Như vậy, chỉ cần dùng 1 mảng [3][3][2]theo thứ tự [số người bờ 1][số quỷ bờ 1][thuyền đang ở bờ 1?] là có thể mô tả tất cả
các trạng thái có thể có
Qui tắc xung đột đối với trạng thái [x,y,b] : Trạng thái là xung đột nếu?
Hoặc là (x>0 và y>x) xung đột bên bờ 1
Hoặc là (3-x>0 và 3-y>3-x) xung đột bên bờ 2
Tập các trạng thái có thể đến từ [x,y,true] (tổng quát ): [x-1,y,false], [x-2,y,
false], [x-1,y-1,false], [x,y-1,false], [x,y-2,false]
Tuơng tự, ta có thể xây dựng tập các trạng thái có thể đến từ [x,y,false]
Trạng thái đầu: [3,3,true]
Trạng thái đích: [0,0,false]
3. Cài đặt thuật toán.
4. Kết quả demo

PHẦN II. AI
Lý thuyết về Logic mờ.
Lý thuyết mờ đã được nhắc đến rất nhiều trong những năm gần đây. Trên thế
giới và ở Việt Nam đã có nhiều tác giả nghiên cứu và áp dụng thành công lý thuyết
mờ trong các lĩnh vực điều khiển sản xuất công nghiệp, trong các sản phẩm gia
dụng...w. Tuy nhiên một bộ điều khiển mờ trong thực tế nó ra sao? Phần này tôi sẽ
trình bày về các vấn đề, thứ nhất là lý thuyết điều khiển mờ, sau đó là giới thiệu về

20


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
quá trình xây dựng bộ điều khiển mờ trong thực tế và các ứng dụng sử dụng logic
Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định
mờ.
Lôgic mờ (tiếng Anh: Fuzzy logic) được phát triển từ lý thuyết tập mờ để thực

hiện lập luận một cách xấp xỉ thay vì lập luận chính xác theo logic vị từ cổ điển.
Người ta hay nhầm lẫn mức độ đúng với xác suất. Tuy nhiên, hai khái niệm này
khác hẳn nhau; độ đúng đắn của lôgic mờ biểu diễn độ liên thuộc với các tập được
định nghĩa không rõ ràng, chứ không phải khả năng xảy ra một biến cố hay điều
kiện nào đó.
Đe minh họa sự khác biệt, xét tình huống sau: Bảo đang đứng trong một ngôi
nhà có hai phòng thông nhau: phòng bếp và phòng ăn. Trong nhiều trường hợp,
trạng thái của Bảo trong tập hợp gồm những thứ "ở trong bếp" hoàn toàn đơn giản:
hoặc là anh ta "trong bếp" hoặc "không ở trong bếp". Nhưng nếu Bảo đứng tại cửa
nối giữa hai phòng thì sao? Anh ta có thể được coi là "có phần ở trong bếp' 1. Việc
định lượng trạng thái "một phần" này cho ra một quan hệ liên thuộc đối với một tập
mờ. Chẳng hạn, nếu Bảo chỉ thò một ngón chân cái vào phòng ăn, ta có thể nói rằng
Bảo ở "trong bếp" đến 99% và ở trong phòng ăn 1%. Một khi anh ta còn đứng ở cửa
thì không có một biến cố nào (ví dụ một đồng xu được tung lên) quyết định rằng
Bảo hoàn toàn "ở trong bếp" hay hoàn toàn "không ở trong bếp".
Logic mờ cho phép độ liên thuộc có giá trị trong khoảng đóng 0 và 1, và ở
hình thức ngôn từ, các khái niệm không chính xác như "hơi hơi”, "gần như", "khá
là" và "rất”. Cụ thể, nó cho phép quan hệ thành viên không đầy đủ giữa thành viên
và tập họp. Tính chất này có liên quan đến tập mờ và lý thuyết xác suất.
A=”youns"

HA(
X).
1

MA(X>

1

X [years]


X-23
Boolean Logic
A="yoiins'

3T

X-23

X

Fuzzy Logic

21


Thực hành: Trí tuệ nhân tạo

GVHD: Võ Đức Hoàng

Một ví dụ khác để minh họa cho sự mềm dẻo của Logic mờ là việc xác định

Hình 6: Sự khác nhau giữa hai loại Logic trong việc xác định lứa tuổi
Nhìn ở hình vẽ trên, nếu như đối với Boolean Logic (tương ứng với Crisp Sets)
quy định tuổi dưới 23 mới được coi là “trẻ tuổi” thì ở Fuzzy Logic (tương ứng với
Fuzzy Sets), có sự xác định mềm dẻo hơn khi không quy định khắt khe chính xác
bao nhiêu tuổi mới là trẻ. Điều này hợp hơn với thực tế bởi vì đôi khi tuổi tác còn
do con người cảm nhận, có người coi dưới 23 tuổi là trẻ còn có người coi trên 23
tuổi một vài năm vẫn là trẻ, hoặc dưới 23 tuổi một vài năm đã không còn là trẻ
nữa.Qua đó ở ví dụ này ta thấy các giá trị Fuzzy mềm dẻo hơn rất nhiều so với

Crisp sets, phù hợp hơn với người dùng.
Công cụ thực hiện hệ Logic mờ.
Việc thiết kế hệ điều khiển mờ có thể thực hiện bằng các phương pháp khác
nhau như là thiết kế hệ mềm hoặc thiết kế hệ cứng. Mỗi phương pháp có những ưu
nhược điểm riêng, thiết kế hệ cứng cho phép người thiết kế đánh giá được các luật
mờ một cách nhanh chóng nhưng việc thiết kế theo cách này thường rất tốn kém.
Thiết kế hệ mềm là cách tốt nhất để xây dựng nên một hệ điều khiển mờ, bằng cách
sử dụng các phần mềm lập trình có sẵn, và có thể mô phỏng hệ thống.
Thiết kế hệ mềm có thể sử dụng các phần mềm chuyên dụng về xử lý mờ như
Matlab, FuzzyTech, Winfact,.. .Việc làm này cho phép xây dung rất nhanh một hệ mờ,
mô phỏng và đành giá được ngay hệ thống. Nhưng trở ngại lớn vẫn là vấn đề kinh
tế.
Việc thiết kế hệ mềm vẫn có thể thực hiện được với các ngôn ngữ lập trình thông
dụng như c++, Delphi, VB,C# ...Việc xử lý mờ sẽ được thực hiện trên máy tính bàng

22


Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
phần mềm tự xây dựng. Sau đó là việc trao đổi dữ liệu với thiết bị chấp hành,và các
ví dụ
khácđảm
để minh
họa cho sự
là việc
xác định
thiết bị đo sẽ do mộtMột
modul
khác

nhận.Modul
đómềm
cũngdẻo
có của
thể Logic
tự xâymờ
dựng
hoặc
cùng các Modul của một hãng khác.
Trước khi quyết định lựa chọn ngôn ngữ lập trình để giải quyết bài toán Logic
mờ, chúng ta cần nắm được những nhiệm vụ cần giải quyết:
-

Cài đặt Cấu trúc dữ liệu mô tả tập mờ và các phép toán trên tập mờ.

-

Cài đặt Cấu trúc dữ liệu mô tả các luật suy diễn và các thao tác xử lý liên quan.

-

Cài đặt và vận hành Motor suy diễn mờ.

-

Cài đặt các công cụ đồ họa cho phép người sử dụng soạn thảo trực quan các tập mờ,
các luật suy diễn.

-


Ghép nối máy tính và thiết bị điều khiển.

-

Các thao tác thông dụng như lưu trữ công việc, kết xuất dữ liệu,...
Do vậy tôi chọn ngôn ngữ lập trình c#, là một ngôn ngữ cho phép:

-

Quản lý tốt mã nguồn.

-

Thư viện cài đặt các cấu trúc dữ liệu và giải thuật cơ bản được cung cấp đầy đủ, sử
dụng tiện lợi.
Trên thị trường hiện nay có một công cụ phát triển sử dụng ngôn ngữ lập trình
C# rất tốt đó là Microsoft Visual C# trong bộ Visual Studio vì những lý do sau:

-

Thư viện lớp của C# Builder rất phong phú và dễ dàng mở rộng, thừa kế. Đây là ưu
điểm vượt trội của nó so với các công cụ phát triển khác.

-

C# Builder không ép buộc người lập trình phải theo một khung ứng dụng nào. Do
vậy, nó rất thích hợp cho người lập trình sáng tạo, có yêu cầu điều chỉnh chi tiết tới
mọi thành phần của chương trình.

23



Thực hành: Trí tuệ nhân tạo
GVHD: Võ Đức Hoàng
Một số ửng dụng của Logic mờ.
Lôgic mờ có thể
được
sửkhác
dụngđểđể
điềuhọa
khiển
thiếtdẻo
bị gia
mýviệc
giặtxác định
Một
ví dụ
minh
cho các
sự mềm
của dụng
Logicnhư
mờ là
(cảm nhận kích thước tải và mật độ bột giặt và điều chỉnh các chu kỳ giặt theo đó)
và tủ lạnh.
Một ứng dụng cơ bản có thể có đặc điểm là các khoảng con của một biến liên
tục. Ví dụ, một đo đạc nhiệt độ cho phanh {anti-lock brake) có thể có một vài hàm

24



liên thuộc riêng biệt xác định các khoảng nhiệt độ cụ thể để điều khiển phanh
một cách đúng đắn. Mỗi hàm ánh xạ cùng một số đo nhiệt độ tới một chân giá
trị trong khoảng từ 0 đến 1. Sau đó các chân giá trị này có thể được dùng để
quyết định các phanh nên được điều khiển như thế nào.

0

Hình 7: Mô hình đoán nhận nhiệt độ
Trong hình, cold (lạnh), warm (ấm), và hot (nóng) là các hàm ánh xạ một thang
nhiệt độ. Một điểm trên thang nhiệt độ có 3 "chân giá trị" — mỗi hàm cho một
giá trị. Đối với nhiệt độ cụ thể trong hình, 3 chân giá trị này có thể được giải
nghĩa là 3 miêu tả sau về nhiệt độ này: "tương đối lạnh", "hơi hơi ấm", và
"không nóng".
Ví dụ về các ửng dụng khác của lôgic mờ


Các hệ thống con của ô tô và các phương tiện giao thông khác, chẳng hạn
các hệ thống con như ABS và quản lý hơi (ví dụ Tokyo monorail)



Máy điều hòa nhiệt độ
Phan mem MASSIVE dùng trong các tập phim Chúa Nhẫn (Lord of the
Rings), phần mềm đã giúp trình diễn những đội quân lớn, tạo các chuyển
động một cách ngẫu nhiên nhưng vẫn có thứ tự






Camera



Xử lý ảnh s¿(Digital image processing), chẳng hạn như phát hiện biên
(edge detection)



Nồi cơm điện



Máy rửa bát

Thang máy
Trí tuệ nhân tạo trong trò chơi điện




tử

Các bộ lọc ngôn ngữ tại các bảng tin, diễn đàn (message board) và phòng
chát để lọc bỏ các đoạn văn bản khiếm nhã
• Nhận dạng mẫu trong Cảm nhận từ xa ( Remote Sensing)



×