1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn biểu diễn tri thức và suy luận MẠNG TÍNH TOÁN GIẢI BÀI TOÁN TAM GIÁC

17 380 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 2,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mỗi mạng tính toán là một mạng ngữ nghĩa chứa các biến và những quan hệ có thể cài đặt và sử dụng cho việc tính toán.. Thuật toán tìm bao đóng của A trên mạng tính toán M, F với A M: ta

Trang 1

Đại học Công Nghệ Thông Tin Đại học Quốc gia Thành phố Hồ Chí Minh



BÁO CÁO:

MẠNG TÍNH TOÁN GIẢI BÀI TOÁN TAM GIÁC

Môn học: Biểu diễn tri thức và ứng dụng

GVHD : PGS.TS Đỗ Văn Nhơn Học viên: Trần Ngọc Huy – CH1301027

TP.HCM, tháng 3 năm 2014

Trang 2

Mục lục

Trang 3

1 GIỚI THIỆU

Ngày nay khi cuộc sống trở nên hiện đại, con người đòi hỏi các thiết bị càng trở nên thông minh dẫn đến nhiều vấn đề được đặt ra cho lĩnh vực trí tuệ nhân tạo Một trong những vấn đề đó chính là việc giúp người dùng giải những bài toán tính toán cơ bản đồng thời giúp người sử dụng hiểu được việc tính toán diễn ra như thế nào

Xuất phát từ vấn đề đó đồng thời từ nhu cầu hỗ trợ trong việc giải bài tập giúp đỡ học sinh, sinh viên học tập tốt hơn các môn có yêu cầu về việc tính toán Em đề xuất chương trình giúp người dùng giải tự động các bài toán đồng thời xuất ra lời giải Qua quá trình tìm kiếm em quyết định cài đặt mô hình Mạng Tính Toán(PGS.TS Đỗ Văn Nhơn đề xuất năm 1998) trên Maple Mạng Tính Toán là mô hình biểu diễn tri thức tính toán dựa trên các biến và các quan hệ trong khi Maple lại hỗ trợ tốt trong việc tính toán

và lập trình symbolic Ở các phần dưới em sẽ trình bày về mô hình Mạnh Tính Toán và việc lập trình nó trong Maple

2 MẠNG TÍNH TOÁN

2.1 Khái niệm:

Mạng tính toán bao gồm một tập hợp các biến M và một tập hợp các quan hệ (tính toán) F trên các biến Có 2 loại quan hệ trên các biến là: quan hệ đối xứng (chủ yếu là có hạng 1) và quan hệ không đối xứng Mỗi mạng tính toán là một mạng ngữ nghĩa chứa các biến và những quan hệ có thể cài đặt và sử dụng cho việc tính toán

M = { x1, x2, x3, …, xn},

F = {f1, f2, f3, …, fm}, Đố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 Nếu viết f dưới dạng:

f : u(f)  v(f) thì ta có: M(f) = u(f) v(f)

Quan hệ đối xứng có hạng k (k > 0) (rank) là các quan hệ mà ta có thể tính được k biến bất kỳ từ m-k biến kia Ví dụ: quan hệ f về chu vi p và 3 cạnh a,b,c của tam giác ABC cho bởi hệ thức:

Trang 4

p = a+b+c

f: p = a+b+c (quan hệ đối xứng hạng 1)

Đối với quan hệ không phải là đối xứng có hạng k và quan hệ được xác định duy nhất một hàm f với tập biến vào là u(f) và tập biến ra là v(f); ta gọi loại quan hệ này là quan hệ không đối xứng xác định một hàm, hay quan hệ không đối xứng Ví dụ: quan hệ

f là phương trình hóa học vô cơ mô tả mối quan hệ giữa H, O, H2O

H2 + O2  H2O

H2

H2O

O2

2.2 Tính giải được của bài toán:

Bài toán A B được gọi là giải được khi có thể tính toán được các giá trị của các biến biến thuộc B xuất phát từ giả thuyết A

Cho mạng tính toán (M, F) và A là một tập hợp con của M Thì tồn tại duy nhất một tập hợp B lớn nhất là M sao cho bài toán A  B là giải được, và tập hợp B này chính được gọi là bao đóng của A trên mô hình (M, F)

Như vậy: trên mạng tính toán (M, F), bài toán A  B là giải được khi và chỉ khi B bao đóng của A

Thuật toán tìm bao đóng của A trên mạng tính toán (M, F) với A M: ta lần lượt

mở rộng các biến trong A bằng cách áp dụng lần lượt tất cả các quan hệ f có thể áp dụng được trong F Viêc duyệt tất cả quan hệ trong F chỉ kết thúc khi tập A không mở rộng thêm được nữa (tập hợp A không đổi sau một vòng lặp) Tập hợp A sau cùng chính là tập bao đóng ta cần tìm Lưu ý do chúng ta có 2 loại quan hệ nên việc xét tính áp dụng được của các quan hệ phụ thuộc vào:

f

f

Trang 5

+ Quan hệ đối xứng: số lượng phần tử trong quan hệ f không xuất hiện trong tập hợp A hiện tại hạng của quan hệ f ( hay số phần tử cực đại bất kỳ có thể tính được trong

f nếu các phần tử còn lại có giá trị xác định)

Ví dụ: xét quan hệ đối xứng bậc 1: a + b +c = 0 Rõ ràng nếu trong tập A chứa (a,b) hoặc (b,c) hoặc (a,c) thì số phần tử trong M(f) không xuất hiện trong A là 1 Vì vậy

ta dễ dàng tìm được phần tử còn lại trong quan hệ trên

+ Quan hệ không đối xứng: các phần tử trong quan hệ f không xuất hiện trong tập hợp A hiện tại là một tập hợp v(f) (tập kết luận của quan hệ f) hay có thể nói tập hợp A chứa đầy đủ các giả thuyết (u(f)) cần thiết của quan hệ f

Ví dụ: trong các phản ứng hóa học một chiều Nếu ta xác định được giá trị các chất tham gia phản ứng thì ta có thể suy ra các chất tạo thành

• Thuật toán tìm bao đóng của A M:

Nhập: Mạng tính toán (M, F),

A M

Xuất: A

Thuật toán:

1. B  A;

2. Repeat

B1  B;

for f F do

if (f đối xứng and Card (M(f) \ B) r(f) ) or ( f không đối xứng and M(f) \ B v(f) ) then Begin

B  B M(f);

F  F \ {f};

end;

Until B = B1;

3. A  B;

Trang 6

2.3 Lời giải cho bài toán:

Ở phần trên ta đã đề cập đến tính giải được của bài toán A  B trên mạng tinh toán (M, F) bằng cách tìm bao đống của A Phương pháp tìm một lời giải cho bài toán trên cũng thực hiện tương tự như đối với phương pháp tìm bao đóng của A Tuy nhiên thuật toán sẽ kết thúc ngay khi tìm được tập hợp A chứa tập B hay B là của tập A đang

mở rộng Lời giải của bài toán chính là các quan hệ f đã được áp dụng để mở rộng tập A Tuy nhiên nếu sau khi mở rộng hết cỡ A tức là tìm được bao đóng của A mà vẫn không chứa B thì ta kết luận bài toán A  B là không có lời giải

Ta dễ dàng nhận thấy phương pháp tìm lời giải như trên là chưa tối ưu Do việc áp dụng lần lượt tất các quan hệ giải được trong F mà đôi khi chúng ta có thể lượt bớt một vài quan hệ trung gian nhưng vẫn tìm được đáp án cho bài toán Một lời giải tốt là lời giải

mà không thể lượt bỏ bất kỳ một quan hệ nào hay có thể hiểu là sau mỗi lần áp dụng quan

hệ thì ta lại càng tiến gần hơn đến đích Để có được lời giải tối ưu ta càng phải thực hiện phương pháp lọc bớt các quan hệ dư thừa được áp dụng trong thuật toán ở trên Thuật toán đơn giản là đi từ quan hệ cuối cùng đến quan hệ đầu tiên được áp dụng Nếu việc loại bỏ quan hệ đó là hoàn toàn không ảnh hưởng đến tính giải được của bài toán thì ta xem nó là quan hệ trung gian không cần thiết và loại nó ra khỏi lời giải cuối cùng

Một bài toán thì có thể có nhiều cách giải khác nhau Tuy nhiên để tìm được lời giải tối ưu nhất cho bài toán thì ta có thể áp dụng thuật giải Heuristic A* trong trường hợp bài toán là giải được

• Thuật toán 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; // bi n ế Solution_found = true khi bài toán

// gi i ả đượ c

goto 4;

end else

Solution_found ← false;

3 Repeat

Trang 7

Aold ← A;

Chọn ra m t f ộ ∈ F cho 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 begin

A ← A ∪ M(f);

Solution ← Solution ∪{f};

end;

if B A then

Solution_found ← true;

Ch n ra m t f ọ ộ ∈ F ch xem xét;ờ

end; { while }

Until Solution_found or (A = Aold);

4 if not Solution_found then

Bài tốn khơng tìm đ c l i gi i;ượ ờ ả

else

Solution là m t l i gi i;ộ ờ ả

• Tìm một lời giải tốt từ lời giải đã cĩ:

Nhập : Mạng tính tốn (M,F),

Lời giải {f1, f2, …, fm} của bài tốn A B Xuất : lời giải tốt cho bài tốn A → B

Thuật tốn :

1. D  {f1, f2, …, fm};

2. For i = m downto 1 do

if D \ {fi} là một lời giải then

D  D \ {fi};

3. D là một lời giải tốt

2.4 Định lý về phân tích quá trình giải:

Trong một số lời giải tốt mà ta tìm được bên trên rất cĩ thể tồn tại việc áp dụng quan hệ để tính tốn các biến bị thừa hay biến được suy ra từ quan hệ khơng được sử dụng tiếp theo để tìm ra lời giải hoặc là rẽ sang một hướng tính tốn mới Do đĩ chúng ta cần phải xem xét quá trình áp dụng các quan hệ trong lời giải và chỉ tính tốn các biến

Trang 8

thực sự cần thiết cho lời giải Định lý sau đây cho ta tập các biến được xác định theo lời giải và trên cơ sở đĩ cĩ thể xây dựng quá trình tính tốn các biến để giải quyết bài tốn

Cho {f1, f2, …, fm} là một lời giải tốt cho bài tốn A  B trên một mạng tính tốn (M, F) Đặt:

A0 = A, Ai = {f1, f2, …, fi}(A), với mọi i = 1, …, m

Khi đĩ cĩ một dãy {B0, B1, …, Bm-1, Bm}, thỏa các điều kiện sau đây:

(1) Bm = B

(2) Bi⊆ Ai, với mọi i = 0,1, ,m

(3) Với mọi i = 1,…, m, {fi} là lời giải của bài tốn Bi-1  Bi nhưng khơng phải là lời giải của bài tốn G  Bi, trong đĩ G là một tập con thật sự tùy ý của Bi-1

2.5 Ví dụ minh họa:

Cho tam giác ABC cĩ cạnh a và 2 gĩc là α, β được cho trước Tính diện tích S của tam giác

Để giải bài tốn này ta áp dụng mạng tính tốn gồm cĩ:

1. Tập biến M = {a, b, c, α, β, γ, ha, hb, hc, S, p, R, r, …}

trong đĩ a, b, c là 3 cạnh; α, β, γ là 3 gĩc tương ứng với 3 cạnh; ha, hb, hc là 3 đường cao; S là diện tích tam giác; p là nữa chu vi; …

2 Các quan hệ:

f1 : α + β + γ = 180 f2 :

a sin

b sin

α = β

f3 :

c sin

b sin

γ = β

f4 :

a sin

c sin

α = γ

f5 : p = (a+b+c) /2 f6 : S = a.ha / 2

f7 : S = b.hb / 2 f8 : S = c.hc / 2

f9 : S = a.b.sinγ / 2

3. Yêu cầu tính: S

Theo đề bài ta cĩ giả thuyết là: A = { a, α, β} và tập biến cần tính là B = {S} Áp dụng thuật giải như trên ta cĩ:

{a, α, β} {a, α, β, γ} {a, b, α, β, γ} {a, b, c, α, β, γ} {a, b, c, p, α, β, γ} {a, b, c,

p, α, β, γ, S}

Trang 9

Nhận thấy lời giải trên chưa phải là lời giải tốt vì vẫn còn có những bước tính toán thừa, chẳng hạn là f3 và f5 Ta dung thuật toán tìm lời giải tốt để thực hiện lược bỏ các bước trung gian để thu được kết quả sau:

{a, α, β} {a, α, β, γ} {a, b, α, β, γ} { a, b, α, β, γ, S}

Theo lời giải này, ta có quá trình tính toán như sau:

Bước 1: tính γ (áp dụng f1)

Bước 2: tính b (áp dụng f2)

Bước 3: tính S (áp dụng f9)

γ

b

3 CÀI ĐẶT MẠNG TÍNH TOÁN TRÊN MAPLE

3.1 Bài toán:

Ở phần demo mạng tính toán sử dụng maple, ta sẽ sử dụng mô hình mạng tính toán đơn giản là mạng tính toán trên các kiến thức liên quan đến tam giác

3.2 Cấu trúc dữ liệu:

- Các số đo độ lớn các cạnh, các góc được biểu diễn dưới dạng kiểu số thực trong Maple Độ đo góc ta sử dụng ở đây là radian Bên cạnh đó Maple còn hỗ trợ cho ta kiểu đẳng thức rất thuận tiện cho việc biểu diễn mạng tính toán

- Tập hợp các biến ta sẽ lưu dưới dạng tập hợp Lý do tao lưu dưới dạng tập hợp

là bởi vì các phần tử trong tập hợp không trùng nhau và tập hợp trong Maple sẽ

tự động sắp xếp thứ tự các phần tử giúp ta dễ dàng trong việc quản lý Tập hợp

các biến ta đặt là Mset có dạng như sau: Mset := {A, B, C, S, a, b, c, ha, hb, hc,

p}

- Tập hợp các quan hệ ta biểu diễn dưới dạng như sau:

f1

f9 f2

Trang 10

o Mỗi quan hệ có dạng một danh sách bao gồm: một tập hợp chứa các biến đã được xác định, biến sẽ được xác định trong quan hệ, biểu thức biểu diễn quan hệ giữa các biến

o Ta sử dụng cấu trúc tập hợp để biểu diễn tập hợp các quan hệ có trong

hệ luật dẫn này

o Tập hợp các quan hệ có dạng như sau: Fset := {[{A, B}, C, A+B+C =

Pi], [{A, C}, B, A+B+C = Pi], [{B, C}, A, A+B+C = Pi], [{S, a}, ha, a*ha = 2*S], [{S, b}, hb, b*hb = 2*S], [{S, c}, hc, c*hc = 2*S]

- Giả thiết được biểu diễn dưới dạng tập hợp các đẳng thức, trong đó mỗi đẳng thức có gồm có tên biến đã xác định và giá trị của nó Ta gọi giả thiết này là

GTBD và có dạng như sau: GTBD := {b = 7, c = 9, ha = 6, hb = 5}

- Kết luận được biểu diễn dưới dạng tập hợp các biến cần được xác định Ta đặt

tên cho tập biến mục tiêu là KL có dạng như sau: KL := {A, hc}

3.3 Các hàm thực hiện:

- Hàm LayGT: từ GTBD hàm này trả về tập hợp các tên biến đã được biết trước

- Hàm Giai: từ GT được lấy từ hàm LayGT Hàm này sẽ kiểm tra xem từ những

GT đã được xác định, ta có thể tìm được lời giải cho các biến trong hàm KL Hàm này như sau:

o Biến Sol là danh sách lưu các quan hệ dẫn đến lời giải Ở đây ta sử dụng danh sách bởi vì các luật thực hiện theo thứ tự, nếu như ta sử dụng tập hợp để chứa các quan hệ thì các quan hệ dẫn đến lời giải sẽ được Maple

tự động sắp xếp trong Sol dẫn đến cho ta lời giải sai

o Biến Known là tập hợp lưu các biến đã được xác định Known sẽ được gán mặc định cho GT

o Biến flag là biến cờ hiệu giúp ta biết đã tìm ra lời giải hay chưa trong vòng lặp

o Biến temp cũng là một biến cờ hiệu giúp ta kiểm tra xem liệu có còn lời giải nào trong tập các quan hệ có thể áp dụng không

o Biến Luat chứa tập hợp các quan hệ trong mạng tính toán

Trang 11

o Đầu tiên sẽ kiểm tra xem KL đã ở trong GT chưa Nếu đã có ở trong GT nghĩa

là ta không cần phải làm gì nữa và kết thúc chương trình tại đây

o Thực hiện vòng lặp với điều kiện là biến flag khác true có nghĩa là chưa

tìm được lời giải

o Chúng ta thực hiện tiếp một vòng lặp tìm luật có thể áp dụng được trên tập biến đã biết là Known bằng cách kiểm tra xem các biến đã biết của quan hệ r có nằm trong Known hay không Nếu tìm được ta gán biến

Trang 12

temp = true còn không thì gán temp = false Nếu chúng ta tìm được luật

r có thể áp dụng trên tập Known thì ta gán r vào tập Sol đồng thời loại r

ra khoải tập Luat

o Sau khi thực hiện xong vòng lặp ta thực hiện viêc kiểm tra biến flag: nếu flag=true nghĩa là tìm được lời giải và ta xuất ra tập Sol, nếu flag = false nghĩa là chúng ta không tìm được lời giải như vậy chúng ta xuất ra lời giải là tập rỗng

- Hàm KTLoiGiai: Hàm này thực hiện việc kiểm tra xem sử dụng danh sách LoiGiai trên tập GT có thể cho ra KL không Bằng cách sử dụng từng luật trong LoiGiai áp dụng trên tập Known Sau khi hoàn thành xong việc mở rộng tập Known ta kiểm tra xem KL có nằm trong tập Known không, nếu có thì trả

về True không thì trả về False

- Hàm RutGon: Hàm này để loại bỏ lời giải thừa từ tập LoiGiai Hàm này như sau:

o Biến temp dùng làm biến tạm trong quá trình tính toán Biến newSol là biến cục bộ chứa lời giải sẽ xử lý trong chương trình

o Hàm này thực hiện việc rút gọn lời giải như trong thuật giải rút gọn lời giải của mạng tính toán

o Vòng lặp chạy từ phần tử cuối của tập lời giải đến phần tử đầu Với những lời giải thừa thì nó sẽ loại bỏ ra khỏi tập lời giải

o Hàm sẽ trả về lời giải đã được thu gọn

- Hàm TinhToan: đây là hàm quan trọng nhất của chương trình Từ GTBD và

KL hàm sẽ trình bày lời giải tựa như con người làm Bên cạnh việc dùng LoiGiai ở các hàm ở trên hàm còn thực hiện việc tính toán để cho ra kết quả là số

o Hàm sẽ kiểm tra xem từ GTBD có lời giải dẫn đến KL không Nếu không tìm được thì dừng thuật toán, nếu có thì tiếp tục

o Hàm sẽ dùng biến KQ để lưu danh sách các đẳng thức của các biến đã xác định và giá trị của từng biến

o Trong vòng lặp sẽ thực hiện việc xuất lời giải ra theo từng bước Hàm sẽ thực hiện việc giải phương trình chứa trong các quan hệ để ra giá trị của

Trang 13

biến mục tiêu Sau đó tạo một đẳng thức giữa biến mục tiêu và quan hệ rồi gán vào vào KQ

o Ta có hàm TinhToan như ở dưới

3.4 Thể hiện kết quả:

- Ví dụ 1:Với giả thiết ban đầu: GTBD := {b = 7, c = 9, ha = 6, hb = 5} Và biến mục tiêu: KL := {A, hc} Ta có chương trình thể hiện kết quả như sau:

+Yeu to da co:

+Yeu to can xac dinh:

- Buoc 1:

Su dung cong thuc:

Trang 14

Ta tinh duoc:

- Buoc 2:

Su dung cong thuc:

Ta tinh duoc:

- Buoc 3:

Su dung cong thuc:

Ta tinh duoc:

- Buoc 4:

Su dung cong thuc:

Ta tinh duoc:

- Buoc 5:

Su dung cong thuc:

Ta tinh duoc:

- Ví dụ 2: Với giả thiết ban đầu GTBD := {C = (1/2)*Pi, S = 30, a = 8, b = 7} Tập biến mục tiêu KL:= {A, B, hc} Ta có lời giải như sau:

+Yeu to da co:

+Yeu to can xac dinh:

Ngày đăng: 19/05/2015, 02:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w