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

Một số phương pháp chứng minh tính đúng của thuật toán và ứng dụng

68 10 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 68
Dung lượng 0,91 MB

Nội dung

ĐẠ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 TỐ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 LỜI CẢM ƠN Lời em xin chân thành cảm ơn thầy giáo, cô giáo giảng dạy lớp cao học Cơ sở Toán học cho Tin học, Khoa Toán – Cơ – Tin học, Trƣờng Đại học Khoa học Tự nhiên – ĐHQGHN khóa 2012 – 2014 Các thầy nhiệt tình, tâm huyết giảng dạy cho em học tập, nghiên cứu bổ sung đƣợc thêm nhiều kiến thức quan trọng, hữu ích nghiên cứu công tác giảng dạy trƣờng THPT chuyên Đồng thời kịp nhận sửa đổi, bổ sung kiến thức cịn hiểu chƣa thật xác giúp tăng cƣờng lực phát triển tƣ nghiên cứu khoa học Đặc biệt, em gửi lời cảm ơn chân thành sâu sắc tới cô giáo TS.Nguyễn Thị Hồng Minh (Khoa Sau Đại học – ĐHQGHN) Cô giảng dạy với hƣớng dẫn luận văn cho em cách khoa học, tận tâm, chu đáo chi tiết để em hoàn thành luận văn cách tốt Cảm ơn gia đình cho em chỗ dựa vững để hồn thành khóa học nhƣ hồn thành luận văn Mặc dù có nhiều cố gắng việc nghiên cứu khoa học để hoàn thành luận văn nhiên hạn chế cá nhân mặt thời gian nên em khó tránh đƣợc thiếu sót Kính mong thầy bạn đóng góp ý kiến q báu để hồn chỉnh luận văn MỤC LỤC MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ PHÂN TÍCH THUẬT TỐN 1.1 Một số khái niệm 1.1.1 Bài toán 1.1.2 Thuật toán (Algorithm) 1.1.3 Cấu trúc liệu (Data Structure) 10 1.1.4 Chƣơng trình (Program) 10 1.2 Một số phƣơng pháp thiết kế thuật toán 11 1.2.1 Kỹ thuật đệ quy 11 1.2.2 Phƣơng pháp chia để trị (Divide and Conquer) 14 1.2.3 Phƣơng pháp quay lui (Backtracking) 15 1.2.4 Phƣơng pháp nhánh cận 17 1.2.5 Phƣơng pháp quy hoạch động (Dynamic Programming ) 19 1.2.6 Phƣơng pháp tham lam (Greedy Method) 21 1.3 Phân tích thuật tốn 22 1.3.1 Tính đắn thuật tốn 22 1.3.2 Độ phức tạp thuật toán 23 a) Độ phức tạp mặt thời gian 23 b) Độ phức tạp mặt không gian 23 CHƢƠNG MỘT SỐ PHƢƠNG PHÁP CHỨNG MINH TÍNH ĐÚNG CỦA THUẬT TỐN 25 2.1 Các chiến lƣợc chứng minh tính thuật tốn 25 2.2 Các phƣơng pháp chứng minh tính (Correctness proofs) 26 2.2.1 Phƣơng pháp quy nạp (induction) 26 a) Phƣơng pháp quy nạp toán học 26 b) Chứng minh tính thuật tốn phƣơng pháp quy nạp 27 c) Một số ví dụ 27 2.2.2 Phƣơng pháp bất biến vòng lặp (loop invariant) 33 a) Chứng minh tính thuật tốn phƣơng pháp bất biến vịng lặp 33 b) Các đặc trƣng bất biến vòng lặp 35 c) Một số ví dụ 35 CHƢƠNG ỨNG DỤNG CHỨNG MINH TÍNH ĐÚNG CỦA MỘT SỐ THUẬT TOÁN 44 3.1 Bài toán: Dãy đơn điệu tăng dài 44 3.2 Bài toán: Chia kẹo 53 3.3 Bài toán Cây bao trùm nhỏ (Minimum spanning tree) 54 KẾT LUẬN 61 MỞ ĐẦU Thế kỷ XXI kỷ tri thức đại, tri thức không kể đến công cụ hỗ trợ đắc lực máy tính điện tử lĩnh vực sống Mặc dù công nghệ chế tạo ngày phát triển phát triển với tốc độ nhanh nhƣng để sử dụng máy tính điện tử cách hiệu cao thuật tốn (Algorithm) thành phần ln quan trọng thiếu đƣợc kể từ máy tính điện tử đời Theo lịch sử toán học nguồn gốc từ thuật toán “Algorithm” bắt nguồn từ “Algorism” tên nhà bác học tiếng ngƣời Arập Abu Jafar Mohammed ibn Musâ al Khowârizmi (Phiên âm từ al Khowârizmi Algorism) Ông ngƣời viết hai sách tiếng “Sơ lƣợc phép tính” “Về hệ đếm ấn độ” vào khoảng năm 850 Đây sách giáo khoa tiếng toán học Lịch sử ghi nhận ngƣời đƣợc coi nhà lập trình giới nữ bá tƣớc Ada Lovelace (10/12/1815 - 27/11/1852), tên khai sinh Augusta Ada Byron Các nhà khoa học sau cho thuật toán (viết năm 1842) Ada Lovelace thuật tốn máy tính ngƣời lập ra, lần thể rõ bƣớc phát triển logic, đặc trƣng hoạt động xác định dành riêng cho máy tính Với lịch sử lâu đời thuật toán đƣợc nghiên cứu phát triển tận ngày tiếp tục đƣợc nghiên cứu phát triển Khi lập trình câu hỏi ln ln đƣợc đặt thuật toán đƣợc thiết kế thuật toán đƣợc sử dụng có hay khơng? Điều đảm bảo cho chƣơng trình máy tính thực có cho kết hay không? (Chƣa kể đến kỹ ngƣời lập trình) Vì việc xây dựng thuật toán tốt để giải toán cho bƣớc quan trọng nói quan trọng việc giải toán máy tính điện tử Để đánh giá thuật tốn tốt có nhiều tiêu chí khơng thể bỏ qua tính thuật tố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 tốn Cấu trúc luận văn gồm chƣơng, nội dung nhƣ sau: Chương Tổng quan phân tích thuật tốn Chƣơng nhằm tổng hợp lại số kiến thức chung toán, thuật tốn, cấu trúc liệu, chƣơng trình kiến thức phân tích thuật tốn Gồm định nghĩa, khái niệm ví dụ để minh họa 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 tốn; phƣơng pháp cụ thể để chứng minh tính thuật tốn nhƣ phƣơng pháp quy nạp phƣơng pháp bất biến vòng lặp Đây điểm luận văn Trong đó, phƣơng pháp quy nạp chứng minh cho thuật tốn đệ quy, phƣơng pháp bất biến vịng lặp chứng minh cho thuật tố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 tốn chứng minh tính thuật tốn Đối với thuật tốn phức tạp có chứa đệ quy lặp cần kết hợp khéo léo hai phƣơng pháp chứng minh tính thuật toán quy nạp bất biến vịng lặp Chương Ứng dụng chứng minh tính số thuật toán Nghiên cứu số tốn có sử dụng thuật tố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 tố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 TỐN Để khẳng định đƣợc thuật tố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 tốn Ở chƣơng đề cập tổng quát đến vấn đề phân tích thuật tốn số thuật tốn thƣờng dùng khoa học tính tốn đại 1.1 Một số khái niệm 1.1.1 Bài tốn Khoa học máy tính ngày giải nhiều vấn đề thực tế nhiều lĩnh vự khác nhau, vấn đề ta thƣờng gọi tốn Tuy nhiên tốn khơng phải trƣờng hợp cụ thể mà toán mang tính tổng quát bao gồm hầu nhƣ tất khả giới thực vấn đề cần giải Nhƣ vậy, nói cách dễ hiểu tốn việc ta muốn máy tính thực Có thể u cầu đơn giản nhƣ in dòng chữ hình, giải phƣơng trình bậc hai, giải hệ phƣơng trình bậc hai ẩn kiểm tra số chẵn hay lẻ, Nhƣng giải vấn đề phức tạp nhƣ tìm đƣờng mê cung, tìm đƣờng ngắn nhất, tìm bao trùm, Điểm quan trọng giải tốn máy tính cần xác định rõ biết input (dữ liệu vào) kết cần thu đƣợc output (dữ liệu ra) phân tích mối quan hệ hai yếu tố Sau số ví dụ tốn:  Bài tốn 1.1: Kiểm tra tính nguyên tố số nguyên dƣơng cho trƣớc  Input: Số nguyên dƣơng N  Output: Xác định N số nguyên tố N không số nguyên tố  Bài tốn 1.2: Giải phƣơng trình bậc hai ax2+bx+c=0 (a≠0)  Input: Các số thực a, b, c (a≠0)  Output: Các nghiệm x thỏa mãn phƣơng trình cho thơng báo khơng có nghiệm  Bài tốn 1.3: Tìm ƣớc số chung lớn hai số nguyên dƣơng a, b  Input: Hai số nguyên dƣơng a, b  Output: Ƣớc số chung lớn a b  Bài toán 1.4: Xác định vị trí phần tử có giá trị số nguyên x dãy số nguyên a1, a2, , an  Input: Số n; dãy số nguyên a1, a2, , an số nguyên x  Output: Chỉ số i x=ai x mặt dãy  Bài tốn 1.5 Cho đồ thị vơ hƣớng G=(V, E) Tìm đƣờng ngắn từ đỉnh u tới đỉnh v đồ thị G  Input: Đồ thị vô hƣớng G=(V, E) hai đỉnh u,v  Output: Xác định đƣờng có độ dài ngắn d=(u=v1,v2, ,vn=v) (với đỉnh vi thuộc V, cung (vi, vi+1) thuộc E)  Bài toán 1.6 Sắp xếp dãy số cho trƣớc thành dãy không giảm  Input: Số n dãy gồm n số < a1, a2, …, an>  Output: Một hoán vị < a'1, a'2, …, a'n > chuỗi đầu vào thỏa mãn: a'1  a'2  … a'n 1.1.2 Thuật tốn (Algorithm) Để giải tốn máy tính sau xác định rõ ràng toán việc quan trọng phải đƣa thuật tốn tốt, thuật tốn thiết kế lựa chọn thuật tốn có Thuật toán để biểu diễn cách giải tốn máy tính thêm a[k-1] vào đầu dãy tăng dài dãy a[k-1 n+1] ta đƣợc dãy tăng dài a k 1 , a Tk 1 , a T Tk 1 , , a n 1 0

Ngày đăng: 16/04/2021, 13:59

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w