Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
45
Để giải quyết bài toán học viên đã sử dụng hệ chuyên gia đó là phương pháp biểu diễn tri thức bằng luật dẫn xuất (luật sinh) và cách thức suy diễn tiến.
+ Phương pháp biểu diễn tri thức bằng luật dẫn xuất (luật sinh):
Phương pháp biểu diễn tri thức bằng luật sinh được phát minh bởi Newell và Simon trong lúc hai ông đang cố gắng xây dựng một hệ giải bài toán tổng quát. Đây là một kiểu biểu diễn tri thức có cấu trúc. Ý tưởng cơ bản là tri thức có thể được cấu trúc bằng một cặp điều kiện – hành động : "NẾU điều kiện xảy ra THÌ hành động sẽ được thi hành".
Ví dụ : NẾU nhân viên a làm việc có hiệu quả trong nhiều năm trở lại đây THÌ Ban giám đốc nên xem xét tăng lương cho nhân viên a.
Trong luận văn của mình học viên đã nghiên cứu cách tạo các luật dẫn. - Ưu điểm [1]:
Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với người dùng (vì nó là một trong những dạng tự nhiên của ngôn ngữ).
Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ các luật. Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng.
Có thể cải tiến dễ dàng để tích hợp các luật mờ. Các luật thường ít phụ thuộc vào nhau.
- Nhược điểm [1]:
Các tri thức phức tạp đôi lúc đòi hỏi quá nhiều (hàng ngàn) luật dẫn. Điều này sẽ làm nảy sinh nhiều vấn đề liên quan đến tốc độ lẫn quản trị hệ thống.
Người xây dựng hệ thống thích sử dụng luật dẫn hơn tất cả phương pháp khác, nên họ thường tìm mọi cách để biểu diễn tri thức bằng luật cho dù có phương pháp khác thích hợp hơn. Đây là nhược điểm mang tính chủ quan của con người.
Cơ sở tri thức luật dẫn lớn sẽ làm giới hạn khả năng tìm kiếm của chương trình điều khiển. Nhiều hệ thống gặp khó khăn trong việc đánh giá các hệ dựa trên luật cũng như gặp khó khăn khi suy luận trên luật.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
46 Thêm thông tin vào bộ nhớ làm việc
Xét luật đầu tiên
Kiểm tra luật Còn luật
Xét luật tiếp theo
Kết luận vào bộ nhớ làm việc Dừng suy diễn
Sai đúng
Hình 17. Mô tơ suy diễn tiến giải quyết bài toán + Tổ chức tri thức lưu trên bộ nhớ phụ với file: data.pl
Khi sử dụng chương trình mỗi nhân viên sẽ load các tri thức vào file này sau đó chạy các luật. Kết thúc đưa ra kết quả.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 47 Bộ nhớ làm việc Động cơ suy luận Giao diện
người dùng Bộ giao tiếp
chương trình ngoài
Cơ sở tri thức Bộ giải thích Giao diện người phát triển Người dùng Người phát triển
Hình 18. Mô hình hệ chuyên gia giải quyết bài toán c. Thuật toán tổng quát
Begin
Chọn bài toán thích hợp Phát biểu và đặc tả bài toán
If Hệ chuyên gia giải quyết thoả mãn bài toán và có thể sử dụng Then While Bản mẫu chưa được phát triển hoàn thiện Do
Begin
Thiết kế bản mẫu Biểu diễn tri thức Tiếp nhận tri thức
Phát triển hoàn thiện bản mẫu End
Hợp thức hoá bản mẫu Triển khai cài đặt Hướng dẫn sử dụng Vận hành
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 48 Bảo trì và phát triển Else Tìm các tiếp cận khác thích hợp hơn EnIf Kết thúc
Để thiết kế một hệ chuyên gia, trước tiên cần có sự lựa chọn một bài toán thích hợp (selecting the appropriate problem). Tương tự các dự án phần mềm, để triển khai thiết kế một hệ chuyên gia, cần phải có các yếu tố về nhân lực, tài nguyên và thời gian. Những yếu tố này ảnh hưởng đến giá thành của một hệ chuyên gia.
d. Xây dựng luật
Bài toán được giải quyết bằng phương pháp xây dựng các luật sản xuất để suy diễn
Ngôn ngữ xây dựng luật là Prolog: Prolog là ngôn ngữ lập trình logic được sử dụng phổ biến nhất trong dòng các ngôn ngữ lập trình logic. Ngôn ngữ này do giáo sư người Pháp Alain Colmerauer và nhóm của ông đề xuất lần đầu tại trường Đại học Marseille năm 1970. Prolog còn được gọi là ngôn ngữ lập trình ký hiệu. Prolog được sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạo.[3]
Trong luận văn của mình để xây dựng được chương trình học viên đã sử dụng ngôn ngữ Prolog để xây dựng các luật dẫn.
Khác với những ngôn ngữ cấu trúc như Pascal, hay C mà ta đã làm quen, Prolog là một ngôn ngữ mô tả, với một số sự kiện và quy luật suy diễn đã mô tả, Prolog sẽ suy luận cho ta các kết quả.
Các luật được xây dựng cụ thể như sau:
%Trong tháng nếu trưởng phòng đánh giá khối lượng công việc giao cho nhân viên là 10 điểm thì +2 điểm vào tổng điểm.
luatC1(A,A1) :- tong(A),khoiluong(X),(X>=10 -> A1 is A+2).
%Trong tháng trưởng phòng đánh giá khối lượng công việc giao cho nhân viên là 9 điểm thì +1 điểm vào tổng điểm.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
49
luatC2(A,A1) :- tong(A),khoiluong(X),(X>=8,X<10-> A1 is A+1).
>17 thì +1 điểm cho tổng điểm. luatC3(A,A1) :- tong(A),khoiluong(X), X>7,kyluat(Y),Y>7,ketqua(Z),Z>17, A1 is A+1.
<10 và kết quả được đánh giá trong tháng =17 điểm thì + 1 điểm cho tổng điểm.
luatC4(A,A1) :- tong(A),phuctap(X),ketqua(Y),(X>7,X<10,Y=17 ->A1 is A+1). <10 và kết quả được đánh giá trong tháng >17 thì + 2 điểm cho tổng điểm.
luatC5(A,A1) :- tong(A),phuctap(X),ketqua(Y),(X>7,X <10,Y>17->A1 is A+2). %Trong tháng
cho nhân viên =10 và kết quả được đánh giá trong tháng = 20 điểm thì + 3đ cho tổng điểm.
luatC6(A,A1) :- tong(A),phuctap(X),ketqua(Y),(X=10,Y=20 -> A1 is A+3). %Trong tháng nếu trưởng phòng đánh giá điểm chịu áp lực cho nhân viên >8 điểm và tính kỷ luật đạt được trong tháng >8 điểm thì 1 điểm cho tổng điểm.
luatC7(A,A1) :- tong(A),apluc(X),kyluat(Y),(X>8,Y>8->A1 is A+1).
% Trong tháng nếu trưởng phòng đánh giá điểm khả năng sáng tạo, linh động cao >8 điểm và tính kỷ luật đạt được trong tháng >8 điểm thì 1đ cho tổng điểm.
luatC8(A,A1) :- tong(A),sangtao(X),kyluat(Y),(X>8,Y>8->A1 is A+1). % Cac luat kiem tra
kiemtra1(Z):- phuctap(X),(X=10-> Z is 1; Z is 0). kiemtra2(Z):- phoihop(X),(X=10-> Z is 1; Z is 0). kiemtra3(Z):- khoiluong(X),(X=10-> Z is 1; Z is 0). kiemtra4(Z):- sangtao(X),(X=10-> Z is 1; Z is 0). kiemtra5(Z):- trachnhiem(X),(X=10-> Z is 1; Z is 0). kiemtra6(Z):- kyluat(X),(X=10-> Z is 1; Z is 0).
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
50 kiemtra7(Z):- apluc(X),(X=10-> Z is 1; Z is 0). kiemtra8(Z):- khoahoc(X),(X=10-> Z is 1; Z is 0).
kiemtrat(Z):- kiemtra1(X1), kiemtra2(X2), kiemtra3(X3), kiemtra4(X4), kiemtra5(X5) , kiemtra6(X6), kiemtra7(X7), kiemtra8(X8),Z is X1+X2+ X3+X4+ X5+ X6+ X7+ X8.
%Nếu trong tháng có 4 tiêu chí đạt 10 điểm thì cộng 1 điểm cho tổng điểm luatC9(A,A1):-tong(A),kiemtrat(X),X=4,ketqua(Y),Y>14, A1 is A+1. %Nếu trong tháng có 5 tiêu chí đạt 10 điểm thì cộng 2 điểm cho tổng điểm luatC10(A,A1):-tong(A),kiemtrat(X),X=5,ketqua(Y),Y>14, A1 is A+2. %Nếu trong tháng có 6 tiêu chí đạt 10 điểm thì cộng 3 điểm cho tổng điểm luatC11(A,A1):-tong(A),kiemtrat(X),X=6,ketqua(Y),Y>14, A1 is A+3. %Nếu trong tháng có 7 tiêu chí đạt 10 điểm thì cộng 4 điểm cho tổng điểm luatC12(A,A1):-tong(A),kiemtrat(X),X=7,ketqua(Y),Y>14, A1 is A+4. %Nếu trong tháng có 8 tiêu chí đạt 10 điểm thì cộng 5 điểm cho tổng điểm luatC13(A,A1):-tong(A),kiemtrat(X),X=8,ketqua(Y),Y>14, A1 is A+5. %II.Trừ điểm.
% Trong tháng nếu trưởng phòng đánh giá điểm phức tạp < 5 điểm, điểm kỷ luật <5 và kết quả < 10. Thì trừ 5 điểm vào tổng điểm.
luatT1(A,A1):-tong(A),phuctap(X),X<5,kyluat(Y),Y<5,ketqua(Z),Z<10, A1 is A-5.
% Trong tháng nếu trưởng phòng đánh giá điểm phối hợp < 5 điểm, điểm khối lượng <5 và kết quả < 10. Thì trừ 4 điểm vào tổng điểm.
luatT2(A,A1):-tong(A),phoihop(X),X<5,khoiluong(Y),Y<5,ketqua(Z),Z<10, A1 is A-3.
% Trong tháng nếu trưởng phòng đánh giá điểm trách nhiệm < 5 điểm, điểm áp lực <5 và kết quả < 10. Thì trừ 1 điểm vào tổng điểm.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
51
luatT3(A,A1):-tong(A),trachnhiem(X),X<5,apluc(Y),Y<5, ketqua(Z), Z<10, A1 is A-1.
e. Loại bỏ luật thừa trong cơ sở tri thức
Tri thức trong một cơ sở tri thức rất có khả năng thừa, trùng lắp hoặc mâu thuẫn. Dĩ nhiên là hệ thống có thể đổ lỗi cho người dùng về việc đưa vào hệ thống những tri thức như vậy.
Tuy việc tối ưu một cơ sở tri thức về mặt tổng quát là một thao tác khó (vì giữa các tri thức thường có quan hệ không tường minh), nhưng trong giới hạn cơ sở tri thức dưới dạng luật, ta vẫn có một số phương pháp để loại bỏ các vấn đề này.
Một luật dẫn A → B được gọi là thừa nếu có thể suy ra luật này từ những luật còn lại.
Ví dụ : trong tập các luật gồm {A → B, B → C, A → C} thì luật thứ 3 là luật thừa vì nó có thể được suy ra từ 2 luật còn lại.
■ Cách loại bỏ luật thừa đó là: + Rút gọn bên phải
Luật sau hiển nhiên đúng : A ˄ B →A (1)
Do đó luật
A ˄ B → A ˄ C
Là hoàn toàn tương đương với A ˄ B → C
Quy tắc rút gọn : Có thể loại bỏ những sự kiện bên vế phải nếu những sự kiện đó đã xuất hiện bên vế trái. Nếu sau khi rút gọn mà vế phải trở thành rỗng thì luật đó là luật hiển nhiên. Ta có thể loại bỏ các luật hiển nhiên ra khỏi tri thức.
+ Rút gọn bên trái Xét các luật :
(L1) A ˄ B → C (L2) A → X
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
52 (L3) X → C
Rõ ràng là luật A B → C có thể được thay thế bằng luật A→ C mà không làm ảnh hưởng đến các kết luận trong mọi trường hợp. Ta nói rằng sự kiện B trong luật (1) là dư thừa và có thể được loại bỏ khỏi luật dẫn trên.
+ Phân rã và kết hợp luật Luật A ˄ B → C . Tương đương với hai luật A → C; B → C
Với quy tắc này, ta có thể loại bỏ hoàn toàn các luật có phép nối HOẶC. Các luật có phép nối này thường làm cho thao tác xử lý trở nên phức tạp.
■ Thuật toán tổng quát tối ưu tập luật dẫn: Bước 1: Rút gọn bên phải
Với mỗi luật r trong R
Với mỗi sự kiện A thuộc vế phải(r).
Nếu A thuộc vế trái(r) thì loại A ra khỏi vế phải của R. Nếu vế phải(r) rỗng thì loại bỏ r ra khỏi luật dẫn : R= R-{r}. Bước 2 phân rã các luật
Với mỗi luật r : X1 .. X2 …vXn Y trong R Với mỗi i từ 1 đến n R = R + { Xi Y } R = R – {r}
Bước 3 : Loại bỏ luật thừa Với mỗi luật r thuộc R
Nếu vế phải(r) thuộc BaoDong(VếTrái(r),R-{r}) thì R = R - {r} Bước 4 : Rút gọn vế trái
Với mỗi luật dẫn r : X : A1,A2…,An Y thuộc R Với mỗi sự kiện Ai thuộc r
Gọi luật r1 : X – Ai Y S = (R – {r}) hợp {r1}
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
53
Nếu BaoĐóng( X – Ai,S ) ≡ BaoĐóng(X,R) thì loại sự kiện A ra khỏi X.
Trong cơ sở tri thức của em đã sử dụng phương án để tối ưu luật và loại bỏ luật thừa.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
54
CHƢƠNG 3: XÂY DỰNG PHẦN MỀM 3.1. Môi trƣờng xây dựng phần mềm
Hệ điều hành: WindowsXP, Windows 7. Windows 8.
Công cụ lập trình: Microsoft Visual Studio, ngôn ngữ lập trình C#, ngôn ngữ prolog.
Công cụ phân tích, thiết kế: Microsoft SQL server 2005, MS Visio 2003 Công cụ viết báo cáo: Microsoft Word 2007, MS Paint.
Cùng các công cụ tạo Help, Demo, Install khác.
3.2. Một số bảng dữ liệu chính của chƣơng trình
a. Bảng nhân viên(tbl_ HRM_EMPLOYEE)
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 EmployeeCode varchar 20 Mã nhân viên 2 DepartmentCode varchar 20 Mã phòng ban
3 FirstName nvarchar 100 Họ và tên đệm
4 LastName nvarchar 50 tên
5 Sex bit True(Nam), Fall(Nữ)
6 Marriage nvarchar 100 Tình trạng hôn nhân
7 Birthday datetime Ngày sinh nhật
8 BirthPlace nvarchar 200 Nơi sinh
9 MainAddress nvarchar 200 Địa chỉ(HKTT) 10 ContactAddress nvarchar 200 Tạm trú
11 CellPhone varchar 20 ĐT di động
12 HomePhone varchar 20 ĐT Nhà
13 Email Email 50
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
55
15 Nationality nvarchar 100 Quốc tịch
16 Ethnic nvarchar 50 Dân tộc
17 Religion nvarchar 100 Tôn giáo
b. Bảng giao việc(HRM_PROCESS_ASSIGNMENT)
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 EmployeeCode varchar 20 Mã nhân viên
2 AssignmentNa me
nvarchar 225 Tên công việc
3 FromDate datetime Ngày giao
4 ToDate datetime Ngày hoàn thành
5 Date datetime Ngày ký
6 Person nvarchar 100 Tên người giao việc
c. Bảng tiêu chí (DIC_RATE)
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 RateCode varchar 20 Mã tiêu chí
2 GroupRateCode varchar 225 Nhóm tiêu chí
3 RateName varchar Tên tiêu chí
4 Coefficient int Hệ số
5 Description nvarchar Mô tả
6 Active bit 100 Kích hoạt
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
56
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 RateID varchar 20 Mã tiêu chí
2 EmployeeCode varchar 225 Mã nhân viên
3 Date datetime Ngày đánh giá
4 MyPlus float Tổng Điểm tự đánh giá
5 MyRate nvarchar 10 Hạng (A,B,C,D)
6 OwnerPlus float Điểm trưởng phòng đg
7 Owner nvarchar 10 Hạng TP cho(A,B,C,D)
e. Bảng chi tiết từng điểm (HRM_PROCESS_RATEDETAIL)
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 RateID varchar 20 Mã tiêu chí
2 RateDetailID varchar 225 Mã chi tiết
3 [Content] nvarchar Nội dung đánh giá
4 SelfScore float Điểm tự đánh giá
5 SelfRate nvarchar 10 Hạng (A,B,C,D)
6 Score float Điểm trưởng phòng đg
7 Rate nvarchar 10 Hạng TP cho(A,B,C,D)
f. Bảng luật dẫn (tbl_luat)
STT Thuộc tính Kiểu Chiều dài Ý nghĩa
1 ID int Mã luật
2 Tenluat varchar 50 Tên luật
3 ChiTiet nvarchar 500 Chi tiết luật
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
57
3.3. Giới thiệu các Form chính của chƣơng trình
a. Form chủ + Giao diện
Hình 19: Giao diện chính của chương trình. b.Chức năng thêm nhân viên
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
58
Hình 20: Giao diện thêm nhân viên. ■ Các chức năng:
Quản lý chi tiết thông tin về người nhân viên như: Mã số nhân viên, ngày sinh, nơi sinh, giới tính, địa chỉ, điện thoại, chỗ ở hiện nay, đơn vị công tác, chức danh công tác, chức danh nghề,
Quản lý chi tiết thông tin công việc của nhân viên: Ngạch lương, sổ bảo hiểm, hợp đồng, Hình thức trả lương, ngạch lương, thời gian hợp đồng.vv
Quản lý chi tiết về liên hệ xã hội: Đoàn viên, Đảng viên, nghĩa vụ quân sự, tài khoản ngân hàng, sổ hộ chiếu v…v
Quản lý về mối liên hệ trong gia đình: Ông, bà, cha, mẹ, vơ(chồng), anh chị em, con…
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
59 ■ Giao diện
Hình 21: Giao diện quản lý tiêu chí đánh giá. ■Chức năng:
Thêm sửa xoá các tiêu chí đánh giá theo như cách quản lý ở trung tâm ta có 9 tiêu chí đánh giá là
, linh
f. Form thêm công việc cho nhân viên ■ Giao diện:
Hình 22. Giao diện thêm công việc cho nhân viên. ■ Chức năng
Thêm công việc cho nhân viên theo ý kiến của các trưởng phòng g. Đánh giá công việc của nhân viên
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
60
Hình 23. Giao diện chức năng cho điểm của nhân viên. ■ Chức năng
Cho điểm đánh giá vào đối với từng công việc gồm điểm tự đánh giá, và điểm trưởng phòng đánh giá.
h. In báo cáo đánh giá
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
61 h. In báo cáo xếp loại
Hình 25. Giao diện xuất báo cáo xếp loại.
3.4. Đánh giá kết quả chƣơng trình
Qua quá trình thực hiện hệ thống, có thể nhận thấy hệ thống đã giúp cho Ban giám đốc trung tâm rất nhiều trong công tác đánh giá và xếp loại nhân viên, quan trọng hơn là đã xây dựng được hệ chuyên gia phục vụ cho công tác đánh giá một cách thiết thực và hiệu quả.
Tiết kiệm được thời gian và chi phí trả chuyên gia tư vấn tư vấn. Giảm thời gian và công sức của cán bộ, nhân viên phòng hành chính tổng hợp trong quá trình quản lý và đánh giá nhân viên. Qua phần mềm cũng tăng được tính minh bạch của việc đánh giá và xếp loại nhân viên.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
62
KẾT LUẬN 1. Kết luận
Qua thời gian nghiên cứu và học hỏi kinh nghiệp từ những người đã nghiên cứu trước đó về lĩnh vực này, tôi đã hoàn thành luận văn và có thể tóm tắt như sau: