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

Giải thuật di truyền giải bài toán băng thông đồ thị (Có code)

75 136 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 75
Dung lượng 2,69 MB
File đính kèm Code.rar (115 KB)

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

Nội dung

Công nghệ thông tin đóng vai trò quan trọng trong sự phát triển của xã hội trong thời đại ngày nay. Công nghệ thông tin đã trở thành nhân tố quan trọng, là cầu nối trao đổi giữa các thành phần của xã hội toàn cầu, của mọi vấn đề. Việc nhanh chóng đưa ứng dụng công nghệ thông tin vào quá trình tự động hóa trong sản xuất kinh doanh là vấn đề đang, đã và sẽ luôn được quan tâm bởi lẽ công nghệ thông tin có vai trò rất lớn trong các hoạt động kinh tế, sản xuất kinh doanh, bán hàng, xúc tiến thương mại, quản trị doanh nghiệp. Lý thuyết đồ thị là một trong những lý thuyết quan trọng được sử dụng nhằm ứng dụng công nghệ thông tin trong giải quyết các vấn đề thực tế. Từ các bài toán phát sinh trong công nghiệp, kĩ thuật, chúng ta sử dụng các cách thức mô hình hóa nhằm đưa về một bài toán tương đương và sử dụng các giải thuật đã có để giải quyết. Bài toán băng thông đồ thị (graph bandwidth) được định nghĩa từ vấn đề thiết kế tự động các mạch điện tử và là một bài toán NPđầy đủ, tức là không có một giải thuật hiệu quả với thời gian đa thức để giải quyết. Giải thuật di truyền là một trong những giải thuật xấp xỉ nổi bật để giải quyết những bài toán NPđầy đủ. Vì tính tương thích này mà em đã lựa chọn đề tài “Giải thuật di truyền giải bài toán băng thông đồ thị” làm đề tài khóa luận tốt nghiệp.

Trang 1

Lời cảm ơn

Đầu tiên em xin gửi lời cảm ơn chân thành đến các thầy giáo, cô giáo

khoa Toán - Công nghệ Trường Đại học Hùng Vương, những người đã dạy

dỗ, trang bị cho em những kiến thức chuyên môn trong suốt bốn năm học

cũng như trong suốt thời gian thực hiện khóa luận tốt nghiệp

Để hoàn thành khóa luận tốt nghiệp, đặc biệt em xin bày tỏ lòng biết

ơn sâu sắc tới thầy giáo ThS Nguyễn Hùng Cường – giảng viên Trường

Đại học Hùng Vương Thầy đã dành nhiều thời gian quý báu chỉ bảo, nhiệt

tình giúp đỡ em trong suốt quá trình thực hiện khóa luận tốt nghiệp, đồng

thời thầy còn là người giúp em lĩnh hội được thêm nhiều kiến thức

Em xin gửi lời cảm ơn chân thành và sâu sắc tới gia đình, bạn bè là

những người luôn sát cánh bên em, chia sẻ, động viên em trong suốt quá

trình học tập cũng như trong thời gian em thực hiện khóa luận tốt nghiệp

Tuy nhiên với thời gian và kinh nghiệm làm việc của bản thân em chưa

nhiều nên khóa luận khó tránh khỏi những hạn chế Em hi vọng nhận được

sự ủng hộ và tạo điều kiện giúp đỡ của thầy cô và bạn bè để có thể khắc

phục những tồn tại và mở rộng nghiên cứu thêm về đề tài này

Em xin chân thành cảm ơn!

Phú Thọ, tháng 4 năm 2014

Sinh viên

Nguyễn Thị Thương Hiền

Trang 2

Mục lục

1.1 Khái niệm về đồ thị 11

1.2 Biểu diễn đồ thị trên máy tính 14

1.2.1 Ma trận kề 14

1.2.2 Danh sách cạnh 15

1.2.3 Danh sách kề 17

1.3 Sự phân lớp các bài toán 19

1.3.1 Lớp bài toán P 20

1.3.2 Lớp bài toán N P 20

1.3.3 Bài toán N P –khó 21

1.3.4 Bài toán N P -đầy đủ 22

Chương 2 Giải thuật di truyền và tiến hóa 24 2.1 Mã hóa các chuỗi nhiễm sắc thể 26

2.1.1 Mã hóa theo giá trị 27

Trang 3

2.1.2 Mã hóa hoán vị 27

2.1.3 Mã hóa theo cấu trúc cây 28

2.2 Hàm thích nghi 28

2.3 Đấu tranh sinh tồn 28

2.4 Thao tác lai ghép 30

2.4.1 Lai ghép theo điểm cắt 30

2.4.2 Lai ghép đồng bộ 32

2.4.3 Cơ chế lựa chọn cá thể cha-mẹ 33

2.5 Thao tác đột biến 35

2.5.1 Đột biến đảo bit 36

2.5.2 Đột biến đổi giá trị 36

2.5.3 Đột biến đảo đoạn 37

2.6 Khởi tạo quần thể 37

2.7 Cách thức nạp lại quần thể 38

2.7.1 Nạp lại sau khi lai ghép 38

2.7.2 Nạp lại khi kích thước quần thể quá lớn 39

Chương 3 Giải bài toán băng thông đồ thị bằng giải thuật di truyền 41 3.1 Bài toán băng thông đồ thị 41

3.1.1 Bài toán 41

3.1.2 Phân tích bài toán 41

3.1.3 Biểu diễn đồ thị bài toán 42

3.2 Xây dựng các thao tác của giải thuật di truyền trên bài toán băng thông đồ thị 42

3.2.1 Biểu diễn nhiễm sắc thể 42

Trang 4

3.2.2 Hàm thích nghi 43

3.2.3 Đấu tranh sinh tồn 43

3.2.4 Thao tác lai ghép 44

3.2.5 Thao tác đột biến 45

3.2.6 Khởi tạo quần thể 46

3.2.7 Kết quả chương trình thử nghiệm 46

Chương 4 Các kết quả cài đặt thử nghiệm 53 4.1 Giao diện chính của chương trình 53

4.2 Dữ liệu thử nghiệm 54

4.3 Môi trường thử nghiệm 55

4.4 Tiến hành cài đặt thử nghiệm 55

4.4.1 Thử nghiệm với các bộ dữ liệu 55

4.4.2 Thử nghiệm thay đổi các tham số của giải thuật di truyền 56

Trang 5

Danh sách hình vẽ

1.1 Đồ thị vô hướng 12

1.2 Đồ thị có hướng 13

1.3 Biểu diễn đồ thị bằng ma trận kề 15

1.4 Đồ thị biểu diễn danh sách cạnh 16

1.5 Biểu diễn danh sách cạnh trên mảng 16

1.6 Biểu diễn trên danh sách móc nối 16

1.7 Đồ thị biểu diễn danh sách kề 17

1.8 Biểu diễn danh sách kề của đồ thị 18

1.9 Biểu diễn danh sách móc nối của đồ thị 19

2.1 Sơ đồ giải thuật di truyền 26

2.2 Phương pháp lai ghép theo điểm cắt 31

2.3 Phương pháp lai ghép đồng bộ 32

2.4 Phương pháp đột biến đảo bít 36

2.5 Phương pháp đột biến đảo giá trị 36

2.6 Phương pháp đột biến đảo đoạn 37

4.1 Giao diện chính của chương trình 53

4.2 Kết quả bộ dữ liệu test5 khi dùng giải thuật di truyền 57

4.3 Sơ đồ thể hiện giá trị băng thông khi thay đổi xác suất lai 58

4.4 Sơ đồ thể hiện thời gian chạy khi thay đổi xác suất lai 58

Trang 6

4.5 Sơ đồ giá trị băng thông khi thay đổi xác suất đột biến 59

4.6 Sơ đồ thời gian chạy khi thay đổi xác suất đột biến 60

4.7 Sơ đồ giá trị băng thông khi thay đổi số lượng quần thể 61

4.8 Sơ đồ thời gian chạy khi thay đổi số lượng quần thể 62

4.9 Sơ đồ giá trị băng thông khi thay đổi số thế hệ 63

4.10Sơ đồ thời gian chạy khi thay đổi số thế hệ 64

Trang 7

Danh sách bảng

4.1 So sánh giải thuật đệ quy và giải thuật di truyền 56

4.2 Kết quả test5 khi thay đổi xác suất lai 57

4.3 Kết quả thu được khi thay đổi xác suất đột biến 59

4.4 Kết quả thu được khi thay đổi độ lớn quần thể 61

4.5 Kết quả thu được khi thay đổi số thế hệ 63

Trang 8

Mở đầu

1 Lý do chọn đề tài khóa luận

Công nghệ thông tin đóng vai trò quan trọng trong sự phát triển của

xã hội trong thời đại ngày nay Công nghệ thông tin đã trở thành nhân tố

quan trọng, là cầu nối trao đổi giữa các thành phần của xã hội toàn cầu,

của mọi vấn đề Việc nhanh chóng đưa ứng dụng công nghệ thông tin vào

quá trình tự động hóa trong sản xuất kinh doanh là vấn đề đang, đã và sẽ

luôn được quan tâm bởi lẽ công nghệ thông tin có vai trò rất lớn trong các

hoạt động kinh tế, sản xuất kinh doanh, bán hàng, xúc tiến thương mại,

quản trị doanh nghiệp

Lý thuyết đồ thị là một trong những lý thuyết quan trọng được sử dụng

nhằm ứng dụng công nghệ thông tin trong giải quyết các vấn đề thực tế

Từ các bài toán phát sinh trong công nghiệp, kĩ thuật, chúng ta sử dụng

các cách thức mô hình hóa nhằm đưa về một bài toán tương đương và sử

dụng các giải thuật đã có để giải quyết Bài toán băng thông đồ thị (graph

bandwidth) được định nghĩa từ vấn đề thiết kế tự động các mạch điện tử

và là một bài toán NP-đầy đủ, tức là không có một giải thuật hiệu quả với

thời gian đa thức để giải quyết

Giải thuật di truyền là một trong những giải thuật xấp xỉ nổi bật để

giải quyết những bài toán NP-đầy đủ Vì tính tương thích này mà em đã

lựa chọn đề tài “Giải thuật di truyền giải bài toán băng thông đồ thị” làm

đề tài khóa luận tốt nghiệp

2 Mục tiêu khóa luận

- Cài đặt giải thuật di truyền giải bài toán băng thông đồ thị Đưa ra

Trang 9

kết quả gần tối ưu của bài toán băng thông đồ thị với thời gian chạy

đa thức

- Nghiên cứu ảnh hưởng của các kĩ thuật tác động lên giải thuật di

truyền nhằm cải thiện hiệu quả chạy

3 Nhiệm vụ nghiên cứu

- Tìm hiểu bài toán băng thông đồ thị

- Tìm hiểu giải thuật di truyền

- Cài đặt trực tiếp giải thuật di truyền trong giải quyết bài toán băng

thông đồ thị

4 Phương pháp nghiên cứu

- Phương pháp nghiên cứu tự luận: Đọc và nghiên cứu tài liệu, giáo trình

có liên quan đến bài toán băng thông đồ thị và giải thuật di truyền

- Phương pháp nghiên cứu thực nghiệm: Từ những ý tưởng ban đầu,

triển khai thực hiện ý tưởng đó một cách có hệ thống

- Phương pháp tổng kết kinh nghiệm: Qua việc nghiên tham khảo tài

liệu, giáo trình từ đó rút ra kinh nghiệm để áp dụng vào việc nghiên

cứu

- Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến của giảng viên trực

tiếp hướng dẫn, các giảng viên khác để hoàn thiện về mặt nội dung và

hình thức của khóa luận

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

- Đối tượng: bài toán băng thông đồ thị, giải thuật di truyền, ngôn ngữ

Trang 10

- Phạm vi: bài toán băng thông đồ thị, giải thuật di truyền.

6 Ý nghĩa khoa học

Đưa ra giải thuật để giải quyết bài toán băng thông đồ thị với thời gian

chạy đa thức được kết quả xấp xỉ đúng hoặc đúng

7 Bố cục của khóa luận

Khóa luận được chia thành bốn chương:

Chương 1: Nhắc lại khái niệm về đồ thị, cách biểu diễn đồ thị trên máy

tính và sự phân lớp các bài toán

Chương 2: Giới thiệu giải thuật di truyền và tiến hóa

Chương 3: Đưa ra phương pháp giải bài toán băng thông đồ thị bằng

giải thuật di truyền

Chương 4: Các kết quả cài đặt thử nghiệm

Trang 11

Chương 1

Tổng quan về lý thuyết đồ thị

Trên thực tế nhiều bài toán liên quan tới một tập các đối tượng và những

mối liên hệ giữa chúng, đòi hỏi phải đặt ra một mô hình biểu diễn một

cách chặt chẽ và tổng quát bằng ngôn ngữ kí hiệu, đó là đồ thị Những ý

tưởng cơ bản đó được đưa ra từ thế kỉ thứ XVIII bởi nhà toán học Thụy

Sĩ Leonhard Euler, ông đã dùng mô hình đồ thị để giải quyết bài toán về

những cây cầu Konigsberg nổi tiếng Cùng với sự ra đời của máy tính điện

tử và sự phát triển nhanh chóng của Tin học, lý thuyết đồ thị ngày càng

được quan tâm đến nhiều hơn Đặc biệt là các thuật toán trên đồ thị đã

có nhiều ứng dụng trong nhiều lĩnh vực khác nhau như: Mạng máy tính,

Lý thuyết mã, Tối ưu hóa, Kinh tế học

Trong chương này em trình bày một số khái niệm cơ bản về đồ thị, biểu

diễn đồ thị trên máy tính [1] và sự phân lớp các bài toán [3] Đây là những

khái niệm và kết quả cơ bản em không đi sâu vào nó cũng như chứng minh

các kết quả này

1.1 Khái niệm về đồ thị

1.1.1 Định nghĩa Đồ thị là một cấu trúc rời rạc gồm các đỉnh và các

cạnh nối các đỉnh đó Được mô tả hình thức: G=(V, E) V gọi là tập các

đỉnh và E gọi là tập các cạnh Có thể coi E là tập các cặp (u, v) với u và

v là hai đỉnh của V

Trang 12

+ G được gọi là đồ thị vô hướng nếu các cạnh trong E không định

hướng, tức là nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh u, v Hay

nói cách khác tập E gồm các cặp (u, v) không tính thứ tự: (u, v) ≡ (v, u)

+ G được gọi là đồ thị có hướng nếu các cạnh trong E có định hướng,

có thể có cạnh nối từ định u tới đỉnh v nhưng chưa chắc đã có cạnh nối từ

đỉnh v tới đỉnh u Hay nói cách khác tập E gồm các cặp (u, v) có thứ tự:

(u, v) 6= (v, u) Trong đồ thị có hướng các cạnh được gọi là các cung Đồ

thị vô hướng cũng có thể coi là đồ thị có hướng nếu như ta coi cạnh nối hai

đỉnh u, v bất kỳ tương đương với hai cung (u, v) và (v, u)

Ví dụ: Đồ thị vô hướng G = (V, E)

Hình 1.1: Đồ thị vô hướng

Trang 13

Để tiện cho việc cài đặt thì việc biểu diễn đồ thị trong bộ nhớ máy tính

là rất quan trọng Yêu cầu biểu diễn đồ thị sao cho đơn giản, trực quan,

dễ dàng kiểm tra, có thể biểu diễn đồ thị với số đỉnh lớn mà không gây

lãng phí bộ nhớ và không mất nhiều thời gian Trong phần này em khảo

sát những thuật toán cơ bản nhất có thể dễ dàng cài đặt trên máy tính

Trang 14

Từ đó lựa chọn thuật toán thích hợp để biểu diễn trong giải bài toán băng

thông đồ thị

1.2 Biểu diễn đồ thị trên máy tính

1.2.1 Ma trận kề

Giả sử đồ thị G = (V, E) có số đỉnh n, không mất tính tổng quát ta

có thể coi các đỉnh được đánh số 1, 2, 3, , n Khi đó ta có thể biểu diễn

đồ thị bằng một ma trận vuông A = [a[u, v]] cấp n Trong đó:

a[u, v] = 1 hay a[u, v] = T RU E nếu (u, v) ∈ E

a[u, v] = 0 hay a[u, v] = F ALSE nếu (u, v) /∈ E

Với mọi u giá trị của a[u, u] có thể đặt tùy theo mục đích, thông thường

nên đặt bằng 0

Ví dụ biểu diễn đồ thị bằng ma trận kề:

Ưu điểm của ma trận kề:

+ Đơn giản, trực quan, dễ cài đặt trên máy tính

+ Để kiểm tra xem hai đỉnh (u, v) của đồ thị có kề nhau hay không, ta

chỉ việc kiểm tra bằng một số phép so sánh a[u, v] 6= 0

Nhược điểm của ma trận kề:

+ Bất kể số cạnh của đồ thị là nhiều hay ít, ma trận kề luôn luôn đòi hỏi

n2 ô nhớ để lưu các phần tử ma trận, điều đó gây lãng phí bộ nhớ dẫn

đến việc không thể biểu diễn được đồ thị với số đỉnh lớn

+ Với một đỉnh u bất kỳ của đồ thị, nhiều khi ta phải xét tất cả các đỉnh

v khác kề với nó, hoặc xét tất cả các cạnh liên thuộc với nó Trên ma

Trang 15

Hình 1.3: Biểu diễn đồ thị bằng ma trận kề

trận kề việc đó được thực hiện bằng cách xét tất cả các đỉnh v và kiểm

tra điều kiện a[u, v] 6= 0 Như vậy, ngay cả khi đỉnh u là đỉnh cô lập

(không kề với đỉnh nào) hoặc đỉnh treo (chỉ kề với một đỉnh) ta cũng

buộc phải xét tất cả các đỉnh và kiểm tra điều kiện trên dẫn tới lãng

phí thời gian

1.2.2 Danh sách cạnh

Giả sử đồ thị G = (V, E) có số đỉnh n, ta có thể biểu diễn đồ thị dưới

dạng danh sách cạnh bằng cách liệt kê tất cả các cạnh của đồ thị trong

một danh sách, mỗi phần tử của danh sách là một cặp (u, v) tương ứng với

một cạnh của đồ thị (Trong trường hợp đồ thị có hướng thì mỗi cặp (u, v)

Trang 16

tương ứng với một cung, u là đỉnh đầu và v là đỉnh cuối của cung) Danh

sách được lưu trong bộ nhớ dưới dạng mảng hoặc danh sách móc nối

Ví dụ đồ thị biểu diễn danh sách cạnh:

Hình 1.4: Đồ thị biểu diễn danh sách cạnh

Cài đặt trên mảng:

Hình 1.5: Biểu diễn danh sách cạnh trên mảng

Cài đặt trên danh sách móc nối:

Hình 1.6: Biểu diễn trên danh sách móc nối

Ưu điểm của danh sách cạnh:

+ Trong trường hợp đồ thị thưa (có số cạnh tương đối nhỏ), cách biểu

Trang 17

diễn bằng danh sách cạnh sẽ tiết kiệm được không gian lưu trữ.

+ Trong một số trường hợp, ta phải xét tất cả các cạnh của đồ thị thì

cài đặt trên danh sách cạnh làm cho việc duyệt các cạnh dễ dàng hơn

Nhược điểm cơ bản của danh sách cạnh:

Khi ta cần duyệt tất cả các đỉnh kề với đỉnh v nào đó của đồ thị, thì

chẳng có cách nào khác là phải duyệt tất cả các cạnh, lọc ra những cạnh

có chứa đỉnh v và xét đỉnh còn lại Điều đó khá tốn thời gian trong trường

hợp đồ thị nhiều cạnh

1.2.3 Danh sách kề

Để khắc phục nhược điểm của các phương pháp ma trận kề và danh

sách cạnh ta có thể sử dụng phương pháp biểu diễn đồ thị bằng danh sách

kề Trong cách biểu diễn này, với mỗi đỉnh v của đồ thị, ta cho tương ứng

với nó một danh sách các đỉnh kề với v

Ví dụ: Với đồ thị G = (V, E) V gồm n đỉnh và E gồm m cạnh Có hai

cách cài đặt danh sách kề phổ biến:

Hình 1.7: Đồ thị biểu diễn danh sách kề

Cách 1: Dùng một mảng các đỉnh, mảng đó chia làm n đoạn, đoạn

thứ i trong mảng lưu danh sách các đỉnh kề với đỉnh i: Với đồ thị như trên,

Trang 18

Hình 1.8: Biểu diễn danh sách kề của đồ thị

Để biết một đoạn nằm từ chỉ số nào đến chỉ số nào, ta có một

mảng Head lưu vị trí riêng Head[i] sẽ bằng chỉ số liền trước đoạn thứ

i Quy ước Head[n + 1] bằng m Với đồ thị trên thì mảng Head[1 6] sẽ

là: (0, 3, 5, 8, 10, 12) Các phần tử Adj[Head[i] + 1 Head[i + 1]] sẽ chứa các

đỉnh kề với đỉnh i Lưu ý rằng với đồ thị có hướng gồm m cung thì cấu

trúc này cần phải đủ chứa m phần tử, với đồ thị vô hướng m cạnh thì cấu

trúc này cần phải đủ chứa 2m phần tử

Cách 2: Dùng các danh sách móc nối: Với mỗi đỉnh i của đồ thị, ta

cho tương ứng với nó một danh sách móc nối các đỉnh kề với i Có nghĩa

là tương ứng với một đỉnh i, ta phải lưu lại List[i] là chốt của danh sách

móc nối Ví dụ đồ thị trên thì các danh sách móc nối:

Trang 19

Hình 1.9: Biểu diễn danh sách móc nối của đồ thị

1.3 Sự phân lớp các bài toán

Với một bài toán cho trước có 2 khả năng xảy ra: Không giải được

hoặc giải được bằng thuật toán Trường hợp bài toán giải được bằng thuật

toán cũng chia làm 2 loại:

Trang 20

+ Thực tế giải được: Được hiểu là thuật toán xử lý trong thời gian đủ

nhanh, thực tế cho phép, đó là thuật toán có độ phức tạp thời gian là

đa thức

+ Thực tế khó giải: Được hiểu là thuật toán xử lý trong nhiều thời gian,

thực tế khó chấp nhận, đó là thuật toán có độ phức tạp thời gian là

hàm mũ

Do đó, ta có sự phân lớp các bài toán do 2 tác giả Cook và Karp đề

xuất năm 1970-1971 như sau:

1.3.1 Lớp bài toán P

Lớp bài toán P là lớp các bài toán có thể giải được bằng thuật toán

đơn định trong thời gian đa thức

Ví dụ: Bài toán tìm kiếm có thể giải được nhờ thuật toán với thời gian

tính toán là O(n) nên thuộc lớp bài toán P

1.3.2 Lớp bài toán N P

Lớp bài toán N P là lớp các bài toán có thể giải được bằng thuật toán

không đơn định trong thời gian đa thức Hay là lớp các bài toán mà mọi

nghiệm giả định đều có thể được kiểm chứng trong thời gian đa thức

Ví dụ: Bài toán kiểm tra một dãy đỉnh của đồ thị G có là chu trình Hamilton

hay không Bài toán này thực hiện sau thời gian có thể chấp nhận được

nên thuộc lớp bài toán N P

Từ định nghĩa lớp bài toán P và lớp bài toán N P ta thấy P ∈ N P

Nhưng hiện nay chưa chứng minh được P là tập con thực sự của N P Một

trong số các vấn đề mở trong khoa học máy tính là: “Nếu một bài toán

Trang 21

có lời giải có thể kiểm chứng được nhanh chóng, thì có thể tìm lời giải đó

nhanh chóng hay không?”

“Dẫn về được” hay “phép quy dẫn”:

Bài toán A được gọi là “dẫn về được” bài toán B sau thời gian đa thức

nếu có một thuật toán đa thức để giải bài toán B thì cũng có một thuật

toán đa thức để giải bài toán A Nghĩa là: Bài toán B “khó hơn” bài toán

A hay A “dễ hơn” B hay A là trường hợp riêng của B Kí hiệu A ∝ B.Phép quy dẫn có tính chất bắc cầu: A ∝ B và B ∝ C ⇒ A ∝ C

Tư tưởng quy dẫn đã giải thích vai trò quan trọng của lớp bài toán P Nếu

ta có bài toán A thuộc lớp P và một bài toán B có thể quy dẫn về A, thì

B cũng thuộc vào P

“Khó tương đương”:

Bài toán A được gọi là “khó tương đương” bài toán B nếu A ∝ B và

B ∝ A Kí hiệu A ∼ B

Bài toán quyết định:

Bài toán quyết định là bài toán mà đầu ra chỉ có thể là “Yes” hoặc “No”

(Đúng/Sai)

Ví dụ: Bài toán về tính nguyên tố: “Hỏi số nguyên n có là số nguyên tố

hay không?” giả sử đầu vào là số tự nhiên n thì đầuu ra trả lời "Yes" nếu

n là số nguyên tố, "No" nếu n không là số nguyên tố Chẳng hạn n = 23

là bộ dữ liệu vào “Yes”, còn n = 24 là bộ dữ liệu vào “No” của bài toán

1.3.3 Bài toán N P –khó

Bài toán A được gọi là N P -khó nếu như tồn tại thuật toán đa thức

để giải bài toán A thì kéo theo sự tồn tại thuật toán đa thức để giải mọi bài

Trang 22

toán trong lớp bài toán N P Hay bài toán A là N P –khó nếu như B ∝ A,

với mọi bài toán B ∈ N P

Lớp bài toán N P -khó là bài toán mà không có thuật toán thời gian tính

đa thức để giải đúng nó, mà chỉ có các thuật toán giải trong thời gian hàm

Ví dụ: Bài toán người du lịch là một bài toán khá nổi tiếng trong lĩnh

vực tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa học máy tính Nó

được phát biểu như sau: Cho một danh sách các thành phố và khoảng cách

giữa chúng, nhiệm vụ là phải tìm đường đi ngắn nhất có thể mà chỉ thăm

mỗi thành phố đúng một lần và trở về thành phố xuất phát Bài toán được

lần đầu tiên đưa ra như một vấn đề toán học vào năm 1930 và là một trong

số những bài toán được nghiên cứu chuyên sâu trong lĩnh vực tổ hợp thời

đó Người ta chứng minh được rằng nó thuộc lớp bài toán N P -khó

Như vậy nếu ta có thể giải được một cách hiệu quả một bài toán N P –khó

cụ thể thì ta cũng có thể giải hiệu quả bất kỳ bài toán nào trong N P bằng

cách sử dụng thuật toán giải bài toán N P -khó như là một chương trình

con

1.3.4 Bài toán N P -đầy đủ

Một bài toán quyết định A được gọi là N P - đầy đủ nếu như:

i) A là bài toán trong N P ;

ii) Mọi bài toán trong N P đều có thể quy dẫn về A

Tổng kết chương 1: Chương 1 em đã nhắc lại khái niệm về đồ thị, chỉ

ra một số cách biểu diễn đồ thị trên máy tính như: biểu diễn đồ thị trên

máy tính bằng ma trận kề, danh sách cạnh và danh sách kề Trong chương

Trang 23

này em cũng đề cập đến sự phân lớp các bài toán P , N P , N P khó Từ

đó em dùng cách biểu diễn đồ thị trên máy tính bằng ma trận kề cho bài

toán băng thông đồ thị

Trang 24

Chương 2

Giải thuật di truyền và tiến hóa

Theo Học thuyết tiến hóa bởi chọn lọc tự nhiên của Charles Darwin đã

đưa ra năm 1859 trong quyển sách “Nguồn gốc các loài”, cho rằng trong

suốt quá trình tồn tại và phát triển của một quần thể sinh vật thì các cá

thể con được thừa hưởng các tính trạng từ cha mẹ chúng Ngoài ra, trong

quá trình sinh trưởng, các cá thể có thể bị đột biến dẫn đến một tính trạng

mới và tính trạng này sẽ được truyền lại cho con cháu của cá thể ấy

Tuy nhiên, do sự ràng buộc giữa các quần thể với nhau trong tự nhiên,

kích thước một quần thể sẽ luôn chỉ ở một giới hạn nào đó mà không thể

bùng nổ Từ hệ quả của việc con cái thừa hưởng tính trạng từ cha mẹ,

một thế hệ các cá thể con với các tính trạng khác nhau cùng đấu tranh để

sinh tồn, cá thể con nào có tính trạng “tốt” hơn, thích hợp cho việc sinh

tồn hơn sẽ có nhiều cơ may sống sót hơn, đó là sự chọn lọc tự nhiên Dần

dần, các cá thể với các tính trạng tốt sẽ có nhiều cơ may sống sót hơn,

đồng nghĩa với có nhiều cơ may tham gia vào quá trình tái tạo quần thể

thông qua quá trình sinh sản và thông tin di truyền về các tính trạng tốt

sẽ được phổ biến hơn trong quần thể dẫn đến các thế hệ cá thể mới trong

quần thể sẽ có các tính trạng tốt hơn các thế hệ cá thể cũ trong quần thể,

đó là sự tiến hóa

Người ta đã nhận thấy rằng sức mạnh của những cá thể tồn tại trên

thế giới thì được quy định bởi cấu trúc gene của nó và trải qua nhiều thế

Trang 25

hệ, chỉ những gene tốt mới tiếp tục được phát triển trong khi các gene xấu

sẽ dần bị đào thải Hơn nữa, người ta cũng mong muốn rằng khi đem kết

hợp những cá thể với gene tốt lại với nhau sẽ cho ra các cá thể mới cũng

có gene tốt và thậm chí là tốt hơn so với thế hệ cha mẹ của chúng

Dựa trên ý tưởng của quá trình chọn lọc trong giới tự nhiên các giải

thuật di truyền (Genetic Algorithm - GA) được phát triển đầu tiên bởi

John Holland, công bố vào năm 1975 Áp dụng nguyên lý trên để tối ưu

hóa vấn đề bằng cách biểu diễn những lời giải khác nhau có thể thông qua

các chuỗi gene thích hợp và áp dụng phép “chọn lọc tự nhiên” trên những

chuỗi này Thuật toán cần một tập các giá trị ban đầu để khởi động, gọi là

“thế hệ 0”, có thể được thu thập bằng nhiều phương pháp khác nhau hay

đơn giản là được phát sinh ngẫu nhiên Sau đó, ba toán tử cơ bản gồm “kế

thừa”, “lai ghép” và “đột biến” sẽ được thực hiện nhiều lần cho đến khi thu

được lời giải đạt một số tiêu chuẩn nhất định Trong suốt mỗi lần lặp (mỗi

thế hệ) những chuỗi hiện hữu sẽ dịch chuyển về lời giải và chất lượng của

nó sẽ được ước tính [4]

Tiến trình sản sinh sẽ tạo ra một thế hệ mới Bắt đầu một thế hệ hiện

hữu, các chuỗi gene (hay còn gọi là các nhiễm sắc thể) sẽ được phát sinh

với một xác suất tương ứng với chất lượng của lời giải hiện tại Các nhiễm

sắc thể đại diện cho những lời giải với thuộc tính tốt, có được cơ hội tồn tại

cao hơn so với các nhiễm sắc thể mô tả giải pháp chỉ với những đặc trưng

xấu (đó là quy luật về “sự kế thừa của những tính chất thích hợp nhất”)

Toán tử lai ghép sẽ chọn những cặp các nhiễm sắc thể, bẻ gãy thứ tự gene

của chúng tại một số vị trí ngẫu nhiên và hoán đổi các thông tin di truyền

Cuối cùng, toán tử đột biến sẽ sản sinh ra một nhiễm sắc thể mới bằng

Trang 26

cách lựa chọn ngẫu nhiên và thay đổi từng vị trí riêng lẻ của gene Đột

biến rất quan trọng để từng bước dịch chuyển quá trình tìm kiếm toàn cục

tới một vị trí mới cũng thuộc không gian lời gải Nếu không có đột biến

quá trình tìm kiếm sẽ hội tụ về một vị trí tối ưu địa phương mà không có

cơ hội để xem xét đến những điểm khác tốt hơn nữa Ta có sơ đồ chung

nhất cho các bài toán sử dụng giải thuật di truyền:

Hình 2.1: Sơ đồ giải thuật di truyền

2.1 Mã hóa các chuỗi nhiễm sắc thể

Trong giải thuật di truyền và tiến hóa, mỗi nhiễm sắc thể biểu diễn

cho một lời giải của bài toán và cách mã hóa nhiễm sắc thể được đánh giá

là một trong hai yếu tố quan trọng nhất Cách mã hóa ảnh hưởng tới cách

Trang 27

thực hiện các thao tác di truyền thực hiện trên cá thể: lai ghép, đột biến

đồng thời cũng ảnh hưởng tới độ phức tạp khi tính toán độ thích nghi cho

các cá thể

2.1.1 Mã hóa theo giá trị

Mã hóa theo giá trị sử dụng một mảng các số nguyên hoặc thực để

biểu diễn kiểu gene cho một cá thể Cách mã hóa này thường được dùng

cho các bài toán tối ưu mà kiểu hình có thể chia nhỏ ra các thành phần

độc lập với nhau và tập xác định của các thành phần này có thể được rời

rạc hóa và biểu diễn bởi một số thực hoặc nguyên Ví dụ, để biểu diễn một

màu thuộc hệ màu RGB, có thể sử dụng mảng [vR, vG, vB] với vR, vG, vB

lần lượt là các giá trị cường độ màu của màu đỏ, màu xanh lá cây và màu

xanh da trời Màu đen được mã hóa [0, 0, 0], màu trắng [255, 255, 255], màu

đỏ [255, 0, 0],

Một dạng đặc biệt của mã hóa theo giá trị là mã hóa nhị phân: các

gene chỉ có thể nhận một trong hai giá trị 0 hoặc 1 Cách mã hóa này có

ứng dụng lớn trong các bài toán quyết định

Ví dụ:

Nhiễm sắc thể 1: 1101100100110110 biểu diễn cho giá trị 55605

Nhiễm sắc thể 2: 1101111000011111 biểu diễn cho giá trị 56863

2.1.2 Mã hóa hoán vị

Mã hóa hoán vị sử dụng một hoán vị của một tập các giá trị theo một

trình tự nào đó để biểu diễn kiểu gene cho một cá thể Mã hóa hoán vị

có thể được áp dụng trong lớp các bài toán liên quan đến tìm thứ tự cho

Trang 28

một tập hợp các công việc nào đó như bài toán người du lịch, bài toán lập

lịch Ví dụ, trong bài toán người du lịch, để mã hóa cho một trình tự tham

quan qua n thành phố có thể sử dụng một hoán vị của tập (1, 2, 3, , n)

và trình tự các số trong hoán vị đó cho biết trình tự tham quan các thành

phố của người đó

2.1.3 Mã hóa theo cấu trúc cây

Trong dạng mã hóa theo cấu trúc cây, mỗi nhiễm sắc thể sẽ được mã

hóa bởi một cây các đối tượng Các đối tượng ở đây có thể là các hằng,

các biến, các câu lệnh, có quan hệ trực tiếp với nhau trong cấu trúc gene

của cá thể

2.2 Hàm thích nghi

Trong giải thuật di truyền hàm tính độ thích nghi là một trong hai yếu

tố quan trọng nhất quyết định đến hiệu năng của chương trình Tùy thuộc

theo yêu cầu của bài toán, hàm tính độ thích nghi phải phản ánh được độ

tốt của nhiễm sắc thể trong quần thể Ví dụ với bài toán người du lịch,

yêu cầu bài toán là tìm trình tự tham quan các thành phố sao cho đường

đi ngắn nhất nên hàm tính độ thích nghi chính là độ dài trình tự đường đi

đó

2.3 Đấu tranh sinh tồn

Đấu tranh sinh tồn hay chọn lọc tự nhiên là quá trình loại bỏ dần các

cá thể xấu, các cá thể có độ thích nghi thấp và giữ lại các cá thể tốt, nhằm

Trang 29

duy trì nguồn gene tốt để phân bổ trong quần thể Cần quan tâm đến cách

lựa chọn các cá thể mới cho quần thể vì một số cá thể tuy có độ thích nghi

thấp nhưng lại có một đoạn gene tốt, nếu không quan tâm đến yếu tố này

thì giải thuật sẽ trở nên tham lam

Thao tác chọn lọc tự nhiên có thể được mô tả như sau:

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

- Lựa chọn một số cá thể để cho vào quần thể mới, loại bỏ các cá thể

còn lại

Giải thuật di truyền và tiến hóa thực hiện việc giải quyết các bài toán

tối ưu bằng cách mô phỏng quá trình tiến hóa của các quần thể trong tự

nhiên Vì vậy, giống như cách tự nhiên tác động lên quần thể trong quá

trình tiến hóa, giải thuật tiến hóa cũng sử dụng ba thao tác cơ bản trong

quá trình thực thi: thao tác lai ghép, thao tác đột biến và thao tác chọn

lọc tự nhiên

Cần chú ý đến hai vấn đề:

+ Trong tự nhiên thao tác đột biến có thể xảy ra trong quá trình sống

của cá thể hoặc trong quá trình sinh sản hữu tính tạo ra cá thể đó,

tuy nhiên trong giải thuật di truyền không tồn tại khái niệm “vòng đời

của cá thể” dẫn đến cá thể bị đột biến trong quá trình sinh sản hay

trong quá trình sống đều như nhau Do đó, việc cá thể có bị đột biến

hay không sẽ được xem xét đến trong quá trình sinh sản tạo ra cá thể

đó, tức là thao tác đột biến sẽ được sử dụng như là một thao tác con

của thao tác lai ghép

+ Có những chuỗi giá trị là hợp lệ với các luật để được công nhận là một

Trang 30

kiểu gene, tuy nhiên nó lại không hợp lệ để xây dựng một kiểu hình

tương ứng Do đó, cần để ý đến hai thao tác đặc biệt sau dành cho các

chuỗi giá trị như thế: kiểm tra xem chuỗi giá trị đó có thực sự là một

kiểu gene hợp lệ không và nếu không, tìm ra phương thức sửa chữa

chúng để trở thành một kiểu gene thực sự hợp lệ

Sau đây chúng ta nghiên cứu về các quá trình tiến hóa đó

2.4 Thao tác lai ghép

Di truyền là quá trình các cá thể con được thừa hưởng thông tin di

truyền từ cha mẹ, hay nói cách khác quá trình di truyền là tập hợp của

rất nhiều thao tác sinh sản hữu tính giữa các cá thể trong quần thể Các

cá thể con được thừa hưởng một phần thông tin di truyền từ cha và một

phần từ mẹ của chúng, thao tác lai ghép trong các thuật giải di truyền và

tiến hóa mô phỏng thao tác sinh sản hữu tính trong tự nhiên này Phép lai

ghép hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể cha mẹ

bằng cách ghép các đoạn con của nhiễm sắc thể cha mẹ vào vị trí tương

ứng trên nhiễm sắc thể của con

2.4.1 Lai ghép theo điểm cắt

Lai ghép theo điểm cắt là phương pháp lai ghép đơn giản và thường

gặp nhất, có tính trực quan và có thể áp dụng đối với các phương pháp

mã hóa lời giải dưới dạng xâu Phương pháp này tiến hành như sau:

- Chọn ngẫu nhiên K vị trí cắt khác nhau trên nhiễm sắc thể hai cá thể

ban đầu để xác định những vùng sẽ tiến hành ghép chéo

Trang 31

- Gọi Pik là đoạn nằm giữa vị trí cắt thứ k − 1 và vị trí cắt thứ k

trên xâu biểu diễn nhiễm sắc thể lời giải của cá thể ban đầu thứ i

(k = 1, 2, , K + 1; i = 1, 2) PiK+1 sẽ là đoạn nằm sau vị trí cắt thứ k

trên xâu biểu diễn lời giải nhiễm sắc thể của cá thể ban đầu thứ i

- Con thứ nhất được ghép chéo từ các đoạn P1j với j lẻ và các đoạn P2h

với h chẵn Tức là ta sẽ thu được P11P22P13P24P15 P1KP2K+1 (giả sử

K lẻ)

- Con thứ hai được ghép chéo từ các đoạn P2j với j lẻ và các đoạn P1h

với h chẵn Tức là ta sẽ thu được P21P12P23P14P25 P1KP2K+1 (giả sử

K chẵn)

Thông thường phương pháp lai ghép theo điểm cắt có K = 1 hoặc K = 2

Phương pháp lai ghép theo điểm cắt:

Hình 2.2: Phương pháp lai ghép theo điểm cắt

Trang 32

2.4.2 Lai ghép đồng bộ

Trong lai ghép đồng bộ sử dụng một tham số là xác suất hoán đổi pe

Với pe và hai cá thể ban đầu cho trước, lai ghép đồng bộ được tiến hành

như sau:

Dọc theo độ dài của cá thể cha mẹ, đối với mỗi cặp Alen của cha mẹ thực

hiện thao tác:

- Sinh ra một số ngẫu nhiên r thuộc khoảng (0, 1)

- Nếu r ≤ pe thì trao đổi hai alen của hai cá thể cha mẹ tại vị trí đang

xét Ngược lại thì giữ nguyên giá trị hai alen của hai cá thể cha mẹ tại

vị trí đang xét

Lai ghép đồng bộ cũng giống như lai ghép theo điểm cắt ở chỗ áp dụng

tốt cho những phương pháp biểu diễn lời giải dưới dạng xâu:

Hình 2.3: Phương pháp lai ghép đồng bộ

Hai cá thể cha và mẹ được lựa chọn từ quần thể để thực hiện lai ghép

tạo ra hai cá thể con mới Sau đây là các cách thức lựa chọn cá thể cha,

mẹ cho thao tác lai ghép

Trang 33

2.4.3 Cơ chế lựa chọn cá thể cha-mẹ

- Lựa chọn ngẫu nhiên:

Hai cá thể cha và mẹ được lựa chọn ngẫu nhiên từ quần thể, không

hề phụ thuộc gì vào độ thích nghi của chúng Cách lựa chọn này có ưu

điểm là sẽ tận dụng tốt tất cả các mẫu gene có thể có của quần thể,

không thiên về một hướng tìm kiếm nào nên không bị sa lầy ở một cực

trị địa phương nào đó Tuy nhiên các cá thể tốt lại không có bất kì lợi

thế nào so với các cá thể không tốt, dẫn đến hiệu quả tiến triển của

bài toán không cao Cách lựa chọn này chỉ nên áp dụng nếu có một

cách nạp lại quần thể thực sự hiệu quả

- Lựa chọn có định hướng:

Từ quần thể chọn ra một tập cá thể theo một qui luật nào đó và cá

thể cha-mẹ được lựa chọn ngẫu nhiên trong tập cá thể này Tuy việc

chọn lựa cá thể vẫn là ngẫu nhiên nhưng khi áp dụng qui luật để chọn

tập cá thể này, thao tác lựa chọn đã định hướng được tính chất của

cá thể theo ý mình Qui luật áp dụng ở đây chính là các heuristic đã

được đưa ra trong quá trình giải quyết bài toán

- Lựa chọn theo độ thích nghi:

Sử dụng đến một hàm để xây dựng xác suất được lựa chọn cho các

cá thể dựa vào độ thích nghi của chúng Khi độ thích nghi của cá thể

càng lớn thì xác suất được lựa chọn là cá thể cha, mẹ của cá thể đó

càng lớn Sau đây là hai cách xây dựng hàm tính xác suất được chọn

cho các cá thể:

+ Tính xác suất theo xếp hạng độ thích nghi: quần thể được sắp

Trang 34

xếp theo thứ tự không giảm của độ thích nghi Cá thể có độ thích

nghi cao nhất sẽ có xác suất được chọn là pmax, cá thể có độ thích

nghi nhỏ nhất sẽ có xác suất được chọn là pmin Các cá thể còn lại

được phân bố đều trong khoảng [pmin, pmax] và cách nhau (pmax −

pmin)/(N − 1) với N là số lượng cá thể

+ Tính xác suất theo giá trị độ thích nghi: Với cách tính này, xác

suất được chọn của một cá thể chính là tỉ lệ tương đối của độ thích

nghi của cá thể trong quần thể Tổng độ thích nghi của cả quần

theo giá trị độ thích nghi này có ưu điểm rằng ưu thế của các cá

thể có độ thích nghi trội hơn hẳn so với các cá thể khác sẽ có tác

dụng trực tiếp lên xác suất được chọn của cá thể

Khi đã có xác suất được chọn làm cha-mẹ cho các cá thể, tiến hành

lựa chọn cá thể cha-mẹ cho thao tác lai ghép bằng một trong các cách

sau:

+ Lựa chọn ngẫu nhiên: Ta biểu diễn mỗi cá thể bằng một điểm

trên đoạn [0, 1] với tọa độ xi của điểm biểu diễn cá thể vi sẽ là:

xi = p(vi) Tạo một điểm ngẫu nhiên trên đoạn [0, 1] và cá thể nào

có điểm biểu diễn gần điểm ngẫu nhiên này nhất sẽ được chọn làm

cá thể cha-mẹ

+ Lựa chọn tuần tự: Các cá thể được sắp xếp theo thứ tự không giảm

của xác suất được chọn Bắt đầu từ cá thể có xác suất được chọn

cao nhất, dựa vào giá trị xác suất được chọn này quyết định xem

nó có được chọn là cá thể cha-mẹ hay không bằng cách sinh ra một

Trang 35

số ngẫu nhiên và so sánh số này với xác suất được chọn của cá thể.

Nếu cá thể đầu tiên không được chọn, lặp lại thao tác trên với cá

thể thứ hai Cứ thế cho đến khi chọn được một cá thể để làm cá

thể cha-mẹ

- Lựa chọn trận đấu:

Đây là một cách lựa chọn kết hợp từ hai cách lựa chọn có định

hướng và lựa chọn theo độ thích nghi Từ quần thể, tập bao gồm một

số cá thể sẽ được chọn ra và trong tập cá thể này, áp dụng cách thức

lựa chọn giống như cách thức sử dụng trong cách lựa chọn theo độ

thích nghi Ưu điểm của cách lựa chọn này là vừa giúp ứng dụng các

heuristic đã biết vào giải bài toán, đồng thời lại tuân theo đúng nguyên

tắc ban đầu của giải thuật di truyền và tiến hóa: Cá thể có độ thích

nghi càng lớn thì càng có nhiều khả năng được chọn

2.5 Thao tác đột biến

Đột biến là hiện tượng nhiễm sắc thể của cá thể con khi sinh ra mang

một hoặc nhiều đoạn gene không có trong thông tin di truyền được thừa

hưởng từ cha mẹ Tuy nhiên, trong các giải thuật di truyền, thông thường

sẽ chọn một đoạn ngẫu nhiên trong nhiễm sắc thể của cá thể và tiến hành

đột biến bằng cách thay đổi các giá trị của đoạn đó một cách ngẫu nhiên

trong phạm vi cho phép Thông thường, thao tác đột biến để tạo ra nhiễm

sắc thể cho một cá thể mới và sau đó kiểm tra tính thực sự hợp lệ của nó

đồng thời sửa chữa nhiễm sắc thể đó để nó trở nên thực sự hợp lệ, nếu cần

Trong quá trình đột biến, có thể sử dụng một số heuristic để tập trung đột

Trang 36

truyền và tiến hóa.

2.5.1 Đột biến đảo bit

Đây là kỹ thuật đột biến đơn giản nhất và thường áp dụng cho mã hóa

nhị phân Tiến hành như sau:

- Chọn một (hoặc một số) vị trí ngẫu nhiên để tiến hành đảo bit

- Đổi lại giá trị của bit tại vị trí đã chọn

Phương pháp đột biến đảo bít:

Hình 2.4: Phương pháp đột biến đảo bít

2.5.2 Đột biến đổi giá trị

Áp dụng chủ yếu cho mã hóa theo giá trị Tiến hành như sau:

- Chọn ngẫu nhiên một số gene để đổi giá trị

- Gán lại các giá trị (nhưng nằm trong miền giá trị cho phép) cho các gene

đó Phương pháp đột biến đổi giá trị:

Hình 2.5: Phương pháp đột biến đảo giá trị

Trang 37

2.5.3 Đột biến đảo đoạn

Áp dụng được cho nhiều cách mã hóa khác nhau:

- Chọn hai vị trí ngẫu nhiên xác định đầu và cuối của đoạn gene sẽ đảo

- Xếp lại các gene trong đoạn đó theo trật tự ngược với trật tự ban đầu

Đột biến đảo đoạn:

Hình 2.6: Phương pháp đột biến đảo đoạn

2.6 Khởi tạo quần thể

Khởi tạo quần thể ban đầu là bước đầu tiên trong quá trình thực thi

của chương trình sử dụng giải thuật di truyền và tiến hóa Thông thường

để khởi tạo quần thể trong bài toán tối ưu, đầu tiên khởi tạo ngẫu nhiên

một số các lời giải hợp lệ cho bài toán

Cần quan tâm đến hai vấn đề:

- Quá trình khởi tạo quần thể có thể là trực tiếp hoặc gián tiếp

+ Khởi tạo trực tiếp cá thể là khởi tạo cho đồ thị đã cho và mã hóa

nó thành nhiễm sắc thể để đưa vào quần thể

+ Khởi tạo gián tiếp sẽ là khởi tạo ngẫu nhiên một bộ giá trị hợp lệ

với các luật của một nhiễm sắc thể, sau đó kiểm tra xem bộ giá

trị đó có thực sự hợp lệ để là một nhiễm sắc thể hay không bằng

Ngày đăng: 26/02/2019, 13:28

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