báo cáo bài tập lớn hệ chuyên gia đề tài tư vấn tử vi - Pdf 33

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN


Đề Tài:

Tư vấn tử vi
Giảng viên hướng dẫn:

ThS. Nguyễn Thanh Hùng

Lớp:

Khoa Học Máy Tính 1 – K5

Nhóm thực hiện:

Nhóm 8

Hà Nội, tháng 11 năm 2012


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................


Nhóm 8 Lớp KHMT1-K5

Th.S Trần Thanh Hùng

MỤC LỤC
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.......................................................................2

Giới thiệu sơ lược nội dung sẽ trình bày:
Cấu trúc đề tài gồm 3 mục chính được đánh số I đến III, đi từ việc giới
thiệu đề tài và mục đích đề tài đến hướng giải quyết chính và cuối cùng là chi
tiết cài đặt chương trình Demo của nhóm.
Ngoài ra phần đầu đề tài là “giới thiệu sơ lược nội dung đề tài” và phần
cuối là “Một số tài liệu tham khảo” được nhóm sử dụng.
Một nội dung quan trong của đề tài là phần thuật toán sử dụng và chi tiết
cài đặt thuật toán của nhóm.
Đề tài với mục đích demo là chính giúp chúng ta hiểu được vai trò quan
trọng của việc xây dựng các hệ chuyên gia, và công dụng hữu ích của chúng
cho con người, hiểu được các bước cơ bản để hiện thực hóa một hệ chuyên gia.
Sau đây là nội dung chi tiết của đề tài, mọi ý kiến đóng góp xin gửi về
nhóm thực hiện Nhóm 8 Lớp KHMT1 - K5 Trường ĐH Công Nghiệp Hà Nội.

Trang 3/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

LỜI NÓI ĐẦU

BẢNG PHÂN CÔNG CÔNG VIỆC TRONG NHÓM
STT

Họ và tên

Công việc

Thời gian

Tiến độ

1

Đào Ngọc Luân

I đến III

07/2013

100%

2

Phùng Minh Tuân

I đến III

07/2013

100%

Trang 5/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

NỘI DUNG CHI TIẾT ĐỀ TÀI
I.

GIỚI THIỆU ĐỀ TÀI VÀ GIAI ĐOẠN THU THẬP TRI
THỨC CHUYÊN GIA
1) Trình bày tên đề tài và mục đích đề tài
Tên của đề tài:
Xây dựng demo shệ chuyên gia Tư vấn tử vi.
Mục đích đề tài:
Hệ chuyên gia xây dựng được phải có khả năng dự đoán tương lai của

một người nào đo
Các yêu cầu xây dựng:
Cần dự đoán tương lại và hiện tại một cách chuẩn xác , giải thích rõ ràng,
giao diện cần có tính hướng người sử dụng …
2) Phát biểu bài toán
Bài toán là một hệ chuyên gia được xây dựng nhằm dự đoán tương lai
của người sử dụng nó hoặc nó có thể giúp con người phần nào giảm đi áp lực
khi gặp một vấn đề khó giải quyết nào đó. Với mong muốn một phần nào đó có
thể tư vấn cho người sử dụng hệ thống biết tương lai mình như thế nào, số mình
sướng hay khổ… , chương trình có thể đưa ra các lời khuyên hoặc nhận xét về
con người bạn .Người sử dụng chỉ cần trả lời đúng hoặc sai các câu hỏi về nhận
dạng, hoặc dấu vết trên người của mình trên hệ thống và từ đó hệ thống sẽ đưa


Một người có thể được gọi là “Số đào hoa” khi người đó có
những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở
mặt”, “nốt ruồi ở tay”, “bàn tay vuông”, “bàn tay ít đường
chỉ”.

-

Một người có thể được gọi là “Số nghèo khổ” khi người đó có
những đặc điểm hình dáng như: “có mạt trái xoan”, “gò má
cao”, “bàn tay ngắn” , “bàn tay vuông”..
Trang 7/ 27


BTL Nhập Môn Hệ Chuyên Gia

-

Nhóm 8 Lớp KHMT1-K5

Một người có thể được gọi là “Số lận đận” khi người đó có
những đặc điểm hình dáng như: Có mặt trái xoan”, “gò má
thấp”, “trán cao”, “trán rộng”.

-

Một người có thể được gọi là “Số thọ” khi người đó có những
đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở mặt”,
“nốt ruồi ở chân”, “cổ tròn”,“gò má cao””.


Trang 8/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

o “Số sung túc”: đặt là ‘3’
o “Số lận đận ”: đặt là ‘4’
o “Số bình an”: đặt là ‘5’
o “Số nghèo khổ”: đặt là ‘6’
o “Số thọ”: đặt là ‘7’
o “Số phú quý”: đặt là ‘8’
o “Số tài giỏi”: đặt là ‘9’
-

Quy ước các đặc điểm hình dạng:
o “dáng vóc cao”: đặt là ‘a’
o “nốt ruồi ở mặt”: đặt là ‘b’
o “nốt ruồi ở tay”: đặt là ‘d’
o “nốt ruồi ở chân”: đặt là ‘e’
o “nốt ruồi ở vai”: đặt là ‘f’
o “bàn tay ngắn”: đặt là ‘g’
o “Bàn tay dài”: đặt là ‘h’
o “Bàn tay vuông”: đặt là ‘i’
o “Bàn tay ít đường chỉ ”: đặt là ‘j’
o “trán cao”: đặt là ‘k’
Trang 9/ 27




Luật 2: a^b^d->6

-

Luật 3: a^b^e^f^g->1

-

Luật 4: a^o^y->9

-

Luật 5: a^o^u^p->8

-

Luật 6: f^h^r^g^x->2

-

Luật 7: f^h^t^i^j->4

-

Luật 8: k^l^m->3

-

Luật 9: n^u^q->7

nhau và chỉ rõ giá trị của nó là:
o True (đúng, người dùng có đặc điểm hình dáng đó)
o False (sai, người dùng có đặc điểm hình dáng đó)

 Xây dựng: một lớp các sự kiện “SuKien” biểu diễn các đặc điểm hình dáng
là các mệnh đề có giá trị “True” hoặc “False”.
-

Xây dựng cấu trúc dữ liệu lưu trữ cơ sở tri thức của hệ chuyên
gia để sử dụng trong suy luận và đưa ra được tư vấn

 Lựa chọn của nhóm: xây dựng tập các luật sản xuất tổ chức trong một file
*.txt.
Trang 12/ 27


BTL Nhập Môn Hệ Chuyên Gia

-

Nhóm 8 Lớp KHMT1-K5

Xây dựng thuật toán có thể để tiến hành suy diễn từ tập các sự
kiện được cung cấp bởi người dùng và tập các luật (Rules) có sẵn
trong cơ sở tri thức để xác định được bệnh mà người dùng gặp
phải và từ đó đưa ra nhận xét hợp lý.

 Lựa chọn của nhóm: sử dụng tư tưởng chính của thuật toán suy diễn tiến để
suy diễn, nghĩa là “lập luận từ các sự kiện, sự việc “tiền đề” để rút ra kết luận”
(Trích Giáo trình Hệ chuyên gia, ĐH Đà Nẵng).

b) Biểu diễn các luật
Các luật là các tri thức chuyên gia được biểu diễn sao cho việc sử dụng
luật cho ta kết quả là dự đoán người dùng có “Số như thế nào đó”.
Các luật trong chương trình được biểu diễn theo cấu trúc gồm:
-

Phần trái luật: (hay còn gọi là bộ khởi động) chứa danh sách các
sự kiện cần có để luật được áp dụng và các toán tử ^(hội),
@(tuyển) , ~(phủ định).

-

Phần phải luật: chứa sự kiện biểu diễn các loại bệnh (cụ thể trong
chương trình là các bệnh từ 1 đến 9)

-

Khi phần trái luật được thỏa mãn (nhận giá trị logic bằng True)
thì luật được khởi động và phần phải luật được áp dụng, nói cách
khác là người dùng “có số ” như thế nào đó ở vế phải luật.

Cụ thể trong chương trình mỗi luật sẽ là một đối tượng thể hiện của lớp
“Luat” gồm có:
-

Các biến thành viên:
o private char tenLuat;// tên của luật
o private string traiLuat;// phần trái luật
o private string phaiLuat;// phần phải luật
o private string thanLuat;


Các thuộc tính và phương thức:

(Xin xem chi tiết trong class DanhSachSuKien trong chương trình Demo
kèm theo)
d) Biểu diễn danh sách các luật

Trang 15/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

Tương tự danh sách sự kiện, danh sách luật này là một mảng một chiều
biểu diễn cho tập các luật có trong cơ sở tri thức của chương trình. Danh sách
này dùng để duyệt qua các luật và cho biết loại bệnh mà người dùng mắc phải
theo đúng luật.
Cụ thể trong chương trình danh sách luật được biểu diễn là một lớp gồm
có:
-

Các biến thành viên:
o private int soLuat;// số các luật có trong danh sách luật
o private Luat[] dsLuat;// mảng một chiều lưu trữ các luật

-

Các thuộc tính và phương thức:


nào được áp dụng (chưa có luật xây dựng cho danh sách sự kiện
mà người dùng cung cấp).

Cụ thể cách giải quyết của nhóm là:
-

Sử dụng tư tưởng của thuật toán suy diễn tiến để suy luận logic
tại mỗi bước.

-

Cụ thể là coi mỗi lần “chuyên gia” hỏi và “người dùng” trả lời là
một bước lặp của vòng While (điều kiện dừng chưa thỏa).

-

Khi đó thuật toán cụ thể sẽ như sau:

Sử dụng 3 danh sách là: dsLuatDaHoi (danh sách các luật đã được
chuyên gia hỏi rồi) và dsLuatCoTheHoi (danh sách các luật còn có thể hỏi,
chưa bị phủ định bởi người dùng), dsLuatChuaHoi (danh sách các luật chưa
được hỏi tới). Thuật toán gồm 3 bước cụ thể như sau:
Bước 1: Khởi tạo
Khởi tạo danh sách sự kiện ban đầu sẽ là danh sách mà tất cả các sự kiện
đều có giá trị là False (sai) (người dùng không có nhận xét nào về “số” của
mình).
Load danh sách luật từ cơ sở tri thức. dsLuatDaHoi = {rỗng},
dsLuatCoTheHoi = dsLuatChuaHoi = {danh sách luật có trong cơ sở tri thức}
Trang 17/ 27


-

dsLuatCoTheHoi được gán bằng dsLuatChuaHoi.

Bước 3: Điều kiện dừng
Lặp lại bước 2 cho đến khi 1 trong 2 trường hợp sau sảy ra
-

Có luật được áp dụng: thì kết luận người dùng mắc bệnh tương
ứng mà luật biểu diễn và thông báo cho người dùng.

-

Không có luật nào được áp dụng cả (hay nói cách khác tập luật
đang xét bị rỗng), thông báo ra cho người dùng biết
(dsLuatCoTheHoi = {rỗng}).

Trang 18/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

III. THIẾT KẾ CHƯƠNG TRÌNH DEMO
1) Ngôn ngữ và các công cụ
Nhóm sử dụng ngôn ngữ C# để xây dựng chương trình của mình.
Sử dụng công cụ là Visual Studio C# 2010, cơ sở tri thức là tập luật và
tập sự kiện được lưu trữ trong 2 file dạng *.txt là “Luat.txt” và “SuKien.txt”,
được đặt sẵn trong thư mục Debug của Project. Trong 2 file này các luật và sự

o Phần 2 là danh sách tên của các sự kiện.
o Phần 3 là danh sách phần text của luật hay chính là phần xâu
biểu diễn cho triệu chứng mà sự kiện cần xác nhận.
2) Cài đặt
Cụ thể các modul chính đã được cài đặt trong chương trình gồm:
-

Sự kiện click vào nút “Đúng” trong form “TƯ VẤN”.

-

Sự kiện click vào nút “Sai” trong form “TƯ VẤN”.

-

Class “MaySuyDien” chứa các phương thức cho phép sử lý các
sự kiện, các luật, các danh sách sự kiện, các danh sách luật, tìm ra
sự kiện cần hỏi, xuất tư vấn cho người dùng…

Chi tiết các modul mời xem trong chương trình Demo kèm theo của
nhóm.
3) Một số giao diện chính và kết quả chạy chương trình
Lưu ý: Để chạy được chương trình yêu cầu là phải có các file *.txt lưu
trữ luật (Luat.txt) và sự kiện (SuKien.txt) được đặt sẵn trong thư mục Debug
của Project “He chuyen gia” kèm theo.
Sau đây là hướng dẫn cụ thể các bước sử dụng chương trình:
Bước 1: Khởi động chương trình

Trang 20/ 27




.

-

Sau khi tìm ra bệnh của bạn hệ thống sẽ tư vấn cho bạn như thế
này: (Xem hình bên trang kế)

-

Sau khi nhận được tư vấn bạn có thể lưu phiên làm việc lại bằng

cách nhấn nút
. Khi đó chương trình yêu cầu bạn
chọn nơi lưu trữ file “Tư vấn” như sau:

-

Tại giao diện này bạn cũng có thể chọn chọn nút
để
mở form “QuanLyLuat” và thực hiện các thao tác với form
“QuanLyLuat” sẽ được trình bày bên dưới.

Trang 22/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

nhóm hãy nhấn “alt+g”.
Kết quả khi chạy chương trình: Với 9 luật suy diễn và 20 đặc điểm hình
dáng tương ứng 9 “số con người” chương trình đã đưa ra các tư vấn chính xác
cho người dùng.
4) Đánh giá và hướng phát triển

Trang 24/ 27


BTL Nhập Môn Hệ Chuyên Gia

Nhóm 8 Lớp KHMT1-K5

Chương trình có thể dự đoán được “số con người” với những đặc điểm
hình dáng cho trước. Và với “số con người” vừa dự đoán được chương trình có
thể đưa ra một số lời khuyên và nhận xét giúp con người sống tốt đẹp hơn.
Chương trình sử dụng các cấu trúc dữ liệu kiểu mảng một chiều để lưu
trữ các luật, các sự kiện vốn là các cấu trúc dữ liệu quen thuộc và dễ cài đặt, dễ
sử dụng và cũng khá hiệu quả trong việc biểu diễn dữ liệu. Thuật giải có độ
phức tạp O(n) (n là số các đặc điểm hình dáng được duyệt qua) có thể chấp
nhận được và là thuật giải hữu hạn các bước lặp.
Chương trình chạy tốt và đưa ra các tư vấn chính xác cho người dùng tùy
theo các sự kiện từ việc xác nhận các đặc điểm hình dáng của người dùng sau
một số lượng các “giao tiếp” (giữa người dùng và hệ thống) nhất định.
Hướng phát triển của đề tài:
Nếu có thể, chương trình có thể được phát triển theo hướng dự đoán
tương lai cho những đối tượng khác nhau, lứa tuổi khác nhau để việc dự đoán
đưa ra các nhận xét cho người sử dụng có thể được chính xác hơn, cụ thể hơn.
Với đúng ý tưởng và cách thức xây dựng như trên, chương trình có thể
phát triển hơn trong việc tăng số lượng luật và sự kiện để có thể dự đoán thêm


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status