1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thuật toán di truyền và ứng dụng giải bài toán người du lịch

26 0 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

Nội dung

Trường Đại học Hải Phịng Khoa: Cơng nghệ thơng tin Đề tài: Thuật tốn di truyền ứng dụng giải toán người du lịch    Giảng viên hướng dẫn:  Th.S LÊ ĐẮC NHƯỜNG          Sinh viên:   Bùi Thị Hạnh Hoàng T.Thu Hiền Trần Hồng Lân TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Nội dung trình bày: TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *Khái niệm,   Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm  tìm kiếm giải pháp thích hợp cho các bài tốn tối ưu tổ hợp   Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận  dụng các nguyên lý của tiến hóa như  di truyền, đột biến, chọn lọc  tự nhiên, và trao đổi chéo TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Tư tưởng   Mơ phỏng các hiện tượng tự nhiên: Kế thừa và đấu tranh sinh tồn  để cái tiến   Ví dụ: Sự tiến hóa của lồi thỏ Thỏ đần  độn, chậm  chạp Thỏ thông  minh nhanh  nhẹn Thỏ bị  loại bỏ TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Tư tưởng Quần thể ban đầu TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Tư tưởng Quá trình sinh sản TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Tư tưởng Quần thể cịn lại, bắt đầu q trình sinh  sản TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Tư tưởng Thế hệ sau TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Lưu đồ Lưu đồ thuật giải cơ bản TIEU LUAN MOI download : skknchat123@gmail.com moi nhat I: Giải thuật di truyền         *  Các toán tử di truyền Biểu  diễn cá  thể Văn bản  của bạn Đột biến Hàm  mục  tiêu Toán tử di truyền Lai tạo Lai  ghép TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 10 I: Giải thuật di truyền         *  Các tốn tử di truyền Lai ghép    Phép lai là q trình hình thành NST mới trên cơ sở NST cha mẹ,       bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều) NST  cha    mẹ khác nhau.  v ü Lai ghép một điểm cắt, nhiều  điểm cắt ü Lai ghép nhiều  đoạn Đột biến  Đột biến là tình trạng NST con khơng có một (hoặc một số) tính  trạng có trong mã di truyền của cha mẹ.  v TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 12 I. Giải thuật di truyền         *  Đấu tranh sinh  tồ n Chọn những NST từ quần thể kết quả theo một quy  tắc nào đó thay thế cho cha mẹ để sinh ra thế hệ mới Phương thức  Phương thức 2 Tráo đổi hồn tồn  05 cha mẹ bằng con Tráo đổi ngẫu nhiên (k  con mẹ thay thế  bằng  k  con con) Phương thức 3 TT Chọn những cá thể  ưu tú nhất TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 13 I. Giải thuật di truyền         *  Các bước giải thuật             Bước 1: Chọn mơ hình cho giải pháp của vấn đề        Bước 2: Chỉ định cho mỗi giải pháp một ký hiệu        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 (reproduction) 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 (cross over), đột biến (mutation)       Bước 5: Tính các hệ số thích nghi cho các giải pháp mới là loại bỏ những giải pháp kém nhất để chỉ  cong 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 thứ 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  TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 14 II. Bài toán người du lịch         *Định nghĩa, độ phức tạp Định nghĩa Cho  đồ  thị  đầy  đủ  n  đỉnh  vơ  hướng,  có    trọng                                                                                                                          s ố G = (V, E). Tìm  chu trình  v1→v2     →…→vn→v1 Với vi  Một  chu  trình  như  vậy  cịn  gọi  là  chu  trình  Hamilton vĐộ phức tạp Bài tốn TSP thuộc lớp bài tốn NP­Khó    v TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 15 III: Giải bài tốn người du lịch bằng GA v     Mã hóa bài tốn (đồ thị) Ø Ø Ø Đồ thị được mã hóa bằng danh sách mảng các điểm và tọa độ Trọng số trong cột đầu tiên là số hiệu của đỉnh, trọng số thứ hai  là hồnh độ, trọng số thứ ba là tung độ.  Khoảng cách giữa hai đỉnh M(xi, yi) N(xj, yj) đồ thị (trọng số cho cạnh) tính theo công thức: TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 16 III: Giải bài tốn người du lịch bằng GA v     Mã hóa bài tốn(chu trình) Ø Chu trình được mã hóa bằng mảng có thứ tự các số hiệu của  đỉnh. Ví dụ chu trình của đồ thị 10 đỉnh:  ØMỗi chu trình có thơng số về chi phí của tồn bộ chu trình đó. Chi  phí này được tính bằng tổng độ dài tất cả các cạnh tạo nên chu trình ØMỗi chu trình là 1 lời giải, trong giải thuật di truyền coi đó như  1cá thể.  TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 17 III: Giải bài tốn người du lịch bằng GA v   Khởi tạo quần thể Ø Ø Ø Ø Quần thể ban đầu được khởi tạo bằng cách sinh ngẫu nhiên các  chu trình Số lượng chu trình khởi tạo là một nửa số kích thước cá thể tối  đa  Việc sinh ngẫu nhiên sử dụng hàm đột biến Số kích thước cá thể tối đa có thể tùy biến theo số đỉnh của đo  thị cần giải, ở đây chọn kích thước quần thể là 100 cá thể.  TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 18 III: Giải bài toán người du lịch bằng GA v   Lai ghép Ø Ø Ø Ø  Lai ghép thực hiện trên 2 cá thể đầuvào  Thực hiện lai ghép 1 điểm cắt với vị trí cắt là ngẫu nhiên :  Cắt từ điểm p đến hết chu trình của C2 đưa vào chu trình mới, lấy một ví dụ p = 5:  Xét từ đầu đến cuối chu trình 1, nạp dần các điểm chưa có trong con lai theo thứ tự  duyệt ta được chu trình mới: TIEU LUAN MOI download : skknchat123@gmail.com moi nhat 19 Tính lại chi phí cho chu trình mới: Private circle hybridize( circle cl, circle c2) {          Circle child =new circle (c1.getLength()); Random rand = new Random(); int  p =rand.nextInt(child.length ­ 1) int I =0;j =0,k=0; For(i =p; i

Ngày đăng: 30/10/2022, 17:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w