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

Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới

25 389 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 25
Dung lượng 8,05 MB

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

Nội dung

Thực tế cho thấy có một phần lớn các nguồn tài nguyên của chúng ta đang bị sử dụng lãng phí: các máy để bàn công sở thường chỉ hoạt động khoảng 5% công suất, ngay cả các máy chủ cũng có

Trang 1

Trường Đại học Công Nghệ Thông Tin – Thành phố Hồ Chí Minh

Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới

Lớp: Cao học khóa 06 – 2011

Môn học: Điện toán lưới

Hướng dẫn: PGS TS Nguyễn Phi Khứ

Thực hiện: Nguyễn Hữu Việt Long

Mã số: CH1101101

07-2013

Trang 2

Mục lục

1 Tổng quan 2

2 Bài toán lập lịch trên môi trường lưới 7

2.1 Công việc và ứng dụng 7

2.2 Lập lịch, đặt chỗ và quét dọn 8

3 Giải thuật tối ưu hóa đàn kiến 9

3.1 Giới thiệu chung 9

3.2 Đàn kiến tự nhiên 10

3.3 Đàn kiến nhân tạo 10

3.4 Thuật toán Ant System (AS) 10

4 Tích hợp ACO vào bài toán lập lịch trên môi trường lưới 12

4.1 Tìm kiếm cục bộ 12

4.2 Mô tả vấn đề 12

4.3 Thuật toán lập lịch 15

4.4 Kết quả thực nghiệm 17

5 Kết luận và hướng phát triển 21

Tài liệu tham khảo 22

Trang 3

1 Tổng quan

Cũng như các công nghệ tính toán khác, tính toán lưới (grid computing) ra đời xuất phát từ nhu cầu tính toán của con người Thực tế, ngày càng có nhiều bài toán phức tạp hơn được đặt ra và do đó các tổ chức cũng cần phải có những năng lực tính toán mạnh

mẽ hơn Có thể giải quyết vấn đề này bằng hai cách:

Thứ nhất: Đầu tư thêm trang thiết bị, cơ sở hạ tầng tính toán (mua thêm máy chủ, máy trạm, siêu máy tính, cluster ) Rõ ràng là cách làm này hết sức tốn kém

Thứ hai: Một cách thực hiện hiệu quả hơn là phân bố lại hợp lý các nguồn tài nguyên trong tổ chức hoặc thuê thêm các nguồn tài nguyên từ bên ngoài (dĩ nhiên là với chi phí rẻ hơn nhiều so với việc đầu tư cho cơ sở hạ tầng tính toán) Thực tế cho thấy có một phần lớn các nguồn tài nguyên của chúng ta đang bị sử dụng lãng phí: các máy để bàn công sở thường chỉ hoạt động khoảng 5% công suất, ngay cả các máy chủ cũng có thể chỉ phải hoạt động với 20% công suất Việc tận dụng hiệu quả các nguồn tài nguyên này có thể mang lại một sức mạnh tính toán khổng lồ

Cách giải quyết thứ hai này chính là mục tiêu của tính toán lưới Tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu) Chính các công nghệ mạng và truyền thông phát triển mạnh mẽ trong

những năm qua đã biến những khả năng này dần trở thành hiện thực Các nghiên cứu về tính toán lưới đã và đang được tiến hành nhằm tạo ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới

Các thách thức mà công nghệ tính toán lưới đang phải giải quyết bao gồm:

- Các tài nguyên hết sức đa dạng, không đồng nhất Tài nguyên ở đây được hiểu theo nghĩa hết sức tổng quát Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tài nguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các CSDL, các phần mềm đặc biệt và đắt giá ; các đường truyền mạng Các tài nguyên này có thể rất khác nhau về mặt kiến trúc, giao diện, khả năng xử lý Việc tạo ra một giao diện thống nhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này hoàn toàn không

Trang 4

dễ dàng Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyên tính toán nhưng hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tài nguyên khác như đã kể trên

- Các tài nguyên không chỉ thuộc về một tổ chức mà thuộc về rất nhiều tổ chức tham gia lưới Các tổ chức phải tuân thủ một số quy định chung khi tham gia vào lưới còn nhìn chung là hoạt động độc lập tức là các tài nguyên này đều có quyền tự trị Các tổ chức khác nhau thường có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau

và do vậy cũng gây khó khăn cho việc quản lý

- Các tài nguyên phân tán rộng khắp về mặt địa lý do vậy phải có các cơ chế quản

lý phân tán

- Đảm bảo an toàn thông tin cho một môi trường phức tạp như môi trường lưới là rất khó khăn trong khi đây là một trong những điểm ưu tiên hàng đầu

Hình 1.1: Điện toán lưới

Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn

dụ là làm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng Ngày nay có rất nhiều định nghĩa về tính toán lưới Một định nghĩa về Grid khá hoàn chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau :

Trang 5

“Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợp các tài nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khả năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giải quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thời giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”

Một hệ thống Grid có 3 đặc điểm chính:

 Có sự kết hợp, chia sẻ các tài nguyên không được quản lý tập trung

 Sử dụng các giao diện và giao thức chuẩn, mang tính mở, đa dụng

 Đáp ứng yêu cầu cao về chất lượng dịch vụ

Bài toán lập lịch hay lập kế hoạch là một bài toán ta rất hay gặp trong thực tế Có thể kể ra như lập thời khóa biểu, lập kế hoạch quản lý dự án đều là các bài toán lập lịch tiêu biểu và rất kinh điển Nội dung của bài toán là tìm ra một bản kế hoạch thực hiện các công việc một cách tối ưu nhất dựa vào tất cả các thông tin đầu vào có được từ tình trạng hiện tại của hệ thống, tuy nhiên tùy theo bài toán cụ thể mà yêu cầu và phương pháp giải quyết của các bài toán này rất khác nhau

Buyya đề nghị một phương pháp lập lịch cho các ứng dụng nghiên cứu tham số (bao gồm một tập lớn các công việc độc lập trên tập các dữ liệu độc lập) Mô hình này cũng giống như mô hình lập trình đơn chương trình đa dữ liệu (Single Program Multiple Data) Việc lập lịch và điều phối hoạt động của các ứng dụng dạng này trên môi trường tính toán phân tán trên diện rộng tưởng chừng khá đơn giản tuy nhiên các vấn đề phức tạp sẽ nảy sinh khi người dùng đặt ra một số các tham số về chất lượng dịch vụ như thời hạn kết thúc ứng dụng và giới hạn về kinh phí Những đảm bảo như thế về chất lượng dịch vụ là rất khó thực hiện trong một môi trường như môi trường lưới khi mà các tài nguyên lưới phân tán, không đồng nhất, được sở hữu bởi nhiều tổ chức khác nhau với những chính sách và cơ chế tính giá khác nhau Thêm vào đó các thuật toán lập lịch phải

Trang 6

được thiết kế để thích ứng được với sự thay đổi tải và sự sẵn dùng của tài nguyên cùng lúc với việc phải đảm bảo được thời hạn và kinh phí

Tư tưởng chủ đạo của việc thiết kế các thuật toán lập lịch cho lưới là: không sử dụng các thuật toán tối ưu truyền thống vẫn hay thường được sử dụng trong các bài toán lập lịch mà chủ yếu sử dụng các heuristic [18] (Wikipedia)

Hình 1.2: Tối ưu hóa bầy đàn

Một trong những giải thuật heuristic đang được nhiều nghiên cứu gần đây áp dụng

là giải thuật dựa trên tối ưu hóa bầy đàn (Swarm Optimization) Giải thuật mô hình hóa việc đàn chim hay đàn kiến, đàn ong tìm đến nguồn thức ăn Tại thời điểm bắt đầu tìm kiếm cả đàn bay (đi) theo một hướng nào đó, có thể là rất ngẫu nhiên Tuy nhiên sau một thời gian tìm kiếm một số cá thể trong đàn bắt đầu tìm ra được nơi có chứa thức ăn Tùy theo số lượng thức ăn vừa tìm kiếm, mà cá thể gửi tín hiệu đến các các cá thể khác đang

Trang 7

tìm kiếm ở vùng lân cận Tín hiệu này lan truyền trên toàn quần thể Dựa vào thông tin nhận được mỗi cá thể sẽ điều chỉnh hướng bay (đi) và vận tốc theo hướng về nơi có nhiều thức ăn nhất Cơ chế truyền tin như vậy thường được xem như là một kiểu hình của trí tuệ bầy đàn Cơ chế này giúp cả đàn tìm ra nơi có nhiều thức ăn nhất trên không gian tìm kiếm vô cùng rộng lớn

Kỹ thuật tối ưu hóa bầy đàn được áp dụng trong một số nghiên cứu gần đây [9][10][12] Giải thuật tối ưu hóa đàn kiến (Ant Colony Optimization – ACO) – do Dorigo đề xuất vào năm 1992 trong luận văn tiến sĩ của ông [17] – là một tiêu biểu cho

kỹ thuật loại này Giải thuật được nghiên cứu áp dụng trong bài toán lập lịch trên môi trường lưới kết hợp kỹ thuật tìm kiếm cục bộ (Local Search) [1][3] Giải thuật MACO dựa trên ACO được giới thiệu và chứng minh được hiệu quả của nó khi so sánh với các giải thuật khác [4] ACO được cải tiến nhiều để ngày một hiệu quả hơn Khi cải tiến kỹ thuật rải pheromone so với phương pháp truyền thống, ACO chạy hiệu quả hơn trong bài toán lập lịch trên lưới [11] Một nghiên cứu năm 2013 đã thêm vào giá trị Trust Factor để xây dựng nên Trust Ant Colony Optimization (TACO) [5] ACO còn được đem lai với kỹ thuật Cuckoo Search để nâng cao tính hiệu quả [7] Chất lượng dịch vụ (QoS) luôn đóng vai trò quan trọng trong bài toán lập lịch các công việc trên môi trường lưới Nhiều nghiên cứu đã tích hợp thêm các tham số chi phí [6] vào giải thuật ACO để nhằm cải tiến chất lượng dịch vụ trên lưới [8][16] Cân bằng tải (load balancing) cũng được xem xét và

áp dụng giải thuật ACO để nâng cao hiệu quả [13] Bên cạnh ACO, những giải thuật về đàn cá nhân tạo (Artificial Fish Swarm) [2], giải thuật tối ưu hóa bầy ong (artificial bee colony optimization) [15] cũng được nghiên cứu và áp dụng thành công trong bài toán lập lịch Mỗi kỹ thuật đều có ưu nhược điểm riêng, ACO cũng được trình bày và so sánh với các giải thuật bầy đàn khác [14]

Báo cáo này tập trung trình bày về giải thuật tối ưu hóa đàn kiến và bài toán lập lịch trên lưới Đồng thời, khảo sát một số công trình nghiên cứu gần đây có tích hợp kỹ thuật tối ưu hóa đàn kiến vào giải quyết bài toán lập lịch trên lưới

Trang 8

2 Bài toán lập lịch trên môi trường lưới

2.1 Công việc và ứng dụng

Dù rất nhiều loại tài nguyên của lưới được chia sẻ và sử dụng, chúng luôn luôn được truy cập thông qua ứng dụng hay công việc Chúng ta dùng định nghĩa “ứng dụng” như là cấp cao nhất của công việc trên lưới Tuy nhiên từ “công việc” cũng được dùng với nghĩa tương đương Ứng dụng có thể được chia thành nhiều công vỉệc Các công việc, có thể được chia tiếp thành các công việc nhỏ hơn Lưới còn dùng các thuật ngữ giao dịch, đơn vị công việc để chỉ công việc

Hình 2.1: Một ứng dụng có thể là một hay nhiều công việc

được lập lịch chạy trên lưới

Trang 9

Công việc là những chương trình được thưc thi trên một điểm của lưới Chúng có thể là thực hiện tính toán, thi hành một câu lệnh, di chuyển dữ liệu Một ứng dụng trên lưới được tổ chức như tập hợp các công việc được thiết kế để chạy Song Song trên các máy khác nhau

Các công việc có thể bị phụ thuộc lẫn nhau nên không phải lúc nào cũng có thể cùng một lúc chạy song song Ví dụ, ta có một công việc yêu cầu dữ liệu đầu vào phải được copy đến một máy Một vài công việc khác đòi hỏi dữ liệu đầu ra, nhưng chúng không thể thực thi nếu công việc trước chưa được hoàn thành Một công việc có thể sinh

ra nhiều công việc con khác nhau Sau đó, dữ liệu của tất cả các công việc con được tập hợp để tạo nên kết quả cuối cùng của ứng dụng

2.2 Lập lịch, đặt chỗ và quét dọn

Hệ thống lưới có nhiệm vụ gửi các công việc đến các máy cần thiết để thực thi Với hệ thống lươí đơn giản nhất, người sử dụng sẽ chọn máy thích hợp cho công việc của anh ta, sau đó thực hiện dòng lệnh để đưa công việc đó đến máy đã chọn Các hệ thống lưới hiện đại hơn bao gồm một bộ lập lịch có tác dụng tự động tìm kiếm những máy tính thích hợp cho công việc đang chợ đợi thực thi

Trong các hệ thống lưới quét dọn, mỗi máy tính nhàn rỗi sẽ gửi thông báo tình trạng của mình đến điểm quản lý của lưới Điểm quản lý này sẽ chỉ định cho máy này thực hiện công việc tiếp theo mà máy có thể thực thi được Việc này được thực hiện một cách kín đáo đối với những người sử dụng bình thường Nếu máy tính bận với những công việc riêng của máy, thì công việc trên lương sẽ tạm ngưng Điều này khiến cho khó

có thể tính được thời gian hoàn thành công việc trên lưới

Ứng dụng chạy ở chế độ quét dọn sẽ đặt nó vào trong hệ thống với độ ưu tiên thấp nhất Vì thế, nó sẽ chỉ được chạy khi không có bất cứ chương trình nào khác đang chạy Với những bộ xử lý tốc độ cao ngày nay, ứng dụng lưới có thể chạy trong vài phần trăm giây, thậm chí là giữa các lần bấm phím của người dùng

Trang 10

Để chó thể dự đoán dễ dàng hơn, các máy tính trên lưới thường được thiết kế riêng cho lưới và không bị chi phối bởi các công việc khác Điều này cho phép bộ lập lịch có thể tính toán thời gian trung bình để hoàn thành các công việc

Các tài nguyên trên lưới có thể được đặt chỗ trước với một tập hợp công việc Sự đặt chỗ này giống như hệ thống sắp xếp đặt phòng Nó bảo đảm sự hoàn thành đúng hạn

và chất lượng dịch vụ Khi quyền hạn được thông qua, tài nguyên đặt chỗ có thể được quét dọn để chạy những công việc có độ ưu tiên thấp trong khi chờ những công việc đã đặt trước nó Với sự kết hợp của lập lịch, đặt chỗ, quét dọn có thể tạo ra một lưới hoàn hảo

Lập lịch và đặt chỗ có thể tiến hành dễ dàng nếu chỉ cố một tài nguyên tham gia như CPU Tuy nhiên việc tối ưu trên grid sẽ dùng nhiều tài nguyên cho việc đặt chỗ và lập lịch Ví dụ, ta luôn muốn công việc được phân công cho máy gần dữ liệu mà công việc dùng nhất Điều đó làm giaim3 lưu lượng băng thông và tăng khả năng mở rộng Chính vì vậy, bộ lập lịch sẽ sử dụng đến kinh nghiệm Kinh nghiệm sẽ giúp tìm ra sự kết hợp tốt nhất cho lập lịch và đặt chỗ để đạt hiệu quả cao nhất

Nhiều thuật toán lập lịch có sử dụng yếu tố kinh nghiệm và heuristic vào để quá trình lập lịch thêm hiệu quả Một trong những phương pháp được quan tâm sử dụng gần đây là kỹ thuật tối ưu hóa đàn kiếm (Ant Colony Optimization)

3 Giải thuật tối ưu hóa đàn kiến

3.1 Giới thiệu chung

Tối ưu hóa thuật toán đàn kiến (Ant Colony Optimization - ACO) là một trong các thuật toán MetaHeuristic được thiết kế để giải quyết các bài toán tối ưu tổ hợp, sử dụng phương pháp tính xác suất để tìm đường đi ngắn nhất của đồ thị Hệ thống ACO lần đầu tiên được Marco Dorigo giới thiệu trong luận văn của mình vào năm 1992, và được gọi là

Hệ thống kiến (Ant System, hay AS)

Trang 11

3.2 Đàn kiến tự nhiên

Kiến là loại cá thể sống bầy đàn Chúng giao tiếp với nhau thông qua mùi mà chúng để lại trên hành trình mà chúng đi qua Mỗi kiến khi đi qua một đoạn đường sẽ để lại trên đoạn đó một chất mà chúng ta gọi là mùi (pheromone) Số lượng pheromone sẽ tăng lên khi có nhiều kiến cùng đi qua Các con kiến khác sẽ tìm đường dựa vào một độ pheromone trên đường, mật độ pheromone càng lớn thì chúng càng có xu hướng chọn Dựa vào hành vi tìm kiếm này mà đàn kiến tìm được đường đi ngắn nhất từ tổ đến nguồn thức ăn

3.3 Đàn kiến nhân tạo

Đàn kiến nhân tạo (Artificial Ants) mô phỏng các hoạt động cảu đàn kiến tự nhiên

và có một số thay đổi, điều chỉnh so với đàn kiến tự nhiên để tăng tính hiệu quả của thuật toán Các tính chất của đàn kiến nhân tạo như sau:

- Ngoài thông tin pheromone thì đàn kiến nhân tạo còn sử dụng thông tin heuristics trong xây dựng luật di chuyển của chúng

- Kiến nhân tạo có bộ nhớ để lưu thông tin của kiến nhằm mục đích xác định hành trình đã đi qua và để tính toán độ dài của hành trình đó

- Lượng thông tin mùi pheromone được thêm vào bởi kiến nhân tạo là hàm của chất lượng lời giải mà chúng tìm được Kiến nhân tạo thường chỉ thực hiện tăng lương thông tin mùi sau khi hoàn thành lời giải

- Kiến nhân tạo sử dụng cơ chế bay hơi thông tin pheromone để tránh bế tắc trong bài toán tối ưu cục bộ

3.4 Thuật toán Ant System (AS)

Trong thuật toán AS, kiến xây dựng một đường đi bắt đầu tại một đỉnh được chọn ngẫu nhiên

Tại đỉnh i, kiến k sẽ chọn đỉnh j chưa được đi qua trong tập láng giềng của i theo công thức sau:

Trang 12

j p

h ih ih

ij ij k

Ban đầu nồng độ pheromone trên mỗi cạnh (i, j) được khởi tạo bằng một hằng số

ij

1)

in tour j) (i, edge used

k ant if

k k

Ngày đăng: 09/04/2015, 16:03

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Điện toán lưới - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 1.1 Điện toán lưới (Trang 4)
Hình 1.2: Tối ưu hóa bầy đàn - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 1.2 Tối ưu hóa bầy đàn (Trang 6)
Hình 2.1: Một ứng dụng có thể là một hay nhiều công việc - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 2.1 Một ứng dụng có thể là một hay nhiều công việc (Trang 8)
Bảng giá trị makespan cho các thuật toán (đơn vị thời gian tùy ý): - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Bảng gi á trị makespan cho các thuật toán (đơn vị thời gian tùy ý): (Trang 18)
Hình 4.1: Đồ thị biểu diễn các giá trị makespan (đơn vị thời gian tùy ý) - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.1 Đồ thị biểu diễn các giá trị makespan (đơn vị thời gian tùy ý) (Trang 19)
Bảng 4.1: Tỉ lệ phần tram các giá trị makespan của AE, AE+LS, AC - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Bảng 4.1 Tỉ lệ phần tram các giá trị makespan của AE, AE+LS, AC (Trang 19)
Hình 4.3: Đồ thị biểu diễn giá trị makespan trong trường hợp - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.3 Đồ thị biểu diễn giá trị makespan trong trường hợp (Trang 20)
Hình 4.2: Biểu diễn các giá trị makespan (%) của AE, - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.2 Biểu diễn các giá trị makespan (%) của AE, (Trang 20)
Hình 4.4: Đồ thị biểu diễn giá trị makespan trong trường hợp - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.4 Đồ thị biểu diễn giá trị makespan trong trường hợp (Trang 21)
Hình 4.5: Đồ thị biểu diễn giá trị makespan trong trường hợp - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.5 Đồ thị biểu diễn giá trị makespan trong trường hợp (Trang 21)
Hình 4.6: Đồ thị biểu diễn giá trị makespan trong trường hợp - Giải thuật ACO và bài toán lập lịch công việc trên môi trường lưới
Hình 4.6 Đồ thị biểu diễn giá trị makespan trong trường hợp (Trang 22)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w