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

Tiểu luận Thuật toán và phương pháp giải quyết vấn đề THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH

44 911 7

Đ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 44
Dung lượng 449,48 KB

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

Nội dung

Trong thuật giải di truyền, người ta dùng thuật ngữ vay mượn của di truyền học.Trong đó, cá thể biểu diễn một lời giải, giải pháp của bài toán.. 1.2 Các bước cơ bản giải bài toán bằng th

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

o0o

-THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ

THUẬT GIẢI DI TRUYỀN

VÀ ỨNG DỤNG TRONG BÀI TOÁN LẬP LỊCH

Trang 2

MỤC LỤ

MỤC LỤC 1

LỜI CẢM ƠN 2

I THUẬT GIẢI DI TRUYỀN 4

1 Tổng quan về thuật giải di truyền 4

1.1 Giới thiệu 4

1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền 4

2 Các thành phần cơ bản của GA 4

2.1 Biểu diễn các cá thể 5

2.2 Hàm thích nghi 7

2.3 Quá trình lai ghép 7

2.5 Quá trình đột biến 9

2.6 Quá trình chọn lọc 9

3 Các toán tử 9

3.1 Toán tử chọn lọc 10

3.2 Toán tử đột biến 12

3.3 Toán tử lai ghép 13

4 Các tham số 15

5 Công thức 15

6 Cấu trúc giải thuật di truyền 16

7 Các giai đoạn của thuật giải di truyền 17

II BÀI TOÁN LẬP LỊCH 18

1 Giới thiệu bài toán 18

2 Khảo sát yêu cầu bài toán 19

3 Khảo sát, thu thập dữ liệu, thông tin, tri thức (DIK) 19

4 Hướng giải quyết bài toán 20

4.1 Ý tưởng 20

4.2 Các ràng buộc 21

4.3 Áp dụng thuật giải di truyền giải quyết bài toán lập lịch 21

5 Thiết kế cơ sở dữ liệu thuật toán 31

5.1 Các đối tượng của lịch học 32

5.2 Biểu diễn nhiễm sắc thể 33

5.4 Biểu diễn cá thể 33

6 Các tham số và thuật giải 34

6.1 Phép lai ghép 35

6.2 Phép đột biến 37

6.3 Độ thích nghi 38

III KẾT LUẬN VÀ ĐÁNH GIÁ 41

Tài liệu tham khảo 42

Trang 4

LỜI CẢM ƠN

Em xin chân thành cảm ơn thầy PGS.TS Đỗ Văn Nhơn đã cung cấp cho emnhững kiến thức quan trọng, nền tảng, giúp em định hướng tìm tòi, học tập và nắmvững hơn những phương pháp giải quyết vấn đề, những thuật toán cơ bản và mởrộng để ứng dụng vào những bài toán cụ thể trên máy tính và trong thực tế

Trong bài này em xin trình bày nội dung về giải thuật di truyền qua những tìmhiểu từ các giáo trình, bài báo, tài liệu và ứng dụng của thuật giải di truyền vào bàitoán lập lịch cho trường đại học

Do thời gian có hạn nên bài viết chưa thực sự hoàn chỉnh, còn nhiều hạn chế vàhiểu biết chưa sâu rộng, mong thầy thông cảm

Tp Hồ Chí Minh, ngày 19 tháng 01 năm 2014

Học viên thực hiện

Nguyễn Thị Mai

Trang 5

I THUẬT GIẢI DI TRUYỀN

1 Tổng quan về thuật giải di truyền

1.1 Giới thiệu

Genetic Algorithms tạm dịch là Thuật giải di truyền (viết tắt là GA) bắt nguồn từ

ý niệm tiến hóa để tồn tại và phát triển trong tự nhiên GA là phương thức giải quyếtvấn đề mô phỏng theo quá trình chọn lọc tự nhiên Nó giúp tìm ra giải pháp tối ưutrong điều kiện thời gian và không gian cho phép từ các giải pháp ban đầu, thôngqua quá trình chọn lọc, lai ghép và đột biến

Trong thuật giải di truyền, người ta dùng thuật ngữ vay mượn của di truyền học.Trong đó, cá thể biểu diễn một lời giải, giải pháp của bài toán Ở đây, ta quy ướcmỗi cá thể chỉ có một nhiễm sắc thể (NST) NST có thể là một chuỗi tuyến tính.Trong NST có các đơn vị nhỏ hơn là gen Mỗi gen đại diện cho một thuộc tính, tínhchất, có vị trí nhất định trong NST Quần thể là một tập hữu hạn xác định các cá thểbiểu diễn lời giải Trải qua quá trình tiến hóa, qua mỗi thế hệ, quần thể này tái sinhcác lời giải tốt hơn, thích nghi hơn, đồng thời loại bỏ dần các lời giải kém hiệu quả.Như vậy, mục tiêu cuối cùng của GA là tạo ra nhiều giải pháp mới có hệ số thíchnghi ngày càng cao Do đó, ta có thể đánh giá các giải pháp thông qua hệ số thíchnghi này

1.2 Các bước cơ bản giải bài toán bằng thuật giải di truyền

Một bài toán được giải bằng thuật giải di truyền thường gồm các bước sau:

- Biểu diễn lời giải của bài toán (nhiễm sắc thể) bằng chuỗi nhị phân, chuỗi ký

tự, số thập phân, …

- Khởi tạo quần thể ban đầu gồm N cá thể một cách ngẫu nhiên

- Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá cá thể

- Xác định xác suất lai tạo, xác suất đột biến

- Xây dựng các phép lai tạo, chọn lọc, đột biến

2 Các thành phần cơ bản của GA

Trong GA, một tập các biến của bài toán đưa ra được mã hóa sang một chuỗi(hay một cấu trúc mã hóa khác) tương tự như một nhiễm sắc thể trong tự nhiên Mỗichuỗi bao gồm một giải pháp có thể của bài toán Giải thuật di truyền sử dụng cáctoán tử được sinh ra bởi sự chọc lọc tự nhiên một quần thể các chuỗi nhị phân (hoặc

Trang 6

các cấu trúc khác), mã hóa khoảng tham số trên mỗi thế hệ, khảo sát các phạm vikhác nhau của không gian tham số, và định hướng tìm kiếm đối với khoảng mà làxác suất cao để tìm kiếm sự thực hiện tốt hơn Thuật toán di truyền gồm có bốn quy

luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên Sau đây, ta sẽ đi vào

chi tiết từ khâu đầu tiên là biểu diễn các cá thể

2.1 Biểu diễn các cá thể

Biểu diễn cá thể là ánh xạ các tham số của bài toán lên một chuỗi có chiều dàixác định Khi thực hiện giải bài toán bằng thuật giải di truyền, việc đầu tiên ta cầnlàm là xác định cách biểu diễn các cá thể Tùy theo từng bài toán cụ thể mà cónhững cách biểu diễn khác nhau sao cho phù hợp, thuận lợi khi giải toán

2.1.1 Biểu diễn nhị phân

Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1 Ý nghĩa của các bitnày phụ thuộc vào từng tình huống cụ thể Đây là cách biểu diễn đơn giản nhất vàthông dụng nhất

Ví dụ 1: hai NST được biểu diễn dưới dạng nhị phân như sau:

Ví dụ 2: Cho bài toán: có n đồ vật với trọng lượng và giá trị khác nhau được chotrước trong một cái túi có trọng lượng đã biết Yêu cầu: hãy chọn ra các đồ vật đểcho vào túi sao cho tổng giá trị các đồ vật trong túi là lớn nhất

Trong trường hợp này, ta đánh số đồ vật từ 1 đến n, mỗi cá thể được biểu diễnbằng một xâu nhị phân độ dài n Trong đó, bit thứ i bằng 1 có nghĩa là đồ vật thứ iđược cho vào túi, bằng 0 là bỏ lại

2.1.2 Biểu diễn sử dụng hoán vị

Biểu diễn hoán vị thường được sử dụng trong bài toán sắp xếp Mỗi cá thể tươngứng với một hoán vị của tập n ký hiệu nào đó Mỗi NST là một chuỗi các số thểhiện vị trí trong một dãy Ví dụ: cách biểu diễn 2 NST dưới đây là biểu diễn hoánvị

Trang 7

Một ví dụ cụ thể hơn, cách biểu diễn này đã được áp dụng cho bài toán người dulịch:

Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ trình đi qua tất cảcác thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗi thành phố chỉ

đi qua một lần

Ký hiệu các thành phố là T1, T2, …, Tn mỗi cá thể sẽ là một danh sách hoán vịcủa T1, T2, …, Tn biểu diễn lộ trình mà người thương gia đã đi qua Ví dụT8T5T9T3… là ký hiệu của hành trình từ T8T5T9T3

Như vậy, mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìm kiếm vàqua đó thể hiện được cách trả lời có thể có của bài toán Sau đó, mỗi chuỗi NST sẽđược giải mã lại để trả về các thông số ban đầu của bài toán

2.1.3 Biểu diễn bằng giá trị

Phương pháp này thường được dùng trong các bài toán có chứa những giá trịphức tạp Trong mã hóa giá trị, mọi NST là một chuỗi chứa những giá trị nào đó.Những giá trị này có thể có dạng bất kỳ liên quan đến bài toán, từ số nguyên, sốthực, ký tự cho đến các đối tượng phức tạp hơn

Ví dụ: Ta biểu diễn 3 NST bằng giá trị như sau:

NST A được biểu diễn dưới dạng số thực

NST B được biểu diễn dưới dạng chuỗi ký tự

NST C được biểu diễn dưới dạng danh sách thuộc tính

2.1.4 Biểu diễn dưới dạng cây

Mã hóa theo cây được dùng chủ yếu cho các chương trình ( hoặc biểu thức) tiếnhóa, cho lập trình gen Trong mã hóa theo cây, mọi NST là một cây chứa các đốitượng như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó Dưới đây là 2 NSTđược biểu diễn bằng phương pháp này

Trang 8

NST A (Chromosome A) biểu diễn một nhánh công thức toán học

NST B (Chromosome B) biểu diễn lệnh trong ngôn ngữ lập trình

Ví dụ: Bài toán tìm hàm từ những giá trị cho trước Cho trước một số đầu vào vàđầu ra Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào

Mã hóa: NST là các hàm được biểu diễn bằng cây

Sau khi biểu diễn được các cá thể cho bài toán, ta có thể bắt tay ngay vào việcthực hiện giải thuật di truyền theo các bước đã có trong phần trước Bước đầu là cần

có một quần thể ban đầu Nó có thể có được bằng cách chọn ngẫu nhiên các cá thểhoặc có thể dùng chiền thuật lựa chọn thông qua hàm thích nghi:

Giá trị hàm thích nghi là Tối đa hay Tối thiểu tùy theo bài toán sẽ quyết định xácsuất của mỗi chuỗi có thể tham gia vào các toán tử di truyền

Trang 9

sắc thể con là m1 và m2 Hai chuỗi nhiễm sắc thể con lúc này sẽ là m11+m22

và m21+m12

 Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiếnhóa tiếp theo

2.4 Quá trình sinh sản (tái sinh)

Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích nghi của

nó Phép tái sinh có thể mô phỏng như sau:

 Tính độ thích nghi của từng cá thể trong quẩn thể hiện hành, lập bảng cộngdồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể) Giả sử quầnthể có n cá thể Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i làFti, tổng độ thích nghi của toàn quần thể là Fm

 Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fm

 Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệmới

Ví dụ: Mỗi cặp bố mẹ sinh hai con theo một trong hai phương pháp sau

 Vô tính

 Mỗi ấu nhi là một bản sao chính xác từ cha

 Mỗi ấu nhi là một bản sao chính xác từ mẹ

 Hữu tính (giao nhau)

 Một vài bits được sao từ mẹ, vài bits được sao chép từ cha

Cứ tiếp tục sao từ một cặp bố mẹ cho đến chừng nào điểm giao nhau,

Trang 10

Sinh sản hữu tính giao nhau ba điểm

 Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m

 Thay đổi giá trị của gen thứ k

 Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo

2.6 Quá trình chọn lọc

Là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt Phép chọn được mô tả như sau:

 Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần

 Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất

Trang 11

00001010101

11101010101

00001001000 11111000000

11101001000

00001010101

11001011000

00101000101 00111110000

11101001000

00001010101

10001000100

01101011001 00111110000

Lai ghép điểm đơn:

Mục đích của việc chọn này nhằm nhấn mạnh sự lọc cá thể trong quần thể

và hi vọng tạo ra quần thể con của nó có giá trị thích nghi cao hơn.

- Chọn lọc Bánh xe Roulette (Roulette Wheel Selection)

Công thức:

i

i N

j j

f p

f

Trong đó, f i là giá trị thích nghi của cá thể

Lúc này ta biểu diễn p i (phần trăm) trong một vòng tròn(bánh xe) và ta chọn cá thể cha mẹ một cách ngẫu nhiên(như quay chiếc nón kỳ diệu) Dĩ

Trang 12

nhiên với giá trị thích nghi càng lớn thì xác suất được chọn của cá thể càng cao.

Hình Bánh xe Roulette thể hiện 8 cá thể với hàm thích nghi tương ứng.

Cá thể thứ 5 có hàm thích nghi lớn hơn các cá thể khác nên bánh xe

Roulette sẽ lựa chọn cá thể 5 hơn các cá thể khác

- Chọn lọc ngẫu nhiên (Random Selection): Chọn cá thể cha mẹ một

cách ngẫu nhiên trong quần thể Việc này coi các cá thể là vai trò như nhau.

- Chọn lọc xếp hạng (Rank Selection)

Nếu như ta thực hiện cách chọn Roulette Wheel Selection thì có nhược điểm là: nếu sự khác biệt quá lớn: p i >> pj thì các trường hợp chọn đều rơi vào hết p i dẫn đến hội tụ quá sớm Vì thế để kiểm soát trường hợp này

ta có rất nhiều cách, đây là hai cách đơn giản nhất:

Cách 1: Chọn ngẫu nhiên các cặp cá thể trong quần thể Tạo giá trị R

(0, 1), nếu R < r thì chọn cá thể đầu, ngược lại chọn cá thể sau làm

cá thể cha mẹ Trong đó r là tham số đưa vào.

 Cách 2: Chọn 2 cá thể random, giá trị cá thể nào lớn hơn thì chọn làm

cá thể cha mẹ.

- Chọn lọc cạnh tranh (Tournament Selection): Chọn u cá thể trong

quần thể và chọn giá trị cao nhất đưa vào “hồ chứa” Lặp lại quá trình trên

Trang 13

cho đến khi “hồ chứa” các cá thể cha mẹ đầy Lúc này quần thể cha mẹ có giá trị thích nghi trung bình rất cao.

- Chọn lọc Boltzmann (Boltzmann Selection)

 Lấy ý tưởng từ thuật toán giả luyện thép để tìm minimize hay maximize Điều khiển nhiệt độ làm lạnh thép chậm dần đi nếu muốn tìm minimize và ngược lại

 Ví dụ fmax là giá trị thích nghi cao nhất hiện tại Nếu cá thể tiếp theo có độ thích nghi f if i > fmax thì cá thể này được chọn vì cá thể này được chọn với xác suất Boltzmann:

 , g là số lượng generate hiện tại, G

là số lượng tối đa của g Giá trị α được chọn nằm trong đoạn [0, 1] Dừng lại khi T = 0.

- Lấy mẫu ngẫu nhiên (Stochastic Universal Sampling)

Nếu muốn chọn ra N mẫu thì khoảng các giữa các mẫu được chọn là 1/N.

Ta cần tạo ngẫu nhiên một số α = [0,1/N] Số này là vị trí được chọn trong quần thể tức là từ vị trí α N, lấy N phần tử trong quần thể.

3.2 Toán tử đột biến

đổi thành 0 Toán tử này chỉ được sử dụng với các gen nhị phân

Cho hai chuỗi được chọn để đột biến:

Trang 14

Đảo giá trị của gen đã chọn từ 0 sang 1 và từ 1 thành 0 Kết quả của chuỗi đãđược đột biết là:

hạn tăng hoặc giảm Toán tử này có thể sử dụng cho gen ở kiểu integer hoặcfloat

gen đã chọn Giá trị gen mới bị loại bỏ khỏi giới hạn trên và dưới của gen đó.Toán tử này chỉ dùng cho gen kiểu integer và float

3.3 Toán tử lai ghép

- Lai ghép một điểm (one-point crossover): lựa chọn ngẫu nhiên một điểm lai

ghép Sau đó, sao chép toàn bộ phần trước điểm lai ghép của NST cha Phần sauđiểm lai ghép được sao chép từ NST còn lại

Ví dụ: Cho hai NST cha để lai ghép

Sau khi tiến hành lai ghép một điểm ta có NST con như sau:

- Lai ghép hai điểm (two-point crossover): lựa chọn ngẫu nhiên 2 điểm lai ghép

trong một NST Sau đó, hoán vị hai NST cha giữa những điểm lai này để tạo ra

2 NST mới

Cho 2 NST cha để lai ghép:

Trang 15

Hoán vị hai NST giữa các điểm lai ghép, ta được kết quả sau:

- Lai ghép đồng nhất (Uniform crossover): Phép lai ghép đồng nhất quyết định

(xác suất – tỉ lệ trộn) NST cha nào sẽ phân phối giá trị gen trong NST con Phéplai này cho phép NST cha được trộn ở mức độ gen hơn là mức độ phân đoạn(như phép lai 1 hoặc 2 điểm)

Cho 2 chuỗi NST cha:

Nếu tỉ lệ trộn là xấp xỉ 0.5 và phân nửa gen của NST con lấy từ NST Parent 1, phân nửa còn lại lấy từ NST Parent 2

Kết quả sau khi thực hiện phép lai đồng nhất:

- Lai ghép số học: phép lai này cộng tuyến tính hai vector NST cha để tạo ra 2

NST con theo công thức:

Trong đó, a: hệ số trọng lượng ngẫu nhiên được chọn trước phép lai

Cho 2 chuỗi NST cha Mỗi chuỗi có 4 gen kiểu float

Áp dụng công thức trên và giả sử hệ số trọng lượng là 0.7, ta có hai chuỗi kết quả như sau:

Trang 16

- Lai ghép Heuristic: Phép lai này sử dụng giá trị thích nghi của 2 NST cha để

quyết định hướng nghiên cứu NST con được tạo ra từ công thức sau:

r: số ngẫu nhiên giữa 0 và 1

Có thể chuỗi kết quả offspring1 không tin cậy Có thể xảy ra nếu r được chọnnhư khi một hoặc nhiều gen rơi ra khỏi phạm vi trên dưới cho phép Vì thế, phéplai heuristic có một tham số n được định nghĩa bởi người dùng, là số lần thử đểtìm r và cho ra NST con đáng tin cậy Nếu sau n lần thử mà không tạo ra NSTcon đáng tin cậy nào, NST cha xấu nhất được trả về như offstring1

4 Các tham số

Xác suất lai ghép: là tham số cho biết tần suất thực hiện toán tử lai ghép Nếu

không có lai ghép, cá thể con sẽ chính là bản sao của cá thể “cha mẹ” Nếu xác suấtlai ghép bằng 100%, khi đó mọi cá thể con đều được tạo ra qua quá trình lai ghép

Xác suất đột biến: là tham số cho biết tần suất đột biến của nhiễm sắc thể Nếu

không có đột biến, thế hệ con được tạo ra ngay sau giai đoạn lai ghép mà không bịthay đổi Ngược lại, một hoặc một số phần của nhiễm sắc thể sẽ bị thay đổi Nếuxác suất đột biến là 100%, toàn bộ nhiễm sắc thể sẽ bị thay đổi Nếu tham số nàybằng 0%, không có gì bị thay đổi hết

Kích thước quần thể: là tham số cho biết có bao nhiêu cá thể (NST) trong 1 thế

hệ của quần thể Nếu có quá ít cá thể, khả năng thực hiện lai ghép rất nhỏ và khi đóchỉ có một vùng tìm kiếm nhỏ mới được khảo sát Ngược lại, việc kích thước quầnthể quá lớn cũng không tốt, do nó sẽ làm chậm quá trình giải bài toán

5 Công thức

Tính độ thích nghi eval( v i) của mỗi nhiễm sắc thể vi(i=1… n)

Trang 17

Phát sinh một số ngẫu nhiên r trong khoảng [0, 1]

Nếu r < q1thì chọn nhiễm sắc thể v1, ngược lại chọn nhiễm sắc thể vi (2 ≤ i ≤kích thước quần thể) sao cho qi-1 < r ≤ qi

6 Cấu trúc giải thuật di truyền

Procedure Giải_thuật_di_truyền;

Trang 18

Lai tạo các cá thể đã chọn tạo ra P(t) mới;

Đột biến các cá thể trong P(t) theo xác suất p m ; Đánh giá độ phù hợp các cá thể trong tập P(t);

Until (thoả điều kiện dừng);

End;

7 Các giai đoạn của thuật giải di truyền

Giai đoạn 1: Khởi tạo quần thể ban đầu

Tạo quần thể đầu tiên trong thuật giải, là nơi xuất phát quá trình tiến hóa, baogồm tất cả các giá trị thô ban đầu Tùy theo vấn đề của bài toán mà có cách khởiđộng khác nhau Trước một bài toán áp dụng thuật giải di truyền, ta cần phải xácđịnh rõ nhiễm sắc thể và cá thể cho vấn đề, và thông thường đó sẽ kết quả cuốicùng Việc phân tích sẽ dựa trên kết quả là cơ bản nhất

Giai đoạn 2: Đánh giá cá thể

Chắc chắn rằng việc chọn cá thể sẽ thông qua kết quả, hay mục đích của vấn

đề Dựa trên mức độ thích nghi của cá thể, bao gồm những vướng mắc mà cá thể

Trang 19

gặp phải Thông thường, đặt mỗi vấn đề nhỏ tương ứng với một giá trị điểm thíchnghi, kết quả đánh giá gồm tổng các số điểm đó Cá thể tốt nhất sẽ có số điểm thấpnhất hoặc lớn nhất Theo thuyết tiến hóa của Darwin, nhiễm sắc thể tốt nhất sẽ tồntại và tạo ra các cá thể con mới

Giai đoạn 3: Lai ghép

Lai ghép nhằm nâng cao kết quả cá thể, do đó, toán tử lai ghép sẽ tạo điềukiện cho tiến trình hội tụ nhanh hay chậm Còn tùy thuộc vào cách tổ chức và phân

bố các nhiễm sắc thể mà chúng ta có xác suất lai ghép nhanh hay chậm

Giai đoạn 4: Đột biến

Cũng giống như lai ghép, toán tử đột biến làm tăng nhanh quá trình hội tụ,nhưng tăng một cách đột ngột, cũng có khi sẽ không gây tác dụng gì một khi khôngthành công Không ai có thể đánh giá được phương pháp đột biến nào tốt hơn, do đó

có một vài phương pháp đơn giản, cũng có vài trường hợp khá phức tạp

Giai đoạn 5: Xét Điều kiện kết thúc

Thoát ra quá trình tiến hóa quần thể, dựa vào bài toán mà có các cách kếtthúc vấn đề khác nhau, một khi đã đạt đến mức yêu cầu Một vài trường hợp thôngthường như sau:

-Kết thúc theo kết quả: một khi đạt đến mức giá trị yêu cầu thì chấm dứtngay quá trình thực hiện

-Kết thúc dựa vào số thế hệ: chọn số thế hệ, quá trình sẽ dừng đúng ngay sốthế hệ đã qui định trước, không cần biết kết quả như thế nào

-Tính theo thời gian: không cần biết đã bao nhiêu thế hệ hay kết quả nào, chỉdựa vào số giờ qui định mà kết thúc

Trang 20

-Tổ hợp: dùng nhiều phương án khác nhau cho vấn đề, chẳng hạn như : chạytheo số thế hệ xong sau đó đánh giá cho chạy theo kết quả, hoặc ngược lại.

II BÀI TOÁN LẬP LỊCH

1 Giới thiệu bài toán

Lập lịch có thể được định nghĩa là một bài toán tìm kiếm chuỗi tối ưu đểthực hiện một tập các hoạt động chịu tác động của một tập các ràng buộc cần phảiđược thỏa mãn Người lập lịch thường cố gắng thử đến mức tối đa sự sử dụng các

cá thể, máy móc và tối thiểu thời gian đòi hỏi để hoàn thành toàn bộ quá trình nhằmsắp xếp lịch.Vì thế bài toán lập lịch là một vấn đề rất khó để giải quyết Hiện nay

có nhiều khả năng để phát triển các kỹ thuật hiện tại để giải quyết bài toán này.Những kỹ thuật đó bao gồm: các tiếp cận Trí tuệ nhân tạo như hệ thống tri thức cơ

sở (knowledge-based systems), bài toán thoả mãn ràng buộc, hệ chuyên gia, mạngNơron và các tiếp cận của các Nghiên cứu hoạt động: lập trình tính toán, lập trìnhđộng, tìm kiếm nhánh và đường biên, kỹ thuật mô phỏng, tìm kiếm Tabu và phươngpháp nút cổ chai

2 Khảo sát yêu cầu bài toán

Bài toán đặt ra vấn đề cần sắp xếp thời khoá biếu cho một trường đại học.Cần có sự sắp xếp lịch học cho các lớp tại các phòng ở mỗi địa điểm, sao cho vừaphù hợp lại vừa tiện dụng nhất

Cho số lượng lớp là K Mỗi lớp có một số môn học Ta có D giáo viên, mỗigiáo viên có thể dạy được một số môn nhất định Số môn thực tế được đưa bởi V Yêu cầu lập lịch cho năm ngày trong tuần, và 6 giờ mỗi ngày

3 Khảo sát, thu thập dữ liệu, thông tin, tri thức (DIK)

Danh sách cơ sở dữ liệu cần có:

 Danh sách cơ sở trường

Trang 21

 Danh sách môn học và số tiết

 Bảng phân công giáo viên giảng dạy tại các lớp

 Bảng yêu cầu ràng buộc của giáo viên vớI lịch dạy

 Bảng yêu cầu ràng buộc của lớp với lịch học

 Bảng yêu cầu ràng buộc của phòng với lịch sử dụng phòng đó

4 Hướng giải quyết bài toán

4.1 Ý tưởng

Dựa vào thuật toán di truyền cổ điển

Cấu trúc dữ liệu: Một lịch là một ma trận với n cột và K dòng (số lớp) Mỗi phần

tử của ma trận chỉ ra rằng giáo viên dạy lớp này đang dạy môn nào đó

Minh họa cấu trúc dữ liệu

Ngày đăng: 23/05/2015, 00:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] RC Chakraborty, Fundamentals of Genetic Algorithms, 2010 [2] ThS. Trần Nguyên Hương, Slide bài giảng Giải thuật di truyền Sách, tạp chí
Tiêu đề: Fundamentals of Genetic Algorithms
Tác giả: RC Chakraborty
Năm: 2010
[3] Nguyễn Thu Huyền, Báo cáo tóm tắt Seminar Tác động của sự thay đổi kích cỡ quần thể đến sự hội tụ của thuật toán trong giải thuật di truyền, 2012 Sách, tạp chí
Tiêu đề: Tác động của sự thayđổi kích cỡ quần thể đến sự hội tụ của thuật toán trong giải thuật ditruyền
[4] Hoàng Chính Nghĩa, Tìm hiểu bài toán Di truyền, ứng dụng bài toán lập lịch, Đại học dân lập Hải Phòng, 2009 Sách, tạp chí
Tiêu đề: Tìm hiểu bài toán Di truyền, ứng dụng bài toánlập lịch
[5] Phan Việt Anh và Hoàng thu lâm, Giải thuật di truyền và ứng dụng trong hỗ trợ lập lịch điều hành công tác bệnh viện , Chuyên san Công nghệ thông tin và Truyền thông - Số 02 (4-2013) Sách, tạp chí
Tiêu đề: Giải thuật di truyền và ứng dụngtrong hỗ trợ lập lịch điều hành công tác bệnh viện
[6] Lê Tiến Mẫu, Tóm tắt chuyên đề Thuật giải di truyền và ứng dụng lập thời khóa biểu theo học chế tín chỉ cho trường đại học, Đại học Đà Nẵng, 2012 Sách, tạp chí
Tiêu đề: Tóm tắt chuyên đề Thuật giải di truyền và ứng dụnglập thời khóa biểu theo học chế tín chỉ cho trường đại học

HÌNH ẢNH LIÊN QUAN

Hình 1. Các toán tử chung cho thuật giải di truyền 3.1 Toán tử chọn lọc - Tiểu luận Thuật toán và phương pháp giải quyết vấn đề THUẬT GIẢI DI TRUYỀN VÀ ỨNG DỤNG  TRONG BÀI TOÁN LẬP LỊCH
Hình 1. Các toán tử chung cho thuật giải di truyền 3.1 Toán tử chọn lọc (Trang 11)

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