• Tidak ada hasil yang ditemukan

Các thuật toán đề xuất giải quyết bài toán MDM

Đối với các bài toán dạng lan truyền thông tin, người ta có thể dùng các thuật toán cơ sở Max Degree và thuật toán Random để tìm lời giải “đủ tốt”. Hai thuật toán cơ sở này thường được sử dụng để kiểm định tính hiệu quả khi so sánh với các thuật toán mới đề xuất [1, 4, 47, 55].

Ký hiệu Nk(S) là tập hợp các đỉnh có khoảng cách không quá k tính từ tập nguồn phát thông tin sai lệch S trong đồ thị G. Khi k = 1, Nk(S) là tập đỉnh hàng xóm đi ra từS. Để ngăn chặn thông tin sai lệch lan truyền sau d bước thời gian thì các đỉnh được lựa chọn đểtạo miễn dịch cũng phải nằm trong tập Nd(S) với dZ+.

Trong mục này, tác giả đề xuất hai thuật toán tham lam cho bài toán MDM, thuật toán thứ nhất dựa trên đặc tính hàm số f(I) (cho bởi Công thức 3.7) đo độ giảm thiệt hại sau khi chọn tập đỉnh I để tạo miễn dịch, thuật toán hai sử dụng hàm số α(v) (cho bởi Công thức 3.8) đo độ tăng của hàm f(I) tính trên một đơn vị chi phí khi thêm một đỉnh mới v vào tập I.

Hàm giảm thiệt hại. Với mỗi tập I Nd(S), ta định nghĩa hàm giảm thiệt hại f(I) thức sau:

f(I) = DSd(∅)− DdS(I) =DdS − DdS(I) (3.7) trong đó ngầm định DdS(∅) = DSd.

Hàm tăng giá trị của f(I) trên một đơn vị chi phí. Với mỗi tậpI đã cho, hàm α(v) đo độ tăng giá trị hàmf(I)khi thêm một đỉnh v Nd(S)vào tậpI xác định như sau:

α(v) = (f(I∪ {v})f(I))

c(v) (3.8)

3.3.1 Thuật toán tham lam dựa trên hàm

f(I)

Mục tiêu của bài toán MDM là cực tiểu hóa tổng thiệt do thông tin sai lệch gây ra, tức là cực tiểu hóa hàm DdS(I) hoặc hiểu theo cách khác là cực đại hóa độ giảm thiệt hại, tức là cực đại hóa hàm f(I). Như vậy, ta có thể sử dụng f(I)

như là một hàm mục tiêu thay thế trong bài toán MDM, thuật toán tác giả đề xuất hoạt động dựa trên việc bổ sung dần tập I theo kiểu ăn tham.

Ý tưởng thuật toán: Khởi tạo I =, tiếp theo thực hiện lặp việc chọn đỉnh v Nd(S) sao cho hàm f(I ∪ {v}) đạt giá trị lớn nhất, nếu tổng chi phí hiện tại để tạo miễn dịch chưa vượt ngưỡng ngân sách B thì bổ sung v vào I, ngược lại thì dừng và trả về kết quả tập I. Quá trình này kết thúc khi tổng chi phí để tạo miễn dịch cho tập đỉnh I vượt ngưỡng ngân sách B đã cho hoặc đã xét hết tất cả các đỉnh trong tập Nd(S). Chi tiết thuật toán được đặc tả trong phần giả mã của Thuật toán 5.

Algorithm 1: Thuật toán tham lam dựa trên hàmf(I)

Input : G= (V, E), w(u, v), d, B, tập nguồn phát thông tin sai lệchS.

Output: Tập đỉnh I là lời giải của bài toánMDM.

begin

1

I← ∅;

2

N Nd(S);

3

C0;

4

while (C < B) and(N 6=∅)do

5

uargmaxv∈Nf(I∪ {v});//Chọn ra đỉnhv sao chof(I∪ {v})đạt giá trị lớn nhất

6

if C+c(u)B then

7

II∪ {u};

8

CC+c(u);

9

end

10

NN\{u};

11

end

12

ReturnI;

13

end

14

Dễ thấy rằng, trong trường hợp xấu nhất, Thuật toán 5 thực hiện tối đa n21 vòng lặp việc tính lại giá trị hàm f(I), với n1 = |Nd(S)|, tuy nhiên theo Công thức 3.7, để tính được giá trị hàm f(I) ta cần tính toán được kỳ vọng số đỉnh bị thông tin sai lệch kích hoạt sau d bước lan truyền. Việc tính toán chính xác giá trị kỳ vọng số đỉnh bị kích hoạt là vấn đề #P-khó [21, 60]. Để giải quyết vấn đề này, Wei Chen [21,60] đã sử dụng phương pháp mô phỏng Monte Carlo quá trình lan truyền thông tin, từ đó ước lượng giá trị kỳ vọng số đỉnh bị kích hoạt. Ước lượng giá trị hàm DSd(I) bằng pháp mô phỏng Mote Carlo quá trình lan truyền thông tin được trình bày trong Thuật toán 2.

Với mỗi tập hạt giống S, tiến hành mô phỏng quá trình lan truyền thông tin ngẫu nhiên R lần. Mỗi lần, tính số đỉnh ở trạng thái kích hoạt sau d bước lan truyền, sau đó tính tổng trung bình trên R lần mô phỏng. Khi số lần mô phỏng R càng lớn thì ước lượng giá trị kỳ vọng số đỉnh bị kích hoạt có độ chính xác càng cao.

Algorithm 2: Thuật toán ước lượng giá trị hàmDdS(I)

Input : G= (V, E), w(u, v), tập nguồn phát thông tin sai lệchS, tập đỉnhItạo miễn dịch.

Output: Giá trị ước lượng hàmDSd(I).

begin

1

Đồ thị G(I)thu được sau khi loại bỏ tập đỉnhItừ đồ thị G;

2

count0;

3

forj = 1toR do

4

mô phỏng quá trình lan truyền thông tin trên đồ thịG(I)từ tập nguồnS;

5

na số đỉnh kích hoạt saudbước lan truyền;

6

countcount+na;

7

end

8

Returncount/R;

9

end

10

Như vậy, trong trường hợp xấu nhất, Thuật toán 1 có độ phức tạp tính toán là O(n21R), với n1 =|Nd(S)|, R là số lần mô phỏng.

3.3.2 Thuật toán tham lam dựa trên hàm

α(v)

Trong mục trước, Thuật toán 1 dựa trên ý tưởng chọn ra những đỉnh thu được độ giảm thiệt hại lớn nhất để thêm vào tập đỉnh cần tạo miễn dịch, tuy nhiên, trong mục này tác giả đề xuất thuật toán khác dựa trên ý tưởng lựa chọn ra những đỉnh thu được lợi nhuận lớn nhất nhưng xét đến yếu tố chi phí bỏ ra.

Ý tưởng thuật toán: Khởi tạo I =, tiếp theo thực hiện lặp việc chọn đỉnh v Nd(S) sao cho hàm α(v) đạt giá trị lớn nhất, nếu tổng chi phí hiện tại để tạo miễn dịch chưa vượt ngưỡng ngân sáchB thì bổ sungv vàoI, ngược lại thì dừng và trả về kết quả tập I. Quá trình này kết thúc khi tổng chi phí đểtạo miễn dịch cho tập đỉnh I vượt ngưỡng ngân sách B đã cho hoặc đã xét hết tất cả các đỉnh trong tập Nd(S). Chi tiết thuật toán được đặc tả trong phân giả mã của Thuật toán 3.

Trong trường hợp xấu nhất, Thuật toán 3 cũng có độ phức tạp tính toán là O(n21R), với n1 =|Nd(S)|, R là số lần mô phỏng.

Algorithm 3: Thuật toán tham lam dựa trên hàmα(v)

Input : G= (V, E), w(u, v), d, B, tập nguồn phát thông tin sai lệchS.

Output: Tập đỉnh I là lời giải của bài toánMDM.

begin

1

I← ∅;

2

N Nd(S);

3

C0;

4

while (C < B) and(N 6=∅)do

5

α(v) =(f(I∪ {v})f(I))

c(v) ,∀vN;

6

uargmaxv∈Nα(v);//Chọn ra đỉnhv sao choα(v)đạt giá trị lớn nhất

7

if C+c(u)B then

8

II∪ {u};

9

CC+c(u);

10

end

11

NN\{u};

12

end

13

ReturnI;

14

end

15

Chương 4 THỰC NGHIỆM

Ở Chương 4 tác giả tập trung đánh giá chi tiết hiệu quả hai thuật toán đề xuất: Thuật toán 1 và Thuật toán 3, so sánh với các thuật toán cơ sở khác như thuật toán Max Degree và thuật toán Random. Tính hiệu quả ở đây xét trong ngữ cảnh độ giảm thiệt hại hay độ giảm số đỉnh bị thông tin sai lệch kích hoạt sau khi tạo miễn dịch cho tập đỉnh I.

4.1 Mục đích thực nghiệm

Trong phần này, luận văn trình bày cách thức tiến hành thực nghiệm và kết quả thực nghiệm nhằm đánh giá hiệu quả hai thuật toán tham lam: Thuật toán 1 và Thuật toán 3, so sánh với các thuật toán cơ sở khác như thuật toán Max Degree và thuật toán Random. Hai thuật toán cơ sở này được sử dụng nhiều trong thực nghiệm nhằm so sánh với các thuật toán đề xuất: Kempe, 2003, [47];

Chen, 2010, [61]; Goyal, 2011, [64]. Ngoài ra, thực nghiệm cũng nhằm giải quyết các câu hỏi: Khi ngân sách B thay đổi sẽ ảnh hưởng thế nào đến kết quả? Kích thước của tập nguồn phát thông tin sai lệch S thay đổi sẽ ảnh hưởng thế nào đến kết quả?