1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề tài cài đặt cơ chế lập luận dựa trên độ chắc chắn trong hệ MYCIN

35 839 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 255,5 KB

Nội dung

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN: HỆ CHUYÊN GIA Đề tài : Cài đặt cơ chế lập luận dựa trên độ chắc chắn trong hệ MYCIN Giảng viên hướng dẫn: ThS. Trần Hùng Cường Sinh viên thực hiện: 1. Trương Thanh Sơn 2. Phạm Tiến Tùng 3. Nguyễn Văn Thăng 4. Hà Văn Hoan 5. Phạm Hồng Quân Lớp - Đ7LT-CNTT8 Hà Nội Ngày 15 tháng 10 năm 2014 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia LỜI NÓI ĐẦU oOo Hệ chuyên gia, một nhánh của trí tuệ nhân tạo, là một trong những hướng khai thác tri thức của một ngành thuần lý thuyết, xuất hiện vào thập niên 60 và phần nào chứng minh khả năng áp dụng trí tuệ nhân tạo, khắc phục được các bế tắc gặp phải thời bấy giờ. Hệ chuyên gia được tiếp cận thảo chương theo một quan niệm mới (phi thủ tục) so với cách tiếp cận thảo chương cổ điển (thủ tục). Với cách tiếp cận này hệ chuyên gia dần dần được đặt vào đúng vị trí vốn có của nó. Ngày nay trong sự phát triển chung của công nghệ thông tin toàn cầu, hệ chuyên gia tiếp tục được phát triển nhằm cung cấp các công cụ hữu hiệu cho những áp dụng tin học vào nhiều ngành nghề khác nhau trong xã hội. Trong phần trình bày này, nhóm chúng tôi tìm hiểu về các kỹ thuật biểu diễn tri thức nói chung, và đi sâu vào nghiên cứu và demo thử nghiệm dựa trên cơ chế lập luận gần đúng đo độ CF (độ tin cậy-certainly factor). Trong bước đường khai phá tìm tòi học hỏi những tri thức mới lạ trong lĩnh vực cơ sở tri thức không tránh khỏi những thiếu xót mong được sự góp ý của thầy và tất cả các bạn. Và chúng em xin cảm ơn thầy giáo Trần Hùng Cường đã tận tình hướng dẫn nhóm chúng em làm bài báo cáo này. Nhóm chúng em xin chân thành cảm ơn! Nhóm 11 2 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia NỘI DUNG TRÌNH BÀY Chương I. Sơ lược Hệ Chuyên Gia Mycin Chương II. Phân tích và thiết kế Chương III. Code minh họa *000* Chương I: Sơ lược Hệ chuyên gia 1. Khái niệm Hệ chuyên Gia là gì? Theo E. Feigenbaum : «Hệ chuyên gia (Expert System) là một chương trình máy tínhthông minh sử dụng tri thức (knowledge) và các thủ tục suy luận (inference procedures) để giải những bài toán tương đối khó khăn đòi hỏi những chuyên gia mới giải được». Hệ chuyên gia là một hệ thống tin học có thể mô phỏng (emulates) năng lực quyết đoán (decision) và hành động (making abilily) của một chuyên gia (con người). Hệ chuyên gia là một trong những lĩnh vực ứng dụng của trí tuệ nhân tạo (Artificial Intelligence) như hình dưới đây : Nhóm 11 3 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia Hệ chuyên gia sử dụng các tri thức của những chuyên gia để giải quyết các vấn đề (bài toán) khác nhau thuộc mọi lĩnh vực. Tri thức (knowledge) trong hệ chuyên gia phản ánh sự tinh thông được tích tụ từ sách vở, tạp chí, từ các chuyên gia hay các nhà bác học. Các thuật ngữ hệ chuyên gia, hệ thống dựa trên tri thức (knowledgebased system) hay hệ chuyên gia dựa trên tri thức (knowledgebased expert system) thường có cùng nghĩa. Một hệ chuyên gia gồm ba thành phần chính là cơ sở tri thức (knowledge base), máy suy diễn hay môtơ suy diễn (inference engine), và hệ thống giao tiếp với người sử dụng (user interface). Cơ sở tri thức chứa các tri thức để từ đó, máy suy diễn tạo ra câu trả lời cho người sử dụng qua hệ thống giao tiếp.Người sử dụng (user) cung cấp sự kiện (facts) là những gì đã biết, đã có thật hay những thông tin có ích cho hệ chuyên gia, và nhận được những câu trả lời là những lời khuyên hay những Nhóm 11 4 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia gợi ý đúng đắn (expertise).Hoạt động của một hệ chuyên gia dựa trên tri thức được minh họa như sau: 2. Những thành phần cơ bản của một hệ chuyên gia Cơ sở tri thức (knowledge base). Gồm các phần tử (hay đơn vị) tri thức, thông thườngđược gọi là luật (rule), được tổ chức như một cơ sở dữ liệu. Nhóm 11 5 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia Máy duy diễn (inference engine). Công cụ (chương trình, hay bộ xử lý) tạo ra sự suy luận bằng cách quyết định xem những luật nào sẽ làm thỏa mãn các sự kiện, các đối tượng. , chọn ưu tiên các luật thỏa mãn, thực hiện các luật có tính ưu tiên cao nhất. Lịch công việc (agenda). Danh sách các luật ưu tiên do máy suy diễn tạo ra thoả mãn các sự kiện, các đối tượng có mặt trong bộ nhớ làm việc. Bộ nhớ làm việc (working memory). Cơ sở dữ liệu toàn cục chứa các sự kiện phục vụ cho các luật. Khả năng giải thích (explanation facility). Giải nghĩa cách lập luận của hệ thống cho người sử dụng. Khả năng thu nhận tri thức (explanation facility). Cho phép người sử dụng bổ sung các tri thức vào hệ thống một cách tự động thay vì tiếp nhận tri thức bằng cách mã hoá tri thức một cách tường minh. Khả năng thu nhận tri thức là yếu tố mặc nhiên của nhiều hệ chuyên gia. Giao diện người sử dụng (user interface). Là nơi người sử dụng và hệ chuyên gia trao đổi với nhau. Cơ sở tri thức còn được gọi là bộ nhớ sản xuất (production memeory) trong hệ chuyên gia. Trong một cơ sở tri thức, người ta thường phân biệt hai loại tri thức là tri thức phán đoán (assertion knowledge) và tri thức thực hành (operating knowledge). Các tri thức phán đoán mô tả các tình huống đã được thiết lập hoặc sẽ được thiết lập. Các tri thức thực hành thể hiện những hậu quả rút ra hay những thao tác cần phải hoàn thiện khi một tình huống đã được thiết lập hoặc sẽ được thiết lập trong lĩnh vực đang xét. Các tri thức thực hành thường được thể hiện bởi các biểu thức dễ hiểu và dễ triển khai thao tác đối với người sử dụng Nhóm 11 6 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia Chương II. Phân tích và thiết kế 1. Biểu diễn tri thức bằng bộ ba _Một sự kiện có thể được dùng để xác nhận giá trị của một thuộc tính xác định của một vài đối tượng. Ví dụ, mệnh đệ “quả bóng màu đỏ” xác nhận “đỏ” là giá trị thuộc tính “màu” của đối tượng “quả bóng”. Kiểu dữ liệu này được gọi là bộ ba Đối tượng - Thuộc tính - Giá trị (O-A-V – Object- Attribute-Value). Biểu tượng Thuộc tính Giá trị Hình: biểu diễn tri thức theo bộ ba O-A-V _Trong các sự kiện O-A-V, một đối tượng có thể có nhiều thuộc tính với các kiểu giá trị khác nhau. Hơn nữa một thuộc tính cũng có thể có một hay nhiều giá trị. Chúng được gọi là các sự kiện đơn trị (single-valued) hoặc đa trị (multi-valued). Điều này cho phép các hệ tri thức linh động trong việc biểu diễn các tri thức cần thiết. _Các sự kiện không phải lúc nào cũng bảo đảm là đúng hay sai với độ chắc chắn hoàn toàn. Vì thế, khi xem xét các sự kiện, người ta còn sử dụng thêm một khái niệm là độ tin cậy. Phương pháp truyền thống để quản lý thông tin Nhóm 11 Nâu Ghế Màu 7 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia không chắc chắn là sử dụng nhân tố chắc chắn CF (certainty factor). Khái niệm này bắt đầu từ hệ thống MYCIN (khoảng năm 1975), dùng để trả lời cho các thông tin suy luận. Khi đó, trong sự kiện O-A-V sẽ có thêm một giá trị xác định độ tin cậy của nó là CF. Suy luận trong MyCin: Ngữ cảnh: các đối tượng đƣợc thảo luận bởi Mycin – Các kiểu đối tƣợng khác nhau: bệnh nhân, thuốc, … – Được tổ chức trong một cây • Động cơ suy diễn: tiếp cận hƣớng từ mục tiêu hay suy diễn lùi – Tìm kiếm sâu gần như là vét cạn – Có thể suy luận với thông tin không chắc chắn – Có thể suy luận với dữ liệu không đầy đủ • Các tiện ích giải thích: Mô-đun ‘hỏi-trả lời’ với các câu hỏi tại sao, như thế nào Lý thuyết về độ chắc chắn • MB (Measure of Belief in): Độ đo sự tin cậy. • MD (Measure of Disbelief in): Độ đo sự không tin cậy. • CF (Certainly Factor): Hệ số chắc chắn • MB(H/E) Là độ đo sự tin cậy của giả thuyết H khi có chứng cứ E. • MD(H/E) Là độ đo sự không tin cậy của giả thuyết H khi có chứng cứ E. • Khi dó: • 0 < MB(H/E) < 1 trong khi MD(H/E) = 0 Nhóm 11 8 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia • 0 < MD(H/E) < 1 trong khi MB(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) Luật đơn giản: If(e) then (c) công thức tính: CF(c) = CF(e) * CF(r) Trong đó: CF(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 CF(c) là độ đo chắc chắn của kết luận. Luật phức tạp: • If(e1 AND e2) then (c) CF (e1 AND e2) = MIN(CF(e1), CF(e2)) • If (e1 OR e2) then (c) CF (e1 OR e2) = MAX(CF(e1), CF(e2)) • If ((e1 AND e2) OR e3) then (c) CF ((e1 AND e2) OR e3) = MAX(MIN(CF(e1), CF(e2)), CF(e3)) • Độ chắc chắn có dạng NOT CF(NOT e) = - CF(e) 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) : độ đo chắc chắn của luật 1 Luật 2: If(e2) then (c) với CF(r2) : độ đo chắc chắn của luật 2 Với CF(t1), CF(t2) là CF của kết luận cả luật 1 và 2 Khi CF(t1) và Cf(t2) đều dƣơng thì: Ctổng = CF(t1) + CF(t2) – CF(t1) * CF(t2) Nhóm 11 9 Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia Khi CF(t1) và Cf(t2) đều âm thì: Ctổng = CF(t1) + CF(t2) + CF(t1) * CF(t2) Nếu CF(t1) khác dấu với CF(t2) thì: Ctổng = (CF(t1) + CF(t2)) / (1 –MIN(ABS(CF(t1)), ABS(CF(t2)))) _CF (Certainty Factor), với quy ước CF [-1, 1], và mỗi luật đều được gắn một năng lực (force), CF ∈ [-1, 1]. Sự kiện (Context Ngữ cảnh Parameter Tham biến Value Giá trị CF) Hệ số Theo thuật ngữ hướng đối tượng (Object Attribute Value CF 2.Xây dựng logic vị từ (1) Nếu bị nhiễm trùng và không di chuyển được đi khám bác sĩ (2) Nếu không đau và mệt mỏi suy ra Qúa tải (3) Qúa tải thì nên nghỉ ngơi (4) Bị chấn thương và di chuyển được nên nghỉ ngơi (5) Chân cảm thấy Sưng và đau suy ra Qúa tải (6) Người cảm thấy Sốt và đau chân suy ra Nhiễm trùng (7) Nhiễm trùng nên đi khám Bác sỹ 3.Xây dựng các luật 0.9: c9&c10=>c11 Nhóm 11 10 [...]... Khong_di_chuyen_duoc c11 Nen_di_kham_bac_si 33 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia c12 Nen_nghi_ngoi 7 0.9 c9&c10=>c11 0.8 ~e1&e2=>c7 0.4 c7=>c12 0.4 c9&~c10=>c12 0.7 e3&e1=>c9 0.8 e1&e6=>c8 1.0 c8=>c11 */ Tài liệu tham khảo 34 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia _Các hệ cơ sở tri thức - Nguyễn Đình Thuận Đại học Nha Trang _Giáo trình hệ chuyên gia - PGS.TS Phan Huy Khánh Đại học Bách Khoa Đà Nẵng... ///////////////////////////////////////////////////////////////////// void GiaoDien2() { char chon; clrscr(); textbackground(10); textcolor(14); gotoxy(7,3); cprintf(" "); gotoxy(7,4); 27 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia gotoxy(7,5); cprintf(" DEMO CAI DAT CO CHE LAP LUAN DO CHAC CHAN TRONG HE MYCIN "); gotoxy(7,6); cprintf(" *** DUA TREN CO CHE LAP LUAN GAN DUNG DO DO CF ***"); gotoxy(7,6); cprintf(" "); textattr(7); textcolor(15); gotoxy(20, 10);... gotoxy(20, 15); cprintf(" 4 NGO ANH QUYET"); 30 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia gotoxy(20, 16); cprintf(" 5 NGUYEN VAN HIEN"); getch(); GiaoDien2(); } void GiaoDien3() { clrscr(); textbackground(10); textcolor(14); gotoxy(7,3); cprintf(" "); gotoxy(7,4); gotoxy(7,5); cprintf(" DEMO CAI DAT CO CHE LAP LUAN DO CHAC CHAN TRONG HE MYCIN "); gotoxy(7,6); cprintf(" *** DUA TREN CO CHE LAP LUAN GAN DUNG... HienThiTapNut(10, 8); textattr(7); 31 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia getch(); GiaoDien2(); } ///////////////////////////////////////////////////////////////////// void GiaoDien4() { clrscr(); textbackground(10); textcolor(14); gotoxy(7,3); cprintf(" "); gotoxy(7,4); cprintf(" DEMO CAI DAT CO CHE LAP LUAN DO CHAC CHAN TRONG HE MYCIN "); gotoxy(7,5; cprintf(" *** DUA TREN CO CHE LAP LUAN GAN... Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia gotoxy(x, y+i); cprintf("%2d %30s %0.6f", i+1, stLuat, TapLuat[i].CF); } } ///////////////////////////////////////////////////////////////////// void GiaoDien1() { clrscr(); textattr(7); textcolor(12); gotoxy(15, 5); textbackground(9); gotoxy(7,10); cprintf(" "); gotoxy(7,11); cprintf(" DEMO CAI DAT CO CHE LAP LUAN DO CHAC CHAN TRONG HE MYCIN "); gotoxy(7,12);... Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia switch (chon) { case '1': GiaoDien3(); break; case '2': GiaoDien4(); break; case '3': MainProg(); break; case '4': InGiaTriNut(); break; case '5': Danhsachnhom(); break; case '6': exit(0); } getch(); } ///////////////////////////////////////////////////////////////////// void Danhsachnhom() { clrscr(); 29 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia textbackground(10);... 2:Đ7LT-CNTT8 BTL Hệ chuyên gia 0.8 : ~e1&e2=>c7 0.4 : c7=>c12 0.4 : c9&~c10=>c12 0.7 : e3&e1=>c9 0.8 : e1&e6=>c8 1.0: c8=>c11 Chương III Code minh họa #include "stdio.h" #include "conio.h" #include "string.h" #include "stdlib.h" #define FileNut "CFNut.txt" #define FileLuat "CFLuat.txt" #define MAX_NUT 1000 #define MAX_LUAT 1500 #define LEN_YNGHIA 26 11 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia #define... == SoHieuNut) DSLuat[nCount++] = i; } ///////////////////////////////////////////////////////////////////// float HoiUserNut(int VitriNut) { char stYnghia[LEN_YNGHIA]; 18 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia float traloi; _fstrcpy(stYnghia, NutYNghia[VitriNut]); cprintf("\n Cho biet do do CF cua nut %s (%s):", NutTen[VitriNut], stYnghia); scanf("%f", &traloi); CFNut[VitriNut] = traloi; return... i++) { bNot = 1; if (r.VT[2*i+1]1.0) { VitriNut = r.VT[2*i+1]*bNot; if (NutLoai[VitriNut] == TanCung) 19 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia CFNut[VitriNut] = HoiUserNut(VitriNut); else if (NutLoai[VitriNut] == TrungGian) CFNut[VitriNut] = TinhCFCho1Nut(VitriNut); } } // Tinh CF cho VP dua vao cac gia tri cua VT if (r.VT[1]>0)... if (r.VT[2*i] == NODE_AND) { giatri = min(giatri, bNot*CFNut[bNot*r.VT[2*i+1]]); } else if (r.VT[2*i] == NODE_OR) { giatri = max(giatri, bNot*CFNut[bNot*r.VT[2*i+1]]); 20 11 Nhóm Nhóm 2:Đ7LT-CNTT8 BTL Hệ chuyên gia } i++; } r.CF = r.CF*giatri; return r.CF; } ///////////////////////////////////////////////////////////////////// float TinhCFCho1Nut(int SoHieuNut) { int nCount; int DSLuat[MAX_LUAT]; float . TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN: HỆ CHUYÊN GIA Đề tài : Cài đặt cơ chế lập luận dựa trên độ chắc chắn trong hệ MYCIN Giảng viên hướng dẫn: ThS. Trần. CF(c) = CF(e) * CF(r) Trong đó: CF(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 CF(c) là độ đo chắc chắn của kết luận. Luật phức tạp: • If(e1 AND e2) then. Các thuật ngữ hệ chuyên gia, hệ thống dựa trên tri thức (knowledgebased system) hay hệ chuyên gia dựa trên tri thức (knowledgebased expert system) thường có cùng nghĩa. Một hệ chuyên gia

Ngày đăng: 22/10/2014, 10:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w