Thuật toán cho các vấn đề kỹ thuật và các giải thuật tối ưu

Một phần của tài liệu Phát triển một mô hình biểu diễn tri thức hàm và phương pháp giải quyết các vấn đề (Trang 34 - 43)

- Giá trị trả về kết quả: H: Diem

3.2.2.Thuật toán cho các vấn đề kỹ thuật và các giải thuật tối ưu

Đặc tả bài toán như sau:

3.2.2.Thuật toán cho các vấn đề kỹ thuật và các giải thuật tối ưu

3.2.2.1. Thuật toán hợp nhất sự kiện

Vấn đề cơ bản cho việc thiết kế các thuật giải suy diễn là phương pháp hợp nhất sự kiện. Dựa trên cấu trúc các loại sự kiện ta phải xác định được tiêu chuẩn cho sự hợp nhất sự kiện. Trên cơ sở đó thiết kế thuật giải thực hiện kiểm tra sự hợp nhất của hai sự kiện.

Định nghĩa 1: Hàm tương đối của một biến x trong đẳng thức q là một biểu thức sao cho từ đẳng thức q suy ra được đẳng thức .

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

Với đẳng thức , ta ký hiệulà biểu thức bên vế trái của đẳng thức , là biểu thức bên vế phải của đẳng thức .

Dựa trên định nghĩa loại sự kiện, định nghĩa 1 và ký hiệu như trên, đề tài xây dựng thuật toán hợp nhất 2 sự kiện như sau:

Thuật toán Unify

Input: fact1, fact2

Output: true nếu fact1 và fact2 hợp nhất/ false nếu ngược lại

if fact1 = fact2 then return true;

Gọi k là loại sự kiện của fact1, Gọi k2 là loại sự kiện của fact2

if k # k2 then return false;

if k = 1, 2, 6, 7, 12 and fact1 = fact2 then return true; if k = 6 and fact1 và fact2 đối xứng then

if fact1 và fact2 khác loại quan hệ then return false; if Tập đối tượng trong loại 6 bằng nhau then return true;

if k = 7 and fact1 và fact2 đối xứng then

if fact1 và fact2 khác loại hàm then return false;

if Tập đối tượng trong loại 7 bằng nhau then return true;

if k = 12 and fact1 và fact2 đối xứng then

if fact1 và fact2 khác loại quan hệ then return false; if Tập các hàm/đối tượng trong loại 12 bằng nhau then

return true;

if k = 3, 8 and lhs(fact1) Unify lhs(fact2) and rhs(fact1) =

rhs(fact2) then return true;

if k = 4, 9, 10 and ( lhs(fact1) Unify lhs(fact2) and rhs(fact1) Unify

rhs(fact2) ) or ( lhs(fact1) Unify rhs(fact2) and rhs(fact1) Unify lhs(fact2) ) then return false;

if k = 5, 11 then

vars1, vars2 ← tập các đối tượng(k=5)/ hàm(k=11) đã xác định kiểu trong fact1, fact2

if vars1 ≠ vars2 then return false;

if tồn tại v vars1 where rela(v, fact1) ≠ rela(v, fact2) then return false;

else return true;

3.2.2.2. Các bước giải chính trong thuật tốn tổng qt

Về mặt lý thuyết, các thuật giải dựa trên việc tìm kiếm các bước giải. Bước giải là một bước suy ra sự kiện mới từ một số sự kiện đã biết và thuộc một trong các dạng suy luận sau: (adsbygoogle = window.adsbygoogle || []).push({});

1. Deduce_From3s: suy ra các sự kiện loại 2 từ các sự kiện loại 3.

2. Deduce_From43s: suy ra các sự kiện mới loại 3 từ các sự kiện loại 3 và 4 bằng cách thay thế các biến trong sự kiện loại 3 vào sự kiện loại 4.

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

3. Deduce_From53s: suy ra các sự kiện mới loại 3, 4, 5 từ các sự kiện loại 3 và 5 bằng cách thay thế các biến trong sự kiện loại 3 vào sự kiện loại 5. 4. Deduce_From45s: suy ra các sự kiện mới loại 3 từ các sự kiện loại 4 và 5

bằng cách giải hệ phương trình.

5. Deduce_From8s: suy ra các sự kiện loại 7 từ các sự kiện loại 8.

6. Deduce_From983s: suy ra các sự kiện loại 3, 8 từ các sự kiện loại 3, 8, 9 bằng cách thế các biến trong sự kiện loại 8 (hay sự kiện loại 3) vào sự kiện loại 9.

7. Deduce_Objects: thực hiện suy diễn và tính tốn bên trong cấu trúc của từng đối tượng. Các đối tượng tham gia vào bước giải có khả năng thực hiện các hành vi nhất định để phát sinh sự kiện mới, thực hiện suy diễn tính tốn trên các thuộc tính của đối tượng, bản thân đối tượng hay các đối tượng liên quan được thiết lập trên nền của đối tượng.

8. Deduce_From9s: suy ra các sự kiện loại 2, 3, 6, 7, 8 từ các sự kiện loại 9 bằng cách thực hiện tính tốn hàm.

9. Deduce_Rules: dị tìm luật có thể áp dụng được. 10. Deduce_Funcs: dị tìm hàm có thể áp dụng được.

11. Deduce_EqsGoal: giải hệ phương trình gồm n phương trình với n ẩn.

3.2.2.3. Thuật toán kiểm tra và áp dụng luật vào bài toán

Đầu tiên là việc phân chia tập luật thành các tập cụ thể hơn như sau: tập luật dùng để phát sinh đối tượng mới, tập luật xác định đối tượng, các luật tự nhiên (luật tự nhiên là luật mà theo như suy nghĩ của con người thì khơng cần chứng minh mà cũng có thể suy ra).

Tiếp theo là xây dựng các quy tắc heuristics trong việc dị tìm luật như sau: - Ưu tiên sử dụng các quy tắc xác định đối tượng và thuộc tính.

- Dùng luật biến đổi đối tượng thành đối tượng ở cấp độ cao hơn trong đồ thị phân cấp nếu có đủ dữ kiện.

- Sử dụng luật để sinh ra các đối tượng mới có quan hệ với các đối tượng đã có, đặc biệt là các mục tiêu.

- Ưu tiên sử dụng luật hay dạng suy luận để phát sinh ra sự kiện liên quan đến các sự kiện mục tiêu.

- Khi có một đối tượng mới được phát sinh trong quá trình sử dụng luật phát sinh đối tượng, ta tiến hành dị tìm luật có thể áp dụng nhằm phát sinh sự kiện mới trước khi thực hiện phát sinh đối tượng tiếp theo.

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

Tiếp đến là việc kiểm tra luật có thể áp dụng vào bài tốn hay khơng và nếu thỏa thì bước kế tiếp là việc áp dụng luật vào bài toán nhằm phát sinh sự kiện mới, các đối tượng mới và đạt đến trạng thái mới của quá trình suy luận.

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

Sau đây là thuật tốn kiểm tra và áp dụng luật r lên bài toán :

Thuật tốn

Input: FactSet: Các sự kiện đang có của bài toán và luật r

Các ký hiệu: Hypos: Tập sự kiện giả thiết của luật r đang xét Goals: Tập sự kiện kết luận của luật r đang xét

Output: Các sự kiện mới (nếu có) khi áp dụng luật r lên bài toán P

Bước 1: Xét khả năng áp dụng được của luật r: nếu các cấu trúc của tập sự kiện

trong tập Hypos tồn tại trong tập sự kiện FactSet thì chuyển sang bước 2. Ngược lại thì KẾT THÚC.

Bước 2: Tạo các bảng sự kiện tương ứng với từng sự kiện trong tập Hypos: chọn

tất các sự kiện trong FactSet có cấu trúc tương ứng với từng sự kiện trong tập Hypos của luật r. (adsbygoogle = window.adsbygoogle || []).push({});

Bước 3: Sử dụng Sort Merge Join thực hiện kết các các bảng sự kiện nhằm tìm

các sự kiện có thể kết hợp với nhau thỏa sự kết hợp của các sự kiện trong tập Hypos của luật r. Nếu khơng tìm thấy thì kết luận luật r khơng áp dụng được cho bài tốn P, KẾT THÚC. Ngược lại thì luật r hồn tồn có thể áp dụng cho bài tốn P, chuyển sang Bước 4.

Bước 4: Thay thế từng tập sự kiện có thể áp dụng luật r tìm được ở bước 3 và

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

Lưu đồ thuật tốn kiểm tra và áp dụng luật r lên bài toán P:

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

3.2.2.4. Phương pháp giới hạn cơ sở tri thức áp dụng cho bài toán cụ thể

Để giải một bài tốn cụ thể, khơng cần thiết phải sử dụng tất cả các tri thức trong cơ sở tri thức ban đầu. Thay vào đó chỉ cần sử dụng một cơ sở tri thức con của cơ sở tri thức ban đầu là đủ. Trong phần này đề tài đưa ra một phương pháp nhằm tìm kiếm một cơ sở tri thức sao cho vừa đủ để giải quyết bài tốn nếu bài tốn có thể giải được. Điều này sẽ hạn chế phát sinh ra các sự kiện thừa và qua đó làm giảm thời gian tính tốn.

Gọi là bao đóng của tập sự kiện F trên cơ sở tri thức K.

Và là tập sự kiện giả thuyết của bài toán , là tập kết luận cần tìm. Khi đó ta gọi là tập cơ sở tri thức vừa đủ đối với bài toán nếu

Tùy vào miền tri thức và bài tốn cần giải quyết thì có chiến lược xây dựng cơ sở tri thức vừa đủ khác nhau.

Định nghĩa: Tập là tập các luật mà trong đó kết luận của mỗi luật có cấu trúc giống như sự kiện .

Đinh nghĩa: Tập là tập chứa các sự kiện giả thiết của tập mà có thể suy kết luận dạng.

Từ đó ta định nghĩa dãy đệ quy như sau:

Hình vẽ minh họa:

Hình 3.4 Quá trình tìm tập cơ sở tri thức giới hạn áp dụng cho bài toán cụ thể

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

Thuật tốn

Input: là sự kiện kết luận cần tìm

là tập luật trong cơ sở tri thức ban đầu Output: là tập luật giới hạn cho bài toán

Goal; ; ; i = 1; Repeat ; Tính theo Tính theo i++ until ;

3.2.2.5. Phương pháp tìm thứ tự luật ưu tiên

Tập luật trong mơ hình COKB được đưa vào trong cơ sở tri thức thường không theo một thứ tự ưu tiên nào. Tuy nhiên giữa các luật có một mối liên quan nhất định, ví dụ như kết luận của luật này có thể là giả thiết của các luật khác. Trên thực tế, con người tự chọn lọc các luật cần thiết tiếp theo để áp dụng vào bài toán dựa vào kinh nghiệm và sự nhạy bén, vì thế việc tìm ra luật heuristics cho việc chọn thứ tự ưu tiên áp dụng luật có thể giúp đạt tới mục tiêu nhanh hơn bởi không phải thực hiện các luật thừa. Đề tài đưa ra một phương pháp tìm thứ tự luật ưu tiên áp dụng tùy vào từng mục tiêu cụ thể của đề bài, nghĩa là ứng với mỗi mục tiêu đề bài khác nhau thì sẽ có thứ tự ưu tiên luật khác nhau.

Để tìm được thứ tự luật ưu tiên áp dụng, đề tài sử dụng phương pháp suy diễn lùi. Phương pháp này bắt đầu từ sự kiện mục tiêu đề bài đưa ra, suy diễn ngược nhằm tìm ra mắc xích giữa các luật tương tự như phương pháp giới hạn cơ sở tri thức nêu ra ở mục 3.2.2.4. Các mắt xích giữa các luật này sẽ tạo ra một đồ thị vịng có hướng, trong đó tập đỉnh là các luật trong cơ sở tri thức, tập cạnh có hướng nối 2 đỉnh luật với nhau và hướng của cạnh đi từ luật ưu tiên trước đến luật ưu tiên sau.

Ví dụ: Ta có tập luật {C1_B1_09, C1_B1_11, C1_B1_13, C1_02, C1_B1_08, C1_B1_12, C1_C1_03}. Áp dụng phương pháp tạo đồ thị có hướng giữa các luật ta có thể ghi dưới dạng một danh sách kề. Trong đó luật ở cột A có sự kiện kết luận thuộc phần giả thiết của luật trên dòng B sẽ được đánh dấu ‘x’, nói cách khác luật

Chương 3. Các vấn đề trên mơ hình COKB rút gọn

cột A nếu có kết nối với luật ở dịng B nghĩa là luật ở cột A được ưu tiên sử dụng trước luật ở dòng B. B A B1_11 B1_08 C1_0 2 B1_12 B1_13 B1_09 B1_03 B1_11 x B1_08 C1_02 x x x B1_12 x B1_13 x x B1_09 x x B1_03 x x

Từ bảng danh sách kề này, sơ đồ thể hiện mối liên quan giữa các luật được thể hiện trong hình minh họa bên dưới. Các con số viết kế bên mỗi mã luật thể hiện số lượng luật ưu tiên sử dụng trước luật đó.

Hình 3.5 Ví dụ phương pháp tìm thứ tự luật ưu tiên: Sơ đồ đồ thị có hướng của các luật

Từ đồ thị vịng có hướng tìm được, ta tìm được một danh sách được sắp xếp theo thứ tự ưu tiên các luật. Thời gian giải toán áp dụng một danh sách luật có độ ưu tiên sẽ được cải thiện đáng kể. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Phát triển một mô hình biểu diễn tri thức hàm và phương pháp giải quyết các vấn đề (Trang 34 - 43)