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

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

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

Nội dung

Thuật toán hàm công việc giải bài toán Kserver Thuật toán hàm công việc giải bài toán Kserver Thuật toán hàm công việc giải bài toán Kserver luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

ĐẠ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 TỐ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 TỐN HÀM CƠNG VIỆC GIẢI BÀI TỐN K-SERVER Chun ngành: Cơ sở tốn cho tin học Mã số: 60 46 01 10 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 khơng thể 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ố tốn điển hình 14 Chương Bài tốn k-server thuật tố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 tốn k-server 31 2.3.1 Thuật tố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 tốn máy tính, điều khơng thể thiếu phải có thuật tốn cho tố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 tố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 thiết kế đánh giá thuật tốn cần thiết, giúp tìm thuật tốn cho tốn u cầu từ xác định thuật toán tốt phù hợp 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, cách hợp lí q trình tính tố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 tốn thông tin Một số kĩ thuật thiết kế thuật tố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úng áp dụng tốn xác định, tức liệu đầu vào yêu cầu đầu toán cần giải có sẵn đầy đủ trước thực thuật tốn Tuy nhiên, có số tốn, ứng dụng thực tế điều đơi khơng đáp ứng Có tốn cần lời giải, liệu vào cung cấp phần, theo thời gian Lời giải toán thời điểm liệu vào cung cấp thời điểm trước mà khơng biết liệu vào sau thời điểm Các tố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 (online algorithm), 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 chúng tơi trình bày kết nghiên cứu xung quanh việc tìm hiểu tốn trực tuyến, tập trung vào tốn kserver, dạng tương đối điển hình tốn trực tuyến, chiến lược thiết kế thuật toán trực tuyến cho tốn thơng qua hàm cơng việc (working function) Với chủ đề “Thuật tốn hàm cơng việc giải tố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 tố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 tốn trực tuyến số ví dụ điển hình  Chương Bài tốn k-server thuật tốn hàm cơng việc: Là chương trình bày tốn điển hình lớp thuật tốn trực tuyến, tốn k-server Định nghĩa tốn, phân tích tố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 tốn trực tuyến tốn k-server Trong đó, thực nghiệm đưa kết đánh giá thuật tốn trình bày Chương 2 Chương Tổng quan thiết kế thuật toán thuật tố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 tố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 tốn tính tốn lý thuyết độ phức tạp tính tốn Ngồi cịn có ngành khác nghiên cứu vấn đề việc thực thi phương pháp tính tố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 tố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 tốn hữu ích, dễ sử dụng người dùng Trong khoa học máy tính, thuật tố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 tốn Theo Niklaus Wirth thì: “Thuật tố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 tốn Một thuật tốn, thủ tục tính tố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 tốn cơng cụ để giải vấn đề tính tố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 tố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 tốn xác giải vấn đề cho xác Một thuật tố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 đơi có ích, tỉ lệ lỗi quản lý Mỗi thao tác thuật tốn hay cịn gọi tác vụ, phép tố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 tốn hình thành ta khơng xét đến việc chứng minh thuật tố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 tốn Nói rõ hơn, thuật tốn việc áp dụng 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 tố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ả 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ố tố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 tốn ngồi cị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 Những phương pháp rút từ thực nghiệm giải tốn học khơng, nhiên thuật tố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 tốn  Tối ưu hóa thuật tốn: Tìm thuật tốn tốt  Triển khai thuật tốn: Sử dụng ngơn ngữ lập trình để thực thuật tốn máy tính Thời gian mà máy tính thực thuật tốn khơng phụ thuộc vào thân thuật tốn đó, ngồi cịn tùy thuộc máy tính Để đánh giá hiệu thuật tốn, xét số phép tính phải thực thực thuật tố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 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 (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 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 tố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 tốn c-cạnh tranh cho tốn k-server phải có c ≥ k WFA thuật toán trực tuyến (2k-1)-cạnh tranh 34 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 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 tốn hàm cơng việc cải tiến Từ (2) thấy thuật tố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ứ i lần gọi tối ưu phụ thuộc vào danh sách yêu cầu r1, r2, , ri1 , 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 tốn WFA [3] để thu kết tốt thời gian chạy nhanh a Ý tưởng thuật tốn hàm cơng việc cải tiến Thuật tố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 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 tốn hàm cơng việc cải tiến: 35 (2) void WFAModify(List S, int r){ int = VO_CUNG; 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 tốn phức tạp Cụ thể, bước w-WFA có độ phức tạp tương tự WFA thuật tốn khơng làm chậm thêm bước Hơn nữa, phức tạp bước kiểm số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 36 với thuật tốn WFA gốc Tuy nhiên có hạn chế thuật tốn w-WFA thuật tốn khơng cạnh tranh Tóm lại, chương II luận văn trình bày chi tiết tốn k-server, tốn điển hình thuật tốn trực tuyến số hướng giải toán Luận văn tập trung vào thuật tố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 tố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 tốn k-server có áp dụng cho nhiều tốn thực tế đó, cụ thể tốn giao thông, chữa cháy, cấp cứu, hay xây dựng…Chương trình bày tốn thực tế: Bài tốn di chuyển dàn khoan xây dựng, thực nghiệm với thuật tố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 q 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 q 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, xun 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ải xâ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án trực tuyến thực tế cần giải ngành xây dựng 3.1.2 Bài toán tổng qt Các tốn tối ưu chi phí di chuyển ln liên quan đến tốn có khoảng cách Bài toán di chuyển dàn khoan số tốn Bài tố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ử k dà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 khơng biết 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 ln để 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 tốn Các thơng tin tố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 tốn giải toán k-server, em thực nghiệm cho tố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 tốn Chi phí tối thiểu Thời gian (mili) GREEDY 2711

Ngày đăng: 04/03/2021, 15:33

w