MỘT số PHƯƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG của THUẬT TOÁN và ỨNG DỤNG (tóm tắt)

24 1.4K 1
MỘT số PHƯƠNG PHÁP CHỨNG MINH  TÍNH ĐÚNG của THUẬT TOÁN và ỨNG DỤNG (tóm tắt)

Đ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 Bế Thị Hương MỘT SỐ PHƯƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG CỦA THUẬT TOÁN VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội – Năm 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Bế Thị Hương MỘT SỐ PHƯƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG CỦA THUẬT TOÁN VÀ ỨNG DỤNG Chuyên ngành: Cơ sở Toán học cho Tin học Mã số: 60460110 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN THỊ HỒNG MINH Hà Nội – Năm 2015 MỞ ĐẦU Để đánh giá thuật toán tốt có nhiều tiêu chí bỏ qua tính thuật toán Và nội dung luận văn theo đề tài nghiên cứu: “Một số phương pháp chứng minh tính thuật toán ứng dụng” Luận văn nhằm tìm hiểu, nghiên cứu, tổng hợp phương pháp chứng minh tính thuật toán Cấu trúc luận văn gồm chương, nội dung sau: Chương Tổng quan phân tích thuật toán Chương nhằm tổng hợp lại số kiến thức chung toán, thuật toán, cấu trúc liệu, chương trình kiến thức phân tích thuật toán Trong chương tổng hợp lại số phương pháp thiết kế thuật toán thường sử dụng thực tế Như kỹ thuật đệ quy, phương pháp chia để trị, phương pháp quay lui, phương pháp nhánh cận, phương pháp quy hoạch động phương pháp tham lam Chương Một số phương pháp chứng minh tính thuật toán Nội dung chương gồm chiến lược chứng minh tính thuật toán; phương pháp cụ thể để chứng minh tính thuật toán phương pháp quy nạp phương pháp bất biến vòng lặp Trong đó, phương pháp quy nạp chứng minh cho thuật toán đệ quy, phương pháp bất biến vòng lặp chứng minh cho thuật toán không đệ quy Đối với phương pháp trình bày đặc điểm, phương pháp chung đồng thời nêu số ví dụ thuật toán chứng minh tính thuật toán Chương Ứng dụng chứng minh tính số thuật toán Nghiên cứu số toán có sử dụng thuật toán kinh điển, thường sử dụng vận dụng lý thuyết chương để chứng minh tính thuật toán Như toán dãy đơn điệu tăng dài nhất; Chia kẹo; Cây bao trùm nhỏ CHƯƠNG TỔNG QUAN VỀ PHÂN TÍCH THUẬT TOÁN Để khẳng định thuật toán tốt điều không dễ dàng Thật vậy, để đánh giá thuật toán tốt ta cần nhiều kỹ thuật từ thiết kế, phân tích đến đánh giá thuật toán Ở chương đề cập tổng quát đến vấn đề phân tích thuật toán số thuật toán thường dùng khoa học tính toán đại 1.1 Một số khái niệm 1.1.1 Bài toán Điểm quan trọng giải toán máy tính cần xác định rõ biết input (dữ liệu vào) kết cần thu output (dữ liệu ra) phân tích mối quan hệ hai yếu tố 1.1.2 Thuật toán (Algorithm) Để giải toán máy tính sau xác định rõ ràng toán việc quan trọng phải đưa thuật toán tốt, thuật toán thiết kế lựa chọn thuật toán có Thuật toán để biểu diễn cách giải toán máy tính Định nghĩa: Thuật toán (Algorithm) để giải toán dãy hữu hạn thao tác xếp theo trình tự xác định, cho sau thực dãy thao tác ấy, từ liệu vào giá trị tập giá trị (input) toán ta nhận giá trị tập giá trị gọi liệu (output) toán 1.1.3 Cấu trúc liệu (Data Structure) 1.1.4 Chương trình (Program) Chương trình = Thuật toán + Cấu trúc liệu Chương trình thể ngôn ngữ lập trình cụ thể thuật toán cho thể cấu trúc liệu xác định Việc lựa chọn cấu trúc liệu phù hợp với thuật toán ngược lại lựa chọn thuật toán phù hợp với cấu trúc liệu cụ thể phụ thuộc vào mục đích chương trình, kỹ người lập trình khả ngôn ngữ lập trình cụ thể 1.2 Một số phương pháp thiết kế thuật toán Ngày có nhiều phương pháp thiết kế thuật toán nghiên cứu sử dụng công nghệ phần mềm Có toán giải thuật toán toán chưa có thuật toán có thuật toán cho lời giải tương đối chấp nhận Trong luận văn nghiên cứu phương pháp thiết kế thuật toán ứng dụng cho toán có thuật toán để giải 1.2.1 Kỹ thuật đệ quy Đệ quy khái niệm toán học tin học Ta nói đối tượng đệ quy định nghĩa qua đối tượng dạng với quy nạp Ý tưởng kỹ thuật đệ quy chia toán cần giải thành nhiều toán nhỏ hơn, việc chia thực toán có lời giải lời giải thường tường minh tương đối đơn giản Khái niệm giải thuật đệ quy: Một toán T thực giải thuật toán T’ có dạng giống T giải thuật gọi giải thuật đệ quy Bài toán T’ có dạng giống toán T T’ theo nghĩa phải toán nhỏ T Bài toán T’ phải dễ giải toán T việc giải toán T’ không cần dùng đến T 1.2.2 Phương pháp chia để trị (Divide and Conquer) Phương pháp chia để trị có tư tưởng chia toán ban đầu thành toán tương tự Các toán tiếp tục chia nhỏ hơn, chia liên tiếp gặp toán có lời giải dễ dàng đưa lời giải Sau giải toán kết hợp kết lại với ta thu kết cần tìm toán ban đầu 1.2.3 Phương pháp quay lui (Backtracking) Tư tưởng thuật toán quay lui tìm nghiệm toán cách xem xét tất phương án Ta thử duyệt phương án tìm thấy phương án gọi phương pháp thử sai Với tốc độ xử lí nhanh máy vi tính phương pháp giải nhiều toán nhiên kích thước toán lớn trở nên không phù hợp Bởi kích thước toán lớn kéo theo thời gian duyệt phương án độ phức tạp mặt không gian lớn lớn đến mức chấp nhận Do phương pháp thường hữu dụng với toán có kích thước nhỏ 1.2.4 Phương pháp nhánh cận Tư tưởng phương pháp nhánh cận sau: Ta xây dựng thành phần nghiệm Giả sử ta xây dựng k thành phần véc tơ nghiệm ( x1 , x , , x k ) , nhiệm vụ phải xây dựng thành phần thứ k+1 tức tìm xk+1 cho phù hợp Trong trình mở rộng nghiệm cách đánh giá tất nghiệm mở rộng ( x1 , x , , x k , x k+1 , ) không tốt nghiệm tốt biết ta không mở rộng nghiệm theo nhánh Như thuật toán nhánh cận nhanh thuật toán quay lui vét cạn nhánh cận duyệt hết tất trường hợp toán Nói tóm lại, với phương pháp nhánh cận ta thu hẹp phạm vi tìm kiếm nghiệm cách đánh giá trình ta mở rộng thành phần nghiệm để bỏ nhánh chắn nghiệm toán Do phương pháp nhánh cận nhanh bớt độ phức tạp mặt không gian 1.2.5 Phương pháp quy hoạch động (Dynamic Programming ) Phương pháp quy hoạch động nhìn chung áp dụng cho lớp toán tối ưu cho kết Trong thuật toán giải toán tối ưu thường phải giải nhiều trường hợp quy toán để giải lựa chọn giải pháp tối ưu toán Các bước để giải toán quy hoạch động gồm công việc sau đây: − Tìm nghiệm toán nhỏ (Thường trường hợp suy biến); − Tìm công thức (gọi công thức truy hồi) xây dựng nghiệm cho toán thông qua nghiệm toán nhỏ hơn; − Tạo bảng phương án lưu trữ giá trị nghiệm toán con; − Từ bảng phương án suy nghiệm toán ban đầu cần giải 1.2.6 Phương pháp tham lam (Greedy Method) Tư tưởng phương pháp tham lam sau: Ta xây dựng thành phần nghiệm Giả sử ta xây dựng k thành phần véc tơ nghiệm ( x1 , x , , x k ) , nhiệm vụ phải xây dựng thành phần thứ k+1 tức tìm xk+1 Lúc thành phần xk+1 lựa chọn theo tiêu chí tốt theo hàm f(X) tập ứng cử viên Sk để ( x1 , x , , x k , x k+1 ) Cứ tiếp tục xây dựng hết thành phần nghiệm X Với cách làm có số toán xây dựng hàm f(X) thích hợp tìm nghiệm tối ưu Còn phần nhiều toán ta tìm nghiệm gần với nghiệm tối ưu sử dụng thuật toán tham lam 1.3 Phân tích thuật toán Phân tích thuật toán gồm nhiều vấn đề phân tích tính đúng, tính hiệu quả, độ phức tạp thuật toán 1.3.1 Tính đắn thuật toán Thiết kế xong thuật toán câu hỏi luôn phải có thuật toán thiết kế chưa? Cách đơn giản mà sử dụng thông dụng viết chương trình cho thuật toán thiết kế chạy thử chương trình với nhiều liệu vào cụ thể (tests) để kiểm tra liệu có chuẩn xác hay chưa Tuy nhiên, cách khẳng định thuật toán với trường hợp cụ thể mà Có cách khác chứng minh thuật toán chứng minh toán học Nhưng với cách chứng minh thuật toán toán học phức tạp nhiều đòi hỏi nhiều kiến thức tổng hợp toán học tin học cộng với khả người thực việc chứng minh thuật toán Chúng ta nghiên cứu việc cụ thể chương sau 1.3.2 Độ phức tạp thuật toán a) Độ phức tạp mặt thời gian b) Độ phức tạp mặt không gian 10 CHƯƠNG MỘT SỐ PHƯƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG CỦA THUẬT TOÁN Chúng ta biết thuật toán vô quan trọng nói thuật toán mang tính chất định để giải toán máy tính Nhưng thuật toán vừa thiết kế xong chưa thể khẳng định thuật toán có hay không Ở chương nghiên cứu tổng quan chiến lược chứng minh tính thuật toán Nghiên cứu chi tiết chiến lược chứng minh tính thuật toán cách trực tiếp dựa vào toán học mà không cần chạy test chương trình cụ thể 2.1 Các chiến lược chứng minh tính thuật toán Để kiểm tra thuật toán có hay không ta có nhiều chiến lược kiểm thử, chứng minh tính kết hợp kiểm thử chứng minh tính chiến lược có ưu, nhược điểm riêng Sau số đặc điểm sơ lược chiến lược a) Kiểm thử (Testing): b) Chứng minh tính (Correctness proof): 11 Với chiến lược chứng minh tính thuật toán cần dùng kiến thức toán học để chứng minh thuật toán Cách chứng minh cho toán tổng quát đòi hỏi tư trừu tượng logic toán học chặt chẽ Có phương pháp chứng minh tính thuật toán phương pháp quy nạp, phương pháp bất biến vòng lặp Đây nội dung nghiên cứu chủ yếu thực luận văn c) Kết hợp kiểm thử chứng minh tính đúng: Để đảm bảo tính thuật toán cách chặt chẽ ta kết hợp hai chiến lược kiểm thử chứng minh tính nêu 2.2 Các phương pháp chứng minh tính (Correctness proofs) Làm để biết thuật toán hoạt động nào? Cách tốt chứng minh thuật toán Có số phương pháp chứng minh tính thuật toán như: Đối với thuật toán đệ quy chứng minh tính phương pháp quy nạp Đối với thuật toán không đệ quy 12 sử dụng phương pháp bất biến vòng lặp cho vòng lặp 2.2.1 Phương pháp quy nạp (induction) a) Phương pháp quy nạp toán học b) Chứng minh tính thuật toán phương pháp quy nạp Các thuật toán có dòng lệnh đơn lẻ chứa đệ quy hay lặp ta dễ dàng thấy tính với thuật toán có chứa đệ quy hay vòng lặp việc chứng minh trở nên phức tạp Sau ta sử dụng phương pháp quy nạp toán học nêu để chứng minh tính thuật toán đệ quy Ta chứng minh tính thuật toán đệ quy phương pháp quy nạp theo kích thước liệu vào sau: − Cơ sở quy nạp: Trường hợp suy biến đệ quy Đây điều kiện phải có để thuật toán có tính dừng 13 − Giả thiết quy nạp: Giả sử thuật toán với liệu kích thước n − Tổng quát: Chứng minh thuật toán với liệu kích thước n+1 c) Một số ví dụ 2.2.2 Phương pháp bất biến vòng lặp (loop invariant) a) Chứng minh tính thuật toán phương pháp bất biến vòng lặp Chứng minh tính thuật toán lặp phương phương pháp bất biến vòng lặp có đặc điểm sau: Bất biến vòng lặp biểu thức logic (của biến sử dụng vòng lặp) có giá trị không đổi trình lặp Tại thời điểm thuật toán có vòng lặp, có vòng lặp lồng phải vòng lặp bên Sau vòng lặp bất biến vòng lặp trả lại kết phải trì vòng lặp tiếp theo.Sử dụng bất biến vòng lặp để thuật toán lặp có tính dừng Thông qua kết thúc điều kiện chứng minh thuật toán cho kết 14 b) Các đặc trưng bất biến vòng lặp − Khởi tạo: bất biến vòng lặp phải trước lần lặp − Duy trì: Nếu bất biến vòng lặp trước vòng lặp bất biến vòng lặp trước vòng lặp − Kết thúc: Khi vòng lặp kết thúc, bất biến vòng lặp cho tính chất hữu ích giúp chứng minh thuật toán đắn c) Một số ví dụ 15 CHƯƠNG ỨNG DỤNG CHỨNG MINH TÍNH ĐÚNG CỦA MỘT SỐ THUẬT TOÁN Việc chứng minh tính thuật toán toán học đòi hỏi nhiều kiến thức tổng hợp Ở chương nhằm nghiên cứu chứng minh số thuật toán kinh điển với ứng dụng việc giải toán thực tế Mặc dù thuật toán kinh điển đời từ lâu cải tiến đưa vào sử dụng nhiều phần mềm Vì để tìm bất biến vòng lặp để chứng minh thuật toán vấn đề khó nên sau nghiên cứu toán thuật toán sử dụng phương pháp bất biến vòng lặp: 3.1 Bài toán: Dãy đơn điệu tăng dài Cho dãy gồm n số nguyên a1, a2, , an Tìm dãy đơn điệu tăng có độ dài lớn dãy số (các phần tử không liền kề phải giữ nguyên thứ tự ban đầu) Nhận xét: Tất dãy dãy số n phần tử ban đầu 2n Do phương pháp duyệt tất dãy lựa chọn dãy phù hợp thực n lớn không gian duyệt lớn Do ta lựa chọn phương pháp quy 16 hoạch động nhằm tiết kiệm không gian nhớ chi phí thời gian để giải toán cho 3.2 Bài toán: Chia kẹo Có n gói kẹo, gói kẹo thứ i chứa a[i] kẹo, đưa cách chia gói kẹo thành phần cho độ lệch số kẹo hai phần − Input: Dữ liệu vào từ tệp ChiaKeo.INP + Dòng đầu số gói kẹo n + Dòng thứ hai số kẹo gói − Output: Dữ liệu tệp ChiaKeo.OUT + Số gói kẹo phần sau chia 3.3 Bài toán Cây bao trùm nhỏ (Minimum spanning tree) Bài toán: Cho đồ thị vô hướng có trọng số G=(V,E,w) Gọi T bao trùm G, w(T) trọng số bao trùm T Trọng số bao trùm T tổng trọng số cạnh T Trong đồ thị có nhiều bao trùm, vấn đề đặt cần tìm bao trùm có trọng số nhỏ hay gọi bao trùm nhỏ − Input: Đồ thị vô hướng có trọng số G=(V,E,w) 17 − Output: Cây bao trùm nhỏ T đồ thị G Ta sử dụng phương pháp tham lam để thiết kế thuật toán sau: Sau hai thuật toán tham lam kinh điển dùng để giải toán bao trùm nhỏ đồ thị vô hướng có trọng số Thuật toán Kruskal: Thuật toán xuất lần Joseph Kruskal năm 1956 Ý tưởng thuật toán Kruskal để tìm bao trùm nhỏ đồ thị vô hướng có trọng số G=(V,E,w) khởi tạo T cạnh nào, sau duyệt danh sách cạnh đồ thị từ cạnh có trọng số nhỏ đến cạnh có trọng số lớn, xét tới cạnh việc thêm cạnh vào T mà không tạo thành chu trình đơn thêm cạnh vào T Việc lặp lặp lại khi: + Hoặc kết nạp |V|-1 cạnh vào T T bao trùm nhỏ nhất; + Hoặc duyệt hết danh sách cạnh mà chưa kết nạp đủ |V|-1 cạnh kết luận đồ thị không liên thông không tồn bao trùm 18 Như để thực thuật toán Kruskal danh sách cạnh xếp ngẫu nhiên mà phải xếp thành dãy không giảm Thêm phải kiểm tra xem việc thêm vào cạnh có tạo thành chu trình đơn hay không Thuật toán Prim (1957): Thuật toán Kruskal có hiệu đồ thị có số cạnh (còn gọi đồ thị thưa) trở nên hiệu số cạnh đồ thị nhiều (còn gọi đồ thị dày) thời gian xếp cạnh lớn nhiều Khi đồ thị dày có thuật toán hiệu thuật toán Prim Ý tưởng thuật toán Prim: Ban đầu ta khởi tạo T gồm đỉnh đỉnh đồ thị Sau tìm dần đỉnh cách chọn đỉnh gần T tức có khoảng cách đến T nhỏ Khi ta kết nạp đỉnh cạnh nhỏ tương ứng vào T Quá trình lặp lặp lại thỏa mãn điều kiện sau đây: + Hoặc kết nạp đủ n đỉnh vào T, T bao trùm nhỏ cần tìm + Hoặc chưa kết nạp đủ n đỉnh không cạnh nối đỉnh T với đỉnh 19 T Khi đồ thị cho đồ thị không liên thông không tồn bao trùm Kết luận đồ thị không tồn bao trùm nhỏ 20 KẾT LUẬN Bản luận văn trình bày số vấn đề thiết kế phân tích thuật toán Tập trung sâu tìm hiểu hệ thống hóa vấn đề liên quan tới hai phương pháp chứng minh tính thuật toán Đó là, phương pháp chứng minh tính thuật toán quy nạp áp dụng cho thuật toán đệ quy phương pháp chứng minh tính thuật toán bất biến vòng lặp áp dụng cho thuật toán có chứa vòng lặp Áp dụng hai phương pháp để chứng minh tính cho thuật toán giải số toán cụ thể, bao gồm: - Chứng minh tính cho thuật toán quy hoạch động giải toán tìm dãy đơn điệu tăng dài dãy số Và toán có tính ứng dụng toán toán bắc cầu - Chứng minh tính cho thuật toán quy hoạch động giải toán kẹo với tư tưởng sử dụng thuật toán quy hoạch động tìm dãy có tổng S 21 - Chứng minh tính cho thuật toán tham lam giải toán bao trùm nhỏ với hai thuật toán Kruskal Prim Trong khuôn khổ luận văn, với thời gian hạn chế đạt việc tìm hiểu vận dụng hai phương pháp chứng minh tính vào số toán kinh điển, có tính phổ biến Đề tài phát triển theo hướng nghiên cứu phương pháp khác chứng minh tính thuật toán áp dụng phương pháp thuật toán cho nhiều toán khác, đặc biệt thuật toán có tính phức tạp kết hợp nhiều kĩ thuật thiết kế thuật toán… Mặc dù thân cố gắng việc tìm tòi, nghiên cứu giúp đỡ nhiệt tình cô giáo hướng dẫn thời gian hạn chế công tác luận văn khó tránh khỏi thiếu sót Kính mong đóng góp ý kiến thầy cô bạn 22 [...]... là, phương pháp chứng minh tính đúng của thuật toán bằng quy nạp áp dụng cho các thuật toán đệ quy và phương pháp chứng minh tính đúng của thuật toán bằng bất biến vòng lặp áp dụng cho các thuật toán có chứa vòng lặp Áp dụng hai phương pháp trên để chứng minh tính đúng cho các thuật toán giải một số bài toán cụ thể, bao gồm: - Chứng minh tính đúng cho thuật toán quy hoạch động giải bài toán tìm dãy... kiểm thử và chứng minh tính đúng: Để đảm bảo tính đúng của thuật toán một cách chặt chẽ hơn nữa ta có thể kết hợp cả hai chiến lược kiểm thử và chứng minh tính đúng đã nêu ở trên 2.2 Các phương pháp chứng minh tính đúng (Correctness proofs) Làm thế nào để biết thuật toán hoạt động thế nào? Cách tốt nhất là chứng minh thuật toán là đúng Có một số phương pháp chứng minh tính đúng của thuật toán như:... a) Kiểm thử (Testing): b) Chứng minh tính đúng (Correctness proof): 11 Với chiến lược chứng minh tính đúng của thuật toán cần dùng các kiến thức toán học để chứng minh thuật toán đúng Cách này chứng minh được cho bài toán tổng quát nhưng đòi hỏi tư duy trừu tượng và logic toán học chặt chẽ Có các phương pháp chứng minh tính đúng của thuật toán như phương pháp quy nạp, phương pháp bất biến vòng lặp Đây... c) Một số ví dụ 15 CHƯƠNG 3 ỨNG DỤNG CHỨNG MINH TÍNH ĐÚNG CỦA MỘT SỐ THUẬT TOÁN Việc chứng minh tính đúng của thuật toán bằng toán học đòi hỏi nhiều kiến thức tổng hợp Ở chương này nhằm nghiên cứu và chứng minh một số thuật toán kinh điển cùng với ứng dụng của nó trong việc giải quyết các bài toán trong thực tế Mặc dù các thuật toán kinh điển đã ra đời từ lâu nhưng nó vẫn luôn được cải tiến và đưa vào... điều kiện phải có để thuật toán có tính dừng 13 − Giả thiết quy nạp: Giả sử thuật toán đúng với dữ liệu kích thước n − Tổng quát: Chứng minh thuật toán đúng với dữ liệu kích thước n+1 c) Một số ví dụ 2.2.2 Phương pháp bất biến vòng lặp (loop invariant) a) Chứng minh tính đúng của thuật toán bằng phương pháp bất biến vòng lặp Chứng minh tính đúng của thuật toán lặp bằng phương phương pháp bất biến vòng... được việc tìm hiểu và vận dụng hai phương pháp chứng minh tính đúng vào một số bài toán kinh điển, có tính phổ biến Đề tài có thể phát triển theo hướng nghiên cứu các phương pháp khác trong chứng minh tính đúng của thuật toán và áp dụng các phương pháp đối với các thuật toán cho nhiều bài toán khác, đặc biệt là các thuật toán có tính phức tạp như kết hợp nhiều kĩ thuật thiết kế thuật toán Mặc dù bản... 10 CHƯƠNG 2 MỘT SỐ PHƯƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG CỦA THUẬT TOÁN Chúng ta đã biết thuật toán là vô cùng quan trọng và có thể nói là thuật toán mang tính chất quyết định để giải một bài toán trên máy tính Nhưng một thuật toán vừa thiết kế xong chưa thể khẳng định được ngay là thuật toán đó có đúng hay không Ở chương này nghiên cứu tổng quan về các chiến lược chứng minh tính đúng của thuật toán Nghiên... điệu tăng dài nhất của dãy số Và một bài toán có tính ứng dụng của bài toán này đó là bài toán bắc cầu - Chứng minh tính đúng cho thuật toán quy hoạch động giải bài toán cái kẹo với tư tưởng sử dụng thuật toán quy hoạch động tìm dãy con có tổng bằng S 21 - Chứng minh tính đúng cho thuật toán tham lam giải bài toán cây bao trùm nhỏ nhất với hai thuật toán Kruskal và Prim Trong khuôn khổ của luận văn, với... chiến lược chứng minh tính đúng của thuật toán một cách trực tiếp dựa vào toán học mà không cần chạy các bộ test chương trình cụ thể 2.1 Các chiến lược chứng minh tính đúng thuật toán Để kiểm tra thuật toán có đúng hay không ta có nhiều chiến lược như kiểm thử, chứng minh tính đúng hoặc kết hợp cả kiểm thử và chứng minh tính đúng nhưng mỗi chiến lược đều có ưu, nhược điểm riêng Sau đây là một số đặc điểm... dàng thấy được tính đúng của nó nhưng với các thuật toán có chứa đệ quy hay vòng lặp thì việc chứng minh trở nên phức tạp hơn Sau đây ta sử dụng phương pháp quy nạp toán học đã nêu ở trên để chứng minh tính đúng của thuật toán đệ quy Ta sẽ chứng minh tính đúng của thuật toán đệ quy bằng phương pháp quy nạp theo kích thước dữ liệu vào như sau: − Cơ sở của quy nạp: Trường hợp suy biến của đệ quy Đây

Ngày đăng: 19/06/2016, 10:14

Từ khóa liên quan

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

Tài liệu liên quan