bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định

18 576 0
bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định

Đ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

1 Chương 4. TÍNH TOÁN KHÔNG TIỀN ĐỊNH NỘI DUNG 4.1 Các khái niệm về độ phức tạp tính toán 4.2 Tính toán hẹp 4.3 Độ phức tạp của các bài toán NP 4.4 Một bài toán NP đầy đủ: bài toán sắp xếp TÀI LIỆU THAM KHẢO 1. Bài giảng về cơ sở tính toán tại địa chỉ http://www.cs.bu.edu/~lnd/toc/ 2. Dexter C. Kozen. Theory of Computation. Springer, 2006 3. Michael Sipser , Introduction to the Theory of Computation, 2nd edition, Couse technology 2005 4. Nguyễn Văn Ba. Lý thuyết ngôn ngữ và tính toán. NXB ĐHQG Hà nội, 2006. 5. Phan Đình Diệu. Lý thuyết ô tô mát và thuật toán. NXB ĐH & THCN, 1977. 2 4.1. Các khái niệm về độ phức tạp tính toán 4.1.1 Độ phức tạp với máy Turing Tiêu chuẩn đánh giá độ phức tạp: Xét máy Turing M với bảng chữ . - Thời gian tính toán: x *  quá trình tính toán trên x thực hiện bởi M: x 0 =q 0 x x 1  …  x k (1)  thời gian tính toán x là T M (x) = k. Nếu không có (1) thì T M (x) không xác định - Không gian tính toán (số ô cần dùng trên băng – dung lượng bộ nhớ ngoài): Hàm phức tạp theo không gian của M là L M (x) = Max{ x i , 1  i  k}. Định nghĩa các hàm phức tạp -Hàm phức tạp theo thời gian của M là T M (n) = Max{kx * , x=n và quá trình tính toán của M trên x gồm k bước}. - Hàm phức tạp theo không gian của M là L M (n) = Max{ L M (x)  x * , x=n và M tính được x}. - M có độ phức tạp tính toán đa thức  tồn tại đa thức p(n) sao cho T M (n)  p(n) với mọi n  0. - M có độ phức tạp không gian đa thức  tồn tại đa thức p(n) sao cho L M (n)  p(n) với mọi n  0. 3 Ví dụ: Cho  = {0, 1}. Xâu x * gọi là đối xúng  nếu đọc x từ trái sang phải và từ phải sang trái là như nhau. Hàm f:  *   * với f(x) = 1 nếu x đối xứng và f(x) = 0 nếu x không đối xứng. Xây dựng máy Turing M có bảng chữ {0, 1} và tập các trạng thái { q 1 , q 2 , q 3 , q 4 , q 5 , q 6 , q 7 }, trong đó q 1 là trạng thái đầu, q 7 là trạng thái cuối. Bảng hàm chuyển: 0 1 B q 0 (q 1 , B, R) (q 2 , B, R) (q 9 , 1, R) q 1 (q 1 , 0, R) (q 1 , 1, R) (q 3 , B, L) q 2 (q 2 , 0, R) (q 2 , 1, R) (q 4 , B, L) q 3 (q 5 , B, L) (q 7 , 0, L) q 4 (q 8 , 0, L) (q 6 , B, L) q 5 (q 5 , 0, L) (q 5 , 1, L) (q 0 , B, R) q 6 (q 6 , 0, L) (q 6 , 1, L) (q 0 , B, R) q 7 (q 7 , B, L) (q 7 , B, L) (q 9 , B, R) q 8 (q 8 , B, L) (q 8 , B, L) (q 9 , B, R) q 9 Có T M (n)  n + n + (n-2) + (n-2) + < n 2 /2 + O(n 2 ); L M (n) = n + 1. 4 4.1.2 Lớp P Lớp P là lớp các bài toán (ngôn ngữ) quyết định bởi một máy Turing đa thức. Một hàm f tính được với thời gian đa thức nếu có một máy Turing đa thức tính f. Luận đề Cook-Karp: Bài toán từ đối với ngôn ngữ L (x  L?) là quyết định được hiệu dụng  L  P. Cho hai bài toán L 1   1 và L 2   2 . - L 1 gọi là rút gọn về L 2 ký hiệu L 1  L 2 nếu tồn tại hàm f :  *   * sao cho f là tính được theo thời gian đa thức và f(x)  L 2  xL 1 (Hình 1). - Nếu L 1  L 2 thì L 2  P  L 1 P, L 1  P  L 2  P. - Nếu L 1  L 2 và L 2  L 3 thì L 1  L 3 . - L 1 , L 2 tương đương đa thức, ký hiệu L 1  P L 2  L 1  L 2 và L 2  L 1 Hình 1: L 1 rút gọn về L 2 5 4.1.3 Lớp NP Lớp NP là lớp các bài toán (ngôn ngữ) được thừa nhận bởi một máy Turing không tiền định đa thức. Định lý: Cho ngôn ngữ L  NP. Tồn tại một máy Turing tiền định M và đa thức p(n) sao cho M quyết định L với hàm phức tạp theo thời gian bị chặn bởi 2 p(n) . Cấu trúc của lớp NP: - Lớp tương đương đa thức C 1 là ở dưới lớp tương đương C 2 , ký hiệu C 1  C 2 nếu tồn tại một biến đổi đa thức từ mọi ngôn ngữ trong C 1 về mọi ngôn ngữ trong C 2 . - P  NP - Với mọi L 1  P và mọi L 2  L 1  L 2 - Một bài toán L là NP-khó nếu với mọi bài toán L’ NP  L’  L. - Một bài toán L là NP-đầy đủ nếu L NP và L là NP khó (Hình 2). Hình 2: Mô tả các lớp bài toán 6 4.2. Ví dụ về tính toán hẹp 4.2.1. Tìm hàm ngược Xét hàm P-thời gian F. Để thuận tiện, giả thiết F(x) = x (điều này thường thỏa mãn nếu F(x), x đều được giới hạn bởi đa thức). Hàm ngược của F nghĩa là, tìm được x  F -1 (y), tức là F(x) = y. Có thể có nhiều hơn 1 nghiệm nếu F là hàm nhiều- một, nhưng chỉ cần tìm 1 lời giải. Cần thử tất cả x chấp nhận được đối với F(x) = y. Giả sử hàm F được tính trong thời gian tuyến tính bởi một máy con trỏ. Chi phí cho việc tính hàm ngược của F là bao nhiêu? Không gian cần sử dụng là x + y + không-gian F(x) = O(x ), nhưng thời gian tính toán là O(x 2 x ) nên chắc chắn không thể thực hiện được. Hiện thời không có phương pháp được chứng minh trong trường hợp xấu nhất. Cũng không thể chứng minh bài toán ngược chỉ yêu cầu thời gian siêu tuyến tính. 7 Ví dụ bài toán phân tích thừa số. Cho F(x 1 , x 2 ) = x 1 x 2 là tích của hai số nguyên x 1 , x 2 , với x 1  = x 2 . F(x) gần như bằng x. Để đơn giản, giả thiết x 1 và x 2 là các số nguyên tố. Tính hàm ngược của F có nghĩa là phân tích F(x) ra thừa số. Cần phải kiểm tra bao nhiêu số nguyên tố? Mật độ của các số nguyên tố n-bit xấp xỉ là 1/(n ln2). Tuy nhiên, bài toán phân tích thừa số bằng phương pháp tìm kiếm vét cạn sẽ đòi hỏi thời gian hàm mũ. Trong thực tế, thuật toán tốt nhất được biết cho đến nay đối với bài toán kinh điển này chạy với thời gian khoảng y 2 , mặc dù có rất nhiều cố gắng trong hàng trăm năm của nhiều thế hệ các nhà khoa học tài giỏi. Hàm một chiều: Hàm x  F y mà (x  y) tính toán dễ, còn (y  x) tính toán khó với phần lớn x gọi là hàm một chiều. Tình trạng của chúng một phần do cảm tính ngây thơ trong lý thuyết tính toán. Nhiều hàm có vẻ như một chiều nhưng chưa được kiểm chứng. Tuy nhiên, một vài hàm đã được chứng tỏ là hàm một chiều. Nhiều vấn đề lý thuyết và ứng dụng dựa trên những hiện tượng có tính giả thuyết. 8 4.2.2. Bài toán tìm kiếm và bài toán NP Bài toán tìm kiếm: Cho trước x, tìm u thỏa mãn tân từ P(x, u) trong một thời gian x O(1) . Bài toán hàm ngược  Bài toán tìm kiếm Ví dụ: Bài toán tìm chu trình Hamilton C trong đồ thị G có thể coi như bài toán tìm hàm ngược của hàm f(G, C) với kết quả G, 0…0 nếu thực sự tồn tại chu trình C. Nói cách khác f(G, C) = 0…0. Bài toán tìm kiếm có thể gồm hai phần: (a) Bài toán quyết định: xem xét (đưa ra các chứng cớ) về sự tồn tại (b) Bài toán xây dựng: tìm thực tế w. Hai dạng bài toán trên sẽ có thời gian giới nội như nhau. Giả sử thuật toán A(x) tìm w thỏa mãn P(x, w) (nếu w tồn tại). Nếu A không thể tìm được w trong khoảng thời gian cho phép thì coi w không tồn tại. Tuy nhiên, cũng có thể sử dụng những chứng cớ của thuật toán để giải quyết bài toán quyết định. Theo một hướng khác, mỗi tân từ P có thể mở rộng thành P’((x, y), w) = P(x, w) & (w <y) đối với mỗi thuật toán quyết định nếu các chứng cớ tồn tại có thể sử dụng để tìm chúng (bằng tìm kiếm nhị phân với độ lặp w). Đáng tiếc là, đối với nhiều bài toán, thuật toán không biết được tồn tại hay không. 9 Ngôn ngữ của bài toán là tập các input thừa nhận được. Đối với bài toán tìm hàm ngược, đó chính là phạm vi (tập xác định) của f. Đối với bài toán tìm kiếm, đó chính là tập tất cả các x mà P(x, w) có ảnh hưởng đến một vài w. Ngôn ngữ NP là tập hợp tất cả các input thừa nhận bởi một máy Turing P-thời gian không tiền định. Toàn bộ 3 lớp ngôn ngữ - tìm kiếm, hàm ngược và NP- là đồng nhất. Tại sao một máy NP thừa nhận x nếu bài toán tìm kiếm với input x và tân từ P là giải được? Một cách đơn giản, máy có dấu nhắc điều khiển các chữ số của w và khiểm tra P(x, w). Ngược lại, với P nào sẽ phù hợp TM không tiền định M? P(x, w) kiểm tra chính xác nếu M thừa nhận x, khi bộ điều khiển lựa chọn trạng thái tương ứng chữ số của w. Rất thú vị là, các TM tiền định và không tiền định giới nội với không gian đa thưc là tương đương sức mạnh. Do đó sẽ cải tiến TM có hình trạng thừa nhận được đơn nhất. Mỗi xâu thừ nhận được sẽ được thừa nhận trong khoản thời gian s2 s , trong đó s là giới hạn không gian. Tiếp theo, cần kiểm tra A(x, w, s, k): TM có thể điều khiển từ hình trạng x đến hình trạng w trong khoảng thời gian < 2 k và không gian s. Để làm được điều đó, đối với mỗi z, cần kiểm tra A(x, z, s, k-1) và A(z, w, s, k-1) với thời gian t k  t k-1 + z. Như vậy, t k = O(sk) = O(s 2 ). Bài toán tìm kiếm là trò chơi với qui tắc chuyển P-thời gian và cùng một khoảng thời gian dịch chuyển. Một hệ thống lớn các bài toán giải được từ các dịch chuyển cho phép và/hoặc độ phức tạp khác giới nội đối với các qui tắc chuyển. 10 4.3. Độ phức tạp của các bài toán NP 4.3.1. Thế nào là bài toán NP Đã chứng tỏ rằng, các bài toán tìm kiếm, tìm hàm ngược, và kiểu NP là tương đương nhau. Không ai biết được rằng, liệu tất cả các bài toán đó có giải được trong P-thời gian hay không? Đó là câu hỏi (gọi là P=?NP) có lẽ là một trong các câu hỏi thú vị nhất trong lý thuyết khoa học máy tính. Các bài toán giải được với thời gian hàm mũ nhưng liệu có tồn tại hay không một thuật toán tốt hơn? Đối với mỗi bài toán, vấn đề tìm một thuật toán hữu hiệu có thể giống như một sự tuyệt vọng, trong khi đó các bài toán tương tự hoặc giảm bớt không đáng kể các điều kiện lại có thể giải được. Các ví dụ: 1. Bài toán qui hoạch tuyến tính: Tìm min C T x, với điều kiện Ax  b, trong đó A là ma trận cấp mxn. - Thuật toán đơn hình của Dantzig tìm được x nhanh với phần lớn A. Tuy nhiên, với một số A thì lại có độ phức tạp tính toán hàm mũ. - Bài toán trên có thuật toán P-thời gian nhờ phương pháp Elipsoid của Yudin Nemirovsky (1970). 2. Bài toán kiểm tra tính nguyên tố: Xác định một số nguyên p cho trước có phải là số nguyên tố hay không? - Trong trường hợp xấu nhất, thuật toán thử tất cả các ước có thể có của p có độ phức tạp hàm mũ thời gian 2 p . - Có các thuật toán nhanh hơn để giải bài toán này (sẽ xét trong 5.1). [...]... bài toán nào trong số các bài toán nêu trên hoặc bài toán tìm kiếm/tìm hàm ngược/NP được chứng tỏ có yêu cầu siêu-P-thời gian 11 4.3.2 Bài toán NP-đầy đủ Lý thuyết NP-đầy đủ là một thử nghiệm để trả lời câu hỏi trên Hàm P-thời gian f rút gọn một NP-tân từ p1(x) thành p2(x)  p1(x) = p2(f(x))., với mọi x p2 là NP-đầy đủ  tất cả các NP bài toán p1 đều có thể thu về p2 Thực chất là mỗi bài toán NP-đầy... mỗi bài toán NP/tìm kiếm P về bài toán xếp ngói Nhắc lại: Bài toán tìm kiếm là: cho trước x, hãy tìm w thỏa mãn một tính chất P(x, w) tính được với P-thời gian Trạng thái thực của w là một NP bài toán vì w có thể đoán nhận một cách không tiền định và xác thực trong khoảng P-thời gian 13 Các lập luận trung gian: Trước hết cần rút gọn bài toán trên về một bài toán NP chuẩn Ứng cử viên tự nhiên là bài toán. .. NP-đầy đủ như là trường hợp tồi tệ nhất của tất cả các NP bài toán khác Điều đó là một gợi ý tốt cho việc phải xây dựng thuật toán nhanh để giải bài toán NP-đầy đủ Mỗi P-thuật toán cho một bài toán NP-đầy đủ có thể cung cấp lời giải cho tất cả các NP bài toán khác Tại sao phải đối mặt với bài toán NP-đầy đủ? Có thể trình bày lại bài toán, tìm một bài toán tương tự dễ giải hơn và cung cấp những thông tin... ngắn không có trung gian) Do đó, bài toán NP P(x, w) được rút gọn về u(v, w) bằng ánh xạ x thành f(x) = 0…01px = v với v xác định bởi thời gian hạn chế đối với P Chú ý là, chương trình p của P(x, w) là cố định Tuy nhiên, nếu bài toán NP không thể giải được trong P-thời gian thì u -bài toán cũng không thể Một cách tương đương, bài toán [Có hay không? w: U(v, w)] giải được trong P-thời gian thì bài toán. .. Bài toán các đồ thị đẳng cấu: Cho hai đồ thị G1 và G2 Liệu G1 và G2 có đẳng cấu với nhau hay không? - Kiểm tra tất cả n! - Luks (1980) đã chỉ ra thuật toán với O(nd) để giải bài toán với O(nd) bước, trong đó d là bậc của đồ thị Thuật toán đó sẽ là P-thời gian nếu d = O(1) 4 Bài toán các cạnh độc lập (Bộ ghép): Tìm số lượng (lớn nhất) các cạnh độc lập trong một đồ thị đã cho - Có thể sử dụng thuật toán. .. mỗi thuật toán P-thời gian được nới rộng dòng thứ nhất đã cho thành bảng có thể giải tất cả các bài toán NP bằng biến đổi chúng thành bài toán xếp ngói như đã nêu 17 Nhiệm vụ về nhà: Tham khảo tài liệu 4 các vấn đề sau: Xét các công thức với các phép tính mệnh đề Bài toán thỏa được là: Có hay không một hàm làm cho công thức mệnh đề là đúng (SAT) Chứng minh SAT là NP-đầy đủ Chứng minh bài toán phủ các... đồ không- thời gian tính u(v, w): Hình 2: lược đồ không- thời gian tính u(v, w): Tạo n là thời gian (không gian) của u là v2 Mỗi dòng của bảng biểu diễn một cấu hình của u trong các thời điểm khác nhau Quá trình giải u là điền vào sau các dấu “?” tại bước thứ hai 15 Giả sử ai đó điền vào bảng sai, mà không thể thực hiện tính toán hiện thời tương ứng Yêu cầu mỗi một bảng sai có 4 hình vuông liền kề không. .. luồng cực đại để giải trong trường hợp - Trong trường hợp tổng quát có thể sử dụng thuật toán của J Edmonds Nhiều bài toán tranh cãi trong nhiều thập niên hoặc hàng thế kỷ, cuối cùng cũng tìm được lời giải Một vài cải tiến đối với các bài toán trên cho đến nay vẫn chưa có lời giải: 1 Bài toán qui hoạch tuyến tính: Chưa tìm được lời giải với x là số nguyên 2 Bài toán thừa số: Có thể giải với n n thời... 3 Bài toán đồ thị con đẳng cấu: trong trường hợp tổng quát, một đồ thị có thể đẳng cấu với đồ thị con của một đồ thị khác Chưa tìm được lời giải P-thời gian 4 Bài toán các đỉnh độc lập: Tìm số lượng các đỉnh độc lập (không có cạnh chung) trong một đồ thị đã cho Chưa có lời giải P-thời gian Đã chứng minh rằng, trò chơi cờ tuyến tính và một số trò chơi khác có độ phức tạp hàm mũ Tuy nhiên, không có bài. .. không? w: U(v, w)] giải được trong P-thời gian thì bài toán tìm kiếm cũng vậy Không biết sự lựa chọn trên là đúng hay không Cần phải rút gọn bài toán tìm kiếm u về bài toán xếp ngói 14 4.4.2 Rút gọn Tính u(v, w) (trong đó v = 00…01px) bằng TM hoạt động như một mảng tế bào ô tô mát 1-con trỏ, chạy v2 bước và ngừng nếu w không giải tân từ P Một cách khác, đưa vào một vòng lặp vô hạn Trạng thái thực . Chương 4. TÍNH TOÁN KHÔNG TIỀN ĐỊNH NỘI DUNG 4.1 Các khái niệm về độ phức tạp tính toán 4.2 Tính toán hẹp 4.3 Độ phức tạp của các bài toán NP 4.4 Một bài toán NP đầy đủ: bài toán sắp. không có bài toán nào trong số các bài toán nêu trên hoặc bài toán tìm kiếm/tìm hàm ngược/NP được chứng tỏ có yêu cầu siêu-P-thời gian. 12 4.3.2. Bài toán NP-đầy đủ Lý thuyết NP-đầy đủ là. là cố định. Tuy nhiên, nếu bài toán NP không thể giải được trong P-thời gian thì u -bài toán cũng không thể. Một cách tương đương, bài toán [Có hay không? w: U(v, w)] giải được trong P-thời

Ngày đăng: 17/10/2014, 07:30

Từ khóa liên quan

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

Tài liệu liên quan