Tải bản đầy đủ (.docx) (15 trang)

Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề Tìm hiểu thuật giải di truyền và ứng dụng vào dự đoán password

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (244.91 KB, 15 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Tiểu luận môn Thuật toán và Phương pháp giải quyết
vấn đề
Tìm hiểu thuật giải di truyền và ứng dụng vào dự đoán password
GVHD: PGS.TS. Đỗ Văn Nhơn
HVTH: Lê Đỗ Minh Nga
MSHV: CH1301101
TP HCM, tháng 10 năm 2014
1
Mục lục
1. Tổng quan về Thuật giải di truyền và các ứng dụng.
1.1 Metaheuristic là gì
Metaheuristic là một cách gọi chung cho các giải thuật heuristic trong việc
giải quyết các bài toán tổ hợp khó. Metaheuristic bao gồm những chiến lược
khác nhau trong việc khám phá không gian tìm kiếm bằng cách sử dụng những
phương thức khác nhau và phải đạt được sự cân bằng giữa tính đa dạng và
chuyên sâu của không gian tìm kiếm. Một cài đặt thành công của metaheuristic
trong một bài toán tổ hợp phải cân bằng giữa sự khai thác được kinh nghiệm thu
thập được trong quá trình tìm kiếm để xác định được những vùng với những lời
giải có chất lượng cao gần tối ưu. Những ví dụ của metaheuristic bao gồm giải
thuật luyện thép (SA - Simulated Annealing), giải thuật di truyền (GA - Genetic
Algorithm), giải thuật đàn kiến (ACO ), tìm kiếm tabu (Tabu search)
2
1.2 Tìm hiểu Thuật giải di truyền và ứng dụng
1.2.1 Giới thiệu thuật giải di truyền:
Genetic Algorithms tạm dịch là Thuật giải di truyền (ngắn gọn gọi 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ết vấn đề bắt chước lối hành xử của con người để
tồn tại và phát triển. Nó giúp tìm ra giải pháp tối ưu hay tốt nhất trong điều kiện
thời gian và không gian cho phép.


GA xét đến toàn bộ các giải pháp, bằng cách xét trước nhất một số giải pháp
sau đó loại bỏ những thành phần không thích hợp và chọn những thành phần
thích nghi hơn để tạo sinh và biến hóa nhằm mục đích tạo ra nhiều giải pháp
mới có hệ số thích nghi ngày càng cao
Hệ số thích nghi để dùng làm tiêu chuẩn đánh giá các giải pháp.
Cấu trúc dữ liệu + giải thuật di truyền = chương trình tiến hóa.
Thuật ngữ “chương trình tiến hóa” trong công thức trên là khái niện dùng để
chỉ các chương trình máy tính có sử dụng thuật toán tìm kiếm và tối ưu hóa
dựa trên nguyên lý tiến hóa tự nhiên
1.2.2 Các bước chính của thuật giải di truyền:
Bước 1: Chọn mô hình (model) để tượng trưng cho các giải pháp. Các mô hình
có thể là dãy (String) những số nhị phân: 1 và 0, thập phân và có thể là chữ hay
hỗn hợp giữa chữ và số.
Bước 2: Chọn hàm số thích nghi để dùng làm tiêu chuẩn đánh giá các giải pháp.
Bước 3: Tiếp tục các hình thức biến hóa cho đến khi đạt được các giải pháp tốt
nhất hoặc đến khi thời gian cho phép chấm dứt.
1.2.3 Các thành phần cơ bản của thuật giải di truyền
 Quá trình lai ghép (phép lai)
+Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể. Giả sử các
nhiễm sắc thể của cha mẹ đều có m gen.
+Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 (ta gọi là điểm lai).
+Đưa hai cá thể mới này vào quẩn thể để tham gia các quá trình tiến hóa tiếp
theo.
 Quá trình đột biến (phép đột biến)
3
+Chọn ngẫu nhiên một cá thể bất kỳ cha mẹ trong quần thể.
+Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m, 1 ≤ k ≤ m.
+Thay đổi gen thứ k và trả cá thể này về quần thể để tham giá quá trình tiến
hóa tiếp theo
 Quá trình sinh sản

+Tính độ thích nghi của từng cá thể trong quẩn thể hiện hành, lập bảng
cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể). Giả sử
quần thể 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.
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, thì sao chép từ cặp bố mẹ khác.
 Quá trình chọn lọc
+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ỉ giữ lại n cá thể tốt nhất. Ở đây, tả giả sử
quần thể có kích thước cố định n.
 Điều kiện dừng của giải thuật:
Chúng ta sẽ khảo sát điều kiện đơn giản nhất để dừng khi số thế hệ vượt quá
một ngưỡng cho trước. Trong một số phiên bản về chương trình tiến hoá
4
không phải mọi cá thể đều tiến hoá lại. Vài cá thể trong đó có khả năng vượt
từ thế hệ này sang thế hệ khác mà không thay đổi gì cả. Trong những trường
hợp như vậy, chúng ta đếm số lần lượng hàm.
Nếu số lần lượng hàm vượt quá một hằng xác định trước thì dừng việc tìm
kiếm.
Chúng ta nhận thấy, các điều kiện dừng ở trên giả thiết rằng người sử dụng
đã biết đặc trưng của hàm, có ảnh hưởng như thế nào tới chiều dài tìm kiếm.

Trong một số trường hợp khó có thể xác định số lượng thế hệ (hay lượng giá
hàm) phải là bao nhiêu. Giải thuật có thể kết thúc khi cơ hội cho một cải
thiện quan trọng chưa bắt đầu.
Có hai loại điều kiện dừng cơ bản. Các điều kiện này dùng các đặc trưng tìm
kiếm để quyết định ngừng quá trình tìm kiếm .
-Dựa trên cấu trúc nhiễm sắc thể: do sự hội tụ của quần thể bằng cách kiểm
soát số alen được hội tụ, ở đây alen được coi như hội tụ nếu một số phần trăm
quần thể đã định trước có cùng (hoặc tương đương đối với các biểu diễn
không nhị phân) giá trị trong alen này. Nếu số alen hội tụ vượt quá số phần
trăm nào đó của tổng số alen, việc tìm kiếm sẽ kết thúc.
-Dựa trên ý nghĩa đặc biệt của một nhiễm sắc thể: đo tiến bộ của giải thuật
trong một số thế hệ cho trước. Nếu tiến bộ này nhỏ hơn một hằng số ε xác
định, kết thúc tìm kiếm.
1.2.4 Cấu trúc giải thuật di truyền tổng quát
Bắt đầu
t = 0;
Khởi tạo P(t);
Tính độ thích nghi cho các cá thể thuộc P(t);
Khi (điều kiện dừng chưa thỏa mãn) lặp
t = t+1;
Tái sinh P’(t) từ P(t);
Lai Q(t) từ P(t-1);
Đột biến R(t) từ P(t-1);
5
Chọn lọc P(t) từ P(t-1) U Q(t) U R(t) U P(t);
Hết lặp
Kết thúc.
1.2.5 Thuật giải di truyền so với các phương pháp truyền thống
Chúng ta xét bài toán đơn giản sau đây: tối ưu hoá hàm y = f(x) trên
khoảng xác định D.

Khi dùng phương pháp truyền thống có một số cách giải sau đây:
• Phương pháp liệt kê: Duyệt tất cả các điểm nằm trong vùng khảo sát D để
tìm ra điểm cực trị của nó. Phương pháp này không thích hợp khi dữ liệu
đầu vào quá lớn. Trong trường hợp này miền D có không gian quá lớn để có
thể đếm được.
• Phương pháp giải tích: Tìm điểm cực trị bằng cách giải tập các phương
trình khi cho Gradient bằng 0. Để xét được Gradient phải tính đạo hàm của
hàm số. Điều này không giải quyết được trong trường hợp hàm số không
liên tục hoặc không có đạo hàm. Ngoài ra đối với hàm nhiều cực trị thì có
thể phương pháp này bỏ mất cực trị, cực trị tìm được chỉ mang tính chất địa
phương.
• Phương pháp tìm kiếm ngẫu nhiên: là phương pháp kết hợp giữa phương
pháp tính toán giải tích và sơ đồ liệt kê . Tuy nhiên những việc làm ngẫu
nhiên cùng với giải thuật tìm kiếm ngẫu nhiên cũng phải bị suy yếu bởi
thiếu tính hiệu quả.
• Đối với Thuật giải di truyền: các thông số của bài toán tìm kiếm phải
được mã hoá thành một chuỗi hữu hạn các ký tự trên một tập hữu hạn các
ký tự. Chuỗi này tương tự như các chuỗi gen của các cơ thể sinh vật. Có rất
nhiều cách để mã hóa tập thông số. Một cách đơn giản là chúng ta có thể mã
hoá thành các chuỗi bit trên tập ký tự {0,1}. Mỗi một chuỗi đại diện cho
một điểm tìm kiếm trong không gian. GA xuất phát với một quần thể các
chuỗi được khởi tạo một cách ngẫu nhiên sau đó sẽ sản sinh các quần thể
tiếp theo thông qua việc sử dụng lựa chọn ngẫu nhiên như một công cụ.
Nhờ đó Thuật giải di truyền tìm kiếm trên nhiều điểm song song có khả
năng leo lên nhiều cực trị cùng một lúc. Thông qua các toán tử của mình,
6
giải thuật trao đổi thông tin giữa các cực trị với nhau, từ đó làm giảm thiểu
khả năng giải thuật kết thúc tại các cực trị địa phương và bỏ qua mất cực trị
toàn cục
Đây là các đặc trưng của Thuật giải di truyền so với các phương pháp

truyền thống
1.2.6 Các ứng dụng của thuật giải di truyền
+Tối ưu hoá và máy học:
Trong lĩnh vực tối ưu hóa có nhiều bài toán được áp dụng Thuật giải di
truyền và đã thành công như tối ưu hoá hàm một biến, tối ưu hóa hàm nhiều
biến, hay như bài toán người du lịch, bài toán hộp đen, các bài toán kinh
doanh, nhận dạng điều khiển hệ thống . Sau đây sẽ giới thiệu một số bài
toán tối ưu hóa:
David E.Golderg đã ứng dụng GA để tối ưu hóa bài toán điều khiễn hệ
thống đường ống dẫn khí thiên nhiên. Trong bài toán này, mục tiêu là cực
tiểu hóa năng lượng do quá trình nén, phụ thuộc vào áp suất tối đa và áp
suất tối thiểu và các ràng buộc tỉ lệ áp suất.
Tối ưu hoá kết cấu: Mục tiêu của bài toán này là cực tiểu hóa trọng lượng
của kết cấu, phụ thuộc vào các ràng buộc về ứng suất lớn nhất và ứng suất
nhỏ nhất của mỗi thanh. Một bộ mã cho khung kết cấu theo ma trận tiêu
chuẩn được dùng để phân tích mỗi thiết kế tạo ra bởi Thuật giải di truyền.
Trong lĩnh vực máy học, Thuật giải di truyền được sử dụng cho việc tìm
hiểu các quy luật có cấu trúc như cấu trúc IF-THEN trong môi trường nhân
tạo, khai phá dữ liệu data mining.
+Ghi ảnh y học với Thuật giải di truyền
Thuật giải di truyền đơn giản đã được sử dụng để thực hiện ghi hình ảnh,
như là bộ phận của hệ thống lớn có tên là Digital Subtraction Angiography
(DSA). Trong DSA, bác sĩ sẽ cố gắng xem xét bên trong của một động mạch
khả nghi bằng cách so sánh hình ảnh x-quang, một được chụp trước khi
tiêm thuốc đã nhuộm màu vào động mạch, một và một được chụp sau khi
tiêm thuốc. Cả hai hình được số hóa và được trừ nhau theo từng điểm một,
với kết quả mong muốn cuối cùng nhận được một hình ảnh sai khác phác
họa rõ ràng hình ảnh bên trong động mạch chủ. Tuy nhiên sự chuyển động
nhẹ của bệnh nhân có thể tạo ra hai hình ảnh kế nhau, làm rối loạn phần hình
7

ảnh sai khác. Kết quả là, các hình ảnh phải được xếp kế nhau, để tính toán
phần hình ảnh sai khác.
Thuật giải di truyền được dùng để tìm kiếm các hệ số biến đổi để tìm kiếm
các hệ số giúp cực tiểu hóa sự sai biệt hình ảnh trước và sau khi tiêm, trên
cơ sở các sai khác hình ảnh tuyệt đối.
• Các Thuật giải di truyền làm việc với sự mã hoá của tập thông số chứ
không làm việc với các giá trị của các thông số.
• Các Thuật giải di truyền tìm kiếm từ một quần thể các điểm chứ không
phải từ một điểm.
• Các Thuật giải di truyền chỉ sử dụng thông tin về các tiêu chuẩn tối ưu
của hàm mục tiêu chứ không dùng các thông tin hỗ trợ nào khác.
• Các Thuật giải di truyền sử dụng các luật chuyển đổi mang tính xác
suất chứ không phải là các luật chuyển đổi mang tính xác định.
• Các Thuật giải di truyền thường dễ cài đặt, áp dụng. Tuy nhiên không
phải lúc nào cũng cho lời giải chính xác. Một số Thuật giải di truyền
có thể cung cấp lời giải tiềm năng cho một bài toán xác định để người
sử dụng lựa chọn.
2. Ứng dụng thuật toán di truyền vào bài toán dự đoán password gồm 6 chữ
số
2.1. Giới thiệu bài toán
Một ví dụ rất đơn giản tìm mật khẩu để mở khóa – giả định rằng password này
chỉ cho nhập số và gồm 6 ký tự. Với bài toán này sẽ có tổng cộng 10^6 =
1.000.000 mật mã khác nhau. Trước vấn đề này ta phải thử ngẫu nhiên hoặc vét
cạn để tìm kiếm password và có thể tìm kiếm lên tới 1.000.000 để tìm
password
Dĩ nhiên, khi đứng trước những vấn đề-bài toán như vậy, người ta thường tìm
cách cải thiện thuật toán bằng cách cung cấp thêm một số thông tin khác. Chẳng
hạn như với bài toán mở khóa trên là thông tin cho biết trong hai mật mã được
phát sinh ra, mật mã nào là "tốt" hơn (nghĩa là có khả năng mở khóa cao hơn).
Có thể bạn đọc sẽ thắc mắc "bằng cách nào để biết được giữa hai mật mã, mật

mã nào có khả năng mở khóa cao hơn?". Thông thường, khi mở khóa, người ta
8
thường dựa trên các tác nhân vật lý – như tiếng động bên trong ổ khóa khi đưa
vào một mật mã – để dự đoán được tính "tốt" của mật mã đang thử. Khi biết
được được độ "tốt" của các mật mã, ta sẽ sử dụng một phương pháp tìm kiếm
thông minh hơn - mà người ta thường gọi là tìm kiếm theo kiểu leo đồi (hill-
climbing). Với tìm kiếm leo đồi, ta tưởng tượng rằng không gian tìm kiếm của
vấn đề-bài toán là một vùng đất gập ghềnh (landscape), có nhiều ngọn đồi cao
thấp khác nhau. Trong đó, ngọn đồi cao nhất của vùng đất này sẽ là lời giải tốt
nhất và vị trí có độ cao càng lớn thì càng "gần" với lời giải tốt nhất (độ cao
đồng nghĩa với độ tốt của lời giải). Tìm kiếm theo kiểu leo đồi có nghĩa là
chúng ta phải phát sinh các lời giải sao cho càng về sau các lời giải càng tiến
"gần" tới lời giải tốt nhất hơn. Thao tác này cũng giống như thao tác leo đồi vậy
(vì càng ngày ta càng lên cao hơn). Thuật giải di truyền hoạt động giống leo đồi
Tuy nhiên, kiểu giải quyết này vẫn còn gặp trở ngại cơ bản là, nếu vùng đất của
chúng ta có nhiều đồi nhỏ khác bên cạnh ngọn đồi cao nhất thì sẽ có khả năng
thuật toán của chúng ta bị "kẹt" ở một ngọn đồi nhỏ. Do tư tưởng là "càng ngày
càng lên cao" nên khi lên đến đỉnh một ngọn đồi nhỏ thuật toán sẽ không thể đi
tiếp được (vì không thể lên cao được nữa, muốn tìm đến một ngọn đồi cao hơn
thì phải xuống đồi hiện tại, mà xuống đồi thì không đúng tư tưởng càng ngày
càng lên cao). Bạn hãy tưởng tượng một máy tính giải quyết vấn đề-bài toán
theo kiểu leo đồi là một người leo đồi với tư tưởng "càng leo càng cao". Nếu chỉ
có một người leo đồi thì có khả năng người đó sẽ bị "kẹt" trên một đỉnh đồi
thấp. Như vậy, nếu có nhiều người leo đồi cùng leo ở nhiều địa điểm khác nhau
thì khả năng có một người leo đến đỉnh núi cao nhất sẽ cao hơn. Càng nhiều
người thì khả năng đến đỉnh núi cao nhất sẽ cao hơn. Nhưng tư tưởng này cũng
chưa có gì mới mẻ, đơn giản chỉ là 30 dùng nhiều máy tính để chia việc ra mà
thôi. Hơn nữa, với không gian tìm kiếm cỡ 10 như bài toán mở khóa, chúng ta
cần phải dùng bao nhiêu siêu máy tính? Mà quan trọng hơn nữa, cho dù có
nhiều người leo đồi, nhưng nếu số lượng người leo đồi quá ít so với số lượng

đồi thì khả năng tất cả người leo đồi đều bị "kẹt" cũng vẫn còn rất cao. Đến đây
thì rất có thể trong đầu các bạn chợt nảy lên một ý nghĩ. Tại sao không cho
nhiều "thế hệ" người leo đồi? Nghĩa là, nếu toàn bộ người leo đồi đầu tiên (giả
sử 1000 người chẳng hạn) đều không đạt đến đỉnh đồi cao nhất thì ta sẽ cho
1000 người leo đồi khác tiếp tục leo. Tuy nhiên, sẽ nảy sinh một vấn đề, có khả
năng là trong nhóm người leo đồi mới, có những người lại đi leo lại những ngọn
đồi mà nhóm trước đã leo rồi. Bạn nghĩ thế nào? Vậy thì hãy ghi nhận lại những
ngọn đồi đã leo để những nhóm sau còn thừa hưởng được kết quả của nhóm
trước. Hay nói một cách tổng quát hơn : hãy làm sao để những người giỏi nhất
9
(leo cao nhất) trong số những người leo đồi đầu tiên truyền lại "kinh nghiệm"
leo đồi của mình cho 1000 người thế hệ sau để sao cho 1000 người "hậu duệ"
này sẽ leo cao hơn họ. Và nếu 1000 người sau lại thất bại, những người giỏi
nhất trong số họ sẽ lại truyền "kinh nghiệm" của mình cho thế hệ 1000 người
tiếp nữa để những người thế hệ 3 này leo cao hơn nữa. Tiến trình cứ thế tiếp tục
cho đến lúc đến một thế hệ nào đó, có một người leo đến đỉnh đồi cao nhất hoặc
hết thời gian cho phép. Trong trường hợp hết thời gian cho phép thì trong toàn
bộ các thế hệ, người nào leo cao nhất sẽ được chọn. Đây là tư tưởng chính của
thuật giải di truyền . Rất đơn giản, thay vì chỉ phát sinh một lời giải, ban đầu ta
phát sinh một lúc nhiều (thậm chí rất nhiều) lời giải cùng lúc. Sau đó, trong số
lời giải được tạo ra, chọn ra những lời giải tốt nhất để làm cơ sở phát sinh ra
nhóm các lời giải sau với nguyên tắc "càng về sau" càng tốt hơn. Quá trình tiếp
diễn cho đến lúc tìm được một lời giải tối ưu. Đó là tư tưởng sơ khởi ban đầu
của thuật giải di truyền. Càng về sau, người ta càng hoàn thiện hơn phương
pháp luận của ý tưởng này, dẫn đến sự ra đời của một hệ thống hoàn chỉnh các
phương pháp, nguyên lý dùng trong thuật giải di truyền
2.2. Thiết kế thuật giải di truyền dự đoán password
Bài toán: cho người dùng nhập vào một password gồm 6 ký tự. Viết chương
trình máy tính tìm ra password mà người dùng đã nhập
Giải thuật:

Qua phần giới thiệu, ta biết bài toán đoán password có không gian lời giải là
10^6 trường hợp, mỗi lời giải là một số gồm 6 chữ số với mỗi chữ số có giá trị
từ 0->9 nên thiết kế thuật giải di truyền như sau:
Cá thể (Chromosome): chính là một số gồm 6 chữ số với mỗi chữ số có giá trị
từ 0->9
Quần thể, tỉ lệ sống sót qua mỗi thế hệ: là một list gồm nhiều cá thể, số lượng
cá thể của quần thể có thể thay đổi theo phương pháp thử sai đến khi được kết
quả khả quan nhất, mặc định cho là 100 cá thể RGB. Tỉ lệ sống sót có thể thay
đổi để đạt kết quả tốt nhất, mặc định cho 20 cá thể sống sót qua mỗi thế hệ.
Trong 2 cá thể, ta lấy 10 cá thể có hàm Fitness tốt nhất của thế hệ trước và 10
cá thể ngẫu nhiên để cho sống sót tạo thành thế hệ sau.
Hàm thích nghi (Fitness function): do đã có một đáp án rõ ràng là một số gồm
sáu chữ số của người dùng nhập vào từ ban đầu, ta thiết kế hàm Fitness như
10
sau: giá trị hàm Fitness chính là tổng khác biệt giữa chữ số của cá thể đang xét
và chữ số ban đầu.
Hàm đột biến (mutation function): ta cho đột biến các chỉ số từ 0 tới 9 theo
biên độ +/- 1 trên các cá thể sống sót của quần thể trước và tạo ra nhiều cá thể
đột biến đưa vào quần thể mới cho đến khi đủ số lượng.
Hàm dừng (stop function): ta đã có sẵn đáp án do người dùng nhập vào nên
thuật giải sẽ dừng lại khi nào trong quần thể có cá thể password đúng đáp án.
2.3 Cài đặt thuật giải di truyền bằng C#
-Cài đặt lớp password:
- Cài đặt lớp cá thể chromosome password, có bao gồm hàm Fitness
11
-Cài đặt lớp đoán password bằng thuật giải di truyền:
12
-Hàm đột biến
2.4 Màn hình chính:
13

3. Kết luận
Cùng với sự phát triển nhanh chóng, vượt bậc của ngành công nghiệp máy tính,
nhu cầu của người dùng đối với máy tính ngày một cao hơn: không chỉ giải
quyết những công việc lưu trữ, tính toán bình thường, người dùng còn mong đợi
máy tính có khả năng thông minh hơn, có thể giải quyết vấn đề như con người.
Thuật giải di truyền được sử dụng vào nhiều lĩnh vực. Ứng dụng trong bài viết
chỉ ở mức ví dụ sơ đẳng nhất về thuật giải di truyền. Hướng phát triển của tiểu
luận sau này là có thể đề xuất thiết kế, phương pháp áp dụng thuật giải di truyền
để xây dựng hệ thống thông minh như hổ trợ ra quyết định.
Tài liệu tham khảo
14
[1] Slide bài giảng môn Thuật toán và phương pháp quyết vấn đề– PGS.TS. Đỗ
Văn Nhơn
[2] Machine Learning And Its Applications - Georgios Paliouras
[3] Genetic Algorimths in search Optimization and Machine learning -
David E.Goldberg.
[4] Luận văn báo cáo về Thuật giải di truyền và ứng dụng – nguồn internet
15

×