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 97 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

Nội dung

Trang 1

đà <> VO MINH KHAI

THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU TRUONG DAI HQC SU DUNG GIAI THUAT DI TRUYEN

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Ĩ

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) Cán bộ chấm nhận xét l : ¿52tr (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ châm nhận xét 2 : - 2 2.1 St Sa SvESESEESEEEEEEsErkrerrsesrsrrsrsrd (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm

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

CAN BO HUONG DAN TRUONG KHOA KH & KTMT

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

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

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

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

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

Trang 9

Bảng 4.1 - Mô tả các ràng ĐUỘCC - - - - << << KT Bảng 5.1 - Thông số giải thuật Œ'ŠŒA - - 55+ 2k EEEkkEEk E11 rrki |;11.Đ9⁄VL):1.0Ẵ.1201./.08 1.000000NNN ấn Bảng 5.3 - So sánh kết quả đạt được với 4 giải thuật khác - cccccccscseereered DANH MỤC HÌNH ẢNH

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

Hirth S09 ‹i 0 9091

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

Hình 4.2 Câu trúc MEM +: hư gi

DANH MUC TU VIET TAT Ký hiệu chữ viết tắt Chữ viết đầy đủ GA Genetic Algorithm SA Simulated Annealing TS Tabu Search

GSGA Guide Search Genetic Algorithm MIC Many Integrated Core

SIMD Single instruction, multiple data LS Local Search

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

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

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

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á

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

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

bộ

Giải thuật TS bắt đầu từ một lời giải ban đầu sau đó được lặp để khai phá các lời giải kế cận Bước di chuyên tiếp theo được chọn sau khi đánh giá hết toàn bộ các lời giải kế cận của lời giải hiện tại Một lời giải không tốt có thê được chấp nhận miễn là chất lượng lời giải đó tốt hơn toàn bộ các lời giải kế cận Việc này có thể dẫn đến việc lặp

vòng, như việc di chuyền lặp lại trong một phần của không gian tìm kiếm Đề tránh việc lặp vòng TS sử dụng bộ nhớ đê lưu trữ danh sách tabu (tabu list) Nếu một lời giải được tìm thấy trong danh sách tabu, nó được gọi là một lời giải tabu (tabu solution) và lời giải

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-

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

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

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: Khởi tạo quân thẻ Y Lira chon cha me 4+——— v Lai chép Y Đột biện Y Đâu tranh sinh tồn "ộỘỪỒỖỒ ee ee FALSE ——_ Điều kiện dừng —- —— —~T””” TRUE Y Các cá thẻ tôt nhất

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

Trang 20

| Cac thao tac trén GA | Master

— Giá trị lượng giá

| | | Slave

Tính toán Tính toán Tính toán Tinh toan

gia tri gia tri gia tri gia tri

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

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

c) Coarse-Grained Parallelization

Ở phương pháp này, mỗi process được gán một một thuật GA đơn giản và giữa các processor có kêt nôi với nhau đê có thê truyền các cá thê lần nhau

island

Migration

Island Island

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ê

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

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

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

Trang 25

Chuong 4 PHUONG PHAP GIAI BAI TOAN SAP XEP THOI KHOA BIEU 4.1 Các ràng buộc: Bảng 4.] Mô tả các ràng buộc Tên ràng | Mô tả Giá trị vi phạm buộc

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

cùng 1 thời điểm

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 khố 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

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 A, bene soneae 1 2 3 4 5 6 7 8 9 10 11 LTTTTT-TT+TTT- MA M M 4 * ch ¥ + *

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;

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

Trang 29

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

B5) Kết thúc quá trình

Lặp lại N lần việc tạo cá thể ta được quân thê N phần tử

4.4 Phép lai:

Để việc song song hoá trở nên hiệu quả, ta tối đa hoá vectorization trong Xeonphi bằng các sử dụng phép lai đa điểm Đâu tiên ta khởi tạo randSelect để lưu trữ các giá trị ngẫu nhiên trong khoảng [0, 1], sau đó lặp qua toàn bộ các tiết học và phòng học Nếu

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

Trang 30

13 C2[i] = Afi];

14 endif

15 endfor

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

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

Các cá thê được lựa chọn để lai ghép trong quân thể với xác suất lựa chọn là Pc Khi số lượng cá thể được lựa chọn là số lẻ thì ta loại bỏ cá thể cuối cùng ra khỏi danh

sách lựa chọn phép lai được sử dụng song song cho từng cặp cá thể cha trên Xeonphi thông qua openmp, mỗi cặp cá thê cha được lựa chọn sẽ được thực thi lai ghép trên một core cua Xeonphi

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

2 Khởi tạo mảng rỗng selectChorosome 3 count=0 4 for i=1 to N do 5 rand = số ngẫu nhiên trong khoảng [0, 100] 6 7 8 9 if ( rand < Pc) then selectChorosome[count] = cá thé i count ++; end if 10 end for 11 if (count 1a sé lẻ) then 12 count ; 13 endif

14 #pragma omp parallel 15 # pragma omp for

Trang 31

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

18 end for

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à hố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 hố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 hốn đổi 2 mơn học ở 2 tiết học khác nhau

Trang 32

24 25 26 21 28 29 30 31 32 33 34 35 36 randomPosition1 = randomNumber(0, MxN); randomPosition2 = randomNumber(0, MxN); randomPosition3 = randomNumber(0, MxN); temp]l = CI[RandomPosition] ]; temp2 = C1[RandomPosition2]; temp3 = C1[RandomPosition3]; C1[RandomPosition1] = temp2; C1[RandomPosition2] = temp]; C2[RandomPosition1 ] = temp2; C2[RandomPosition2] = temp3; C2[RandomPosition3] = temp]; Ap dung LocalSearch() trén C1 va C2;

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ê

Trang 33

10 end for

11 #pragma omp parallel 12 # pragma omp for 13 for G:=0; i<count; 1+=1) do 14 muation(selectChorosome[1]) 15 end for 4.6 Hàm lượng gia: F(x) = » w‡xPỆ + » w?xPh i=1 4 i=1 6

Trong đó x là cá thê w là trọng số tương ứng cho các ràng buộc cứng và ràng buộc mềm, P; bằng 0 nếu cá thể không thoả mãn ràng buộc và bằng 1 nếu cá thê thoả mãn ràng buộc 1

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 tố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 10 endif 11 endfor 12 13 if ( trong cá thể A không có vi phạm ràng buộc cứng ) then 14 fori:=0 ío MxN do

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

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

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 3 chọn ra tập Q gồm ơ cá thể tốt nhất trong P 4 for mỗi cá thé I trong Q do 5 6 7 8 9

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

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 4 if (1, != NULL) then 5 Chọn ngẫu nhiên phép gán môn học vào trong tiết học và học phòng học từ danh sách l, 6 Gián thời gian và phòng học với môn học đã được chọn trong 7 end if 8 end for 9 end for

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

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:

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

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