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

Thực hiện giải thuật sắp xếp thời khóa biểu trường đại học sử dụng giải thuật di truyền với bộ đồng xử lý intel xeon phi

85 99 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 85
Dung lượng 6,74 MB

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

Nội dung

Mặc dù có nhiều ứng dụng sắp xếp thời khóa biểu cho các trường nhưng vẫn chưa đáp ứng được với tình hình mỗi trường cụ thể; hơn nữa thời gian chạy cũng rất lâu do có nhiều ràng buộc nên

Trang 1

VOI BO DONG XU LY INTEL XEON PHI

Chuyên ngành: Khoa học máy tính

Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

TP HO CHI MINH — 2018

Trang 2

Cán bộ hướng dẫn khoa HOC : .ccccsscsccsesscsecscesssscescsscssssessevsescsaesscessanvacs

(Ghi rõ họ, tên, học hàm, học vị và chữ ky)

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đông châm bảo vệ luận văn thạc sĩ)

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên

ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

NHIỆM VỤ LUẬN VÁN THẠC SĨ

Họ tên học viên: Võ Minh Khải - 52.2 c5 s22 MSHEV: 7140240

Ngày, tháng, năm sinh: 05/05/1991 s52 cssssssesss Nơi sinh: Phú Yên

Ngành: Khoa học máy tính . - ¿s2 vEcxckrxeEsrxrerkree Mã số : 60.48.01.01

I.TÊN ĐÈ TÀI: THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU

TRUONG DAI HOC SU DUNG GIAI THUAT DI TRUYEN VOI BQ DONG XU

LÝ INTEL XEONPPHI .À - G5523 2E 2E EEEEEEEEErrEEkkrkrrxrkrrrrrerkrkerkerrred

II NHIỆM VỤ VÀ NỘIDUNG: THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU SU DUNG GIAI THUAT DI TRUYEN VOI BO DONG XU LY INTEL XEONPHI, DANH GIA DO HIEU QUA CUA GIAI THUAT DI TRUYEN KHI CHẠY TREN INTEL XEONPHI SO VOI CAC GIAI THUAT KHAC

TIT NGAY GIAO NHIEM VU: = 15/01/2018 vocececccsccssssssessessestsssesvessstsstsssssesseesen

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2018 5c sex

V CÁN BỘ HƯỚNG DẪN : PGS TS Thoại Nam 2-5 6552 x2 2z rxee

Ths Nguyễn Quang Hùng tk SE SE SE 39 TT ren

Tp HCM, ngày 20 tháng S năm 20168

Trang 4

Tôi xin chân thành cảm ơn các thầy cô khoa sau đại học trường Đại học Bách

Khoa Tp HCM đã truyền đạt những kiến thức để tôi có nền tảng để thực hiện luận văn này

Tôi xin đặc biệt cám ơn Thầy PGS.TS Thoại Nam và Thầy Ths Nguyễn Quang Hùng đã tận tình hướng dẫn và chỉ bảo đề tôi có thể hoàn thành luận văn.

Trang 5

với các trường đại học hiện nay Mặc dù có nhiều ứng dụng sắp xếp thời khóa biểu cho các trường nhưng vẫn chưa đáp ứng được với tình hình mỗi trường cụ thể; hơn

nữa thời gian chạy cũng rất lâu do có nhiều ràng buộc nên việc thực thi trên một bộ

xử lý đơn sẽ kém hiệu quả hơn Do vậy đề tài sẽ thực hiện trên bộ đồng xử ly intel Xeon phi, do đó sẽ rút ngắn thời gian thực thi

Các kết quả chạy trên tập dữ liệu đánh giá độ hiệu quả của giải thuật, các kết quả thực hiên với thời gian ngắn hơn so với việc thực thi giải thuật trên khi không song song Kết quả thực thi thường nhanh hơn 20 lần so với việc thực thi trên máy

tính thường đối với tập dữ liệu liệu nhỏ Và 4 lần so với tập đữ liệu lớn

Trang 6

requirement for these universities nowadays Although there were some applications but have not met each specific condition and took along run time due to the number

of constrains

Therefore, in this thesis, Genetic Algorithms with heuristic run on intel Xeon

Phi will be applied to reduce running time The result of this approach is faster 20 times than using single processor for small data Faster 4 times for large data.

Trang 7

Tôi xin cam đoan luận văn “Thực hiện giải thuật sắp xếp thời khoá biểu trường

đại học sử dụng giải thuật di truyền với bộ đồng xử lý Intel Xeonphi” là công trình

nghiên cứu của cá nhân tôi Kết quả của nghiên cứu trình bày trong luận văn này không sao chép của bất cứ luận văn nào và chưa được trình bày, công bố ở bất kỳ

công trình nghiên cứu nào trước đây

Tp Hồ Chí Minh, tháng 6 năm 2018

Tác giả luận văn

Võ Minh Khải

Trang 8

Chương 1 MO DAU 990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006009606060606066 4

1.1 Lý đo chọn đề tài: - << th x1 7T g1 1 T1 TH TT Tà HT HT TH Tà TT HT tràn 4 1.2 Mục tiêu để tài - cà ch TT TH TT TT TT HT TH TT TH TT Tự Tự TT HT HT cà 4 1.4 Các yêu cầu đặt ra c 2c HH T3 11 1111111111511 T05 11g11 111101 0 TT T1 1111110 gen 5

Chuong 2 CÁC CÔNG TRÌNH LIÊN QUA .co5 5 5csscscsesessssesesesseseseoe 8

2.1 Phương pháp mô phóng luyện kim (SA) c1 HH ng TH ng ng 0000 8

2.2 Tim kiém Tabu (Tabu search - TS) c.cccccsscsssscsscscsssscsssscscsscscsssscsssscsnsessrsesecessscesssavsecansnsecesenceneeeas 8

SE 010600) 9

Chương3 CƠ SỞ LÝ THUYÊT ssceocsssesscseesessseeseseeseseesesessesessesesse Í Í 3.1 Giải thuật di truyn - -5s sen T3 111 10151111513 1111111111151 1511111111051 01x TEgcr re 11 3.2 Các phương pháp song song cho giải thuật đi truyÊn 5s Ss net eEsrrererrrrererrreed 12 XE ki Ji n6 12

b) Fine-Grained ParallelizatiOn - - So G2 0H HT TH n0 0090 90000 13 C) Coarse-Grained Parallel1zation QC nọ gọt TH 1010 9 06 14 EEN›0‹0ì0ii 20.4.) in 15

3.4 Các mô hình lập trình trên XeOfiD1 G0 G2 0 99900092000 00 gọn ng ng ng 17 8,8 , 0\ n6 ốa 17

I)/)/8., 8 0.0, 0n 17

Chương4 PHƯƠNG PHÁP GIẢI BÀI TOÁN SẮP XÉP THỜI KHOÁ BIẾU 18

J1 N9 ác ác 18

4.2 MO Dinh 0.00 19

4.3 Khởi tạo cá thể và quần thỂ 6 c3 39171 1115115 3151111111115 1312k grxrkrrrkd 21 4.4 Phép ÏAÌ: co ch TH ng ng ng ng Tà 0 1000 K11 10 8010-05 8010098110 090 8 00.05.180009 891900 22 L1 ng 24

“r8 0 1nn nh ố e 26

#Z/ nh nn 26

4.8 Câu trúc MEM và tạo cá thể con dựa vào cấu trúc MEM sec ket SE SE Set cerkes 28 Chuong5 HIỆN THỰC VÀ THỨ NGHIỆM - . o-s5 sscsscssessessesseess.s 3Ï Chuong6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIẾỂỂN .s-ssscsesscsese.se 3Õ 6.1 Một số kết luận và đóng góp của đề tài - s2 2E 113 1131101511 2111 011511151 1c erk 35 6.2 Hướng phát triỂn 2+ St 52319 753115 1111551975117 12705107751 1 xe crrkd 35 TAI LIEU THAM KHẢO - - 5 s25 32593321 E9E9 E99 SEEEEEEEEEETEEESEEE1519 1110111 e 37 51080090 9A Ô 37

Trang 9

Hình 3.1 - Sơ đồ giải thuật GA - 5-5-5252 SE S232 EESEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEETEEEEErkrrkrrkrrker

Hình 3.2 - Mô Hình Master — SÏaVG - Gv Hình 3.3 - Mô hình FIne-Grained với 8 rút ( DFOCCSSOT) - 5 key Hình 3.4 - Mô hình Coarse-ira1n€d - - - - - s13 11x HH nh rà vn

Hình 3.6 - Câu trúc Vòng của Xeonpphi -. - + + 5222 k+Ex+xzEeExeEvrxerxevsrkerxrxrrserrrrrrree

Hình 4.1 Mô hình cá thể theo mảng một chiều 2: + 5S S2x+EE+E+zE+EEeEvzszrsrerrxee

DANH MUC TU VIET TAT

Ký hiệu chữ viết tắt Chữ viết đầy đủ

SA Simulated Annealing

TS Tabu Search

GSGA Guide Search Genetic Algorithm

MIC Many Integrated Core

SIMD Single instruction, multiple data

LS Local Search

MO EA Multi-objective evolutionary algorithms

Trang 10

NSGA-II

MEM

- Elitist Non-dominated Sorting Genetic Algorithm

- MEMory hay cấu trúc dữ liệu được sử dụng hỗ trợ cho việc tìm kiêm

Trang 11

1.1 Ly do chon dé tai:

Việc sắp xếp thời khoá biểu sao cho hợp lý và hiệu quả luôn là một yêu cầu quan

trọng đối với các trường đại học hiện nay cũng như đã thu hút nhiều tô chức, nhà nghiên

cứu quan tâm bởi tính ứng dụng cao và sự phức tạp của nó

Trước đây, việc sắp xếp thời khóa biêu này vẫn được thực hiện thủ công ở một số

nơi Điều này dẫn đến việc tốn kém rất nhiều thời gian và công sức mà kết quả mang lại

là chất lượng của thời khoá biêu không cao và mang tính chủ quan của người sắp xếp, cũng như không thoả mãn được toàn bộ các ràng buộc và tính chất tối ưu Hiện nay có nhiều ứng dụng sắp xếp thời khoá biêu cho các trường học, nhưng nó vẫn chưa đáp ứng

được với tình hình cụ thể của từng trường, cũng như thời gian chạy dé tạo ra với đữ liệu

nhiều thường là rất lâu

Đối với các thời khoá biểu có nhiều ràng buộc thì sẽ dẫn đến không gian tìm kiễm lớn hơn, do đó việc thực thi chương trình trên một bộ xử lý đơn sẽ hoạt động kém hiệu quả hơn việc thực thi song song, chính vì vậy nên đề tài này sẽ hiện thực trên bộ đồng

xử lý intel Xeon phi, do đó sẽ rút ngắn thời gian thực thi Các thời khoá biểu có chất

lượng cao thì đòi hỏi thời gian thực thị lớn

1.2 Mục tiêu đề tài

Mục tiêu để tài là nhằm đưa ra giải pháp cho bài toán cho bài toán sắp xếp thời

khoá biểu của trường đại học vào mỗi đầu học kỳ, đưa ra được thời khoá biêu phù hợp

với chi phí thời gian cho phép và thoấ mãn các ràng buộc

Để đạt được các mục tiêu trên, dé tai tập trung vào các nhiệm vụ cụ thể sau:

- Tìm hiểu giải thuật di truyền và ứng dụng của nó trong việc giải quyết hiệu

quả các bài toán tôi ưu

Trang 12

- Ứng dụng giải thuật di truyền vào bài toán xếp thời khóa biêu hệ tín chỉ trong

trường Đại học

- Phân tích các kết quả đạt được khi áp dụng giải thuật di truyền với mô hình

song song trên Xeonphi

1.3 Đối tượng và phạm vi nghiên cứu:

Đối tượng mà đề tài tập trung vào nghiên cứu là bài toán sắp xếp thời khoá biêu

trường đại học bằng giải thuật di truyền và hiện thực trên máy trạm với bộ đồng xử lý Intel Xeon phi, đánh giá độ hiệu quả của giải thuật song song và so sánh với các giải thuật trước đó

1.4 Các yêu câu đặt ra

Chương trình sắp xếp thời khoá biểu môn học phải đáp ứng được toàn bộ các ràng buộc cứng và tô1 ưu hoá các ràng buộc mêm

Các ràng buộc

Ràng buộc cứng:

Mỗi giáo viên chỉ được dạy 1 lớp học tại cùng 1 thời điểm

Không có 2 môn học nào cùng Ì phòng học

Các môn học và tiết học trong danh sách Input phải được xếp lịch

Môn học thực hành phải được xếp vào phòng thực hành

Mỗi giáo viên có một danh sách thời gian mà giáo viên bận việc, không được sắp xếp thời gian giảng dạy vào thời gian bận việc

Các tiết của môn học trong cùng một chương trình giảng dạy hay được dạy bởi cùng một giảng viên phải được xêp vào các tiệt học khác nhau

Trang 13

Phòng học phải lớn hơn số lượng sinh viên trong lớp

Các tiết học trong cùng một khoá học nên được xếp gần nhau

Số tiết học trong từng môn học phải được trải dài với số ngày phải lớn hơn số

ngày tối thiếu được quy định trong từng tiết học

1.5 Tóm lược kết quả đạt được

Với mục tiêu của đê tải, sau thời gian nghiên cứu và hiện thực, tôi đã hiện thực được giải thuật di truyền thực thi song song chạy trên bộ đồng xử lý Xeonphi Các kết

quả chạy trên tập dữ liệu đánh giá độ hiệu quả của giải thuật, các kết quả thực hiện với

thời gian ngắn hơn so với việc thực thi giải thuật trên khi không song song Kết quả thực thi thường nhanh hơn 20 lần so với việc thực thi trên máy tính thường đối với tập dữ liệu nhỏ

Ẩ vr 7 A 4

1.6 Cầu trúc của luận văn:

Luận văn được bố cục thành 6 chương với những nội dung như sau:

- Chương 1: Mở Đầu - Đề cập đến lý do chọn đề tài, mục tiêu của đề tài, các yêu

câu đặt ra của chương trình sắp xêp thời khóa biêu

- _ Chương 2: Các công trình liên quan - trình bày một số nghiên cứu liên quan đến bài toán lập lịch thời khoá biểu trong trường đại học

Trang 14

phương pháp song song được sử dụng cho giải thuật di truyền

Chương 4: Phương pháp giải bài toán sắp xếp thời khóa biểu - trình bày chỉ tiết

việc hiện thực giải thuật di truyền để áp dụng vào bài toán lập lịch thời khoá biểu,

tỗ chức dữ liệu để sử dụng hiệu quả vector và kiến trúc của Xeonphi, phương

pháp song song được sử dụng trong luận văn

Chương 5: Hiện thực và thử nghiệm — Đưa ra kết quả đạt được sau khi hiện thực

giải thuật, đồng thời so sánh với các kết quả và thời gian hiện thực của các giải

thuật khác để đánh giá

Chương 6: Kết luận và hướng mở rộng đề tài

Trang 15

Có nhiều phương pháp đề giải quyết bài toán lập lịch thời khoá biêu cho trường đại

học dựa trên Meta-heuristic Các phương pháp mô phỏng luyện kim, tìm kiếm Tabu, giải thuật di truyền và các phương pháp hỗn hợp đã được dùng để giải quyết bài toán lập lịch

thời khoá biểu cho trường đại học Meta-heuristic bắt đầu với một hay nhiều các lời giải

ban đầu và dùng các chiến lược tìm kiếm để tránh các tối ưu cục bộ Tắt cả các g1ả1 thuật

tìm kiễm có thê tạo ra các kết quả tốt nhưng phải quan tâm đến thời gian thực thi của g1ải thuật

2.1 Phuong phap m6 phong luyén kim (Simulated Annealing - SA)

Giải thuật SA được bắt đầu bằng việc tính toán ngẫu nhiên các bước dịch chuyên đến các lời giải kế Nhiệt độ và hàm lượng giá xác định việc có thể chấp nhận các bước

di chuyển có kết quả không tốt Nhiệt độ cao thì xác suất chấp nhận kết quả không tốt cao và nhiệt độ thấp thì xác suất chấp nhận kết quả không tốt thấp Xác suất chấp nhận được định nghĩa bởi công thức exp(- /£) Trong đó ö là sự thay đổi chất lượng của lời

giải ( là thay đôi giá trị lượng giá) và t là nhiệt độ hiện tại Hiệu quả của SA phụ thuộc

vào thời gian làm mát và việc chọn câu trúc cho các lời giải lân cận

Elmohamed [15] đã áp dụng giải thuật SA với các loại làm mát khác nhau (hình học, thích nghi và thích nghi với việc nung nóng) đê giải bài toán lập lịch cho trường đại học Họ thử nghiệm trên tập đữ liệu thực tế ở trường Syracuse University Kết quả cho thấy việc thực hiện SA với giải thuật làm mát thích nghi và nung nóng cho hiệu quả tốt

nhất

2.2 Tìm kiếm Tabu (Tabu search - TS)

Trang 16

phương pháp heuristic để khai phá không gian tìm kiếm mà vượt qua được tối ưu cục

tốt nhất trong các lời giải kế cận của lời giải hiện được khai phá, và cứ như vậy tiếp tục

Danh sách tabu cho phép giải thuật thoát khỏi việc tối ưu cục bộ Các bước dịch chuyên

trong tabu list được ngăn chặn bởi một số lần lặp nhất định goi la “tabu tenure”

Nhiều nghiên cứu đã thực hiện giải bài toán lập lịch thời khoá biểu bằng phương pháp TS Hertz [14] lần đầu tiên sử dụng phương pháp TS để giải bài toán lập lịch thời

khoá biểu Tác giả đã kết luận rằng phương pháp này có thê cho kết quả thoả mãn yêu cầu lập lịch Lợi ích chính của phương pháp này là nó cho phép các bước dịch chuyên

hứa hẹn đến lời giải tốt, việc tìm kiếm nhanh chóng

2.3 Multi-Objective EA (Evolutionary algorithms)

Giải thuật multi-objective EA (MOEA) đầu tiên được goi 1a “vector evaluated GA”, đề xuất bởi Schaffer Sau đó những giải thuật MOEA khác như strength Pareto

EA (SPEA), c-multi-obJective EA (e-MOEA), the elitist non-domnated sorting GA (NSGA-TI), được phát triển và áp dụng thành công

NSGA-II được đề xuất dựa trên khái niệm của sắp xếp các phần từ không trội (non-

domiated) và độ đo đông đúc (crowding distance) Ban đầu, tập các lời giải với kích

Trang 17

thước N được tạo ra và sắp xếp dựa trên các phần tử không trội Sau đó, tại mỗi thế hệ,

một tập các cá thể con Q được tạo thành từ tập cá thể cha P bằng cách sử dụng phương

phap chon “tournament” ( hai ca thé duoc lua chon ngau nhién tu tap cha P, ca thé được

lựa chọn dựa theo hạng và khoảng cách đông đúc), phép lai, phép đột biến Sau đó các

cá thê con Q được hợp với P, tạo thành tập cá thê R có 2N phần tử, việc tính toán hạng

và khoảng cách đông đúc được tính cho R, Tập N cá thể tốt nhất theo hạng và theo khoảng cách đông đúc được lựa chọn trong R đề tạo thành thế hệ tiếp theo Do đó, sau

mỗi thế hệ, tập các cá thê không trội được duy trì

Datta [11], str dung NGSA-II dé giai bài toán lập lịch thời khoá biêu Họ phát triển

mô hình tối ưu 2 mục tiêu để giảm thiểu các vi phạm của ràng buộc mềm, áp dung 1 phép lai và 4 phép đột biến, và kiêm tra độ hiệu quả của giải thuật trên tập dữ liệu thực

Họ đưa ra kết luận là độ hiệu quả của giải thuật phụ thuộc vào việc định nghĩa xác suất

đột biến và lời giải được khởi tạo ban đầu.

Trang 18

Chuong 3 CO SO LY THUYET

Chương này gồm các phần:

- Phan đầu giới thiệu về giải thuật di truyền

- _ Phần tiếp theo giới thiệu về các phương pháp song song dành cho giải thuật đi

truyền

- - Giới thiệu về Xeon Phi và các loại lập trình với Xeon Phi

3.1 Giải thuật di truyền

Giải thuật di truyền (GA-Genetie Algorithm) là kỹ thuật phỏng theo quá trình thích nghi tiễn hóa của của các quân thê sinh học dựa trên học thuyết Darwin Quá trình tiễn

hoá thê hiện tính tối ưu ở chỗ, thế hệ sau thường tốt hơn ( phát triển hơn, hoàn thiện hơn)

so với thế hệ trước Tiến hoá tự nhiên dựa vào hai quá trình chính là sinh sản và chọn lọc tự nhiên Trong quá trình tiễn hoá tự nhiên, thế hệ sau được sinh ra để bổ sung cho

các thế hệ đầu Cá thể nào phát triển hơn, thích nghi cao hơn với môi trường sẽ tồn tại,

cá thê nào không thích nghỉ sẽ bị đào thải

Các cá thê mới sinh ra trong quá trình tiễn hoá nhờ sự lai ghép từ các cá thể bố mẹ

Cá thé mới có thé mang những tính trạng của cha mẹ (di truyền), cũng có thê mang

những đặc tính mới (đột biến) Di truyền và đột biến có vai trò quan trọng trong tiến hoá

Đột biên có sác xuât xảy ra nhỏ hơn nhiêu so với quá trình di truyện

Vậy nên có thể nói giải thuật di truyền là phương pháp tìm kiếm tối ưu ngẫu nhiên

bằng cách mô phỏng theo sự tiễn hóa của con người hay của sinh vật Ý tưởng của thuật

toán đi truyền là mô phỏng các hiện tượng tự nhiên, là kế thừa và đầu tranh sinh tồn được

Holland [9] phát triên vào hệ thống nhân tạo năm 1975 để tối ưu hóa các vẫn đề và xây dựng xây dựng thuật toán di truyền Cho đến ngày nay, giải thuật đi truyền vẫn được coi

Trang 19

như là một công cụ mạnh mẽ để giải quyết những vấn đề về tìm kiếm và tối ưu hóa phức

tạp như là lập thời gian biểu, lập lịch, hệ thống điều khiến, bài toán người du lịch Dù rằng các giải thuật di truyền thực hiện được thay đối theo bài toán cụ thể, nhưng nhìn

chung đều có câu trúc tiêu biêu sau:

Hình 3.1 - Sơ đô giải thuật GA

Hình 3.1 Mô tả các bước cơ bản của một giải thuật GA, Khởi tạo quân thê, Lựa

chọn cá thê cha, Phép Lai ghép, phép đột biến, loại bỏ các cá thể kém thích nghỉ

3.2 Các phương pháp song song cho giải thuật di truyền

a) Master — Slave

Quân thê được lưu trữ tại master, việc tính toán được phân bo cho cac slaves

Trang 20

| Cac thao tac trén GA | Master

— Giá trị lượng giá

Hinh 3.2 - M6 Hinh Master — Slave

Mô hình đồng bộ : chỉ có việc tính toán giá trị lượng giá được tinh 6 cac slave, master phải đợi các slave để kết thúc, các thao tác chọn, thay thé, lai va dot bién được thực hiện tại master

Mô hình bắt đồng bộ: các thao tác chọn, thay thế, lai và đột biến được thực hiện

trên các slave, các slave không phải đợi để tiếp tục xử lý trên thế hệ tiếp theo

b) Fine-Grained Parallelization

Quân thê được phân bô cho các processors qua một lưới 2D, các processor gân

nhau chia sẽ các cá thê của mình trong việc lựa chọn cá thê làm cá thê cha

Hình 3.3 - Mô hình Fine-Grained với ö nút ( processor)

Trang 21

Việc khởi tạo quan thé gidng voi việc khởi tạo quân thê của một giải thuật GA đơn

giản, nhưng các cá thê được chia đêu cho các processor Cac processor có thê lựa chọn phân tử làm phân tử cha từ các processor kê cận và cá thê con có thê thay thê một cá thê

khác trong quân thể con Việc lai và đột biễn giống với giải thuật GA đơn giản

Hinh 3.4 - M6 hinh Coarse-Grained

Từ Mô hình ở hình 3.4, Các Island được tạo từ quần thê ban đầu cho đến khi số

lượng các Island được thỏa mãn Tân suất di chuyên các cá thê từ Island này đến Island khác có thê xảy ra cố định hoặc tuân theo một phân bố xác suất, dựa trên ngưỡng thấp

nhất của độ lệch chuẩn của giá trị lượng giá Số lượng các cá thê được chuyên đi có thê

được xác định bởi phân trăm cá thể có trong Island hay một số lượng các thê nhất định

Trang 22

3.3 Bộ xử lý Intel Xeonphi

Bộ đồng xử lý Intel Xeon Phi được biết tới đưới tên gọi Kinght Corner trong giai

đoạn đầu phát triển của nó Việc lập trình không cần đòi hỏi phải hiểu biết sâu về thiết

bị phân cứng, nhưng sẽ hữu hiệu khi biết đến các dic tinh cua Xeon Phi dé sir dung het khả năng của nó Từ góc nhìn lập trình, Xeon Phi sử dụng kiến trúc x86 (CPU nhiều

nhân) và mô hình lập trình với kiến trúc x86, với hơn 50 core, và 4 thread trên một core, 512-bit SIMD (Single instruction, multiple data), được thiét ké dé str dụng cho các hệ

thống tính toán hiệu năng cao - HPC (High Performance Computing)

Xeonphi được kết nối với Intel Xeon processor thông qua PCI Express (PICe) Bus

Việc hiện thực kết nỗi TCP/IP cho phép kết nối tới Xeon Phi như một node cua mạng

kiến trúc MIC (Many Integrated Core)

Trang 23

Xeonphi co cac dac tinh sau:

- Nhiéu hon 50 core (sé khac nhau véi cac loai xeonphi khac nhau)

- _ Các core được kết nối bởi vòng hai chiều tốc độ cao

- - Mỗi core có 4 thread nên mỗi Xeon Phi có hơn 200 thread

- _ Xung nhịp mỗi core thường hơn 1 GHz

- _ Cache liên kết với nhau trong toàn bộ Xeon Phi

- - Mỗi core có 512-KB L2 cache và có kết nối tốc độ cao với tất cả các cache L2 khác, điều này làm cho tông cache L2 lên đến hơn 25 MB

- _ Kết nỗi với bộ xử lý chính thông qua kết nối PCI

- _ Sử dụng hệ điều hành Linux

- _ Việc lập trình trên Xeon phi gàn giống với việc lập trình trên CPU

Hình 3.6 - Cấu trúc Vòng của Xeonphi

- _ Các tập lệnh đặc biệt đối với 64-bit x86

- Kha nang SIMD thong qua vector 512-bit

Trang 24

- H6 tro hiéu quả các phép toán học: nghịch đảo, can bac hai, ham mt

3.4 Các mô hình lập trình trên Xeon Phi

Lập trình theo hướng Native

Thực thi theo hướng Native là toàn bộ chương trình chạy trên Intel Xeon Phi Xây dựng chương trình theo hướng native là một cách nhanh chóng cho phép chương trình

có thể thực thi trên Intel Xeon Phi Song song hoá việc sử dụng đữ liệu và áp dụng giải

thuật song song, để tối ưu hoá việc thực thi trên Xeon Phi

Complie chương trình để thực thi trên Xeon Phi bằng -mmic thông qua trình biên

dich ICC cua Intel Sau khi chương trình được biên dịch, sử dụng ssh vào mic0 và upload

chương trình và chạy trên Xeon Phi

Lập trình theo hướng Offload

Intel cung cấp một tập các Directive tới các Complier có tên gọi là “LEO” (Language Extension for Offload) Cac directive nay quan ly viéc chuyén va thuc thi

một phần code tới thiết bị Khi host và device không có bộ nhớ vật lý hay bộ nhớ ảo, các

biến phải được sao chép từ host lên Xeon Phi

Offload đề cập tới việc viết chương trình từ góc nhìn thực thi trên processor(s) và

offload thực hiện từ host tới một hoặc vài coprocessor Chương trình bắt đầu thực thi

trên host, dựa trên code mà người dùng định nghĩa, vài phần của chương trình được offload lên một hay nhiều coprocessor

Offload là một cách lập trình tốt khi chương trình dành phần lớn thời gian để tính

toán mà ít sử dụng đến UO

Trang 25

Chuong 4 PHUONG PHAP GIAI BAI TOAN SAP XEP THOI

HI Các môn học và tiết học trong danh sách

Input phải được xếp lịch

H2 Mỗi giáo viên có một danh sách thời gian mà

giáo viên bận việc, không được sắp xêp thời gian giảng dạy vào thời gian mà giáo viên bận việc

H3 Các tiết của môn học trong cùng một chương

trình giảng dạy hay được dạy bởi cùng một giảng viên phải được xêp vào các tiệt học

khác nhau

H4 Môn học thực hành phải được xếp vào phòng

thực hành

H5 Không có 2 môn học nào được diễn ra cùng

1 phòng học tại một thời điểm

Hồ Mỗi giáo viên chỉ được dạy l lớp học tại

Trang 26

S1 Các tiệt học của một môn học nên được xêp | Nêu môn học được sắp xêp

ở cùng một phòng học vào nhiêu phòng học, Mỗi

phòng học được sử dụng

được tính là 1 vi phạm

32 Phòng học phải lớn hơn số lượng sinh viên | Mỗi sinh viên vượt quá sức

trong lớp chứa của phòng học được

tính là I vi phạm

S3 Các tiết học trong cùng một khoá học nên | Mỗi tiết học trong cùng

được xếp gần nhau một khoá không liền kề tiết

học khác trong cùng một ngày được tính là 2 vi phạm

34 Số tiết học trong từng môn học phải được trải | Tống số ngày giảng day

dai với số ngày phải lớn hơn số ngày tối thiếu | của môn học nhỏ hơn số

được quy định trong từng tiết học ngày quy định của môn học

được tính là 5 vi phạm

4.2 Mô hình

M6 ta mô hình

Mỗi cá thê là một mảng 2 chiều A (MxN), các cột thê hiện thời gian, các dòng thể

hiện phòng học Thời gian học là 5 ngày (từ thứ 2 đến thứ 6) mỗi ngày sẽ có 6 tiết học

(số tiết học có thể thay đôi tuỳ theo dữ liệu đầu vào của dữ liệu) Nên M sẽ có giá trị là tối thiểu 30 Mỗi phần tử Aij, 14 tên môn học.

Trang 27

Dé tối ưu hoá việc xử lý trên Xeon Phi Thay vì sử dụng mảng 2 chiéu dé dinh

nghĩa một cá thể Ta sử dụng mảng một chiều A cũng với kích MxN phân tử Với M

phân tử đầu tiên là số tiết học cho phòng học đầu M phần tử tiếp theo là thời gian cho

phòng học thứ 2 và cứ tiếp tục như vậy Sử dụng mảng một chiều để tối đa hoá vectorization trong Xeon Phi

Hình 4.1 Mô hình cá thể theo mảng một chiêu

Giải thuật di truyền mà một trong những lớp giải thuật hiệu quả để giải quyết bài

input : file xml mô tả thông tin về số môn học, phòng học, tiết học và một số ràng

buộc

Đặt thế hệ đầu tiên là g := 0;

{Khởi tạo ngẫu nhiên các cá thê trong quan thé}

for 1: = l to N do

tạo ngẫu nhiên cá thê S;

áp dụng LocalSearchQ cho cá thê S;

Trang 28

12 cá thể con s1 được tạo thành bằng cầu trúc MEM hoặc bằng phép lai từ cá thê cha với xác xuât y

13 cá thể con s2 được thành bằng đột biến với xác xuất Pụ

14 tắt cả các cá thể con được áp dụng LocalSearchQ

15 thay thế những cá thê xâu nhất bằng các cá thể con

1ó gi=gtl

17 endwhile

18 output : két qua sé là cá thê tốt nhất trong quân thể

4.3 Khởi tạo cá thể và quân thể

Các cá thể được tạo ra một cách ngẫu nhiêu Mỗi gen được lựa chọn một các ngẫu

nhiên Các bước tạo một cá thể:

Cac môn học và giáo viên dạy môn học được gán bởi người quản trị, thông tin nay

có san trong input dau vao

BI - Một môn học c từ danh sách các môn học có sẵn được chọn một cách ngầu

nhiên Nếu danh sách này rỗng quay về bước 5

B2 - Chọn ngẫu nhiên một phòng học ¡ và một thời gian học j chưa có môn học,

gán môn học vừa chọn ở bước 1 vào ô được chọn, A[I#*M¬+J] = c, Nếu môn học là

môn 2 tiết học thì cột tiếp theo A[i*M+j+1] = c,

B3 - Trừ số lượng tiết học của môn học được chọn tương ứng là ] hoặc 2 tuỷ

thuộc môn học đó có phải là tiết đôi hay không Nếu số lượng tiết học bằng không

thì xoá môn học đó ra khỏi danh sách môn học

Trang 29

B4) Lap lai B1, B2, B3 cho đến khi danh sách môn học rỗng

gid tri cua randSelect[i] < 0.5 thì cá thé con lay giá trị từ cha là A và ngược lại là cá thể

B Phải tách riêng mảng randSelect vì nếu sử dụng hàm randomNumber trong vòng lặp for sẽ không sử dụng đặc tính vector1zation

input: hai cá thê A và B

._ Tạo mảng randSelect để lưu trữ xác suất lựa chọn từng phần tử trong cá thé for 1:= 0 to MxN do

Trang 30

13 C2[i] = Afi];

15 endfor

16 Ap dụng LocalSearchQ vào cá thể con C1 và C2

17 output: hai cá thể con C1 và C2

1 Input: Quan thé với N cá thê

2 Khởi tạo mảng rỗng selectChorosome

14 #pragma omp parallel

15 # pragma omp for

16 for (i:=0; i<count; i+=2) do

Trang 31

17 crossOver(selectChorosome[i], selectChorosome[i+1 ])

4.5 Phép đột bién:

Phép đột biến dựa trên 2 loại đột biến là đột biến trên 2 điểm và đột biến trên 3

điểm Mỗi phan tử được chọn đề đột biến sẽ tạo ra 2 cA thé con dua vao hai loai d6t bién

này Đột biến 2 điểm, lựa chọn ngẫu nhiên 2 môn học trên thời khoá biêu và hoán đôi lại với nhau Đột biến 3 điểm, lựa chọn ngẫu nhiêu 3 môn học trên thời khoá biểu hoán vị

3 môn học lại với nhau

NI: được định nghĩa bởi phép dịch chuyển một môn học từ tiết học này sang tiết học

khác

N2: được định nghĩa bởi phép hoán đổi 2 môn học ở 2 tiết học khác nhau

N3: được định nghĩa bởi phép hoán vị 3 môn học ở 3 tiết học khác nhau Có 3 hoán vị

có thể có cho 3 môn học Ta dùng ] trong 2 hoán vị khác với vị trí hiện tại của 3 môn học

Trang 32

output: hai cá thê con C1 va C2

Các cá thể được lựa chọn để đột biến trong quân thể với xác suất lựa chọn là Pạụ Cũng

giống như thực thi song song với phép lai ghép Các cá thể được lựa chọn để đột biến cũng được thực hiện song song bằng openmp trên Xeonphi

Input: Quân thể với N cá thê

Khởi tạo mảng rỗng selectChorosome

Trang 33

10 end for

11 #pragma omp parallel

12 # pragma omp for

Số lượng ràng buộc tăng lên thì độ phức tạp của thuật toán cũng tăng lên Độ phức tạp của việc tính hàm lượng giá là O(M.N.C) Trong đó M là số tiết học, N là số phòng học và C số lượng chương trình giảng dạy Việc sử dụng Local search sẽ tính lại hàm lượng giá nhiều lần, nên để giảm thiếu số tính toán trên hàm lượng giá ở local search ta

sử dụng các mảng tạm đề lưu trữ thông tin dé kiêm tra vi phạm ràng buộc

4.7 Tìm kiếm cục bộ - Local Search (LS)

Trang 34

1 input: Ca thé A

2 for 1:=0 to MxN do

3 if(A[I] vi phạm ràng buộc cứng) then

4 if (còn phép biên đối chưa thực hiện ) then

5 Tinh phép bién déi lan Iuot N1, N2, N3

6 Nếu NI không thành công thì dùng N2, nếu N2 không thành công thì dùng

N3

1 Tính toán giá trị lượng giá trước và sau khi tính phép biến đối

8 Ïf ( giá trị lượng giá mới < giá trỊ lượng giá cũ ) then

9, Thực hiện phép biến đôi đi tới bước 3

15 if (A[i] vi phạm ràng buộc mém) then

16 Tính phép biến đôi lần lượt N1, N2, N3

11 Nếu NI không thành công thì dùng N2, nếu N2 không thành công thì dùng N3

18 Tính toán giá trị lượng giá trước và sau khi tính phép biến đối

19 Ïf (giá trị lượng giá mới < giá trỊ lượng giá cũ) then

20 Áp dụng phép biến đổi và đi tới bước 15

Trang 35

Trong bước đầu của giải thuật tìm kiếm cục bộ (LS — Local Search) LS sẽ kiêm tra các v1 phạm ràng buộc cứng với môn học được gán, và không xét tới v1 phạm ràng buộc mềm Nếu có vi phạm ràng buộc cứng với phép gán LS sẽ loại bỏ các vi phạm ràng buộc cứng bằng cách áp dụng các biến đối N1, N2, N3 theo thứ tự đến khi thoả mãn

điều kiện dừng (Điều kiện dừng: khi cá thê đã được cải thiện hoặc đã lặp được một số lần lặp nhất định) Với mỗi phép biến đổi ta tính giá trị lượng giá thay đôi bởi phép biến đối Nếu giá trị lượng giá nhỏ hơn giá trị ban dau thi ta thực hiện phép biến đổi

Bước tiếp theo với mục tiêu là làm giảm số lượng vi phạm ràng buộc mềm trong

khi vẫn giữ không bị vi phạm ràng buộc cứng Sau khi áp dụng tất cả các phép biến đối,

nếu còn ràng buộc cứng bị v1 phạm vì LŠ sẽ dừng lại Ngược lại thì LS sẽ thực hiện bước

tiếp theo (dòng 14-25 trong giải thuật LS) Bước thứ hai cũng tương tự như bước đầu với từng phép gán môn học để làm giảm số lượng ràng buộc mềm Với từng phép gán,

LS 4p dung các phép biến đôi N1, N2, N3 theo thứ tự mà không vi phạm các ràng buộc cứng Với mỗi phép biến đổi ta tính giá trị lượng giá thay đổi Nếu giá trị lượng giá nhỏ hơn giá trị ban dau thì ta thực hiện phép biến đôi Khi giải thuật LS kết thúc , ta có được một cá thê đã được cải thiện và có thê là kết quả khả thi

4.8 Câu trúc MEM và tạo cá thể con dựa vào cấu tric MEM

Trang 36

Trong gua trinh su dung tim kiếm cục bộ, một bộ nhớ dùng thêm hay cầu trúc dữ liệu

được sử dụng, được ký hiệu là MEM ( được lây từ Memory) Hình 4.2 trình bày cầu trúc

chi tiết của MEM Mỗi phép gán môn học e có một danh sách các cặp phòng học và thời

gian không vi phạm các ràng buộc cứng và ràng buộc mêm

L Giải thuật 5: Tạo cấu trúc MEM

10

1 input: Toàn bộ tất cả các cá thê P

2 sắp xếp các cá thê P theo độ thích nghi giảm tăng dân

for mỗi phép gán môn hoc e; do

Tính toán sự vi phạm ràng buộc đối với phép gán e;

Ïf (c¡ không vi phạm ràng buộc) then

thêm cặp phòng học rẹ và thoi gian t, (fe, t.) vào trong list |, end if

end for

11 end for

12 output: Cau trac MEM

Cau truc MEM sau đó được dùng đê tạo ra các cá thê con ở các thê hệ sau Câu trúc

MEM sẽ được cập nhật sau t thê hệ đê tạo cân băng với việc cho ra kêt quả tôt ưu và thời gian thực thi của giải thuật di truyền GSGA (Guide Search Genetic Algorithm)

Cũng nhăm mục đích tránh được các tôi ưu cục bộ

Với GSGA, Cá thê con được tao ra bang cau trúc MEM hoặc thực hiện phép lai với

xác suất y Khi một cá thể con được tạo ra, một số ngẫu nhiên p thuộc khoảng [0.0, 1.0].

Trang 37

Néu p nho hon y, ca thể con được ra bằng cầu trúc MEM, ngược lại cá thể con được tạo

ra bằng phép lai

Khi cá thể con được tạo ra bằng cầu trúc MEM Với mỗi tiết học trong từng hoc môn học e, ta lay ngẫu nhiên một phần tử trong danh sách của môn học e là lạ, Sau đó gán tiết học và phòng học với môn học e vào trong cá thể con Quá trình lặp lại cho đến khi hết số tiết học trong môn học Sau quá trình đó sẽ có những môn học có số tiết học chưa được gán Các tiết học đó sẽ được gán ngẫu nhiên vào các tiết học và phòng còn trống Kết thúc quá trình ta sẽ được một cá thể con

L Giải thuật 6: Tạo cá thể con dựa vào cấu trac MEM

“TT hoat Câu trúc MEM LH TH E2 CS nnn

2 for mỗi môn học trong danh sách đầu vào do

3 _ for mỗi tiết học trong môn học do

11 for các tiết học bị thiếu trong danh sách môn học do

12 Gan ngẫu nhiên môn học vào vị trí tiết học và phòng học còn trồng

13 end for

14 Áp dụng LocalSearch vào cá thé con

15 output: Ca thể con được tạo ra dựa vào cầu trúc MEM

Trang 38

Chuong 5 HIEN THUC VA THU NGHIEM

Môi trường thực thi

- Host: May tram su dung 2 CPU Xeon 2650

Mỗi Cpu có 8 core 16 luồng thực thi với tốc đột 3.1 GHz

Bộ nhớ chính (RAM) 32G

- Card Xeonphi: st dụng Xeonphi 7120p, gồm có 61 Cores 1.24 GHz, mỗi core có

4 luồng thực thi, bộ nhớ cache 30.5MB L2, Bộ nhớ chính 16GB

Chương trình được viết trên ngôn ngữ C Sử dụng trình biên dịch ICC của Intel để

biên dịch chương trình song song Chương trình được thực thi trực tiếp trên Card Intel Xeonph1 7120p ( lập trình theo hướng native), sức mạnh tính toán của Xeonphi là hon 1 TeraFLOPS

Chương trình sử dụng tập đánh gia ITC-2007 Curriculum Based Course

TimeTabling, tập đánh giá gồm 19 input dau vào

Thông số được dùng cho giải thuật GSGA như sau:

Bảng 5.1 - Thông số giải thuật GSGA

Trang 39

Bang 5.2 - Tap dit liéu dau vao

Mônhọc Số tiét| Phong Số tiết Số ngày Chương Ngày

Trang 40

Đầu tiên chương trình được chạy thử nghiệm 4 tập dữ liệu, 2 tập dữ liệu nhỏ và 2 tập dữ liệu lớn Chương trình được thực thi thử nghiệm trên số luéng thực thi khác nhau và

được thực thi với 50 thế hệ và thời gian thực thi được tính bằng giây Kết quả trung bình được thể hiện ở bảng 5.3

Bảng 5.3 - So sánh kết quả đạt được với 4 giải thuật khác

Ngày đăng: 21/03/2020, 11:39

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w