Thuật toán SI - COBRA cho bài toán so khớp đồ thị gán nhãn

Một phần của tài liệu Phát triển một số kỹ thuật so khớp ứng dụng trong quá trình phát hiện xâm nhập và giả mạo trên mạng (Trang 92 - 95)

CHƯƠNG 3. ỨNG DỤNG SO KHỚP ĐỒ THỊ TRONG QUÁ TRÌNH PHÁT HIỆN CÁC TRANG WEB GIẢ MẠO

3.2. Một số nghiên cứu liên quan về so khớp đồ thị

3.2.2. Thuật toán SI - COBRA cho bài toán so khớp đồ thị gán nhãn

Ý tưởng của thuật toán là cho hai đồ thị gán nhãn G và G’ (tương ứng với hai đồ thị mô hình GM và đồ thị dữ liệu GD trong mục phát biểu bài toán) ta phải đi tìm một đồ thị con S của G sao cho S G. Bài toán này được gọi là bài toán tìm đẳng cấu đồ thị con. Năm 2005 Olmos, Gonzalez & Osorio phát triển thuật toán SI-COBRA (subgraph isomorphism). Họ đã phát triển thuật toán trên để phát hiện chính xác một đồ thị Gnằm trong đồ thị G (được gọi là đẳng cấu đồ thị con) trong đó một chuỗi tuyến tính các mã được sử dụng để biểu diễn đồ thị [45].

Một mã, được ký hiệu là ci, biểu diễn thông tin một cung có nhãn e và các đỉnh liền kề của nó. Mỗi mã ci được sắp xếp theo một chuỗi tuyến tính gọi là LVEV = { ci / i = 1..s} trong đó s là số tổ hợp nhãn khác nhau [45].

Hình 3.5. Mô phỏng thuật toán tìm đồ thị đẳng cấu dựa vào danh sách các mã.

Bước đầu tiên của thuật toán là chúng ta phải xây dựng được đồ thị mô hình G’, mô hình này được biểu diễn bởi chuỗi tuyến tính các mã được gọi là DFC’. Mô hình DFC là một chuỗi các mã được sắp xếp <dfc1,.., dfcn> trong đó dfcx = (i,j,ck, t) và i, j là chỉ số hai đỉnh liền kề của cung ex _E, ck = LVEV(ex) và t là một dấu hiệu đặc biệt phân loại cung ex là cung tìm kiếm (F) hay cung quay lại (B). Để sắp xếp chuỗi DFC’ ta sử dụng ba tiêu chí sau:

- Bậc của đỉnh;

- Nhãn được dùng để biểu diễn các đỉnh nhiều nhất;

- Tổ hợp của các nhãn (dựa vào trình tự từ điển trong LVEV).

Với chiến lược DFS và việc sử dụng những hạn chế ở trên ta sẽ xây dựng mã DFCtheo các bước như sau:

- Bước 1: Chọn đỉnh vi G’ chưa được duyệt (vi phải thỏa mãn tiêu chí trên);

- Bước 2: Xét đỉnh vj kề với đỉnh vi sao cho vj cũng thỏa mãn 3 tiêu chí trên;

- Bước 3: Thêm (i,j,LV EV ({vi, vj }), F) vào DFC’;

- Bước 4: Mở rộng tất cả các cung có thể quay lại: {vj, vx} trong đó vxđã được duyệt, thêm (j,x,LV EV({vj, vx}), B) vào DFCtheo thứ tự LV EV;

- Bước 5: Nếu vjlà đỉnh kề với vxvx chưa được duyệt lần nào thì ta quay

- Bước 6: Nếu còn có đỉnh chưa được thăm ta quay lại bước 1. Các trường hợp còn lại thì kết thúc việc xây dựng.

Sau khi xây dựng được chuỗi tuyến tính DFC của G’ ta tiến hành xây dựng một chuỗi tuyến tính DFC của G. Kích thước của chuỗi DFC phải giống với chuỗi DFC’ và các mã mục tương ứng phải đồng nhất. Nếu như chuỗi DFC được xây dựng ta có thể tìm được đồ thị S G trong đó đồ thị S được biểu diễn bởi chuỗi DFCGS. Đây chính là ý tưởng của thuật toán đẳng cấu đồ thị con.

Trước khi xây dựng chuỗi DFC ta phải tiến hành cắt tỉa đồ thị G. Mục đích của việc cắt tỉa này là làm sao có thể giảm số lượng các phần tử không hợp lệ tham gia vào quá trình xây dựng trên.

- Trường hợp 1: Nếu v V: LVe E: LE thì ta có thể xóa đỉnh v và cung E khỏi đồ thị G.(Nếu một đỉnh v thuộc đồ thị G mà nhãn của đỉnh đó không có trong tập nhãn của đồ thị G’ thì có thể thấy đỉnh v không phải là ảnh của bất kỳ đỉnh nào trong G’).

- Trường hợp 2: e G: LV EV(e) LV EV thì ta cũng sẽ xóa cung e khỏi đồ thị G.

- Trường hợp 3: Tính degmin( 1), degmin( 2),...,degmin( n) là bậc nhỏ nhất của mỗi nhãn x LV. Khi đó v V không phải đỉnh chung nếu deg( (v))<degmin( ) và

(v) = .

Đây được gọi là giai đoạn tiền xử lý. Sau giai đoạn này đồ thị G sẽ bị phân hoạch thành s đồ thị liên thông. Mỗi đồ thị này lại sẽ được đem so sánh với đồ thị G’.

Cho Gset là tập hợp tất cả các đồ thị là phân hoạch của G. Bài toán tìm ánh xạ giữa các đỉnh và cung của đồ thị GG’ được chuyển thành bài toán nhỏ hơn tìm ánh xạ giữa các đỉnh và cung của đồ thị Gi và G’ trong đó Gi Gset. Chúng ta sẽ sử dụng thuật toán quay lui vì kỹ thuật này tương đối ổn định và thực hiện tốt trong hầu hết các trường hợp, kết quả mới sử dụng kết quả trước đó nên không đòi hỏi nhiều tài nguyên chặt chẽ hơn những thuật toán khác.

Ta tìm đỉnh v Gi trong đó: = (vi), vi G’, deg(v) deg(vi) và dfc1’ = (i, j,cx, F) mà cx = LV EV({vi,vj}). Sau khi có các đỉnh thỏa mãn điều kiện trên ta bắt đầu xây dựng DFC.

Hình 3.6 Ví dụ về chiến lược tìm kiếm theo chiều rộng, chiều sâu sử dụng mã LVEV.

Trong hình vẽ 3.6, đồ thị G’ được so sánh với một đồ thị Gi (là một đồ thị sau khi phân hoạch của G). Trong chuỗi DFC được xây dựng ta thấy có một nhánh kết quả có cùng mức bốn với chuỗi DFC’. Đây cũng chính là hai đồ thị con của Gi đẳng cấu với đồ thị G’. Bằng trực quan ta có thể thấy hai đồ thị con này trùng khớp với đồ thị G’.

Việc sử dụng thuật toán SI - COBRA trên tỏ ra rất hiệu quả trong bài toán so khớp đồ thị. Thuật toán đã tìm chính xác được đồ thị con đẳng cấu. Tuy nhiên do thuật toán sử dụng việc tìm kiếm duyệt theo chiều sâu và rộng mà bản chất là vét cạn nên với những bài toán có không gian lớn thì ta không thể dùng chiến lược này được do thời gian thực hiện thuật toán trong trường hợp xấu nhất có thể là O(mn) trong đó n là số đỉnh của G’ và m là số đỉnh của G. Ngoài ra thuật toán trên chỉ áp dụng cho loại đồ thị có nhãn (có thể vô hướng hoặc có hướng).

Một phần của tài liệu Phát triển một số kỹ thuật so khớp ứng dụng trong quá trình phát hiện xâm nhập và giả mạo trên mạng (Trang 92 - 95)

Tải bản đầy đủ (PDF)

(135 trang)