Giải thuật kiểm tra tính tách được của bảng mã

Một phần của tài liệu Truyền và bảo mật thông tin (Trang 115 - 117)

116

Algorithm:

● Khởi tạo: Gán tập hợp S0 = W

● Bước 1: Xác định tập hợp S1 từ S0

● Khởi tạo S1 = { }

● Với ∀ wi, vj ∈S0 : nếu wi = vjA (vj là tiền tố của wi) hoặc vj = wiA (wi là tiền tố của vj) thì thêm A (phần hậu tố) vào S1

● Bước k: Xác định tập hợp Sk (k ≥ 2) từ tập hợp S0 và Sk-1

● Khởi tạo Sk = { }

● Với ∀ wi ∈S0 và wj ∈Sk-1 : nếu wi = vjA (vj là tiền tố của wi) hoặc vj = wiA (wi là tiền tố của vj) thì thêm A (phần hậu tố) vào Sk

● Điều kiện dừng vòng lặp:

● Nếu Sk = {} thì dừng và kết luận bảng mã tách được (k ≥1)

● Nếu tồn tại từ mã wi trong Sk hay Sk ∩ S0 # ∅ thì dừng và kết luận bảng mã không tách được.

● Nếu Sk = St<k thì dừng và kết luận bảng mã tách được (k ≥1)

117

Bài toán 1

Kiểm tra xem bảng mã W = {a, c, ad, abb, bad, deb, bbcde} có phải là bảng mã tách được hay không?

Áp dụng giải thuật kiểm tra tính tách được của bảng mã:

● Khởi tạo: S0 = {a, c, ad, abb, bad, deb, bbcde}

● Bước 1: Tính S1

● Khởi tạo S1 = { }

● Vì a là tiền tố của ad nên đưa phần hậu tố “d” vào S1 ⇒ S1 = {d}

● Vì a là tiền tố của abb nên đưa phần hậu tố “bb” vào S1 ⇒ S1 = {d, bb}

● Kiểm tra điều kiện dừng: không thỏa → bước 2

● Bước 2: Tính S2 từ S0 và S1

● Khởi tạo S2 = { }

● Vì d ∈ S1 là tiền tố của debbb ∈ S1 là tiền tố của bbcde ⇒ S2 = {eb, cde}

● Kiểm tra điều kiện dừng: không thỏa → bước 3

Một phần của tài liệu Truyền và bảo mật thông tin (Trang 115 - 117)

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

(184 trang)