Thuật toán hàm công việc giải bài toán K-server

24 231 0
Thuật toán hàm công việc giải bài toán K-server

Đ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

Header Page of 126 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Lã Ngọc Hải THUẬT TOÁN HÀM CÔNG VIỆC GIẢI BÀI TOÁN K-SERVER LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội - 2016 Footer Page of 126 Header Page of 126 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - Lã Ngọc Hải THUẬT TOÁN HÀM CÔNG VIỆC GIẢI BÀI TOÁN K-SERVER Chuyên ngành: Cơ sở toán 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 – 2016 Footer Page of 126 Header Page of 126 Lời cảm ơn Em xin gửi lời cảm ơn tới Thầy giáo, Cô giáo, Cán khoa Toán - Cơ - Tin học, trường Đại học khoa học tự nhiên, Đại học Quốc gia Hà Nội tận tình dạy dỗ giúp đỡ em suốt thời gian học cao học Trong trình thực luận văn suốt năm học vừa qua, em nhận bảo hướng dẫn nhiệt tình TS Nguyễn Thị Hồng Minh Em xin gửi tới Cô lời cảm ơn chân thành Em xin gửi lời cảm ơn tới gia đình, bạn bè động viên, khuyến khích tạo điều kiện cho em trình học tập thực luận văn Mặc dù cố gắng để hoàn thành luận văn, hạn chế kinh nghiệm thời gian, nên luận văn tránh khỏi thiếu sót Em mong nhận cảm thông ý kiến đóng góp Thầy, Cô bạn Hà Nội, tháng 11 năm 2016 Học viên Lã Ngọc Hải i Footer Page of 126 Header Page of 126 Mục lục Mở đầu Chương Tổng quan thiết kế thuật toán thuật toán online 1.1 Thiết kế thuật toán 1.1.1 Định nghĩa thuật toán 1.1.2 Các đặc trưng thuật toán 1.1.3 Các dạng biểu diễn thuật toán 1.1.4 Các phương pháp thiết kế thuật toán 1.2 Thuật toán trực tuyến (Thuật toán online) 1.2.1 Giới thiệu 1.2.2 Phân tích cạnh tranh 12 1.2.3 Một số toán điển hình 13 Chương Bài toán k-server thuật toán hàm công việcError! Bookmark not defined 2.1 Bài toán k-server Error! Bookmark not defined 2.1.1 Định nghĩa Error! Bookmark not defined 2.1.2 Tính online toán k-server Error! Bookmark not defined 2.1.3 Một số toán liên quan Error! Bookmark not defined 2.2 Một số hướng giải toán k-serverError! Bookmark not defined 2.2.1 Thuật toán tham lam Error! Bookmark not defined 2.2.2 Thuật toán ngẫu nhiên RANDOM-SlackError! Bookmark not defined 2.2.3 Thuật toán ngẫu nhiên Hamornic Error! Bookmark not defined 2.3 Thuật toán hàm công việc (WFA) giải toán k-serverError! Bookmark no 2.3.1 Thuật toán hàm công việc Error! Bookmark not defined 2.3.2 Thuật toán hàm công việc cải tiến Error! Bookmark not defined Chương Ứng dụng toán k-server Error! Bookmark not defined 3.1 Bài toán Error! Bookmark not defined 3.1.1 Đặt toán Error! Bookmark not defined 3.1.2 Bài toán tổng quát Error! Bookmark not defined 3.2 Phân tích yêu cầu toán Error! Bookmark not defined ii Footer Page of 126 Header Page of 126 3.3 Thiết kế chương trình Error! Bookmark not defined 3.3.1 Phần cứng Error! Bookmark not defined 3.3.2 Kết thực nghiệm Error! Bookmark not defined Kết luận Error! Bookmark not defined Tài liệu tham khảo 18 iii Footer Page of 126 Header Page of 126 Mở đầu Thiết kế đánh giá thuật toán lĩnh vực quan trọng khoa học máy tính Để giải toán máy tính, điều thiếu phải có thuật toán cho toán Lớp toán đặt từ ngành khoa học kỹ thuật, lĩnh vực hoạt động người đa dạng phong phú Có thể có nhiều kĩ thuật khác để thiết kế thuật toán đưa lời giải xác cho toán, với hiệu thực khác Việc nắm kĩ thuật để có chiến lược phù hợp trongthiết kế đánh giá thuật toán cần thiết, giúp tìm đượcnhữngthuật toán cho toán yêu cầu từ xác định thuật toán tốt phù hợp nhất.Một thuật toán tốt giúp giải toán cách xác, đồng thời giảm thiểu thời gian sử dụng không gian, theo nghĩa tài nguyên máy,một cách hợp lí trìnhtính toán Những nghiên cứu kĩ thuật, phương pháp thiết kế thuật toán quan tâm từ sớm mang lại nhiều lợi ích khoa học tính toán thông tin Một số kĩ thuật thiết kế thuật toán chuẩn hóa thành lớp phương pháp, như: Chia để trị, Quay lui, Nhánh cận, Quy hoạch động, Tham lam… Một đặc trưng quan trọng kĩ thuật thiết kế thuật toán chúngchỉ áp dụng toán xác định, tức liệu đầu vào yêu cầu đầu toán cần giảilà có sẵn đầy đủ trước thực thuật toán Tuy nhiên, có số toán, ứng dụng thực tế điều đôi khikhông đáp ứng Có toán cần lời giải, liệu vào cung cấp từngphần, theo thời gian.Lời giải toán thời điểm chỉcăn liệu vào cung cấptại thời điểm trước mà liệu vào sau thời điểm Các toán có đặc trưng gọi toán trực tuyến (online problem).Thuật toán để giải toán trực tuyến gọi thuật toán trực tuyến (onlinealgorithm), luận văn gọi thuật toán Footer Page of 126 Header Page of 126 online Như vậy, thuật toán trực tuyến thực đưa kết đầu toán dựa liệuđầu vào thời điểm cung cấp trước đó, mà đến thông tin đầu vào tương lai Thuật toán trực tuyến nhiều nhà khoa học nhóm nghiên cứu quan tâm phát triển Tuy nhiên việc thiết kế đánh giá thuật toán trực tuyến nhiều thách thức nghiên cứu lí thuyết triển khai ứng dụng.Trong luận văn nàychúng trình bày kết nghiên cứu xung quanh việc tìm hiểu toán trực tuyến, tập trung vào toán kserver, dạng tương đối điển hình toán trực tuyến, vàchiến lược thiết kế thuật toántrực tuyếncho toán thông qua hàm công việc (working function) Với chủ đề “Thuật toán hàm công việc giải toán k-server”, luận văn cấu trúc gồm có chương:  Chương Tổng quan: Là chương trình bày khái niệm thiết kế thuật toán Trong đó, tập trung vào trình bày thuật toán trực tuyến, yếu tố việc thiết kế thuật toán trực tuyến số ví dụ điển hình  Chương Bài toán k-server thuật toán hàm công việc: Là chương trình bày toán điển hình lớp thuật toán trực tuyến, toán k-server Định nghĩa toán, phân tích toán thiết kế số thuật toán lớp thuật toán trực tuyến để giải toán  Chương Ứng dụng: Là chương trình bày số ứng dụng thuật toán trực tuyến toán k-server Trong đó, thực nghiệm đưa kết đánh giá thuật toán trình bày Chương 2 Footer Page of 126 Header Page of 126 Chương Tổng quan thiết kế thuật toán thuật toán trực tuyến Chương trình bày kiến thức sử dụng phần sau, đặc biệt kiến thức liên quan đến thiết kế thuật toán thuật toán trực tuyến Kiến thức chương trình bày dựa vào tài liệu [1], [7],[16], [17] 1.1 Thiết kế thuật toán Khoa học máy tính ngành nghiên cứu sở lý thuyết thông tin tính toán thực ứng dụng chúng hệ thống máy tính Khoa học máy tính gồm nhiều ngành hẹp, số ngành tập trung vào ứng dụng thực tiễn cụ thể chẳng hạn đồ họa máy tính, số ngành khác lại tập trung nghiên cứu đến tính chất toán tính toán lý thuyết độ phức tạp tính toán Ngoài có ngành khác nghiên cứu vấn đề việc thực thi phương pháp tính toán Ví dụ, ngành lý thuyết ngôn ngữ lập trình nghiên cứu phương thức mô tả cách tính toán khác nhau, ngành lập trình nghiên cứu cách sử dụng ngôn ngữ lập trình hệ thống phức tạp, ngành tương tác người-máy tập trung vào thách thức việc làm cho máy tính công việc tính toán hữu ích, dễ sử dụng người dùng Trong khoa học máy tính, thuật toán khái niệm tảng Đầu tiên, thuật toán hiểu quy tắc thực phép toán số học với số viết hệ thập phân Cùng với phát triển máy tính, khái niệm thuật toán hiểu theo nghĩa rộng 1.1.1 Định nghĩa thuật toán Theo Niklaus Wirththì: “Thuật toán + Cấu trúc liệu = Chương trình” (Algorithms + Data Structures = Programs) Footer Page of 126 Header Page of 126 Thuật toán dãy hữu hạn thao tác xếp theo trình tự xác định dùng để giải toán Một thuật toán, thủ tục tính toán định nghĩa xác, lấy giá trị tập giá trị, gọi đầu vào hay liệu vào tạo giá trị, tập giá trị, gọi đầu Miêu tả vấn đề thường xác định nói chung qua quan hệ đầu vào/đầu Một thuật toán dãy bước xác định để chuyển đổi liệu đầu vào thành liệu đầu Chúng ta xem thuật toán công cụ để giải vấn đề tính toán Việc trình bày rõ ràng vấn đề nói chung hình thành mối quan hệ mong muốn đầu vào/đầu Dãy thao tác đơn giản, “giao cho máy tính làm được” để từ đầu vào dẫn đầu cách tường minh Một thuật toán gọi xác với liệu vào, kết thúc với kết xác Chúng ta nói thuật toán xác giải vấn đề cho xác Một thuật toán không xác không dừng liệu vào, cho kết không xác Đối lập với nhiều suy nghĩ, thuật toán không xác có ích, tỉ lệ lỗi quản lý Mỗi thao tác thuật toán hay gọi tác vụ, phép toán, thị hay lệnh… hành động cần thực chế thực thuật toán Mỗi thao tác biến đổi toán từ trạng thái trước sang trạng thái sau Thực tế, thao tác thường sử dụng số đối tượng trạng thái nhập sản sinh đối tượng trạng thái xuất Quan hệ hai trạng thái xuất nhập cho thấy tác động thao tác Dãy thao tác thuật toán nối tiếp nhằm biến đổi toán từ trạng thái ban đầu đến trạng thái kết thúc Khi thuật toán hình thành ta không xét đến việc chứng minh thuật toán mà trọng đến việc áp dụng bước theo hướng dẫn có kết Việc chứng minh tính đầy đủ tính thuật toán phải tiến hành xong trước có thuật toán Nói rõ hơn, thuật toán việc áp dụngcác công thức hay quy tắc, quy trình công nhận hay Footer Page of 126 Header Page 10 of 126 chứng minh mặt toán học."Thuật toán" thường dùng để thuật toán giải vấn đề tin học Hầu hết thuật toán tin học viết thành chương trình máy tính chúng thường có vài hạn chế (vì khả năngcủa máy tính khả người lập trình) Trong nhiều trường hợp, chương trình thiết kế bị thất bại lỗi thuật toán mà người lập trình sử dụng không xác, không đầy đủ, hay không ước định trọn vẹn lời giải vấn đề Tuy nhiên có số toán mà người ta chưa tìm lời giải triệt để, toán gọi toán NP-không đầy đủ Như trên,thuật toán phương pháp đem lại kết cách tối ưu,giảm lượng tài nguyên bỏ để đạt được.Những phương pháp rút từ thực nghiệm giải toán học không,tuy nhiên thuật toán đáp ứng tính logic tối hậu tự nhiên mà nguyên nhiều loại logic mờ Khi nghiên cứu thuật toán, người ta quan tâm đến vấn đề sau:  Giải thuật toán: Lớp toán giải thuật toán, lớp toán không giải thuật toán  Tối ưu hóa thuật toán: Tìm thuật toán tốt  Triển khai thuật toán: Sử dụng ngôn ngữ lập trình để thực thuật toán máy tính Thời gian mà máy tính thực thuật toán không phụ thuộc vào thân thuật toán đó, tùy thuộc máy tính Để đánh giá hiệu thuật toán, xét số phép tính phải thực thực thuật toán Thông thường số phép tính thực phụ thuộc vào cỡ toán, tức độ lớn đầu vào Vì độ phức tạp thuật toán hàm phụ thuộc đầu vào Tuy nhiên ứng dụng thực tiễn, không cần biết xác hàm mà cần biết ước lượng đủ tốt chúng Footer Page 10 of 126 Header Page 11 of 126 1.1.2 Các đặc trưng thuật toán Thuật toán có số đặc trưng sau: a Tính khách quan: Các thao tác, đối tượng thuật toán phải có ý nghĩa rõ ràng, không gây nhầm lẫn Nói cách khác, thực theo người hay theo máy, thuật toán phải đưa kết b Tính dừng: Thuật toán phải dừng cho kết sau số bước hữu hạn c Tính đắn: Thuật toán thuật toán cho kết thỏa mãn yêu cầu đặc tả trường hợp đối tượng đầu vào Thuật toán sai kết đưa sai trường hợp d Tính phổ dụng: Thuật toán dùng để giải lớp toán gồm nhiều toán cụ thể, lớp xác định đặc tả Thuật toán không áp dụng cho toán định mà áp dụng cho lớp toán có đầu vào tương tự 1.1.3 Các dạng biểu diễn thuật toán Trong ngành khoa học máy tính, thuật toán thể thông qua chương trình máy tính (hay tập hợp chương trình máy tính) thiết kế để giải số toán cách có hệ thống.Thuật toán diễn đạt ba dạng: liệt kê bước, sơ đồ khối, mã giả a Dạng liệt kê bước: Là dạng thuật toán trình bày theo ngôn ngữ tự nhiên theo trình tự bước thực thuật toán b Dạng sơ đồ khối: Là dạng dùng hình vẽ để diễn đạt thuật toán Cho hình ảnh trực quan tổng thể thuật toán, dễ hiểu dễ sử dụng c Dạng mã giả: Là dạng thuật toán trình bày văn bản, không ràng buộc nhiều dạng ngôn ngữ lập trình tuân theo số quy ước ban đầu Tùy theo việc định hướng cài đặt thuật toán theo ngôn ngữ lập trình mà ta diễn đạt thuật toán gần với ngôn ngữ lập trình Footer Page 11 of 126 Header Page 12 of 126 1.1.4 Các phương pháp thiết kế thuật toán Các toán giải máy tính ngày phức tạp đa dạng Các thuật toán đòi hỏi có quy mô lớn, tốn nhiều thời gian công sức Tuy nhiên, công việc đơn giản ta chia toán thành toán nhỏ Cách thiết kế thuật toán gọi Modul hóa thiết kế từ xuống Chiến thuật thiết kế chia để trị, tức nhìn nhận vấn đề cách tổng quát, sau chia nhỏ toán thành toán nhỏ giải toán nhỏ Đây thường cách tiếp cận người với hầu hết vấn đề sống.Ví dụ: A A1 A11 A3 A2 A12 A31 A32 A33 Hình 1: Mô hình thiết kế thuật toán từ xuống Thông thường, ta chia toàn thành hai lớp không giao nhau: Lớp toán giải thuật toán lớp không giải thuật toán Đối với lớp toán giải thuật toán, dựa vào đặc trưng trình thiết kế, người ta phân thành số phương pháp điển hình sau:  Phương pháp chia để trị  Phương pháp quay lui  Phương pháp nhánh cận Footer Page 12 of 126 Header Page 13 of 126  Phương pháp tham lam  Phương pháp quy hoạch động  Phương pháp trực tuyến  Phương pháp ngẫu nhiên  Phương pháp xấp xỉ Khi xây dựng thuật toán theo phương pháp trên, có hàng loạt vấn đề cần giải Thường là: yêu cầu tính đắn thuật toán, yêu cầu thời gian, không gian…Hầu hết phương pháp phân tích nghiên cứu rõ ràng Tuy nhiên phương pháp tiếp tục nghiên cứu để đưa lời giải tốt 1.2 Thuật toán trực tuyến (Thuật toán online) 1.2.1 Giới thiệu Phân tích thiết kế thuật toán luôn liên quan đến vấn đề tối ưu hóa Thông thường, người ta thường hi vọng thuật toán thực thi với số lần tính toán Ví dụ, mục tiêu người thiết kế thuật toán giảm tổng thời gian cần thiết để giải toán định Trong số trường hợp khác, người ta quan tâm nhiều đến việc giảm thiểu nhớ sử dụng thuật toán Ngoài ra, có số toán đòi hỏi thuật toán đề giải pháp để giảm thiểu chi phí qua giải pháp khả thi – ví dụ toán lập lịch toán định tuyến mạng Lý thuyết thuật toán trực tuyến tập trung vào việc cung cấp thuật toán, phương pháp để giải vấn đề tối ưu hóa đầu vào cung cấp theo thời gian Sự phát triển lý thuyết tối ưu cổ điển dựa giả định tất liệu đầu vào có sẵn cho thuật toán Tuy nhiên, với nhiều vấn đề thực tế, liệu đầu vào có sẵn mảng sau tiến triển dần Ví dụ toán phân trang (Paging Problem) [8], vấn đề cổ điển việc thiết kế hệ thống điều hành: Bộ nhớ hệ thống máy tính điển hình Footer Page 13 of 126 Header Page 14 of 126 bao gồm nhớ nhanh chia thành số phần gọi trang nhớ thứ cấp nhớ lớn chậm Các đơn vị xử lí trung tâm truy cập có nhớ nhanh, thường chứa trang định nhớ thứ cấp Vì có liệu nhớ nhanh truy cập, nên sách định cần thiết để xác định thiết lập tập trang để trì nhớ nhanh lần sử dụng Đặc biệt, sách thay trang cần thiết để định trang khỏi nhớ nhanh để nhường chỗ cho trang yêu cầu Từ quan điểm lý thuyết tối ưu hóa thông thường, đầu vào cho thuật toán cho toán phân trang chuỗi yêu cầu trang mục đích để giảm thiểu số lượng trang lỗi – số trang bị loại khỏi nhớ nhanh Một thuật toán tham lam đơn giản tối ưu cho toán này: Hoãn trang lỗi lâu tốt cách loại bỏ trang cuối từ trang nhớ nhanh để yêu cầu thêm lần Vấn đề xảy thuật toán chuỗi trang yêu cầu tương lai Thực tế trình tự trang yêu cầu tương lai chưa biết tính từ khứ Do đó, thuật toán để phân trang có định trình tự tiết lộ trang yêu cầu Bài toán phân trang toán đặc trưng thuật toán trực tuyến: Một vấn đề tối ưu hóa tất liệu đầu vào liên quan biết trước, mà tiến triển theo thời gian Nói chung, toán trực tuyến ba (I, O, c) đó:  I tập kí hiệu đầu vào  O tập kí hiệu đầu  c: {In× On+1: n ≥ 0} → R+ hàm chi phí Một thuật toán trực tuyếnA cho toán (I, O, c) hàm A: I* → O Khi đó, với chuỗi đầu vào r = (r1, …, rn) ∈ 𝐼, A đưa chuỗi đầu y = (y0,y1, …, yn) ∈ 𝑂 Với: Footer Page 14 of 126 Header Page 15 of 126 yj = A(r1, …, rj) Tức là, với kí tự đầu vào, thuật toánAcho kết kí tự đầu Chi phí thuật toán A cho đầu vào rkí hiệucostA(r)= cost(r,y) Với toán phân trang với nhớ nhanh gồm k trang, I tập tất trang, O tập tất trạng thái k trang Khi đó, yj tập trang nhớ nhanh bước thứ j Hàm chi phí c chi phí di chuyển trang nhớ nhanh tính sau: Tại bước j, chi phí tỉ lệ thuận với khác đối xứng yj-1 yjvới điều kiệnyj chứa trang yêu cầu cuối rj, số trang phải di chuyển theo thứ tự để thay đổi trạng thái nhớ nhanh từ yj-1 sang yj Từ trang rj phải di chuyển vào nhớ nhanh, muốn yj chứa rj điều thực cách thiết lập chi phí bước j cao tùy ý mà trường hợp Các chi phí cost(r,y) tổng chi phí cho tất bước Chú ý rằng, có đầu y0là trạng thái ban đầu, toán phân trang, thiết lập ban đầu trang nhớ nhanh Đối với toán trực tuyến, có toán offline liên quan, đầu yjcủa thuật toán offline B phụ thuộc vào đầu vào tương lai: yj = B(r1, …, rj) Chi phí tối ưu thuật toán offline, kí hiệu OPT(r), chi phí nhỏ đạt thuật toán offline đầu vào r Trong tối ưu hóa tổ hợp cổ điển, luôn có thuật toán mà tính toán giải pháp tối ưu cho tất đầu vào khó khăn làm để điều hiệu Ngược lại toán trực tuyến với tài nguyên thông tin khan hiếm, sức tính toán cao Kết là, việc nghiên cứu thuật toán trực tuyến chủ yếu tập trung vào chất lượng giải pháp không tập trung vào hiệu thuật toán Mặt khác, 10 Footer Page 15 of 126 Header Page 16 of 126 đầu vào cố định có thiết kế thuật toán trực tuyến đặc biệt mà có chi phí tối ưu Điều cho thấy thuật toán trực tuyến tốt thực tất đầu vào khác Tuy nhiên, phát triển lí thuyết thuật toán cho toán trực tuyến dựa vào đánh giá chất lượng thuật toán trực tuyến Một đánh giá đưa Sleator Tarjan [7] đề xuất tỉ lệ cạnh tranh thuật toán là: Tỉ lệ trường hợp xấu chi phí đạt chi phí thuật toán trực tuyếnchia cho chi phí tối ưu Như vậy, tỉ lệ cạnh tranh thuật toán A tính là: 𝑐 = 𝑚𝑎𝑥𝑟 𝑐𝑜𝑠𝑡 𝐴 (𝑟) (1) 𝑂𝑃𝑇 (𝑟) Trong đó, r tập tất đầu vào Thông thường,sẽ tồn số độc lập với đầu vào r để loại bỏ phụ thuộc vào trạng thái ban đầu Một thuật toán gọi c – cạnh tranh đơn giản cạnh tranh có hữu hạn cạnh tranh với tỉ lệ c Cuối cùng, nghiên cứu toán trực tuyến sử dụng tỉ lệ cạnh tranh tốt gọi phân tích cạnh tranh Phân tích cạnh tranh áp dụng thành công cho nhiều vấn đề trực tuyến tự nhiên Hơn nữa, phục vụ biện pháp thống cho việc nghiên cứu thuộc tính chung toán trực tuyến Các toán trực tuyến nghiên cứu nhiều vấn đề tự nhiên Một số hệ thống nhiệm vụ không gian mêtric, bật toán quản lí liệu quản lí nhớ trực tuyến toán phân trang Một hệ thống nhiệm vụ cung cấp chuỗi kí hiệu đầu vào, gọi nhiệm vụ, chi phí thực nhiệm vụ phụ thuộc vào trạng thái nội hệ thống loại nhiệm vụ yêu cầu Một hệ thống nhiệm vụ metric hệ thống nhiệm vụ với chi phí việc thay đổi trạng thái đáp ứng bất đẳng thức tam giác: Nếu thay đổi từ trạng thái A sang trạng thái C chi phí không thay đổi từ A đến B từ B đến C Trong trường hợp toán phân trang, trạng thái nội 11 Footer Page 16 of 126 Header Page 17 of 126 hệ thống tập trang nhớ nhanh, dễ dàng để thấy chi phí việc thay đổi trạng thái nội đáp ứng bất đẳng thức tam giác Khi tất nhiệm vụ yêu cầu thực hiện, tỉ lệ cạnh tranh 2n-1, n số trạng thái nội Tóm lại, thuật toán ngoại tuyến (thuật toán offline), liệu đầu vào nhập lần toàn trước thuật toán thực Tuy nhiên thuật toán trực tuyến (thuật toán online), liệu đầu vào không nhập lần toàn trước thuật toán thực điều kiện không gian nhớ tính chất liệu Tại bước thực thuật toán phải có phương án kết mà liệu Vì thế, thuật toán trực tuyến phải dự đoán quy luật phân bố liệu xử lí trường hợp xấu Độ phức tạp thuật toán trực tuyến tuyến tính dựa theo kích thước liệu đầu vào xử lí lần lượt, liên tiếp Thuật toán trực tuyến không cho kết xác nhất, nhiên thuật toán thường giảm thiểu lỗi chiến lược Vì thế, thuật toán trực tuyến, quan tâm tới việc đánh giá hiệu thuật toán, kết tốt điều kiện (thời gian, không gian) cho phép 1.2.2 Phân tích cạnh tranh Việc phân tích hiệu suất thuật toán trực tuyến vấn đề quan tâm Đối với toán tối ưu hóa, hiệu suất thuật toán trực tuyến đo lường cách so sánh chi phí thuật toán với thuật toán tối ưu có Tại thời điểm này, người ta tự hỏi suy luận chi phí cho thuật toán trực tuyến, biết thuật toán tối ưu để giải toán đó, đơn giản dùng thuật toán Giả thuyết có thuật toán tối ưu giả OPT toán trực tuyến 12 Footer Page 17 of 126 Header Page 18 of 126 Hiệu suất thuật toán trực tuyến đo lường tỉ lệ cạnh tranh Cho r = r1, r2, …, rn dãy đầu vào thuật toán trực tuyếnA với OPT hiệu suất thuật toán offline tối ưu Khi tỉ lệ cạnh tranh c xác định tỉ lệ trường hợp tồi tệ chi phí đạt chi phí thuật toántrực tuyếnA chia cho chi phí tối ưu (theo (1)) Một thuật toántrực tuyếnA c-cạnh tranh với chuỗi đầu vào r tồn số b cho: 𝑐𝑜𝑠𝑡𝐴 (𝑟) ≤ c OPT(r)+b Nếu A c-cạnh tranh nói A có tỉ lệ cạnh tranh c Bằng trực giác, điều có nghĩa chi phí cho thuật toán A không nhiều yếu tố không đổi lần c lớn so với chi phí cho thuật toán tối ưu ẩn giả chuỗi đầu vào lên đến số phụ Một chiến thuật phổ biến thiết kế phân tích thuật toán sử dụng ngẫu nhiên để cải thiện hiệu suất Một ví dụ điển hình cho nguyên tắc lựa chọn ngẫu nhiên phần tử làm trục thuật toán xếp nhanh (Quick sort) Chúng ta mở rộng việc sử dụng tính ngẫu nhiên để phân tích thiết kế thuật toán trực tuyến Với biến ngẫu nhiên X, E(X) giá trị kì vọng X Khi đó, thuật toán trực tuyến ngẫu nhiên A c-cạnh tranh với chuỗi đầu vào r, tồn số b cho: E(𝑐𝑜𝑠𝑡𝐴 (𝑟)) ≤ c OPT(r)+b Trong hai cách thiết kế ngẫu nhiên xác định, mong muốn thiết kế thuật toán trực tuyến nhằm làm giảm tối thiểu tỉ lệ cạnh tranhc Điều cho đảm bảo hiệu suất thuật toán trực tuyến so với thuật toán tối ưu [9] 1.2.3 Một số toán điển hình Tương tự phương pháp khác, có số toán điển hình cho thuật toán trực tuyến Đặc biệt phải kể đến toán thuê hay mua, toán 13 Footer Page 18 of 126 Header Page 19 of 126 thư kí, toán k-server Trong phần này, luận văn trình bày hai toán ban đầu Chương II trình bày chi tiết toán k-server 1.2.3.1 Bài toán thuê hay mua (rent-or-buy problem)1 Bài toán thuê hay mua (rent-or-buy problem) [14] mô tả sau: Một người định học môn trượt tuyết yêu thích Đây môn thể thao cần có số thiết bị chuyên sâu giày trượt, ván trượt, gậy, Nếu người mua giày trượt tuyết đôi có giá lày$ (y số tiền lớn) thuê đôi giày vào ngày cuối tuần có giá x$/1 ngày Nếu người chơi học trượt tuyết chơi t lần, số tiền phải bỏ m = t*x Vậy vấn đề đưa người chơi nên mua hay nên thuê giày để số tiền phải bỏ (y$ m$)?Việc thuê hay mua giày phụ thuộc vào số lần người chơi trượt tuyết tương lai Tuy nhiên, số lần trượt tuyết trước có nhiều lí do: người chơi bận công việc, thời tiết xấu, người chơi không may bị tai nạn sau số lần chơi người chơi hứng, không muốn chơi trượt tuyết nữa, Mỗi lần chơi, người chơi phải định xem nên mua hay thuê giày Nếu biết trước số lần mua giày, người chơi tính toán chi phí tối thiểu Tại lần chơi, lần trước mua giày thuật toán kết thúc, chưa định thuê hay mua dựa vào kiện số lần chơi Đây toán tối ưu, đầu vào đưa vào lần thực thuật toán Vì toán giải thuật toán trực tuyến Như vậy, hiểu toán theo cách phân tích sau: o Input: Giá thuê, giá mua o Output: Thời điểm mua giày để đạt hiệu cao Sử dụng thuật toán trực tuyến để giải toán thuê hay mua, cần sử dụng phân tích cạnh tranh xác định tỉ lệ cạnh tranh cho toán theo công thức: https://www.ima.umn.edu/~mali/Online_Brown-Bag_Slides.pdf 14 Footer Page 19 of 126 Header Page 20 of 126 𝑐= 𝑂𝑛𝑙𝑖𝑛𝑒𝐴𝑙𝑔𝑜𝑟𝑖𝑡ℎ𝑚𝑆𝑜𝑙𝑢𝑡𝑖𝑜𝑛 𝑂𝑝𝑡𝑖𝑚𝑎𝑙𝑆𝑜𝑙𝑢𝑡𝑖𝑜𝑛 Như vậy, thuật toán trực tuyến cần tìm thời điểm t(số lần chơi) để giá trịc tối ưu Giả sử số tiền mua đôi giày trượt tuyết 500$ lần thuê giày tốn 50$ Khi đó, người chơi trượt tuyết lần, t = c = 500/50 = 10 Nếu người chơi trượt tuyết lần, t = 2, c = 550/100 = 5.5  Tổng quát: o Khi t ≤ 10, c = 500+50(𝑡−1) o Khi t ≥ 10, c = 500+50(𝑡−1) 50𝑡 500 =1+ 𝑡 = 0.9 + 𝑡 10 o Vậy, tỉ lệ cạnh tranh tối ưu c = 1.9 t = 10 Như vậy, người chơi trượt tuyết 11 11 lần, tốt nên mua giày Nếu trượt tuyết lần thuê tốt Và trượt tuyết 10 lần thuê hay mua 1.2.3.2 Bài toán thư kí (Secretary_problem)2 Bài toán thư ký toán tiếng lý thuyết dừng tối ưu Bài toán nghiên cứu xác suất ứng dụng, thống kê, lý thuyết định Bài toán xuất lần Martin Gardner Scientific American năm 1960([10], [11]) Bài toán thư kí phát biểu sau: Một người quản lý cần tuyển thư ký tốt n ứng viên xếp hạng Các ứng viên vấn theo thứ tự ngẫu nhiên Quyết định cho ứng viên phải đưa sau vấn ứng viên Sau bị từ chối, ứng viên tuyển Trong trình vấn, người quản lý xếp hạng ứng http://www.math.uah.edu/stat/urn/Secretary.html 15 Footer Page 20 of 126 Header Page 21 of 126 viên vấn chất lượng ứng viên chưa vấn Nếu người quản lý đồng ý ứng viên cho vị trí thư ký trình vấn kết thúc bất chấp ứng viên chưa vấn hay không Nếu người quản lý chưa chọn ứng viên cuối cùng, bạn phải tuyển người cho vị trí thư ký.Câu hỏi đặt nên sử dụng chiến thuật để tối ưu hóa xác suất tuyển ứng viên tốt Như vậy, người quản lý cần có sách vấn tuyển dụng để tuyển người tốt cho vị trí thư kí? Đối với toán này, thể thiết kế thuật toán làm hai pha Một pha thử: Công ty vấn n/e(trong e số logarit tự nhiên, e = 2.71828…) người lấy ngẫu nhiên từ n người, không tuyển Hai pha tuyển: Công ty vấn người chấp nhận người tốt tất người vấn Khi chứng minh thuật toán theo ý tưởng cho khả chọn người tốt với xác suất 1/e (37%) Như vậy, với n ứng viên, xếp hạng theo thứ tự 1,2,…,n.Dãy ứng viên vấn hoán vị π n giá trị 1,2,…,n.Khi đó, pha thử tìm giá trị m = (π[1], …, π[t]) pha tuyển tìm giá trị j cho: j > t π[t] < m Xác suất để π[t] = là: 𝑛 𝑃 π j = lấy người tốt vị trí j 𝑗 =𝑡+1 = 𝑛 𝑗 =𝑡+1 𝑃(π j = &𝑚𝑖𝑛⁡ ( {π , … , π t }) n = j=t+1 t n j−1 Khi đó, xác suất để π[j] = là: 16 Footer Page 21 of 126 π[1], …, π[j-1]) ∈ Header Page 22 of 126 𝑝= t n j=t+1 n j−1 t = ( n n−1 j=1 j − t−1 j=1 j ) = t n ln n − ln t = t n ln n t Và p tốt 1/e với giá trị t = n/e Vì thế, xác suất để chọn người tốt vị trí j (π j = 1) 1/e = 37% Tuy nhiên, thuật toán thất bại điều kiện sau xảy ra:  π j = với j ≤ 𝑡 tức tiêu chuẩn bị đặt cao  ∃𝑘 màπ k > 𝜋 j π j

Ngày đăng: 09/05/2017, 20:38

Từ khóa liên quan

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

Tài liệu liên quan