Upload
metal28032013
View
599
Download
7
Embed Size (px)
DESCRIPTION
BTL HCG danh cho cac ban hoc cong nghe thong tin
Citation preview
Báo cáo bài tập lớn
Môn hệ chuyên gia
Đề tài : Hệ chuyên gia tư vấn mua xe ô tô
Nhóm 2 - Lớp khoa học máy tính 1 khóa 4
1
Mục lục
Bảng phân công công việc.............................................................................................................3
Lời nói đầu......................................................................................................................................4
Cơ sở lý thuyết...............................................................................................................................5
Cấu trúc dữ liệu và giải thuật.......................................................................................................6
Demo chương trình......................................................................................................................10
Hình 1: giao diện chính của chương trình.................................................................................11
Hình 2: bộ sưu tập.......................................................................................................................12
Hình 3: Tình trạng xe..................................................................................................................12
Hình 4: Dòng xe...........................................................................................................................13
Hình 5: Ngoại thất.......................................................................................................................14
Hình 6: giá thành.........................................................................................................................14
Tài liệu tham khảo.........................................................................................................................14
2
Bảng phân công công việc
Nhiệm vụ Thành viên
- Tạo luật và xây dựng cây suy diễn - Nguyễn Trần Tiến
- Xây dựng thuật toán
- Lập trình
- Trần Phương Quỳnh
- Thiết kế giao diện - Trần Thị Danh
- Bùi Thúy Quỳnh
3
Lời nói đầu
Thực tế cho thấy rằng hiện nay nhu cầu mua xe hơi là rất nhiều tuy nhiên những người
không biết gì về thông số kỹ thuật cũng cơ cấu hoạt động của xe khi họ muốn mua xe họ
không biết phải lựa chọn như thế nào để phù hợp với mình và đặc biệt là vấn đề về giá cả
cũng như chất lượng xe. Vì vậy ý tưởng về hệ chuyên gia tư vấn mua xe được đề xuất.
Dựa trên phương pháp suy diễn tiến kết hợp với phương pháp hỏi xa và ngôn ngữ lập
trình C# nhóm 2 đã hoàn thành chương trình hệ chuyên gia tư vấn mua xe.
Tuy nhiên chương trình vẫn còn nhiều hạn chế như chưa khai thác triệt để phương pháp
suy diễn tiến, chương trình chưa được tối ưu hóa về mặt hình thức lẫn nội dung… vì vậy
rất mong được sự góp ý của thầy cô và các bạn.
4
Cơ sở lý thuyết
Phương pháp suy diễn tiến
Suy diễn tiến ( forward charning ) là lập luận từ các sự kiện, sự việc để rút ra các kết
luận. Ví dụ : nếu thấy trời mưa trước khi ra khỏi nhà (sự kiện) thì phải lấy áo mưa (kết
luận).
Trong phương pháp này, người sử dụng cung cấp các sự kiện cho hệ chuyên gia để hệ
thống (máy suy diễn) tìm cách rút ra các kết luận có thể. Kết luận được xem là những
thuộc tính có thể được gán giá trị. Trong số những kết luận này, có thể có những kết luận
làm người sử dụng quan tâm, một số khác không nói lên điều gì, một số khác vắng mặt.
Các sự kiện thường có dạng :
Attribute = value;
Lần lượt các sự kiện trong cơ sở tri thức được chọn và hệ thống xem xét tất cả các luật
mà các sự kiện này xuất hiện như là tiên đề. Theo nguyên tắc lập luận trên, hệ thống sẽ
lấy ra những luật thỏa mãn. Sau khi gán giá trị cho các thuộc tính thuộc kết luận tương
ứng, người ta nói rằng các sự kiện đã được thỏa mãn. Các thuộc tính được gán giá trị sẽ
là một phần của kết quả chuyên gia. Sau khi mọi sự kiện đã được xem xét, kết quả được
xuất ra cho người sử dụng.
5
Phương pháp hỏi xa
Hỏi đến khi thu thập được giả thiết để suy ra kết luận.
A. Biết kết luận
HỎIxa= {f/ đường đi p FPG, p= f … g, g KL}
TRÁI= lefti
PHẢI={q1……qn}
R={r1…..rm}
ri: left i qi
HỎIxa={f TRAI\ PHẢI/ đường đi p:f ….. g, g KL}
B. Không biết kết luận
HỎI= TRÁI \ PHẢI
Xét ví dụ ở trên:
TRÁI={ a b c m n f g h}
PHẢI={c f g h k}
HỎI=TRÁI \ PHẢI={a b d e m n}
Cấu trúc dữ liệu và giải thuật
- Xây dựng mô tơ suy diễn :
Các luật được biểu diễn và lưu vào file text. Tạo các biến lưu trữ như sau :
public static string[] R_left = new string[100];// lưu trữ các dữ kiện vế"
trái cu#a luật.
public static string[] R_right = new string[100];// lưu trữ các dữ kiện vế"
pha#i cu#a luật.
public static string[] KL = { "R", "S", "T", "U", "V", "W", "X", "Y" };//
tập các dữ kiện thuộc tập kế"t luận.
public static int soptTrai;
6
public static int soptPhai;
Tạo phương thức load file text lưu trữ các luật vào project, sau đó đưa các luật vào mảng.
string a;
string str;
string chuoi = "";
char[] R = new char[100];
StreamReader docFile = new StreamReader("Rule.txt");
a = docFile.ReadLine();
while (a != null)
{
R = a.ToCharArray(); // đưa chuỗBi a vào ma#ng R
for (int i = 0; i < a.Length; i++)
{
char thuong = R[i];
char hoa = char.ToUpper(R[i]);
string shoa = hoa.ToString();
string sthuong = thuong.ToString();
if (string.Compare(sthuong, shoa) == 0 && char.IsNumber(R[i])
== false && R[i].ToString() != ":" && R[i].ToString() != " ")
{
chuoi = chuoi + shoa;
}
}
str = chuoi;
// đưa từng ký tự bến pha#i cu#a luật vào ma#ng
7
soptPhai++;
string ganphai = str.Substring(str.Length - 1, 1);
R_right[soptPhai] = ganphai;
// đưa ký tự bến trái cu#a luật vào ma#ng
soptTrai++;
string gantrai = str.Substring(0, str.Length - 1);
R_left[soptTrai] = gantrai;
chuoi = "";
a = docFile.ReadLine();
- Tạo ra một biến trung gian, mỗi dữ kiện mới được thêm vào tập trung gian. Ví dụ:
- if (O.Checked == true)
- {
- frmTinhTrangXe.trunggian = frmTinhTrangXe.trunggian
+ "O";
- }
- if (P.Checked == true)
- {
- frmTinhTrangXe.trunggian = frmTinhTrangXe.trunggian
+ "P";
- }
- if (Q.Checked == true)
- {
- frmTinhTrangXe.trunggian = frmTinhTrangXe.trunggian
+ "Q";
- }
- Kiểm tra và thêm vế phải của các luật vào tập trung gian.
- public static string themluat(string tg)
8
- {
- try
- {
- for (int i = 1; i <= frmMain.soptTrai; i++)
- {
- string rleft = frmMain.R_left[i];
- if (tg.IndexOf(rleft) >= 0)
- {
- tg = tg + frmMain.R_right[i];
- }
- }
- return tg;
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex + "");
- return null;
- }
- }
- Tìm kết luận trong tập trung gian
- public static string timkiem(string tg)
- {
- try
- {
- for (int i = 0; i <= 8; i++)
- {
- string ketluan = frmMain.KL[i];
- //string kltam = "";
9
- if (tg.IndexOf(ketluan) >= 0)
- {
- //kltam = kltam + ketluan;
- tg = ketluan;
- break;
- }
- }
- return tg ;
- }
- catch
- {
- MessageBox.Show("Thật tiế"c ! \r\n\t showroom cu#a
chúng tỗi khỗng có xe nào đáp ứng như cầZu cu#a bạn \r\n\t bạn hãy thư# lại
với những yếu cầZu khác có lẽ sẽ tìm được xe !","KẾ"T QUA#");
- tg = "";
- return null;
- }
- }
Demo chương trình
- Giao diện chính của chương trình : có 2 chức năng cho bạn lựa chọn là
Tư vấn mua xe để đến đợt khảo sát của hệ thống
Bộ sưu tập để xem ảnh của các loại xe trong showroom.
10
Hình 1: giao diện chính của chương trình
- Bộ sưu tập : lưu trữ một số hình ảnh minh họa cho các loại xe trong showroom
11
Hình 2: bộ sưu tập
- Sau khi chọn chức năng tư vấn mua xe, các câu hỏi giúp bạn tìm mua được xe phù
hợp sẽ được hiển thị lần lượt.
Câu hỏi 1:
Hình 3: Tình trạng xe
Sau khi chọn “tiếp theo” câu hỏi thứ 2 hiển thị
12
Hình 4: Dòng xe
Câu hỏi thứ 3 :
13
Hình 5: Ngoại thất
Câu hỏi thứ 4 :
Hình 6: giá thành
Tài liệu tham khảo
1) Bài giảng hệ chuyên gia – Đại Học Hàng Hải
2) Các hệ cơ sở tri thức
3) Giáo trình hệ chuyên gia
……………..
14