Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5Nội dung: Khái niệm về các bài toán Thuật toán thời gian đa thức Một khuôn khổ ngôn ngữ hình thức Khái niệm lớp P Thời gian đa thức – Polyn
Trang 2Đặt vấn đề
Chia lớp các bài toán như thế nào?
Mối quan hệ giữa các lớp bài toán?
Phép rút gọn? Rút gọn về các bài toán đã biết?
Một số vận dụng?
Trang 3Nội dung
Thời gian đa thức (Trương Nữ Thùy Duyên)
Xác minh thời gian đa thức (Huỳnh Thị Kim Ngân)
NPC và khả năng rút gọn (Đoàn Thanh Hòa)
Các bài toán NPC (Trần Hoài Nhân)
Trang 4Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
Nội dung:
Khái niệm về các bài toán Thuật toán thời gian đa thức Một khuôn khổ ngôn ngữ hình thức Khái niệm lớp P
Thời gian đa thức – Polynomial time
Trang 5Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
1 Khái niệm bài toán:
Bài toán trừu tượng Q là một hệ thức nhị
phân trên tập hợp I các minh dụ (instances) của bài toán và một tập hợp S các nghiệm của
bài toán.
Ví dụ: Xét bài toán SHORTEST_PATH: Tìm lộ trình ngắn nhất giữa 2 đỉnh của đồ thị vô hướng không trọng số G=<V,E>
Trang 6Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
Bài toán quyết định: có một nghiệm có
hoặc không Trong trường hợp này chúng ta
có thể xem một bài toán quyết định trừu
tượng là một ánh xạ từ tập minh dụ I vào tập
Trang 7Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
2 Phép mã hóa
Phép mã hóa một tập S các đối tượng trừu
tượng là một ánh xạ e từ tập S vào tập các chuỗi nhị phân.
Ví dụ: N ={ 1, 2, 3,…} { 01, 10, 11,….}
e(17)=10001
Bài toán cụ thể: là bài toán mà tập minh dụ
của nó là tập các chuỗi nhị phân.
Trang 8Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
…
Thuật toán giải một bài toán cụ thể trong thời gian O(T(n)) nếu: mỗi minh dụ i có độ dài n, thuật toán cho kết quả trong thời gian
là O(T(n)).
Một bài toán cụ thể giải được trong thời
gian đa thức nếu tồn tại thuật toán giải nó
trong thời gian O(nk), k hằng số.
Trang 9Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
…
Lớp P: Là tập các bài toán quyết định cụ thể
giải được trong thời gian đa thức.
f: {0, 1}* {0, 1}* là hàm tính toán được
theo thời gian đa thức nếu tồn tại một thuật
toán thời gian đa thức A mà bất kỳ input x Є {0,1}* output f(x)
Trang 10Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
e1 và e2 có liên quan đa thức nếu tồn tại f12
và f21 sao cho với i Є I ta có
f12(e1(i))=e2(i) và f21(e2(i))= e1(i)
Bài toán có giải được trong thời gian đa thức hay không là không phụ thuộc vào phép
mã hóa.
Trang 11Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
Bổ đề 34.1: Q là 1 tập các bài bài trừu tượng trên 1 tập các minh dụ I và e1 , e2 là các phép
mã hóa có liên quan đa thức trên I thì: e1(Q) Є
P nếu và chỉ nếu e2(Q) Є P
Trang 12Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
3 Một khuôn khổ Ngôn ngữ hình thức
Bảng chữ cái E là tập hữu hạn các ký tự.
Ví dụ: E = {0,1}
Từ là 1 dãy các chữ cái của E.
Một ngôn ngữ L trên E là 1 tập các từ trên E.
Ví dụ: L={00, 01, 10, 11}
Từ rỗng: ε Ngôn ngữ rỗng: Ø Ngôn ngữ gồm tất cả các từ trên E: E*
Trang 13Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
A loại bỏ x nếu A(x) = 0.
Ngôn ngữ L được chấp nhận bởi A:
Trang 14Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
Một ngôn ngữ L được quyết định bởi thuật toán A nếu:
x thuộc L nếu A chấp nhận x và
x không thuộc L nếu A loại bỏ x.
L được quyết định bởi A trong trong thời gian đa thức nếu có hằng số k sao cho mọi từ
x có độ dài n được A quyết định trong thời gian O(nk)
Trang 15Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5
…
4 Lớp P
Định nghĩa: Lớp P bao gồm tất cả các bài
toán giải được trong thời gian đa thức (tức
là tồn tại thuật toán giải quyết nó với thời
gian chạy đa thức).
P = {L Є {0, 1}*: có thuật toán A quyết định L trong thời gian đa thức}
Định lý 34.2: P = {L ngôn ngữ trên E: có
thuật toán A chấp nhận L trong t.g.đ.t.}
Trang 16Xác minh thời gian đ a thức (Polynomial-time verfication)
• Ví dụ: bài toán tìm chu trình Hammilton
1
2
3
4 5
10
9
8
7 6
– Input: cho đồ thị vô hướng G = (V, E) – Output: chu trình chứa mọi đỉnh của G – Thời gian giải bài toán: O(n!)
Người trình bày: Huỳnh Thị Kim Ngân |Nhóm 5
Trang 17Xác minh thời gian đa thức (t)
• Các thuật toán xác minh (Vertification algorithms)
10
9
8
7 6
Trang 182 Xác minh thời gian đa thức (t)
• Các thuật toán xác minh (Vertification algorithms)
– Định nghĩa: Gọi A(x,y) trong đó:
• x: chuỗi đầu vào thông thường (ordinate)
• y: chuỗi nhị phân có tên là chứng chỉ [certificate]
Ta nói A xác minh x nếu tồn tại một chứng chỉ y sao cho A(x,y)=1
– Ngôn ngữ xác minh bởi một thuật toán xác minh A là:
L = {x {0,1}* : có tồn tại y {0,1}* sao cho A(x,y) = 1 }
Người trình bày: Huỳnh Thị Kim Ngân |Nhóm 5
Trang 192 Xác minh thời gian đa thức (t)
• Lớp phức NP (The complexity class NP)
• Là lớp các ngôn ngữ có thể được xác minh bởi một thuật toán thời gian đa thức.
• Hay: một ngôn ngữ L thuộc về NP nếu và chỉ nếu ở đó tồn tại một thuật toán thời gian đa thức A và hằng c sao cho:
L = { x {0,1}*: y với y = O(x c ) sao cho A(x,y) =1 }
• Lớp phức co-NP (complexity class co-NP)
Trang 202 Xác minh thời gian đa thức (t)
Trang 212 Xác minh thời gian đa thức (t)
Trang 22 Thuộc về lớp NP nhưng không rõ có thể thuộc về lớp
thuộc lớp NP cũng sẽ được giải trong thời gian đa thức
Người trình bày: Đoàn Thanh Hòa |Nhóm 5
Trang 23Phép rút gọn - Reducibility
• Ngôn ngữ L1 là rút gọn được về ngôn ngữ L2 trong thời
gian đa thức nếu tồn tại một hàm tính toán được theo
thời gian đa thức:
thời gian đa thức
• Ký hiệu: L1 ≤p L2
Người trình bày: Đoàn Thanh Hòa |Nhóm 5
Trang 24Bổ đề 3: Nếu L1, L2 {0,1}* là các ngôn ngữ sao cho ⊆ {0,1}* là các ngôn ngữ sao cho
L1 ≤ p L2 thì L2Є P ngụ ý L1Є P
Chứng minh :
Trang 25• Ngôn ngữ L⊆ {0,1}* là các ngôn ngữ sao cho {0,1}* là NP-đầy đủ (Ký hiệu: NPC)
nếu:
1 L Є NP
• Ngôn ngữ L là NP-khó (NP-hard) nếu L thỏa mãn
điều kiện 2 (nhưng không nhất thiết thoả điều kiện 1)
Lớp NP- đầy đủ (NP-completeness)
Người trình bày: Đoàn Thanh Hòa |Nhóm 5
Trang 26P vs NP
• Định lý: Nếu có một bài toán NP-đầy đủ nào giải
được trong thời gian đa thức thì P = NP
Nếu có một bài toán trong NP nào mà không giải được trong thời gian đa thức thì tất cả các bài toán NP-đầy đủ đều không giải được trong thời gian đa thức
Trang 27Người trình bày: Trần Văn Hòa|Nhóm 5
Menu2 …
Bổ đề: Nếu L là một ngôn ngữ sao cho L’ ≤p L với
L’ Є NPC, thì L là NP-khó Hơn nữa, nếu L Є NP thì L Є NPC.
Trang 28Người trình bày: Trần Văn Hòa|Nhóm 5
Menu2 …
Ví dụ
Trang 29• Phần tử bool (Boolean combinational
element) là các phần tử có đầu vào và ra thuộc {0,1} (0: sai, 1: đúng)
– Một phần tử bool dùng để tính 1 hàm boolean đơn, được gọi là một cổng logic (logic gate)
• Mạch bool (Boolean combinational circuit)
xây dựng từ các phần tử bool, được nối với nhau bằng các dây (wire).
Trang 31• Ta xét các mạch (circuit) chỉ có một đầu ra:
Các phép gán giá trị của một mạch là một tập các giá trị đầu vào.
Một mạch là thỏa mãn (satisfiable) nếu có một phép gán giá trị đầu vào sao cho đầu ra của mạch là 1.
Bài toán thỏa mãn mạch ( Circuit satisfiability) Circuit satisfiability)
Trang 32Người trình bày: Trần Văn Hòa|Nhóm 5
Menu2 …
• Bài toán khả năng thỏa mãn mạch là: “Cho
một mạch bool gồm các cổng AND, OR, NOT; nó có thỏa mãn được hay không ?”
Ví dụ
Trang 33<C> là chuỗi nhị phân được ánh xạ từ mạch C.
của C là đa thức trong k, việc kiểm tra từng cái một
mạch
• Bổ đề: Thỏa mãn mạch ( Circuit satisfiability) Є NP Circuit satisfiability)
• Bổ đề: Thỏa mãn mạch ( Circuit satisfiability) là NP-khó Circuit satisfiability)
• Định lý: Thỏa mãn mạch ( Circuit satisfiability) Є NPC Circuit satisfiability)
Bài toán thỏa mãn mạch ( Circuit satisfiability) Circuit satisfiability)
Trang 34– Các toán tử logic: các hàm boolean một hoặc hai biến:
(AND), (OR), (NOT), (kéo theo), (khi và chỉ khi)
– Các dấu ngoặc đơn
• Một công thức Φ là satisfiable (thỏa mãn được) nếu có
một phép gán giá trị để giá trị ra của Φ là 1
• SAT = {<Φ>: Φ là một công thức Bool thỏa mãn được}
Trang 35= (1 0) 1 = 1,
Vậy công thức này thuộc về SAT.
• Định lý: SAT Є NP-đầy đủ
Trang 361 1 1
Trang 37• 1 công thức boolean là một dạng 3-CNF nếu mỗi mệnh đề của nó có đúng 3 literal khác nhau.
• Ví dụ:
(x1 x1 x2) (x3 x2 x4) (x1 x3 x4)
Thỏa mãn 3-CNF
Trang 38• Định lý: 3-CNF-SAT Є NP-đầy đủ
Trang 41Người trình bày: Trần Văn Hòa|Nhóm 5
Menu2 …
• Áp dụng các qui luật của DeMorgan, chúng
Trang 43Tính đầy đủ NP
Người trình bày: Trần Hoài Nhân|Nhóm 5
Bài toán NPC …
CIRCUIT-SAT SAT 3-CNF-SAT CLIQUE
VERTEX-COVER HAM-CYCLE
TSP
SUBSET-SUM
Trang 44Ví dụ:
Bài toán CLIQUE (nhóm)
Một Clique là một đồ thị con đầy đủ của G
Kích thước của Clique là số đỉnh nó chứa
e
d c
Trang 45• Input: Đồ thị vô hướng G=<V,E>
• Output: Một Clique có kích thước cực đại
e
d c
Trang 46• Bài toán tìm nhóm là bài toán tối ưu.
• Chuyển thành bài toàn quyết định: Tìm Clique của đồ
thị vô hướng G có kích thước k
Nhận xét:
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 47• Tìm một nhóm k đỉnh thuộc V (k≤|V|).
• Kiểm tra k đỉnh này có tạo thành đồ thị đầy đủ
hay không Nếu đúng ta kết luận được nghiệm
Ngược lại ta tìm nhóm k đỉnh khác và tiếp tục kiểm chứng
Hình dung giải thuật:
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 48Ước tính độ phức tạp
• Tìm một nhóm k đỉnh
Có k*(k-1) cặp cần kiểm chứng
Độ phức tạp:
Có
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 49Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 50i Chứng minh CLIQUE NP
Việc kiểm tra nhóm k đỉnh là một Clique được
Nên CLIQUE NP.
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 51– Chọn Ф = C 1 C 2 ··· C k (k là hằng số) là một minh dụ
l 2 r , l 3 r
– Xây dựng đồ thị vô hướng G=(V, E) như sau:
+ Thay ba biến l 1 r , l 2 r , l 3 r của C r thành 3 đỉnh v 1 r , v 2 r , v 3 r
trong V
• lir và ljs không là phủ định của nhau
ii Chứng minh 3-CNF-SAT ≤P CLIQUE
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 52• Ví dụ: Ф = (x1 ¬x2 ¬x3)(¬x1 x2 x3)(x1 x2 x3)
ii Chứng minh 3-CNF-SAT ≤P CLIQUE
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 53• Việc xây dựng đồ thị G từ Ф được thực hiện trong
• Ta cần chứng minh:
Ф=1 G có một CLIQUE kích thước k
ii Chứng minh 3-CNF-SAT ≤P CLIQUE
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 54ii Chứng minh 3-CNF-SAT ≤P CLIQUE
• Chứng minh Ф=1 “Có Clique”.Có Clique”.
Giả sử Ф=1 Cr = 1 với mọi r=1 k
Cr (r=1 k)phải chứa ít nhất một biến lir có giá trị 1.
Ta có được k biến lir =1
Từ k biến đúng trên ta thành lập được tập V’ gồm k đỉnh.
Cần chứng minh V’ là một Clique Thật vậy, xét cặp đỉnh bất kỳ:
- vir , vjs tương ứng với hai biến đúng lir và ljs
- Nhận thấy vir , vjs thảo mãn điều kiện “Nối” Nghĩa là, (v i r , v j s ) E
Như vậy, V’ là một Clique.
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 55• Chứng minh “Có Clique”.Có Clique” Ф=1
Giả sử G có 1 Clique V’ kích thước k.
ii Chứng minh 3-CNF-SAT ≤P CLIQUE
Như vậy, Cr=1 (r=1 k) suy ra Ф=1.
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 56Một vertex-cover trong một đồ thị vô hướng G = (V, E), là
một đồ thị con G’ của G Sao cho:
Nếu e=(u,v) E thì ∈ E thì (u V’ ∈ E thì ) (v V’ ∈ E thì )
Kích thước của vertex cover là số đỉnh mà nó chứa
Bài toán VERTEX-COVER (vỏ phủ đỉnh)
Ví dụ:
e
d c
Đồ thị G=<V,E>
e
d c
{a,b,c} là một vertex-cover
kích thước 3
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 57Phát biểu Bài toán vertex-cover:
Đồ thị G=<V,E>
e
d c
{a,b} là một vertex-cover kích thước cực tiểu
Bài toán VERTEX-COVER (vỏ phủ đỉnh)
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 58• Bài toán vertex-cover là bài toán tối ưu.
• Chuyển thành bài toàn quyết định: Tìm Vertex-Cover
của đồ thị vô hướng G có kích thước k
Nhận xét:
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 59• Tìm một nhóm k đỉnh thuộc V (k≤|V|) Gọi là V’
• Kiểm tra V’ là một Vertox-Cover hay không Bằng cách: Với mỗi e=(u,v)E, kiểm tra xem uV’ hoặc vV’
Hình dung giải thuật:
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 60Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 62ii Chứng minh CLIQUE ≤P VERTEX-COVER
e
d c
f
e
d c
f
Phần bù:
Cho G=<V,E> phần bù của G là G’=<V,E’> sao cho:
Ví dụ:
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 63ii Chứng minh CLIQUE ≤P VERTEX-COVER
Phép biến đổi:
Vertex-Cover
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 64Chứng tỏ phép biến đổi trên là phép rút gọn:
- Phép biến đổi được thực hiện trong thời gian đa thức.
- G có Clique kích thướv k G’ có Vertex-Cover kích thước |V|-k
ii Chứng minh CLIQUE ≤P VERTEX-COVER
e
d c
f
e
d c
Trang 65ii Chứng minh CLIQUE ≤P VERTEX-COVER
Dễ dàng thầy rằng phép biến đổi được thực hiện
trong thời gian đa thức O(k*(k-1))
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 66ii Chứng minh CLIQUE ≤P VERTEX-COVER
Giả sử G có một Clique V’ V với |V’|=k.
Cần chứng mình: V\V’ là Vertex-Cover của G’
- (u,v)E’ (u,v)E
uV’ và vV’
uV\V’ hoặc vV\V’
Như vậy V\V’ là một vỏ phủ định của G’
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 67Giả sử G’ có một Vertex-Cover V’ V với |V’|=|V|-k Cần chứng minh: V\V’ là Clique của G
- Chọn u,v bất kỳ sao cho:
u,vV\V’ uV’ và vV’
Như vậy V\V’ là một nhóm của G
ii Chứng minh CLIQUE ≤P VERTEX-COVER
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 68Phát biểu bài toán
- Input: Đồ thị G
- Output: 1: Nếu G có chu trình Hamilton
Bài toán HAM-CYCLE (chu trình Hamliton)
Ví dụ:
e
d c
Trang 69Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 70Bài toán TSP (Người bán hàng)
Phát biểu bài toán:
• Output: Chu trình Hamilton có tổng chi phí nhỏ nhất
e
d c
Trang 73Chứng minh TSP NPC
ii Chứng minh HAM-CYCLE ≤ P TSP
Từ minh dụ G=<V,E> của bài toán HAM-CYCLE ta xây dựng minh dụ cho bài toán TSP như sau:
• Xây dựng đồ thị đầy đủ G’=<V,E’> sao cho:
1 nếu (i,j)E
• Bây giờ minh dụ của TSP là <G’,c,0>
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 74• Việc thành lập minh dụ cho TSP từ G=<V,E> được
• Ta cần chứng minh:
G có một chu trình Hamilton G’ có một tua có tổng
trọng số bằng 0
Chứng minh TSP NPC
ii Chứng minh HAM-CYCLE ≤ P TSP
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 75Bài toán SUBSET-SUM (tổng tập con)
Phát biểu bài toán:
Trang 76Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 77Một số kỹ thuật đối phó với những bài NPC
• Dùng “giải thuật xấp xỉ” (approximation algorithm) để tìm lời giải gần tối ưu
• Tìm giải thuật giải một số trường hợp của bài toán,
mặc dù không giải hết các trường hợp
• Sử dụng giải thuật có độ phức tạp hàm mũ nhưng hữu hiệu, ví dụ giải thuật đệ qui
• Đưa “Heuristic” vào giải thuật để giảm độ phức tạp, tuy nhiên có thể kết quả chỉ gần tối ưu Ví dụ, có thể
đưa “Heuristic” vào giải thuật đệ qui
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 78Đóng góp quan trọng nhất của vấn đề NPC trong
các lĩnh vực: Nó cho biết bài toán mới cần
giải quyết là “dễ” hay “khó”
Người trình bày: Trần Hoài Nhân|Nhóm 5
Trang 79Cảm ơn thầy và các bạn
đã lắng nghe!