TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)

43 384 0
TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN (LUẬN VĂN THẠC SĨ)

IH TRƢỜN GI H Ọ O I Ọ TỰ N N - Nguyễn Thế Quyền TÌM ỂU Ộ P Ứ T P MỘT SỐ T UẬTTOÁN huy n ng nh o m to n h c cho m y t nh v hệ thống t nh to n số 46 35 H H G IH H G P S.TS N UYỄN H i - 2013 H H ỮU N Ự MỤ LỤ MỞ ẦU ƢƠN ẾN T Ứ UẨN BỊ 1.1 Máy Turing 1.1.1 Máy Turing 12 13 112 y uring tất ịnh 113 y uring không tất ịnh h i niệm thuật to n 121 h i niệm thuật to n 122 dụ thuật to n 123 uận ề Church-Turing 10 phức tạp thuật to n 11 1.3 phức tạp thời gian 11 1.3.2 Ví dụ c ch t nh ƢƠN phức tạp 12 BÀI TOÁN VÀ Ộ PHỨC T P CỦA BÀI TOÁN 14 2.1 Bài toán gì? 14 22 t số b i to n quan tr ng 15 23 phức tạp toán 20 ƢƠN P ÂN LỚP Á BÀ TOÁN T EO Ộ PHỨC T P 21 3.1 ớp c c b i to n P, P v mối quan hệ lớp P v lớp P 21 32 311 ớp P 21 312 ớp P 21 3.1.3 ối quan hệ lớp P v P 21 ớp c c toán NPC 21 Phép dẫn với thời gian a thức 21 322 ớp c c b i to n P 22 323 ối quan hệ c c lớp b i to n P, P v P 22 t số b i to n lớp P 23 3.2.4 1) Bài toán SAT ịnh lý ook 23 2) Bài toán 3SATIFIABILITY (3SAT) 30 3) Bài toán 3-DIMENSIONAL MATCHING (3DM) 33 4) Bài toán VERTEX COVER (VC) 37 5) Bài toán CLIQUE 39 6) Bài toán HAMILTON CIRCUIL (HC) 39 7) Bài toán PARTITION 39 8) Bài toán TRAVELING SALEMAN (TSP) 39 ẾT LUẬN 41 TÀ L ỆU T M ẢO 42 MỞ ẦU ý thuyết phức tạp l m t lĩnh vực trung tâm khoa h c m y t nh với c c kết qu li n quan chặt chẽ với ph t triển v sử dụng c c thuật to n thuyết ghi n cứu lý phức tạp giúp hiểu biết sâu sắc khám phá ranh giới vấn ể “có thể” tính toán với c c nguồn t i nguy n hợp lý Trong b n luận văn n y, trước hết tìm hiểu m t số kh i niệm quan tr ng lý thuyết thuật to n thuật to n v phức tạp thuật to n r n sở ó, bước ầu tìm hiểu m t số kh i niệm quan tr ng lý thuyết phức tạp kh i niệm b i to n, phức tạp b i to n uối tìm hiểu c c lớp phức tạp b i to n v mối quan hệ c c lớp phức tạp ó rong ó ặc biệt quan tâm ến lớp phức tạp P- ầy ủ N i dung b n luận văn bao gồm ba chương hƣơng 1: Trình bày tóm tắt kiến thức b n v tr ng tâm lý thuyết thuật to n m y uring ơn ịnh, m y uring không ơn ịnh, thuật to n, phức tạp thuật to n hƣơng 2: Gồm có ba phần ch nh trình b y kh i niệm b i to n, danh sách toán quan tr ng v kh i niệm phức tạp b i to n hƣơng 3: Gồm có hai phần ch nh trình b y lớp c c b i to n P, P v lớp toán NP- ầy ủ ể ho n th nh b n luận văn n y, thầy hướng dẫn – PG nhận ược giúp ỡ tận tình guyễn Hữu gự v b o góp ý c c thầy cô B môn in h c, Khoa Toán – – in h c v c c bạn ồng nghiệp xin c m ơn c c thầy cô v c c bạn ồng nghiệp trình l m luận văn hân ây, chúng giúp ỡ ƢƠN ẾN T Ứ UẨN BỊ rước nói thuật to n, h y xem xét m t mô hình t nh to n thể kh tốt c c thuật to n 1.1 Máy Turing (Turing machine) 1.1.1 Máy Turing Gồm có 1) ập trạng th i hữu hạn 2) ăng vô hạn hai ph a (về lý thuyết kéo d i tuỳ ý c hai phía) 3) ng tín hiệu v o, b ng t n hiệu tr n băng v m t ầu 4) ng chuyển trạng th i c-ghi q  B B B B a1 a2 an B B B t bước l m việc m y gồm - ầu c-ghi c t n hiệu tr n băng - ăn v o trạng th i v t n hiệu c tr n băng, ầu c-ghi ghi m t t n hiệu tr n băng, dịch chuyển sang ph i sang tr i m t ô v chuyển sang m t trạng th i n o ó uy ước m y bắt ầu l m việc trạng th i l trạng th i ầu m y, với input hữu hạn tr n băng, ầu c-ghi nằm ký tự b n tr i input c kết qu trung gian t nh to n lưu tr n băng tổ chức lưu v o trạng th i (nhưng ý l số trạng th i m t m y ph i hữu hạn) 1.1.2 Máy Turing tất định (DTM) ó thể ịnh nghĩa m t c ch hình thức m t m y uring tất ịnh sau l m t b M = ó: -  l b ng t n hiệu tr n băng (hữu hạn) -  l b ng t n hiệu v o (hữu hạn),    l tập trạng th i (trong) (hữu hạn) - - F l h m chuyển F x   Q x  x {L,R} - q0 trạng th i ban ầu (q0  Q) - t1 trạng th i kết thúc (t1  Q) ký tự trắng, -  , B   Ý nghĩa -  l c c t n hiệu v o ể ghi input -  c c t n hiệu c v ghi tr n băng H m chuyển F(q, a) = (q', a', ) cho b ng sau a q (q', a', D) - an ầu c c t n hiệu tr n băng l , băng kéo d i vô hạn c hai chiều tr i v ph i Xâu a1a2 qai ak ược g i l m t hình trạng m y, ó c c ak , qQ, có nghĩa l ầu c-ghi ang c ô thứ i, t n hiệu ang ược ại bước, m y trạng th i q, ầu hình trạng m y có dạng a1a2 ai-1qai ak c-ghi c l c t n hiệu ô tr n băng, heo h m chuyển F(q, ai) = (q', c, D), máy chuyển sang trạng th i q', ghi c l n băng (thay cho ai), ầu c-ghi chuyển sang ph i hay sang tr i m t ô tùy theo chuyển từ hình trạng: l R Ta nói m y H = a1a2 ai-1qai ak sang hình trạng: H' = a1a2 q'ai-1cai+1 ak = H' = a1a2 ai-1cq'ai+1 ak =R ý hiệu H  H' y l m việc bước cho ến gặp hình trạng m h m chuyển F(s,a) không x c ịnh gặp trạng th i kết thúc t1 Xâu x (input) tr n b ng t n hiệu  (tức l x  *) g i l m y ược o n nhận tồn d y hình trạng H0, H1, , Hm cho: H0  H1   Hm H0 l hình trạng ban ầu, input x ược ghi tr n băng, ầu c-ghi nhìn v o ký tự ầu ti n input, trạng th i m y l q0, tức l H0 = q0a1a2 ai-1ai an với x = a1a2 ai-1ai an Hm có trạng th i l t1 ập c c xâu (ngôn ngữ tr n ) thu c * g i l = {x | x*, x ược o n nhận m y ược o n nhận m y M } C c b i to n có nhiều loại - o n nhận m t t nh chất input - T nh to n m t gi trị - Chú ý: H m chuyển F không x c ịnh khắp nơi y dừng gặp trạng th i t1 kết thúc (cho tr lời "yes") dừng trạng th i kh c t1 (cho tr lời "no") gặp b (s, a) ó F(s, a) không x c ịnh (cũng cho tr lời "no") uy nhi n l m cho h m chuyển F trở th nh x c ịnh khắp nơi th m m t trạng th i kết thúc phủ ịnh qp, v với m i b (s, a) ó F(s, a) không x c ịnh cho m y chuyển sang trạng th i qp F(s, a) = (qp, , ) ếu kh c ngầm ịnh b ng t n hiệu v o l  = { ,1}, v chủ yếu ta xét v dụ tr n c c b i to n o n nhận ý hiệu q0 l trạng th i ầu, t1 l trạng th i kết thúc khẳng ịnh dụ y uring o n nhận ngôn ngữ {x | x có d i chẵn} B q0 (q1, 0, R) (q1, 0, R) (t1, B, ' ') q1 (q0, 0, R) (q0, 0, R) - ới input 11 ta có d y hình trạng (q0)010110  0(q1)10110  01(q0)0110  010(q1)110  0101(q0)10  01011(q1)0  010110(q0)  010110(t1) trạng th i cuối l trạng th i kết thúc o n nhận t1 1.1.3 Máy Turing không tất định (NTDM) ịnh nghĩa m y uring tất ịnh, ó h m chuyển F l h m a trị nghĩa F: Q x   2Q x  x {L,R} ại bước, chuyển sang bước sau m t c c kh tùy theo h m chuyển F ếu có m t nh nh o n nhận input x xem m y o n nhận input ó Gi sử F(s, a) = {(si1, ai1, Di1), (si2, ai2, Di2), , (sim, aim, Dim)} m t tập (có thể rỗng) ới hình trạng H với trạng th i s v t n hiệu a ược c m y chuyển ến m t c c hình trạng: H  Hi1, H  Hi2, , H  Him ó Hik có trạng th i sik v t n hiệu ược ghi l aik ó thể biểu diễn c c bước l m việc m y h ng ợi dụ B q1 (q2,0,L) (t1,' ',' ') q2 (q0,1,R) (q0,1,R) q0 (q1,1,R) ới w = (q0)010 1(q0)10 1(q1)10 111(q0) 111(q1)B (t1) 1.2 (q2)100 1(q0)00 11(q0)0 11(q1)0 hái niệm thuật toán (algorithm) Bài toán xử lý thông tin: Input  ông cụ  Output ới liệu v o (input) công cụ t nh to n v cho kết qu theo y u cầu b i toán Nói chung ta phân biệt m t số loại b i to n - hững b i to n o n nhận m t t nh chất (xét số nguy n n có ph i nguy n tố hay không, ) - hững b i to n t nh gi trị m t h m - hững b i to n tìm m t lời gi i (tìm ường i tr n thị, tìm chu trình Hamilton, ) ể gi i b i to n cần thuật to n 1.2.1 huật to n l công cụ xử lý thông tin hái niệm t c ch không hình thức thuật to n l việc mô t m t c ch ch nh x c qu trình thực tr n c c ối tượng ể nhằm ạt ược m t kết qu n o ó theo m t y u cầu cho trước ần ý ặc trưng hữu hạn thuật to n - ối tượng hữu hạn, thao t c hữu hạn - Cho kết qu qua m t số hữu hạn bước Ta phân biệt hai loại thuật to n tất ịnh v không tất ịnh ịnh thời iểm có không qu m t bước ối với thuật to n tất ối với thuật to n không tất ịnh thời iểm có m t số kh ể lựa ch n bước hông thường ể mô t thuật to n (tức l dẫn bước cần thực công việc gì) ta dùng m t văn b n hướng dẫn c c bước, m t khối, m t ngôn ngữ lập trình n o ó, m t ngôn ngữ tựa Pascal, 1.2.2 Ví dụ thuật toán dụ huật to n d y số tăng ổi chỗ trực tiếp Input n v d y số n phần tử a1, a2, , an utput y số a1, a2, , an ược xếp tăng ô t cụ thể c c bước i = k = i + ếu > ak ho n vị với ak k = k + ếu k ak then ho n vị gi trị với ak cho dựa tr n i, j v l không thỏa ược (ngược lại thỏa ược) o ó, 2(p(n)+1)2(v+1) mệnh ề nhóm thực nhiệm vụ chúng hóm mệnh ề G1 c mệnh ề nhóm { [i, ], [i,1], , [i,r]}, { Q[i, j ] , Qi, j ' }, G2 ≤ i ≤ p(n), {H[i,-p(n)], H[i,-p(n)+1], { H [i, j ] , H i, j ' }, G3 { [i,j, ], [i,j,1], ≤ j < j’ ≤ r , H[i,p(n)+1]}, ≤ i ≤ p(n) ≤ i ≤ p(n), -p(n) ≤ j < j’ ≤ p(n)+1 , [i,j,v]}, { S[i, j, k ] , S i, j, k '}, G4 ≤ i ≤ p (n) ≤ i ≤ p(n), -p(n) ≤ j≤ p(n)+1 ≤ i ≤ p(n), -p(n) ≤ j ≤ p(n)+1, ≤ k≤ k’≤ v {Q[0,0]}, {H[0,1]}, {S[0,0,0]}, {S[0,1,k1]}, {S[0,2,k2]}, …, { [ ,n,kn]}, { [ ,n+1, ]}, { [ ,n+2, ]}, …, { [ ,p(n)+1, ]} ó x = sk sk sk G5 n {Q[p(n),1]} Hình ăm nhóm mệnh ề ầu tiên fL(x) Nhóm lại G6 m b o chuyển đổi từ m t cấu hình sang cấu hình phù hợp với h m chuyển  cho M Với b (i, j, k, l), ≤ i < p(n), -p(n) ≤ j ≤ p(n)+1, nhóm n y gồm có mệnh ề sau: { H [i, j ] , Qi, k  ], S[i, j, l ] , H[i+1, j+ ]} { H [i, j ] , Q[i, k ] ], S[i, j, l ] , Q[i+1, k’]} { H [i, j ] , Q[i, k ] ], S[i, j, l ] , S[i+1, j,l’]} 28 ≤ k ≤ r, v ≤ l ≤ v, ó qk  Q-{qy, qN} gi trị , k’, l’ tho m n (qk, sl) = (qk’, sl’, ), qk {qY, qN}  = 0, k’ = k l’ = l hông khó ể thấy 6(p(n))(p(n) + 1)(r + 1)(v + 1) mệnh ề n y p ặt hạn chế mong muốn phép gán tho ì vậy, ta ược cho thấy c ch xây dựng c c nhóm mệnh ề từ G1 tới G6 thực c c nhiệm vụ ược nói tr n ếu x  L có m t t nh to n chấp nhận tr n x có chiều d i p(n) t hơn, tính toán bắt bu c m t phép gán ph i tho m n tất c c c mệnh ề C = G1  G2  G3  G4  G5  G6 gược lại, việc xây dựng với m t t nh to n chấp nhận l m t phép gán tho ược cho C ph i tương ứng tr n x Nó kéo theo fL(x) có m t phép gán thỏa ược v x  L ất c cần chứng tỏ l ối với ngôn ngữ cố ịnh, fL(x) ược xây dựng từ x thời gian bị chặn m t h m a thức n = |x| Cho trước L, ch n m t chương trình NDTM n o ó M o n nhận thời gian bị chặn m t a thức p Giới hạn a thức việc tính toán tập c c biến tập mệnh ề v ược suy trực tiếp m t chứng tỏ Length[fL(x)] l bị chặn tr n m t h m a thức n, ó Length[I] l d i m t chuỗi m hóa thể I theo m t lược m ho hợp lý Hàm ength “hợp lý” cho SAT ược cho trước, chẳng hạn | | | | hông mệnh ề n o chứa nhiều | | literal ( ó l tổng số literal), v sốhiệu cần thiết ể mô t literal ược giới hạn a thức Vì r v v ược cố ịnh trước v thêm vào số vào |U| |C|, có |U| = O(p(n)2) |C| = O(p(n)2) Do ó, Length[fL(x)] = |U|.|C| = O(p(n)4), v ược giới hạn m t hàm a thức n mong muốn ì vậy, biến ổi fL tính ược m t thuật to n thời gian a thức ta kết luận với  NP, fL l m t biến ổi a thức từ ầy ủ 29 ậy l P- 2) Bài toán 3-SATIFIABILITY (3SAT) i to n l m t biến thể hạn chế b i to n chứa úng ba literal ấu trúc ơn gi n l m cho trở th nh m t c c b i to n ược sử dụng r ng r i ể chứng minh c c kết qu c c biến ầu v o: ho tập c c mệnh ề ó mệnh ề P- ầy ủ kh c = {c1, c2, , cm} dựa tr n m t tập hữu hạn cho |ci| = với  i  m - âu hỏi ó tồn m t phép gán cho m thỏa m n tất c c c mệnh ề C? ịnh lý 3SAT NP- ầy ủ i) 3SAT  NP ễ d ng thấy thu c lớp P thuật to n không tất ịnh cần o n m t phép gán cho c c biến v kiểm tra thời gian a thức phép gán ó thỏa ược tất c c c mệnh ề có literal cho không ii) Ta xây dựng m t phép biến ổi Gi sử ta có m t ầu v o biến v th nh 3SAT l I = ( , ) với U = {u1, , un} l tập c c = {c1, , cm} l tập c c mệnh ề tr n Chúng ta xây dựng m t phép biến ổi biến ầu v o b i to n thành ầu v o b i to n 3SAT I’ = ( ’,C’) ập ’ chứa c c mệnh ề có úng literal tr n tập c c biến U’, cho C’ l thỏa ược v iệc xây dựng ' m t tập c c mệnh ề l I l thỏa ược ơn gi n l cần thay mệnh ề ri ng biệt cj thu c ’ j “tương ương” thu c ’ , dựa tr n c c biến v i biến bổ sung thêm Uj’ ược sử dụng c c mệnh ề Ta biểu diễn iều n y sau m  U '  U  UU 'j   j 1  30 ’ j v m t m C '  UC 'j j 1 ì thế, ta cần c ch xây dựng ’ j Uj’ từ cj Gi sử cj = {z1, z2, , zk} với zi l tất c literal ược dẫn xuất từ c c biến tập Cách mà Cj' Uj' ược xây dựng phụ thu c v o gi trị k Uj' = { yj1, yj2} rường hợp 1: k = 1: Cj' = {{z1, yj1, yj2}, {z1, yj1, y j }, {z1, y j , yj2}, {z1, y j , y j }} Uj' = {yj1} rường hợp 2: k = 2: Cj' = {{z1, z2, yj1}, {z1, z2, y j }} rường hợp 3: k = 3: Uj' = ; Cj' = {{cj}} rường hợp 4: k > 3: Uj' = {yji : i k-3} i Cj' = {{z1, z2, yj1)}}  {{ y j , zi+2, yji+1: i k-4}} k 3 {{ y j , zk-1, zk}} iếp theo, ể chứng minh phép biến ổi tr n l ph i chứng tỏ ược tập - thỏa ược ’ ’ thỏa ược v tập úng ắn, thỏa ược thỏa ược Gi sử cho thỏa ược phép gán t: U  {T,F} Ta chứng tỏ t ược mở r ng th nh phép gán t’: U’  {T,F} thỏa ược cho biến ’ ’ j ởi c c biến U’- ược phân chia v o c c tập xuất c c mệnh ề thu c ’ g n t ược mở r ng th nh c c tập j ’ j ’ j , nên ta cần phép c c mệnh ề ’ j n o, v trường hợp ta cần x c nhận lại tất c c c mệnh ề tập ’ j tương ứng ó l thỏa ược Chúng ta l m sau ới k ≤ 2: c c mệnh ề mở r ng t tùy ý cho ’ j (cho t’(y) = ’ j thỏa ược t với m i y  Uj’) 31 ì ới k = 3: Uj’ l rỗng v mệnh ề ới k > l thỏa ược t ì t l m t phép gán thỏa ược cho , n n ph i có t m t số nguyên l cho literal zl l  ’ j ếu z1 z2 l rue t rue (tức l l = l = 2) ta g n gi trị c c biến bổ sung l “False” (t’(yji) = F với ≤ i ≤ k-3)  ếu zk-1 zk l rue (tức l l = k-1 k) ta g n gi trị c c biến bổ sung l “ rue” (t’(yji) = với ≤ i ≤ k-3) c trường hợp lại, ta g n gi trị t’(yji) =  với ≤ i ≤ l-2 gán t'(yji) = F với l-1 ≤ i ≤ k-3 ễ d ng ể x c ịnh trường hợp lựa ch n n y mệnh ề - ’ j ’ ều thỏa ược, tất c c c mệnh ề gược lại, t’ l m t phép gán thỏa ược cho thu hẹp t’ cho c c biến l thỏa ược v ’ m b o tất c c c thỏa ược theo t’ , dễ d ng ể x c ịnh l m t phép gán thỏa ược cho o ó ’ thỏa ược iii) Phép biến ổi n y ược thực thời gian a thức Có: |U| = n; |C| = m rường hợp tạo mệnh ề rường hợp tạo mệnh ề rường hợp tạo mệnh ề rường hợp tạo k-1 mệnh ề mới, với k l số lượng c c literal tr n mệnh ề  I o ó có tổng c ng m*(k-1) mệnh ề I’ Vì k  2n nên có nhiều 2mn mệnh ề I’ Vì số lượng c c mệnh ề 2mn o ó, k ch thước thể k ch thước thể ’ bị giới hạn h m a thức bị giới hạn tr n m t h m a thức với Không khó ể x c ịnh ây l m t phép biến ổi a thức 32 3) Bài toán 3-DIMENSIONAL MATCHING (3DM) i to n ối s nh chiều xuất ph t từ b i to n cổ " người n ông v n phụ nữ, tất c i to n hôn nhân": Cho n ều chưa lập gia ình với m t danh s ch tất c c c cặp nam nữ sẵn s ng hôn nhân, liệu ể xếp ược n cu c hôn nhân cho tr nh ược chế a th ( a phu) v tất c m i người ều nhận ược m t người chồng (vợ) chấp nhận ương tự, b i to n c c tập W, X, v Y tương ứng với giới t nh kh c nhau, v cặp ba tập tương ứng với cu c hôn nhân người m chấp nhận ược với c người tham gia hận xét b i to n l P- ầy ủ, toán hôn nhân thông thường gi i ược thời gian a thức - i to n mô t sau ầu v o t tập  W x X x Y; với W, X, v Y l c c tập rời v ều có q phần tử - âu hỏi có chứa m t ối s nh l m t tập ’ hai phần tử n o ’  M cho | ’| = q v có chung th nh phần với nhau? ịnh lý 3DM NP- ầy ủ hứng minh i) 3DM  NP ễ d ng thấy m t tập từ tập thu c P, thuật to n không tất ịnh cần dự o n có q = |W| = |X| = |Y| c c b ba v kiểm tra thời gian a thức hai b ba n o có chung th nh phần ii) Chúng ta xây dựng phép biến ổi ho m t ầu v o l I = ( , ), với U = {u1, u2, , un} l tập c c biến C = {c1, c2, , cm) l tập c c mệnh ề Chúng ta ph i xây dựng m t phép biến ổi chuyển kiện tr n th nh kiện tương ứng b i to n tập gồm c c tập rời W, X, Y với |W| = |X| = |Y| v  W x X x Y cho M có chứa m t ối s nh v 33 l thỏa ược ập chứa c c b ba có thứ tự ược phân chia vào ba lớp (th nh phần) riêng biệt, nhóm lại theo chức dự ịnh chúng là: “truth-setting and fan-out”, “satisfaction testing”, “garbage collection” Thành phần TSFO (truth-setting and fan-out) ỗi th nh phần F tương ứng với m t biến ui  , v cấu trúc phụ thu c v o tổng số m c c mệnh ề rong ó, th nh phần F cho biến ui bao gồm c c phần tử "bên trong" ai[j]  X bi[j]  Y, l ≤ j ≤ m, c c phần tử n y không xuất b ba n o b n ngo i th nh phần n y, c c phần tử “bên ngoài" ui[j], u i  j   W, ≤ j ≤ m, c c phần tử n y xuất c c b ba kh c c b ba tạo n n th nh phần n y ược chia th nh tập sau Tit = {( u i  j  , ai[j], bi[j]): ≤ j ≤ m} Tif = {( ui[j], ai[j+1], bi[j]): ≤ j < m}  {(ui[m], ai[1], bi[m])} Vì c c phần tử bên {ai[j], bi[j]): ≤ j ≤ m } không xuất b ba n o b n ngo i tập Ti = Tit  Tfi, nên dễ d ng thấy ối s nh ’n o ều bao gồm xác m b ba từ tập Ti (hoặc tất c b ba ều thu c Tit , tất c f ều thu c tập i ) o ó coi th nh phần Ti l m t bắt bu c m t ối sánh ch n lựa thiết lập ui true hay false Như vậy, m t ối s nh M'  x c ịnh m t phép gán cho , với biến ui ược thiết lập true v M’ ∩ Ti = Tit Thành phần ST (satisfaction testing) ỗi th nh phần kiểm tra t nh thỏa ược tương ứng với m t mệnh ề cj C ó bao gồm hai phần tử "bên trong" s1[j] X s2[j]Y, phần tử bên j {ui[j], u i : ≤ i ≤ n} ược x c ịnh c c literal xuất mệnh ề cj c c b ba tạo n n th nh phần n y ược ịnh nghĩa sau j Cj = {(ui[j], s1[j], s2[j]): ui  cj}  {( u i , s1[j], s2[j]): u i  cj} 34 ập ì vậy, ối s nh '  M n o ều ph i chứa xác m t b ba từ tập Cj uy nhi n, iều n y ược thực ui[j] (hoặc u i  j ) literal ui cj ( u i  cj ) không xuất b ba thu c Ti ∩ M’, nghĩa l v phép gán x c ịnh l tho ược mệnh ề cj Thành phần GC (garbage collection) iệc xây dựng ược ho n th nh m t th nh phần G lớn G, gồm có phần tử b n g1[k] X g2[k]  Y, ≤ k ≤ m(n-1), v c c phần tử bên ui[j] u i  j  từ W ó l tập c c b ba sau: G = {(ui[j], g1[k], g2[k]),( u i  j , g1[k], g2[k]): ≤ k ≤ m(n-1), ≤ i ≤ n, ≤ j ≤ m} hư cặp g1[k], g2[k] ph i ghép với ui[j] u i  j , không xuất b ba n o thu c hư G ơn ’ - G m b o rằng, n o m t tập thỏa m n tất c c c r ng bu c c c th nh phần F , tập ó ược mở r ng th nh m t ối sánh cho M óm lại, thiết lập ược c c tập W, X, Y v W = {(ui[j], u i  j ): 1≤ i ≤ n,1 ≤ j ≤ m} X = A  S1  G1 ó A = {ai[j] 1≤ i ≤ n,1 ≤ j ≤ m} S1 = {s1[j] ≤ j ≤ m} G1 = {g1[j] ≤ j ≤ m(n-1)} Y = B  S2  G2 ó B = {ai[j] 1≤ i ≤ n,1 ≤ j ≤ m} S2 = {s1[j] ≤ j ≤ m} 35 -G sau G2 = {g1[j] ≤ j ≤ m(n-1)}  n  i 1    m  M = UTi   UC j   G  j 1  hú ý b ba thu c Hơn nữa, l m t phần tử thu c W x X x Y theo y u cầu chứa 2mn + 3m + 2m2n(n-1) b ba, nên dễ d ng thấy ược xây dựng thời gian a thức iii) ây ta ph i phép biến ổi tr n l chứa m t ối s nh - hứng minh ho t ’ v thỏa ược úng ắn việc chứng minh thỏa ược chứa m t ối s nh ’ n o ó →{ ,F} l phép gán thỏa ược cho húng ta xây dựng m t ối s nh M'  M sau: ối với mệnh ề cj  , lấy zj  {ui, u i : ≤ i ≤ n} ∩ cj l m t literal ược thiết lập gi trị true t (ph i tồn t thỏa ược cj)    M   UTi t    UTi f  t (ui )T   t (ui ) F t tập ’ có cấu trúc sau  m    Uz j  j , s1  j , s2  j  U G'    j 1 ó G’ l tập G ược ch n m t c ch ch nh x c, bao gồm tất c g1[k], g2[k] ui[j] u i  j  lại ễ d ng kiểm tra lại tập G’ ch n ược v kết qu l ’ l m t ối s nh - hứng minh chứa m t ối s nh Gi sử ta có m t ối s nh M’ thu c ’ thỏa ược (với việc xây dựng tr n) + ếu Ti ∩ M’ = Tif t(ui) = False, t( u i ) = True ặt kh c, iều kiện xây dựng ối s nh ’ nên lựa ch n b ba thu c ph i chứa u i  j  (vì Tif chứa c c b ba có chứa phần tử ui[j]), nên cj thỏa ược 36 j + òn Ti ∩ M’ = Tit t(ui) = True, ta lập luận tương tự cj thỏa ược Do C thỏa ược 4) Bài toán VERTEX COVER (VC) - ầu v o: Cho thị G = ( ,E) v số nguy n dương k tho m n k  |V| - âu hỏi: ồn hay không m t tập ’ cho | ’|  k v cạnh {u, e}  E m t hai ỉnh u e ph i thu c ’ ịnh lý VC NP- ầy ủ i) VC  NP ễ d ng thấy VC thu c P, thuật to n không tất ịnh cần dự o n m t tập tập ỉnh v kiểm tra thời gian a thức tập ó có chứa t m t ầu cạnh v có k ch thước phù hợp ii) Chúng ta xây dựng phép biến ổi ho m t ầu v o VC l I = ( , ), với U = {u1, u2, , un} l tập c c biến C = {c1, c2, , cm) l tập c c mệnh ề Chúng ta ph i xây dựng m t thị G = ( ,E) v m t số nguy n dương cho G có m t phủ ỉnh k ch thước ới biến ui  bé v tho  |V| ược , có m t th nh phần “truth-setting” Ti = (Vi,Ei) với Vi={ui, u i } Ei = {{ui, u i }}, tức l hai ỉnh ược nối m t cạnh hú ý phủ ỉnh n o chứa t ui u i ể phủ cạnh Ei ới mệnh ề cj  , có m t th nh phần “satisfaction test” Sj = (Vj’,Ej’), bao gồm ỉnh v cạnh kết nối chúng tạo thành m t tam giác: Vj’ = {a1[j],a2[j],a3[j]} Ej’ = {{ a1[j],a2[j]}, {a1[j],a3[j]}, {a2[j],a3[j]}} hú ý phủ ỉnh n o chứa t hai ỉnh Vj’ ể phủ cạnh Ej’ 37 Phần lại việc xây dựng l tập c c cạnh kết nối ký hiệu c c literal cj xj, yj zj ới mệnh ề cj  C, hi ó c c cạnh kết nối bắt nguồn từ ược j cho Ej” = {{a1[j],xj},{a2[j],yj},{a3[j],zj}} iệc xây dựng thể ược ho n th nh c ch thiết lập = n + 2m G = ( ,E) ó  n  i 1     m V = UVi   UV j'   j 1   n  i 1    m     j 1 m  E = U Ei   U E 'j   U E "j   j 1  ễ d ng thấy c ch xây dựng n y thực thời gian a thức òn ph i chứng tỏ l tho ược v G có m t phủ ỉnh k ch thước bé rước hết, gi sử ’ l m t phủ ỉnh G với | ’|  V’ ph i chứa t m t ỉnh từ tổng số t l n + 2m = Ti v ch nh x c hai ỉnh từ i v chứa t hai ỉnh từ ỉnh, n n thực l j heo c c ý ’ j hư chứa ch nh x c m t ỉnh từ ’ o ó sử dụng c ch m giao với th nh phần “truth-setting” ể thu ược phép gán t: U{T,F} Chúng ta cần cho t(ui) = ui V’ t(ui) = F u i V’ ể thấy phép gán n y l tho ba cạnh Ej” ược tất c c c mệnh ề cjC, ta xem xét hỉ có hai cạnh chúng ược phủ c c ỉnh thu c Vj’V’, m t cạnh chúng ph i ược phủ m t ỉnh iều n y có nghĩa literal tương ứng l ui u i mệnh ề cj l v ó mệnh ề cj l tho t l phép gán tho ược t ởi iều n y l ược cho 38 i V ’ hưng úng theo t, úng với m i cj nên suy gược lại, giử sử t tương ứng ’ { ,F} l m t phép gán tho bao gồm m t ỉnh từ ui t(ui) = T, u i t(ui) = F Ej” ược phủ, t tho i v hai ỉnh từ iều n y ược c c cj ỉnh cuối từ Sj hai cạnh lại Ej”, v ược cho j ỉnh từ Phủ ỉnh i ’ thu c m b o t m t ba cạnh ì vậy, ta cần bao gồm ’ ây ch nh l phủ ỉnh mong muốn 5) Bài toán CLIQUE - ầu v o: Cho thị G = ( ,E) v số nguy n dương k tho m n k  |V| - âu hỏi ồn hay không m t tập ’ cho | ’|  k m m i cặp ỉnh ’ ều ược nối m t cạnh E 6) Bài toán HAMILTON CIRCUIL (HC) Bài toán chu trình Hamilton toán xác ịnh xem với m t thị G = ( ,E) cho trước có chứa m t chu trình Hamilton (chu trình ơn chứa m i ỉnh G) i toán ược ph t biểu dạng b i to n ịnh sau: - ầu v o: Cho thị G = ( ,E) - âu hỏi G có chứa m t chu trình ơn i qua m i ỉnh hay không? 7) Bài toán PARTITION - Instance - uestion t tập hữu hạn v m t “tr ng số” s(a)  Z+ cho a  A ó tồn m t tập ’  A cho  s (a)   s (a) aA' aA A' 8) Bài toán TRAVELING SALEMAN (TSP) i to n người b n h ng ược ph t biểu dạng b i to n thị l Cho thị G tham số k nguy n, cạnh e G có m t tr ng số nguy n c(e) âu hỏi ặt l có tồn m t chu trình qua tất c c c ỉnh G (mỗi ỉnh úng m t lần) m tổng tr ng số c c cạnh ã i qua không vượt k không? Bài toán ược ph t biểu dạng b i to n ịnh sau: - ầu v o ho tập n th nh phố = {c1,…,cm} với kho ng c ch d(ci,cj)  Z+ m t số nguy n dương B 39 - âu hỏi ó tồn m t ho n vị  {1, 2, , m} cho:  m1    d (c  (i ) , c  (i !) )   d (c  ( m) , c  (1) )  B hay không?  i 1  Ta có ể chứng minh m t số toán NPC sau: SAT 3SAT 3DM VC PARTITION CLIQUE HC TSP Hình chứng minh m t số b i to n P 40 ẾT LUẬN hư b n luận văn n y, tr ng lý thuyết thuật to n, lý thuyết toán i tìm hiểu m t số kh i niệm quan phức tạp v phân lớp phức tạp c c rong lý thuyết thuật to n n i dung tr ng tâm thuật to n thông dụng v phức tạp c c thuật to n n y, rong lý thuyết phức tạp n i dung quan tr ng phương ph p gi i c c b i to n tối ưu tổ hợp v c c thuật to n xấp xỉ, x c suất, heuristics v ứng dụng Trong thời gian tới nghi n cứu tiếp n i dung n y 41 TÀ L ỆU T M ẢO Tiếng Việt Nguyễn Hữu iển, t số toán thuật to n, X Gi o dục, H Phan Huy h nh, Gi o trình ý thuyết t nh to n, H ẵng, i, ẵng, 1999 Tiếng nh Agrawal, M., Kayal, N and Saxena, N (2002) PRIMES is in P Tech Report Dept of Computer Science and Engineering Indian Inst of Technology Kanpur Ahuja, R.K., Magnanti, T.L and Orlin, J.B (1993) Network Flows Theory, Algorithms and Applications Prentice–Hall Dietzfelbinger, M (2004) Primality Testing in Polynomial Time LNCS 3000 Springer Garey, M.R and Johnson, D.B (1979) Computers and Intractability A Guide to the Theory of NP-Completeness W.H Freeman Homer, S (2001) Computability and Complexity Theory Springer Hopcroft, J.E., Motwani, R and Ullman, J.D (2001) Introduction to Automata Theory, Languages and Computation Addison-Wesley Longman Ingo Wegener (2005) Complexity Theory Springer 10 Martello, S and Toth, P (1990) Knapsack Problems Wiley 42 [...]... ược tr n m y Turing 10 1.3 ộ phức tạp của thuật toán ể nh gi hiệu qu của m t thuật to n, ta có thể nh gi phức tạp của thuật to n về mặt thời gian, tức l thời gian m y t nh l m việc v về không gian, tức l dung lượng b nhớ của m y t nh cần thiết ể thực hiện thuật to n khi nói ến phức tạp của thuật to n ta luôn hiểu l rong luận văn n y, phức tạp về thời gian 1.3.1 ộ phức tạp về thời gian Thời gian l m... thường ược xem l tốt 1.3.2 Ví dụ cách tính độ phức tạp dụ 1: huật to n tìm kiếm nhị phân Input d y số tăng a1, , an; số x utput tr lời x có thu c d y hay không ùng thuật to n ệ quy 1 (a, b) (tìm tr n oạn con [d, c]) ếu d = c v a(c) = x return "yes" 2 c = (a + b)/2 3 ếu a(c) = x return "yes" 4 ếu x < a(c) thì g i ể tìm nghiệm, g i nh gi (a, c-1) else g i (1, n) phức tạp T(2*k) = T(k) + 2 T(1) = 1 T(2) =... bài toán lý thuyết số ật m h c hiện ại có kết nối chặt chẽ với c c bài toán lý thuyết số, trong ó c c số rất lớn ược sử dụng từng ược h c trong trường, hầu hết chúng ta h c thuật to n về c ng c c phân số òi hỏi chúng ta ph i t nh to n mẫu số chung v ể l m ược iều ó, chúng ta sẽ phân chia các mẫu số th nh các thừa số nguy n tố ây l bài toán tạo thừa số nguyên tố (FACT) 2.3 ộ phức tạp của bài toán ối... ầu v o có l d i n} phức tạp của thuật to n phức tạp của b i to n ược ịnh nghĩa như sau TB(n) = inf {TA(n), Rất khó t nh ược TB(n) nghĩa l B(n), l thuật to n gi i b i to n } m thường chỉ biết ược cận dưới v cận tr n của ếu ta xây dựng ược m t thuật to n gi i b i to n phức tạp của bài toán B nhỏ hơn hoặc bằng (m t cận tr n) bất kỳ thuật to n ể chứng tỏ B(n) thì B(n)  TA(n), có phức tạp của thuật to n... l thời gian t nh to n với ầu v o X phức tạp của thuật t nh trong trường hợp xấu nhất T(n) = max {T(X), X có ếu d i bằng n} l thuật to n không tất ịnh, thì (n) l d i d i nhất trong c c nh nh l m việc với ầu v o X Tr n thực tế còn xét ến phức tạp trong trường hợp trung bình: T(X), X có Ttb(n) = ể ước lượng (bậc heta) d i bằng n số c c dữ liệu có thể với d in phức tạp của thuật to n, ta dùng kh i niệm... phụ thu c v o m y t nh ược sử dụng ti u chuẩn chung, ta sẽ o thực hiện ì thế, ể có m t phức tạp của m t thuật to n bằng số c c phép t nh ph i hi thực hiện cùng m t thuật to n, số c c phép t nh ph i thực hiện còn phụ thu c v o cỡ của b i to n, tức l sẽ l m t h m số phụ thu c lớn của ầu v o ì thế, lớn của ầu v o phức tạp của thuật to n rong những ứng dụng thực tiễn, chúng ta không cần biết ch nh x c h... từng vế v khử) = 2*k – 1 = 2*log2n - 1 = O(logn) 12 (c+1, b) dụ 2 (t nh phức tạp trung bình) y uring o n nhận ngôn ngữ {X | X  {0,1}* có t nhất m t chữ số 1} d i n l s = 2n ố dữ liệu có thể với ố c c X không có chữ số 1 (không ược o n nhận) l 1 (duy nhất " thời gian (X) = n, tỷ lệ không o n nhận l 0(n) "), = n/s ới i  n thì số c c X ( ược o n nhận) có X(i) = '1', v X(k) = ' ' với k < i, l 2n-i, với... toán ược mô t như trong v dụ sau ầu v o: M t số nguy n dương n âu hỏi n có nguy n tố không? Trong mỗi trường hợp, khi chúng ta tìm kiếm m t trong nhiều câu tr lời chính x c tiềm năng, chúng ta coi bài toán như l m t bài toán tìm kiếm Nếu chúng ta tìm kiếm m t gi i ph p tối ưu về mặt n o ó, chúng ta coi bài toán ó như l m t bài toán tối ưu (v dụ như trường hợp tìm kiếm m t ường i ngắn nhất) Thông thường,... liệu quân cờ m u trắng có m t chiến lược gi nh chiến thắng không? ó ph i con số ưa ra l m t số nguy n tố không? ó thể tho m n c c iều kiện quy ịnh không? Các bài toán bao gồm tất cả các vấn đề có thể xử lý được bởi máy tính và chúng ta có thể phân biệt một cách rõ ràng giữa các giải pháp chính xác và không chính xác Trong số này có các bài toán tối ưu và các bài toán với các giải pháp duy nhất như... bài toán đánh giá và các bài toán quyết định Các định dạng đầu vào khác nhau cho cùng một “bài toán” sẽ đưa đến các bài toán khác nhau, nhưng thông thường những bài toán này về mặt thuật toán rất giống nhau 2.2 Một số bài toán quan trọng 1) Các bài toán về ngƣời bán hàng Bài toán người bán hàng (TSP): là bài toán tìm kiếm m t chu trình ngắn nhất qua n th nh phố, mỗi th nh phố úng m t lần v quay trở ... luận văn n y, trước hết tìm hiểu m t số kh i niệm quan tr ng lý thuyết thuật to n thuật to n v phức tạp thuật to n r n sở ó, bước ầu tìm hiểu m t số kh i niệm quan tr ng lý thuyết phức tạp kh... i niệm b i to n, phức tạp b i to n uối tìm hiểu c c lớp phức tạp b i to n v mối quan hệ c c lớp phức tạp ó rong ó ặc biệt quan tâm ến lớp phức tạp P- ầy ủ N i dung b n luận văn bao gồm ba chương... lượng b nhớ m y t nh cần thiết ể thực thuật to n nói ến phức tạp thuật to n ta hiểu l rong luận văn n y, phức tạp thời gian 1.3.1 ộ phức tạp thời gian Thời gian l m việc m y t nh chạy m t thuật

Ngày đăng: 15/12/2016, 13:36

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan