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

53 111 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

ĐẠ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 ĐẠ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 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 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ệc 18 2.1 Bài toán k-server 18 2.1.1 Định nghĩa 18 2.1.2 Tính online toán k-server 22 2.1.3 Một số toán liên quan 23 2.2 Một số hướng giải toán k-server 24 2.2.1 Thuật toán tham lam 24 2.2.2 Thuật toán ngẫu nhiên RANDOM-Slack 27 2.2.3 Thuật toán ngẫu nhiên Hamornic 29 2.3 Thuật toán hàm công việc (WFA) giải toán k-server 31 2.3.1 Thuật toán hàm công việc 31 2.3.2 Thuật toán hàm công việc cải tiến 35 Chương Ứng dụng toán k-server 38 3.1 Bài toán 38 3.1.1 Đặt toán 38 3.1.2 Bài toán tổng quát 39 3.2 Phân tích yêu cầu toán 40 ii 3.3 Thiết kế chương trình 40 3.3.1 Phần cứng 40 3.3.2 Kết thực nghiệm 40 Kết luận 46 Tài liệu tham khảo 47 iii 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 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 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) 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 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 value = findMinOPT(S) + d(r,x); if(min < value){ = value; //Lưu lại cấu hình S } } } Trong đó:  S (S0 ) cấu hình ban đầu máy chủ  findMinOPT(S): hàm tìm giá trị để phục vụ chuỗi yêu cầu r1,r2, …ri-1 với cấu hình S  d(r,x): khoảng cách từ yêu cầu r đến điểm x Thuật toán trực tuyến Ađược coi cạnh tranh hiệu suất so sánh với thuật toán OPT liệu đầu vào theo (1) Chính xác hơn, giả sửr=(r1, r2, , rn) chuỗi yêu cầu Ký hiệu với costA(r) tổng chi phí phát sinh thuật toán trực tuyến A r với OPT(r) tổng chi phí tối thiểu r Đối với việc chọn sốc, nói thuật toán trực tuyến A c-cạnh tranh tồn sốb thỏa mãn: costA(r) ≤ c.OPT (r) + b Có nhiều kết thú vị đề cập tới khả cạnh tranh Ví dụ, chứng minh giả thuyết thuật toán c-cạnh tranh cho toán k-server phải có c ≥ k WFA thuật toán trực tuyến(2k-1)-cạnh tranh Các WFA coi thuật toán "cạnh tranh nhất" cho toán kserver Cụ thể, giá trịc-cạnh tranh WFA nhỏ thuật toán thuộc lớp thuật toán trực tuyến Có nhiều nghiên cứu giả thuyết thực 34 tế, WFA k-cạnh tranh giả thuyết không chứng minh trừ số trường hợp đặc biệt 2.3.2 Thuật toán hàm công việc cải tiến Từ (2) thấy thuật toán WFA ban đầu phức tạp không thích hợp cho toán thực tế Cụ thể, bước thuật toán liên quan tới k yêu cầu toán tối ưu cộng với số phép toán số học Hơn nữa, kể từ bước thứimỗi lần gọi tối ưu phụ thuộc vào danh sách yêu cầu r1, r2, , ri-1, ri Do đó, thời gian thực WFA ban đầu chậm lại Chính nhược điểm đó, cần hiệu chỉnh thuật toán WFA [3] để thu kết tốt thời gian chạy nhanh a Ý tưởng thuật toán hàm công việc cải tiến Thuật toán hàm công việc cải tiến (w-WFA) dựa ý tưởng chuỗi yêu cầu trước cấu hình cần kiểm tra thông qua di chuyển cửa sổ có kích thước w Bước thứ i w-WFA hoạt động sau: ri-w+1, ri-w+2, , ri-1, ri toàn chuỗi yêu cầu trước đó, S(i-w) cấu hình ban đầu máy chủ Nói cách khác, hàm mục tiêu F() ban đầu xác định (2) định nghĩa lại sau: F(S(i)) = COPT(S(i-w), ri-w+1, ri-w+2, , ri-1, ri, S(i)) + d(S(i-1),S(i)) b Sơ đồ thuật toán Tên thuật toán:w-WFA Dữ liệu vào: Chuỗi yêu cầu cần xử lí Dữ liệu ra: Chi phí tối thiểu sau xử lí chuỗi yêu cầu Mã giả thuật toán hàm công việc cải tiến: void WFAModify(List S, int r){ int = VO_CUNG; 35 (2) int value = 0; for(int x : S) { S.remove(x); S.add(r); value = findMinOPT(S) + d(r,x); if(min < value){ = value; //Lưu lại cấu hình S } } } Trong đó:  S (hay Si-w ) cấu hình máy chủ  findMinOPT(S): hàm tìm giá trị để phục vụ chuỗi yêu cầu ri-w+1ri –w+2 …ri-1 với cấu hình S  d(r,x): khoảng cách từ yêu cầu r đến điểm x Ưu điểm w-WFA so với WFA ban đầu độ phức tạp thấp nhiều giảm thiểu tính toán phức tạp Cụ thể, bước củaw-WFA có độ phức tạp tương tựnhư WFA thuật toán không làm chậm thêm bước Hơn nữa, phức tạp bước kiểm soát cửa sổ có kích thước w, tức w có kích thước nhỏ đáp ứng nhanh Mặt khác, người ta hi vọng với w đủ lớn thuật toán w-WFA gần giống với thuật toán WFA gốc.Tuy nhiên có hạn chế thuật toán w-WFA thuật toán không cạnh tranh 36 Tóm lại, chương II luận văn trình bày chi tiết toán k-server, toán điển hình thuật toán trực tuyến số hướng giải toán Luận văn tập trung vào thuật toán hàm công việc hàm công việc cải tiến Tiếp theo chương III, luận văn trình bày toán thực tế kết thực nghiệm số thuật toán trình bày chương II 37 Chương Ứng dụng toán k-server Hiện nay, toán giải yêu cầu thời điểm thực tế ngày quan tâm nghiên cứu, nhu cầu thiết yếu đời sống, công việc Thông thường, nhu cầu thực tế có tính cấp bách, cần có giải pháp trực tuyến để làm giảm thiệt hại để tối ưu hóa chi phí sử dụng, chi phí di chuyển Bài toán k-server có áp dụng cho nhiều toán thực tế đó, cụ thể toán giao thông, chữa cháy, cấp cứu, hay xây dựng…Chương trình bày toán thực tế: Bài toán di chuyển dàn khoan xây dựng, thực nghiệm với thuật toán trình bày Chương II đưa kết quả, đánh giá 3.1 Bài toán 3.1.1 Đặt toán Trong ngành xây dựng, muốn xây dựng công trình, đặc biệt công trình lớn nhà cao tầng, nhà chung cư hay trường học, bệnh viện, khu dân cư hay công trình chuyên dụng nhà xưởng sản xuất, resort nghỉ dưỡng hay khu du lịch sinh thái, điều phải có hồ sơ khảo sát địa chất xin phép xây dựng hồ sơ khảo sát địa chất tảng cho thiết kế móng công trình.Các công trình lún, nghiêng hay nứt trình thi công xây dựng không ý phần móng công trình, không quan tâm đến công tác khảo sát địa chất công trình nên trình vào vận hành gặp trục trặc khắc phục chi phí tốn nhiều Vậy, việc khảo sát công trình công tác nghiên cứu, đánh giá điều kiện địa chất công trình địa điểm xây dựng nhằm xác định cấu trúc đất, tính chất lý lớp đất nền, điều kiện nước đất tai biến địa chất phục vụ cho công tác quy hoạch, thiết kế xử lý móng… Các dạng công tác khảo sát địa chất công trình bao gồm: khoan, đào, xuyên tĩnh, xuyên động, địa vật lý, nén tĩnh, nén ngang, cắt cánh…Đây việc làm quan trọng cần thực trước tiến hành xây dựng móng công trình 38 Mỗi công ty xây dựng phải trang bị cho vài dàn khoan địa chất, nhiên vấn đề đặt năm có vài dự án thành phố khác nhau, dàn khoan địa chất thường to (kích thước tầm 1700 x 780 x 1270 mm ), nặng (500kg không động cơ) có giá thành cao (từ 100-200 triệu).Để đáp ứng yêu cầu thực tế, công ty phảixây dựng toán dàn khoan đề cách di chuyển dàn khoan với chi phí tối thiểu nhằm giảm tải kinh phí khoảng cách di chuyển cho công ty Đây toántrực tuyếnthực tế cần giải ngành xây dựng 3.1.2 Bài toán tổng quát Cácbài toán tối ưu chi phí di chuyển liên quan đến toán có khoảng cách Bài toán di chuyển dàn khoan số toán Bài toán phát biểu sau: Một công ty Z chuyên thực công việc thăm dò địa chất khu công trình trước xây dựng Trước thực dự án, công trình cần có dàn khoan để thăm dò địa chất để đưa định có nên xây hay không hướng giải địa chất có vấn đề Công ty Z có số dàn khoan (giả sử kdàn) định, chi phí mua dàn khoan tốn Số dự án (công trình) mà công ty nhận vị trí dự án trước Các dự án nhận mđịa điểm Với dự án sau thực hiện, dàn khoan đặt để chờ điều chuyển đến dự án Như vậy, ban đầu, k dàn khoan đặt số vị trí không trùng Mỗi có dự án dàn khoan di chuyển tới để thăm dò, với điều kiện dàn khoan thực xong nhiệm vụ địa điểm cũ Công ty có chiến lược di chuyển dàn khoan để chi phí công ty bỏ nhất? 39 3.2 Phân tích yêu cầu toán Các thông tin toán di chuyển dàn khoan tương ứng với toán kserver:  mđịa điểm có dự án tương ứng không gian mêtric m điểm  k dàn khoan tương ứng với k máy chủ  Mỗi dự án tương ứng với yêu cầu cần giải  k vị trí đặt dàn khoan tương ứng với cấu hình ban đầu k máy chủ  Khoảng cách địa điểm chi phí di chuyển dàn khoan Bài toán đặt với chuỗi dự án xảy thời điểm thực tế, với dự án cần di chuyển số k dàn khoan đến vị trí yêu cầu cho tổng khoảng cách di chuyển dàn khoan nhỏ Trong khuôn khổ luận văn em thực số liệu với:  m vị trí xuất dự án (m ≤ 10)  k dàn khoan (k ≤ 5)  n dự án xảy (n ≤ 20) 3.3 Thiết kế chương trình 3.3.1 Phần cứng  Operating System: Window Ultimate  Processor: Intel(R) Core(TM) i5-5200U CPU @ 2.20 Ghz  Installed memory (RAM): 8GB  System type: 64 bit Operating system 3.3.2 Kết thực nghiệm Sau tìm hiểu nghiên cứu thuật toán giải toán k-server, em thực nghiệm cho toán dàn khoan với hai liệu Trong đó, định dạng liệu đầu vào sau: 40  Dòng thứ ghi số đỉnh m, số dàn khoan k, số yêu cầu n  Dòng thứ hai ghi k vị trí đặt dàn khoan tại, dòng thứ ghi n yêu cầu (chuỗi yêu cầu tạo ngẫu nhiên)  Dòng thứ tư trở ma trận khoảng cách vị trí xảy dự án Ví dụ liệu thứ nhất: 10 134 3564616275 309 56 186 406 150 250 309 332 462 682 300 220 56 332 130 350 131 435 186 462 130 387 234 110 406 682 350 387 185 335 150 300 131 234 185 200 250 220 435 110 335 200  Kết chạy thuật toán với liệu: m = 7, k=3 n=10 STT Thuật toán Chi phí tối thiểu Thời gian (mili) GREEDY 2711

Ngày đăng: 18/10/2017, 10:33

Từ khóa liên quan

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

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

Tài liệu liên quan