Nhưng các dạngbiểu diễn của tri thức gần gũi và dễ hiểu hơn rất nhiều so với các ngôn ngữ lập trình vì nó biểu diễn trực tiếp những khái niệm gắn liền với công việc hàng ngày của họ.Nhìn
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Thành phố Hồ Chí Minh 10 – 2014.
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 3Mục lục
1 Mở đầu 2
1.1 Tại sao phải nghiên cứu bài toán này 2
1.2 Các lợi ích của bài toán này 2
1.3 Mục tiêu của tiểu luận 3
2 Mô hình tri thức cho các nghiệp vụ quản lý 4
2.1 Sơ lược một số mô hình biểu diễn tri thức thông dụng 4
2.1.1 Mô hình logic mệnh đề & logic vị từ 4
2.1.2 Mô hình luật sinh 5
2.1.3 Mô hình mạng ngữ nghĩa 5
2.1.4 Mô hình Frame 7
2.1.5 Mô hình COKB 7
2.2 Mô hình tri thức CAFR cho các nghiệp vụ quản lý 9
3 Một số vấn đề trên mô hình CAFR và các giải pháp 14
3.1 Phân rã mô hình CAFR thành lược đồ CSDL quan hệ 14
3.1.1 Ý tưởng 14
3.1.2 Một ví dụ cụ thể 16
3.2 Phát sinh thuật toán cho các tính năng của mô hình 18
3.3 Thực thi các thuật toán của một tính năng 18
3.3.1 Biểu diễn thuật toán 18
3.3.2 Thực thi cây thuật toán 20
4 Demo 20
Kết luận 22
Tài liệu tham khảo 23
Trang 41 Mở đầu
1.1 Tại sao phải nghiên cứu bài toán này
Công nghệ tri thức đã thâm nhập vào hầu hết các lĩnh vực ứng dụng của công nghệthông tin Tuy nhiên, hầu hết các nỗ lực đều tập trung giải quyết các vấn đề cụ thể mà thực
tế đòi hỏi Gần như là chưa có một nỗ lực nào đưa các thành tựu của công nghệ tri thức vàotiến trình xây dựng phần mềm để tạo ra các cách xây dựng phần mềm mới mẻ Nói riêngtrong các phần mềm quản lý, nếu tổ chức, xí nghiệp muốn sử dụng cho phù hợp với nhucầu của mình thì hoặc là xây dựng mới hoặc là phải chỉnh sửa lại một phần mềm có sẵn Cảhai việc đó đều rất mất thời gian Vì vậy, em chọn đề tài này với mong muốn làm tối thiểuchi phí hiệu chỉnh một phần mềm khi áp dụng cho các tổ chức, xí nghiệp khác nhau
1.2 Các lợi ích của bài toán này
Nếu xây dựng thành công một cơ sở tri thức cho các nghiệp vụ quản lý của một lĩnhvực cụ thể sẽ có những lợi ích sau đây:
Tối thiểu nhưng nỗ lực sữa chữa khi đem áp dụng cho những tổ chức, xí nghiệp
khác nhau Thường những tổ chức, xí nghiệp trong cùng một lĩnh vực quản lý sẽ cónhững đặc trưng giống nhau về cấu trúc tổ chức, nghiệp vụ phổ biến cho lĩnh vực
đó Hơn nữa còn bị chi phối bởi những nghiệp vụ mang tính phổ quát và bắt buộcnhư: kế toán cho những tố chức có thu/chi Những khác biệt chủ yếu đến từ cungcách kinh doanh, cách thức thực hiện một nghiệp vụ cụ thể Và những sự khác biệtnày thường nhỏ so với những sự tương đồng
Giảm chi phí xây dựng phần mềm Đặc trưng của các hệ thống dựa trên cơ sở tri
thức là giải quyết vấn đề dựa trên cơ chế suy luận chứ không mã hóa cứng bằng mộtngôn ngữ lập trình cụ thể Chính điều này cho phép chúng giải một lớp các vấn đềtương tự nhau mà không cần phải lập trình riêng cho mỗi vấn đề cụ thể Điều nàylàm giảm đáng kể công sức lập trình khi xây dựng phần mềm Hệ quả là nếu có một
cơ sở tri thức phù hợp cho một lớp vấn đề quản lý nào đó, ta có thể xây dựng mộtcông nghệ tạo lập các phần mềm giải các lớp bài toán đó dựa trên cơ sở tri thức mà
Trang 5gần như không hoặc rất ít mã hóa(coding) Và nếu như làm tốt có thể loại bỏ một
chi phí khổng lồ trong xây dựng phần mềm đó là chi phí testing Bây giờ không còn
test cho phần mềm cụ thể nữa mà chỉ cần test cho “công nghệ tạo phần mềm dựatrên tri thức” Một khi công nghệ đó được test cẩn thận thì có thể yên tâm về chấtlượng của phần mềm được tạo ra
Đưa phần mềm đến với người dùng sớm nhất có thể Công nghiệp phần mềm đã
chứng tỏ lợi ích của điều này bằng sự ra đời của các quy trình phát triển phần mềmXP(Extreme Programing) và các hậu duệ của nó như Agile, Scrum…mà cốt lõi làđưa phần mềm đến user sớm nhất để nhận được phản hồi nhằm giảm tối đa chi phísửa chữa Khi chúng ta có một cơ sở tri thức tổng quát, bao trọn những phần cốt lõichung của tổ chức, xí nghiệp trong một lĩnh vực quản lý, chúng ta sẽ dễ dàng chỉnhsửa cho phù hợp với hiện trạng của từng tổ chức, xí ngiệp và đưa hệ thống đến tayngười dùng sớm nhất
Tăng cường tính hiểu được của phần mềm Phần lớn các người dùng phần mềm
đều không biết và không hiểu được hệ thống thực hiện các logic nghiệp vụ của mìnhnhư thế nào, bởi vì các logic nghiệp vụ được mã hóa trong những ngôn ngữ lập trình
cụ thể(hoặc các ngôn ngữ phi thủ tục của các hệ quản trị CSDL) Nhưng các dạngbiểu diễn của tri thức gần gũi và dễ hiểu hơn rất nhiều so với các ngôn ngữ lập trình
vì nó biểu diễn trực tiếp những khái niệm gắn liền với công việc hàng ngày của họ.Nhìn vào cách biểu diễn tri thức người dùng sẽ hình dung ra cách phần mềm thựchiện các logic nghiệp vụ của mình như thế nào
1.3 Mục tiêu của tiểu luận
Tiểu luận sẽ tập trung vào các công việc sau:
Tiến hành khảo sát một số mô hình biểu diễn tri thức thông dụng, hiện hành
Đề xuất một mô hình biểu diễn tri thức CAFR cho các nghiệp vụ của bài toánquản lý cho các tổ chức, xí nghiệp
Thảo luận về các vấn đề của mô hình CAFR và đề xuất các thuật toán tươngứng cho các vấn đề đó
Trang 6 Demo tính năng thực thi cây thuật toán bằng một ngôn ngữ lập trình thôngdụng
2 Mô hình tri thức cho các nghiệp vụ quản lý
2.1 Sơ lược một số mô hình biểu diễn tri thức thông dụng
2.1.1 Mô hình logic mệnh đề & logic vị từ
Đây là đạng biểu diễn tri thức cổ điển nhất trong máy tính Cả hai đều sử dụngnhững phép toán của logic toán(như AND, OR, NOT, Kéo theo ) và các kí hiệu thôngdụng của logic toán(như ˄, ˅, ¬, →…) để làm cơ sở cho việc suy luận logic Một mệnh đề
có dạng A→B Ví dụ câu Nếu trời mưa thì đường ướt có thể biểu diễn thành dạng A→Bvới A = trời mưa, B = đường ướt Để có thể suy diễn với các tri thức biểu diễn bằng logicmệnh đề người ta hay sử dụng hai thuật giải thông dụng là thuật giải Vương Hạo và thuậtgiải Robinson
Vì mệnh đề không có cấu trúc, dẫn đến hạn chế nhiều thao tác suy luận, nên người
ta đưa vào đó 2 lượng từ ∀(với mọi) và ∃(tồn tại) để tăng cường tính cấu trúc của mộtmệnh đề, hình thành nên logic vị từ Một vị từ thường được biểu diễn dưới dạng sau đây:
Vị từ(<đối tượng 1>,<đối tượng 2>, …,<đối tượng n>)
Ví dụ để biểu diễn cho các tính chất như: Chanh thì chua, Mật ong thì ngọt ta có thể viết lạinhư sau: Chua(Chanh), Ngọt(Mật ong) Logic vị từ đã được nghiên cứu và phát triển thànhmột ngôn ngữ lập trình đặc trưng cho ngành trí tuệ nhân tạo, đó là Prolog
Bảng sau đây tổng kết cách biểu diễn tri thức bằng logic mệnh đề và logic vị từ
Trang 72.1.2 Mô hình luật sinh
Đây là mô hình biểu diễn tri thức được yêu thích nhất, thậm chí nhiều người còn tìmmọi cách để biểu diễn luật sinh cho mọi miền tri thức dù có những biểu diễn phù hợp hơn.Phương pháp này được phát minh bởi Newell và Simon trong lúc hai ông đang nỗ lực xâydựng hệ giải bài toán tổng quát(các hệ General Problem Solving) Ý tưởng cơ bản của luật
sinh là tri thức sẽ được biểu diễn bằng một cặp điều kiện-hành động Nếu điều kiện được
thỏa mãn thì hành động sẽ diễn ra Ví dụ về các luật sinh được nêu trong bảng sau đây:
Một cách tổng quát, 1 luật sinh r có thể biểu diễn như sau:
r: P 1 ˄ P 2 ˄ P 3 ˄ … ˄ P n → Q
Trong đó các Pi và Q là những sự kiện được định nghĩa trước trong tập F(Facts), và r nẳmtrong tập R(Rules), định nghĩa các luật áp dụng trên tập sự kiện F Một cách hình thức thì
mô hình biểu diễn tri thức dạng luật sinh là mô hình tri thức 2 thành phần (F, R) Trong đó
F là tập chứa các sự kiện, R là tập chứa các luật áp dụng trên tập F Biểu diễn tri thức bằngluật sinh tương đối đơn giản Nhưng đối với các cơ sở tri thức lớn, có hàng ngàn luật thì
Trang 8người ta lại đối diện với vấn đề loại bỏ các luật mâu thuẫn và các luật thừa Đây là bài toánvẫn còn tiếp tục cho đến hiện nay.
2.1.3 Mô hình mạng ngữ nghĩa
Mạng ngữ nghĩa là mô hình tri thức dạng đồ thị, trong đó các đỉnh biểu diễn cho các đốitượng, các cung biểu diễn cho một quan hệ giữa các đối tượng Một ví dụ về mô hình mạngngữ nghĩa được thể hiện trong hình sau đây:
Mạng ngữ nghĩa đặc biệt thích hợp cho các vấn đề biểu diễn mối quan hệ giữa các đốitượng theo một công thức hay một hàm nào đó Có thể dùng mạng ngữ nghĩa biểu diễn mốiquan hệ giữa các yếu tó trong tam giác(bao gồm các cạnh, góc, đỉnh…) với các công thứcliên quan Trong đồ thị này có hai loại đỉnh: đỉnh hình tròn biểu diễn cho các yếu tố củatam giác Đỉnh hình chữ nhật biểu diễn cho các công thức Sau đó thực hiện theo co chếsuy luận được nêu dưới đây để giải bài toán tam giác
Cơ chế suy diễn trên mạng ngữ nghĩa thực hiện theo thuật toán “loang” đơn giản sau đâyB1: Kích hoạt những đỉnh tròn đã cho ban đầu(những yếu tố đã có giá trị
B2: Lặp cho đến khi kích hoạt tất cả các đỉnh hoặc không thể kích hoạt thêm đỉnh nào nữa
Nếu một đỉnh hình chữa 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 đỉnh hình tròn còn lại(và tính giá trị cho đỉnh này thông qua công thứchình chữ nhật
Dưới đây là đồ thị cho một mạng ngữ nghĩa giải bài toán tam giác:
Trang 9Mạng ngữ nghĩa biểu diễn rất tốt mối quan hệ của các đối tượng thông qua phương trình.Tuy nhiên với các loại quan hệ không biểu diễn bằng phương trình thì rất khó dùng mạngngữ nghĩa để biểu diễn Hơn nữa việc cho phép thêm quan hệ quá dễ dàng có nguy cơ làmxuất hiện những tri thức mâu thuẫn.
2.1.4 Mô hình Frame
Frame là một cấu trúc dữ liệu chứa đựng tất cả những tri thức về một đối tượng nào
đó trong thế giới thực Đây chính là tính chất đóng gói(encapsulation) của lập trình hướngđối tượng Người ta thường dùng FRAME để biễu diễn những tri thức tri thức chuẩn, đãđược hiểu biết cặn kẽ Ý tưởng này mô phỏng cách con người lưu trữ những kinh nghiệm,tri thức đã qua kiểm chứng, được truyền bá rộng rãi Khi cần vận dụng vào vấn đề thực tếthì chỉ cần lấy ra sửa lại chút ít mà không phải mất quá nhiều công sức Một ví dụ về thôngtin đối tượng và cấu trúc biểu diễn bằng FRAME tương ứng như sau:
Trang 102.1.5 Mô hình COKB
Mô hình COKB là một mô hình tri thức gồm 6 thành phần :
K = (C, H, R, Ops, Funcs, Rules )
C là một tập hợp các khái niệm về các C-Object là những đối tượng có các đặc trưng:
Có các thuộc tính có thể tính giá trị được
Có những quan hệ tính toán bên trong giữa các thuộc tính
Nếu cho trước một tập con A của tập thuộc tính thì đối tượng C-Object có thề cho biếtnhững thuộc tính có thể tính toán được từ tập A Cấu trúc C-Objects có thể được mô hìnhhóa bằng (Attrs, F, Facts, Rules), với :
Attrs là một tập các thuộc tính
F là một tập hợp các phương trình được gọi là quan hệ tính toán
Facts là tập hợp các thuộc tính hoặc sự kiện của đối tượng
Rules là tập các quy tắc suy luận dựa trên Facts.
Một ví dụ về cấu trúc của đối tượng tam giác như sau:
Attrs = {A, B, C, a, b, c, R, S, p, }
F = { A+B+C = π; a/sin(A) = 2R; b/sin(B) = 2R; c/sin(C) = 2R; S = (1/2)bcsin(A)…}Facts = {a+b>c; a+c>b; b+c>a ; …}
Rules = { {a>b} ⇔ {A>B}; {b>c} ⇔ {B>C};
{c>a} ⇔ {C>A}; {a=b} ⇔ {A=B};
{a^2= b^2+c^2} ⇔ {A=pi/2},
{A=pi/2} ⇔ {a^2 = b^2+c^2, b ⊥ c},
…
}
H: là một tập hợp các quan hệ phân cấp giữa các loại đối tượng.
R: là tập hợp các khái niệm về các loại quan hệ trên các C-Object.
Trang 11Trong mô hình COKB, ta có 11 loại sự kiện như sau:
Sự kiện loại 1: Sự kiện thông tin về loại của đối tượng
Sự kiện loại 2: Sự kiện về tính xác định của một đối tượng hay của một thuộc tínhcủa đối tượng
Sự kiện loại 3: Sự kiện về tính xác định của một đối tượng hay của một thuộc tínhcủa đối tượng thông qua biểu thức hằng
Sự kiện loại 4: Sự kiện về sự bằng nhau của một đối tượng hay một thuộc tính củađối tượng với một đối tượng hay một thuộc tính khác
Sự kiện loại 5: Sự kiện về sự phụ thuộc giữa các đối tượng và các thuộc tính của cácđối tượng thông qua một công thức tính toán hay một đẳng thức theo các đối tượnghoặc các thuộc tính
Sự kiện loại 6: Sự kiện về một quan hệ trên các đối tượng hay trên các thuộc tínhcủa các đối tượng
Sự kiện loại 7: Sự kiện về tính xác định của một hàm
Sự kiện loại 8: Sự kiện về tính xác định của một hàm thông qua một biểu thức hằng
Sự kiện loại 9: Sự kiện về sự bằng nhau giữa một đối tượng với một hàm
Sự kiện loại 10: Sự kiện về sự bằng nhau của một hàm với một hàm khác
Sự kiện loại 11: Sự kiện về sự phụ thuộc của một hàm theo các hàm hay các đốitượng khác thông qua một công thức tính toán
2.2 Mô hình tri thức CAFR cho các nghiệp vụ quản lý
Dựa trên sự tham khảo các mô hình biểu diễn tri thức truyền thống và đặc biệt là môhình COKB(Computation Object Knowledge Base) với cách tiếp cận hướng đối tượng cho
Trang 12phép biểu diễn những tri thức phức tạp trong thực tế, kết hợp các công cụ biểu diễn khácnhư FRAME, luật sinh …tiểu luận đề xuất một mô hình biểu diễn tri thức như sau:
(C, A, F, R) C: là tập các khái niệm trong lĩnh vực đang xét Các khái niệm này cho phép kế
thừa Cấu trúc của một khái niệm như sau: (Attributes, Rules, Contraints, Operations) Ví
dụ cấu trúc của khái niệm NHAN_VIEN như sau:
constraint c1: ngayBatDau != NULL;
constraint c2: ngayKetThuc == NULL OR ngayBatDau < ngayKetThuc;
operator NHAN_VIEN == (NHAN_VIEN): ;
rule r1: (quanLy is NOT NULL) → (phuCap = 0);
rule r2: (quanLy is NULL) → (phuCap = 10000);
}
Cấu trúc của một thuộc tính như sau:
< identification tùy chọn><tên kiểu><tên thuộc tính><= tùy chọn><biểu thức tùy chọn>
Trong đó tên kiểu là tên các khái niệm trong mô hình hoặc kiểu dữ liệu cơ sở như:DateTime, Int, Real, Bool, String Các thuộc tính chia làm 3 loại:
Trang 13 Thuộc tính tĩnh: là thuộc tính hầu như rất ít thay đổi trong chu trình sống của một
đối tượng(là một thể hiện của một khái niệm) hoặc là thuộc tính thuần túy lưu trữgiá trị hoặc tham chiếu đến khái niệm khác(có thể là thuộc tính đơn hoặc danh sáchnhư thuộc tính qtLamViec) Trong ví dụ trên thì: tenNV, ngayBatDau,ngayKetThuc, phongBan, quanLy, phuCap, qtLamViec là các thuộc tính tĩnh
Thuộc tính tính toán: là thuộc tính mà đi kèm với nó là biểu thức(công thức) dùng
để tính toán giá trị cho thuộc tính đó Biểu thức của một thuộc tính tính toán có thể
là rỗng như thuộc tính salary trong ví dụ trên Điều này là bởi vì tùy theo loại nhânviên cụ thể(ví dụ nhân viên hợp đồng hay công nhật) thì mới có thể có công thứctính phù hợp cho thuộc tính đó Khi đó nó hàm ý rằng thuộc tính luong sẽ được tínhtoán lại bởi các khái niệm con cụ thể hơn, ví dụ như khái niệmNHAN_VIEN_HOP_DONG bên dưới
concetp NHAN_VIEN_HOP_DONG extends NHAN_VIEN
Đặc trưng của mô hình CAFR là một khái niệm phải có ít nhất một thuộc tính định danh Một thuộc tính định danh hoặc có kiểu dữ liệu cơ sở hoặc tham chiếu đến một khái niệm mà khái niệm đó có các thuộc tính định danh là kiểu dữ liệu cơ sở Tập các thuộc tính định danh của một khái niệm là tập nhỏ nhất mà xác định toàn bộ các thuộc tính tĩnh của khái niệm.
Trang 14Trong cấu trúc của một đối tượng còn có các ràng buộc (biểu diễn bằng từ khóa
constrain) dùng để mô tả các điều kiện mà các thuộc tính phải thỏa mãn Các luật (biểu diễn bằng từ khóa rule) dùng để mô tả những quy tắc tính toán cho các thuộc tính bên
trong khái niệm dưới những điều kiện xác định(có cùng dạng với các luật trong thành phần
R) Các phép toán(bắt đầu với từ khóa operator) dùng để mô tả những phép toán giữa khái
niệm này với khái niệm khác
A: là tập các liên kết giữa các khái niệm Một liên kết giữa hai khái niệm chỉ ra một
mối quan hệ theo một ngữ cảnh nào đó Ví dụ liên kết [“Belong to”, NHAN_VIEN,PHONG_BAN] {1 1, 0 *} chỉ ra rằng một nhân viên là thuộc một phòng ban và một
phòng ban có thể nhiều nhân viên Tất cả các liên kết trong mô hình đế có tối đa 2 ngôi.
Cấu trúc của một liên kết có dạng sau:
[<tên liên kết>, <khái niệm 1>, <khái niệm 2>] {<cơ số 1>, < cơ số 2>}
Trong đó các < cơ số 1>, < cơ số 2> là khái niệm cơ số của biểu đồ lớp trong UML dùng
để chỉ số đối tượng của một khái niệm tham gia vào liên kết này Các giá trị thường dùngcủa cơ số là:
1 một và chỉ một0 1 không hay mộtm n từ m đến n(0 <= m <= n, m và n là các số nguyên)0 *(hay *) từ 0 đến nhiều
1 * một tới nhiều
Rõ ràng các liên kết trong mô hình CAFR không chứa các thuộc tính Từ đó, ta thấyrằng không thể xuất hiện các liên kết nhiều nhiều Bởi vì nếu có các liên kết nhiều nhiều thìliên kết đó phải có thuộc tính riêng của nó, mà nếu như vậy thì phải định nghĩa nó như làmột khái niệm mới và sau đó định nghĩa lại liên kết ban đầu thành hai liên kết 1 *