nhom7 ltdpt

41
Nhóm 7_ lý thuyết độ phức tạp Giáo viên HD: Th.s Phạm Thị Lan Thành viên nhóm: Nguyễn Thị Hồng Nhớ Hoàng Thị Phương Thanh Phạm Thị Ngọc Nông Hạnh Phúc Phương Thị Dung Nguyễn Thị Thủy

Upload: phuongthanh1288

Post on 04-Jul-2015

906 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Nhom7  ltdpt

Nhóm 7_ lý thuyết độ phức tạp

Giáo viên HD: Th.s Phạm Thị LanThành viên nhóm:Nguyễn Thị Hồng NhớHoàng Thị Phương ThanhPhạm Thị NgọcNông Hạnh PhúcPhương Thị DungNguyễn Thị Thủy

Page 2: Nhom7  ltdpt

2

Nhóm 2 – K57A

Slide 2

1. Phương pháp giới hạn

Tư tưởng của phương pháp giới hạn là ta hạn chế các thể hiện của bài toán II về bài toán II’;

Trong đó: II là bài toán cần chứng minh là NPC;

II’ là trường hợp riêng của bài toán II.

Có 2 khả năng với bài toán II’:

II’ là NPC đã biết;

II’ chưa phải là NPC nhưng ta dễ dàng quy dẫn từ bài toán NPC đã biết về II’ theo một sự ánh xạ dễ nhìn thấy.

Mục đích: Tìm bài toán giới hạn II’ của bài toán II tổng quát.

Page 3: Nhom7  ltdpt

3

Nhóm 2 – K57A

Slide 3

Phương pháp giới hạn

Ví dụ: Ta sẽ chứng minh được bài toán Exact cover by 3-set là NPC sau khi đã chứng minh được bài toán 3DM là NPC.

Bài toán Exact cover by 3-set (X3C):

Thể hiện: Một tập hữu hạn X với |X|= 3q, và một tập C là tập các tập con 3 phần tử của X;

Câu hỏi: C có chứa một exact cover cho X hay không, nghĩa là tồn tại hay không một tập C’ là tập con của C sao cho mỗi phần tử trong X chỉ xuất hiện đúng một lần trong một phần tử của C.

Ý tưởng: Ta hạn chế bài toán này trên tập C, để đưa bài toán đó về bài toán 3DM.

Page 4: Nhom7  ltdpt

4

Nhóm 2 – K57A

Slide 4

Phương pháp giới hạn

Chẳng hạn:

Cho tập X= {1, 2, 3, 4, 5, 6};

Giả sử C= {(1, 2, 3), (6, 5, 4), (4, 2, 3)}, với C là tập các tập con của tập X;

Ta có: |X|= 3q= 6 → q= 2;

Ta chia tập X ra thành 3 tập W, Y, Z sao cho: |W|= |Y|= |Z|= 2; Mỗi phần tử trong tập con của tập C sẽ xuất hiện đúng 1 lần hoặc

vào tập W, hoặc tập Y, hoặc tập Z;

Với điều kiện đó thì tập X có thể được phân chia làm 3 tập W, Y, Z như sau:

Page 5: Nhom7  ltdpt

5

Nhóm 2 – K57A

Slide 5

Phương pháp giới hạn

Từ bảng trên ta có:

W= {1, 4}; Y= {2, 5}; Z= {3, 6};

M = C = {(1, 2, 3), (4, 5, 6), (4, 2, 3)};

Ta có M’= {(1, 2, 3), (4, 5, 6)}€ M là 1 matching;

Như vậy, sau khi hạn chế trên tập C= M thì ta hoàn toàn đưa được X3C về 3DM.

Khi đó, ta dễ dàng chứng minh được X3C là NPC.

Page 6: Nhom7  ltdpt

6

Nhóm 2 – K57A

Slide 6

Phương pháp giới hạn

Chứng minh bài toán đồ thị con đẳng cấu là NPC. Bài toán tổng quát II:

Thể hiện: Các dữ liệu là hai đồ thị, G1= (V1, E1) và G2= (V2, E2);Câu hỏi: Vấn đề là xác định xem G1 có chứa một đồ thị con đẳng cấu với G2, nghĩa là, tồn tại một tập đỉnh V’ là tập con của tập V1, và một tập cạnh E’ là tập con của E1, sao cho |V’|= |V2|, |E’|= |E2|, và tồn tại một song ánh f: V2→V’ thỏa mãn mỗi cạnh (u, v) € E2 khi và chỉ khi một cạnh (f(u), f(v)) € E’.Tư tưởng: Từ bài toán tổng quát II là xét với mọi đồ thị G1(V1, E1) và G2(V2, E2), ta hạn chế các thể hiện của bài toán đó về bài toán mới II’:

Page 7: Nhom7  ltdpt

7

Nhóm 2 – K57A

Slide 7

Phương pháp giới hạn

Bài toán II’:Thể hiện: Các dữ liệu là hai đồ thị, G1= (V1, E1) và G2= (V2, E2) với G2 là đồ thị đầy đủ;Câu hỏi: Vấn đề là xác định xem G1 có chứa một đồ thị con đẳng cấu với G2, nghĩa là, tồn tại một tập đỉnh V’ là tập con của tập V1, và một tập cạnh E’ là tập con của E1, sao cho |V’|= |V2|, |E’|= |E2|, và tồn tại một song ánh f: V2→V’ thỏa mãn mỗi cạnh (u, v) € E2 khi và chỉ khi một cạnh (f(u), f(v)) € E’.Trong trường hợp này thì bài toán II’ chưa là NPC;Ta dễ dàng quy dẫn clique về II’, trong đó clique là bài toán NPC đã biết.

Page 8: Nhom7  ltdpt

8

Nhóm 2 – K57A

Slide 8

Phương pháp giới hạn

Bài toán: Chứng minh II’ là NPC. Chứng minh:

Bước 1: II’ thuộc lớp NP;Bước 2: Quy dẫn clique về II’.

Chứng minh II’ thuộc lớp NP:Với thuật toán không tất định :Phỏng đoán: Hai đồ thị H(V1, E1) và G2(V2, E2); với G2 là đồ thị đầy đủ, và H là đồ thị con của G1;Kiểm tra: Thuật toán thực hiện trong thời gian đa thức, thỏa mãn |V1|= |V2|, |E1|= |E2|, và mỗi cạnh (u, v)€ E2 nếu và chỉ nếu một cạnh (f(u), f(v)) € E1.

Quy dẫn clique về bài toán II’:

Page 9: Nhom7  ltdpt

9

Nhóm 2 – K57A

Slide 9

Phương pháp giới hạn

Bài toán clique:

Thể hiện: Một đồ thị G(V, E) và một số nguyên dương j≤ |V|;

Câu hỏi: G có chứa một clique kích cỡ lớn hơn hoặc bằng j hay không?

Từ bài toán clique ta xây dựng:

Đồ thị G1(V, E);

Đồ thị G2(V2, E2), với G2 là đồ thị đầy đủ|;

Ta chỉ ra rằng: G có clique kích cỡ lớn hơn hoặc bằng j nếu và chỉ nếu G1 có đồ thị con đẳng cấu với G2.

Page 10: Nhom7  ltdpt

10

Nhóm 2 – K57A

Slide 10

Phương pháp giới hạn

Thật vậy:Gọi H(V1, E1) là đồ thị con của G1;

Nếu G có clique kích cỡ lớn hơn hoặc bằng j thì G1 có đồ thị con đẳng cấu với G2:

Ta có: G có clique kích cỡ lớn hơn hoặc bằng j;Theo cách xây dựng thì ta có, tập đỉnh V2 của G2 là tập clique của

G, tức là: |V2|= j; Với mọi u, v € V2 và (u, v) € E thì (u, v) € E2;

Vì H(V1, E1) là đồ thị con của G1 → V1 là 1 clique của G1, với |V1|= j, và thỏa mãn mọi u, v € V1, (u, v) € E thì (u, v) € E1;

Như vậy: |V1|= |V2|= j, |E1|= |E2|; và tồn tại 1 ánh xạ f: V2 → V1 thỏa mãn mỗi cạnh (u, v) € E2 khi và chỉ khi một cạnh (f(u), f(v)) € E1.

Do đó, H(V1, E1) đẳng cấu với G2(V2, E2).

Page 11: Nhom7  ltdpt

11

Nhóm 2 – K57A

Slide 11

Phương pháp giới hạn

Nếu G1(V, E) có đồ thị con đẳng cấu với G2(V2, E2) thì G(V, E) có clique kích cỡ lớn hơn hoặc bằng j:

Vì H(V1, E1) đẳng cấu với G2(V2, E2) nên: |V1|= |V2|, |E1|= |E2|; Tồn tại 1 ánh xạ f: V2 → V1 thỏa mãn mỗi cạnh (u, v) € E2 khi và

chỉ khi một cạnh (f(u), f(v)) € E1.Ta có: G2 là đồ thị đầy đủ, và theo phép ánh xạ:

f: V2 → V1Suy ra: H là đồ thị đầy đủ.

Như vậy:Bài toán II’ là NPC;II’ là trường hợp riêng của II;

Vậy bài toán II tổng quát là NPC.

Page 12: Nhom7  ltdpt

25/10/11 12

Local Replacement Đơn vị cơ bản (ĐVCB): Một thể hiện của bài toán

NPC đã biết được chia thành một vài cấu trúc tương tự nhau

Vd: ĐVCB của thể hiện bài toán SAT là các mệnh đề cj

Tư tưởng của phương pháp thay thế địa phương là: thay thế mỗi ĐVCB của bài toán NPC đã biết theo một quy tắc biến đổi thống nhất để được thể hiện tương ứng của bài toán mục tiêu

Vd: Biến đổi bài toán SAT về 3 SAT Thay thế địa phương là thay thế cục bộ độc lập

Page 13: Nhom7  ltdpt

25/10/11 13

Partition Into TrianglesThể hiện: Cho đồ thị G = (V, E), với |V| = 3q (q là số

nguyên dương)

Câu hỏi: Liệu có cách phân hoạchV thành q tập rời nhau V1, V2,…,Vq sao cho mỗi tập chỉ có đúng 3 đỉnh, với mỗi Vi = {vi[1], vi[2], vi[3] }, ba cạnh {vi[1], vi[2]} , {vi[1], vi[3]}, {vi[2], vi[3]} có thuộc E không?

Page 14: Nhom7  ltdpt

25/10/11 14

Partition Into Triangles

Định lý: Partition Into Triangles (PT) là NPC

PT ∈ NP Đã có X3C ∈ NPC f: X3C ⇒ PT f thực hiện trong thời gian đa thức

Page 15: Nhom7  ltdpt

25/10/11 15

Partition Into Triangles - NPC

PT ∈ NP Từ thuật toán không tất định

Đoán: q tập con 3 phần tử V1, V2,…, Vq∈V Kiểm tra trong thời gian đa thức: ứng với mỗi

Vi = {vi[1], vi[2], vi[3] }, thì {vi[1], vi[2]} , {vi[1], vi[3]}, {vi[2], vi[3]} có thuộc E không?

Page 16: Nhom7  ltdpt

25/10/11 16

Exact Cover by 3-Sets (X3C)

Thể hiện: Cho tập X với |X| = 3q và C là tập các tập con 3 phần tử của X.

Câu hỏi: Liệu C có chứa một phủ chính xác của X không? (một tập con C’ ⊆ C mà mỗi phần tử của X chỉ xuất hiện đúng một lần trong một thành phần của C)

Page 17: Nhom7  ltdpt

25/10/11 17

Partition Into Triangles - NPC

f: X3C ⇒ PTThể hiện X3C: Tập X với |X| =3q

Tập C = {c1, c2, ..., cm}

ci = {xi, yi, zi } Є C ( i = 1,..,m)

Mục đích: Xây dựng đồ thị G=(V,E) với |V| = 3q’Chứng minh: G có phân hoạch nếu và chỉ nếu C chứa

một exact cover

Page 18: Nhom7  ltdpt

25/10/11 18

Partition Into Triangles - NPC Đơn vị cơ bản của thể hiện X3C là các tập con 3

phần tử trong C Thay thế địa phương sẽ thay thế mỗi tập con

ci = {xi, yi, zi } Є C bởi tập Ei có 18 cạnh

Page 19: Nhom7  ltdpt

25/10/11 19

Partition Into Triangles - NPC Thể hiện PT: G=(V,E)

|V| = |X|+9 |C| =3q+9 |C| vì thế q'= q+3 |C|.

Page 20: Nhom7  ltdpt

25/10/11 20

Partition Into Triangles - NPC f thực hiện trong thời gian đa thức

Số phần tử của X (3q) & số phần tử của C (m) là đa thức ⇒ đồ thị G=(V,E) được xây dựng trong thời gian đa thức

<3q+9m đỉnh, 18m cạnh>

Chứng minh: G có phân vùng nếu và chỉ nếu C chứa một exact cover

Page 21: Nhom7  ltdpt

25/10/11 21

Partition Into Triangles - NPC Nếu C’= {ck1, ck2,..., ckq}, ki Є {1, 2,…, m} là một phủ

chính xác bất kì của X thì phân hoạch tương ứng V = V1 U V2 U … U Vq’ của V được cho bởi cách lấy:cki= {xi, yi, zi} Є C’ thì

cki= {xi, yi, zi} C’ thì

Mỗi phần tử của X chỉ xuất hiện trong đúng một tập con 3 đỉnh trong phân hoạch

Page 22: Nhom7  ltdpt

25/10/11 22

Partition Into Triangles - NPC

Ví dụ: X = {1, 2, 3, 4, 5, 6} (q=2)

C = {c1, c2, c3}

c1 = {1, 3, 5}; c2 = {2, 4, 6}; c3 = {2, 3, 4}

Xây dựng đồ thị G=(V, E) với |V| =|X| + 9|C| = 6 + 9.3 = 33

Phủ chính xác của X là {c1, c2}

Phân hoạch V =V1 U V2 U…U V11

Page 23: Nhom7  ltdpt

25/10/11 23

Page 24: Nhom7  ltdpt

25/10/11 24

Partition Into Triangles - NPC Ngược lại, giả sửV = V1 U V2 U … U Vq’ là một phân

hoạch bất kì của G Tìm phủ chính xác của X Chọn ci C sao cho {ai[3], ai[6], ai[9]} = Vj với

1≤j≤q’ Chọn các bộ ba tương ứng sinh ra bộ ba này

Page 25: Nhom7  ltdpt
Page 26: Nhom7  ltdpt

26

3. Thiết kế thành phần

Đây là cách chứng minh phức tạp nhất. Các ví dụ điển hình cho kiểu chứng minh này là 3DM, VERTEX COVER, chu trình HAMILTON.

Tư tưởng của cách chứng minh: Sử dụng các thành phần của bài toán NPC đã biết để thiết kế chính xác “các thành phần” mà kết hợp các thành phần đó với nhau sẽ trở thành thể hiện của bài toán NPC cần chứng minh.

Page 27: Nhom7  ltdpt

27

3. Thiết kế thành phần Trong cách thiết kế, gồm 2 kiểu thành phần cơ bản:

o Thành phần lựa chọn (như chọn lựa các đỉnh, chọn các giá trị chân lí cho các biến)

o Thành phần kiểm tra (như kiểm tra mỗi cạch có được phủ không, kiểm tra các mệnh đề được thỏa mãn không)

Sau khi thiết kế xong thì phải liên kết 2 thành phần lựa chọn và kiểm tra với nhau sao cho thỏa mãn các điều kiện ban đầu.

Page 28: Nhom7  ltdpt

28

Ví dụ: bài toán Vertex Cover Chuyển từ 3_Sat về Vertex Cover Thể hiện của 3_Sat:

Tập biến: U={u1, u2, ..., un} Tập mệnh đề: C={c1, c2, ..., cm}

Thể hiện của VC: G(V,E) và K≤ |V| Từ các thành phần trong tập các biến U, tập các mệnh

đề C của bài toán 3_Sat; ta đi thiết kế các thành phần của bài toán VC cần chứng minh là NPC, và tạo mối liên kết giữa các thành phần này.

o Các biến: thành phần lựa chọno Các mệnh đề: thành phần kiểm tra

Page 29: Nhom7  ltdpt

29

Ví dụ: bài toán Vertex Cover

Mỗi biến ui∈U có 1 đồ thị

Trong đó:

Mỗi mệnh đề cj ∈ C có 1 đồ thị

Trong đó: a1[j], a2[j], a3[i] là các literal trong cj

Page 30: Nhom7  ltdpt

30

Ví dụ: bài toán Vertex Cover

Khi có 2 thành phần trên (2 đồ thị), ta kết nối 2 thành phần đó với nhau bằng cách thêm các cạnh nối giữa 2 đồ thị và giá trị K:

K=n+2m (n: số các biến ui ; m: số các mệnh đề trong C)

Thể hiện của bài toán VC là sự kết hợp các thành phần đã xây dựng ở trên:

Page 31: Nhom7  ltdpt

31

3. Thiết kế thành phần

Tổng quát:Một bài toán có thể chứng minh bằng cách xây

dựng một tập các thành phần từ các thành phần của bài toán NPC đã biết, các thành phần kết nối với nhau để trở thành thể hiện của bài toán cần chứng minh. Việc xây dựng một quy dẫn như vậy được coi như là cách chứng minh thiết kế thành phần.

Lưu ý: phép biến đổi để chứng minh định lí Cook trong chương 2 là một ví dụ. Mỗi một nhóm mệnh đề trong 6 nhóm mệnh đề là một kiểu thành phần.

Page 32: Nhom7  ltdpt

32

Bài toán: MINIMUM TARDINESS SEQUENCING

Thể hiện:Một tập hợp gồm T "tác vụ", mỗi t€T có "chiều dài"

1 và một "giới hạn" d(t) € Z+ và T là tập có thứ tự, một số nguyên không âm K<= |T|

Câu hỏi:Có hay không một ánh xạ σ: T {0,1,…,|T|-1} sao cho → σ(t) ≠σ(t’) khi mà t ≠t’, hoặc σ(t) <σ(t’) khi t <t’ và |{t€T: σ(t)+1 > d(t)}| <= K(tức là: mỗi tác vụ chỉ được thực hiện trong một thời điểm và số lượng các tác vụ vi phạm giới hạn nhỏ hơn hoặc bằng K)

Page 33: Nhom7  ltdpt

33

Bài toán: MINIMUM TARDINESS SEQUENCING

Định lí: bài toán MINIMUM TARDINESS SEQUENCING là NPC

Chứng minh:o MINIMUM TARDINESS SEQUENCING ϵ NPo Clique là NPC đã biếto Xây dựng f: Clique MINIMUM TARDINESS SEQUENCING

o f thực hiện trong thời gian đa thức

Page 34: Nhom7  ltdpt

34

Bài toán: MINIMUM TARDINESS SEQUENCING

MINIMUM TARDINESS SEQUENCING ϵ NP

Từ thuật toán không tất định Đoán một chuỗi xắp xếp có thứ tự trong T

σ: T {0,1,…,|T|-1} → Kiểm tra trong thời gian đa thức:

Xem mỗi tác vụ có được thực hiện duy nhất trong một thời điểm và |{t€T: σ(t)+1 > d(t)}| <= K hay không.

Page 35: Nhom7  ltdpt

35

Bài toán: MINIMUM TARDINESS SEQUENCING

Xây dựng f: Clique MINIMUM TARDINESS SEQUENCING Thể hiện của Clique: G = (V, E); J<= |V| Xây dựng: Một tập hợp T "tác vụ", "giới hạn"

d(t) € Z+ và K<=|T|

Chứng minh: T có một chuỗi thỏa mãn điều kiện bài toán khi và chỉ khi G có một Clique

Page 36: Nhom7  ltdpt

36

Bài toán: MINIMUM TARDINESS SEQUENCING

Xây dựng các thành phần của MINIMUM TARDINESS SEQUENCING T= V U E K = |E|- (J(J-l)/2) Thứ tự và giới hạn của các thành phần được định nghĩa:

t<t’ t€V,t'€E, đỉnh t là điểm kết thúc của cạnh t‘↔

Chú ý: Tác vụ cạnh được thực hiện sau khi các tác vụ điểm ứng với 2 đỉnh của cạnh ấy đã được thực hiện. Chỉ tác vụ cạnh có nguy cơ bị trễ. (được hoàn thành sau giới hạn của chúng)

Page 37: Nhom7  ltdpt

37

Bài toán: MINIMUM TARDINESS SEQUENCING

f thực hiện trong thời gian đa thức vì: Clique: G(V,E) có n đỉnh và m cạnh MINIMUM TARDINESS SEQUENCING: T= V U E

có n+m phần tửViệc xây dựng MINIMUM TARDINESS SEQUENCING là việc lựa chọn một dãy có thứ tự (n+m) phần tử. Do đó f thực hiện trong thời gian đa thức.

Page 38: Nhom7  ltdpt

Bài toán: MINIMUM TARDINESS SEQUENCING

Chứng minh: Chiều thuận: Nếu có một chuỗi các tác vụ thỏa

mãn một ánh xạ σ: T {0,1,…,|T|-1} thì G(V,E) có →một Clique kích thước J.

+ Vì |{t€T: σ(t)+1 > d(t)}| <= K nên số các tác vụ trễ nhiều nhất là K = |E|- J(J-l)/2.

+ Tổng các tác vụ là |V|+|E| nên số các tác vụ đúng ít nhất là

|V|+|E|- K =|V|+J(J-1)/2 >= J+ J(J-l)/2 = J(J+1)/2

Page 39: Nhom7  ltdpt

Bài toán: MINIMUM TARDINESS SEQUENCING

+ Số các tác vụ đúng ít nhất là |V|+|E|- K =|V|+J(J-1)/2.

Mà |V| các tác vụ đỉnh bao giờ cũng đúng vì nó được thực hiện trước. Nên còn lại ít nhất là J(J-1)/2 tác vụ cạnh đúng

phải có ít nhất J tác vụ đỉnh đúng để cho J(J-1)/2 tác vụ cạnh đúng <==> có một đồ thị con đầy đủ ít nhất J đỉnh.

+ Có ít nhất J(J-1)/2 tác vụ cạnh đúng nên số các tác vụ đỉnh đúng nhiều nhất là J vì:

J(J+1)/2 – J(J-1)/2 = J.

Do đó, số các tác vụ đỉnh đúng chính xác là J => có một đồ thị đầy đủ J đỉnh hay là có một Clique J đỉnh trong G.

Page 40: Nhom7  ltdpt

40

Bài toán: MINIMUM TARDINESS SEQUENCING

Chiều ngược: nếu có Clique J đỉnh thì có một ánh xạ σ: T {0,1,…,|T|-1} thỏa mãn điều kiện ban đầu.→

+ Ta đi xây dựng một ánh xạ mà thứ tự các tác vụ được thực hiện theo hình dưới đây:

Page 41: Nhom7  ltdpt

Bài toán: MINIMUM TARDINESS SEQUENCING

+ Từ sơ đồ chuỗi ta có:J tác vụ đỉnh thực hiện đúng thời điểmJ(J-1)/2 tác vụ cạnh cũng thực hiện đúng thời điểm. Vì có clique kích thước J nên ứng với J tác vụ đỉnh thực hiện đúng thì có J(J-1)/2 tác vụ cạnh đúng.

+ |V| - J tác vụ đỉnh thực hiện đúng vì:mọi t ϵ V có d(t)=|V|+|E|J+ J(J-1)/2 + (|V| - J) = |V| + J(J-1)/2 < d(t)

+ Vậy còn lại (|V|+|E|) – (J+ J(J-1)/2 + (|V| - J) )= |E|- J(J-1)/2

Số các tác vụ cạnh có nguy cơ bị trễ nhiều nhất là |E|- J(J-1)/2 hay |{t€T: σ(t)+1 > d(t)}| <= K với K= |E|- J(J-1)/2

Như vậy, ta xây dựng được một chuỗi thỏa mãn như hình trên khi G có một Clique chứa J đỉnh.