Các lớp P và NP và các bài toán NP đầy đủ

19 699 1
Các lớp P và NP và các bài toán NP đầy đủ

Đ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

Mỗi ngành khoa học đều có cơ sở lý thuyết của nó. Khoa học máy tính (Tin học) cũng vậy: cơ sở lý thuyết của khoa học máy tính là lý thuyết oâtoâmat. Lý thuyết oâtoâmat nghiên cứu về các mô hình toán học cho các thiết bị tính toán (các máy tính toán), trên cơ sở đó cho phép chúng ta xác định những khả năng tính toán của chúng, nghĩa là xác định những gì chúng có thể tính được và những gì chúng không thể tính được. Nói cách khác, trên cơ sở các mô hình toán học cho các thiết bị tính toán, chúng ta có thể biết được những bài toán nào giải được bằng máy tính và những bài toán nào không giải được. Đi xa hơn, chúng ta có thể xác định ranh giới giữa những bài toán có thể tính được một cách thực tế (có thể xây dựng được các chương trình máy tính để giải) với những bài toán về nguyên tắc có thể tính được nhưng không thực tế (các bài toán nan giải, intractable problem) vì mất quá nhiều thời gian, ngoại trừ một số tình huống cụ thể có kích thước nhỏ. Lĩnh vực nghiên cứu lý thú này được gọi là Lý thuyết độ phức tạp tính toán (computational complexity theory).

LỜI NÓI ĐẦU Mỗi ngành khoa học đều có cơ sở lý thuyết của nó. Khoa học máy tính (Tin học) cũng vậy: cơ sở lý thuyết của khoa học máy tính là lý thuyết oâtoâmat. Lý thuyết oâtoâmat nghiên cứu về các mô hình toán học cho các thiết bị tính toán (các máy tính toán), trên cơ sở đó cho phép chúng ta xác định những khả năng tính toán của chúng, nghĩa là xác định những gì chúng có thể tính được và những gì chúng không thể tính được. Nói cách khác, trên cơ sở các mô hình toán học cho các thiết bị tính toán, chúng ta có thể biết được những bài toán nào giải được bằng máy tính và những bài toán nào không giải được. Đi xa hơn, chúng ta có thể xác định ranh giới giữa những bài toán có thể tính được một cách thực tế (có thể xây dựng được các chương trình máy tính để giải) với những bài toán về nguyên tắc có thể tính được nhưng không thực tế (các bài toán nan giải, intractable problem) vì mất quá nhiều thời gian, ngoại trừ một số tình huống cụ thể có kích thước nhỏ. Lĩnh vực nghiên cứu lý thú này được gọi là Lý thuyết độ phức tạp tính toán (computational complexity theory). Một cách trực quan, Thuật toán là một dãy hữu hạn các bước cho ta cách giải bài toán. Ta có thể hình dung cụ thể hơn: Thuật toán là một chương trình máy tính được viết bằng một ngôn ngữ lập trình nào đấy. Một cách toán học, Thuật toán là một máy Turing đơn định, viết tắt là DTM (Deterministic Turing Machine). Tập L gồm các Input được M chấp nhận (Yes) gọi là ngôn ngữ chấp nhận bởi máy M, kí hiệu L(M). Khi giải một bài toán cụ thể, không những ta chỉ cố gắng tìm một thuật toán giải được bài toán đã cho, mà còn muốn tìm một thuật toán “tốt nhất”. Trong nhiều trường hợp tốt nhất được hiểu là “nhanh nhất” , và ta đi đến khái niệm về độ phức tạp thời gian. Độ phức tạp của thuật toán chính là yếu tố cơ sở để phân loại các bài toán. Các bài toán mà thuật toán giải nó có độ phức tạp thời gian cấp từ đa thức trở xuống được gọi là thuộc lớp P. Các bài toán mà thuật toán giải nó là thuật toán không đơn định và có độ phức tạp thời gian là đa thức được gọi là thuộc lớp NP. Tìm hiểu về lớp các bài toán P và NP là điều cần thiết khi nghiên cứu về Lý thuyết oâtoâmat, trong khuôn khổ một tiểu luận chúng tôi xin được trình bày Các lớp P và NP và các bài toán NP đầy đủ. 1 Với thời gian có hạn không sao tránh khỏi sơ xuất, kính mong quý Thầy Cô và các anh chị học viên góp yù để tiểu luận hoàn chỉnh hơn. Xin chân thành cám ơn. 2 I. MÁY TURING: 1. Khái qt về máy Turing: Khi thiết kế và cài đặt một phần mềm tin học cho một vấn đề nào đó ta cần phải đưa ra phương pháp để giải quyết mà thực chất đó là thuật tốn giải quyết vấn đề này. Vì vậy, thuật tốn là khái niệm nền tảng của hầu hết các lĩnh vực của tin học. Trong những năm 30 của thế kỷ trước khi khoa học cơng nghệ phát triển, có nhiều bài tốn vẫn khơng tìm thấy thuật tốn để giải. Năm 1936 A. Turing đã đưa ra một công cụ để mô tả thuật toán gọi là máy Turing. Máy Turing là một máy giả định với bộ nhớ ngồi có dung lượng được xem như là vơ hạn. Trong bộ nhớ ngồi các giá trị được bố trí sao cho có thể truy cập đọc và sửa đổi được. Ta có thể xem máy Turing như là máy đốn nhậân một ngơn ngữ hình thức gọi là ngơn ngữ đếm được đệ quy. Đồng thời nó được sử dụng để mơ tả một lớp hàm quan trọng gọi là các hàm có thể tính được. Cũng như mọi mơ hình tính tốn của ta, máy Turing làm việc theo thời gian rời rạc. mỗi thời điểm, nó ở một trạng thái (nhớ) cụ thể mà số tất cả các trạng thái có thể là hữu hạn. Một đầu đọc-viết đọc các kí tự trên một băng, mỗi thời điểm một kí tự. Một cặp (q,a) xác định một bộ ba (q’, a’, m) mà q là trạng thái, a là kí tự và m (dòch chuyển). Điều đó có nghóa là sau khi đọc kí tự a ở trạng thái q, máy chuyển sang trạng thái q’, viết a’ ở vò trí của a (có thể a’= a, nghóa là không thay đổi) và dòch chuyển đầu đọc-viết tùy theo m. Nếu đầu đọc-viết sắp “rơi khỏi“ băng tức là một dịch chuyển trái (tương ứng phải) được chỉ thò khi máy đang đọc ô trái nhất (tương ứng phải nhất) của băng thì một ô trống mới được tự động thêm vào ở đầu mút tương ứng. Khả năng mở rộng vô hạn bộ nhớ ngoài có thể được xem như một đặc trưng phần cứng có sẵn của mỗi máy Turing. Dạng vào-ra của một máy Turing được đặc tả như sau : máy bắt đầu tính tốn bằng cách đọc kí tự trái nhất của một từ vào cho trước ở một trạng thái bắt đầu đặc biệt. Thơng tin vào được chấp nhận nếu tính tốn đạt đến một trạng thái kết thúc đặc biệt. Nếu máy được xem như một máy dịch chứ khơng phải một máy chấp nhận thì từ trên băng, sau khi máy đã đạt đến trạng thái kết 3 thúc, lập thành đường ra đối với từ vào đã cho. Khi đó một số kí tự nào đó trên băng có thể bỏ qua. Như vậy, băng có thể được xem vừa như kênh vào-ra vừa như bộ nhớ vơ hạn tiềm năng. Những khác nhau cơ bản giữa các máy Turing và các loại ôtômát khác đó là, một ôtômát hữu hạn chỉ có bộ nhớ trong được xác định bởi tập trạng thái hữu hạn của nó, băng vào khơng được dùng như bộ nhớù bổ sung, một ôtômát hữu hạn chỉ đọc thơng tin vào bằng cách qt từ trái sang phải. Trong một ôtômát tuyến tính giới nội, bộ nhớ ngồi bị giới hạn trên bởi kích thước của từ vào. Do đó, rõ ràng máy Turing tổng qt hơn các mơ hình tính tốn khác, mỗi thuật tốn có thể được thực hiện bởi một máy Turing. Thực chất, máy Turing là một mơ hình máy. Nó phân tồn bộ q trình hoạt độâng ra thành các bước thao tác rất đơn giản. Bản thân máy Turing là một mơ hình khái qt và đơn giản có thể mơ hình hố một q trình tính tốn bất kỳ. Trong phần này ta chỉ xét đến máy Turing đa băng. Máy Turing là một cơ cấu bao gồm: • Đầu chỉ huy (có thể thay đổi trạng thái). • k băng được giới hạn về phía trái và vơ hạn về phía phải (k là số tự nhiên). • Trên băng chia thành ô, mỗi ô được ghi vào một ký tự của bộ chữ ngồi T nào đó (bộ chữ hữu hạn). • Đầu chỉ huy có k đầu đọc viết tương ứng với k băng để đọc-viết. Đầu chỉ huy đọc một ô ở k băng một ký tự của bộ chữ T. sau khi viết xong nó có thể dịch chuyển sang phải hoặc sang trái ô nó đang đứng. Sau đó đầu chỉ huy có thể chuyển sang trạng thái mới. Tập các trạng thái là hữu hạn ký hiệu là Q. Bước tính tốn: Máy Turing (đầu chỉ huy) đang ở trạng thái q nào đó và chỉ vào các kí tự X 1 , X 2 , …., X k rồi thay thế chúng bằng các kí tự Y 1 , Y 2 , … , Y k vào đúng các ô tương ứng (Y i là kí tự của bộ chữ T). Sau đó các đầu đọc viết chuyển sang vị trí trái (hoặc phải, hoặc dừng) và trạng thái của đầu chỉ huy chuyển sang q’. Đó là một bước tính tốn. Ta có thể mơ tả qua hình vẽ sau: Ban đầu máy ở trạng thái : 4 X 1 X 2 X k q Đầu chỉ huy Băng 1 Băng 2 ………… Băng k Sau một bước tính toán máy ở trạng thái: 2/ Máy Turing đơn định đa băng: 2.1. Định nghĩa 1: ∑ = {X 1 , X 2 , …., X n } được gọi là một bảng chữ nếu nó hữu hạn và không rỗng. Mỗi phần tử của nó được gọi là kí tự. Một xâu trên bảng chữ ∑ là một dãy hữu hạn các ký tự được xếp liền nhau. Ví dụ : α = X i1 ……X it X ij ∑ |α| = t là kí hiệu doä dài xâu α 1 , α 2 là 2 xâu, ta có thể có α 3 = α 1 α 2 cũng là 1 xâu trên bảng chữ ∑ . Ta kí hiệu 1 xâu rỗng là có tính chất | | = 0 và = = Máy Turing là một công cụ để xử lí các xâu trên bảng chữ nào đó. 2.2. Định nghĩa 2: Ngôn ngữ trên bảng chữ : Giả sử có ∑ = {X 1 , X 2 , …., X n } là một bảng chữ. Kí hiệu ∑’={ : là một xâu trên ∑ bao gồm cả xâu rỗng}. Khi đó L được gọi là ngôn ngữ trên bảng chữ ∑ nếu L ⊆ ∑’, có nghĩa là L là tập con của ∑’. 2.3. Định nghĩa 3: 5 Y 1 Y 2 Y k q Đầu chỉ huy Băng 1 Băng 2 ………… Băng k Máy Turing đơn định đa băng là một bộ bảy M = (Q, ∑, ∆, δ, B, q o , q f ) trong đó: • Q là tập trạng thái hữu hạn khác rỗng, q o , q f Q • ∑ là bảng chữ ngoài • ∆ là tập con của ∑ và gọi là bảng chữ trong • δ là hàm chuyển, δ: • • với d i và i= 1…k. L, R, S tương ứng có nghĩa là chuyển sang trái, sang phải, dừng. Chú yù rằng hàm chuyển có thể là hàm bộ phận. • , B là kí tự trắng • q o là trạng thái đầu • q f là trạng thái kết thúc. Khi thiết lập máy Turing, quan trọng nhất là xây dựng hàm chuyển. 2.4. Hoạt động nhận biết xâu của máy Turing : Đầu tiên xâu α = a 1 …a n thuộc bảng chữ trong được nằm bên trái băng thứ nhất, các băng còn lại chứa ký tự trắng. Đầu chỉ huy ở trạng thái q o và các đầu đọc viết đều ở mép trái. Do hàm tác động vào q o : khi đó trạng thái q’ được xác lập. - Ở băng một được thay a 1 bởi a 1 ’ và d 1 để hướng hoạt động sau đó saïng trái (L), sang phải (R), hay dừng (S). - Ở băng 2 được thay B bởi và d 2 là hướng hoạt động. ……… - Ở băng k được thay B bởi và d k là hướng hoạt động. Ta có thể minh họa bằng hình vẽ sau: Ban đầu của máy ở trạng thái : 6 a 3 ε q Đầu chỉ huy Băng 1 Băng 2 ………… Băng k a 1 a 2 … a k ε ε ε … ε ε ε … Sau đó nhờ hàm chuyển máy có thể chuyển sang trạng thái sau nếu d 1 = R, d 2 = R, d 3 =S, …., d K = S. Một xâu vào (thuộc bảng chữ trong ) được gọi là nhận biết được bởi máy Turing M nếu xuất phát từ các đầu đọc viết đều ở mép trái của băng và máy ở trạng thái q o hoạt động đạt trạng thái kết thúc q f . Tập các xâu như vậy được gọi là ngôn ngữ nhận biết bởi máy Turing M. 2.5. Định nghĩa 4: Quá trình tính toán của máy Turing : Chúng ta định nghĩa hình trạng của máy Turing đơn định đa băng M = . • Hình trạng là một dãy xâu ,…, thuộc bảng chữ với (i= 1,2,…,k), = x i qy i và x i y i là một xâu nằm trên băng thứ i. Hình trạng đầu là (q o α, q o , q o , …, q o ). • Ký hiệu dãy xâu ( ,…, ) là D 1 thì một bước thực hiện của máy Turing là quá trình chuyển từ hình trạng D 1 sang D 2 và ký hiệu D 1 D 2 • Nếu có chỉ số t mà có D 1 D 2 …… D t , viết là D 1 D t . • Quá trình chuyển D 1 sang D t gọi là một quá trình tính toán của máy Turing M. 7 a 3 a’ 2 q Đầu chỉ huy Băng 1 Băng 2 ………… Băng k a' 1 a 2 … a k ε ε ε … a’ k ε ε … f. Định nghĩa 5: Xâu được nhận biết bởi máy Turing M Giả sử M = , là một xâu trong bảng chữ ( bảng chữ trong). Khi đó ta nói M nhận biết nếu (q o a 1 … a n , q o , …, q o ) ( ) với điều kiện thì . Đặt L (M) = {α: α ∈∆ * và α nhận biết bởi M}, khi đó L(M) được gọi là ngôn ngữ nhận biết bởi máy Turing M. Ví dụ: Nếu β = a 1 ….a t , ta đặt β -1 = a t a t-1 …a 1 , α là xâu đối xứng trên bảng chữ {0, 1} neáu α ∈ {ββ -1 , β1β -1 , β0β -1 }. Ta xây dựng máy Turing M = (Q, ∑, ∆, δ, ε, q o , q f ) hai băng với: Q = {q o , q 1 , q 2 , q 3 , q 4 , q 5 }, ∑ = {ε, X, 0, 1}, q f = q 5 , ∆ = {0, 1} Hàm δ thực hiện theo bảng sau: Trạng thái cũ Ký tự cũ Ký tự mới Trạng thái mới Băng 1 Băng 2 Băng 1 Băng 2 q o 0 ε 0, S X, R q 1 1 ε 1, S X, R q 1 ε ε ε, S ε, S q 5 q 1 0 ε 0, R 0, R q 1 1 ε 1, R 1, R q 1 ε ε ε, S ε, L q 2 q 2 ε 0 ε, S 0, L q 2 ε 1 ε, S 1, L q 2 ε X ε, L X, R q 3 q 3 0 0 0, S 0, R q 4 1 1 1, S 1, R q 4 q 4 0 0 0, L 0, S q 3 0 1 0, L 1, S q 3 1 0 1, L 0, S q 3 1 1 1, L 1, S q 3 0 ε 0, S ε, S q 5 1 ε 0, S ε, S q 5 Với xâu vào α = 01110, hình trạng ban đầu (q o 01110, q o ), ta có dãy các hình trạng sau: + (q 1 01110, Xq 1 ) + (0q 1 1110, X0q 1 ) + (01q 1 110, X01q 1 ) + (011q 1 10, X011q 1 ) 8 + (0111q 1 0, X0111q 1 ) + (01110q 1 , X01110q 1 ) + (01110q 2 , X0111q 2 0) + (01110q 2 , X011q 2 10) + (01110q 2 , X01q 2 110) + (01110q 2 , X0q 2 1110) + (01110q 2 , Xq 2 01110) + (01110q 2 , q 2 X01110) + (0111q 3 0, Xq 3 01110) + (0111q 4 0, X0q 4 1110) + (011q 3 10, X0q 3 1110) + (011q 4 10, X01q 4 110) + (01q 3 110, X01q 3 110) + (01q 4 110, X011q 4 10) + (0q 3 1110, X011q 3 10) + (0q 4 1110, X0111q 4 0) + (q 3 01110, X0111q 3 0) + (q 4 01110, X01110q 4 ) + (q 5 01110, X01110q 5 ) Vậy máy Turing M xây dựng như trên nhận biết được xâu α. Ta có thể chứng minh máy Turing trên nhận biết tất cả các xâu đối xứng trên bảng chữ {0, 1}. 9 2.6. Định nghĩa 6: Độ phức tạp tính toán thời gian của máy turing M là hàm T(n) nếu với mọi xâu w có độ dài n thì đều tồn tại một dãy hình trạng có nhiều nhất là T(n) bước nhận biết w (T(n) là số nguyên dương). Nếu có một xâu vào có độ dài n mà máy M không dừng thì đối với n đó T(n) không xác định. 2.7. Định nghĩa 7: Độ phức tạp dung lượng nhớ của máy Turing M là hàm nguyên dương S(n) nếu mọi xâu có độ dài n và với mọi băng thì S(n) là khoảng cách lớn nhất ( tính theo đơn vị oâ) kể từ mép trái các băng mà các đầu đọc –viết phải di chuyển. Nếu có một xâu vào có độ dài n mà một đầu đọc-viết nào đó không xác định được thì S(n) không xác định. 3. Máy Turing không đơn định đa băng: 3.1. Định nghĩa 8 : Máy Turing không đơn định đa băng Máy Turing không đơn định đa băng là bộ bảy M = , trong đó : • là tập trạng thái hữu hạn khác rỗng, q o ,q F Q • là bảng chữ ngoài • là tập con của và gọi là bảng chữ trong • , là kí tự trắng • q o là trạng thái đầu, q F là trạng thái kết thúc • , với là tập các tập con của 3.2. Định nghĩa 9 : Quá trình tính toán của máy Turing không đơn định M. Chọn một giá trị của giả sử là (r, (y 1 ,d 1 ), (y 2 ,d 2 ),……, (y k ,d k )) với d i = . Như vậy máy chuyển sang trạng thái mới r và x i được thay bằng y i . Sau đó nếu d i = L thì đầu đọc viết sang trái, d i = R thì đầu đọc viết sang phải hoặc d i = S thì đầu đọc viết dừng, ở đây i= 1,…,k . Hình trạng của máy Turing không đơn định đa băng tương tự như máy Turing đơn định đa băng. • Ký hiệu dãy xâu ( ,…, ) là D thì một bước thực hiện của máy Turing chính là một quá trình chuyển từ hình trạng D 1 sang D 2 và ký hiệu . • Nếu có D 1 D 2 … D t thì ta ghi D 1 D t , quá trình chuyển này được gọi là một quá trình tính toán của máy Turing M ( hay còn gọi là dẫn xuất). 3.3. Định nghĩa 10 : 10 [...]... chưa thể phân loại một cách chính xác là thuộc l p bài tốn có độ phức t p đa thức hay có độ phức t p khơng đa thức Giải được Khơng giải được Độ phức t p Giải được phức t p khơng Độ đa thức phải đa thức Khơng giải được Bài tốn NP (chưa phân loại) Phàn loại các bài tốn 1 L p P: 13 Định nghĩa 2: L p P là l p các ngơn ngữ được đốn nhận bởi máy Turing đơn định và độ phức t p tính tốn là đa thức Có thể phát... Định nghĩa 6: L p NP là l p các ngơn ngữ được đốn nhận bởi các máy Turing khơng đơn định trong giới hạn đa thức Có thể phát biểu một cách khác, l p NP chính là t p các bài tốn có thể giải được bằng thuật tốn đa thức khơng đơn định Các bài tốn trong l p P là trị liệu được, trong khi đó các bài tốn trong l p NP có tính chất là việc kiểm chứng xem một phỏng đốn tốt khơng đối với việc giải bài tốn có là... đó, l p bài tốn NP chưa thể phân loại là thuộc l p đa thức hay khơng Rõ ràng P NP, l p bài tốn NP cũng chứa những bài tốn thuộc l p đa thức thực sự, bởi vì nếu một bài tốn được giải bằng thuật tốn tự quyết có độ phức t p đa thức thì chắc chắn khi dùng thuật tốn khơng tự quyết cũng sẽ có độ phức t p đa thức Nhưng khơng rõ liệu P = NP hay khơng? Có thể nói đây là bài tốn trung tâm trong lý thuyết độ phức... tỏ một bài tốn thuộc l p P ta chỉ cần mơ tả một thuật tốn đa thức để giải nó Ví dụ về các bài tốn thuộc l p P:  Bài tốn tìm đường đi ngắn nhất trên đồ thị  Bài tốn luồng lớn nhất  Bài tốn luồng chi phí nhỏ nhất  Bài tốn phân việc  Bài tốn gh p c p trên đồ thị  Bài tốn cây bao trùm nhỏ nhất, v v… Bài tốn sau được xem “khó nhất” trong số các bài tốn thuộc l p P: * Gh p c p đầy đủ có trọng số nhỏ... biểu một cách khác là: một bài tốn được coi là thuộc l p P nếu tồn tại một thuật tốn đa thức để giải nó Các bài tốn thuộc l p này có độ phức t p là O(nk) hoặc nhỏ hơn O(nk), như vậy các bài tốn có độ phức t p hằng O(1), phức t p tuyến tính O(n) và logarith O(nlog an) đều là các bài tốn thuộc l p đa thức Do có sự “Bùng nổ tổ h p khi chuyển từ hàm đa thức sang hàm mũ, các thuật tốn có độ phức t p tính... khơng tự quyết mà có độ phức t p thuộc l p đa thức thì được gọi là một bài tốn đa thức khơng tự quyết tức là bài tốn NP Như vậy bài tốn người bán hàng rong là bài tốn thuộc l p NP Cho đến nay người ta chưa chứng minh được rằng tồn tại hay khơng một thuật tốn tự quyết có độ phức t p đa thức cho bài tốn người bán hàng rong Vì vậy, bài tốn này (là một bài tốn NP) chưa thể x p được vào l p đa thức hay khơng... tốn chính là yếu tố cơ sở để phân loại các bài tốn Một cách tổng qt, mọi bài tốn đều có thể chia làm 2 l p lớn là: giải được và khơng giải được L p giải được chia làm 2 l p con: l p các bài tốn trị được và l p các bài tốn bất trị Một bài tốn là trị được nếu như cho đến thời điểm hiện tại, có ít nhất một thuật tốn giải nó có độ phức t p tính tốn đa thức Một bài tốn là bất trị nếu như cho đến thời điểm... c p từ đa thức trở xuống, thì hiện tại về ngun tắc, các máy tính có thể “kham nổi”, vì vậy được gọi là các thuật tốn hiệu quả Còn các thuật tốn có độ phức t p tính tốn từ c p mũ trở lên, thì hiện tại chắc chắn là các máy tính khơng thể “kham nổi”, vì vậy được gọi là các thuật tốn khơng hiệu quả L p P là l p các bài tốn giải được hiệu quả hay những bài tốn thuộc l p P là dễ Như vậy để chứng tỏ một bài. .. khoảng 50 tỷ năm! Ta xét dưới đây các bài tốn thuộc l p sẽ được gọi là l p NP 2 L p NP: Phần lớn lý thuyết độ phức t p tính tốn dựa trên các bài tốn quyết định (decision problem) Câu trả lời cho các bài tốn này chỉ là yes (có hay đúng) hoặc no (khơng hay sai) Câu trả lời cho mỗi bài tốn quyết định tuỳ thuộc vào từng dữ liệu cụ thể (instance) của bài tốn đó Bộ dữ liệu cho câu trả lời đúng gọi là bộ... như bài tốn nhận biết liên h p Trong thực tế người ta ln ln có thể chứng minh 15 rằng bài tốn nhận biết (chẳng hạn bài tốn người du lịch) khơng phải “dễ hơn” bài tốn tối ưu hố tổ h p mà nó liên h p Đến nay ta vẫn chưa biết bài tốn bất đẳng thức tuyến tính ngun và bài tốn chu trình Hamilton có thuộc l p P hay khơng, nghĩa là có thuật tốn đa thức để giải hay khơng? Các bài tốn này được x p vào l p bài . vậy, bài toán này (là một bài toán NP) chưa thể x p được vào l p đa thức hay không đa 17 thức. Do đó, l p bài toán NP chưa thể phân loại là thuộc l p đa thức hay không. Rõ ràng P NP, l p bài toán. các bài toán thuộc l p P:  Bài toán tìm đường đi ngắn nhất trên đồ thị  Bài toán luồng lớn nhất  Bài toán luồng chi phí nhỏ nhất  Bài toán phân việc  Bài toán gh p c p trên đồ thị  Bài toán. là thuộc l p P. Các bài toán mà thuật toán giải nó là thuật toán không đơn định và có độ phức t p thời gian là đa thức được gọi là thuộc l p NP. Tìm hiểu về l p các bài toán P và NP là điều cần

Ngày đăng: 18/07/2015, 10:58

Từ khóa liên quan

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

Tài liệu liên quan