Phương pháp luận sáng tạo trong khoa học
Hiện nay công nghệ thông tin đang phát triển một cách nhanh chóng và được
ứng dụng rộng rãi vào các lĩnh vực trong đời sống như Internet đã phát triển vượt
bậc cung cấp kho tri thức khổng lồ cho con người, phát triển mạnh các công nghệ
hỗ trợ tương tác giữa máy tính và con người… Từ điểm xuất phát ban đầu của một
máy tính được tạo ra nhằm hỗ trợ các tính toán thông thường thì bây giờ máy tính
đã vươn tới các ứng dụng phức tạp, áp dụng trong nhiều lĩnh vực khác nhau: hóa
học, vật lý, y học… cung cấp cho hóa học, vật lý các phòng thí nghiệm ảo, mô
phỏng các hiện tượng trên thực tế đã giảm chi phí thực nghiệm hay đã cung cấp
các thiết bị thông minh ứng dụng trong sinh học hỗ trợ sự sống cho con người như
bộ phận thân thể nhân tạo, hỗ trợ tim thông minh, các dịch vụ y tế nâng cao…
Sự phát triển vượt bậc của công nghệ thông tin được dựa trên sự phát triển của
công nghệ phần cứng và sự phát triển các thuật toán - thuật giải. Sự phát triển của
công nghệ phần cứng theo định luật Moore được khái quát lại “Sau 18 tháng khả
năng của máy tính được nâng lên gấp đôi”. Quy luật trên đã nhìn nhận đúng về quá
trình phát triển các bộ vi xử lý máy tính từ những năm của thập kỷ 70 đến nay, tuy
trong tương lai có thể thay đổi nhưng từ định luật Moore đã phản ánh được sự phát
triển vũ bão của công nghệ phần cứng giúp đưa máy tính lại gần hơn với con
người, từ những máy tính cồng kềnh trở thành những máy tính cá nhân với hiệu
suất ngày càng nâng cao. Nhưng với đòi hỏi ngày càng cao của con người, cần giải
quyết các vấn đề ngày càng hóc búa thì sự phát triển tính toán dựa trên phần cứng
vẫn chưa đủ. Một ví dụ đơn giản nếu một mật mã được mã hóa bằng một chuỗi
thập phân 30 chữ số thì với một siêu máy tính thực hiện 1 tỉ lần thử và sai trong 1
giây thì phải mất hàng tỉ năm mới tìm được lời giải. Do đó, việc phát triển các
phương pháp giải quyết các bài toán trên tin học đã trở thành một điều cấp thiết.
Nó đã được phát triển ngay khi máy tính ra đời với khả năng được lập trình nhằm
nâng cao khả năng máy tính, bổ sung cho máy tính những quá trình lập luận, tính
toán của con người.
Quay lại ví dụ mật mã ở trên, nếu chúng ta khai thác được các thông tin về độ
tốt của mật mã đang thử thì có thể giải quyết vấn đề nhanh hơn. Vậy:“Bằng cách
nào để biết được giữa 2 mật mã, mật mã nào nhanh hơn ?”. Độ tốt của một mật mã
trong thực tế có thể dựa vào tiếng động trong ổ khóa khi đang thử, các thợ mở
khóa cũng dựa trên những thông tin tương tự. Từ một ví dụ đơn giản trên, chúng ta
nhận thấy nếu xử lý đơn thuần thử và sai thì chắc chắn sẽ ra kết quả nhưng liệu
Thuật giải di truyền và sáng tạo khoa học Trang 1
Phương pháp luận sáng tạo trong khoa học
chúng ta có đủ thời gian, tài nguyên để thực hiện hay nên áp dụng một vài thủ
thuật nhỏ tuy không chắc chắn nhưng nó có thể giải quyết vấn đề nhanh hơn.
Trong tin học, cách giải quyết truyền thống các bài toán trên máy tính áp
thường đặt người dùng phải suy nghĩ theo những hướng cố định, làm hạn chế thành
phần tham gia sử dụng máy tính để giải quyết các vấn đề. Ví dụ: để giải quyết một
bài toán, người dùng cần biết về những khả năng mà máy tính, công cụ lập trình có
thể đáp ứng (kiểu dữ liệu, lớp thuật toán nào…), nó không cung cấp mô hình tổng
quát để những người không có nhiều kiến thức về các thuật toán – thuật giải có thể
sử dụng ngay được. Nó khác hẳn với lối giải quyết tự nhiên của con người khi gặp
vấn đề, bài toán trong thực tế. Cách giải quyết của con người đó là luôn đánh giá
vấn đề một cách tổng quát, sau đó lựa chọn các bước thích hợp nhằm tiến gần đến
kết quả cuối cùng đến mức có thể. Lối giải quyết của con người không chắc chắn
sẽ đưa ra lời giải tốt nhất nhưng nó giải quyết nhanh chóng, trực tiếp vấn đề trong
hoàn cảnh cho phép. Sự khác biệt về lối giải quyết vấn đề giữa các chương trình
truyền thống và con người đã hạn chế sự linh hoạt, uyển chuyển sức sáng tạo của
con người đưa vào cách giải quyết vấn đề trên máy tính. Một câu hỏi ở đây cho sự
phát triển các thuật giải và thuật toán“Tại sao không kết hợp giữa sức mạnh tính
toán của máy tính với lối giải quyết tự nhiên của con người để tạo ra một phương
pháp giải quyết vấn đề mang tính con người hơn trên máy tính ?”
Hiện nay, ứng dụng công nghệ thông tin vào các lĩnh vực khác đã mang lại hiệu
quả to lớn. Sức mạnh của công nghệ thông tin đã được chứng minh. Nhưng một
câu hỏi ngược đặt ra lại “Liệu từ các lĩnh vực khác có thể áp dụng ngược lại vào
lĩnh vực tin học hay chỉ đơn thuần tin học là tin học không áp dụng ngược từ các
lĩnh vực khác ?”. Để trả lời câu hỏi này, chúng ta cần nhìn xu hướng này bên ngoài
tin học, trong các lĩnh vực ngoài tin học việc vay mượn các ý tưởng từ lĩnh vực
khác là một điều tất yếu và xảy ra thường xuyên, nhất là các quy luật, thực thể
trong tự nhiên. Tự nhiên là một quá trình vận động, phát triển xuyên suốt hàng tỉ
năm nên tự nhiên chứa trong nó những quy luật, những mô hình đúng đắn. Với
công nghệ được phát triển đã cho phép con người nghiên cứu tỉ mỉ các vấn đề
trong tự nhiên mà trước giờ được xem là bí ẩn nhằm phát hiện ra các quy luật có
ích để áp dụng vào trong cuộc sống. Một ví dụ đơn giản, các kiến trúc sư hiện nay
đang quan tâm đến kiến trúc, cấu tạo của các tổ kiến và tổ mối nhằm xây dựng hệ
thống không khí cho các tòa nhà. Tổ kiến, tổ mối luôn có một nhiệt độ ổn định bất
Thuật giải di truyền và sáng tạo khoa học Trang 2
Phương pháp luận sáng tạo trong khoa học
chấp việc chêch lệch với nhiệt độ bên ngoài. Từ việc quan sát này, các kỹ sư sẽ bắt
chước hệ thống không khí trong các tổ mối để thiết kế hệ thống không khí cho các
tòa nhà cao tầng nhằm đảm bảo sự ổn định về nhiệt độ, tiết kiệm điện năng và gần
gũi với hơn tự nhiên để bảo vệ môi trường. Xem xét lại trong tin học, hiện nay các
thuật giải mang ý tưởng tự nhiên đang được phát triển và ứng dụng rất nhiều: như
lớp thuật giải tiến hóa bao gồm thuật giải di truyền, chiến lược di truyền… hay lớp
thuật giải mang tính “thông minh bầy đàn” (Swarm Intelligent) gồm thuật giải tối
ưu dựa cá thể bầy đàn, thuật giải mô phỏng quá trình truyền tin của bầy kiến… Do
vậy, hiện giờ có thể khẳng định việc áp dụng những quy luật ở lĩnh vực khác vào
trong tin học, mở rộng các thuật giải là một xu hướng tất yếu. Đó là quá trình
chuyển hóa những điều thực tế, quy luật đúng đắn trong cuộc sống vào trong
phương pháp giải quyết bài toán trên máy tính. Có nhiều quy luật ở lĩnh vực khác
đã và đang được áp dụng thành công trong tin học, đặc biệt có một mảng thành
công lớn đó là sử dụng các quy luật trong ngành sinh học để tiếp cận với lời giải
trong các bài toán tin học, đặc biệt là các quy luật tiến hóa. Một trong những ứng
dụng quy luật tiến hóa rộng rãi và nổi bật được áp dụng vào trong tin học đó là
thuật giải di truyền. Thuật giải di truyền được chọn ở đây cũng nhằm mục đích trả
lời câu hỏi có hay không thuật giải mà lối giải quyết gần gũi với con người nhưng
vẫn khai thác sức mạnh tính toán trên máy tính.
Khái niệm thuật giải di truyền được phát triển từ những năm của thập kỷ 70 bởi
John Herry Holland được giới thiệu trong sách “Adaptation in Natural and
Artifical Systems”. Holland được xem như người mở đầu cho lý thuyết của thuật
giải di truyền (trong tin học). Lý thuyết này về sau tiếp tục được phát triển vững
chắc thông qua các chứng minh, dẫn chứng và áp dụng vào thực tế bởi những
người đi sau như Keneth De Jong, David E.Goldberg… Hiện nay, thuật giải di
truyền vẫn được tiếp tục nghiên cứu trên khắp thế giới nhằm đáp ứng ngày càng
sâu và rộng vào các ứng dụng đời sống như công trình tính toán song song và cải
thiện sự hội tụ sớm trong thuật giải di truyền của Iker Gondra: “Parallelizing
Genetic Algorithms” năm 2008...
Thuật giải di truyền được xem là quá trình mô phỏng lại sự tiến hóa của quần
thể trong tự nhiên với nguyên tắc đơn giản “những cá thể nào trong quần thể có độ
thích nghi cao sẽ dễ dàng tồn tại với sự thay đổi ngoại cảnh”. Hay nói cách khác đó
là sự tiến hóa cho thích nghi. Tiến hóa cho thích nghi đã được nhắc đến trong
Thuật giải di truyền và sáng tạo khoa học Trang 3
Phương pháp luận sáng tạo trong khoa học
thuyết tiến hóa sinh vật Charles Darwin. Trong đó, mỗi loài sinh vật đều cố gắng
thích nghi với sự thay đổi ngoại cảnh, sinh vật có sự thích nghi thấp sẽ bị loại bỏ
khỏi quần thể. Ý tưởng này đã được ứng dụng vào trong phương pháp giải quyết
bài toán tin học thông qua thuật giải di truyền, đó là sự xét toàn bộ giải pháp, trước
nhất sẽ xét một số giải pháp, sau đó loại bỏ đi những thành phần không thích hợp
để tạo sinh và biến hóa các giải pháp nhằm mục đích tạo ra nhiều giải pháp mới có
hệ số đáp ứng với mục tiêu kết quả ngày càng cao. Qua đó, thuật giải di truyền sẽ
tiếp cận với lời giải chính xác của bài toán.
Các bước chính trong việc áp dụng thuật giải di truyền:
• Bước 1: Chọn mô hình cho giải pháp của vấn đề: Chọn một số tượng trưng
cho toàn bộ các giải pháp có thể có cho vấn đề.
• Bước 2: Chỉ định cho mỗi giải pháp một ký hiệu. Ký hiệu có thể là dãy nhị
phân, thập phân hỗn hợp số và chữ.
• Bước 3: Tìm hàm số thích nghi cho vấn đề và tính hệ số thích nghi cho từng
giải pháp.
• Bước 4: Dựa trên hệ số thích nghi của các giải pháp để thực hiện sự tạo sinh
và biến hóa các giải pháp: Các phương thức biến hóa gồm: lai ghép, đột biến
• Bước 5: Tính các hệ số thích nghi cho các giải pháp mới và loại bỏ những
giải pháp kém nhất để chỉ còn giữ lại một số nhất định các giải pháp.
• Bước 6: Nếu chưa tìm được giải pháp tối ưu hay tương đối khá nhất hay
chưa hết hạn kỳ ấn định, trở lại bước 4 để tìm giải pháp mới .
• Bước 7: Tìm được giải pháp tối ưu hoặc nếu thời gian cho phép đã chấm dứt
thì báo cáo kết quả tính được.
Như các bước kể trên, bên trong thuật giải di truyền chứa các khái niệm liên
quan đến di truyền học: lai ghép, đột biến. Đây là phép dùng di truyền học để tạo
các cá thể con từ cá thể cha mẹ.Do vậy thuật giải di truyền bên cạnh việc mang tư
tưởng của thuyết tiến hóa về sự thích nghi của quần thể (gồm nhiều cá thể) mà còn
được hiện thực hóa với các phương pháp của di truyền học thông qua khái niệm lai
ghép, đột biến. Như trong di truyền học, phép lai ghép, đột biến diễn ra trên các
Thuật giải di truyền và sáng tạo khoa học Trang 4
Phương pháp luận sáng tạo trong khoa học
nhiễm sắc thể và tương tự trong thuật giải di truyền cũng có khái niệm nhiễm sắc
thể, đó là sự biểu diễn của bài toán thành các dạng thích hợp nhằm có thể thực hiện
được các phép di truyền kể trên để tạo ra các giải pháp giải quyết vấn đề mới. Hiện
nay, nhiễm sắc thể của một bài toán có thể biểu diễn thành nhiều dạng: nhị phân,
thập phân, chữ, hỗn hợp. Nhưng trong phạm vi bài luận này chỉ nhắc đến việc biểu
diễn cổ điển của nhiễm sắc thể đó là dạng nhị phân.
Thuật giải di truyền theo hướng cổ điển, nhiễm sắc thể sẽ được biểu diễn dưới
dạng nhị phân. Ưu điểm khi biểu diễn nhị phân giúp dễ dàng phân tích lý thuyết và
cho xây dựng các toán tử di truyền “đẹp”. Khi bài toán đòi hỏi độ chính xác cao,
trong không gian có số chiều lớn thì biểu diễn nhị phân sẽ không thích hợp do cần
số bit hiển thị quá lớn cũng như phải mã hóa để tính giá trị thích nghi. Do đó, xu
hướng của thuật giải di truyền gần đây là các nhiễm sắc thể được biểu diễn dưới
các dạng số thực, chữ số nhằm tăng khả năng linh hoạt cho khả năng giải quyết vấn
đề.
Đề cập chi tiết việc biểu diễn nhiễm sắc thể dưới dạng nhị phân, tham biến x
thuộc [Umin, Umax] được biểu diễn dưới dạng chuỗi nhị phân có độ dài L. Tỷ lệ
co giãn ánh xạ này được xác định:
Giá trị x tương ứng với mã string
2
sẽ được xác định theo công thức:
Decimal(string
2
) biểu diễn giá trị thập phân của chuỗi nhị phận string
2
.
Ví dụ: Decimal(0001) = 1;
Cho chuỗi 0001 là biểu diễn biến x1 và x1 thuộc [-1, 2]
g = 1/5.
x1 = -1 + decimal(0001) * 1/5 = -4/5.
Các phép di truyền học dùng trong thuật giải di truyền:
1. Chọn cá thể
Thuật giải di truyền và sáng tạo khoa học Trang 5