1. Trang chủ
  2. » Giáo Dục - Đào Tạo

TIỂU LUẬN MÔN HỌC-PHÂN TÍCH THIẾT KẾ THUẬT TOÁN-LỚP BÀI TOÁN NPC

29 488 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 29
Dung lượng 3,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lớp bài toán có độ phức tạp đa thức Polynomial time – 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

Trang 1

TIỂU LUẬN MÔN HỌC

PHÂN TÍCH THIẾT KẾ THUẬT TOÁN

(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

Trang 3

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

Trang 4

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

thức (Polynomial time – 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)

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

4

Trang 5

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(an)

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

-1 Lời giải tuy đã có

nhưng khi thể hiện lời

33 Khoảng 8 tỷ

Trang 6

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

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

nhất và có thể thực thi được

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

Trang 7

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

Khu vườn

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

2

Trang 8

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 …

- 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

- 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

Trang 9

• 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

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

NP

Trang 10

Lớp NP đầy đủ (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)

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)

Trang 11

2 Với mọi L’ Є NP thì L’ ≤ pL (Với mọi ngôn ngữ L’ thuộc

NP, có một phép thu thời gian đa thức từ L’ về L)

(Nếu L chỉ thoã điều kiện 2 thì L thuộc lớp NP-Khó)

P

NPC

NP

Trang 12

• Lớp NPC là lớp con của những bài toán khó nhất trong lớp NP

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 đó đã biết

Trang 13

13

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

Định nghĩa: (Thu giảm về)

Ta nói rằng bài toán L1 thu giảm về bài toán L2 (kí

hiệu L1  L2) nếu bất kỳ giải thuật nào giải được L2 thì cũng có thể được dùng để giải L1

Trang 14

• Giả sử ta biết HCP là NPC và muốn xác định xem TSP có là NPC hay không?

• Bất kỳ giải thuật nào có thể dùng để giải TSP cũng có thể dùng để giải HCP thông qua sự thu giảm sau: Cho G=(V,E) là một thể hiện của HCP, tạo ra một thể hiện của TSP tương ứng G’=(V,E’), trong đó:

– Các thành phố trong TSP tương ứng tập đỉnh trong HCP – Khoảng cách giữa hai thành phố ta gán giá trị:

cả các thành phố sao cho tổng khoảng cách của lộ trình nhỏ hơn M

2 Bài toán chu trình Hamilton (HCP): Cho một đồ thị, hãy tìm một chu trình đơn đi qua tất cả các đỉnh

c(i,j) =

Trang 15

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

15

1 Bài toán TSP: Cho một tập các thành phố và khoảng cách giữa các cặp thành phố Hãy tìm một lộ trình đi qua tất cả các thành phố sao cho tổng khoảng cách của lộ trình nhỏ hơn M

2 Bài toán HCP: Cho một

đồ thị, hãy tìm một chu trình đơn đi qua tất cả các đỉnh

– Ngược lại: Giả sử G’ có tua h’ với mức hao phí tối đa là 0

(Vì E’={c(i,j)=(0,1)})  h’ chỉ chứa các cạnh trong E  h’ là một chu trình hamilton trong G

• Nghĩa là HCP thu giảm về TSP  Tính chất NPC của HCP bao hàm tính chất NPC của TSP Hay TSP là bài toán NPC

Trang 16

Định lý Cook

Bài toán thoả mạch logic (circuit satisfiability CSP):

problem-• Phần tử bool (Boolean combinational element) là các

phần tử có đầu vào và ra thuộc {0,1} (0: sai, 1: đúng)

• Một phần tử bool dùng để tính 1 hàm boolean đơn,

được gọi là một cổng logic (logic gate) Có 3 cổng logic

cơ bản: cổng NOT, cổng AND và cổng OR (Cổng vào x

và y, cổng ra z)

Mạch bool (Boolean combinational circuit) xây dựng từ

các phần tử bool, được nối với nhau bằng các dây

Trang 17

• Ta xét các mạch (circuit) chỉ có một đầu ra:

1 Một phép gán giá trị của một mạch là một tập các giá trị

đầu vào

2 Một mạch là thỏa mãn (satisfiable) nếu có một phép gán

giá trị đầu vào sao cho đầu ra của mạch là 1

• Bài toán CSP là xác định xem có tồn tại một phép gán các trị logic vào các biến logic sao cho toàn công thức trở thành đúng (đầu ra là 1)

17

Định lý Cook …

Trang 19

Định lý Cook

19

• 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 (circuit-satisfiability problem)

đầ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 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 thức”

Trang 20

VERTEX-COVER HAM-CYCLE

TSP

SUBSET-SUM

Trang 21

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

thức boolean Φ gồm:

1 Các biến boolean: x1, x2, …

2 Các liên kết boolean: các hàm boolean một hoặc hai

biến: AND, OR, NOT, , 

3 Các 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

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}

Trang 22

Bài toán SAT…

Ngược lại, nếu có một phép gán làm cho  có giá trị 1, thì mạch C

cũng thỏa được

Vậy, CIRCUIT-SAT  p SAT

22

Trang 23

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

normal form)

• 1 literal trong một công thức boolean là một biến x

hoặc ¬x

• 1 công thức boolean là có dạng hợp chuẩn nếu nó

được biểu diễn như là một phép AND của các

mệnh đề, mỗi mệnh đề là một phép OR của các

literal

• 1 công thức boolean là một dạng 3-CNF nếu mỗi

mệnh đề của nó có đúng 3 literal khác nhau

• 3-CNF SAT={Ф Є 3-CNF, Ф là công thức thoả mãn

Trang 24

Bài toán clique

là một tập con V’ ⊆ V, mỗi cặp đỉnh trong V’ đều

có cạnh E Hay nói cách khác, clique là một đồ thị con đầy đủ của G Kích thước của clique là số

Trang 25

Bài toán vertex-cover

= (V, E), V’ ⊆ V, nếu cạnh (u, v) ∈ E thì u ∈ V’

hoặc v ∈ V’ (hoặc cả 2) Kích thước của vertex cover là số đỉnh nó chứa (=|V’|)

Bài toán vertex-cover: tìm một vertex cover

có kích thước nhỏ nhất trong một đồ thị cho

trước

• Giả sử tồn tại số k là kích thước của một

vertex cover trong đồ thị G ta định nghĩa:

Trang 26

Bài toán chu trình

Hamilton

• Cho đồ thị vô hướng G=(V,E), một chu trình Hamilton trong G là một chu trình đơn và đi qua tất cả các đỉnh của G (qua mỗi đỉnh đúng một lần, trừ đỉnh đầu trùng đỉnh cuối)

• Đồ thị G được gọi là đồ thị Hamilton nếu nó có chu trình Hamilton, nếu không nó được gọi là đồ thị không phải Hamilton

• Bài toán chu trình Hamilton: đồ thị G có chu trình

Hamilton hay không?

Trang 27

Bài toán Người

bán hàng

• Cho đồ thị đầy đủ G và có trọng số c(i,j) cho mỗi cạnh (i,j) Tìm chu trình Hamilton sao cho tổng chi phí nhỏ nhất

Trang 28

Một số kỹ thuật để đối phó với

những bài toán NPC

• Dùng “giải thuật xấp xỉ” (approximation algorithm)

để tìm lời giải xấp xỉ tối ưu

phát triển một giải thuật mà tìm ra lời giải trong

một số trường hợp nào đó, mặc dù không làm

việc được trong mọi trường hợp

mũ nhưng hữu hiệu, ví dụ như giải thuật quay lui

• Đưa “heuristic” vào giải thuật để tăng thêm hiệu

quả của giải thuật

• Sử dụng “meta heuristic”

28

Ngày đăng: 17/05/2015, 11:34

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w