1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 577 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 504,07 KB

Nội dung

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 2 y , 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

Trang 1

Chương 4 TÍNH TOÁN KHÔNG TIỀN ĐỊNH

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

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

Trang 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:

x0=q0x x1  …  xk (1)

 thời gian tính toán x là TM(x) = k Nếu không có (1) thì TM(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à LM(x) = Max{ xi, 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à

TM(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à

LM(n) = Max{ LM(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 TM(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 LM(n)  p(n) với mọi n  0

Trang 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 { q1, q2, q3, q4, q5, q6, q7}, trong đó q1 là trạng thái đầu, q7 là trạng thái cuối Bảng hàm chuyển:

q0 (q1, B, R) (q2, B, R) (q9, 1, R)

q1 (q1, 0, R) (q1, 1, R) (q3, B, L)

q2 (q2, 0, R) (q2, 1, R) (q4, B, L)

q3 (q5, B, L) (q7, 0, L)

q4 (q8, 0, L) (q6, B, L)

q5 (q5, 0, L) (q5, 1, L) (q0, B, R)

q6 (q6, 0, L) (q6, 1, L) (q0, B, R)

q7 (q7, B, L) (q7, B, L) (q9, B, R)

q8 (q8, B, L) (q8, B, L) (q9, B, R)

q9

Có TM(n)  n + n + (n-2) + (n-2) + < n2/2 + O(n2);

LM(n) = n + 1

Trang 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 L1  1 và L2  2

- L1 gọi là rút gọn về L2 ký hiệu L1  L2 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)  L2  xL1 (Hình 1)

- Nếu L1  L2 thì L2  P  L1P, L1  P  L2 P

- Nếu L1  L2 và L2  L3 thì L1  L3

- L1, L2 tương đương đa thức, ký hiệu L1 P L2  L1  L2 và L2  L1

Hình 1: L1 rút gọn về L2

Trang 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

Cấu trúc của lớp NP:

Hình 2: Mô tả các lớp bài toán

Trang 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-gianF(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

Trang 7

Ví dụ bài toán phân tích thừa số Cho F(x1, x2) = x1x2 là tích của hai số nguyên x1,

x2, với x1 = x2 F(x) gần như bằng x Để đơn giản, giả thiết x1 và x2 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 2 y , 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

Trang 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

Trang 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 s2s, 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 < 2k 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 tk 

tk-1 + z Như vậy, tk = O(sk) = O(s2)

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

Trang 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 CTx, 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 

Trang 11

3 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 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 gian Chưa tìm được lời gải tốt hơn

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 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

Trang 12

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 đủ 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 mong muốn hoặc cho những ý nghĩa mạnh hơn

Trang 13

4.4 Một bài toán NP đầy đủ: bài toán xếp ngói

4.4.1 Phát biểu

Bài toán NP-đầy đủ xếp ngói: Hàm ngược của hàm cho trên các viên ngói vuông,

có giá trị là dòng đầu tiên của mỗi viên ngói và danh sách các viên ngói đã sử dụng Mỗi viên ngói là một trong 264 hình vuông chấp nhận có chứa các chữ cái Latinh thường ở 4 góc Hai viên ngói có thể xếp kề nhau nếu các chữ cái của một trong các cạnh hình vuông của cả hai viên có các chữ cái như nhau (Hình 1)

Hình 1: Các viên ngói có thể xếp kề nhau

Mục đích: Tiến hành rút gọn 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

Trang 14

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 [Có hay không? w: U(v, w)], trong đó U là máy Turing phổ dụng mô phỏng P(x, w) đối với v = px Có khó khăn nẩy sinh là U không chạy với P-thời gian Cần phải hạn chế U tới u phải dừng với giới hạn P-thời gian nào đó Làm thế nào để tạo được bậc cố định phù hợp đối với đa thức mô phỏng ( thậm chí bậc cao) thời gian P? Hãy lấy TM u(v, w) đối với v = 00…0 mô phỏng vào khoảng u2

bước của U(px, w) (thực chất là P(x, w)) Nếu số lượng o trung gian trong v đủ dài thì u sẽ có thời gian cho phép để mô phỏng P, mặc dù u chạy với thời gian bình phương, mặc dù thời gian của P tối thiểu có thể là lập phương (với xâu 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 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

Trang 15

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 x giải được nếu u(v, w) chạy

về phía trước đối với w và v = 00…01px Hình 2 là lượ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

Trang 16

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 thể chấp nhận xuất hiện trong tính toán với u trong mỗi input (Hình 3)

Hình 3: Một phần bảng sai

Trang 17

4.4.3 Chứng minh tính NP

Do input v và lời giải đoán nhận w là như nhau trong cả hai bảng nên hai

dòng đầu tiên là được chấp nhận Quá trình tính toán hiện thời bắt đầu trong vào đường thẳng thứ ba (hình 2) Một cách tự nhiên, trong một phần đầu của đường thẳng chuyển vị của một vài ô từ các ô trước của đường thẳng bị sai Có việc thăm từ trạng thái trong cả hai đường thẳng và ô trỏ vào giải một tổ hợp 4

ô kề nhau (hình 3)

Đối với x đã chọn, trạng thái thực của w thỏa mãn P(x, w) là tương đưong với trạng thái thực của bảng với mô tả dòng 1, không có trạng thái dừng, và hình mẫu chấp nhận được của 4 ô liền kề

Chuyển bảng thành bài toán xếp ngói:

- Mỗi hình vuông của bảng được tách rời bởi dấu “-”, mỗi biên ngói được tách rời bởi bởi “…”; bẻ mỗi hình vuông thành 4 mảnh, mỗi mảnh biểu thị một góc của viên ngói Nếu 4 hình vuông liền kề trong bảng là chấp nhận được thì hình vuông cũng là viên ngói chấp nhận được

- Tuy nhiê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

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

HÌNH ẢNH LIÊN QUAN

Hình 1: L 1  rút gọn về L 2 - bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định
Hình 1 L 1 rút gọn về L 2 (Trang 4)
Hình 2: Mô tả các lớp bài toán - bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định
Hình 2 Mô tả các lớp bài toán (Trang 5)
Dụng. Mỗi viên  ngói là  một trong 26 4  hình vuông  chấp  nhận  có chứa các  chữ cái  Latinh thường ở 4 góc - bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định
ng. Mỗi viên ngói là một trong 26 4 hình vuông chấp nhận có chứa các chữ cái Latinh thường ở 4 góc (Trang 13)
Hình 2: lược đồ không-thời gian tính u(v, w): - bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định
Hình 2 lược đồ không-thời gian tính u(v, w): (Trang 15)
Hình 3: Một phần bảng sai - bài giảng môn lý thuyết tính toán - ch4 tính toán không tiền định
Hình 3 Một phần bảng sai (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w