tiểu luận môn lý thuyết tính toán bài toán có giới hạn điều kiện

14 360 0
tiểu luận môn lý thuyết tính toán bài toán có giới hạn điều kiện

Đ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

Tiểu luận môn Lý thuyết tính toán Bài toán có giới hạn điều kiện Trong mục này chúng ta đi chứng minh một loạt các bài toán như: bài toán TSP được trình bày trong phần 10.1.4, là NP-đầy đủ. Về nguyên tắc, chúng ta làm như vậy bằng cách tìm sự giảm thời gian theo đa thức từ bài toán SAT cho mỗi vấn đề quan tâm. Tuy nhiên, có một bài toán trung gian quan trọng, được gọi là "3SAT" dễ hơn nhiều so với SAT để giảm các bài toán mẫu. 3SAT vẫn là bài toán về sự thỏa mãn các biểu thức logic, nhưng những biểu thức này có dạng rất phổ biến: AND của "mệnh đề", OR “biến” hoặc “biến phủ định”. Trong phần này sẽ trình bày một số thuật ngữ quan trọng về biểu thức logic. Sau đó ta đơn giản điều kiện cho mọi biểu thức để thỏa với các biểu thức ở dạng chuẩn 3SAT. Ta thấy rằng trong mỗi biểu thức logic E luôn có biểu thức tương đương F ở dạng chuẩn của 3SAT, kích cở của F có thể là theo cấp số nhân kích cở của E. Vì vậy, để giảm thời gian đa thức của SAT để 3SAT tối ưu hơn các thao tác đại số logic đơn giản. Ta cần chuyển đổi biểu thức E trong SAT thành biểu thức F ở dạng chuẩn 3SAT. Tuy nhiên, F không nhất thiết phải tương đương với E. Chúng ta chắc chắn rằng F thỏa mãn nếu và chỉ nếu E đúng. 10.3.1 Hình thức chuẩn cho biểu thức logic Sau đây là 3 định nghĩa: • Chữ A là một biến hoặc biến phủ định. Ví dụ x và ¬ y. Ta thường sử dụng y để thay thế cho ¬ y. • Mệnh đề A là OR hoặc AND của nhiều biến. Ví dụ là x, x ∨ y, và x ∨ y ∨ z. • Một biểu thức logic được cho là ở dạng chuẩn hội hay CNF, nếu nó AND các mệnh đề. Để rút gọn các biểu thức, chúng ta dùng ký hiệu thay thế như ∨ là tổng thay cho toán tử +, và ∧ là tích. Đối với tích, ta viết liền nhau, tức là không dùng toán tử ∧. Ví dụ 10.10: Biểu thức (x ∨ y ) ∧ ( x ∨ z) được viết lại (x + y )( x + z). Đây là dạng chuẩn tắc hội, vì AND (tích) mệnh đề (x + y) và (x + z). 1 Biểu thức (x + y z )(x + y + z)( y + z ) không phải CNF. Nó AND biểu thức (x + y z ), (x + y + z), và ( y + z ). Hai biểu thức cuối là mệnh đề, nhưng biểu thức đầu tiên không phải, vì là tổng của một biến và tích của hai biến. Biểu thức xyz là CNF. Lưu ý rằng một mệnh đề có thể chỉ có một biến. Như vậy, biểu thức của xyz là tích của ba mệnh đề (x), (y), và (z). Một biểu thức ở dạng chuẩn hội k (k-CNF) nếu nó tích của các mệnh đề, trong đó mỗi mệnh đề có tổng k biến riêng biệt. Chẳng hạn (x + y z ), (x + y + z), và ( y + z ) là dạng 2-CNF, bởi vì mỗi mệnh đề có đúng 2 biến. Tất cả giới hạn này trong biểu thức logic tạo ra một số bài toán riêng của chúng mà thỏa mãn biểu thức giới hạn. Vì vậy, ta xem xét các bài toán sau đây: • Bài toán CSAT: cho một biểu thức logic ở dạng CNF, nó có thỏa mãn không? • Bài toán fcSAT: cho biểu thức logic là k-CNF, nó có thỏa mãn hay không? Ta thấy rằng CSAT, 3SAT, và kSAT với mọi k lớn hơn 3 là NP-đầy đủ. Tuy nhiên, có thuật toán mất thời gian tuyến tính để giải 1SAT và 2SAT. 10.3.2 Chuyển đổi biểu thức sang dạng CNF Hai biểu thức logic được cho là tương đương nếu chúng có cùng một kết quả với bất kỳ giá trị của các biến trong biểu thức. Nếu hai biểu thức là tương đương, thì 2 Xử lý đầu vào lỗi Mỗi bài toán đã trình bày - SAT, CSAT, 3SAT,… - là ngôn ngữ trên bảng chữ cái 8-ký tự cố định, đôi khi ta có thể xem như các biểu thức logic. Một chuỗi không có thể dịch được là một biểu thức tồn tại trong ngôn ngữ SAT. Tương tự như vậy, khi ta xem xét biểu thức giới hạn, một chuỗi được tạo ra ở dạng biểu thức logic đúng, nhưng không phải là biểu thức ở của người dùng đặt ra, không phải là ngôn ngữ. Như vậy, thuật toán quyết định cho bài toán CSAT, Chằng hạn, nói "không" nếu đưa ra biểu thức logic là thỏa mãn, nhưng nó không phải CNF. chắc chắn hoặc là cả hai đều thỏa mãn hay không thỏa mãn. Vì vậy, chuyển đổi biểu thức bất kỳ thành biểu thức CNF tương đương là cách tiếp cận để làm giảm thời gian phi tuyến tính từ SAT thành CSAT. Sự giảm đó xác nhận CSAT là NP- đầy đủ. Tuy nhiên, mọi thứ không hoàn toàn đơn giản như vậy. Trong khi ta có thể chuyển đổi bất kỳ biểu thức nào thành CNF, việc chuyển đổi chúng mất nhiều thời gian. Đặc biệt, thời gian có thể tăng theo cấp số mũ chiều dài của biểu thức, và do đó chắc chắn mất rất nhiều công sức để tìm ra kết quả. May mắn, việc chuyển biểu thức logic bất kỳ thành biểu thức CNF chỉ có một cách mà là chuyển SAT thành CSAT, vì vậy ta chứng minh CSAT là NP-đầy đủ. Ta lấy ví dụ E là SAT và chuyển đổi thành F dạng CSAT, như vậy F thỏa mãn nếu và chỉ nếu E đúng. Không cần thiết rằng E và F là tương đương. Thậm chí không cần thiết E và F có cùng tập hợp các biến, một cách tổng quát, F có một siêu tập hợp các biến E. Việc chuyển SAT thành CSAT bao gồm hai phần. Đầu tiên, ta đưa tất cả ¬'s xuống cây biểu thức để phủ định các biến, ví dụ biểu thức logic trở thành AND và OR các biến. Chuyển đổi này hình thành biểu thức tương đương và mất thời gian theo hàm bậc nhất kích cở biểu thức. Trên máy tính thông thường, với một cấu trúc dữ liệu thiết kế chuẩn, nó chỉ mất thời gian tuyến tính. Biểu thức Quy tắc Bước thứ hai để viết biểu thức AND và OR các biến là tích các mệnh đề, … chuyển nó thành CNF. Bằng cách đưa ra các biến mới, ta có thể thực hiện việc chuyển đổi này ngay, đó là đa thức trong kích cở của biểu thức đã cho. Nhìn 3 chung, biểu thức F mới không tương đương với biểu thức E cũ. Tuy nhiên, F sẽ thỏa mãn nếu và chỉ nếu E đúng. Cụ thể hơn, nếu T được gán bằng E đúng, sau đó là phần triển khai của T, là S, mà làm cho F đúng, chúng ta nói S là phần triển khai của T nếu S gán cùng giá trị với T, mỗi biến T được gán, nhưng S cũng có thể gán một giá trị cho các biến mà T không đề cập đến. Bước đầu tiên là khử phủ định ¬’s và chuyển thành dạng ∨’s và ∧’s. Các quy tắc ta cần là: 1.¬(E ∧ F) => ¬(E) ∨ ¬(F). Quy tắc này cho phép chúng ta chuyển ∧ sang ∨. Đây là một trong các luật DeMorgan. 2.¬(E ∨ F) => ¬(E) ∧ ¬(F). Cho phép ta chuyển ∨ sang ∧. 3.¬ (¬ (E)) => E. Luật phủ định hai lần Định lý 10.11: Mỗi biểu thức logic E tương đương với biểu thức F, trong đó các biến đều phủ định. Hơn nữa, chiều dài của F là tuyến tính theo số lượng biểu tượng của E và F có thể được xây dựng từ E mất thời gian phi tuyến tính. Chứng minh: Dùng phương pháp quy nạp trên số lượng toán tử (∧, ∨, và ¬). Ta đưa ra một biểu thức tương đương F có ¬’s các biến, hơn nữa nếu E có ≥ 1 toán tử thì F không có nhiều hơn 2n – 1 toán tử. Vì F không cần có nhiều hơn một cặp dấu ngoặc đơn cho toán tử, và số lượng biến trong một biểu thức không vượt quá số lượng toán tử một lần, ta kết luận rằng độ dài của F là tuyến tính tỷ lệ thuận với độ dài của E. Quan trọng hơn, ta thấy rằng, vì xây dựng F khá đơn giản, thời gian cần để xây dựng F tỷ lệ thuận với chiều dài của nó, do đó tỷ lệ thuận với độ dài của E. Cơ sở: Nếu F có một toán tử, thuộc các dạng ¬x, x ∨ y, hay x ∧ y cho các biến x và y. Trong mỗi trường hợp, E tồn tại ở dạng đã cho, vậy F = E. Lưu ý rằng, vì E và F chỉ có một toán tử. F có nhiều nhất bằng hai lần toán tử của E trừ đi cho 1 Quy nạp: Giả sử phát biểu trên là đúng cho tất cả biểu thức có ít toán tử hơn E. Nếu toán tử đầu của E là ¬, E có dạng E1 ∨ E2 hoặc E1 ∧ E2. Trong cả hai trường 4 hợp, giả thuyết quy nạp áp dụng cho E1 và E2 có biểu thức tương đương F1 và F2. F = F1 ∨ F2 hoặc F = F1 ∧ F2 là một tương đương thỏa mãn E. E1 và E2 có a và b toán tử. Thì E có a + b + 1 toán tử. Giả thuyết quy nạp, F1 và F2 có nhiều nhất 2a - 1 và 2b - 1 toán tử. Như vậy, F có nhiều nhất là 2a + 2b - 1 toán tử, không quá 2 (a + b +1) - 1, hay hai lần số lượng các toán tử của E trừ đi 1. Bây giờ, xem xét trường hợp E có dạng ¬E1. Có ba trường hợp, tùy thuộc vào toán tử đầu tiên của E1. Lưu ý rằng E1 phải có một toán tử, hay E là một trường hợp cơ bản. 1. E1 = ¬E2 Luật phủ định kép, E = ¬(¬ E2) tương đương với E2. Vì E2 có ít toán tử hơn E, giả thuyết quy nạp được áp dụng. Chúng ta có thể tìm thấy F tương đương E2 trong đó ¬’s là các biến. Vì số lượng toán tử của F nhiều nhất là hai lần của E2 trừ đi 1, chắc chắn không quá hai lần số toán tử của E trừ đi 1. 2. E1 = E 2 ∨ E 3 . Theo luật DeMorgan E = ¬ (E2 ∨ E3) tương đương với (¬(E2)) ∧ (¬(E3)). Cả hai ¬(E2) và ¬(E3) có ít toán tử hơn F, vì vậy giả thuyết quy nạp chúng tương đương E2 và E3 có ¬’s các biến. Thì F = F2 ∧ F3 tương đương E. Ta cũng cho rằng số lượng toán tử trong F không quá lớn. E2 và E3 có toán tử là a và b. Thì E có a + b + 2 toán tử. Vì ¬(E2) và ¬(F3) có a+1 và b +1 toán tử, F2 và F3 được xây dựng từ các biểu thức này, bằng quy nạp, ta biết rằng F2 và F3 có nhiều nhất là 2(a + 1) - 1 và 2(b + 1) - 1 toán tử. Như vậy, F có nhiều nhất 2a + 2b + 3 toán tử. Con số này là gấp đôi số lượng toán tử của E, trừ đi 1 5 Mô tả thuật toán Thông thường, thời gian hoạt động là thời gian cần để thực thi trên máy Turing một băng, các thuật toán này không cần thiết phức tạp. Chúng ta biết rằng các bài toán được giải có thể được giải quyết trên máy tính bình thường, trên máy Turing nhiều băng và máy Turing một băng trong một khoảng thời gian tính theo đa thức là như nhau, mặc dù độ khó của các đa thức có thể khác nhau. Vì vậy, như ta trình bày một vài thuật toán khá phức tạp cần thiết để chuyển bài toán NP-đầy đủ thành bài toán khác, ta chấp nhận thời gian được đo bằng việc triển khai hiệu quả trên máy tính thông thường. Sự hiểu biết đó cho phép ta tránh các chi tiết liên quan đến nhiều băng và sẽ cho phép ta nắm những ý tưởng quan trọng của thuật toán. 3. E1 = E2 ∧ E3. Đối với biểu thức này, sử dụng luật DeMorgan thứ 2, về cơ bản giống (2). 10.3.3 NP-Tính đầy đủ của CSAT Bây giờ, ta cần chuyển biểu thức E là AND và OR các biến sang CNF. Như ta đã trình bày, để hình thành biểu thức F từ E với thời gian đa thức thỏa mãn nếu và chỉ nếu E thỏa mãn, ta phải loại bỏ sự chuyển đổi duy trì tính tương đương, và đưa ra một số biến mới cho F mà không xuất hiện trong E. Ta đưa ra "bẫy" bằng chứng của định lý CSAT là NP-đầy đủ, và sau đó cho một ví dụ về bẫy để xây dựng rõ ràng hơn. Định lý 10.13: CSAT là NP-đầy đủ. Chứng minh: Ta trình bày làm thế nào để chuyển SAT thành CSAT theo thời gian đa thức. Đầu tiên, sử dụng định lý 10.12 để chuyển đổi ví dụ đã cho SAT sang biểu thức E mà ¬ 's chỉ có các biến. Sau đó, ta trình bày cách chuyển đổi E thành CNF trong thời gian đa thức và thấy rằng F thỏa mãn nếu và chỉ nếu E đúng. Việc xây dựng F dùng phương pháp quy nạp trên độ dài của E. Các thuộc tính đặc biệt mà F có nhiều hơn chúng ta cần. Chính xác, chúng ta trình bày bằng quy nạp số lần xuất hiện biểu tượng ("chiều dài") E: a)F là CNF, và bao gồm nhiều mệnh đề n nhất. b) F xây dựng từ E trong thời gian lớn nhất là c|E| 2 . 6 c)Một phép gán T cho E làm E đúng nếu và chỉ nếu tồn tại phần mở rộng S của T mà làm cho F đúng. Cơ sở: Nếu E gồm một hoặc hai biến. Biến A là một mệnh đề, vậy E là CNF. Phương pháp quy nạp: Giả sử rằng mỗi biểu thức nhỏ hơn E có thể được chuyển đổi thành tích của các mệnh đề, và chuyển đổi này tốn nhiều nhất cn 2 thời gian trên biểu thức của chiều dài n. Có hai trường hợp, tùy thuộc vào toán tử đầu tiên của E. Trường hợp 1: E = E1 ∧ E2, giả thuyết quy nạp, biểu thức F1 và F2 được tính từ E1 và E2 là CNF. Chúng thỏa mãn phép gán E1, có thể thỏa F1, tương tự cho E2 và F2. Ta giả định rằng các biến F1 và F2 riêng biệt, trừ những biến xuất hiện trong E, tức là, nếu ta đưa các biến vào F1 hoặc F2, sử dụng các biến riêng biệt. Đặt F = F1 ∧ F2. Rõ ràng F1 ∧ F2 là biểu thức CNF nếu F1 và F2 đúng. Ta phải trình bày gán T cho E được triển khai để thỏa mãn phép gán cho F khi và chỉ khi T thỏa E. 7 Giả sử T thỏa E. Đặt T1 bị giới hạn bởi T, nó chỉ áp dụng cho biến có trong E1, và đặt T2 tương tự cho E2. Bằng giả thuyết quy nạp, T1 và T2 được triển khai để gán S1 và S2 thỏa F1 và F2. Lưu ý rằng, vì các biến và F2 có điểm chung là những biến số của E, và S1. Nhưng S là một phần mở rộng của T thỏa mãn F. Ngược lại, giả sử rằng T có một mở rộng S thỏa mãn F. Để T1 (., T2) bị T hạn chế các biến E1 (., E1). Hãy để S giới hạn biến F1 (., F1) là S1 (., S2). Sau đó, S1 là phần mở rộng của T1, và S2 là phần mở rộng của T2. Vì F và F1 và F2, S1 thỏa F1, và S2 thỏa mãn F2. Giả thuyết quy nạp, T1 (., T2) thỏa E1 (., E2). Như vậy, T thỏa E. Trường hợp 2: E = E1 ∨ E2. Như trong trường hợp 1, ta gọi giả thuyết quy nạp để khẳng định rằng đó là F1 và F2 là CNF có các thuộc tính: 1. Một phép gán cho E1 (., E2) thỏa E1 (., E2), nếu và chỉ nếu nó có thể được mở rộng để thỏa mãn phép gán F1 (., F2). 2. Các biến F1 và F2 riêng biệt, ngoại trừ các biến này trong E. 3. F1 và F2 là CNF Không chỉ đơn giản dùng OR của E1 và E2 để xây dựng F, vì biểu thức kết quả sẽ không là CNF. Tuy nhiên, một xây dựng phức tạp, có nhiều ưu điểm thực tế mà ta muốn duy trì sự thỏa mãn hơn là tương đương, sẽ tối ưu. Giả sử F1 = g1 ∧ g2 ∧ … ∧ gp Và F2 = h1 ∧ h2 ∧ ∧ hq, trong đó g’s và h’s là các mệnh đề. Đưa ra một biến mới là y và đặt: Ta phải chứng minh rằng phép gán T cho E, thỏa mãn E nếu và chỉ nếu T có thể được mở rộng đến phép gán S thỏa F. Giả sử T thỏa mãn E. Như trong trường hợp 1, đặt T1 (., T2) bị T giới hạn biến E1 (., E2). Vì E = E1 ∨ E2, hoặc T thỏa mãn E1 hoặc T thỏa E2. Ta giả sử T thỏa mãn E1. 8 Thì T1 mà T giới hạn các biến của E1, có thể được mở rộng đến S1, thỏa F1. Xây dựng phần mở rộng S cho T như sau: S sẽ thỏa biểu thức F được định nghĩa ở trên: 1. Đối với tất cả các biến x trong F, S (x) = S1(x). 2.S(y) = 0. Lựa chọn này làm cho tất cả các mệnh đề của F được mở rộng F2 đúng. 3.Đối với tất cả các biến x trong F2 nhưng không trong Fx, S(x) là T(x) nếu sau này được xác định, và nếu không có thể là 0 hoặc 1 Sau đó S làm tất cả các mệnh đề từ g’s đúng vì quy tắc 1. S làm tất cả các mệnh đề từ h’s đúng theo quy tắc 2 – gán cho y. Như vậy, S thỏa mãn F. Nếu T không thỏa E1, nhưng thỏa E2, thì tham số giống nhau, ngoại trừ S(y) = 1 theo quy tắc 2. Ngoài ra, S(x) phải thỏa với S2(x) bất cứ khi nào S2(x) được định nghĩa, nhưng S(x) chỉ xuất hiện trong S1 bất kỳ. Chúng ta kết luận rằng trong trường hợp này S thỏa mãn F. Giả sử rằng gán T cho E được mở rộng để gán S cho F và S thỏa mãn F. Có hai trường hợp, tùy thuộc vào những gì giá trị thật được gán cho y. Đầu tiên giả sử rằng S(y) = 0. Thì tất cả các mệnh đề của F xuất phát từ h’s đúng. Tuy nhiên, y không hỗ trợ mệnh đề có dạng (y + gi) xuất phát từ g’s, đều này có nghĩa là S đúng với mỗi giá trị g’s, S làm cho F1 đúng. Chính xác hơn, để S1 bị S hạn chế đến các biến F1. Thì S1 thỏa mãn F1. Bằng giả thuyết quy nạp, T1, mà bị T hạn chế đến các biến của E1, phải thỏa mãn Ex. Vì S1 là phần mở rộng của T1. Nên từ T1 thỏa mãn F1, T thỏa mãn E, đó là E1 ∨ E2. Chúng ta cũng phải xem xét trường hợp S(y) = 1, nhưng trường hợp này là đối xứng với kết quả ta đã nêu. Chúng ta kết luận rằng T thỏa mãn E bất cứ khi nào S thỏa mãn F. Bây giờ, chúng ta xem xét thời gian để xây dựng F từ E là bậc nhất theo n, n chiều dài của E. Bất kể trường hợp này áp dụng tách rời E thành E1 và E2, và xây dựng F từ F1 và F2. Đặt dn là ràng buộc trên về thời gian để xây dựng E1 và E2 từ E 9 cộng với thời gian xây dựng F từ F1 và F2. Có một phương trình tái phát cho T(n), thời gian để xây dựng F từ bất kỳ E theo chiều dài n, dạng của nó là: T( 1) = T(2) ≤ e với một vài hằng số e T ( n ) ≤ d n + c.maxo < i < n -i (T ( i ) + T ( n - 1 - i)) với n ≥ 3 Trong đó c là một hằng số chưa được xác định, vậy T(n) ≤ c n 2 Quy tắc cơ bản cho T(l) và T(2) là nếu E là một ký hiệu duy nhất hoặc một cặp ký hiệu, thì chúng ta không cần một đệ quy vì E chỉ có thể là một biến duy nhất, và toàn bộ quá trình có mất một khoảng thời gian e. Các quy tắc đệ quy sử dụng là nếu E bao gồm các biểu thức con E1 và E2 kết hợp với nhau bằng toán tử ∨ hay ∧, và E1 có độ dài là i, E2 có độ dài n - i - 1. Hơn nữa, việc chuyển đổi E sang F bao gồm hai bước đơn giản thay đổi E sang E1 và E2 và thay đổi F1 và F2 sang F mà chúng ta biết thời gian lớn nhất dn, cộng với hai lần chuyển đổi đệ quy của E1 sang F1 và E2 sang F2. Chúng tôi cần phải trình bày phương pháp quy nạp trên n là có một hằng số c với mọi n, thỏa T(n) ≤ c n 2 Căn cứ: Đối với n = 1, chúng tôi chỉ cần chọn c lớn bằng e. Quy nạp: Giả sử câu lệnh có độ dài nhỏ hơn n. Thì T(i) ≤ ci 2 và T (n - i - 1) ≤ c(n - i - l) 2 . Vì vậy: T (i) + T (n - i - 1) ≤ n 2 - 2i(n-i) - 2(n- i) + l (10.1) Vì n ≥ 3 và 0 <i <n - 1, 2i(n - i) nhỏ hơn n, và 2(n - i) nhỏ hơn 2. Vì vậy, phía bên phải của (10.1) nhỏ hơn n 2 - n, với mọi i trong phạm vi cho phép. Theo quy tắc đệ quy trong định nghĩa của T(n) thì T (n) ≤ dn + cn 2 - cn. Nếu chúng ta chọn c ≥ d, chúng ta có thể suy ra rằng T (n)< cn 2 với mọi n. Vì vậy, việc xây dựng F từ E mất thời gian 0(n 2 ). 10 [...]... thời gian tuyến tính theo chiều dài của E Bài tập cho phần 10.3 Bài tập 10.3.1: Chuyển các biểu thức logic sau đây sang dạng 3-CNF Bài tập 10.3.2: Bài toán 4TA-SAT được định nghĩa như sau: Cho biểu thức logic E, mà E có ít nhất 4 phép gán đúng được thỏa mãn Hãy chứng minh 4TA-SAT là NP-đầy đủ 13 Bài tập 10.3.3: Trong bài tập này, ta định nghĩa một họ của biểu thức 3-CNF Biểu thức En có n biến x1, x2,... đầu của E Tuy nhiên, ta có thể chọn một trong hai giá trị cho v, vì trong biểu thức con y + z, cả hai bên toán tử OR đúng theo T 10.3.4 NP -Tính đầy đủ của 3SAT Bây giờ, ta trình bày lớp biểu thức logic chẵn nhỏ hơn bài NP-đầy đủ thỏa mãn bài toán Lấy lại bài toán 3SAT là: • Cho một biểu thức logic E là tích của các mệnh đề, mỗi mệnh đề là tổng của ba biến riêng biệt, vậy E có thỏa mãn không? Mặc dù... En có n biến x1, x2, …, xn Đối với mỗi tập 3 số nguyên khác nhau từ 1 đến n, En có hai mệnh đề (x1 + x2 + x3) và ( x1 + x 2 + x3 ) En có thỏa mãn với hai trường hợp sau không? a n = 4 b n=5 Bài tập 10.3.3: Cho thuật toán thời gian theo hàm đa thức để giải bài toán 2SAT, … chứng minh nó thỏa mãn các biểu thức logic chỉ có hai biến trong một mệnh đề Gợi ý: Nếu một trong hai biến trong mệnh đề là sai,... biểu thức CNF một cách đơn giản để tính tích (AND) của các mệnh đề cho hai biểu thức con Vì vậy, ví dụ, nút biểu thức con x (y + z) có biểu thức CNF là tích của mệnh đề x, cụ thể là (x), và hai mệnh đề y + z, cụ thể là (v + y) ( x + z) Đối với nút OR, ta phải đưa ra biến mới Thêm nó vào tất cả các mệnh đề phía trái toán hạng, và ta phủ định mệnh đề bên phải toán hạng Ví dụ, hãy xem xét nút gốc trong... nếu ta đưa ra y1, y2, …, ỵ-2 đúng và yj-1, yj, …, ym-3 sai, ta đã thỏa mãn tất cả các mệnh đề (10.2) Như vậy, T có thể được triển khai để thỏa mãn các mệnh đề này Ngược lại, nếu T làm cho tất cả các x’s sai, nó không triển khai T làm (10.2) đúng Lý do là có m - 2 mệnh đề, và mỗi m - 3 y’s chỉ có thể làm cho một mệnh đề đúng, cho dù nó đúng hay sai Chúng ta đã trình bày cách để chuyển mỗi trường hợp E... mà không được phủ định nhóm đầu, chỉ phủ định các nhóm sau Kết quả là 11 Định lý 10.13: Phép gán T thỏa mãn E được triển khai thành phép gán S thỏa mãn F Chẳng hạn, T(x) = 0, T(y) = 1, và T(z) = 1 thỏa mãn E Ta triển khai T thành S bằng cách thêm S(u) = 1 và S(v) = 0 với S(x) = 0, S(y) = 1, và S(z) = 1 nhận được từ T Ta có thể kiểm tra rằng S thỏa mãn F Chú ý rằng trong việc lựa chọn S với S(u) = 1,...Ví dụ 10.14: Dùng định lý 10.13 để áp dụng cho một biểu thức đơn giản: E = x y + x (y + z) Hình 10.7 cho thấy các phân tích cú pháp của biểu thức này Mỗi nút là biểu thức CNF Hình 10.7 Biểu thức CNF là một mệnh đề chỉ có một ký tự Ví dụ, chúng ta thấy rằng nút lá được gán ký tự y có biểu thức CNF liên quan ( y ) Các dấu ngoặc đơn là không cần thiết, nhưng... để kiểm tra sự thỏa mãn NP-đầy đủ, như các định lý tiếp theo Định lý 10.15: 3SAT là NP-đầy đủ Chứng minh: Rõ ràng 3SAT thuộc NP, vì SAT thuộc NP Để chứng minh NP-đầy đủ, ta chuyển đổi CSAT thành 3SAT Sự chuyển đổi như sau Cho biểu thức CNF E = e1 ∧ e2 ∧… ∧ ek, ta thay mỗi mệnh đề ei như sau, để tạo ra biểu thức mới F thời gian để xây dựng F là tuyến tính theo chiều dài của E, và thấy rằng phép gán... và chỉ khi nó được triển khai thỏa mãn phép gán cho F 1 Nếu ei là một biến đơn, như (x) Ta đưa ra hai biến mới u và v Thay thế (x) vào bốn mệnh đề (x + u + v)(x + u + v)(x + u + v)(x + u + v) Vì u và v có trong 4 mệnh đề, cách duy nhất để thỏa mãn bốn mệnh đề là làm x đúng Như vậy, tất cả thỏa mãn các phép gán cho E được triển khai để thỏa mãn cho F 2.Giả sử ei là tổng của hai biến, (x + y) Ta đưa ra . Tiểu luận môn Lý thuyết tính toán Bài toán có giới hạn điều kiện Trong mục này chúng ta đi chứng minh một loạt các bài toán như: bài toán TSP được trình bày trong. biểu thức giới hạn. Vì vậy, ta xem xét các bài toán sau đây: • Bài toán CSAT: cho một biểu thức logic ở dạng CNF, nó có thỏa mãn không? • Bài toán fcSAT: cho biểu thức logic là k-CNF, nó có thỏa. từ bài toán SAT cho mỗi vấn đề quan tâm. Tuy nhiên, có một bài toán trung gian quan trọng, được gọi là "3SAT" dễ hơn nhiều so với SAT để giảm các bài toán mẫu. 3SAT vẫn là bài toán

Ngày đăng: 01/02/2015, 00:21

Từ khóa liên quan

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

Tài liệu liên quan