search

Genetic Algorithm (TSP)

Thuật toán di truyền: Tiến hóa để tìm hành trình ngắn nhất qua tất cả thành phố.

Python Lab

Thực thi mô hình dựa trên trực quan hóa.

main.py
import random

# Bài toán TSP với 0 thành phố
cities = []

# Khởi tạo quần thể 50 cá thể
population = [random.sample(range(len(cities)), len(cities))
              for _ in range(50)]

# Tiến hóa qua nhiều thế hệ
for gen in range(100):
    population = evolve(population)  # Select → Crossover → Mutate

best = min(population, key=total_distance)
print(f"Hành trình tốt nhất: {best}")
// Kết quả (Output) sẽ xuất hiện ở đây khi nhấn Run...

biotechNguyên lý hoạt động

Genetic Algorithm mô phỏng quá trình tiến hóa tự nhiên của Darwin. Một quần thể cá nhân thi đấu, lai ghép, đột biến qua nhiều thế hệ để tìm giải pháp tối ưu.

TSP (Travelling Salesman Problem): Tìm hành trình ngắn nhất đi qua tất cả N thành phố đúng 1 lần rồi quay về gốc. Với N=10, có 3.628.800 tổ hợp!

loopChu kỳ tiến hóa

  • groupsSelection: Chọn cá thể tốt nhất (Hành trình ngắn) để "sinh sản".
  • merge_typeCrossover: Lai ghép 2 cha mẹ → Con kế thừa gen (đoạn đường) tốt.
  • shuffleMutation: Hoán đổi ngẫu nhiên 2 thành phố → Tránh mắc kẹt cục bộ.

codeTip lập trình

Hãy thêm thành phố bằng cách click vào canvas, sau đó nhấn "Tạo Quần thể" rồi "Tiến hóa" để xem hành trình ngắn dần qua các thế hệ!