Giải bài toán tam giác sử dụng mạng ngữ nghĩa
Trang 1MÔN: TRÍ TUỆ NHÂN TẠO
Đề tài: GIẢI BÀI TOÁN TAM GIÁC
Trang 2BẢNG PHÂN CÔNG CÔNG VIỆC
Trang 3A Tổng quan về trí tuệ nhân tạo
I, Đối tượng và mục tiêu nghiên cứu của trí tuệ nhân tạo:
- Trí tuệ nhân tạo nghiên cứu về cách hành xử thông minh (intelligent behaviour) với mục tiêu là xây dựng lý thuyết đầy đủ về thông minh để có thể giải thích được hoạt động thông minh của sinh vật và áp dụng được các hiểu biết vào các máy móc nói chung, nhằm phục vụ cho con người
- Theo Winton: mục đích chính của trí tuệ nhân tạo là hướng tới việc xây dựng các máy tính thông minh hơn, giúp ích cho việc khám phá các quy luật hoạt động sáng tạo và khả năng trí tuệ của con người
II, Vai trò của trí tuệ nhân tạo:
- Trí tuệ nhân tạo bao quát rất nhiều lĩnh vực nghiên cứu Nó nghiên cứu từ các lĩnh vực tổng quát như máy nhận biết, suy luận logic, đến các bài toán như chơi
cờ, chứng minh định lý
- Trong các lĩnh vực khác trí tuệ nhân tạo được dùng kỹ thuật hệ thống hoá và tự động hoá các xử lý tri thức cũng như các phương pháp thuộc lĩnh vực mang tính con người
- Trí tuệ nhân tạo nghiên cứu kỹ thuật làm cho máy tính có thể “suy nghĩ một cách thông minh” và mô phỏng quá trình suy nghĩ của con người khi đưa ra những quyết định, lời giải Trên cơ sở đó, thiết kế các chương trình cho máy tính
để giải quyết bài toán
III, Các kỹ thuật trí tuệ nhân tạo:
- Lý thuyết giải bài toán và suy diễn thông minh
- Lý thuyết tìm kiếm may rủi
- Các ngôn ngữ về Trí tuệ nhân tạo
- Lý thuyết thể hiện tri thức và hệ chuyên gia
- Lý thuyết nhận dạng và xử lý tiếng nói
- Người máy
IV, Các khái niệm cơ bản:
1,Trí tuệ con người (Human Intelligence):
Cho đến nay có hai khái niệm về trí tuệ con người được chấp nhận và sử dụng nhiều nhất, đó là:
- Khái niệm trí tuệ theo quan điểm của Turing
“Trí tuệ là những gì có thể đánh giá được thông qua các trắc nghiệm thông
minh”
- Khái niệm trí tuệ đưa ra trong tự điển bách khoa toàn thư:
Trí tuệ là khả năng:
Nhóm 8_KHMT1-K4 3
Trang 4“Phản ứng một cách thích hợp những tình huống mới thông qua hiệu chỉnh hành
vi một cách thích đáng Hiểu rõ những mối liên hệ qua lại của các sự kiện của thế giới bên ngoài nhằm đưa ra những hành động phù hợp đạt tới một mục đích nào đó”
2, Trí tuệ máy:
Cũng không có một định nghĩa tổng quát, nhưng cũng có thể nêu các đặc trưng chính:
- Khả năng học
- Khả năng mô phỏng hành vi của con người
- Khả năng trừu tượng hoá, tổng quát hoá và suy diễn
- Khả năng tự giải thích hành vi
- Khả năng thích nghi tình huống mới kể cả thu nạp tri thức và dữ liệu
- Khả năng xử lý các biểu diễn hình thức như các ký hiệu tượng trưng
- Khả năng sử dụng tri thức heuristic
- Khả năng xử lý các thông tin không đầy đủ, không chính xác
B Biểu diễn tri thức sử dụng mạng ngữ nghĩa
I, Giới thiệu về mạng ngữ nghĩa:
Mạng ngữ nghĩa là một phương pháp biểu diễn tri thức đầu tiên và cũng là phương pháp dễ hiểu tốt nhất đối với chúng ta Phương pháp này sẽ biểu diễn tri
thức dưới dạng một đồ thị, 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 này.
Ví dụ: Giữa các khái niệm chích chòe, chim, hót, cánh, tổ có một số mối quan
Trang 5Do mạng ngữ nghĩa là một loại đồ thị 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 Nghĩa là ta có thể dùng những thuật toán của đồ thị trên mạng ngữ nghĩa như thuật toán tìm liên thông, tìm đườ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ữ nghĩa so với đồ thị thông thường chính là
việc gán một ý nghĩa (có, làm, là, biết, ) cho các cung Trong đồ thị tiêu chuẩn, việc
có một cung nối giữa hai đỉnh chỉ cho biết có sự liên hệ giữa hai đỉnh đó và tất cả các
cung trong đồ thị đều biểu diễn cho cùng một loại liên hệ Trong mạng ngữ nghĩa,
cung nối giữa hai đỉnh 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ữ nghĩa vào các cung của đồ thị đã giúp giảm bớt được số lượng
đồ thị cần phải dùng để biễu diễn các mối liên hệ giữa các khái niệm Chẳng hạn như trong ví dụ trên, nếu sử dụng đồ thị thông thường, ta phải dùng đến 4 loại đồ thị cho 4
mối liên hệ : một đồ thị để biểu diễn mối liên hệ "là", một đồ thị cho mối liên hệ
"làm", một cho "biết" và một cho "có".
Mạng ngữ nghĩa có tính kế thừa, bởi vì ngay trong khái niệm, mạng ngữ nghĩa đã hàm ý sự
phân cấp (như các mối liên hệ "là") nên có nhiều đỉnh trong mạng mặc nhiên sẽ có
những thuộc tính của những đỉnh khác.
Chẳng hạn theo mạng ngữ nghĩa ở trên, ta có thể dễ dàng trả lời "có" cho câu hỏi :
"Chích chòe có làm tổ không?" Ta có thể khẳng định được điều này vì đỉnh "chích chòe" có liên kết "là" với đỉnh "chim" và đỉnh "chim" lại liên kết "biết" với đỉnh "làm tổ" nên suy ra đỉnh "chích chòe" cũng có liên kết loại "biết" với đỉnh "làm tổ" (Nếu để
ý, bạn sẽ nhận ra được kiểu "suy luận" mà ta vừa thực hiện bắt nguồn từ thuật toán
"loang" hay "tìm liên thông" trên đồ thị!) Chính đặc tính kế thừa của mạng ngữ nghĩa
đã cho phép ta có thể thực hiện được rất nhiều phép suy diễn từ những thông tin sẵn có trên mạng
II, Ưu điểm và nhược điểm của mạng ngữ nghĩa:
Trang 6- Mạng ngữ nghĩa cho phép các đinh 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 “là”, 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.
2 Nhược điểm:
- Tuy mạng ngữ nghĩa là một kiểu biểu diễn trực quan đối với con người nhưng khi đưa vào máy tính, các đối tượng và mối liên hệ giữa chúng thường được biểu diễn dưới dạng những phát biểu động từ (như vị từ) Hơn nữa, các thao tác tìm kiếm trên mạng ngữ nghĩa thường khó khăn (đặc biệt đối với những mạng
có kích thước lớn) Do đó, mô hình mạng ngữ nghĩa được dùng chủ yếu để phân tích vấn đề Sau đó, nó sẽ được chuyển đổi sang dạng luật hoặc frame để thi hành hoặc mạng ngữ nghĩa sẽ đượ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à bạn 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ế (vốn là một ưu điểm) trên mạng sẽ có thể dẫn đến nguy cơ mâu thuẫn trong tri thức Sở dĩ có điều này là vì có sự không rõ ràng trong ngữ nghĩa gán cho một nút của mạng Bạn đọc có thể phản đối quan điểm vì cho rằng, việc sinh ra mâu thuẫn là do ta thiết kế mạng dở chứ không phải do khuyết
điểm của mạng! Tuy nhiên, xin lưu ý rằng, tính thừa kế sinh ra rất nhiều mối
liên kết "ngầm" nên khả năng nảy sinh ra một mối liên hệ không hợp lệ là rất lớn.
- 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.
3 Ứng dụng:
Dù là một phương pháp tương đối cũ và có những yếu điểm nhưng mạng ngữ nghĩa vẫn có những ứng dụng vô cùng độc đáo 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.
Ví dụ 1 : 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
Trang 7câu Chẳng hạn, câu "Châu đang đọc một cuốn sách dày và cười khoái trá" có thể
được biểu diễn bằng một mạng ngữ nghĩa như sau :
Ví dụ 2: Giải bài toán tam giác tổng quát
Có 22 yếu tố liên quan đến cạnh và góc của tam giác Để xác định một tam giác hay
để xây dựng một 1 tam giác ta cần có 3 yếu tố trong đó phải có yếu tố cạnh Như vậy
- Đỉnh của đồ thị gồm 2 loại:
• Đỉnh chứa công thức ( ký hiệu bằng hình chữ nhật)
• Đỉnh chứa yếu tố của tam giác ( ký hiệu bằng hình tròn )
- Cung : chỉ nối từ đỉnh hình tròn đến đỉnh hình chữ nhật cho biết yếu tố tam giác xuất hiện trong công thức nào (không có trường hợp cung nối giữa hai đỉnh hình tròn hoặc cung nối giữa hai đỉnh hình chữ nhật).
Lưu ý : trong một công thức liên hệ giữa n yếu tố của tam giác, ta giả định rằng nếu đã biết giá trị của n-1 yếu tố thì sẽ tính được giá trị của yếu tố còn lại Chẳng hạn như trong công thức tổng 3 góc của tam giác bằng 180 0 thì khi biết được hai góc, ta sẽ tính được góc còn lại.
Cơ chế suy diễn thực hiện theo thuật toán “ loang “ đơn giản như sau:
Nhóm 8_KHMT1-K4 7
B1 : Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã có giá
trị)
B2 : Lặp lại bước sau cho đến khi kích hoạt được tất cả những đỉnh ứng với
những yếu tố cần tính hoặc không thể kích hoạt được bất kỳ đỉnh nào nữa
Nếu một đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà n-1 đỉnh hình tròn đã được kích hoạt thì kích hoạt đỉnh hình tròn còn lại (và tính giá trị đỉnh
còn lại này thông qua công thức ở đỉnh hình chữ nhật).
Trang 8III, Bài toán sử dụng mạng ngữ nghĩa để giải bài toán tam giác
1 Mô tả bài toán:
Ta có mạng ngữ nghĩa được xây dựng để giải bài toán tam giác như sau bao gồm
8 công thức và 11 yếu tố liên quan:
Đề bài: “Cho hai góc α, β và cạnh a của tam giác Yêu cầu tính bán kính đường tròn ngoại tiếp của tam giác” Với mạng ngữ nghĩa đã xây dựng ở trên thuật toán giải quyết như sau:
Trang 96 Công thức (3) được kích hoạt (p, a, b, c đã kích hoạt) Từ công thức (3) tính được diện tích S đỉnh S được kích hoạt.
7 Công thức (5) được kích hoạt(S,c đã kích hoạt) Từ công thức (5) tính được Hc đỉnh Hc được kích hoạt
8 Công thức (6) được kích hoạt (a, b, c, S đã kích hoạt) Từ công thức (6) tính được bán kính R đỉnh R được kích hoạt
9 Giá trị R đã tính được Thuật toán kết thúc
2 Các bước xây dựng thuật toán:
Bước 1: Khởi tạo
- Dùng một mảng A để lưu trữ các thông tin có liên quan đến Mạng Ngữ Nghĩa
- Trong đó, hàng biểu thị các biến (có bao nhiêu biến cần xét là có bấy nhiêu hàng); cột biểu thi các công thức (có bao nhiêu công thức thì có bấy nhiêu cột) Trong đó:
-1 nếu biến i có trong công thức j
A[i,j] = 0 nếu biến i không có trong công thức j
1 nếu biến i trong công thức j đã được kích hoạt
Bước 2: Kích hoạt các biến
Trên dòng i các giá trị -1 được biến thành 1
Nhóm 8_KHMT1-K4 9
Trang 10Bước 3:
- Tìm cột được kích hoạt (công thức được kích hoạt) Suy ra biến (hàng) được kích hoạt (là biến còn lại chưa được kích hoạt của công thức)
Bước 4:
- Nếu biến được kích hoạt không phải là biến cần tìm thì lặp lại bước2
- Nếu biến được kích hoạt là biến cần tìm thì kết thúc và thông báo“Tìm Thấy”
- Nếu không thể kích hoạt thêm biến hoặc công thức nào thì kết thúc và thông báo “Không Tìm Thấy”
Trang 11Quá trình kích hoạt diễn ra như sau:
Khởi tạo mảng ban đầu.
Trang 12Kích hoạt các yếu tố cho trong đề bài: α, β, a, nếu a[i,j]= -1 a[i,j] = 1
Trang 142 Công thức 2,3 còn nhiều hơn 1 yếu tố chưa kích hoạt nên chưa được kích hoạt.
Trang 154 Công thức 5,6,7,8 còn nhiều hơn 1 yếu tố chưa biết nên chưa được kích hoạt.
Nhóm 8_KHMT1-K4 15
Trang 175 Công thức (8) có 3/4 yếu tố đã kích hoạt kích hoạt công thức (8) đỉnh p được kích hoạt.
Trang 2014.Công thức (6) được kích hoạt (a, b, c, S đã kích hoạt) Từ công thức (6) tính được bán kính R đỉnh R được kích hoạt.
Trang 21IV, Demo chương trình:
1 Thuật toán cài đặt:
a Khởi tạo mảng
private double [,] a = new double [11, 8];
public void KhoiTaomang()
b Kích hoạt các yếu tố cho trước
private void KichHoatYeuToChoTruoc()
{
// Kích hoạt mảng a với những yếu tố được cho // a[i,j]= a0;
}
c Lấy vị trí của yếu tố chưa biết trong công thức j
private int LayViTriYeuToChuaBiet( int j)
// nếu còn nhiều hơn 1 yếu tố thì trả về giá trị -1
}
d Tính giá trị của các yếu tố trong từng công thức j
private void TinhCacYeuTo( int ViTriChuaBiet, int j, int dem) {
// Tính giá trị của yếu tố được kích hoạt
}
e Xử lý mạng ngữ nghĩa Nhóm 8_KHMT1-K4 21
Trang 22private void XuLyMangNguNghia()
{
int dem = 0; KichHoatYeuToChoTruoc(); bool DangKichHoat = true ; while (DangKichHoat) {
DangKichHoat = false ; for ( int j = 0; j < 8; j++) {
int ViTriChuaBiet = LayViTriYeuToChuaBiet(j); if (ViTriChuaBiet != -1) {
dem++; TinhCacYeuTo(ViTriChuaBiet, j, dem); DangKichHoat = true ; if (TimThayYeuToCanTim()) {
DangKichHoat = false ; groupBox1.Show(); break ; }
}
}
}
if (!TimThayYeuToCanTim()) {
MessageBox Show( "Không thể tìm được " ); }
2 Giao diện chương trình
Trang 23TÀI LIỆU THAM KHẢO
[1] Giáo trìnhTrí tuệ nhân tạo, Đại học công nghiệp hà Nội - Khoa Công nghệ thông tin.
[2] Slide bài giảng Trí tuệ nhân tạo, Thạc sĩ Trần Hùng Cường.
[3] http://www.google.com.vn/
Nhóm 8_KHMT1-K4 23