Ưu điểm: Mạng ngữ nghĩa rất linh động, ta có thể dễ dàng thêm vào mạng các đỉnh hoặc cung mới để bổ sung các tri thức cần thiết. Mạng ngữ nghĩa có tính trực quan cao nên rất dễ hiểu. Mạng ngữ nghĩa cho phép các đỉnh có thể kế thừa các tính chất từ các đỉnh khác thông qua các loại cung, từ đó có thể tạo ra các liên kết ngầm giữa những đỉnh không có liên kết trực tiếp đến nhau. Mạng ngữ nghĩa hoạt động khá tự nhiên theo cách thức con người ghi nhận thông tin. Nhược điểm: Các thao tác tìm kiếm mạng ngữ nghĩa thường khó khăn, đặc biệt đối với những mạng ngữ nghĩa có kích thước lớn.) Do đó mô hình mạng ngữ nghĩa thường được dùng chủ yếu để phân tích vấn đề, sau đó nó sẽ được chuyển đổi sang dạng khác để thi hành hoặc mạng ngữ nghĩa được dùng kết hợp với một số phương pháp biểu diễn khác. Cho đến nay, vẫn chưa có một chuẩn nào quy định các giới hạn cho các đỉnh và cung của mạng. Nghĩa là ta có thể gán ghép bất kỳ khái niệm nào cho đỉnh hoặc cung. Tính thừa kế trên mạng có thể dẫn đến nguy cơ mâu thuẫn trong tri thức vì có sự không rõ ràng khi gán cho một đỉnh của mạng. Vì tính thừa kế sinh ra rất nhiều liên kết ngầm nên khả năng nảy sinh một mối liên hệ không hợp lệ rất cao. Hầu như không thể biểu diễn các tri thức dạng thủ tục bằng mạng ngữ nghĩa vì các khái niệm về thời gian và trình tự không được thể hiện tường minh trên mạng ngữ nghĩa. Ứng dụng: Hai loại ứng dụng tiêu biểu của mạng ngữ nghĩa là ứng dụng xử lý ngôn ngữ tự nhiên và ứng dụng giải các bài toán thông minh. Trong ứng dụng xử lý ngôn ngữ tự nhiên, mạng ngữ nghĩa có thể giúp máy tính phân tích được cấu trúc của câu để từ đó có thể phần nào hiểu được ý nghĩa của câu, là công cụ hữu hiệu nhất hiện nay trong việc dịch và giải các bài text. Trong ứng dụng giải các bài toán thông minh: như giải bài toán tam giác, cân bằng phản ứng hóa học,… 3, Bài toán tam giác sử dụng mạng ngữ nghĩa: Các tri thức cần có: Xét tri thức bài toán Tam giác gồm: Các thuộc tính: o a, b, c: 3 cạnh của tam giác o , , : 3 góc đối diện với 3 cạnh tương ứng trong tam giác o ha: đường cao tương ứng với cạnh c của tam giác o S: diện tích tam giác o p: nửa chu vi của tam giác o R: bán kính đường tròn ngoại tiếp tam giác
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP MÔN NHẬP MÔN CÔNG NGHỆ TRI THỨC & MÁY HỌC
Đề tài: Ứng dụng mô hình Mạng ngữ nghĩa vào giải bài toán tam giác
Lớp: CS110.J12
Giảng viên hướng dẫn: Ths Nguyễn Thị Ngọc Diễm Thành viên nhóm thực hiện: 1, Lê Thanh Tiềm – 16521214
2, Trần Quang Toàn – 16521264
Tp Hồ Chí Minh, ngày 20 tháng 11 năm 2018.
Trang 2LỜI CẢM ƠN
Ngày nay, với thời kỳ công nghiệp hóa – hiện đại hóa, đất nước càng phát triển thì công nghệ thông tin nói chung cung như linh vưc tri tu nhân tạo nói riêng, đặc biệt là về mảng tri hức và máy học đa và đang là ê một linh vưc rất quan trọng trong đời sống xa h i trong vi c tạo ra các thưc thể thông minh giup ich cho ô ê chung ta, máy tnh đi n tư với đ thông minh nhất đinh đa có ảnh hương lớn tới cu c sống ngày nay và sư ê ô ô phát triển trong tương lai
Bài tập ứng dụng mô hình mạng ngữ nghia giải bài toán tam giác lần này giup chung em củng cố them những kiến thức đa học ơ trên lớp
Để hoàn thành bài tập lần này nhóm xin cảm ơn cô đa hướng dẫn và truyền tải những kiến thức cần thiết để nhóm có thể hoàn thành được bài tập này
Tuy đa rất cố gắng học hỏi cung như tm hiểu tài liệu từ nhiều nguồn thông tin khác nhau, nhưng điều ki n, ê khả năng của chung em còn rất hạn chế nên cung không tránh khỏi thiếu sót Kinh mong được sư đóng góp
ý kiến của cô để nhóm em có thể hoàn thiện hơn về báo cáo và ứng dụng cho bài tập này
Chung em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 20 tháng 11 năm 2018.
Trang 3
1.Giơi thi u vê mang ngư nghia: ê
Mạng ngữ nghia là m t phương pháp biểu diên tri thức đầu tiên và cung là phương pháp dê hiểu tốtô nhất đối với chung ta Phương pháp này se biểu diên tri thức dưới dạng m t đồ thi, trong đó ô đỉnh là
các đối tượng (khái ni m) còn các ê cung cho biết mối quan h giữa các đối tượng ê
Vi dụ: Có các khái ni m chich chòe, chim, hót, cánh, tô và m t số mối quan h giữa các khái ni mê ô ê ê như sau:
+ Chich chòe là m t loài chim.ô
+ Chim biết hót
+ Chim làm tô
+ Chim có cánh
Mối liên h giữa các khái ni m trên được biểu diên trưc quan băng m t đồ thi có hướng như sau:ê ê ô
biết lam
Do mạng ngữ nghia là m t loại đồ thi cho nên nó thừa hương được tất cả những m t mạnh của ô ă công cụ này Nghia là ta có thể dung những thu t toán của đồ thi trên mạng ngữ nghia như thu t toán tm â â liên thông, tm đường đi ngắn nhất để thưc hi n các cơ chế suy lu n Điểm đ c bi t của mạng ngữ nghia ê â ă ê
Cánh Chich chòe
Chim
Trang 4so với đồ thi thông thường chinh là vi c gán m t ý nghia ( là, có, làm, biết…) cho các ê ô cung Trong đồ thi tiêu
chuân, vi c có m t cung nối giữa hai đinh chi cho biết có sư liên h giữa hai đinh đó và tất cả các cung ê ô ê trong đồ thi đều biểu diên cho cung m t loại liên h Trong mạng ngữ nghia, cung nối giữa hai đinh còn choô ê biết giữa hai khái ni m tương ứng có sư liên h như thế nào Vi c gán ngữ nghia vào các cung của đồ thi ê ê ê giup giảm bớt được số lượng đồ thi cần phải dung để biểu diên các mối liên h giữa các khái ni m Ơ vi dụ ê ê trên, nếu sư dụng đồ thi thông thường, ta phải dung đến 4 loại đồ thi cho 4 mối liên h ( là, có, làm, biết).ê
Mạng ngữ nghia có tnh kế thừa, bơi vì ngay trong khái ni m, mạng ngữ nghia đa hàm ý sư phân cấp ê (như các mối liên h “là”) nên có nhiều đinh trong mạng m c nhiên se có những thu c tnh của những đinhê ă ô khác
Theo vi dụ về mạng ngữ nghia ơ trên, ta có thể trả lời câu hỏi cho mối liên h “có”: “Chich chòe có ê làm tô không?” Có thể khăng đinh điều này vì đinh “chich chòe” có liên kết “là” với đinh “chim” và đinh
“chim” lại có liên kết “biết” với đinh “tô” Kiểu suy lu n trên bắt nguồn từ thu t toán “loang” hay thu t â â â toán “tm liên thông” trên đồ thi Chinh đ c tnh kế thừa của mạng ngữ nghia đa cho phep ta có thể thưc ă
hi n được rất nhiều phep suy diên từ những thông tin săn có trên mạng.ê
2.Ưu điểm va nhược điểm của mang ngư nghia:
* Ưu điểm:
- Mạng ngữ nghia rất linh đ ng, ta có thể dê dàng thêm vào mạng các đinh ho c cung mới để bô ô ă sung các tri thức cần thiết
- Mạng ngữ nghia có tnh trưc quan cao nên rất dê hiểu
- Mạng ngữ nghia cho phep các đinh có thể kế thừa các tnh chất từ các đinh khác thông qua các loại cung, từ đó có thể tạo ra các liên kết ngầm giữa những đinh không có liên kết trưc tiếp đến nhau
- Mạng ngữ nghia hoạt đ ng khá tư nhiên theo cách thức con người ghi nh n thông tin.ô â
* Nhược điểm:
- Các thao tác tm kiếm mạng ngữ nghia thường khó khăn, đ c bi t đối với những mạng ngữ nghia ă ê
có kich thước lớn.) Do đó mô hình mạng ngữ nghia thường được dung chủ yếu để phân tch vấn đề,
Trang 5sau đó nó se được chuyển đôi sang dạng khác để thi hành ho c mạng ngữ nghia được dung kết hợp ă với m t số phương pháp biểu diên khác.ô
- Cho đến nay, vẫn chưa có m t chuân nào quy đinh các giới hạn cho các đinh và cung của mạng ô Nghia là ta có thể gán ghep bất kỳ khái ni m nào cho đinh ho c cung.ê ă
- Tinh thừa kế trên mạng có thể dẫn đến nguy cơ mâu thuẫn trong tri thức vì có sư không rõ ràng khi gán cho m t đinh của mạng Vì tnh thừa kế sinh ra rất nhiều liên kết ngầm nên khả năng nảy sinh ô
m t mối liên h không hợp l rất cao.ô ê ê
- Hầu như không thể biểu diên các tri thức dạng thủ tục băng mạng ngữ nghia vì các khái ni m về ê thời gian và trình tư không được thể hi n tường minh trên mạng ngữ nghia.ê
* Ứng dụng:
Hai loại ứng dụng tiêu biểu của mạng ngữ nghia là ứng dụng xư lý ngôn ngữ tư nhiên và ứng dụng giải các bài toán thông minh
- Trong ứng dụng xư lý ngôn ngữ tư nhiên, mạng ngữ nghia có thể giup máy tnh phân tch được cấu truc của câu để từ đó có thể phần nào hiểu được ý nghia của câu, là công cụ hữu hi u nhất hi n nay ê ê trong vi c dich và giải các bài text.ê
- Trong ứng dụng giải các bài toán thông minh: như giải bài toán tam giác, cân băng phản ứng hóa học,…
3, Bai toán tam giác sử dụng mang ngư nghia:
* Các tri thức cần co:
Xét tri thức bài toán Tam giác gồm:
- Các thuộc tính:
o a, b, c: 3 cạnh của tam giác
Trang 6o α, β, γ: 3 góc đối diện với 3 cạnh tương ứng trong tam giác
o ha: đường cao tương ứng với cạnh c của tam giác
o S: diện tích tam giác
o p: nửa chu vi của tam giác
o R: bán kính đường tròn ngoại tiếp tam giác
- Các công thức tính toán liên quan giữa các thuộc tính:
α + β + γ = 180 (3)
a sin
b sin
(1) c
sin
b sin
(2)
S = b.c.sinα / 2 (7)
S = a.b.sinγ / 2 (9)
S = c.a.sinβ / 2 (8)
c2 = a2 + b2 - 2.a.b.cosγ (6)
a2 = b2 + c2 - 2.b.c.cosα (4)
b2 = a2 + c2 - 2.a.c.cosβ (5)
2.p = a + b + c (10)
R =
a.b.c 4.S (11)
ha = b.sinγ (12)
*Mô hình hóa các tri thức:
Trang 7a
c
ha
S = b.c.sin / 2
+ + = 180
S = c.a.sin / 2
a
sin
b sin
ha = b.sin
S = a.b.sin / 2
a b c 4.S
c sin
b sin
b
a2=b2+c2- 2.b.c.cos
p
R
c2 = a2 + b2 - 2.a.b.cos
b2 = a2 + c2- 2.a.c.cos
(3)
(7) (12)
(9) (8)
(6) (4)
(10)
(5) (11)
Chu thich: + Đinh:
Trang 8Đinh chứa công thức (hình chữ nh t).â Đinh chứa yếu tố hay biến của tam giác ( hình tròn)
+ Cung: là hướng đi từ đinh hình tròn đến đinh hình chữ nh t cho biết biến nào năm trong công â thức nào
*Tổ chức lưu trư:
+ Sư dụng một mảng A hai chiều để lưu trữ các thuộc tnh và luật liên quan đến mạng ngữ nghia Trong đó:
* cột biểu thi công thức (các công thức ơ các đinh hình chữ nhật)
*Dòng biểu thi các biến (các thuộc tnh ơ các đinh hình tròn) Xet A[i, j] = 1 nếu các phân thư i trong công thức j đa được kich hoạt, A[i, j] = -1 nếu công thức cột j có chứa biến i, Ngược lại thì A[i, j] = 0
Để kiểm tra xem một công thức đa có đủ n-1 yếu tố hay chưa (nghia là kiểm tra điều kiện
"đinh hình chữ nhật có cung nối với n đinh hình tròn mà n-1 đinh hình tròn đa được kich hoạt"), ta chi việc lấy hiệu giữa tông số ô có giá tri băng 1 và tông số ô có giá tri -1 trên cột ứng với công thức cần kiểm tra Nếu kết quả băng n, thì công thức đa có đủ n-1 yếu tố
Mô hình ma trận như sau:
*Phát biểu bai toán:
Vi dụ: Cho tam giác ABC có cạnh a và 2 góc kề là β, γ được cho trước Tinh diện tch S của tam giác+ Ban đầu đinh a, β, b của đồ thi được kich hoạt:
=> Cơ chế lan truyền:
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
a
0 0 0 0 0 0 0 0 0 0 0 -1
Trang 9+ Đầu tiên, các đinh a, β, γ được kich hoạt:
Trên cột công thức (3) hiệu (1+1- (-1)) = 3= n, nên dòng α se được kích hoạt:
Trên cột công thức (1) hiệu (1+1+1 - (-1)) = 4 = n, nên dòng b se được kích hoạt:
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
a
0 0 0 0 0 0 0 0 0 0 0 -1
Trang 10Trên cột công thức (2) hiệu (1+1+1 - (-1)) = 4 = n, nên dòng c se được kích hoạt:
Trên cột công thức (7) hiệu (1+1+1 - (-1)) = 4 = n, nên dòng S se được kích hoạt:
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
(1) (2) (3) (4) (5) (6) (7) (8) (9) 10 (11) (12)
h
a
0 0 0 0 0 0 0 0 0 0 0 -1
Trang 11=> tm được S.
*Thuật giải:
1, suy diễn tiến:
Tư tương của thuật giải Suy diên tiến là từ những giả thiết đa biết (know) ta áp dụng các tập luật để sinh ra thêm giả thiết mới và bô sung vào know Quá trình này cứ tiếp tục cho đến khi kết luận cần
tm đa năm trong know hoặc không thể áp dụng được luật nào để sinh thêm giả thiết mới nữa và chương trình kết thuc
Mô phỏng thuật giải :
Bước 1: Khơi tạo một mảng đánh dấu các luật, để đánh dấu những luật nào đa được sư dụng để tránh trung lặp các bước
Bước 2: Kiểm tra xem mục tiêu đa năm trong tập giả thiết (know) chưa?
Nếu đung, đi đến Bước 6
Nếu sai, chuyển tới bước 3
Bước 3: Cho kiểm tra các luật, nếu luật nào chưa dung (chưa được đánh dấu):
Kiểm tra xem các luật trong đó có đủ điểu kiện để áp dụng sinh ra giả thiết mới hay không?
Nếu đủ điều kiện:
+ Đánh dấu luật này lại + Bô sung kết luận của luật vào trong know + Chuyển tới Bước 2
Nếu không đủ điều kiện: tiếp tục với luật tiếp theo
Bước 4: Nếu không còn luật nào có thể áp dụng được nữa, chuyển tới bước 6
Bước 5: Quay lại bước 2
Bước 6: Kết luận:
+ Nếu Bước 4 đung: bài toán không thể giải được + Nếu Bước 2 đung: dung suy diên lui để loại bỏ các luật thừa, đưa ra kết luận
Minh họa suy diên lui cho bài toán ơ trên:
Xet công thức (1) tnh anpha, b nhưng chưa đủ yếu tố, chưa them vào know
Xet Công thức (2) tnh b, c nhưng chưa đủ yếu tố, chưa thêm vào know
Xet công thức (3) tnh anpha, tm được anpha -> add.know(anpha) Công thức (3) được kich hoạt
Trang 12Xet công thức (4) tnh b, c nhưng vẫn chưa đủ yếu tố, chưa thêm vào know.
Xet Công thức (5) tnh b, c nhưng vẫn chưa đủ yếu tố, chưa thêm vào know
…
Xet côngt thức (1) tnh b, Tìm được b -> add.know(b) Công thức (1) được kich hoạt
Xet côngt thức (2) tnh c, Tìm được c -> add.know(c) Công thức (2) được kich hoạt
Xet Công thức (7) tnh được S
-> kết thuc
2, Suy diễn lùi:
Mô phỏng thuật giải:
+Đầu tiên, lưu lại những công thức có chứa kết luận
+Sắp xếp các luật có chứa kết luận theo số lượng biến năm trong know của mỗi luật
+ Duyệt từng công thức chứa kết luận
+duyệt từng biến trong giả thiết của mỗi luật
-> Nếu biến đó đang được tm kiếm trong các vòng đệ quy trước thì đánh dấu lại
->Nếu có biến đó không năm trong know thì luật này chưa săn sàng để dung
+Nếu trạng thái của biến này là đang được tm kiếm ơ các vòng lặp trước thì bỏ qua (không dung) luật này để tiếp tục với luật khác
+Nếu luật này đa săn sàng để dung thì tiến hành sinh giả thiết và thêm vào known
+cập nhật trạng thái cho thuộc tnh đó
+ Nếu đây là bước lui thứ ba và đa thư hết toàn bộ luật có thể sinh kết luận cần tm
+Nếu không thể sinh thêm được bất kỳ giả thiết nào nữa thì trả về kết quả là không thành công +cập nhật trạng thái của giả thiết vừa được sinh ra
+Duyệt từng biến trong phần giả thiết của luật
Trang 13+lưu kết quả của việc quay lui
+Nếu không năm trong known
+đánh dấu danh sách trạng thái trước khi quay lui
+Nếu quay lui tnh cờ tm thấy một giả thiết ơ vòng đệ quy ngoài ta kiểm tra xem nó có phải điều ta đang tm kiếm hay không, nếu đung, báo thành công, nếu sai, báo ra các vòng đệ quy ngoài
+Nếu có khả năng sinh được luật
->Cập nhật danh sách trạng thái
** trong quá trình chạy suy diên tiến, se phát sinh ra các luật thừa, luc này ta se dung suy diên lui để loại bỏ các luật thừa đó, tức là nếu kết luận của luật liền trước không có trong giả thiết của một luật thì loại luật đó ra
Minh họa suy diên lui cho bài toán đa nêu ơ trên:
+Giả thiết: a, β, γ + kết luận: tm S
1, tnh S: sư dụng công thức số (7) S = b.c.sinα / 2
2, để tm được S, cần tm được b, c và α
-> Sư dụng công thức số (1) để tm được b
3, để tm được b cần tm được α
-> sư dụng công thức số (3) để tm được α
4, sư dụng công thức số (2) để tm được c
=> từ đây ta có thể tm được S nhờ công thức (7)
*Chương trình demo:
+ Chương trình được nhóm chung em viết băng ngôn ngữ C# mô phỏng lại bài toán tam giác và cách
giải
+ Demo được gưi đinh kèm, kèm theo đường link video quay lại demo một số vi dụ
* một số bài toán test demo:
1, Ba cạnh a, b, c có giá tri lần lượt là 3, 4, 5 -> tnh đường cao ha = ?
Giá tri ha = 4
2, Cho anpha băng 45 độ, a = 5, b = 6 -> tnh S = ?
Giá tri Chu vi = 14,6
Trang 143, Cho anpha = beta = 30 độ Cạnh a = 10 -> tnh S = ?
Giá tri S = 43,3
4, Cho a = 10, β = 30 độ, γ= 45 độ -> Tinh S,b,c,ha ?
Giá tri S = 18,3 Giá tri b = 5,17 Giá tri c = 7,32 Giá tri ha = 3,66
5, Cho tam giác ABC có góc α=90o, b=, c=b Tính S, a, R
Giá tri S = 6 Giá tri a = 5 Giá tri R = 2,5
* Video chạy demo: https://youtu.be/Ds8XLSxufbM
*Tai Liệu tham khảo:
[1] Giáo trình Tri Tu Nhân Tạo – GS.TSKH Hoàng Kiếm, Ths Đinh Nguyên Anh Dung.ê
[2] PGS.TS Đỗ Văn Nhơn – Bài giảng môn Biêu Diên Tri Thức Và Ứng Dụng
[3] https://thanhcuong.wordpress.com/2010/12/16/gi%E1%BA%A3i-bi-ton-tam-gic-s%E1%BB%AD-d
%E1%BB%A5ng-m%E1%BA%A1ng-ng%E1%BB%AF-nghia-solution-for-triangle-using-semantic-network/
[4] https://en.wikipedia.org/wiki/Semantic_network#Semantic_Net_in_Lisp
[5] Slide bài giảng thầy Hồ Long vân
[6] https://www.google.com.vn/