1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài thuật toán xấp xỉ

65 0 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 65
Dung lượng 1,09 MB

Nội dung

lOMoARcPSD|15978022 Thuật toán xấp xỉ MỤC LỤC CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN VÀ ĐỘ PHỨC TẠP CỦA THUẬT TỐN Thuật tốn 1.1 Khái niệm toán .7 1.2 Khái niệm thuật toán 1.3 Các yêu cầu thuật toán .7 1.4 Các phương pháp mơ tả thuật tốn Độ phức tạp thuật toán .8 2.1 Đánh giá thời gian thực thuật toán 2.2 Chi phí phải trả cho q trình tính tốn 10 2.3 Thời gian thực giải thuật 11 2.4 Độ phức tạp thuật toán 11 2.5 Các qui tắc xác định độ phức tạp thuật toán 13 Vấn đề phân lớp toán 14 CHƯƠNG 2: MỘT SỐ THUẬT TOÁN XẤP XỈ 17 Khái niệm thuật toán xấp xỉ 17 Một số toán minh họa 18 2.1 Bài toán phủ đỉnh đồ thị 18 2.2 Bài toán Người du lịch 19 2.2.1 Thuật toán láng giềng gần (Nearest-neighbor algorithm) .20 2.2.2 Thuật toán phân mảnh (Multifragment-heuristic algorithm) 21 2.2.3 Thuật tốn vịng quanh lần (Twice-around-the-tree algorithm) 21 2.3 Bài tốn KNAPSACK - Bài tốn xếp ba lơ 23 11 lOMoARcPSD|15978022 Thuật toán xấp xỉ 2.3.1 Phát biểu toán 24 2.3.2 Các hướng tiếp cận giải toán 26 2.3.2.1 Tiếp cận hướng kỹ thuật Quay lui – Vét cạn 26 2.3.2.2 Tiếp cận hướng kỹ thuật Quy hoạch động .30 2.3.2.3 Tiếp cận hướng kỹ thuật Nhánh – cận .34 2.3.2.4 Tiếp cận hướng kỹ thuật Tham lam .40 2.3.2.5 Tiếp cận hướng kỹ thuật Di truyền 45 Một số tập áp dụng .63 22 lOMoARcPSD|15978022 Thuật toán xấp xỉ PHẦN MỞ ĐẦU Lý chọn đề tài Như biết, để giải toán, cần tìm đưuọc thuật tốn Khi có nhiều thuật tốn, ta cần lựa chọn thuạt tốn “tơt nhất” Để đánh giá thuật tốn “tơt”, có nhiều tiêu chí Tuy nhiên, thường ta xét đến hai tiêu chí độ phức tạp khơng gian độ phức tạp thời gian Với khoa học công nghệ phát triển nay, không gian nhớ khơng cịn vấn đề H iện có nhiều phương pháp hữu hiệu với chi phí thấp thời gian tính tốn để tìm lời giải Tuy nhiên, với toán thực tế có liệu vào lớn tốn khơng tồn thuật tốn giải tối ưu đề tìm nghiệm xác ta cần sử dụng phương pháp giải – thuật tốn xấp xỉ để tìm nghiệm với tỉ lệ xấp xỉ chấp nhận Phương pháp ứng dụng rộng rãi để giải tốn mà khơng u cầu địi hỏi phải tìm nghiệm xác, từ liệu đầu vào tốn liệu xấp xỉ Vì vậy, tìm thuật tốn xấp xỉ giải tốn có chi phí thời gian tính tốn thấp mà đảm bảo độ xác theo yêu cầu mục tiêu báo cáo cần đạt Theo cách tiếp cận này, xây dựng thuật tốn có độ phức tạp thời gian tính tốn đa thức tốn xét khơng gian Euclide nghiệm tìm có độ xác chấp nhận Trong báo cáo này, giới thiệu số kiến thức thuật tốn nói chung thuật tốn xấp xỉ Từ đó, đề xuất thuật tốn xấp xỉ để tìm lời giải cho toán Phủ đỉnh đồ thị, Người du lịch, Xếp ba lơ Mục đích nghiên cứu - Đưa sở lí thuyết thuật tốn, độ phức tạp thuật tốn; thuật tốn xấp xỉ - Trình bày hướng giải thuật toán xấp xỉ cho toán: Phủ đỉnh đồ thị, Người du lịch, Xếp ba lô Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu: Thuật toán xáp xỉ 44 lOMoARcPSD|15978022 Thuật toán xấp xỉ 3.2 Phạm vi nghiên cứu: Lý thuyết thuật toán, thuật toán xấp xỉ ứng dụng Phương pháp nghiên cứu Phương pháp sử dụng: Nghiên cứu lý thuyết - Nghiên cứu tài liệu thuật tốn, phân tích đánh giá độ phức tạp thuật tốn - Nghiên cứu, phân tích đề xuất hướng giải thuật toán xấp xỉ cho toán: Phủ đỉnh đồ thị, Người du lịch, Xếp ba lơ 55 lOMoARcPSD|15978022 Thuật tốn xấp xỉ CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THUẬT TOÁN VÀ ĐỘ PHỨC TẠP CỦA THUẬT TỐN Thuật tốn 1.1 Khái niệm toán Một toán tin học toán thỏa mãn: xuất phát từ INPUT đầu vào, phải thu OUTPUT đầu Một số vấn đề cần quan tâm: + Bài tốn giải máy tính điện tử + Cần làm rõ: liệu cần đưa vào máy tính (Input) cần lấy (Output) thơng tin gì? + Làm để từ Input ta có Output? (Thuật tốn giải)  Hiển nhiên toán tin học nghiên cứu thuật toán giải toán tương ứng 1.2 Khái niệm thuật toán Định nghĩa 1: Thuật toán dãy hữu hạn thao tác xếp theo trình tự định để sau thực dãy thao tác đó, từ input ta có output cần tìm [1] Trong lý thuyết thuật tốn, cụm từ “thuật tốn” đơi người ta dùng từ khác “giải thuật” 1.3 Các yêu cầu thuật toán Thuật toán phải đảm bảo yêu cầu sau đây: - Tính tổng quan: thuật tốn phải liệu đầu vào - Tính xác định: Các bước thuật tốn phải trình bày rõ ràng, mạch lạc, đảm bảo cho người đọc hiểu theo nghĩa - Tính khả thi: Thuật tốn phải thực được, nghĩa ta sử dụng máy tính kết hợp ngơn ngữ lập trình để thể thuật tốn thời gian hữu hạn - Tính dừng: Nếu liệu vào thỏa mãn điều kiện đầu vào thuật tốn phải kết thúc cho kết sau số hữu hạn bước 66 lOMoARcPSD|15978022 Thuật tốn xấp xỉ - Tính xác (tính đắn): Thuật tốn phải cho kết xác thể đắn sở tốn học - Tính tối ưu: Thuật tốn phải có chi phí khơng gian nhớ chạy thời gian nhanh 1.4 Các phương pháp mơ tả thuật tốn Thuật tốn thể cách sau: Phương pháp liệt kê: Liệt kê bước để thực thuật toán, bước ta sử dụng ký hiệu toán học kết hợp với ngôn ngữ tự nhiên Phương pháp sử dụng sơ đồ khối Sử dụng loại hình khối để thể là: hình elip điểm bắt đầu hay kết thúc, hình thoi khối kiểm tra hình chữ nhật khối tính tốn Có cung định hướng để hướng thuật toán Khối bắt đầu (kết thúc) Khối kiểm tra Khối tính tốn Cung định hướng Ta kết hợp ba loại hình khối cung định hướng để biểu diễn thuật tốn Mơ tả thuật tốn chương trình Sử dụng ngơn ngữ lập trình để thể thuật tốn, cấu trúc chặt chẽ ngơn ngữ lập trình cho phép thể thuật toán cách rõ ràng dễ hiểu Phương pháp áp dụng rộng rãi Độ phức tạp thuật toán 2.1 Đánh giá thời gian thực thuật toán - Tính độc lập Tốc độ thực chương trình khoảng thời gian từ INPUT có OUTPUT toán Tuy nhiên tốc độ thực chương trình phụ thuộc vào ngơn ngữ lập trình, chương trình dịch, hệ điều hành, phần cứng máy… Mặt khác, phải lập trình đo thời gian thực thuật toán Cần đánh giá thời thực cho: 77 lOMoARcPSD|15978022 Thuật tốn xấp xỉ + Khơng phụ thuộc máy, ngơn ngữ lập trình, chương trình biên dịch; + Khơng cần phải triển khai chương trình thực thuật toán; + Chỉ dựa vào thân thuật tốn Trong thuật tốn, ta tính thời gian thực thuật tốn số phép tính cần tiến hành Đây cách làm đáp ứng nhu cầu - Các phép toán sơ cấp Các phép toán sơ cấp phép toán mà thời gian thực đủ ngắn, hay nói khơng vượt q số Các phép tốn sau coi sơ cấp: + Các phép tính số học; + Các phép tính logic; + Các phép chuyển chỗ, phép gán; + Lời gọi thủ tục - Kích thước liệu đầu vào Cho thuật tốn ta hồn tồn ước lượng tổng số phép toán sơ cấp cần thiết để thực thuật tốn Một điều hiển nhiên tổng số phép toán sơ cấp để giải toán phụ thuộc vào kích thước tốn Dùng thuật tốn, tính định thức cấp rõ ràng cần phép tính định thức cấp 10 Tổng số mục liệu đầu vào đặc trưng cho kích thước tốn Người ta thường dùng số nguyên dương n để thể kích thước Như vậy, thuật toán T áp dụng để giải tốn có kích thước n cần tổng số T(n) phép toán sơ cấp T(n) hàm tham số n Hàm số T(n) đặc trưng cho hiệu thuật toán T - Tình trạng liệu đầu vào Khơng có số lượng liệu đầu vào định thời gian thực giải thuật mà tình trạng liệu ảnh hưởng đến việc thuật toán thực nhanh hay chậm Xét toán xếp đơn điệu dãy số Rõ ràng dãy có sẵn thứ tự mong muốn gần thư cơng việc phải làm trường hợp dãy Hoặc tốn tìm kiếm dãy số cho sẵn tìm vị trí phần tử k mảng a[1 n] (nếu k vị trí k không tồn mảng a) + Trường hợp bắt đầu tìm kiếm gặp phần từ k trường hợp tốt (best case) T(n) = 88 lOMoARcPSD|15978022 Thuật toán xấp xỉ + Trường hợp tìm kiếm mà khơng có k mảng hay k nằm cuối mảng trường hợp xấu nhất, phải duyệt qua tất phần tử mảng a[1 n] (worst case) T(n) = n + Trường hợp trung bình T(n) = 0, p(n + 1) + n(1 – p) Tùy theo tình trạng liệu đầu vào mà ta có trường hợp: + Thời gian tốt T(n) thời gian thực nhanh thuật toán với liệu đó, ta ký hiệu Tmin (best case) + Thời gian tồi T(n) thời gian thực chậm thuật toán với liệu đó, ta ký hiệu Tmax (worst case) + Thời gian tính trung bình T(n) trung bình cộng thời gian thực thuật tốn với liệu khác đó, ta ký hiệu Taver (average case) Trong thực tế ta thường dùng thời gian thực trung bình T aver để so sánh đánh giá thuật tốn Nếu việc tính thời gian thực trung bình q khó khăn, đánh giá vào trường hợp xấu nhất, tức dùng Tmax Đơi khi, nhiều tốn thời gian thực địi hỏi thời gian trả lời phải khơng vượt q giới hạn cho phép (ví dụ toán dự báo thời tiết) Trong trường hợp này, dùng ước lượng trường hợp xấu nhất, nghĩa Tmax mà 2.2 Chi phí phải trả cho q trình tính tốn Xét q trình tính tốn, chi phí phải trả cho q trình tính tốn bao gồm: + Chi phí không gian: nhớ - số ô nhớ cần sử dụng q trình tính tốn + Chi phí thời gian: thời gian cần sử dụng cho q trình tính tốn + Nếu cho thuật tốn A Thuật toán thực liệu e Khi đó, thuật tốn A phải trả giá: giá không gian LA(e), giá thời gian TA(e), với e liệu vào Nhận xét: thuật toán A mà xác định thực liêu khác trả giá khác Khi ta có khái niệm chi phí phải trả trường hợp sau: + Chi phí phải trả trường hợp xấu ứng với liệu xấu so với Output + Chi phí phải trả trung bình: tổng số chi phí khác ứng với số liệu chia cho tổng số số số liệu 99 lOMoARcPSD|15978022 Thuật tốn xấp xỉ + Chi phí phải trả tiệm cận: Đó biểu thức biểu diễn tốc độ tăng chi phí thực tế phải trả Nó có giá trị tiệm cận với chi phí thực tế Ngày phát triển không ngừng khoa học công nghệ kỹ thuật điện tử phí nhớ khơng cịn vấn đề cần thiết phải bàn tới mà ta quan tâm tới chi phí phải trả thời gian thực giải thuật Từ ta xét đến thời gian thực giải thuật T(n), độ phức tạp thuật toán 2.3 Thời gian thực giải thuật Với tốn, khơng có giải thuật Chọn giải thuật đưa tới kết nhanh đòi hỏi thực tế Nhưng vào đâu để nói giải thuật nhanh giải thuật kia? Có thể thấy ngay: thời gian thực giải thuật (hay chương trình thể giải thuật đó) phụ thuộc vào nhiều yếu tố Một yếu tố cần ý trước tiên kích thước liệu đưa vào Chẳng hạn thời gian xếp dãy số phải chịu ảnh hưởng số lượng số thuộc dãy số Nếu gọi n số lượng (kích thước liệu vào) thời gian thực T giải thuật phải biểu diễn hàm n: T(n) Các kiểu lệnh tốc độ xử lý máy tính, ngơn ngữ viết chương trình chương trình dịch ngơn ngữ ảnh hưởng tới thời gian thực hiện; yếu tố không đồng với loại máy cài đặt giải thuật, khơng thể đưa chúng vào xác lập T(n) Điều có nghĩa T(n) khơng thể biểu diễn thành đơn vị thời gian giây, phút Tuy nhiên, khơng phải mà so sánh giải thuật mặt tốc độ Nếu thời gian thực giải thuật T1(n) = c.n^2 thời gian thực giải thuật khác T2(n) = k.n (với c k số đó), n lớn, thời gian thực giải thuật T2 rõ ràng so với thời gian thực giải thuật T1 Như vậy, nói thời gian thực giải thuật T(n) tỉ lệ với n^2 hay tỉ lệ với n cho ta ý niệm tốc độ thực giải thuật n lớn (với n nhỏ việc xét T(n) khơng có ý nghĩa) Cách đánh giá thời gian thực giải thuật độc lập với máy tính yếu tố liên quan với máy dẫn tới khái niệm cấp độ lớn thời gian thực giải thuật hay gọi độ phức tạp tính tốn giải thuật 2.4 Độ phức tạp thuật toán Định nghĩa 2: Một hàm f(n) xác định O(g(n)), kí hiệu f(n) = O(g(n)) tồn số C số nguyên n0 cho f(n) ≤ C.g(n) với n ≥ n0 10 lOMoARcPSD|15978022 Thuật tốn xấp xỉ Ví dụ: Chứng minh hàm t(n) = 100n +  O(n^2) - Giả sử ta chọn số c n0 tương ứng trường hợp 101 - Ta có: 100n + < 100n + n (n ≥ 5) = 101n ≤ 101n^2 Một cách khác để kiểm tra hàm t(n) có thuộc lớp hàm O(g(n)) ta sử dụng giới hạn hàm số: c số t(n) O(g(n)) Ví dụ: chứng minh hàm t(n) = ½ n(n-1)  O(n^2) Suy hàm t(n) = ½ n(n-1)  O(n^2) Thơng thường hàm thể độ phức tạp tính tốn giải thuật có dạng: O(log 2n), O(n), O(nlog2n), O(n^2), O(n^3), O(2^n), O(n!), O(n^n) Các hàm 2^n, n^n gọi hàm loại mũ Các dạng n^3, n^2, nlog 2n, log2n gọi hàm loại đa thức Giải thuật với thời gian thực có cấp hàm đa thức thường hiệu chấp nhận 11 1 lOMoARcPSD|15978022 Thuật toán xấp xỉ - Lựa chọn với bánh xe roulette Bánh xe Roulette phương pháp đơn giản việc thực lựa chọn độ thích nghi-tương ứng Mỗi NST phần bánh xe roulette, độ lớn phần tùy theo độ thích nghi Các bánh xe quay N lần, N số NST có dân số (N = Size) Sau vòng xoay, bánh xe dừng NST ghi lại Phương pháp thực theo cách sau: Tính độ lớn NST bánh xe Roulette Chọn ngẫu nhiên số từ – Size làm giới hạn Bánh xe quay qua tất phần tương ứng NST Tổng hợp vị trí rơi vòng quay Các NST rơi vào nhiều chọn làm cha mẹ hệ Tổng độ thích nghi quần thể: F = 16+ 20+ 28+ 11+ 18+ 15 = 108 Xác suất chọn lọc pi NST vi (i= 6) là: p1= 16*100/(16+20+28+11+18+15) = 14,8 % Downloaded by Quang Quang (khoa31141020806@gmail.com) 52 lOMoARcPSD|15978022 Thuật toán xấp xỉ p2= 20*100/(16+20+28+11+18+15) = 18,5 % p3= 28*100/(16+20+28+11+18+15) = 25,9 % p4= 11*100/(16+20+28+11+18+15) = 10,2 % p5= 18*100/(16+20+28+11+18+15) = 16,7 % p6= 15*100/(16+20+28+11+18+15) = 13,9 % Các vị trí sác xuất qi NST vi (i=1…6) là: q1= 14.8% = 0.148 q2= 14,8+ 18.5 = 33.3 % = 0.333 q3= 14,8+ 18.5+ 25,9 = 59.2% = 0.592 q4= 14,8+ 18.5+ 25,9+ 10,2 = 69.4 % = 0.694 q5= 14,8+ 18.5+ 25,9+ 10,2+ 16,7 = 86.1 % = 0.861 q6= 14,8+ 18.5+ 25,9+ 10,2+ 16,7+ 13,9 = 100% = 1.000 Giả sử quay lần bánh xe Roulette, lần chọn NST cho quần thể mới, đạt giá trị ngẫu nhiên khoảng từ [0,1] sau: NST cũ Số lần quay bánh xe V1 V2 V3 V4 V5 V6 Vị trí Giải thích 0.277 0.521 0.811 0.111 0.498 0.602 0.148

Ngày đăng: 27/04/2023, 11:22

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

TÀI LIỆU LIÊN QUAN

w