Cấu trỳc của lớp P, NP

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số khía cạnh lý thuyết trong mô hình CSDL quan hệ Luận văn ThS. Công nghệ thông tin 1 01 10 (Trang 119 - 122)

3.1. Tổng quan về thuật toỏn và đỏnh giỏ thuật toỏn

3.1.7 Cấu trỳc của lớp P, NP

3.1.7.1 Lớp P (Polonomic)

Lớp bài toỏn P là lớp bài toỏn giải được bằng thuật toỏn đơn định - đa thức. Ta cú thể hỡnh dung lớp P như một tập hợp cỏc bài toỏn mà đối với chỳng, tồn tại một thuật toỏn làm việc trong thời gian đa thức. Lớp P cũng cú tầm quan trọng quyết định vỡ cỏc lớp bài toỏn ngoài P cú thể xem là khụng tớnh được (Arto Salomaa, Nhập mụn tin học lý thuyết tớnh toỏn và cỏc ụtụmat, trang 229, NXB Khoa học kỹ thuật).

3.1.7.2 Lớp bài toỏn NP (Non deterministic polynomial time)

NP là lớp cỏc bài toỏn khú giải, cú thể giải được bởi thuật toỏn khụng đơn định - đa thức hoặc thuật toỏn đơn định - thời gian hàm mũ.

3.1.7.3 Lớp bài toỏn NP-Hard

- Định nghĩa: Bài toỏn A được gọi là NP-Hard (NP-Khú) nếu với  L  NP đều là L  A.

Bài toỏn NP-Hard cú thể nằm trong hoặc ngoài lớp NP.

- Một định nghĩa khỏc: NP hard problem - a problem that can be reduced from each NP problem ( even worst than NP… ).

- Chứng minh bài toỏn là NP-Hard

+ Cỏch 1: (Theo định nghĩa)

Bài toỏn A được gọi là NP-Hard nếu với  L  NP đều là L  A.

Nhận xột: Cỏch chứng minh theo định nghĩa sẽ rất khú khăn, vỡ phải chứng minh mọi bài toỏn trong NP đều "dễ hơn A".

Theo cỏch 1, năm 1971Cook và Karp lần đầu tiờn đó chứng minh được bài toỏn "Thoả được" (Satisfyability) thuộc lớp NP-Hard.

+ Cỏch 2:

Để chứng minh bài toỏn A nào đú là NP-Hard thỡ người ta thường chứng minh dựa vào bài toỏn B nào đú sao cho B  A (trong đú bài toỏn B đó được xỏc định là bài toỏn NP-Hard). Tức là, bài toỏn A "khú" hơn bài toỏn B.

3.1.7.4 Lớp bài toỏn NP-Complete (NP-C)

- Định nghĩa: Bài toỏn A được gọi là NP-Complete (NP- đầy đủ) nếu A là NP - Hard và A  NP.

Như vậy, bài toỏn NP- Complete là bài toỏn NP-Hard nằm trong lớp NP (A problem which belongs to the NP class of problems and is a NP hard problem by itself).

- Một số định nghĩa khỏc:

+ Là bất kỳ bài toỏn NP nào dẫn về được nú (any other NP problem is reducible to it).

+ Một bài toỏn L ( L  {0,1}*) là NP- Complete nếu: (1). L  NP và

(2). L' p L với mọi L'  NP

Nếu L thoả món (2) nhưng khụng thoả món (1) thỡ khi đú, ta núi rằng L là NP-Hard.

- Chứng minh một bài toỏn L là NP- Complete:

Bước 1: Chứng minh L NP

Bước 2: Chọn một bài toỏn L' là NP- Complete

Bước 3: Xõy dựng một phộp dẫn về f (L'  L)

Bước 4: Chứng minh rằng x  L' nếu f(x)  {0,1}*

Bước 5: Chứng minh rằng f là một phộp biến đổi thời gian đa thức.

f biến đổi Bài toỏn L' đó biết là NP- Complete Bài toỏn L cần chứng minh là NP- Complete

 Sơ đồ Vẽ minh hoạ lớp NP, NP-C (NP-Complete), NP-Hard:

Hỡnh 3.1 Sơ đồ minh hoạ cỏc lớp bài toỏn NP, NP-C, NP-Hard

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu một số khía cạnh lý thuyết trong mô hình CSDL quan hệ Luận văn ThS. Công nghệ thông tin 1 01 10 (Trang 119 - 122)

Tải bản đầy đủ (PDF)

(131 trang)