1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài Lớp bài toán NPC

29 865 5

Đ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ài Lớp bài toán NPC

TIỂU LUẬN MÔN HỌC PHÂN TÍCH THIẾT KẾ THUẬT TOÁN. Đề tài: LỚP BÀI TOÁN NPC (Nondeterministic Polynomial Completeness) Giảng viên hướng dẫn : TS. Hoàng Quang Thành viên thực hiện : Nhóm 7 1. Trần Lê Ngọc 2. Huỳnh Quốc Lực 3. Trần Thị Hạnh 4. Võ Thị Tình 5. Nguyễn Thị Bích Liên NỘI DUNG NỘI DUNG • Phân loại bài toán • Lớp bài toán P • Lớp bài toán NP • Lớp bài toán NPC • Một số bài toán thuộc lớp NPC 2 Phân loại bài toán Phân loại bài toán Bài toán Giải được Không giải được Lớp không đa thức Lớp đa thức 2 lớp 2 lớp ? 3 NPC Lớp NP Lớp bài toán có độ phức tạp đa Lớp bài toán có độ phức tạp đa thức (Polynomial time – P) thức (Polynomial time – P) Lớp P Lớp P Là tập hợp tất cả những bài toán có thể giải được bằng thuật toán đơn định trong thời gian đa thức (tức là tồn tại thuật toán giải quyết nó với thời gian chạy đa thức). Là tập hợp tất cả những bài toán có thể giải được bằng thuật toán đơn định trong thời gian đa thức (tức là tồn tại thuật toán giải quyết nó với thời gian chạy đa thức). Độ phức tạp tính toán của những bài toán này là O(n k ), k hằng số. Độ phức tạp tính toán của những bài toán này là O(n k ), k hằng số. Những bài toán có độ phức tạp dạng O(k), O(log(n)), O(n), O(nlog(n)), n k đều là những bài toán thuộc lớp P. Những bài toán có độ phức tạp dạng O(k), O(log(n)), O(n), O(nlog(n)), n k đều là những bài toán thuộc lớp P. 4 Lớp bài toán có độ phức tạp không đa thức Lớp bài toán có độ phức tạp không đa thức • Tập các bài toán có độ phức tạp lũy thừa O(a n ) hoặc giai thừa O(n!) là không thuộc lớp đa thức • Các bài toán không thuộc lớp đa thức chỉ giải được với một độ lớn dữ liệu đầu vào nhất định. 5 Ví dụ: Cho một tập hợp có n phần tử, hãy liệt kê tất cả các tập con khác trống của tập hợp này. Ví dụ: Cho một tập hợp có n phần tử, hãy liệt kê tất cả các tập con khác trống của tập hợp này. Số tập con của một tập hợp có n phần tử là 2 n - 1. Lời giải tuy đã có nhưng khi thể hiện lời giải này bằng bất kỳ thuật toán nào thì phải tốn ít nhất 2 n -1 bước. N Số lần thực hiện Ghi chú 16 Khoảng vài chục ngàn Máy tính có thể giải 32 Khoảng 4 tỷ Cần những máy tính tốc độ cao và tốn rất nhiều thời gian 33 Khoảng 8 tỷ Lớp bài toán NP (Nondeterministic Lớp bài toán NP (Nondeterministic Polynomial time) Polynomial time) • Chúng ta đều biết rằng tính xác định là một trong ba đặc tính quan trọng của thuật toán. • Mỗi bước của thuật toán phải được xác định duy nhất và có thể thực thi được. • Nếu có sự phân chia trường hợp tại một bước thì thông tin tại bước đó phải đầy đủ để thuật toán có thể tự quyết định chọn lựa trường hợp nào. • Vậy thì điều gì sẽ xảy ra nếu ta đưa ra một "thuật toán" có tính không đơn định?  Tại một bước của "thuật toán", ta đưa ra một số trường hợp chọn lựa nhưng không cung cấp đầy đủ thông tin để "thuật toán" tự quyết định? 6 Lớp bài toán NP … Lớp bài toán NP … 7 Ví dụ: Ta có một lời chỉ dẫn khi đi du lịch : "Khi đi hết khu vườn này, bạn hãy chọn một con đường mà bạn cảm thấy thích. Tất cả đều dẫn đến bảo tàng lịch sử". Ví dụ: Ta có một lời chỉ dẫn khi đi du lịch : "Khi đi hết khu vườn này, bạn hãy chọn một con đường mà bạn cảm thấy thích. Tất cả đều dẫn đến bảo tàng lịch sử". Khu vườn Viện bảo tàng 1 2 3 Khách du lịch Máy tính Tại sao lại đề cập đến những thuật toán không đơn định dù máy tính không thể thực hiện một thuật toán như vậy? Tại sao lại đề cập đến những thuật toán không đơn định dù máy tính không thể thực hiện một thuật toán như vậy? … Go(“Khu vườn”); ??? Choose(1,2,3); Go(“Viện bảo tàng); Khi nghiên cứu về thuật toán không đơn định, dù không dùng để giải bài toán nào đi nữa, chúng ta sẽ có những hiểu biết về hạn chế của những thuật toán đơn định thông thường. Khi nghiên cứu về thuật toán không đơn định, dù không dùng để giải bài toán nào đi nữa, chúng ta sẽ có những hiểu biết về hạn chế của những thuật toán đơn định thông thường. 2 Ví dụ 2: Bài toán người bán hàng (TSP) - Có một người giao hàng cần đi giao hàng tại n thành phố. - Xuất phát từ một thành phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban đầu. - Mỗi thành phố chỉ đến một lần - Khoảng cách từ một thành phố đến các thành phố khác là xác định. Hãy tìm một chu trình sao cho tổng độ dài các cạnh nhỏ hơn M? Lớp bài toán NP … Lớp bài toán NP … - Liệt kê từng con đường có thể đi - So sánh chiều dài mỗi con đường tìm được với M + Tìm được một con đường phù hợp + Xét hết tất cả các con đường - Liệt kê từng con đường có thể đi - So sánh chiều dài mỗi con đường tìm được với M + Tìm được một con đường phù hợp + Xét hết tất cả các con đường - Chọn một con đường có thể và tính chiều dài của nó. - So sánh chiều dài này với M + Nếu <=M thì báo là thành công + Ngược lại báo chọn lựa sai - Chọn một con đường có thể và tính chiều dài của nó. - So sánh chiều dài này với M + Nếu <=M thì báo là thành công + Ngược lại báo chọn lựa sai - Dùng thuật toán đơn định  độ phức tạp không thuộc lớp đa thức - Dùng thuật toán không đơn định  độ phức tạp đa thức - Dùng thuật toán đơn định  độ phức tạp không thuộc lớp đa thức - Dùng thuật toán không đơn định  độ phức tạp đa thức 8 Lớp bài toán NP … Lớp bài toán NP … 9 Những bài toán khi được giải bằng thuật toán không đơn định mà có độ phức tạp đa thức. Những bài toán khi được giải bằng thuật toán không đơn định mà có độ phức tạp đa thức. Lớp NP Lớp NP • 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? • Lớp NP chứa những bài toán thuộc lớp P, bởi vì nếu một bài toán được giải bằng thuật toán đơn định có độ phức tạp đa thức thì chắc chắn khi dùng thuật toán không đơn định thì cũng sẽ có độ phức tạp đa thức. Giải được Không giải được Độ phức tạp đa thức Độ phức tạp không phải đa thức Bài toán NP chưa được phân loại P P NP Lớp NP đầy đủ Lớp NP đầy đủ (NP Completeness-NPC) (NP Completeness-NPC) 10 Có những bài toán đã biết là thuộc lớp NP nhưng không rõ có thuộc về lớp P hay không. (Tức là chúng ta có thể giải chúng dễ dàng trên một máy không đơn định (thuật toán không đơn định), nhưng chưa tìm ra được một lời giải hữu hiệu chạy trên máy thông thường (thuật toán đơn định) để giải chúng). Có những bài toán đã biết là thuộc lớp NP nhưng không rõ có thuộc về lớp P hay không. (Tức là chúng ta có thể giải chúng dễ dàng trên một máy không đơn định (thuật toán không đơn định), nhưng chưa tìm ra được một lời giải hữu hiệu chạy trên máy thông thường (thuật toán đơn định) để giải chúng). Những bài toán NP này lại thêm một tính chất nữa là: “Nếu bất kỳ một trong những bài toán này có thể giải được trong thời gian đa thức thì tất cả những bài toán thuộc lớp NP cũng sẽ được giải trong thời gian đa thức trên một máy đơn định”. Những bài toán NP này lại thêm một tính chất nữa là: “Nếu bất kỳ một trong những bài toán này có thể giải được trong thời gian đa thức thì tất cả những bài toán thuộc lớp NP cũng sẽ được giải trong thời gian đa thức trên một máy đơn định”. Những bài toán như vậy được gọi là lớp bài toán NP đầy đủ (NPC). Những bài toán như vậy được gọi là lớp bài toán NP đầy đủ (NPC). [...]... cả các bài toán NPC đều không giải được trong thời gian đa thức được trong thời gian đa thức NP 11 P P NPC Tính thu giảm đa thức (polinomial reducibility) 12 • Lớp NPC là lớp con của những bài toán khó nhất trong lớp NP • Công cụ chính để chứng minh một bài toán thuộc lớp NPC là ý tưởng về tính thu giảm đa thức • Bất cứ giải thuật nào giải được bài toán NP có thể được dùng để giải bài toán NPC nào... giải L Bổ đề: Bổ đề: Để chứng minh một bài toán mới L là NPC chúng ta Để chứng minh một bài toán mới L là NPC chúng ta cần chứng minh: cần chứng minh: 1 L thuộc lớp NP 1 L thuộc lớp NP 2 Một bài toán L’ Є NPC đã biết thì L’ thu giảm 2 Một bài toán L’ Є NPC đã biết thì L’ thu giảm được về L được về L 13 Tính thu giảm đa thức … 1 Bài toán người bán hàng (TSP): Cho một tập các thành phố và 1 Bài toán người... một thể hiện bất kỳ của bài toán NPC đã biết thành một thể hiện của bài toán mới  Giải BT này bằng giải thuật đã có để tìm ra một lời giải  Biến lời giải này về thành một lời giải của bài toán NPC đã biết Tính thu giảm đa thức … Định nghĩa: (Thu giảm về) Định nghĩa: (Thu giảm về) Ta nói rằng bài toán L11 thu giảm về bài toán L22 (kí Ta nói rằng bài toán L thu giảm về bài toán L (kí hiệu L11α L22)... thuộc lớp NP-Khó) (Nếu L chỉ thoã điều kiện 2 thì L thuộc lớp NP-Khó) Định lý: Định lý: Nếu có một bài toán NPC nào giải được trong thời gian đa Nếu có một bài toán NPC nào giải được trong thời gian đa thức thì P = NP thức thì P = NP Nếu có một bài toán trong NP nào mà không giải được trong Nếu có một bài toán trong NP nào mà không giải được trong thời gian đa thức thì tất cả các bài toán NPC đều không... 1) 17 Định lý Cook … Bài toán CSP … Ví dụ: • Mạch với đầu vào (x1,x2,x3) = (1,1,0) • Đầu ra =1  Mạch là thõa được • CSP là một bài toán NPC 18 • Mạch không xác định đầu vào • Đầu ra không xác định  Mạch là không thõa được Định lý Cook • Vì kỹ thuật rút gọn dựa trên một bài toán có sẵn biết NPC để chứng minh một bài toán NPC khác, chúng ta cần một bài toán NPC đầu tiên Đó là bài toán thỏa được mạch... (1971) đã đề xuất chứng minh trực tiếp đầu tiên rằng bài toán thoã mạch logic-CSP là bài toán NPC Định lý Cook: “Nếu tồn tại một giải thuật thời gian đa Định lý Cook: “Nếu tồn tại một giải thuật thời gian đa thức để giải bài toán thoả mãn mạch logic thì tất cả mọi thức để giải bài toán thoả mãn mạch logic thì tất cả mọi bài toán trong lớp NP có thể giải được trong thời gian đa bài toán trong lớp NP có.. .Lớp NPC … Định nghĩa: Chúng ta nói L là bài toán thuộc lớp NPC nếu các Định nghĩa: Chúng ta nói L là bài toán thuộc lớp NPC nếu các khẳng định dưới đây đều đúng: khẳng định dưới đây đều đúng: 1 L Є NP 1 L Є NP 2 Với mọi L’ Є NP thì L’ ≤ pL (Với mọi ngôn ngữ L’ thuộc 2 Với mọi L’ Є NP thì L’... trong lớp NP có thể giải được trong thời gian đa thức” thức” 19 Một số bài toán NPC • Hàng nghìn bài toán khác nhau được biết là NPC CIRCUIT-SAT CIRCUIT-SAT SAT SAT 3-CNF-SAT 3-CNF-SAT CLIQUE CLIQUE VERTEX-COVER VERTEX-COVER HAM-CYCLE HAM-CYCLE 20 TSP TSP SUBSET-SUM SUBSET-SUM Bài toán thỏa được công thức - SAT • Một trạng thái của bài toán SAT là một công thức boolean Φ gồm: 1 Các biến boolean: x1, x2,... của STP 1 Bài toán TSP: Cho một 1 Bài toán TSP: Cho một tập các thành phố và tập các thành phố và khoảng cách giữa các cặp khoảng cách giữa các cặp thành phố Hãy tìm một lộ thành phố Hãy tìm một lộ trình đi qua tất cả các thành trình đi qua tất cả các thành phố sao cho tổng khoảng phố sao cho tổng khoảng cách của lộ trình nhỏ hơn M cách của lộ trình nhỏ hơn M 2 Bài toán HCP: Cho một 2 Bài toán HCP:... dấu ngoặc tròn để nhóm các toán tử và toán hạng nếu cần làm thay đổi thứ bậc (độ ưu tiên) của các toán tử: ¬ (cao nhất), rồi Λ và cuối cùng là V • Một công thức Φ là thỏa mãn được nếu có một phép gán giá trị để giá trị ra của Φ là 1 SAT = {: Φ là một công thức thỏa mãn được} • • 21 SAT là NPC Để chứng minh vấn đề này chúng ta chứng tỏ: – – SAT ∈ NP CIRCUIT-SAT ≤ p SAT Bài toán SAT… ∅ = x10 ∧ (x4↔ . bài toán • Lớp bài toán P • Lớp bài toán NP • Lớp bài toán NPC • Một số bài toán thuộc lớp NPC 2 Phân loại bài toán Phân loại bài toán Bài toán Giải được Không giải được Lớp không đa thức Lớp. các bài toán NPC đều không giải được trong thời gian đa thức. P P NPC NP • Lớp NPC là lớp con của những bài toán khó nhất trong lớp NP. • Công cụ chính để chứng minh một bài toán thuộc lớp NPC. thức 2 lớp 2 lớp ? 3 NPC Lớp NP Lớp bài toán có độ phức tạp đa Lớp bài toán có độ phức tạp đa thức (Polynomial time – P) thức (Polynomial time – P) Lớp P Lớp P Là tập hợp tất cả những bài toán

Ngày đăng: 08/04/2015, 10:07

Xem thêm: Đề tài Lớp bài toán NPC

TỪ KHÓA LIÊN QUAN

Mục lục

    Phân loại bài toán

    Lớp bài toán có độ phức tạp đa thức (Polynomial time – P)

    Lớp bài toán có độ phức tạp không đa thức

    Lớp bài toán NP (Nondeterministic Polynomial time)

    Lớp bài toán NP …

    Lớp NP đầy đủ (NP Completeness-NPC)

    Tính thu giảm đa thức …

    Một số bài toán NPC

    Bài toán thỏa được công thức - SAT

    Bài toán 3-CNF SAT (conjunctive normal form)

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

TÀI LIỆU LIÊN QUAN

w