Tìm hiểu độ phức tạp một số thuật toán

25 202 0
Tìm hiểu độ phức tạp một số thuật toá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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Nguyễn Thế Quyền TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬT TOÁN BẢN TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội - 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Nguyễn Thế Quyền TÌM HIỂU ĐỘ PHỨC TẠP MỘT SỐ THUẬTTOÁN Chuyên ngành: Bảo đảm toán học cho máy tính và hệ thống tính toán Mã số: 60.46.35 BẢN TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS NGUYỄN HỮU NGỰ Hà Nội - 2013 MỞ ĐẦU Lý thuyết độ phức tạp là một lĩnh vực trung tâm khoa học máy tính với kết liên quan chặt chẽ với phát triển và sử dụng thuật toán Nghiên cứu lý thuyết độ phức tạp giúp hiểu biết sâu sắc và khám phá ranh giới vấn để “có thể” tính toán với nguồn tài nguyên hợp lý Bản luận văn này gồm có chương Trong đó, chương trình bày tóm tắt kiến thức lý thuyết độ phức tạp như: máy Turing, thuật toán, Chương trình bày khái niệm bài toán, độ phức tạp bài toán lý thuyết độ phức tạp Trong chương này liệt kê một số nhóm bài toán quan trọng lý thuyết độ phức tạp bài toán người bán hàng, bài toán xếp ba lô, Trong chương 3, trình bày việc phân lớp bài toán bao gồm bài toán lớp P, NP và NPC Chúng quan tâm đặc biệt đến lớp NPC, chứng minh một số bài toán thuộc lớp NPC dựa một khái niệm quan trọng là phép dẫn đa thức Bây xin trình bày chương, chương CHƯƠNG 1: KIẾN THỨC CHUẨN BỊ Chúng bắt đầu với khái niệm máy Turing 1.1 Máy Turing Máy Turing gồm có: - Tập trạng thái hữu hạn - Băng vô hạn hai phía (về lý thuyết kéo dài tuỳ ý hai phía), bảng tín hiệu vào, bảng tín hiệu băng, một đầu đọc-ghi q ↓ B B B B a1 a2 an B B B Một bước làm việc máy gồm: - Đầu đọc-ghi đọc tín hiệu băng - Căn vào trạng thái và tín hiệu đọc băng, đầu đọc-ghi ghi một tín hiệu băng, dịch chuyển sang phải sang trái một ô, và chuyển sang một trạng thái nào Quy ước máy bắt đầu làm việc trạng thái là trạng thái đầu máy, với input hữu hạn băng, đầu đọc-ghi nằm ký tự bên trái input Tiếp theo, ta xét hai mô hình máy Turing tất định và máy Turing không tất định 1.2 Máy Turing tất định (deterministic) Có thể định nghĩa một cách hình thức một máy Turing tất định sau: là một bộ M = (Q, Σ, Γ, F, q0, B, t1 ) đó: - Γ: là bảng tín hiệu băng (hữu hạn) - Σ: là bảng tín hiệu vào (hữu hạn), Σ ⊂ Γ - Q: là tập trạng thái (trong) (hữu hạn) - F: là hàm chuyển F: Q x Γ → Q x Γ x {L,R} - q0: trạng thái ban đầu (q0 ∈ Q) - t1: trạng thái kết thúc (t1 ∈ Q) - B: ký tự trắng, B ∈ Γ, B ∉ Σ Hàm chuyển F(q, a) = (q', a', D) cho bảng sau: a q (q', a', D) Tại bước, máy trạng thái q, đầu đọc-ghi đọc tín hiệu a i ô băng, hình trạng máy có dạng a 1a2 ai-1qai ak Theo hàm chuyển F(q, ai) = (q', c, D), máy chuyển sang trạng thái q', ghi c lên băng (thay cho ai), đầu đoc/ghi chuyển sang phải hay sang trái một ô tùy theo D là R L Ta nói máy M chuyển từ hình trạng H = a1a2 ai-1qai ak sang hình trạng H' = a1a2 q'ai-1cai+1 ak D = L H' = a1a2 ai-1cq'ai+1 ak D = R Ký hiệu H − H' Máy làm việc bước gặp hình trạng mà hàm chuyển F(s,a) không xác định gặp trạng thái kết thúc t1 Xâu x (input) bảng tín hiệu Σ (tức là x ∈ Σ*) gọi là đoán nhận máy M tồn dãy hình trạng H0, H1, , Hm cho H0 − H1 − − Hm H0 là hình trạng ban đầu, input x ghi băng, đầu đọc-ghi nhìn vào ký tự input, trạng thái máy là q0, tức là: H0 = q0a1a2 ai-1ai an với x = a1a2 ai-1ai an Hm có trạng thái là t1 Tập N xâu (ngôn ngữ Σ) thuộc Σ* gọi là đoán nhận máy M N = {x | x∈Σ*, x đoán nhận máy M} Ký hiệu q0 là trạng thái đầu, t1 là trạng thái kết thúc khẳng định Ví dụ: Máy Turing đoán nhận ngôn ngữ {x | x có độ dài chẵn} q0 q1 (q1, B, R) (q0, B, R) (q1, B, R) (q0, B, R) b (t1, B, ' ') - Với input 010110 ta có dãy hình trạng (q0)010110 − 0(q1)10110 − 01(q0)0110 − 010(q1)110 − 0101(q0)10 − 01011(q1)0 − 010110(q0) − 010110(t1) trạng thái cuối là trạng thái kết thúc đoán nhận t1 1.3 Máy Turing không tất định (non deterministic) Định nghĩa máy Turing tất định, hàm chuyển F là hàm đa trị, nghĩa là F : Q x Σ → 2Q x Γ x {L,R} Tại bước, chuyển sang bước sau một khả tùy theo hàm chuyển F Nếu có một nhánh đoán nhận input x xem máy đoán nhận input Giả sử F(s, a) = {(si1, ai1, Di1), (si2, ai2, Di2), , (sim, aim, Dim)} là một tập (có thể rỗng) Với hình trạng H với trạng thái s và tín hiệu a đọc máy chuyển đến một hình trạng H − Hi1 , H − Hi2 , , H − Him Hik có trạng thái sik và tín hiệu ghi là aik, Ví dụ: q0 (q0,1,R) (q1,1,R) q1 q2 B (q2,0,L) (q0,1,R) (t1,' ',' ') Với w = 010 (q0)010 1(q0)10 1(q1)10 (q2)100 1(q0)00 11(q0)0 11(q1)0 111(q0) 111(q1)B (t1) Bây chúng trình bày thuật toán và dộ phức tạp thuật toán Với một bài toán cần có thuật toán đề giải bài toán 1.2 Khái niệm thuật toán (algorithm) 1.2.1 Khái niệm Một cách không hình thức thuật toán là việc mô tả một cách xác trình thực đối tượng để nhằm đạt một kết nào theo một yêu cầu cho trước Cần ý đặc trưng hữu hạn thuật toán: - Đối tượng hữu hạn, thao tác hữu hạn - Cho kết qua một số hữu hạn bước - Về lý thuyết cho phép khả kéo dài tuỳ ý (vô hạn tiềm năng) Ta phân biệt hai loại thuật toán: tất định và không tất định Đối với thuật toán tất định thời điểm có không một bước Đối với thuật toán không tất định thời điểm có một số khả để lựa chọn bước 1.2.2 Ví dụ thuật toán Ví dụ: Thuật toán dãy số tăng đổi chỗ trực tiếp Input: n và dãy số n phần tử a1, a2, , an Output: Dãy số a1, a2, , an xếp tăng Mô tả cụ thể bước: i = k = i + Nếu > ak hoán vị với ak 4 k = k + Nếu k ak then hoán vị giá trị với ak cho Sơ đồ khối: Nhập n, dãy số a1, , an i=1 k = i+1 ai>ak Đ hoán vị với ak S k = k+1 Đ k[...]... khái niệm quan trọng của lý thuyết thuật toán, lý thuyết độ phức tạp và phân lớp độ phức tạp của các bài toán Trong lý thuyết thuật toán còn những nội dung trọng tâm như các thuật toán thông dụng và độ phức tạp của các thuật toán này, Trong lý thuyết độ phức tạp còn những nội dung quan trọng như phương pháp giải các bài toán tối ưu tổ hợp và các thuật toán xấp xỉ, xác suất, heuristics và... toán các mẫu số chung, và để làm được chúng ta sẽ phân chia mẫu số thành thừa số nguyên tố Đây là bài toán tạo thừa số (FACT) Các bài toán được chia ra làm ba loại: bài toán tối ưu hoá, bài toán xác định và bài toán quyết định Về nguyên tắc mọi bài toán đều có thể biểu diễn lại dưới dạng bài toán quyết định 2.3 Độ phức tạp của bài toán Đối với một bài toán thì có rất nhiều thuật toán để giải... nhiều thuật toán để giải bài toán đó Ký hiệu TA(n) = max {T(x), x là đầu vào có độ dài n} là độ phức tạp của một thuật toán A Ta có thể định nghĩa độ phức tạp của một bài toán như sau: TB(n) = inf {TA(n), A là một thuật toán giải bài toán B} Thường thì rất khó tính được độ phức tạp của bài toán mà chỉ biết được cận trên và cận dưới của độ phức tạp của bài toán Cuối cùng chúng chúng... máy tính hoặc tập kết quả chính xác không rõ ràng Việc tìm kiếm đường đi ngắn nhất từ một đỉnh s đến một đỉnh t rõ ràng là một bài toán Sau đây ta sẽ liệt kê danh sách một số bài toán quan trọng trong lý thuyết độ phức tạp 2.2 Một số bài toán quan trọng 1) Các bài toán người bán hàng (TSP) Bài toán người bán hàng (TSP): là bài toán tìm kiếm một chu trình ngắn nhất qua n thành phố đúng... chúng tôi trình bày về các lớp bài toán dựa trên độ phức tạp của chúng 12 CHƯƠNG 3: PHÂN LỚP CÁC BÀI TOÁN THEO ĐỘ PHỨC TẠP 3.1 Lớp các bài toán P, NP và mối quan hệ giữa chúng 3.1.1 Lớp P Bao gồm các bài toán giải được bằng máy Turing trong thời gian đa thức Ví dụ: bài toán tìm ước chung lớn nhất, bài toán kiểm nghiệm tính nguyên tố, 3.1.2 Lớp NP Bao gồm các bài toán giải được bằng máy Turing không... Bài toán quyết định này còn được gọi là bài toán thoả được 10) Các bài toán trong lý thuyết số Mật mã học hiện đại có kết nối chặt chẽ với các bài toán lý thuyết số, trong đó các số rất lớn được sử dụng Ở đây chúng ta phải lưu ý rằng, biểu diễn nhị phân của đầu vào n chỉ có độ dài [log(n + 1)] Trong trường học, hầu hết chúng ta học thuật toán về cộng các phân số đòi hỏi chúng ta phải tính toán. .. một số bài toán NPC 3.2.2 Lớp các bài toán NPC Một bài toán thuộc lớp NP mà mọi bài toán thuộc lớp NP khác đều dẫn được về nó với thời gian đa thức được gọi là bài toán NPC Như vậy Π là một bài toán NPC nếu nó thoả mãn: 13 o Π ∈ NP o Với mọi Π’ ∈ NP thì đều dẫn được về Π trong thời gian đa thức Bây giờ ta xét bài toán SAT, cùng với định lý khẳng định nó là bài toán NPC 3.2.2.1 Bài toán. ..Chương 2 BÀI TOÁN VÀ ĐỘ PHỨC TẠP CỦA BÀI TOÁN 2.1 Bài toán là gì? Trong giới hạn của luận văn này thì bài toán là một vấn đề phù hợp với việc tính toán của máy tính và tập các kết quả chính xác Ví dụ: Việc tìm kiếm một bản án cho bị cáo hay việc dịch một văn bản tiếng Đức sang một ngôn ngữ khác không phải là các bài toán vì chúng phụ không phù hợp với tính toán bằng máy tính hoặc... một số nguyên dương B - Câu hỏi: Có tồn tại một hoán vị π trên {1, 2, , m} sao cho:  m−1   ∑ d (c Π (i ) , c Π (i + !) )  + d (c Π ( m) , c Π (1) )  i =1  ≤ B hay không? Ta có sơ đồ để chứng minh một số bài toán là NPC như sau: SAT Hình 7 3SAT Sơ đồ chứng minh một số bài toán NPC 3DM VC PARTITION CLIQUE 21 HC TSP KẾT LUẬN Như vậy trong bản luận văn này, chúng tôi đã đi tìm hiểu một số. .. là bài toán hôn nhân: hai “khả năng” được hiểu như là hai giới tính, một nhóm có tiềm năng được xem như là một cuộc “hôn nhân bền vững”, và mục tiêu là tối đa hoá số lượng các cuộc hôn nhân bền vững 7) Các bài toán luồng tối ưu Trong bài toán luồng qua mạng (NETWORKFLOW), người ta tìm kiếm các luồng tối đa trong các mạng Chúng ta chỉ quan tâm đến bài toán cơ bản mà trong đó chúng ta tìm kiếm

Ngày đăng: 18/06/2016, 19:31

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

  • Đang cập nhật ...

Tài liệu liên quan