Điều PhốiWiki
Tìm
Tự nhiên tự điều phối

Trí tuệ bầy đàn trong máy tính: thuật toán đàn kiến, bầy hạt và đàn ong

Thuật toán đàn kiến (1992), bầy hạt (1995) và đàn ong nhân tạo (2005) chép cách kiến, chim, ong phối hợp để tìm lời giải đủ tốt cho bài toán lớn mà không cần trung tâm.

Trí tuệ bầy đàn trong máy tính: thuật toán đàn kiến, bầy hạt và đàn ong

Trí tuệ bầy đàn là cách giải bài toán bằng nhiều "tác tử" đơn giản cùng thử, cùng để lại thông tin cho nhau, thay vì một bộ óc trung tâm tính toán mọi thứ. Các nhà khoa học máy tính đã chép nguyên lý ấy từ kiến, ong, chim và cá để tạo ra những thuật toán như tối ưu đàn kiến (1992), tối ưu bầy hạt (1995) và thuật toán đàn ong nhân tạo (2005), dùng để tìm lời giải đủ tốt cho những bài toán quá lớn để thử hết mọi khả năng. Điểm chung: không cá thể nào biết lời giải, nhưng cả bầy dần dồn về vùng tốt.

Từ côn trùng tới máy tính

Cụm từ "trí tuệ bầy đàn" (swarm intelligence) được Gerardo Beni và Jing Wang dùng năm 1989 khi bàn về các hệ robot gồm nhiều đơn vị nhỏ. Trong thập niên 1990, nó trở thành tên chung cho một nhánh nghiên cứu: lấy cảm hứng từ cách côn trùng xã hội và động vật sống bầy phối hợp, rồi chuyển thành phương pháp tính toán. Cuốn Swarm Intelligence: From Natural to Artificial Systems (1999) của Eric Bonabeau, Marco Dorigo và Guy Theraulaz đã gom những ý tưởng ấy vào một chỗ.

Những thuật toán này thuộc nhóm "tối ưu gần đúng". Chúng không hứa tìm ra lời giải tốt nhất tuyệt đối, mà hứa tìm được lời giải tốt trong thời gian chấp nhận được. Với nhiều bài toán thực tế như xếp lịch, chia tải, chọn tham số, như vậy đã là quý.

Tối ưu đàn kiến: để lại vệt mùi ảo

Năm 1992, Marco Dorigo, khi đó làm luận án tiến sĩ ở Đại học Bách khoa Milano (Ý), đề xuất thuật toán mà sau này được gọi là tối ưu đàn kiến (Ant Colony Optimization). Cảm hứng đến từ những thí nghiệm của nhóm Jean-Louis Deneubourg với kiến Argentina, cho thấy kiến dùng vệt mùi để chọn đường ngắn hơn giữa hai lối.

Ý tưởng chuyển sang máy tính như sau:

  1. Thả nhiều "kiến ảo" đi xây lời giải từng bước, mỗi bước chọn ngẫu nhiên nhưng nghiêng về lựa chọn có nhiều "mùi ảo" hơn.
  2. Khi một con kiến hoàn thành lời giải, nó rải mùi ảo lên các lựa chọn mình đã dùng; lời giải càng tốt, mùi càng đậm.
  3. Sau mỗi vòng, toàn bộ mùi ảo bay hơi đi một phần.
  4. Lặp lại. Những lựa chọn thường xuất hiện trong lời giải tốt sẽ tích mùi, những lựa chọn kém sẽ phai dần.

Bước bay hơi là chi tiết hay bị bỏ qua nhưng cực kỳ quan trọng. Không có nó, bầy kiến ảo sẽ bám chết vào lời giải đầu tiên tìm được, dù chưa tốt. Có nó, những con đường cũ phải liên tục được xác nhận lại mới giữ được chỗ. Đây cũng là bài học chung của tự nhiên: thông tin phải có hạn sử dụng.

Kiến ảo trong mạng truyền dữ liệu

Cuối thập niên 1990, Gianni Di Caro và Dorigo thử dùng kiến ảo để định tuyến trong mạng truyền dữ liệu, phiên bản gọi là AntNet. Các gói thăm dò nhỏ chạy khắp mạng, ghi lại thời gian đi, và cập nhật bảng định tuyến ở mỗi nút như rải mùi. Khi một đường bị nghẽn, gói thăm dò đi chậm hơn, mùi trên đường đó yếu đi, và lưu lượng tự dạt sang đường khác. Hướng tiếp cận này được nghiên cứu nhiều trong giới học thuật, dù các mạng thương mại thường dùng giao thức định tuyến khác.

Tối ưu bầy hạt: học từ bạn tốt nhất

Năm 1995, nhà tâm lý học xã hội James Kennedy và kỹ sư điện Russell Eberhart công bố thuật toán tối ưu bầy hạt (Particle Swarm Optimization). Họ bắt đầu từ việc mô phỏng chuyển động của đàn chim, rồi nhận ra mô phỏng ấy có thể dùng để tìm điểm tốt nhất trong một không gian.

Mỗi "hạt" là một lời giải thử, có vị trí và vận tốc. Ở mỗi bước, hạt điều chỉnh hướng bay theo ba lực:

  • Quán tính: giữ phần nào hướng đang bay.
  • Kinh nghiệm cá nhân: kéo về điểm tốt nhất mà chính nó từng đi qua.
  • Kinh nghiệm xã hội: kéo về điểm tốt nhất mà cả bầy, hoặc nhóm hàng xóm của nó, từng tìm thấy.

Sự cân bằng giữa "tin mình" và "tin bầy" quyết định tính cách thuật toán. Tin bầy quá nhiều, tất cả dồn về một chỗ quá sớm và có thể bỏ lỡ vùng tốt hơn ở xa. Tin mình quá nhiều, bầy tản mát và hội tụ chậm. Người dùng chỉnh các hệ số để có tỷ lệ phù hợp, giống người điều phối quyết định cho đội hiện trường tự xoay xở bao nhiêu và bám theo chỉ đạo chung bao nhiêu.

Đàn ong nhân tạo: chia vai thăm dò và khai thác

Năm 2005, nhà nghiên cứu Thổ Nhĩ Kỳ Derviş Karaboğa đề xuất thuật toán đàn ong nhân tạo (Artificial Bee Colony). Thuật toán chia "ong ảo" thành ba vai, mô phỏng cách đàn ong mật phân công đi lấy mật:

VaiỞ đàn ong thậtTrong thuật toán
Ong đang khai thácBay đi bay về một vạt hoa đã biếtCải thiện dần một lời giải đang có
Ong quan sátĐứng trong tổ xem điệu nhảy, chọn vạt hoa được quảng bá mạnhDồn thêm công sức vào lời giải tốt hơn
Ong trinh sátBay đi tìm vạt hoa mớiBỏ lời giải đã cạn tiềm năng, thử một điểm ngẫu nhiên mới

Cấu trúc này giải quyết một thế khó muôn thuở của mọi hệ tìm kiếm: cân bằng giữa khai thác cái đã biết là tốt và thăm dò cái chưa biết. Ong thật làm điều đó nhờ điệu nhảy lắc mông; thuật toán làm bằng xác suất.

Bầy robot: khi tác tử có thân thể

Trí tuệ bầy đàn không chỉ nằm trong phần mềm. Năm 2014, Michael Rubenstein, Alejandro Cornejo và Radhika Nagpal ở Đại học Harvard công bố trên tạp chí Science một bầy 1.024 robot nhỏ gọi là Kilobot. Mỗi robot chỉ to cỡ đồng xu lớn, di chuyển bằng cách rung trên ba chân mảnh, và chỉ liên lạc được với các robot ngay cạnh bằng tia hồng ngoại. Không robot nào biết vị trí tuyệt đối của mình.

Vậy mà khi được cho một hình mẫu, cả bầy tự xếp thành hình ấy, chẳng hạn một ngôi sao hay một chiếc cờ lê, qua nhiều giờ. Vài robot đứng làm mốc gốc; những robot khác bò dọc theo mép bầy, tự ước lượng vị trí dựa trên khoảng cách tới hàng xóm, và dừng lại khi thấy mình đã nằm trong hình. Có robot kẹt, có robot đi lạc, nhưng cả bầy vẫn tự sửa sai. Cũng trong năm đó, nhóm robot TERMES xây công trình theo nguyên lý của mối cũng được công bố trên cùng tạp chí.

Bài học từ Kilobot là sự khác biệt giữa "chính xác từng cá thể" và "đúng ở cấp toàn bầy". Robot rẻ và kém chính xác, nhưng quy tắc tốt cùng số lượng lớn bù lại được.

Đừng để ẩn dụ che mất nội dung

Sau thành công của đàn kiến và bầy hạt, hàng loạt thuật toán mới mang tên loài vật ra đời: đom đóm, dơi, chim cu, sói xám, cá voi và nhiều nữa. Năm 2015, nhà nghiên cứu vận trù học Kenneth Sörensen viết một bài phê bình được nhắc tới nhiều, cho rằng không ít thuật toán trong số này thực ra chỉ đổi tên những ý tưởng đã có, khoác lên một câu chuyện về động vật, mà không đóng góp gì thật sự mới.

Lời phê bình này đáng nhớ với người tò mò: điều làm nên giá trị của một thuật toán là cơ chế bên trong như phản hồi dương, bay hơi, cân bằng thăm dò – khai thác, chứ không phải cái tên con vật. Đàn kiến và bầy hạt vẫn đứng vững vì chúng có những cơ chế rõ ràng và được kiểm chứng trên nhiều bài toán.

Góc nhìn hôm nay: bầy đàn và người điều phối

Những thuật toán này gợi ý một cách nghĩ hữu ích cho bất kỳ ai tổ chức công việc nhóm. Thay vì cố tính trước mọi thứ ở trung tâm, có thể để nhiều người cùng thử, chia sẻ kết quả tốt, và để thông tin cũ tự phai. Nhưng chúng cũng nhắc giới hạn: hệ bầy đàn tìm lời giải "đủ tốt", chậm hơn khi cần chính xác tuyệt đối, và khó giải thích vì sao ra kết quả. Trong điều phối khẩn cấp, nơi mỗi quyết định phải truy được trách nhiệm, các trung tâm điều hành vẫn giữ vai trò quyết định, còn ý tưởng bầy đàn thường được dùng ở khâu hỗ trợ như gợi ý phân bổ.

Muốn thử tay, nhiều thư viện lập trình mã nguồn mở có sẵn các thuật toán đàn kiến và bầy hạt, kèm ví dụ minh họa. Trong hệ đã có bài riêng về ba luật mô phỏng bầy chim Boids, là điểm khởi đầu nhẹ nhàng để hiểu vì sao vài quy tắc đơn giản sinh ra chuyển động bầy đàn.

Câu hỏi thường gặp

Trí tuệ bầy đàn là gì?

Trí tuệ bầy đàn là hành vi thông minh ở cấp tập thể nảy sinh từ nhiều cá thể đơn giản tương tác với nhau theo quy tắc cục bộ, không có điều khiển trung tâm. Trong tin học, nó là tên chung cho các thuật toán lấy cảm hứng từ kiến, ong, chim, cá.

Thuật toán đàn kiến do ai đề xuất?

Thuật toán tối ưu đàn kiến do Marco Dorigo đề xuất năm 1992 trong luận án tiến sĩ ở Đại học Bách khoa Milano. Nó dùng kiến ảo rải mùi ảo lên lời giải tốt, kèm cơ chế bay hơi để bỏ dần lựa chọn kém.

Tối ưu bầy hạt hoạt động thế nào?

Mỗi hạt là một lời giải thử, bay trong không gian tìm kiếm và điều chỉnh hướng theo ba lực: quán tính, điểm tốt nhất mình từng gặp và điểm tốt nhất cả bầy từng gặp. Thuật toán do James Kennedy và Russell Eberhart công bố năm 1995.

Kilobot là gì?

Kilobot là những robot nhỏ do nhóm của Radhika Nagpal ở Đại học Harvard phát triển. Năm 2014, một bầy 1.024 Kilobot tự xếp thành các hình định trước chỉ nhờ liên lạc với robot ngay bên cạnh, kết quả đăng trên tạp chí Science.

Thuật toán bầy đàn có tìm được lời giải tốt nhất không?

Không đảm bảo. Chúng là phương pháp tối ưu gần đúng, thường tìm được lời giải tốt trong thời gian hợp lý cho bài toán rất lớn, nhưng không chứng minh được đó là lời giải tốt nhất tuyệt đối.

Mở app Điều Phối

Nghe cuộc gọi, điều đúng xe, tới kịp lúc

Mở app Điều Phối

Bài viết liên quan

Mở app Điều Phối

Nghe cuộc gọi, điều đúng xe, tới kịp lúc

Mở app Điều Phối Xem app khác