nhom7 ltdpt
TRANSCRIPT
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
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.
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.
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:
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.
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’:
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.
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’:
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.
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).
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.
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
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?
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
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?
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)
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
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
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|.
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
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
∉
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
25/10/11 23
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
∈
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.
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.
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
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
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:
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.
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)
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
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.
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
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)
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.
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
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.
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:
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.