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 378 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

Nội dung

   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  !" #$%&'()*+)+,- ./0*!1,+)2 Mục lục , 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: * p = a+b+c a c f: p = a+b+c (quan hệ đối xứng hạng 1) b p Đố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, H 2 O. H 2 + O 2  H 2 O H 2 H 2 O O 2 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: 2 3 3 + 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; 4 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 5 Aold ← A; Choï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 toá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 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 : ) D  {f 1 , f 2, …, f m }; , For i = m downto 1 do if D \ {f i } là một lời giải then D  D \ {f i }; * 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 toá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 toá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 toán các biến - 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 toán các biến để giải quyết bài toán. Cho {f 1 , f 2, …, f m } là một lời giải tốt cho bài toán A  B trên một mạng tính toán (M, F). Đặt: A 0 = A, A i = {f 1 , f 2, …, fi}(A), với mọi i = 1, …, m. Khi đó có một dãy {B 0 , B 1 , …, B m-1 , B m }, thỏa các điều kiện sau đây: 6)7 B m = B. 6,7 B i ⊆ A i , với mọi i = 0,1, ,m. 6*7 Với mọi i = 1,…, m, {f i } là lời giải của bài toán B i-1  B i nhưng không phải là lời giải của bài toán G  B i , trong đó G là một tập con thật sự tùy ý của B i-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 toán này ta áp dụng mạng tính toán gồm có: ) 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; … 2. Caùc quan heä: f 1 : α + β + γ = 180 f 2 : a sin b sin α β = f 3 : c sin b sin γ β = f 4 : a sin c sin α γ = 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 * 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} 8 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) γ β α a S 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: 9 3) 39 3, 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. )+ [...]... bỏ lời giải thừa từ tập LoiGiai Hàm này như sau: 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... vào project Lớp này include những hàm API để kết nối C# và Maple + Thêm file OpenMaple.cs vào project Lớp này dựa vào những hàm API từ file MapleEngine.cs để thực hiện 2 hàm chính: Open và Run 15  Hàm Open: kiểm tra việc kết nối và mở OpenMaple  Hàm Run: truyền lệnh từ C# sang Maple và lấy kết quả trả về từ Maple + Sau đó sử dụng việc kết nối C# với Maple như sau: string query = .    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  !" #$%&'()*+)+,- ./0*!1,+)2 Mục. 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à. H 2 O H 2 H 2 O O 2 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

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

w