Hầu hết mọi người trong chúng ta đều trải qua những năm tháng học tập trong các trường phổ thông. Khi rời ghế nhà trường, ai cũng phải tính đến việc tìm cho mình một nghề để học và làm, tạo cho mình có một cuộc sống tự lập.
Trang 1BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 2
I.Phân công công việc: 3
II Phân tích bài toán: 4
1.Mục đích bài toán: 4
2 Cách thực hiện: 4
III Cấu trúc dữ liệu và cách biểu diễn các trạng thái của bài toán 8 IV Các thuật toán được sử dụng 11
V Ngôn ngữ được sử dụng: 14
VI Một số giao diện và kết quả chạy chương trình: 15
Giao diện chính chương trình: 15
Giao diện chạy chương trình: 16
Quản lý file TEXT 17
Giao diện kết quả: 18
VII Tài liệu tham khảo: 19
Trang 3-LỜI MỞ ĐẦU
Hầu hết mọi người trong chúng ta đều trải qua những năm tháng học tậptrong các trường phổ thông Khi rời ghế nhà trường, ai cũng phải tính đến việc tìmcho mình một nghề để học và làm, tạo cho mình có một cuộc sống tự lập Chọnnghề là một việc không đơn giản: Bạn chọn nghề gì? Liệu bạn có đủ điều kiệntheo đuổi nghề đó không? Bạn có yêu nghề đó và mãi mãi gắn bó với nó không?v.v… Những câu hỏi như vậy không dễ trả lời
Trong bất kỳ hoạt động nào, yếu tố con người luôn là yếu tố quan trọngquyết định sự thành công hay thất bại Chính vì thế, vấn đề nguồn nhân lực luônluôn được đặt lên hàng đầu Với một vị trí và công việc thích hợp, con người cóthể phát huy được tất cả những ưu điểm của mình
Chọn cho mình một nghề nghĩa là chọn cho mình một tương lai Việc chọnnghề thực sự quan trọng và vô cùng cần thiết Chọn sai lầm một nghề nghĩa là đặtcho mình một tương lai không thực sự an toàn và vững chắc Cùng với những nỗlực của mình, chúng tôi hy vọng website sẽ là người bạn đồng hành đáng tin cậycủa các bạn học sinh trong quá trình học tập, chọn nghề hiện nay, trong việc họcnghề và hành nghề sau này
Xuất phát từ nhu cầu thực tế, chúng tôi đã chọn đề tài: Xây dựng hệ chuyên
gia tư vấn hướng nghiệp Trong phần mềm này, chúng tôi cung cấp cho bạn một
số câu hỏi Tư vấn hướng nghiệp dưới dạng trắc nghiệm Hy vọng những nội dung
tư vấn này sẽ là tài liệu tham khảo bổ ích giúp bạn gợi mở nhận thức và giải pháptrong định hướng nghề nghiệp, trong việc thi tuyển, học nghề và lập nghiệp
Chúng em xin chân thành cảm ơn thày giáo Trần Hùng Cường đã hướngdẫn chúng em hoàn thành đề tài này
Do còn thiếu kinh nghiệm nên chương trình của chúng tôi không thể tránhđược những thiếu sót Mong nhận được sự góp ý của thày giáo và các bạn đểchương trình được hoàn thiện hơn
Hà Nội, ngày 15 tháng 8 năm 2010
Trang 4Nhóm thực hiện
I.Phân công công việc:
Nhận được đề tài, nhóm xác định các công việc cần thực hiện như sau:
- Tìm hiểu đề tài, phân tích bài toán, cách xây dựng hệ chuyên gia
- Thu thập tài liệu
- Nghiên cứu tài liệu
- Lập trình, cài đặt, kiểm thử
- Hoàn thiện, viết báo cáo
Nhóm dự kiến chi tiết thời gian thực hiện như sau:
C Công việc Thực hiện Thời gian
Tìm hiểu đề tài, phân tích bài
toán
Cả nhóm 1 tuần
Thu thập tài liệu Cả nhóm 4 ngày
Nghiên cứu tài liệu Cả nhóm 1 tuần
Lập trình, cài đặt, kiểm thử Cả nhóm 10 ngày
Hoàn thiện, viết báo cáo Cả nhóm 2 ngày
Trang 5II Phân tích bài toán:
1.Mục đích bài toán:
Nhóm xây dựng chương trình Hệ chuyên gia tư vấn hướng nghiêp với mụcđích sẽ cung cấp được một số thông tin cơ bản về công tác hướng nghiệp,những chỉ dẫn cần thiết trong việc lựa chọn nghề nghiệp cho bản thân, giớithiệu khái quát các lĩnh vực ngành nghề trong xã hội v.v… Chương trình cũng cung cấp những bài viết hướng dẫn kỹ thuật thực hànhmột số nghề dành cho những người không có điều kiện học qua trường lớpnhưng muốn tự tạo cho mình một công việc tuỳ theo sở thích, điều kiện sốngcũng như khả năng tài chính của mình
2 Cách thực hiện:
Chương trình được thực hiện dưới hình thức đưa ra các câu hỏi trắc nghiệm
và người sử dụng sẽ lựa chọn mức độ cho từng câu hỏi (độ chắc chắn (CF)) Sau
đó, dựa vào lý thuyết độ chắc chắn ta sẽ tính được mức độ chắc chắn đối với từngnghề nghiệp Nghề nghiệp nào có độ chắc chắn lớn nhất thì sẽ phù hợp với người
sử dụng nhất
MB (Measure of Belief in): độ đo sự tin cậy
MD (Measure of Disbelief in) : độ đo sự tin không tin cậy
CF (Certainly Factor): hệ số chắc chắn
Gọi: - MB(H/E) là độ đo sự tin cậy của giả thiết H khi có chứng cứ E
-MD(H/e) là độ đo sự không tin cậy của giả thiết H khi có chứng cứ E.Khi đó: 0 < MB(H/E) < 1 trong khi MD(H/E) = 0
0 < MD(H/E) < 1 trong khi MBs(H/E)=0
Độ đo chắc chắn CF(H/E) được tính bằng công thức:
CF(H/E) = MB(H/E) – MD(H/E)
a Luật đơn giản: if (e) then (c)
Trang 6CF(e) là độ đo chắc chắn của chứng cớ.
CF(r) là độ đo chắc chắn của luật suy diễn.
Khi đó: CF(c) là độ đo chắc chắc của kết luận sẽ được tính bằng công thức:
CF(c) = CF(e) * CF(r)
b Công thức độc lập: (kết hợp nhiều luật có cùng kết luận)
Luật 1: IF (e1) THEN (c) với CF(r1) là độ đo chắc chắn của luật 1
Luật 2: IF (e2) THEN (c) với CF(r2) là độ đo chắc chắn của luật 2
- Nếu CF(r1) và CF(r2) đều dương thì:
Hệ sẽ đưa ra tất cả các luật với những ngành nghề mà người dùng lựa chọn,
từ đó, người dùng sẽ lựa chọn mức độ của mình đối với từng luật đó Đây chính là
độ chắc chắn của chứng cớ CF(e) Trong chương trình đã có độ chắc chắn của luậtsuy diễn CF(r) Từ đây ta sẽ tính được độ chắc chắn của kết luận CF(c) dựa vào cáccông thức tính độ đo sự chắc chắn dựa trên mạng suy diễn sau:
Trang 7Sử dụng công thức tính như sau:
If (e1) then c với CF(r1)
If (e2) then c với CF(r2)
…
If (en) then c với CF(r3)
Vì chỉ có công thức tính với 2 giả thiết :
If (e1) then c
If (e2) then c
Nên ta sẽ tính dần từng cặp đôi 1
If (e1) then c với CF(r1)
IF(e2) then c với CF(r2)
Cuối cùng chỉ còn một cặp đôi I và II và ta tính theo công thức:
- Với CF(I) và CF(II) là CF của kết luận 1 và 2, khi CF(I) và CF(II) đều dương thì:
Ctổng = CF(I) + CF(II) – CF(I) * CF(II)
Trang 8- Khi CF(I) và CF(II) đều âm thì:
Ctổng = CF(I) + CF(II) + CF(I) * CF(II)
- Nếu CF(I) khác dấu CF(II) thì:
Sau khi tính được độ chắc chắn của kết luận, so sánh đọ chắc chắn của cáckết luận lấy độ chắc chắn lớn nhất Dựa vào đó, hệ thống sẽ đưa ra thông báo tớingười dùng ngành nghề nào sẽ phù hợp với họ
Trang 9III Cấu trúc dữ liệu và cách biểu diễn các trạng thái của bài toán
Bài toán sử dụng các đối tượng Nút, Luật, Kết luận
- Cấu trúc của đối tượng Nút:
Ví dụ:
e1:Tính tự lập, đầu óc thực tế
Trong đó: e1: là mã nút
Tính tự lập, đầu óc thực tế: là tên nút
Các thuộc tính: - getMaNut: để lấy mã nút.
- getTenNut: để lấy tên nút.
- getCFNut: để lấy độ chắc chắn của nút.
Hàm: - addCF: thêm độ chắc chắn của nút.
- Cấu trúc của đối tượng Luật:
Ví dụ: r1 e1->c1:0.9
Trong đó: r1: là mã luật
Trang 10e1: là mã nút c1: là mã kết luận 0.9: là độ chắc chắn của chứng cớ.
Các thuộc tính: - getCFLuat: để lấy CF của luật
- getMaKetLuanLuat: để lấy mã kết luận
- getMaLuat: để lấy mã luật
- getmaNutluat: để lấy mã nút
- getTenLuat: để lấy tên luật
Trang 11- Cấu trúc của đối tượng
Ví dụ: c1:Thực tế như Kỹ thuật, nông nghiệp, thuỷ lợi, dầu khí…
- getMaKetLuan: để lấy mã kết luận
- getTenKetLuan: để lấy tên kết luận
Hàm:
- addCFTong: để tính CF tổng cho mỗi kết luận
Trang 12IV Các thuật toán được sử dụng
Chương trình sử dụng các hàm:
- loadNut: để lấy dữ liệu từ file Nut.txt ra class Nut.cs
public void loadNut()
{
{
Trang 13- Áp dụng lý thuyết về độ chắc chắn CF
private void butTinhToan_Click( object sender, EventArgs e)
{
try {
loadKetLuan(); loadLuat(); textBoxX1.Text = "" ; textBoxX3.Text = "" ; txtMoTa.Text = "" ; foreach ( Luat bienLuat in listLuat) {
foreach ( Nut bienNut in listNut) {
if (bienNut.getMaNut == bienLuat.getmaNutluat) {
bienLuat.getCFLuat = bienLuat.getCFLuat * bienNut.getCFNut * 0.1F; }
}
}
float cFTam; int i; foreach ( KetLuan bienKetLuan in listKetLuan) {
cFTam = 0; i = 0; foreach ( Luat bienLuat in listLuat) {
if (bienLuat.getMaKetLuanLuat == bienKetLuan.getMaKetLuan) {
cFTam += bienLuat.getCFLuat - cFTam * bienLuat.getCFLuat; i++;
}
}
if (i == 0) {
bienKetLuan.addCFTong(0.0F); }
else {
bienKetLuan.addCFTong(cFTam); }
textBoxX1.Text += bienKetLuan.getTenKetLuan + ": " + bienKetLuan.getCFTong + "; " ; }
Trang 14Theo dữ liệu bạn nhập vào, \r\n chúng tôi khuyên bạn nên chọn \r\n nhóm ngành:" ;
Trang 15V Ngôn ngữ được sử dụng:
Chương trình được viết bằng ngôn ngữ C# bởi vì đây là một ngôn ngữ trựcquan, dễ sử dụng Sử dụng giao diện được viết bằng Window Form nên quenthuộc với hầu hết người sử dụng máy tính
Trang 16VI Một số giao diện và kết quả chạy chương trình:
Giao diện chính chương trình:
Trang 17Giao diện chạy chương trình:
Trang 19Quản lý file TEXT
Trang 20Giao diện kết quả:
Trang 21VII Tài liệu tham khảo:
- Giáo trình Hệ chuyên gia
- Các hệ cơ sở tri thức
- Một số trang web