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

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Mô hình biểu diễn tri thức Mạng Các Đối Tượng Tính Toán Và Ứng dụng giải bài toán hình học trên một số đối tượng hình học cơ bản

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 (470.06 KB, 36 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN:
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀI:
Mô hình biểu diễn tri thức Mạng Các
Đối Tượng Tính Toán
Và Ứng dụng giải bài toán hình học
trên một số đối tượng hình học cơ bản
Ging viên phụ trách: GS.TSKH. Hoàng Kiếm
Học viên thực hiện: LÂM HÀN VŨ
Mã học viên: CH1301119
TP. HỒ CHÍ MINH, THÁNG 10/2014
MỤC LỤC
Trang 4
LỜI NÓI ĐẦU
Để có thể hoàn thành tốt bài báo cáo, trước tiên tôi gởi lời chân
thành cảm ơn đến PGS. TSH. Hoàng Kiếm đã tận tình giảng dạy và giúp
đỡ trong thời gian thực hiện bài tiểu luận.
Xin gửi lời cảm ơn đến gia đình, cảm ơn các anh chị, bạn bè, những
người luôn sát cánh, động viên tôi trên bước đường học tập cũng như
trong cuộc sống. Xin chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡ
của tất cả quý thầy cô tại trường Đại học Công Nghệ Thông Tin, đặc biệt
là các thầy cô trong khoa Khoa học Máy tính, cảm ơn các thầy cô thuộc
bộ phận quản trị thiết bị đã tạo điều kiện thuận lợi về mặt tinh thần,
điều kiện học tập trong quá trình học tập môn học. Tất cả các kiến thức
mà nhà trường và quý thầy cô đã truyền đạt là hành trang to lớn để tôi
mang theo trên con đường học tập, làm việc và nghiên cứu cũng như
trong quá trình hoàn thiện nhân cách của mình.
TP. HCM, ngày 10 tháng 10 năm 2014
Học viên


Lâm Hàn Vũ
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 5
I. MỞ ĐẦU
1. TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC
Ngày nay khoa học máy tính và Công nghệ Thông tin phát triển
mạnh mẽ, thâm nhập vào mọi lĩnh vực hoạt động của con người. Trí tuệ
Nhân tạo là một lĩnh vực của khoa học máy tính nhằm nghiên cứu phát
triển các hệ thống ngày càng thông minh hơn, hỗ trợ tốt hơn cho hoạt
động xử lý thông tin và xử lý tri thức, tính toán và điều khiển, Có thể
kể đến một số lĩnh vực áp dụng của Trí tuệ Nhân tạo như:
− Các trò chơi và lý thuyết tìm kiếm heuristic.
− Các hệ chuyên gia.
− Mô phỏng các hành vi và hoạt động thông minh của con người.
− Robotics.
− Máy học, đặc biệt là việc khai khoáng dữ liệu để tìm ra tri thức.
− Xử lý song song và phân tán, các hệ lập kế hoạch thông minh.
Trong quá trình phân tích và thiết kế các hệ thống Trí tuệ Nhân tạo
người ta quan tâm đến 2 vấn đề cơ bản nhất là:
− Biểu diễn tri thức.
− Phương pháp và kỹ thuật tìm kiếm hay suy diễn.
Đối với các hệ giải bài toán dựa trên tri thức (hay một cơ sở tri
thức) như các hệ chuyên gia, các hệ giải toán tự động hay bán tự động,
thì việc biểu diễn tri thức và chiến lược tìm kiếm đóng vai trò quyết định
trong quá trình xây dựng và cài đặt hệ thống. Như vậy, nghiên cứu và
phát triển các mô hình biểu diễn tri thức và suy diễn tự động trên tri
thức giữ một địa vị rất quan trọng trong khoa học máy tính cũng như
trong Trí tuệ Nhân tạo. Các kết quả nghiên cứu về biểu diễn tri thức và
suy luận tự động dựa trên tri thức sẽ là cơ sở và là công cụ cho việc xây
dựng các hệ chuyên gia, các hệ giải bài toán dựa trên tri thức và các hệ

cơ sở tri thức.
Cho tới nay đã có nhiều phương pháp biểu diễn tri thức khác nhau
được các chuyên gia nghiên cứu và đề xuất. Chúng ta có thể tham khảo
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 6
các phương pháp biểu diễn tri thức này trong các sách về Trí tuệ Nhân
tạo như trong [1], [2], [3] và [4]. Người ta có thể phân loại các phương
pháp biểu diễn tri thức thành 4 loại như sau:
− Loại 1: Biểu diễn logic như phương pháp biểu diễn tri thức theo
logic vị từ cấp 1.
− Loại 2: Biểu diễn tri thức thủ tục như phương pháp biểu diễn tri
thức dạng hệ luật dẫn.
− Loại 3: Biểu diễn tri thức dạng mạng như mạng ngữ nghĩa.
− Loại 4: Biểu diễn tri thức theo cấu trúc như các frames và các
object (đối tượng).
Mỗi phương pháp biểu diễn tri thức đều có ưu nhược điểm của nó
và có các công cụ lập trình có thể sử dụng cho việc cài đặt các biểu diễn
và xử lý. Chẳng hạn như các ngôn ngữ lập trình PROLOG và LISP có thể
sử dụng tiện lợi cho việc cài đặt xử lý các biểu diễn tri thức theo logic vị
từ. Các biểu diễn cấu trúc có thể sử dụng các ngôn ngữ C, C++ hay Java
cho việc cài đặt. Tuy nhiên, mỗi công cụ lập trình cũng có những ưu
nhược điểm của nó.
Cùng với các phương pháp biểu diễn tri thức, các nhà nghiên cứu
cũng đề xuất một số phương pháp suy luận và kỹ thuật suy diễn để làm
cơ sở cho việc xây dựng các động cơ suy diễn trong các hệ chuyên gia
và các hệ giải bài toán dựa trên tri thức. Một số phương pháp suy diễn
chung như suy diễn tiến, suy diễn lùi, suy diễn kết hợp tiến và lùi, suy
diễn với các heuristics.
2. TỔNG QUAN VỀ CÁC HỆ GIẢI TOÁN VÀ PHẠM VI TIỂU LUẬN
Giáo dục đóng một vai trò rất quan trọng trong việc xây dựng và

phát triển đất nước. Đầu tư cho lĩnh vực giáo dục luôn được đặt lên hàng
đầu. Những năm gần đây, việc tin học hóa cho phương pháp học tập và
giảng dạy trong giáo dục đang được đầu tư và đẩy mạnh.
Với sự phát triển như vũ bão của tin học thì việc ứng dụng tin học
vào các ngành khoa học khác đang phát triển một cách song song. Đặc
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 7
biệt, với toán học là một ngành khoa học được ứng dụng rất nhiều trong
các lĩnh vực khác nhau của cuộc sống như kinh doanh, quản lý, giáo
dục… thì việc ứng dụng tin học trong toán học mang lại ý nghĩa vô cùng
quan trọng.
Hiện nay trên thế giới đã có một số phần mềm dành cho toán học.
Một số phần mềm chuyên dụng như: vẽ đồ thị Graph, Geometry,
Mathprof …đến các phần mềm toán học được gọi là “siêu mạnh” như
Maple, Mathematica…Các phần mềm toán học này đã giúp ích khá
nhiều trong việc học toán cũng như giải toán, tuy nhiên chúng cũng còn
một số hạn chế sau:
− Một số phần mềm chỉ hỗ trợ việc nh toán đơn giản (nh toán số học, nh toán trên các
đối tượng cơ bản,…) hay chỉ cung cấp một số công cụ hỗ trợ một yêu cầu cụ thể nào đó
(vẽ đồ thị, cung cấp các công thức toán học,…).
− Một số phần mềm tốt hơn thì hỗ trợ thao tác trên các đối tượng trừu tượng như ma trận,
vector, đạm hàm, ch phân,…nhưng chúng chỉ dừng lại ở việc đưa ra kết quả hoặc nếu có
chỉ là một số bước hướng dẫn nhưng phức tạp.
Chính vì vậy, việc xây dựng một chương trình hỗ trợ việc học và
giải toán thật sự có ý nghĩa. Trong phạm vi của một bài tiểu luận, tôi xin
trình bày 2 mô hình biểu diễn tri thức, đó là Mạng Tính Toán và Mạng
Các Đối Tượng Tính Toán. Từ đó ứng dụng nó vào việc xây dựng 1 gói
phần mềm hỗ trợ giải bài toán hình học trên một số đối tượng hình học
cơ bản.
Chẳng hạn với bài toán:

Cho tam giác ABC cân tại A có góc A=30
0
. Bên dưới cạnh BC của
tam giác ABC có hình vuông BEFH và hình chữ nhật ECDF như hình vẽ.
Biết hình chữ nhật ECDF có diện tích bằng 30, chiều dài bằng 5. Tính
diện tích của tam giác ABC.
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 8

Với yêu cầu bài toán như trên, ta có quy ước nhập dữ liệu đầu vào
như sau:
Và gói phần mềm sẽ cho kết quả:
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 9
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 10
II. MÔ HÌNH MẠNG TÍNH TOÁN
1. ĐỊNH NGHĨA
Mạng nh toán bao gồm:
+ Một tập hợp các biến M
M = {x
1
, x
2
, , x
n
}
+ Một tập hợp các quan hệ (nh toán) F trên các biến.
F = {f
1

, f
2
, , f
m
}
Đối với mỗi f ∈ F, ta ký hiệu M(f) là tập các biến có liên hệ trong
quan hệ f. Dĩ nhiên M(f) là một tập con của M: M(f) ⊆ M. Nếu viết f dưới
dạng: f : u(f) → v(f) thì ta có M(f) = u(f) ∪ v(f).
Ví dụ 2.1:
Quan hệ f giữa 3 góc A, B, C trong tam giác ABC cho bởi hệ thức:
A+B+C = 180 (đơn vị: độ)
Ta có M(f) = {A, B, C}
Ví dụ 2.2:
Quan hệ f giữa nửa chu vi p với các độ dài của 3 cạnh a, b, c:
2*p = a + b + c
Ta có M(f) = {a, b, c, p}
Ví dụ 2.3:
Mạng suy diễn cho một hình chữ nhật. Việc tính toán trên một hình chữ
nhật liên quan đến một số yếu tố của hình chữ nhật như sau:
b
1
, b
2
: hai cạnh của hình chữ nhật;
d : đường chéo của hình chữ nhật;
S : diện tích của hình chữ nhật;
p : chu vi của hình chữ nhật;
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 11
trong đó mỗi biến đều có giá trị thuộc tập các số thực dương. Giữa các

biến ta đã biết có các quan hệ tính toán sau đây:
f
1
: S = b
1
* b
2
;
f
2
: p = 2 * (b
1
+ b
2
);
f
3
: d
2
= b
1
2
+ b
2
2
;
Như vậy tập biến và tập quan hệ của mạng này là :
M = {b
1
, b

2
, d, s, p},
F = {f
1
, f
2
, f
3
}.
2. CÁC VẤN ĐỀ
Cho một mạng tính toán (M,F), M là tập các biến và F là tập các quan hệ.
Giả sử có một tập biến A ⊆ M đã được xác định và B là một tập biến bất
kỳ trong M.
 Các vấn đề đặt ra
1. Có thể xác định được tập B từ tập A nhờ các quan hệ trong F
hay không?
2. Nếu có thể xác định được B từ A thì quá trình tính toán giá trị
của các biến thuộc B như thế nào?
Trong trường hợp không thể xác định được B, thì cần cho thêm điều kiện
gì để có thể xác định được B.
Bài toán xác định B từ A trên mạng tính toán (M, F) được viết: A →
B, trong đó A được gọi là giả thiết, B được gọi là mục tiêu tính toán của
bài toán.
Định nghĩa 2.1: Giả sử (M,F) là một mạng suy diễn và A là một
tập con của M. Một luật suy diễn u → v được được gọi là áp dụng được
trên A khi u ⊂ A. Một quan hệ suy diễn được gọi là áp dụng được trên A
khi nó xác định một luật suy diễn áp dụng được trên A. Cho D = {f
1
,
f

2
, , f
k
} là một dãy các quan hệ suy diễn (hay luật suy diễn) của mạng
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 12
suy diễn (M,F), ta nói dãy D là áp dụng được trên tập A khi và chỉ khi ta
có thể lần lượt áp dụng được các quan hệ f
1
, f
2
, , f
k
xuất phát từ giả
thiết A.
Trong định nghĩa trên, đặt : A
0
= A, A
1
= A
0
∪ M(f
1
), . . . , A
k
= A
k-1

M(f
k

), và ký hiệu A
k
là D(A). Trong trường hợp D là một dãy luật suy diễn
tùy ý ta vẫn ký hiệu D(A) là tập biến đạt được khi lần lượt áp dụng các
quan hệ trong dãy D (nếu được). Có thể nói rằng D(A) là sự mở rộng của
tập A nhờ áp dụng dãy quan hệ D.
Thuật toán tính D(A):
Nhập : Mạng suy diễn (M,F), A ⊆ M,
dãy các quan hệ suy diễn D = {f
1
, f
2
, , f
m
}.
Xuất : D(A).
Thuật toán :
1. A’ ← A;
2. for i=1 to m do
if f
i
áp dụng được trên A’ then
A’ ← A’ ∪ M(f
i
);
3. D(A) ← A’
Định nghĩa 2. 2: Ta nói rằng một dãy các quan hệ suy diễn D = {f
1
,
f

2
, , f
k
} ⊆ F là một lời giải của bài toán A → B nếu như ta lần lượt áp
dụng các quan hệ f
i
(i=1, ,k) xuất phát từ giả thiết A thì sẽ suy ra được
các biến thuộc B. Nói cách khác D là một lời giải của bài toán khi D(A) ⊃
B. Bài toán A → B được gọi là giải được khi nó có một lời giải.
Lời giải {f
1
, f
2
, , f
k
} được gọi là lời giải tốt nếu không thể bỏ bớt
một số bước tính toán trong quá trình giải, tức là không thể bỏ bớt một
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 13
số quan hệ trong lời giải. Lời giải được gọi là một lời giải ngắn nhất khi
nó có số bước suy diễn thấp nhất, tức là số quan hệ suy diễn áp dụng
trong suy diễn là ít nhất.
 Lời giải cho bài toán A → B trên mạng tính toán (M,F)
Thuật toán 1: Tìm một lời giải cho bài toán A→ B
Nhập:
+ Mạng tính toán (M,F)
+ Tập giả thiết A ⊆ M
+ Tập biến cần tính B ⊆ M.
Xuất: Lời giải cho bài toán A → B
Thuật toán:

1. Solution ← empty; // Solution là dãy các quan hệ sẽ áp dụng
2. if B ⊆ A then
begin
Solution_found ← true; // Solution_found = true khi bài toán giải được
goto 4;
end
else
Solution_found ← false;
3. Repeat
Aold ← A;
Chọn ra một f ∈ F chưa xem xét;
while not Solution_found and (chọn được f) do
begin
if ( f đối xứng and 0 < Card (M(f) \ A) ≤ r(f) ) or
( f không đối xứng and ∅ ≠ M(f) \ A ⊆ v(f) ) then
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 14
begin
A ← A ∪ M(f); Solution ← Solution ∪ {f};
end;
if B ⊆ A then
Solution_found ← true;
Chọn ra một f ∈ F chưa xem xét;
end; { while }
Until Solution_found or (A = Aold);
4. if not Solution_found then
Bài toán không có lời gii;
Else
Solution là một lời gii;
Thuật toán 2: Tìm một lời giải tốt từ một lời giải đã biết

Nhập:
+ Mạng nh toán (M,F)
+ Lời giải {f
1
, f
2
, , f
m
} của bài toán A→ B.
Xuất: Lời giải tốt cho bài toán A → B
Thuật toán:
1. D ← {f
1
, f
2
, , f
m
};
2. for i=m downto 1 do
if D \ {f
i
} là một lời gii then D ← D \ {f
i
};
3. D là một lời gii tốt.
Thuật toán 3: Kiểm tra lời giải cho bài toán
Nhập:
+ Mạng nh toán (M,F)
+ Bài toán A→ B
+ Dãy các quan hệ {f

1
, f
2
, , f
m
}.
Xuất: thông Un cho biết {f
1
, f
2
, , f
m
} có phải là lời giải của bài toán A→ B hay không?
Thuật toán:
1. for i=1 to m do
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 15
if ( f
i
đối xứng and Card (M(f
i
) \ A) ≤ r(f
i
) ) or
( f
i
không đối xứng and M(f
i
) \ A ⊆ v(f
i

) ) then
A ← A ∪ M(f
i
);
2. if A ⊇ B then
{f
1
, f
2
, , f
m
} là lời gii
else
{f
1
, f
2
, , f
m
} không là lời giải;
3. VÍ DỤ
Xét một ví dụ cụ thể để minh họa cho các thuật toán trên: cho tam
giác ABC có cạnh a và 2 góc kề là β, γ được cho trước. Hãy xác định
(hay suy ra) S của tam giác.
Để tìm ra lời giải cho bài toán trước hết ta xét mạng suy diễn của
tam giác. Mạng suy diễn này gồm :
1. Tập biến M = {a, b, c, α, β, γ, h
a
, h
b

, h
c
, S, p, R, r, },
trong đó a,b,c là 3 cạnh; α, β, γ là 3 góc tương ứng với 3 cạnh; h
a
, h
b
, h
c

là 3 đường cao; S là diện tích tam giác; p là nửa chu vi; R là bán kính
đường tròn ngoại tiếp tam giác; r là bán kính đường tròn nội tiếp tam
giác, v.v
2. Các quan hệ suy diễn thể hiện bởi các công thức sau đây:
f
1
: α + β + γ = 180
f
2
:
a
sin
b
sin
α β
=
f
3
:
c

sin
b
sin
γ β
=
f
4
:
a
sin
c
sin
α γ
=
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 16
f
5
: p = (a+b+c) /2
f
6
: S = a.h
a
/ 2
f
7
: S = b.h
b
/ 2
f

8
: S = c.h
c
/ 2
f
9
: S = a.b.sinγ / 2
f
10
: S = b.c.sinα / 2
f
11
: S = c.a.sinβ / 2
f
12
: S =
p(p a)(p b)(p c)− − −
v.v
Mục tiêu của bài toán là suy ra S (diện tích của tam giác).
Theo đề bài ta có giả thiết: A = {a, β, γ}, và tập biến cần xác định:
B = {S}.
Áp dụng thuật toán tìm lời giải sẽ được một lời giải cho bài toán là
dãy quan hệ suy diễn sau:
{f
1
, f
2
, f
3
, f

5
, f
9
}.
Xuất phát từ tập biến A, lần lượt áp dụng các quan hệ trong lời giải
ta có tập các biến được xác định mở rộng dần đến khi S được xác định :
{a, β, γ}
1
f
 →
{a, β, γ, α}
2
f
 →
{a, β, γ, α, b}
3
f
 →
{a, β, γ, α, b, c}
5
f
 →
{a, β, γ, α, b, c, p}
9
f
 →
{a, β, γ, α, b, c, p, S}.
Có thể nhận thấy rằng lời giải này không phải là lời giải tốt vì có
bước suy diễn thừa, chẳng hạn là f
5

. Dùng thuật toán tìm lời giải tốt để
tìm ra một lời giải tốt là:
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 17
{f
1
, f
2
, f
9
}
{a, β, γ}
1
f
 →
{a, β, γ, α}
2
f
 →
{a, β, γ, α, b}
9
f
 →
{a, β, γ, α, b,
S}.
Theo lời giải này, ta có quá trình suy diễn như sau :
bước 1:
Xác định α (áp dụng f
1
).

bước 2:
Xác định b (áp dụng f
2
).
bước 3:
Xác định S (áp dụng f
9
).
III. MÔ HÌNH MẠNG CÁC ĐỐI TƯỢNG TÍNH TOÁN
1. ĐỊNH NGHĨA
Mạng các đối tượng tính toán bao gồm:
+ Một tập hợp các đối tượng )nh toán
O = {O
1
, O
2
, , O
n
}.
+ Một tập hợp các quan hệ giữa các đối tượng
F = {f
1
, f
2
, , f
m
}.
Trong đó, mỗi O
i
có một tập biến và các quan hệ tính toán nội tại

làm cơ sở cho sự thiết lập các hành vi của đối tượng, hay O
i
được biểu
diễn dưới dạng một mạng tính toán.
Đặt:
M(O
i
) = tập hợp tất cả các thuộc tính của đối tượng O
i
M(O) =

n
1i
i
)M(O
=
M(f
i
) = tập hợp các biến trong quan hệ f
i.
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 18
M(F) =
M(f
i
i 1
m
)
=


.
M
i
= M ∩ M(O
i
), i=1, 2, , m.
Ta có:
M(O
i
i 1
n
)
=

⊇ M ⊇
M(f
i
i 1
m
)
=

, hay M(O) ⊇ M ⊇ M(F).
Ví dụ 3.1:
Giả sử có 3 đối tượng O
1
, O
2
, O
3

. Giữa thuộc tính a của O
1
, các thuộc tính
a và b của O
2
, thuộc tính c của O
3
có một quan hệ f xác định bởi hệ thức:
O
3
.c = (O
1
.a)
2
+ O
2
.a * O
2
.b.
Ta có hệ thức f xác định một quan hệ tính toán giữa các đối tượng O
1
, O
2
,
O
3
.
Hình 3.1 f là một quan hệ tính toán giữa O
1
.a, O

2
.a, O
2
.b, O
3
.c
Ví dụ 3.2:
Cho tam giác cân ABC, cân tại A và cho biết trước góc đỉnh α, cạnh đáy
a. Bên ngoài tam giác có hai hình vuông ABDE và ACFG. Tính độ dài EG.
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 19
Hình 3.2 Một bài toán tính toán hình học.
Bài toán có dạng một mạng các đối tượng tính toán bao gồm :
1. Bốn đối tượng :
O
1
: tam giác cân ABC,
O
2
: tam giác AEG,
O
3
: hình vuông ABDE,
O
4
: hình vuông ACFG,
trong đó mỗi tam giác có các biến: a, b, c, GocA, GocB, GocC, h
a
,
h

b
, h
c
, S, p, R, r, và mỗi hình vuông có các biến: a (cạnh), c (đường
chéo), S (diện tích),
2. Các quan hệ giữa các đối tượng :
f
1
: O
1
.c = O
3
.a // cạnh c của tam giác ABC = cạnh của hình vuông
ABDE
f
2
: O
1
.b = O
4
.a // cạnh b của tam giác ABC = cạnh của hình vuông
ACFG
f
3
: O
2
.b = O
4
.a // cạnh b của tam giác AEG = cạnh của hình
vuông ACFG

f
4
: O
2
.c = O
3
.a // cạnh c của tam giác AEG = cạnh của hình vuông
ABDE
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 20
f
5
: O
1
.GocA + O
2
.GocA = π
Trong ví dụ này ta có :
M(f
1
) = { O
1
.c , O
3
.a },
M(f
2
) = { O
1
.b , O

4
.a },
M(f
3
) = { O
2
.b , O
4
.a },
M(f
4
) = { O
2
.c , O
3
.a },
M(f
5
) = { O
1
.GocA , O
2
.GocA },
M = { O
1
.b, O
1
.c, O
1
.GocA, O

2
.b, O
2
.c, O
2
.GocA, O
3
.a, O
4
.a, O
2
.a}.
Lưu ý rằng O
2
.a (cạnh EG của tam giác AEG) là biến cần tính.
2. CÁC VẤN ĐỀ
Cho một mạng các đối tượng tính toán (O, F), trong đó O là tập
hợp các đối tượng tính toán và F là tập hợp các quan hệ giữa các đối
tượng. Xét một tập hợp biến M trên mạng:
M(O) ⊇ M ⊇ M(F).
Giả sử có một tập biến A ⊆ M đã xác định và B là một tập biến bất kỳ
trong M.
 Các vấn đề đặt ra
1. Có thể xác định được tập B từ tập A nhờ các quan hệ trong F và
các đối tượng thuộc O hay không? Nói cách khác, ta có thể tính được giá
trị của các biến thuộc B với giả thiết đã biết giá trị của các biến thuộc A
hay không?
2. Nếu có thể xác định được B từ A thì quá trình tính toán giá trị
của các biến thuộc B như thế nào?
3. Trong trường hợp không thể xác định được B, thì cần cho thêm

điều kiện gì để có thể xác định được B.
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 21
Tương tự như đối với một mạng tính toán, bài toán xác định B từ A trên
mạng (O,F) được viết dưới dạng: A → B, trong đó A được gọi là giả thiết,
B được gọi là mục tiêu tính toán của bài toán. Trường hợp tập B chỉ gồm
có một phần tử b, ta viết vắn tắt bài toán trên là A → b.
Tương tự như trong phần 2, ta có thể định nghĩa khái niệm về tính
“áp dụng được” của một dãy D các phần tử trong F ∪ O trên một tập
biến A ⊆ M, và cũng ký hiệu D(A) là tập hợp biến mở rộng từ A nhờ áp
dụng dãy D trên mạng. Từ đó, chúng ta có thể kiểm chứng dễ dàng
mệnh đề sau:
Mệnh đề 3.1: Trên mạng các đối tượng tính toán (O, M, F) cho A ⊆
M, một dãy D = {t
1
, t
2
, , t
m
} ⊆ F ∪ O áp dụng được trên tập hợp A. Đặt:
A
0
= A, A
1
= t
1
(A
0
), , A
m

= t
m
(A
m-1
),
Ta có :
A
0
⊆ A
1
⊆ . . . ⊆ A
m
= D(A) ⊆ M.
Thuật toán xác định D(A):
1. A’ ← A;
2. for t ∈ D do
if (t áp dụng được trên A’) then A’ ← t(A’);
3. D(A) ← A’;
Định nghĩa 3.1: Một dãy {t
1
, t
2
, , t
k
} gồm các phần tử thuộc F
hay thuộc O được gọi là một lời giải của bài toán A → B trên mạng (O, M,
F) nếu như ta lần lượt áp dụng các t
i
(i=1, ,k) xuất phát từ giả thiết A
thì sẽ suy ra được (hay tính được) các biến thuộc B. Lời giải {t

1
, t
2
, , t
k
}
được gọi là lời giải không thừa nếu không thể bỏ bớt một số “bước tính
toán” trong quá trình giải, theo nghĩa là không thể bỏ bớt một số quan
hệ hay đối tượng trong lời giải.
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 22
Việc tìm lời giải cho bài toán là việc tìm ra một dãy các quan hệ hay các
đối tượng để có thể áp dụng tính ra được B từ A. Điều này cũng có nghĩa
là tìm ra được một quá trình tính toán để giải quyết bài toán.
 Lời giải cho bài toán A → B trên mạng đối tượng tính toán (M,F)
Thuật toán 1: Tìm lời giải cho bài toán A→ B
Nhập:
+ Mạng các đối tượng tính toán (O,F)
+ Với tập biến là M, tập giả thiết A ⊆ M
+ Tập biến cần tính B ⊆ M.
Xuất:
+ Lời giải cho bài toán A → B
Thuật toán:
1. Solution ← empty; // Solution là dãy các quan hệ giữa các đối tượng
2. if B ⊆ A then
begin
Solution_found ← true; // Solution_found = true khi bài toán giải
được
goto 5;
end

else
Solution_found ← false;
3. Repeat
Aold ← A;
Chọn ra một f ∈ F chưa xem xét (trong bước 3 lần nầy);
while not Solution_found and (chọn được f) do
begin
if ( f đối xứng and 0 < Card (M(f) \ A) ≤ r(f) ) or
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 23
( f không đối xứng and ∅ ≠ M(f) \ A ⊆ v(f) ) then
begin
A ← f(A);
Solution ← Solution ∪ {f};
end;
if B ⊆ A then
Solution_found ← true;
Chọn ra một f ∈ F chưa xem xét (trong bước 3 lần nầy);
end; { while }
Until Solution_found or (A = Aold);
4. if not Solution_found then
begin
Chọn ra một O
i
∈ O (theo thứ tự ưu tiên đã nói ở trên) sao cho
O
i
(A) ≠ A;
if (chọn được O
i

) then
begin
A ← O
i
(A);
Solution ← Solution ∪ { O
i
};
if (B ⊆ A) then
begin
Solution_found ← true;
goto 5;
end;
else
goto 3;
end;
end;
5. if not Solution_found then
Bài toán không có lời gii;
else
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 24
Solution là một lời gii;
Thuật toán 2: Tìm một lời giải tốt từ một lời giải đã biết
Nhập:
+ Mạng các đối tượng tính toán (O,F)
+ Lời giải {t
1
, t
2

, , t
m
} của bài toán A→ B.
Xuất: lời giải tốt cho bài toán A → B
Thuật toán:
1. D ← {t
1
, t
2
, , t
m
};
2. for i=m downto 1 do
if D \ {t
i
} là một lời gii then
D ← D \ {t
i
};
3. D là một lời gii tốt.
Thuật toán 3: Kiểm tra lời giải cho bài toán
Nhập:
+Mạng các đối tượng tính toán (O,F)
+ Bài toán A→ B
+ Dãy {t
1
, t
2
, , t
m

} ⊆ F ∪ O.
Xuất: thông tin cho biết {t
1
, t
2
, , t
m
} có phải là lời giải của bài
toán A→ B hay không.
Thuật toán:
1. for i=1 to m do
if (t
i
áp dụng được trên A) then
A ← t
i
(A);
2. if A ⊇ B then
{t
1
, t
2
, , t
m
} là lời gii
else
{t
1
, t
2

, , t
m
} không là lời gii;
GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ
Trang 25
3. VÍ DỤ
Ta khảo sát bài toán đã nêu trong ví dụ 3.2: cho tam giác cân
ABC cân tại A và cho biết trước góc A, cạnh đáy a. Bên ngoài tam
giác có hai hình vuông ABDE và ACFG. Tính độ dài EG.
Như đã trình bày trong ví dụ 3.2, bài toán có thể được biểu diễn
trong một mạng các đối tượng (O, F) bởi GT ⇒ KL với:
O = {O
1
, O
2
, O
3
, O
4
}
F = {f
1
, f
2
, f
3
, f
4
, f
5

}
Ta có:
M = { O
1
.a, O
1
.b, O
1
.c, O
1
.GocA, O
2
.b, O
2
.c, O
2
.GocA , O
2
.a, O
3
.a,
O
4
.a }
GT = { O
1
.a , O
1
.GocA }
KL = { O

2
.a }
Trong đó đối với các quan hệ f
i
∈ F ta có:
M(f
1
) = { O
1
.c , O
3
.a },
M(f
2
) = { O
1
.b , O
4
.a },
M(f
3
) = { O
2
.b , O
4
.a },
M(f
4
) = { O
2

.c , O
3
.a },
M(f
5
) = { O
1
.GocA , O
2
.GocA }.
Thuật toán tìm lời giải ở trên sẽ cho ta một lời giải cho bài toán là
dãy:
D = { f
5
, O
1
, f
1
, f
2
, f
3
, f
4
, O
2
},
và quá trình mở rộng tập biến được xác định theo lời giải này như
sau:
GT = A

0

5
f
 →
A
1

1
O
 →
A
2

1
f
 →
A
3

2
f
 →
A
4

GVHD: GS. TSKH. Hoàng Kiếm Học viên: Lâm Hàn Vũ

×