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 4 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 53
Dung lượng 1,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

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

Trang 3

Lời cảm ơn

Em xin gửi lời cảm ơn tới các Thầy giáo, Cô giáo, Cán bộ 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ỗ và giúp đỡ em trong suốt thời gian học cao học

Trong quá trình thực hiện luận văn này cũng như trong suốt những năm học vừa qua, em đã nhận được sự chỉ bảo và hướng dẫn nhiệt tình của TS Nguyễn Thị Hồng Minh Em xin gửi tới Cô lời cảm ơn chân thành nhất

Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, khuyến khích và tạo điều kiện cho em trong quá trình học tập và thực hiện luận văn này

Mặc dù đã cố gắng để hoàn thành luận văn, nhưng do hạn chế về kinh nghiệm và thời gian, nên luận văn không thể tránh khỏi những thiếu sót Em mong nhận được sự cảm thông và những ý kiến đóng góp của các Thầy, Cô và các bạn

Hà Nội, tháng 11 năm 2016

Học viên

Lã Ngọc Hải

Trang 4

Mục lục

Mở đầu 1

Chương 1 Tổng quan về thiết kế thuật toán và thuật toán online 3

1.1 Thiết kế thuật toán 3

1.1.1 Định nghĩa thuật toán 3

1.1.2 Các đặc trưng cơ bản của thuật toán 6

1.1.3 Các dạng biểu diễn thuật toán 6

1.1.4 Các phương pháp thiết kế thuật toán 7

1.2 Thuật toán trực tuyến (Thuật toán online) 8

1.2.1 Giới thiệu 8

1.2.2 Phân tích cạnh tranh 12

1.2.3 Một số bài toán điển hình 14

Chương 2 Bài toán k-server và 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 của bài toán k-server 22

2.1.3 Một số bài toán liên quan 23

2.2 Một số hướng giải quyết bà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 quyết bà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 3 Ứng dụng của bài toán k-server 38

3.1 Bài toán 38

3.1.1 Đặt bài 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 bài toán 40

Trang 5

3.3 Thiết kế chương trình 40

3.3.1 Phần cứng 40

3.3.2 Kết quả thực nghiệm 40

Kết luận 46

Tài liệu tham khảo 47

Trang 6

Mở đầu

Thiết kế và đánh giá thuật toán là một trong những lĩnh vực quan trọng của khoa học máy tính Để giải được một bài toán trên máy tính, điều không thể thiếu là phải có thuật toán cho bài toán đó Lớp các bài toán được đặt ra từ các ngành khoa học kỹ thuật, các lĩnh vực hoạt động của con người là rất đa dạng và phong phú Có thể có nhiều kĩ thuật khác nhau để thiết kế các thuật toán cùng đưa ra lời giải đúng và chính xác cho một bài toán, nhưng với hiệu quả thực hiện khác nhau Việc nắm được các kĩ thuật để có những chiến lược phù hợp trong thiết kế và đánh giá thuật toán là cần thiết, nó giúp chúng ta có thể tìm ra được những thuật toán cho bài toán được yêu cầu và từ đó xác định được thuật toán tốt

và phù hợp nhất Một thuật toán tốt sẽ giúp chúng ta giải được bài toán một cách chính xác, đồng thời giảm thiểu thời gian và sử dụng không gian, theo nghĩa tài nguyên máy, một cách hợp lí trong quá trình tính toán

Những nghiên cứu về các kĩ thuật, phương pháp thiết kế thuật toán đã được quan tâm từ rất sớm và mang lại nhiều lợi ích trong khoa học tính toán và thông tin Một số các kĩ thuật thiết kế thuật toán đã được chuẩn hóa thành lớp các 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 của các kĩ thuật thiết kế thuật toán này là chúng chỉ có thể áp dụng đối với các bài toán đã được xác định, tức là những dữ liệu đầu vào và yêu cầu đầu ra của bài toán cần giải là có sẵn và đầy đủ trước khi thực hiện thuật toán Tuy nhiên, có một số bài toán, ứng dụng trong thực tế thì điều này đôi khi không được đáp ứng Có những bài toán cần lời giải, nhưng dữ liệu vào chỉ được cung cấp từng phần, theo thời gian Lời giải của bài toán tại mỗi thời điểm sẽ chỉ căn cứ trên những dữ liệu vào được cung cấp tại thời điểm

đó và trước đó mà không biết những dữ liệu vào sau thời điểm đó sẽ ra sao Các

bài toán có đặc trưng như vậy được gọi là bài toán trực tuyến (online problem)

Thuật toán để giải quyết các bài toán trực tuyến được gọi là thuật toán trực tuyến

(online algorithm), trong luận văn này chúng tôi gọi là thuật toán online Như

Trang 7

vậy, thuật toán trực tuyến sẽ thực hiện và đưa ra kết quả đầu ra của bài toán chỉ

dựa trên dữ liệu đầu vào tại mỗi thời điểm cung cấp và trước đó, mà không biết

đến thông tin về đầu vào trong tương lai

Thuật toán trực tuyến đã được nhiều nhà khoa học và nhóm nghiên cứu quan

tâm và phát triển Tuy nhiên việc thiết kế và đánh giá thuật toán trực tuyến vẫn

còn nhiều thách thức trong nghiên cứu lí thuyết cũng như triển khai ứng

dụng.Trong bản luận văn này chúng tôi sẽ trình bày những kết quả nghiên cứu

xung quanh việc tìm hiểu bài toán trực tuyến, tập trung chính vào bài toán

k-server, một dạng tương đối điển hình của bài toán trực tuyến, và chiến lược thiết

kế thuật toán trực tuyến cho bài toán này 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 quyết bài toán k-server”,

luận văn được cấu trúc gồm có 3 chương:

 Chương 1 Tổng quan: Là chương trình bày về các khái niệm cơ bản trong

thiết kế thuật toán Trong đó, tập trung vào trình bày về thuật toán trực

tuyến, các yếu tố cơ bản của việc thiết kế thuật toán trực tuyến và một số

ví dụ điển hình

 Chương 2 Bài toán k-server và thuật toán hàm công việc: Là chương trình

bày về một bài toán điển hình trong lớp thuật toán trực tuyến, đó là bài

toán k-server Định nghĩa về bài toán, phân tích bài toán và thiết kế một số

thuật toán trong lớp thuật toán trực tuyến để giải quyết bài toán này

 Chương 3 Ứng dụng: Là chương trình bày về một số ứng dụng của thuật

toán trực tuyến và bài toán k-server Trong đó, thực nghiệm và đưa ra kết

quả đánh giá đối với các thuật toán đã trình bày trong Chương 2

Trang 8

Chương 1 Tổng quan về thiết kế thuật toán và

thuật toán trực tuyến

Chương này sẽ trình bày các kiến thức cơ bản sử dụng trong các phần sau, đặc biệt là các kiến thức liên quan đến thiết kế thuật toán và thuật toán trực tuyến Kiến thức trong chương này được trình bày dựa vào các tài liệu [1], [7], [16], [17]

1.1 Thiết kế thuật toán

Khoa học máy tính là ngành nghiên cứu các cơ sở lý thuyết về thông tin và tính toán cùng sự thực hiện và ứng dụng của chúng trong các hệ thống máy tính Khoa học máy tính gồm nhiều ngành hẹp, một số ngành tập trung vào các ứng dụng thực tiễn cụ thể chẳng hạn như đồ họa máy tính, trong khi một số ngành khác lại tập trung nghiên cứu đến tính chất cơ bản của các bài toán tính toán như lý thuyết độ phức tạp tính toán Ngoài ra còn có những ngành khác nghiên cứu các vấn đề trong việc thực thi các 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 những phương thức mô tả cách tính toán khác nhau, trong khi ngành lập trình nghiên cứu cách sử dụng các ngôn ngữ lập trình và các hệ thống phức tạp, và ngành tương tác người-máy tập trung vào những thách thức trong việc làm cho máy tính và công việc tính toán hữu ích, và dễ sử dụng đối với mọi người dùng Trong khoa học máy tính, thuật toán

là một trong những khái niệm nền tảng

Đầu tiên, thuật toán được hiểu như là các quy tắc thực hiện các phép toán số học với các con số được viết trong hệ thập phân Cùng với sự phát triển của máy tính, các khái niệm thuật toán được hiểu theo nghĩa rộng hơn

1.1.1 Định nghĩa thuật toán

Theo Niklaus Wirth thì:

“Thuật toán + Cấu trúc dữ liệu = Chương trình”

(Algorithms + Data Structures = Programs)

Trang 9

Thuật toán là một dãy hữu hạn các thao tác cơ bản được sắp xếp theo một trình tự xác định dùng để giải một bài toán Một thuật toán, một thủ tục tính toán được định nghĩa chính xác, là lấy một giá trị hoặc một tập các giá trị, được gọi là đầu vào hay dữ liệu vào và tạo ra một giá trị, hoặc một tập các giá trị, và gọi là đầu ra Miêu tả một vấn đề thường được xác định nói chung qua quan hệ đầu vào/đầu ra Một thuật toán là một dãy bước xác định để chuyển đổi dữ liệu đầu vào thành dữ liệu đầu ra Chúng ta có thể xem một thuật toán như một công cụ

để giải quyết một vấn đề tính toán Việc trình bày rõ ràng một vấn đề nói chung hình thành mối quan hệ mong muốn đầu vào/đầu ra Dãy thao tác đơn giản, có thể “giao cho máy tính làm được” để từ đầu vào có thể dẫn ra đầu ra một cách tường minh Một thuật toán được gọi là chính xác nếu với mọi dữ liệu vào, nó kết thúc với kết quả chính xác Chúng ta nói rằng một thuật toán chính xác giải quyết một vấn đề đã cho chính xác Một thuật toán không chính xác có thể không dừng tại mọi bộ dữ liệu vào, hoặc cho kết quả không chính xác Đối lập với nhiều suy nghĩ, một thuật toán không chính xác đôi khi có ích, nếu tỉ lệ lỗi có thể quản lý được

Mỗi thao tác trong thuật toán hay còn gọi là tác vụ, phép toán, chỉ thị hay lệnh… là một hành động cần được thực hiện bởi cơ chế thực hiện của thuật toán Mỗi thao tác biến đổi bài toán từ một trạng thái trước sang trạng thái sau Thực

tế, mỗi thao tác thường sử dụng một số đối tượng trong trạng thái nhập và sản sinh ra các đối tượng mới trong trạng thái xuất Quan hệ giữa hai trạng thái xuất

và nhập cho thấy tác động của thao tác Dãy thao tác của thuật toán nối tiếp nhau nhằm biến đổi bài toán từ trạng thái ban đầu đến trạng thái kết thúc

Khi một thuật toán đã hình thành thì ta không xét đến việc chứng minh thuật toán đó mà chỉ chú trọng đến việc áp dụng các bước theo sự hướng dẫn sẽ có kết quả đúng Việc chứng minh tính đầy đủ và tính đúng của các thuật toán phải được tiến hành xong trước khi có thuật toán Nói rõ hơn, thuật toán có thể chỉ là việc áp dụng các công thức hay quy tắc, quy trình đã được công nhận là đúng

Trang 10

hay đã được chứng minh về mặt toán học "Thuật toán" hiện nay thường được dùng để chỉ thuật toán giải quyết các vấn đề tin học Hầu hết các thuật toán tin học đều có thể viết thành các chương trình máy tính mặc dù chúng thường có một vài hạn chế (vì khả năng của máy tính và khả năng của người lập trình) Trong nhiều trường hợp, một chương trình khi thiết kế bị thất bại là do lỗi ở các thuật toán mà người lập trình sử dụng không chính xác, không đầy đủ, hay không ước định được trọn vẹn lời giải của vấn đề Tuy nhiên cũng có một số bài toán mà hiện nay người ta chưa tìm được lời giải triệt để, những bài toán ấy gọi

là những bài toán NP-không đầy đủ Như trên, thuật toán ngoài ra còn chỉ những phương pháp đem lại được kết quả một cách tối ưu, giảm lượng tài nguyên bỏ ra

để đạt được Những phương pháp này có thể được rút ra từ thực nghiệm và có thể giải được bằng toán học hoặc không, tuy nhiên mọi thuật toán đáp ứng tính logic tối hậu của tự nhiên mà là nguyên do của nhiều loại logic mờ

Khi nghiên cứu về thuật toán, người ta quan tâm đến các vấn đề sau:

 Giải được bằng thuật toán: Lớp bài toán nào giải được bằng thuật toán, lớp bài toán không giải được bằng thuật toán

 Tối ưu hóa thuật toán: Tìm những thuật toán tốt hơn

 Triển khai thuật toán: Sử dụng các ngôn ngữ lập trình để thực hiện thuật toán trên máy tính

Thời gian mà máy tính khi thực hiện một thuật toán không chỉ phụ thuộc vào bản thân thuật toán đó, ngoài ra còn tùy thuộc từng máy tính Để đánh giá hiệu quả của một thuật toán, có thể xét số các phép tính phải thực hiện khi thực hiện thuật toán này Thông thường số các phép tính được thực hiện phụ thuộc vào cỡ của bài toán, tức là độ lớn của đầu vào Vì thế độ phức tạp thuật toán là một hàm phụ thuộc đầu vào Tuy nhiên trong những ứng dụng thực tiễn, chúng ta không cần biết chính xác hàm này mà chỉ cần biết một ước lượng đủ tốt của chúng

Trang 11

1.1.2 Các đặc trưng cơ bản của thuật toán

Thuật toán có một số đặc trưng cơ bản sau:

a Tính khách quan: Các thao tác, đối tượng trong 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, dù cho thực hiện theo người hay theo máy, thuật toán đều phải đưa ra cùng một kết quả

b Tính dừng: Thuật toán phải dừng và cho kết quả sau một số bước hữu hạn

c Tính đúng đắn: Thuật toán đúng là thuật toán cho kết quả thỏa mãn yêu cầu đặc tả của mọi trường hợp đối tượng và đầu vào Thuật toán là sai nếu kết quả đưa ra sai trong ít nhất một trường hợp

d Tính phổ dụng: Thuật toán dùng để giải một lớp bài toán gồm nhiều bài toán

cụ thể, lớp đó được xác định bởi đặc tả Thuật toán không chỉ áp dụng cho một bài toán nhất định mà có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau

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 được thể hiện thông qua một chương trình máy tính(hay một tập hợp các chương trình máy tính) và được thiết kế để giải quyết một số bài toán một cách có hệ thống Thuật toán có thể diễn đạt dưới ba dạng: liệt kê từng bước, sơ đồ khối, mã giả

a Dạng liệt kê từng bước: Là dạng thuật toán được trình bày theo ngôn ngữ

tự nhiên theo trình tự các bước thực hiện trong thuật toán

b Dạng sơ đồ khối: Là dạng dùng các hình vẽ để diễn đạt thuật toán Cho hình ảnh trực quan và tổng thể của thuật toán, dễ hiểu và dễ sử dụng

c Dạng mã giả: Là dạng thuật toán trình bày trong một văn bản, tuy không ràng buộc nhiều như dạng ngôn ngữ lập trình nhưng cũng tuân theo một

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 nào mà ta diễn đạt thuật toán gần với ngôn ngữ lập trình ấy

Trang 12

1.1.4 Các phương pháp thiết kế thuật toán

Các bài toán giải được trên máy tính ngày càng phức tạp và đa dạng Các thuật toán đòi hỏi có quy mô lớn, tốn nhiều thời gian và công sức Tuy nhiên, công việc sẽ đơn giản hơn nếu ta chia bài toán ra thành các bài toán nhỏ Cách thiết kế thuật toán này gọi là Modul hóa và thiết kế từ trên xuống

Chiến thuật thiết kế này là chia để trị, tức là nhìn nhận vấn đề một cách tổng quát, sau đó chia nhỏ bài toán thành các bài toán nhỏ và dần dần giải quyết các bài toán nhỏ đó Đây thường là cách tiếp cận của con người với hầu hết các vấn

đề trong cuộc sống Ví dụ:

Hình 1: Mô hình thiết kế thuật toán từ trên xuống

Thông thường, ta chia được các bài toàn thành hai lớp không giao nhau: Lớp bài toán giải được bằng thuật toán và lớp không giải được bằng thuật toán Đối với lớp các bài toán giải được bằng thuật toán, dựa vào các đặc trưng của quá trình thiết kế, người ta phân thành một số phương pháp điển hình sau:

Trang 13

 Phương pháp tham lam

 Phương pháp quy hoạch động

về thời gian, không gian… Hầu hết các phương pháp trên đều đã được phân tích

và nghiên cứu rất rõ ràng Tuy nhiên các phương pháp vẫn tiếp tục được nghiên cứu để đưa ra lời giải tốt hơn

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 và thiết kế thuật toán luô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 rằng một thuật toán sẽ thực thi với số lần tính toán ít nhất Ví dụ, mục tiêu của người thiết kế thuật toán là giảm tổng thời gian cần thiết để giải quyết một bài toán nhất định Trong một số trường hợp khác, người ta quan tâm nhiều hơn đến việc giảm thiểu bộ nhớ được sử dụng trong thuật toán đó Ngoài ra, có một số bài toán đòi hỏi các thuật toán đề ra một giải pháp để có thể giảm thiểu chi phí qua các giải pháp khả thi – ví dụ như bài toán lập lịch và bài toán định tuyến mạng Lý thuyết về các thuật toán trực tuyến cũng tập trung vào việc cung cấp các thuật toán, các phương pháp để giải quyết vấn đề tối ưu hóa khi đầu vào được cung cấp theo thời gian

Sự phát triển của lý thuyết tối ưu cổ điển được dựa trên giả định rằng tất cả

dữ liệu đầu vào đều có sẵn cho các thuật toán Tuy nhiên, với nhiều vấn đề thực

tế, dữ liệu đầu vào chỉ có sẵn từng mảng và sau đó tiến triển dần Ví dụ như bài

toán phân trang (Paging Problem) [8], một trong những vấn đề cổ điển trong

việc thiết kế hệ thống điều hành: Bộ nhớ của một hệ thống máy tính điển hình

Trang 14

bao gồm một bộ nhớ nhanh được chia thành một số phần bằng nhau gọi là các trang và bộ nhớ thứ cấp là bộ nhớ lớn hơn nhưng chậm hơn Các đơn vị xử lí trung tâm có thể truy cập chỉ có bộ nhớ nhanh, ở đây thường chứa các bản sao của các trang nhất định trong bộ nhớ thứ cấp Vì chỉ có dữ liệu trong bộ nhớ nhanh được truy cập, nên một chính sách quyết định là cần thiết để xác định và thiết lập một tập các trang để duy trì trong bộ nhớ nhanh mỗi lần sử dụng Đặc biệt, một chính sách thay thế trang là cần thiết để quyết định trang ra khỏi bộ nhớ nhanh để nhường chỗ cho một trang được yêu cầu Từ quan điểm của lý thuyết tối ưu hóa thông thường, các đầu vào cho một thuật toán cho bài toán phân trang

là một chuỗi các yêu cầu trang và mục đích là để giảm thiểu số lượng trang lỗi –

số trang bị loại ra khỏi bộ nhớ nhanh Một thuật toán tham lam đơn giản là tối ưu cho bài toán này: Hoãn trang lỗi tiếp theo càng lâu càng tốt bằng cách loại bỏ trang đó cuối cùng từ các trang trong bộ nhớ nhanh để có thể yêu cầu thêm một lần nữa Vấn đề xảy ra đối với thuật toán này là chuỗi trang yêu cầu là trong tương lai Thực tế thì trình tự các trang yêu cầu trong tương lai là chưa biết và nó không thể được tính từ quá khứ Do đó, bất kì thuật toán nào để phân trang cũng

có căn cứ quyết định của mình về trình tự đã được tiết lộ của trang yêu cầu Bài toán phân trang là một bài toán đặc trưng của thuật toán trực tuyến: Một vấn đề tối ưu hóa không phải tất cả các dữ liệu đầu vào liên quan đều được biết trước, mà sẽ tiến triển theo thời gian Nói chung, một bài toán trực tuyến là một

Một thuật toán trực tuyến A cho một bài toán (I, O, c) là một hàm A: I * → O Khi

đó, với một chuỗi đầu vào r = (r 1 , …, r n ) , A đưa ra một chuỗi đầu ra y = (y 0 ,

Trang 15

y j = A(r 1 , …, r j )

Tức là, với mỗi kí tự đầu vào, thuật toán A cho kết quả là một kí tự đầu ra Chi phí của thuật toán A cho mỗi đầu vào r kí hiệu cost A (r) = cost(r,y) Với bài

toán phân trang với một bộ nhớ nhanh gồm k trang, I là một tập tất cả các trang,

nhanh tại bước thứ j Hàm chi phí c là chi phí di chuyển các trang trong bộ nhớ nhanh được tính như sau: Tại bước j, chi phí tỉ lệ thuận với sự khác nhau đối xứng y j-1 và y j với điều kiện y j chứa trang được yêu cầu cuối cùng là r j, đây là số trang chúng ta phải di chuyển theo thứ tự để thay đổi trạng thái của bộ nhớ

nhanh từ y j-1 sang y j Từ trang r j phải di chuyển vào trong bộ nhớ nhanh, chúng

tôi muốn y j chứa r j và điều này được thực hiện bằng cách thiết lập một chi phí

của bước j cao tùy ý khi mà nó không phải là các trường hợp Các chi phí

thái ban đầu, trong bài toán phân trang, nó là thiết lập ban đầu của các trang trong bộ nhớ nhanh

Đối với mỗi bài toán trực tuyến, đều có một bài toán offline liên quan, trong

đó đầu ra y j của thuật toán offline B bây giờ có thể phụ thuộc vào đầu vào trong

Trang 16

đầu vào cố định có một thiết kế thuật toán trực tuyến đặc biệt mà khi đó sẽ có một chi phí tối ưu Điều này cho thấy rằng không có một thuật toán trực tuyến tốt nhất thực hiện trên tất cả các đầu vào khác nhau Tuy nhiên, sự phát triển của một lí thuyết thuật toán cho các bài toán trực tuyến chỉ có thể dựa vào đánh giá

về chất lượng của các thuật toán trực tuyến đó

Một đánh giá đưa ra bởi Sleator và Tarjan [7] đề xuất tỉ lệ cạnh tranh của một thuật toán đó là: Tỉ lệ trong trường hợp xấu nhất của chi phí đạt được bằng chi phí của thuật toán trực tuyến chia cho chi phí tối ưu Như vậy, tỉ lệ cạnh tranh của một thuật toán A được tính là:

(1)

Trong đó, r là tập tất cả các đầu vào Thông thường, sẽ tồn tại một hằng số độc lập với đầu vào r để loại bỏ sự phụ thuộc vào trạng thái ban đầu Một thuật toán được gọi là c – cạnh tranh hoặc chỉ đơn giản là cạnh tranh nếu nó có hữu hạn cạnh tranh với tỉ lệ c Cuối cùng, các nghiên cứu về các bài toán trực tuyến

sử dụng tỉ lệ cạnh tranh tốt nhất được gọi là phân tích cạnh tranh

Phân tích cạnh tranh đã được áp dụng thành công cho nhiều vấn đề trực tuyến

tự nhiên Hơn nữa, nó phục vụ như là một biện pháp thống nhất cho việc nghiên cứu các thuộc tính chung của các bài toán trực tuyến Các bài toán trực tuyến đã

và đang được nghiên cứu đối với nhiều vấn đề tự nhiên Một trong số đó là các

hệ thống nhiệm vụ trong không gian mêtric, nổi bật là các bài toán quản lí dữ liệu và quản lí bộ nhớ trực tuyến như bài toán phân trang Một hệ thống nhiệm

vụ cung cấp một chuỗi các kí hiệu đầu vào, gọi là nhiệm vụ, các chi phí thực hiện một nhiệm vụ phụ thuộc vào trạng thái nội bộ của hệ thống và các loại nhiệm vụ yêu cầu Một hệ thống nhiệm vụ metric là một hệ thống nhiệm vụ với các chi phí của việc thay đổi trạng thái đáp ứng các bất đẳng thức tam giác: Nếu

thay đổi từ trạng thái A sang trạng thái C thì chi phí không quá thay đổi từ A đến

B và từ B đến C Trong trường hợp của bài toán phân trang, trong trạng thái nội

Trang 17

tại của hệ thống đều là tập các trang của bộ nhớ nhanh, rất dễ dàng để thấy rằng chi phí của việc thay đổi trạng thái nội bộ đáp ứng các bất đẳng thức tam giác

Khi tất cả các nhiệm vụ được yêu cầu thực hiện, tỉ lệ cạnh tranh là 2n-1, trong đó

n là số các trạng thái nội bộ

Tóm lại, đối với thuật toán ngoại tuyến (thuật toán offline), các dữ liệu đầu vào được nhập một lần toàn bộ trước khi thuật toán thực hiện Tuy nhiên đối với các thuật toán trực tuyến (thuật toán online), các dữ liệu đầu vào không được nhập một lần toàn bộ trước khi thuật toán thực hiện do điều kiện không gian nhớ hoặc do tính chất dữ liệu Tại mỗi bước thực hiện thuật toán phải có phương án kết quả mà không biết dữ liệu tiếp theo sẽ ra sao Vì thế, thuật toán trực tuyến phải dự đoán được quy luật phân bố dữ liệu và xử lí trong trường hợp xấu nhất

Độ phức tạp của thuật toán trực tuyến là tuyến tính dựa theo kích thước dữ liệu đầu vào do xử lí lần lượt, liên tiếp Thuật toán trực tuyến không cho ra kết quả chính xác duy nhất, tuy nhiên các thuật toán này thường giảm thiểu các lỗi chiến lược Vì thế, đối với thuật toán trực tuyến, chúng ta quan tâm tới việc đánh giá hiệu năng của thuật toán, đó là kết quả tốt nhất trong đ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 của một thuật toán trực tuyến là vấn đề luôn được quan tâm Đối với một bài toán tối ưu hóa, hiệu suất của một thuật toán trực tuyến có thể được đo lường bằng cách so sánh chi phí thuật toán đó với một thuật toán tối ưu đã có Tại thời điểm này, người ta có thể tự hỏi suy luận như thế nào về các chi phí cho một thuật toán trực tuyến, vì nếu đã biết thuật toán tối ưu

để giải quyết bài toán đó, thì đơn giản nhất là có thể dùng luôn thuật toán này Giả thuyết rằng đã có một thuật toán tối ưu giả OPT đối với một bài toán trực tuyến

Trang 18

Hiệu suất của một thuật toán trực tuyến có thể được đo lường bằng tỉ lệ cạnh

tranh của nó Cho r = r 1 , r 2 , …, r n là dãy đầu vào của một thuật toán trực tuyến A

và với OPT là hiệu suất của thuật toán offline tối ưu

Khi đó tỉ lệ cạnh tranh c được xác định là tỉ lệ trong trường hợp tồi tệ nhất

của chi phí đạt được bằng chi phí của thuật toán trực tuyến A chia cho chi phí tối

ưu (theo (1)) Một thuật toán trực tuyến A là c-cạnh tranh nếu như với bất kì chuỗi đầu vào r nào thì sẽ tồn tại một hằng số b sao cho: ≤ c

OPT(r)+b

Nếu A là c-cạnh tranh thì chúng ta nói rằng A có tỉ lệ cạnh tranh là c Bằng trực giác, điều này có nghĩa là chi phí cho các thuật toán A là không nhiều hơn một yếu tố không đổi lần của c và lớn hơn so với chi phí cho một thuật toán tối

ưu ẩn giả của chuỗi đầu vào lên đến một hằng số phụ

Một chiến thuật phổ biến trong thiết kế và phân tích thuật toán là 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 này là lựa

chọn ngẫu nhiên một phần tử làm trục trong thuật toán sắp xếp nhanh (Quick

sort)

Chúng ta có thể mở rộng việc sử dụng tính ngẫu nhiên để phân tích và thiết

kế thuật toán trực tuyến Với biến ngẫu nhiên X, E(X) là giá trị kì vọng của X Khi đó, một thuật toán trực tuyến ngẫu nhiên A là c-cạnh tranh nếu như với bất

kì chuỗi đầu vào r, luôn tồn tại một hằng số b sao cho: E( ) ≤ c

OPT(r)+b

Trong cả hai cách thiết kế ngẫu nhiên và xác định, chúng tôi luôn mong muốn

thiết kế một thuật toán trực tuyến nhằm làm giảm tối thiểu tỉ lệ cạnh tranh c

Điều này cho chúng ta một sự đảm bảo về hiệu suất của một thuật toán trực tuyến so với một thuật toán tối ưu [9]

Trang 19

1.2.3 Một số bài toán điển hình

Tương tự như đối với các phương pháp khác, có một số bài toán điển hình cho thuật toán trực tuyến Đặc biệt phải kể đến là bài toán thuê hay mua, bài toán

thư kí, bài toán k-server Trong phần này, luận văn sẽ trình bày về hai bài toán ban đầu Chương II sẽ trình bày chi tiết về bài 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] được mô tả như sau: Một

người quyết định học môn trượt tuyết do yêu thích Đây là một môn thể thao cần

có một số thiết bị chuyên sâu như giày trượt, ván trượt, gậy, Nếu người đó

mua giày trượt tuyết thì một đôi có giá là y$ (y là một số tiền khá lớn) và nếu như thuê đôi giày đó vào ngày cuối tuần sẽ có giá là x$/1 ngày Nếu như người chơi học trượt tuyết và đi chơi trong t lần, khi đó số tiền phải bỏ ra là m = t*x

Vậy vấn đề đưa ra là người chơi nên mua hay nên thuê giày để số tiền phải bỏ ra

là ít nhất (y$ hoặc m$)? Việc thuê hay mua giày phụ thuộc vào số lần người chơi

sẽ đi trượt tuyết trong tương lai Tuy nhiên, số lần đi trượt tuyết này sẽ không biết trước do 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 hoặc sau một số lần chơi thì người chơi mất hứng, không muốn chơi trượt tuyết nữa, Mỗi lần đi chơi, người chơi phải quyết định xem nên mua hay thuê giày Nếu biết trước số lần đi mua giày, người chơi có thể tính toán được chi phí tối thiểu Tại mỗi lần chơi, nếu lần trước đã mua giày thì thuật toán này kết thúc, nếu chưa thì sẽ quyết định thuê hay mua dựa vào dữ kiện là số lần chơi Đây là một trong những bài toán tối ưu, đầu vào lần lượt được đưa vào

ở mỗi lần thực hiện thuật toán Vì thế bài toán này sẽ được giải quyết bằng thuật toán trực tuyến Như vậy, có thể hiểu bài 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 quả cao nhất

Trang 20

Sử dụng thuật toán trực tuyến để giải quyết bài toán thuê hay mua, cần sử dụng phân tích cạnh tranh và xác định tỉ lệ cạnh tranh cho bài toán này theo công thức:

Như vậy, thuật toán trực tuyến cần tìm ra thời điểm t (số lần chơi) để giá trị c tối ưu nhất Giả sử số tiền mua một đôi giày trượt tuyết là 500$ và mỗi lần thuê giày tốn 50$ Khi đó, nếu người chơi đi trượt tuyết 1 lần, khi đó t = 1 và c = 500/50 = 10 Nếu người chơi đi trượt tuyết 2 lần, khi đó t = 2, c = 550/100 = 5.5  Tổng quát: o Khi t ≤ 10, c =

o Khi t ≥ 10, c =

o Vậy, tỉ lệ cạnh tranh tối ưu c = 1.9 khi t = 10 Như vậy, nếu người chơi đi trượt tuyết 11 hoặc hơn 11 lần, thì tốt nhất là nên mua giày Nếu như đi trượt tuyết 9 lần hoặc ít hơn thì thuê sẽ là tốt hơn Và nếu như đi trượt tuyết 10 lần thì thuê hay mua cũng như nhau 1.2.3.2 Bài toán thư kí (Secretary_problem) 2 Bài toán thư ký là một bài toán nổi tiếng trong lý thuyết dừng tối ưu Bài toán này đã được nghiên cứu trong xác suất ứng dụng, thống kê, và lý thuyết quyết định Bài toán được xuất bản lần đầu tiên bởi Martin Gardner trong Scientific American năm 1960 ([10], [11]) Bài toán thư kí được phát biểu như sau: Một người quản lý cần tuyển thư ký tốt nhất trong n ứng viên có thể xếp hạng Các ứng viên được phỏng vấn lần lượt theo một thứ tự ngẫu nhiên Quyết định cho mỗi ứng viên phải được đưa ra ngay

Trang 21

sau khi phỏng vấn ứng viên đó Sau khi đã bị từ chối, ứng viên đó sẽ không thể được tuyển Trong quá trình phỏng vấn, người quản lý có thể xếp hạng các ứng viên đã phỏng vấn nhưng không biết gì về chất lượng của các ứng viên chưa phỏng vấn Nếu người quản lý đồng ý một ứng viên bất kỳ cho vị trí thư ký đó thì quá trình phỏng vấn kết thúc bất chấp còn ứng viên chưa phỏng vấn hay không Nếu người quản lý vẫn chưa chọn ai cho đế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 ra là nên sử dụng chiến thuật nào để tối ưu hóa xác suất tuyển được ứng viên tốt nhất Như vậy, người quản lý cần có chính sách phỏng vấn tuyển dụng thế nào để tuyển được người tốt nhất cho vị trí thư kí?

Đối với bài toán này, chúng ta có thể thể thiết kế thuật toán làm hai pha chính

Một là pha thử: Công ty sẽ phỏng vấn n/e (trong đó e là cơ số của logarit tự nhiên, e = 2.71828…) người được lấy ngẫu nhiên từ n người, không tuyển ai

Hai là pha tuyển: Công ty phỏng vấn lần lượt những người tiếp theo và chấp nhận người đầu tiên tốt hơn tất cả những người đã phỏng vấn Khi đó có thể chứng minh rằng thuật toán theo ý tưởng trên cho khả năng chọn được người tốt nhất với xác suất 1/e (37%)

Như vậy, với n ứng viên, được xếp hạng theo thứ tự 1, 2,…, n Dãy các ứng viên được phỏng vấn là một hoán vị π của n giá trị 1, 2,…, n Khi đó, pha thử sẽ tìm giá trị m = min (π[1], …, π[t]) và pha tuyển sẽ tìm giá trị j đầu tiên sao cho: j

> t và π[t] < m Xác suất để π[t] = 1 là:

∑ (π[ ] à ấ ườ ố ấ ạ ị í )

∑ π[ ] π[1], …, π[j-1]) π[ ] π[ ]

Trang 22

Khi đó, xác suất để π[j] = 1 là:

∑ ∑ ) =

Và p tốt nhất là 1/e với giá trị t = n/e Vì thế, xác suất để chọn người tốt nhất ở vị trí j (π[ ] ) là 1/e = 37%

Tuy nhiên, thuật toán có thể thất bại khi một trong các điều kiện sau xảy ra:

 π[ ] với j tức là khi tiêu chuẩn đã bị đặt quá cao

 mà π[ ] [ ] và π[ ] min (π[1], …,π[t]) tức là sẽ gặp ứng viên tốt hơn trước

Bài toán thuê hay mua và bài toán thư kí là hai bài toán điển hình của thuật toán trực tuyến Ngoài ra còn một số bài toàn điển hình khác như bài toán cập

nhật danh sách, bài toán tên cướp, và đặc biệt là bài toán k-server sẽ được trình

bài chi tiết trong chương II Do không được biết trước toàn bộ dữ liệu, thuật toán trực tuyến có thể phải đưa ra những lựa chọn không tối ưu Việc phân tích thuật toán trực tuyến tập trung vào tìm hiểu chất lượng kết quả thu được tốt đến đâu Phân tích cạnh tranh cụ thể hóa ý tưởng này bằng cách so sánh kết quả của thuật toán trực tuyến với kết quả tối ưu của thuật toán ngoại tuyến cho cùng một

dữ liệu vào

Ngoài mô hình thuật toán trực tuyến còn có nhiều mô hình khác trong đó dữ liệu vào cũng được cung cấp từng phần một cho thuật toán, chẳng hạn như thuật toán dòng dữ liệu (tập trung vào lượng bộ nhớ cần dùng để lưu trữ thông tin về phần dữ liệu đã xử lý), thuật toán động (tập trung vào thời gian cần thiết để cập nhật kết quả sau mỗi lần dữ liệu thay đổi) và thuật toán học trực tuyến

Trang 23

Chương 2 Bài toán k-server và thuật toán hàm công việc

Bài toán k-server được đưa ra bởi Manasse, McGoech và Sleator [12]và sau

đó đã được nghiên cứu một cách rộng rãi Trong chương này, chúng tôi sẽ trình

bày chi tiết về bài toán k-server, các khái niệm liên quan và các thuật toán để giải

quyết bài toán này Trong đó, luận văn tập trung vào thuật toán hàm công việc và thuật toán hàm công việc cải tiến

2.1 Bài toán k-server

2.1.1 Định nghĩa

Trước khi tìm hiểu về bài toán k-server, cùng nhắc lại định nghĩa về không

gian mêtric

Định nghĩa không gian mêtric: Một không gian mêtric M = (V,d) trong đó V là

tập các điểm với một hàm khoảng cách d: V→R thỏa mãn các tính chất sau:

d(u,v) = 0 nếu u=v

d(u,v) = d(v,u) với u,v V

Trong bài toán k-server [12], có k máy chủ, mỗi máy chủ chiếm một vị trí (điểm) trong một không gian mêtric cố định M có m vị trí Bài toán cần giải quyết một yêu cầu r i tại một vị trí x M xuất hiện Mỗi yêu cầu phải được phục

vụ bởi một máy chủ trước khi yêu cầu tiếp theo đến Để phục vụ yêu cầu mới tại

x, một thuật toán trực tuyến phải di chuyển một máy chủ đến x (trừ khi ở đó đã

có một máy chủ) Các quyết định để máy chủ di chuyển có thể chỉ dựa trên các

yêu cầu đã có r 1 , r 2 , , r i-1 , r i, do đó nó phải thực hiện mà không có bất kỳ thông

tin về các yêu cầu trong tương lai r i+1 , r i+2 , Bất cứ khi nào thuật toán di chuyển

một máy chủ từ vị trí x đến một vị trí y thì nó phải chịu một chi phí bằng với

Trang 24

khoảng cách giữa x và y trong M Mục tiêu không phải chỉ để phục vụ các yêu

cầu mà còn tối thiểu tổng khoảng cách di chuyển của tất cả các máy chủ

Để làm cụ thể vấn đề này, hãy xem xét ví dụ sau: Một công ty bán các thiết bị máy tính mở chiến dịch hỗ trợ khách hàng khi mua sản phẩm của họ Công ty có hai kĩ thuật viên là An và Bình Hai kĩ thuật viên này sẽ phục vụ các khách hàng tại các thành phố Hà Nội, Thái Nguyên, TP Hồ Chí Minh Bài toán này

tươngđương với bài toán k-server, khi đó, các kĩ thuật viên được coi là các máy chủ, vậy k = 2 Khoảng cách giữa Hà Nội và Thái Nguyên là 30km, trong khi

khoảng cách từ cả hai thành phố đến Hà Nội đến TP Hồ Chí Minh là 1620km, Thái Nguyên đến TP Hồ Chí Minh là xấp xỉ 1690km Giả sử ban đầu cả hai kĩ thuật viên đều ở thành phố TP Hồ Chí Minh Công ty phải xem xét một thuật toán để có thể hỗ trợ thiết bị được cho các khách hàng mà giảm thiểu tối đa chi phí đi đường của các kĩ thuật viên

Mỗi buổi sáng công ty phải đáp ứng yêu cầu của khách hàng ở Hà Nội và buổi chiều đáp ứng khách hàng ở Thái Nguyên Như vậy, công ty sẽ chỉ định một kĩ thuật viên (Ví dụ An) đến thành phố Hà Nội, sau đó cô ấy sẽ luôn được giao tất

cả các yêu cầu của khách hàng ở thành phố này và thành phố Thái Nguyên Với giải pháp này, công ty sẽ tốn một chi phí giữa thành phố Hà Nội và thành phố Thái Nguyên là 60km Sau một năm thì chi phí của công việc xấp xỉ 18200km (trừ những ngày nghỉ) Trong khi đó, nếu một thuật toán off-line có thể biết trước yêu cầu, và có thể gửi cả An và Bình đến thành phố A và B, thì chi phí chỉ có 3310km Như vậy, tỉ lệ cạnh tranh là: 18200/3310 = 5.5 Tỉ lệ cạnh tranh này là khá

cao đối với bài toán k-server với k = 2 Như vậy, có thể điều chỉnh thuật toán để tối

ưu tỉ lệ cạnh tranh, làm cho chi phí của công ty giảm thiểu tối ưu nhất

Chúng ta hãy xem xét ví dụ về thuật toán 4-server:

Trang 25

Hình 2: Ví dụ thuật toán 4-server

Trong ví dụ trên:

 Hình 2(a): Có 4 máy chủ ở vị trí ban đầu

Hình 2(b): Yêu cầu đầu tiên cần được thực hiện ở vị trí r 1

 Hình 2(c): Một máy chủ được chỉ định đi đến để thực hiện yêu cầu tại vị

trí r 1 với khoảng cách d 1

Hình 2(d): Yêu cầu tại vị trí r 1 được thực hiện

Hình 2(e): Một máy chủ di chuyển một khoảng cách d 2 để phục vụ yêu

cầu tại vị trí r 2

Trang 26

Hình 2(f): Một máy chủ di chuyển một khoảng cách d 3 để phục vụ yêu

cầu tại vị trí r 3

Hình 2(g): Một máy chủ di chuyển mộtkhoảng cách d 4 để phục vụ yêu cầu

tại vị trí r 4

 Hình 2(h): Chuỗi yêu cầu kết thúc

Hình 2(i): Đối với các chuỗi yêu cầu r = r 1 , r 2 , r 3 , r 4 chi phí cho các thuật

toán được đưa ra bởi A (r) = d 1 + d 2 + d 3 + d 4

Bài toán k-server là một trong những bài toán thực tế, hãy xem xét các điểm trong không gian mêtric M là các địa điểm trong núi và khu vực ven biển của

Croatia [16], như thể hiện trong Hình 3 với khoảng cách xác định Vào mùa hè,

ở khu vực này cháy rừng có thể xảy ra thường xuyên Giả sử khu vực có ba máy

bay trực thăng chữa cháy (số server k = 3) Ban đầu, ba trực thăng được đặt tại

Rijeka (RI), Zadar (ZD) và Dubrovnik (DU) Nếu ngọn lửa đầu tiên bắt đầu, ví

dụ tại Split (ST), thì sau đó thuật toán trực tuyến sẽ quyết định máy bay nào trong số ba máy bay đó sẽ di chuyển đến vị trí Split để chữa cháy Dường như giải pháp là máy bay nào gần nhất sẽ được di chuyển đến Split (từ Zadar) Nhưng sự lựa chọn đó có thể là sai nếu: giả sử tất cả các vụ cháy sắp tới sẽ xuất hiện giữa Zadar, Split và Dubrovnik mà không xảy ra tại nơi nào ở Rijeka

Hình3:Ví dụ về bài toán k-server

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. A.R.Calderbank, E.G.Coffman, Jr, Andl.Flatto (1985), Sequencing problems in two-server systems, Math. Oper. Res. 10, No. 4, 585-598 Sách, tạp chí
Tiêu đề: Sequencing problems in two-server systems
Tác giả: A.R.Calderbank, E.G.Coffman, Jr, Andl.Flatto
Năm: 1985
[3]. A.R.Calderbank, E.G.Coffman, Jr And L.Flatto (1985),Sequencing two servers on a sphere, Commun. Statist.-Stochastic Models 1, No. 1 (1985), 17-28 Sách, tạp chí
Tiêu đề: Sequencing two servers on a sphere
Tác giả: A.R.Calderbank, E.G.Coffman, Jr And L.Flatto (1985),Sequencing two servers on a sphere, Commun. Statist.-Stochastic Models 1, No. 1
Năm: 1985
[4]. Bartal Y, Grove E (2000), The harmonic k-server algorithm is competitive, JACM Sách, tạp chí
Tiêu đề: The harmonic k-server algorithm is competitive
Tác giả: Bartal Y, Grove E
Năm: 2000
[5]. Baumgartner A, Rudec T,Manger R (2010), The design and analysis of a modifiedwork function algorithm for solving the on-line k-server problem, Computing and Informatics 29:681–700. 03 Sách, tạp chí
Tiêu đề: The design and analysis of a modifiedwork function algorithm for solving the on-line k-server problem
Tác giả: Baumgartner A, Rudec T,Manger R
Năm: 2010
[6]. Bartal Y, Koutsoupias E (2004), On the competitive ratio of the work function algorithm for the k-server problem, Theoretical Computer Science 324:337–345. 02 Sách, tạp chí
Tiêu đề: On the competitive ratio of the work function algorithm for the k-server problem
Tác giả: Bartal Y, Koutsoupias E
Năm: 2004
[7]. D. D. Sleator and R. E. Tarjan, Amortized eciency of list update and paging rules, Commun. ACM, 28(2):202{208, 1985} Sách, tạp chí
Tiêu đề: Amortized eciency of list update and paging rules
[8]. E.Koutsoupias, C. Papadimitrou, On the k-server conjecture, in: Proceedings of the 26-th Annual ACM Symposium on Theory of Computing, Montreal, Quebec, Canada, May 23-25, 1994 , (F.T.Leighton, M. Goodrich, Eds.), ACM Press, 1994, 507-511 Sách, tạp chí
Tiêu đề: On the k-server conjecture
[9]. Koutsoupias E, Papadimitrou C (1996), The 2-evader problem, Inf Process Lett 57:249–252 Sách, tạp chí
Tiêu đề: The 2-evader problem
Tác giả: Koutsoupias E, Papadimitrou C
Năm: 1996
[10]. Lucas Bang (2013), An online algorithm for the 2 server problem on the line with improved competitiveness, Master of Science Degree in Computer Science, University of Nevada, Las Vegas Sách, tạp chí
Tiêu đề: An online algorithm for the 2 server problem on the line with improved competitiveness
Tác giả: Lucas Bang
Năm: 2013
[13]. Manasse M, McGeoch LA, Sleator D (1990), Competitive algorithms for server problems, J Algorithms 11:208–230 Sách, tạp chí
Tiêu đề: Competitive algorithms for server problems
Tác giả: Manasse M, McGeoch LA, Sleator D
Năm: 1990
[15]. P. Raghavan and M. (1988), Memory versus randomization in on-line algorithms, in “Automata, Languages, and Programming, Lecture Notes in Computer Science,” Vol. 372pp. 687-703, Springer-Verlag, New York Sách, tạp chí
Tiêu đề: Memory versus randomization in on-line algorithms", in “Automata, Languages, and Programming, Lecture Notes in Computer Science
Tác giả: P. Raghavan and M
Năm: 1988
[16]. Tomislav Rudec and Robert Manger, A fast approximate implementation of the work funtion algorithm for solving the k-server problem, Journal: Central European Journal of Operations Research, 2015, Volume 23, Number 3, Page 699. 01 Sách, tạp chí
Tiêu đề: A fast approximate implementation of the work funtion algorithm for solving the k-server problem
[17]. Susanne Albers (2003), Online Algorithms, Mathematical Programing, Volume 97, Issue 1, pp 3-26 Sách, tạp chí
Tiêu đề: Online Algorithms
Tác giả: Susanne Albers
Năm: 2003
[1]. Trần Tuấn Minh (2002), Giáo trình Thiết kế và đánh giá thuật toán, Đại học Đà Lạt.Tài liệu tiếng Anh Khác
[11]. Gardner, M., 1960a. Mathematical games. Scientific American 202 (1), 150–156 Khác
[12]. Gardner, M., 1960b. Mathematical games. Scientific American 202 (3), 172–182 Khác
[14]. M. Queyranne(2002), An Introduction to Competitive Analysis for Online Optimization Khác

🧩 Sản phẩm bạn có thể quan tâm

w