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

Tiểu luận Phân tích và thiết kế thuật toán Tính đầy đủ NP( NP-Completeness )

79 622 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 79
Dung lượng 2,28 MB

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

Nội dung

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5Nội dung: Khái niệm về các bài toán Thuật toán thời gian đa thức Một khuôn khổ ngôn ngữ hình thức Khái niệm lớp P Thời gian đa thức – Polyn

Trang 2

Đặt vấn đề

 Chia lớp các bài toán như thế nào?

 Mối quan hệ giữa các lớp bài toán?

 Phép rút gọn? Rút gọn về các bài toán đã biết?

 Một số vận dụng?

Trang 3

Nội dung

 Thời gian đa thức (Trương Nữ Thùy Duyên)

 Xác minh thời gian đa thức (Huỳnh Thị Kim Ngân)

 NPC và khả năng rút gọn (Đoàn Thanh Hòa)

 Các bài toán NPC (Trần Hoài Nhân)

Trang 4

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Nội dung:

Khái niệm về các bài toán Thuật toán thời gian đa thức Một khuôn khổ ngôn ngữ hình thức Khái niệm lớp P

Thời gian đa thức – Polynomial time

Trang 5

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

1 Khái niệm bài toán:

Bài toán trừu tượng Q là một hệ thức nhị

phân trên tập hợp I các minh dụ (instances) của bài toán và một tập hợp S các nghiệm của

bài toán.

Ví dụ: Xét bài toán SHORTEST_PATH: Tìm lộ trình ngắn nhất giữa 2 đỉnh của đồ thị vô hướng không trọng số G=<V,E>

Trang 6

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Bài toán quyết định: có một nghiệm có

hoặc không Trong trường hợp này chúng ta

có thể xem một bài toán quyết định trừu

tượng là một ánh xạ từ tập minh dụ I vào tập

Trang 7

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

2 Phép mã hóa

Phép mã hóa một tập S các đối tượng trừu

tượng là một ánh xạ e từ tập S vào tập các chuỗi nhị phân.

Ví dụ: N ={ 1, 2, 3,…}  { 01, 10, 11,….}

e(17)=10001

Bài toán cụ thể: là bài toán mà tập minh dụ

của nó là tập các chuỗi nhị phân.

Trang 8

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Thuật toán giải một bài toán cụ thể trong thời gian O(T(n)) nếu: mỗi minh dụ i có độ dài n, thuật toán cho kết quả trong thời gian

là O(T(n)).

Một bài toán cụ thể giải được trong thời

gian đa thức nếu tồn tại thuật toán giải nó

trong thời gian O(nk), k hằng số.

Trang 9

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Lớp P: Là tập các bài toán quyết định cụ thể

giải được trong thời gian đa thức.

f: {0, 1}*  {0, 1}* là hàm tính toán được

theo thời gian đa thức nếu tồn tại một thuật

toán thời gian đa thức A mà bất kỳ input x Є {0,1}* output f(x)

Trang 10

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

e1 và e2 có liên quan đa thức nếu tồn tại f12

và f21 sao cho với i Є I ta có

f12(e1(i))=e2(i) và f21(e2(i))= e1(i)

Bài toán có giải được trong thời gian đa thức hay không là không phụ thuộc vào phép

mã hóa.

Trang 11

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Bổ đề 34.1: Q là 1 tập các bài bài trừu tượng trên 1 tập các minh dụ I và e1 , e2 là các phép

mã hóa có liên quan đa thức trên I thì: e1(Q) Є

P nếu và chỉ nếu e2(Q) Є P

Trang 12

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

3 Một khuôn khổ Ngôn ngữ hình thức

Bảng chữ cái E là tập hữu hạn các ký tự.

Ví dụ: E = {0,1}

Từ là 1 dãy các chữ cái của E.

Một ngôn ngữ L trên E là 1 tập các từ trên E.

Ví dụ: L={00, 01, 10, 11}

Từ rỗng: ε Ngôn ngữ rỗng: Ø Ngôn ngữ gồm tất cả các từ trên E: E*

Trang 13

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

A loại bỏ x nếu A(x) = 0.

Ngôn ngữ L được chấp nhận bởi A:

Trang 14

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

Một ngôn ngữ L được quyết định bởi thuật toán A nếu:

x thuộc L nếu A chấp nhận x và

x không thuộc L nếu A loại bỏ x.

L được quyết định bởi A trong trong thời gian đa thức nếu có hằng số k sao cho mọi từ

x có độ dài n được A quyết định trong thời gian O(nk)

Trang 15

Người trình bày: Trương Nữ Thùy Duyên |Nhóm 5

4 Lớp P

Định nghĩa: Lớp P bao gồm tất cả các bài

toán giải được 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).

P = {L Є {0, 1}*: có thuật toán A quyết định L trong thời gian đa thức}

Định lý 34.2: P = {L ngôn ngữ trên E: có

thuật toán A chấp nhận L trong t.g.đ.t.}

Trang 16

Xác minh thời gian đ a thức (Polynomial-time verfication)

• Ví dụ: bài toán tìm chu trình Hammilton

1

2

3

4 5

10

9

8

7 6

– Input: cho đồ thị vô hướng G = (V, E) – Output: chu trình chứa mọi đỉnh của G – Thời gian giải bài toán: O(n!)

Người trình bày: Huỳnh Thị Kim Ngân |Nhóm 5

Trang 17

Xác minh thời gian đa thức (t)

• Các thuật toán xác minh (Vertification algorithms)

10

9

8

7 6

Trang 18

2 Xác minh thời gian đa thức (t)

• Các thuật toán xác minh (Vertification algorithms)

– Định nghĩa: Gọi A(x,y) trong đó:

• x: chuỗi đầu vào thông thường (ordinate)

• y: chuỗi nhị phân có tên là chứng chỉ [certificate]

Ta nói A xác minh x nếu tồn tại một chứng chỉ y sao cho A(x,y)=1

– Ngôn ngữ xác minh bởi một thuật toán xác minh A là:

L = {x  {0,1}* : có tồn tại y  {0,1}* sao cho A(x,y) = 1 }

Người trình bày: Huỳnh Thị Kim Ngân |Nhóm 5

Trang 19

2 Xác minh thời gian đa thức (t)

• Lớp phức NP (The complexity class NP)

• Là lớp các ngôn ngữ có thể được xác minh bởi một thuật toán thời gian đa thức.

• Hay: một ngôn ngữ L thuộc về NP nếu và chỉ nếu ở đó tồn tại một thuật toán thời gian đa thức A và hằng c sao cho:

L = { x  {0,1}*: y với y = O(x c ) sao cho A(x,y) =1 }

• Lớp phức co-NP (complexity class co-NP)

Trang 20

2 Xác minh thời gian đa thức (t)

Trang 21

2 Xác minh thời gian đa thức (t)

Trang 22

 Thuộc về lớp NP nhưng không rõ có thể thuộc về lớp

thuộc lớp NP cũng sẽ được giải trong thời gian đa thức

Người trình bày: Đoàn Thanh Hòa |Nhóm 5

Trang 23

Phép rút gọn - Reducibility

• Ngôn ngữ L1 là rút gọn được về ngôn ngữ L2 trong thời

gian đa thức nếu tồn tại một hàm tính toán được theo

thời gian đa thức:

thời gian đa thức

• Ký hiệu: L1 ≤p L2

Người trình bày: Đoàn Thanh Hòa |Nhóm 5

Trang 24

Bổ đề 3: Nếu L1, L2 {0,1}* là các ngôn ngữ sao cho ⊆ {0,1}* là các ngôn ngữ sao cho

L1 ≤ p L2 thì L2Є P ngụ ý L1Є P

Chứng minh :

Trang 25

• Ngôn ngữ L⊆ {0,1}* là các ngôn ngữ sao cho {0,1}* là NP-đầy đủ (Ký hiệu: NPC)

nếu:

1 L Є NP

• Ngôn ngữ L là NP-khó (NP-hard) nếu L thỏa mãn

điều kiện 2 (nhưng không nhất thiết thoả điều kiện 1)

Lớp NP- đầy đủ (NP-completeness)

Người trình bày: Đoàn Thanh Hòa |Nhóm 5

Trang 26

P vs NP

• Định lý: Nếu có một bài toán NP-đầy đủ nào giải

được trong thời gian đa 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 thời gian đa thức thì tất cả các bài toán NP-đầy đủ đều không giải được trong thời gian đa thức

Trang 27

Người trình bày: Trần Văn Hòa|Nhóm 5

Menu2 …

Bổ đề: Nếu L là một ngôn ngữ sao cho L’ ≤p L với

L’ Є NPC, thì L là NP-khó Hơn nữa, nếu L Є NP thì L Є NPC.

Trang 28

Người trình bày: Trần Văn Hòa|Nhóm 5

Menu2 …

Ví dụ

Trang 29

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

• 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 (wire).

Trang 31

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

 Các phép gán giá trị của một mạch là một tập các giá trị đầu vào.

 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 thỏa mãn mạch ( Circuit satisfiability) Circuit satisfiability)

Trang 32

Người trình bày: Trần Văn Hòa|Nhóm 5

Menu2 …

• Bài toán khả năng thỏa mãn mạch là: “Cho

một mạch bool gồm các cổng AND, OR, NOT; nó có thỏa mãn được hay không ?”

Ví dụ

Trang 33

<C> là chuỗi nhị phân được ánh xạ từ mạch C.

của C là đa thức trong k, việc kiểm tra từng cái một

mạch

• Bổ đề: Thỏa mãn mạch ( Circuit satisfiability) Є NP Circuit satisfiability)

• Bổ đề: Thỏa mãn mạch ( Circuit satisfiability) là NP-khó Circuit satisfiability)

• Định lý: Thỏa mãn mạch ( Circuit satisfiability) Є NPC Circuit satisfiability)

Bài toán thỏa mãn mạch ( Circuit satisfiability) Circuit satisfiability)

Trang 34

– Các toán tử logic: các hàm boolean một hoặc hai biến:

 (AND),  (OR),  (NOT),  (kéo theo),  (khi và chỉ khi)

– Các dấu ngoặc đơn

• Một công thức Φ là satisfiable (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 Bool thỏa mãn được}

Trang 35

= (1 0)  1 = 1,

Vậy công thức  này thuộc về SAT.

• Định lý: SAT Є NP-đầy đủ

Trang 36

1 1 1

Trang 37

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

• Ví dụ:

(x1 x1 x2)  (x3 x2 x4)  (x1 x3 x4)

Thỏa mãn 3-CNF

Trang 38

• Định lý: 3-CNF-SAT Є NP-đầy đủ

Trang 41

Người trình bày: Trần Văn Hòa|Nhóm 5

Menu2 …

• Áp dụng các qui luật của DeMorgan, chúng

Trang 43

Tính đầy đủ NP

Người trình bày: Trần Hoài Nhân|Nhóm 5

Bài toán NPC …

CIRCUIT-SAT SAT 3-CNF-SAT CLIQUE

VERTEX-COVER HAM-CYCLE

TSP

SUBSET-SUM

Trang 44

Ví dụ:

Bài toán CLIQUE (nhóm)

Một Clique là một đồ thị con đầy đủ của G

Kích thước của Clique là số đỉnh nó chứa

e

d c

Trang 45

• Input: Đồ thị vô hướng G=<V,E>

• Output: Một Clique có kích thước cực đại

e

d c

Trang 46

• Bài toán tìm nhóm là bài toán tối ưu.

• Chuyển thành bài toàn quyết định: Tìm Clique của đồ

thị vô hướng G có kích thước k

Nhận xét:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 47

• Tìm một nhóm k đỉnh thuộc V (k≤|V|).

• Kiểm tra k đỉnh này có tạo thành đồ thị đầy đủ

hay không Nếu đúng ta kết luận được nghiệm

Ngược lại ta tìm nhóm k đỉnh khác và tiếp tục kiểm chứng

Hình dung giải thuật:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 48

Ước tính độ phức tạp

• Tìm một nhóm k đỉnh

Có k*(k-1) cặp cần kiểm chứng

Độ phức tạp:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 49

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 50

i Chứng minh CLIQUE  NP

Việc kiểm tra nhóm k đỉnh là một Clique được

Nên CLIQUE  NP.

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 51

– Chọn Ф = C 1  C 2 ··· C k (k là hằng số) là một minh dụ

l 2 r , l 3 r

– Xây dựng đồ thị vô hướng G=(V, E) như sau:

+ Thay ba biến l 1 r , l 2 r , l 3 r của C r thành 3 đỉnh v 1 r , v 2 r , v 3 r

trong V

• lir và ljs không là phủ định của nhau

ii Chứng minh 3-CNF-SAT ≤P CLIQUE

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 52

• Ví dụ: Ф = (x1  ¬x2  ¬x3)(¬x1  x2  x3)(x1  x2  x3)

ii Chứng minh 3-CNF-SAT ≤P CLIQUE

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 53

• Việc xây dựng đồ thị G từ Ф được thực hiện trong

• Ta cần chứng minh:

Ф=1  G có một CLIQUE kích thước k

ii Chứng minh 3-CNF-SAT ≤P CLIQUE

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 54

ii Chứng minh 3-CNF-SAT ≤P CLIQUE

• Chứng minh Ф=1  “Có Clique”.Có Clique”.

Giả sử Ф=1  Cr = 1 với mọi r=1 k

 Cr (r=1 k)phải chứa ít nhất một biến lir có giá trị 1.

Ta có được k biến lir =1

Từ k biến đúng trên ta thành lập được tập V’ gồm k đỉnh.

Cần chứng minh V’ là một Clique Thật vậy, xét cặp đỉnh bất kỳ:

- vir , vjs tương ứng với hai biến đúng lir và ljs

- Nhận thấy vir , vjs thảo mãn điều kiện “Nối” Nghĩa là, (v i r , v j s )  E

Như vậy, V’ là một Clique.

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 55

• Chứng minh “Có Clique”.Có Clique”  Ф=1

Giả sử G có 1 Clique V’ kích thước k.

ii Chứng minh 3-CNF-SAT ≤P CLIQUE

Như vậy, Cr=1 (r=1 k) suy ra Ф=1.

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 56

Một vertex-cover trong một đồ thị vô hướng G = (V, E), là

một đồ thị con G’ của G Sao cho:

Nếu e=(u,v) E thì ∈ E thì (u V’ ∈ E thì )  (v V’ ∈ E thì )

Kích thước của vertex cover là số đỉnh mà nó chứa

Bài toán VERTEX-COVER (vỏ phủ đỉnh)

Ví dụ:

e

d c

Đồ thị G=<V,E>

e

d c

{a,b,c} là một vertex-cover

kích thước 3

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 57

Phát biểu Bài toán vertex-cover:

Đồ thị G=<V,E>

e

d c

{a,b} là một vertex-cover kích thước cực tiểu

Bài toán VERTEX-COVER (vỏ phủ đỉnh)

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 58

• Bài toán vertex-cover là bài toán tối ưu.

• Chuyển thành bài toàn quyết định: Tìm Vertex-Cover

của đồ thị vô hướng G có kích thước k

Nhận xét:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 59

• Tìm một nhóm k đỉnh thuộc V (k≤|V|) Gọi là V’

• Kiểm tra V’ là một Vertox-Cover hay không Bằng cách: Với mỗi e=(u,v)E, kiểm tra xem uV’ hoặc vV’

Hình dung giải thuật:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 60

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 62

ii Chứng minh CLIQUE ≤P VERTEX-COVER

e

d c

f

e

d c

f

Phần bù:

Cho G=<V,E> phần bù của G là G’=<V,E’> sao cho:

Ví dụ:

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 63

ii Chứng minh CLIQUE ≤P VERTEX-COVER

Phép biến đổi:

Vertex-Cover

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 64

Chứng tỏ phép biến đổi trên là phép rút gọn:

- Phép biến đổi được thực hiện trong thời gian đa thức.

- G có Clique kích thướv k  G’ có Vertex-Cover kích thước |V|-k

ii Chứng minh CLIQUE ≤P VERTEX-COVER

e

d c

f

e

d c

Trang 65

ii Chứng minh CLIQUE ≤P VERTEX-COVER

Dễ dàng thầy rằng phép biến đổi được thực hiện

trong thời gian đa thức O(k*(k-1))

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 66

ii Chứng minh CLIQUE ≤P VERTEX-COVER

Giả sử G có một Clique V’  V với |V’|=k.

Cần chứng mình: V\V’ là Vertex-Cover của G’

- (u,v)E’  (u,v)E

 uV’ và vV’

 uV\V’ hoặc vV\V’

Như vậy V\V’ là một vỏ phủ định của G’

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 67

Giả sử G’ có một Vertex-Cover V’  V với |V’|=|V|-k Cần chứng minh: V\V’ là Clique của G

- Chọn u,v bất kỳ sao cho:

u,vV\V’ uV’ và vV’

Như vậy V\V’ là một nhóm của G

ii Chứng minh CLIQUE ≤P VERTEX-COVER

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 68

Phát biểu bài toán

- Input: Đồ thị G

- Output: 1: Nếu G có chu trình Hamilton

Bài toán HAM-CYCLE (chu trình Hamliton)

Ví dụ:

e

d c

Trang 69

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 70

Bài toán TSP (Người bán hàng)

Phát biểu bài toán:

• Output: Chu trình Hamilton có tổng chi phí nhỏ nhất

e

d c

Trang 73

Chứng minh TSP  NPC

ii Chứng minh HAM-CYCLE ≤ P TSP

Từ minh dụ G=<V,E> của bài toán HAM-CYCLE ta xây dựng minh dụ cho bài toán TSP như sau:

• Xây dựng đồ thị đầy đủ G’=<V,E’> sao cho:

1 nếu (i,j)E

• Bây giờ minh dụ của TSP là <G’,c,0>

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 74

• Việc thành lập minh dụ cho TSP từ G=<V,E> được

• Ta cần chứng minh:

G có một chu trình Hamilton  G’ có một tua có tổng

trọng số bằng 0

Chứng minh TSP  NPC

ii Chứng minh HAM-CYCLE ≤ P TSP

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 75

Bài toán SUBSET-SUM (tổng tập con)

Phát biểu bài toán:

Trang 76

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 77

Một số kỹ thuật đối phó với những bài NPC

• Dùng “giải thuật xấp xỉ” (approximation algorithm) để tìm lời giải gần tối ưu

• Tìm giải thuật giải một số trường hợp của bài toán,

mặc dù không giải hết các trường hợp

• Sử dụng giải thuật có độ phức tạp hàm mũ nhưng hữu hiệu, ví dụ giải thuật đệ qui

• Đưa “Heuristic” vào giải thuật để giảm độ phức tạp, tuy nhiên có thể kết quả chỉ gần tối ưu Ví dụ, có thể

đưa “Heuristic” vào giải thuật đệ qui

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 78

Đóng góp quan trọng nhất của vấn đề NPC trong

các lĩnh vực: Nó cho biết bài toán mới cần

giải quyết là “dễ” hay “khó”

Người trình bày: Trần Hoài Nhân|Nhóm 5

Trang 79

Cảm ơn thầy và các bạn

đã lắng nghe!

Ngày đăng: 11/04/2015, 22:07

HÌNH ẢNH LIÊN QUAN

Bảng chân trị cho mệnh đề - Tiểu luận Phân tích và thiết kế thuật toán Tính đầy đủ NP( NP-Completeness )
Bảng ch ân trị cho mệnh đề (Trang 40)

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