Tìm hiểuThuật giải di truyền(GAs

)
Trường ĐH GTVT TP Hồ Chí Minh Nhóm lớp:01 Nhóm 14

GVHD: Nguyễn Lương Anh Tuấn

Danh Sách Nhóm: Sinh viên 1: Trần Xuân Diệu Sinh viên 2: Phạm Anh Tuấn MSSV:0751120078 MSSV:0751120127

Sinh viên 3: Dương Hoàng Nguyên MSSV:0751120.....

1.Lý do chọn đề tài : Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài toán trong thời gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin / vét cạn ( tìm kiếm trên danh sách, trên cây hoặc đồ thị ) sử dụng phương pháp đơn giản nhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để áp dụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn. Tuy nhiên, trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian tìm kiếm lớn. Thuật giải di truyền (genetic algorithm) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng. Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp. Chính vì vậy, thuật giải di truyền đã trở thành đề tài nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tiễn. Với những lý do trên, em chọn đề tài: “Thuật giải di truyền”. 2.Động lực nghiên cứu: Thuật giải di truyền cung cấp một phương pháp học được thúc đẩy bởi sự tương tự với sự tiến hóa sinh học. Thay vì tìm kiếm các giả thuyết từ tổng quát đến cụ thể hoặc từ đơn giản đến phức tạp, GAs tạo ra các giả thuyết kế tiếp bằng cách lặp việc đột biến và việc tái hợp các phần của giả thuyết được biết hiện tại là tốt nhất .Ở mỗi bước, một tập các giả thuyết được gọi là quần thể hiện tại được cập nhật bằng cách thay thế vài phần nhỏ quần thể bởi cá thể con của các giả thuyết tốt nhất ở thời điểm hiện tại. Sự phổ biến của GAs được thúc đẩy bởi các yếu tố sau:

Nhóm thực hiện: 14

Trang 1

Thuật giải GA có thể được thực hiện song song và có thể tận dụng thành tựu của phần cứng máy tính mạnh. Nhóm thực hiện: 14 Trang 2 . do John Holland (1975) và Goldberg (1989) đề xuất và phát triển. 3.Bước 1: Chọn mô hình để biểu diễn vấn đề thông qua các dãy ký hiệu (số. GA có thể tìm kiếm trên các không gian giả thuyết có các phần tương tác phức tạp.Bước 2: Tìm hàm số thích nghi) và tính số thích nghi cho từng giải pháp.GAs lập luận mang tính chất ngẫu nhiên để tìm giải pháp tối ưu cho những vấn đề phức tạp. . Chính hàm số thích nghi là giúp GAs tìm giải pháp tối ưu trong rất nhiều giải pháp có thể.Thuật giải di truyền: a) Tổng quan: -Thuật giải di truyền (Genetic Algorithms. Mỗi cá thể trong kiểu gen có nhiều nhiễm sắc thể. và phân nhóm những giải pháp có được. Toán tử di truyền sẽ được thực thi trên đối tượng này. Trong mỗi nhiễm sắc thể có chứa nhiều gen.GAs được sử dụng đặc biệt cho nhứng bài toán yêu cầu tìm kiếm tối ưu toàn cục với không gian tìm kiếm lớn và không thể kiểm soát nhờ khả năng duyệt qua không gian tìm kiếm đại diện mà không thực sự đi qua từng điểm của toàn bộ không gian c)Một giải thuật di truyền đơn giản bao gồm các bước sau: . ở đó ảnh hưởng của mỗi phần lên toàn thể độ thích nghi giả thuyết khó có thể mô hình.Toán tử xác định cá thể trong thế hệ hiện tại được giữ lại trong thế hệ kế tiếp được gọi là chọn lọc. Độ thích nghi là thước đo khả năng sống sót và phát triển của cá thể trong môi trường . . Toán tử kết hợp ngẫu nhiên hai cá thể được chọn gọi là lai ghép. hay tìm điều kiện tối ưu cho việc điều hành. Tuy nhiên đây là hình thức ngẫu nhiên có hướng dẫn bởi trị số thích nghi. Một ánh xạ từ kiểu hình sang kiểu gen gọi là quá trình mã hoá. Các kiểu hình này khi mã hoá gọi là kiểu gen.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn  Tiến hóa là một phương pháp mạnh. -GAs không để ý đến chi tiết vấn đề. b) Các đặc trưng cơ bản của GA: . tức làm thay đổi giá trị của gen gọi là đột biến. . là thuật giải tìm kiếm dựa trên cơ chế chọn lọc và di truyền tự nhiên. Mỗi đặc trưng di truyền cụ thể được quy định bởi giá trị và vị trí của gen trong nhiễm sắc thể. chữ hoặc hỗn hợp) để biểu diễn cho mỗi giải pháp của vấn đề và số cá thể (số lời giải chấp nhận được) trong quần thể biểu diễn vấn đề. thay vì xác định như toán học giải tích. Toán tử thay đổi ngẫu nhiên cấu trúc cá thể. thành công cho sự thích nghi bên trong các hệ thống sinh học.Tập hợp tất cả các lời giải trong không gian tìm kiếm được gọi là kiểu hình.Viết tắt là GAs). trái lại chỉ chú ý đến giải pháp cho vấn đề. Thuật giải này sử dụng các nguyên lý di truyền về sự thích nghi và sự sống các cá thể thích nghi nhất trong tự nhiên.

Bước 6: Nếu tìm được giải pháp tối ưu hay hết thời hạn ấn định thì dừng và xuất kết quả. SƠ ĐỒ TỔNG QUÁT CỦA THUẬT GIẢI DI TRUYỀN Cấu trúc thuật giải di truyền tổng quát: Bắt đầu t =0.Toán tử lai ghép : Giống như trong sinh học.Bước 5: Nếu chưa tìm được giải pháp tối ưu hoặc chưa đến thời hạn (hay số thế hệ) ấn định thì trở lại bước 3 để tìm giải pháp mới. Khi (điều kiện dừng chưa thỏa) lặp t = t + 1. . việc lai ghép giữa hai cá thể sẽ cho ra cá thể con thừa hưởng Nhóm thực hiện: 14 Trang 3 .Bước 4: Tính số thích nghi cho các giải pháp mới sinh sản. Khởi tạo P(t) Tính độ thích nghi cho các cá thể thuộc P(t).Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn .Các toán tử di truyền: a. thực hiện việc sinh sản và tiến hoá (gồm: lai ghép và đột biến) các giải pháp. . loại bỏ giải pháp kém nhất. . chỉ giữ lại một số nhất định các giải pháp (có độ thích nghi cao). Chọn lọc P(t) Lai P(t) Đột biến P(t) Hết lặp Kết thúc 4.Bước 3: Dựa trên các số thích nghi.

Khả năng đột biến của mỗi cá thể trong một quần thể có xác suất đi kèm là pMutation. xác suất của toán tử đột biến không cao (nhưng cũng lớn hơn nhiều so với 0. toán tử đột biến có nhiệm vụ phá vỡ sự cân bằng đó. // thực hiện lai ghép .Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn một phần từ cá thể cha và một phần từ cá thể mẹ.03%) nhưng đóng một vai trò rất quan trọng đến sự tối ưu của cá thể. cá thể cha. cá thể con 1. cá thể mẹ. b. // đột biến tại gen thứ pos . Code của một toán tử đột biến : int dotbien(double p. Trong tự nhiên xác suất đột biến thường rất thấp khoảng 0. // nếu không thoả ngưỡng thì không lai ghép if (n > p) return 0. hay không có tác dụng nếu quá thấp Nhóm thực hiện: 14 Trang 4 .03% nhưng đóng một vai trò rất lớn đến sự tiến hoá của quần thể. việc chọn các toán tử đột biến cần phải cẩn thận. Tuy nhiên không phải là thừa hưởng một nửa từ cá thể cha và một nửa từ cá thể mẹ.. toán tử đột biến đóng vai trò như là người mở đường. Mỗi toán tử lai ghép sẽ có xác suất xảy ra tương ứng của nó. nhưng cũng có thể làm cho các cá thể bị thay đổi liên tục nếu quá cao. return 1. Việc xác định xác suất lai ghép hoàn toàn phụ thuộc vào vấn đề cần giải quyết. cá thể ) { // tạo ngẫu nhiên từ 0 --> 1 double n = makeRand(). Tuy nhiên thực tế khi áp dụng vào các bài toán trên máy tính xác suất này không cao đến mức đó. return 1. Các nghiên cứu sinh học đã chỉ ra rằng trong tự nhiên xác suất của việc lai ghép thường rất cao 99. Trong GA cũng vậy. Thông thường. Nghĩa là khi các toán tử lai ghép được dùng nhiều dẫn đến sự lặp đi lặp lại các cá thể có độ thích nghi gần gần nhau. Code mẫu của nó có thể có dạng như sau : int laighep(double pCross.97%. thúc đẩy quần thể phát triển đi lên (hoặc đi xuống) nhưng các cá thể sẽ phong phú. Nó có thể giúp cho quần thể phát triển đi lên nếu đúng mức... } Chính vì những đặc điểm như trên. cá thể con 2) { // tạo ngẫu nhiên từ 0 --> 1 double n = makeRand(). đa dạng hơn. // thực hiện đột biến int pos = rand() % length_of_individual..Toán tử đột biến (Mutation): Mỗi cá thể khi được sinh ra đều có khả năng đột biến trên một(hay nhiều) gen của nó. // nếu không thoả ngưỡng thì không đột biến if (n > p) return 0.

Thông thường k sẽ được chọn trong khoảng từ 5 -> 8. + Một số vấn đề về chọn tập tái sinh Nhóm thực hiện: 14 Trang 5 . Đó là cá thể được chọn.. } // chọn cá thể tốt nhất (theo hàm thích nghi) trong tập k cá thể vừa chọn ngẫu nhiên trên.. Vấn đề là hai cá thể đó được chọn như thế nào ? Mục đích của toán tử chọn lọc sẽ chọn ra các cá thể để được lai ghép. Cá thể tốt nhất trong quần thể con sẽ được chọn cho việc di truyền cho thế hệ sau. Nhiều phép chọn lọc được đề ra theo nguyên lý này. Sau khi đã chọn lọc.Ở đây tôi chỉ trình bày một toán tử chọn lọc tương đối được dùng phổ biến là K-tournament. các cá thể có độ thích nghi cao hơn sẽ càng có khả năng di truyền lại cho các thế hệ sau. i ++) { // chọn ngẫu nhiên cá thể thứ i K_individuals[i] = quần thể[ rand() % length_of_quần_thể] . Theo nguyên lý tiến hoá quần thể. i < k .1 Hình ảnh các toán tử lai ghép và đột biến c. việc chọn cặp lai ghép có thể tiến hành ngẫu nhiên hay tuần tự từng cặp liên tiếp.(tuỳ các bạn quyết định). quần thể. } Tham số k đóng vai trò xác định số cá thể trong một quần thể con.Tìm hiểuThuật giải di truyền(GAs) Các chuỗi ban đầu Lai ghép điểm đơn: 1110100100 0 0000101010 1 1111100000 0 GVHD: Nguyễn Lương Anh Tuấn Các cá thể con 1110101010 1 0000100100 0 1100101100 0 0010100010 1 1000100010 0 0110101100 1 1110101100 0 Mặt nạ lai ghép Lai ghép điểm kép: 1110100100 0 0000101010 1 0011111000 0 Lai ghép đồng nhất: 1110100100 0 0000101010 1 0110010110 0 Đột biến điểm: 1110100100 0 Bảng 4. for (int i = 0 .Toán tử chọn lọc (Selection): Một toán tử lai ghép (crossover) cần hai cá thể để thực hiện lai ghép. Code của nó có dạng như sau : void K_Select(int k. cá thể được chọn) { // chọn ngẫu nhiên k cá thể từ quần thể.

Thông thường trong các bài toán đơn giản hàm thích nghi chính là hàm tối ưu mà đề bài yêu cầu. hoặc là một hàm của biến quần thể. Giả sử quần thể của bạn ở thế hệ thứ i (i >= 0) là Q(i). . Do đó việc chọn hàm thích nghi phải xét đến vấn đề của bài toán và ngữ cảnh của bài toán đưa ra. Trong các bài toán thực tế thì có việc chứng minh chọn các hàm thích nghi nào là thích hợp là cần thiết. Trong thực tế. hàm thích nghi giống như là một hàm đánh giá độ tốt của cá thể. một cá thể dù thích nghi với môi trường cách nào đi nữa thì nó vẫn phải chết đi. một bên mong muốn quần thể ngày càng đa dạng hơn.Khi hàm mục tiêu gốc tăng hoặc bài toán đang xét cực đại của hàm u(x).khoảng 30% cá thể mới được "Ông trời" sinh ra. mà nó được "ông Trời" tạo ra ngẫu nhiên. có thể có những cá thể rất tốt của Q(i). Hàm thích nghi : Một cách trực quan. 5. chúng ta có thể cho cá thể đó sống bao lâu cũng được miễn sao nó thích nghi với môi trường. Ngược lại f(x)=0 . người ta thường chọn một tỉ lệ nhất định nào đó. do đó phải xây dựng ánh xạ hàm mục tiêu đang xét trong bài toán sang hàm thích nghi thông qua một hay nhiều lần ánh xạ. hoặc lớn nhất sau k vòng lặp. Quần thế của thế hệ thứ i+1.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn Trong tự nhiên. Nhóm thực hiện: 14 Trang 6 .Trong đó Cmax là tham số đầu vào . thông thường chiếm < 30%. thông thường < 5%. hàm thích nghi có thể được chuyển sang như sau: f(x) = Cmin + u(x) khi u(x) +Cmin >0 Ngược lại f(x)=0 . đột biến). Nó dùng để so sánh giữa hai cá thể cá thể nào tốt hơn. Một khuynh hướng nữa trong việc chọn tập tái sinh là làm phong phú quần thể bằng cách tạo ngẫu nhiên một số cá thể mới.khoảng 65% cá thể di truyền bởi Q(i) (thông qua việc lai ghép.khoảng 5% cá thể từ Q(i). Các cá thể mới này không được tạo ra bởi các cá thể từ thế hệ trước. các cá thể tốt nhất trong Q(i) được tái sinh ở Q(i+1). nếu muốn. có thể là trị tuyệt đối của u bé nhất trong quần thể hiện tại. ta có thể cho nó sống đến thế hệ sau. Q(i+1). -Vì hàm thích nghi phải nhận giá trị không âm.Trong đó Cmin là tham số đầu vào. Mục đích của nó là mong muốn quần thể hội tụ tối ưu nhanh nhất có thể. Hai vấn đề này bổ sung cho nhau : một bên mong muốn các cá thể tốt nhất của thế hệ trước vẫn được duy trì. Từ đó dẫn đến việc hội tụ của quần thể sớm hay chậm hay là mãi mãi. Nó chỉ có thể di truyền lại cho thế hệ sau thông qua việc lai ghép. Nếu bài toán tối ưu là cực tiểu một hàm mục tiêu g(x) thì việc chuyển hàm g(x) này sang hàm thích nghi f(x) để sử dụng trong GAs như sau: f(x) = Cmax . Nó giống như vấn đề nhân bản mà các bác "bác học thế giới" đang tranh cãi. giúp cho kết quả đạt được cuối cùng sẽ tối ưu hơn. Trong máy tính.g(x) khi g(x)< Cmax . . . đột biến (sinh sản). Như vậy. Cá thể nào tốt. hoặc trong k vòng lặp cuối cùng. Bởi vì nó ảnh hưởng trực tiếp đến các tham số và cách chọn các toán tử di truyền và các tham số của nó. Đó là tư tưởng chính của việc tái sinh. tỉ lệ các cá thể trong quần thể thế hệ thứ i+1 : Q(i+1) sẽ có dạng như sau : . Có thể lấy Cmax là giá trị g(x) lớn nhất trong quần thể hiện tại.

nhiễm sắc thể (1000101110110101000111) biểu diễn số 0.2] thành ít nhất 3*10^6 hoảng có kích thước bằng nhau.Biểu diễn Ta sử dụng 1 vecto nhị phân làm nhiễm sắc thể để biểu diễn các giá trị thực của biến x.2] Bây giờ ta dùng thuật giải di truyền để giải bài toán nói trên. với yêu cầu về độ chính xác 6 số lẻ như thế phải chia đoạn [-1.. nghĩa là tìm 1 điểm trong đoạn [-1.2] để f có gía trị lớn nhất.Trong một vài trường hợp hàm thích nghi có thể là nghịch đảo của hàm mục tiêu hoặc là sai số trung bình bình phương của các tập mẫu trong quần thể. Điều này có nghĩa là cần có 22 bit cho vecto nhị phân (nhiễm sắc thể): Ánh xạ biến chuỗi nhị phân ( . hàm lượng giá đóng vai Nhóm thực hiện: 14 Trang 7 ..2] Bài toán có nghĩa là tìm x trong đoạn [-1. c.+ *2^21=x' + tìm số thực x tương ứng x=-1+x'*3/(2^22-1) với -1 là cận dưới của miền giá trị và 3 là chiều dài của miền Ví dụ. Miền giá trị của x có thể có chiều dài 2-(-1)=3.0+2288967*3/4194303=0...Khởi động tạo quần thể: Tiến trình khởi tạo rất đơn giản: Ta tạo 1 quần thể các nhiễm sắc thể trong đó mỗi nhiễm sắc thể là 1 vecto nhị phân 22 bit... >)= *2^0+. x thuộc [-1..2] được thực hiện qua 2 bước sau: + đổi chuỗi nhị phân ( .0 . nghĩa là tìm x0 sao cho: F(x0)>=f(x) với mọi x thuộc [-1. a.Hàm lượng giá: Hàm lượng giá eval của các vecto nhị phân v chính là hàm f: Eval(v)=f(x) Trong đó. ) thành số thực x trong đoạn [-1.637197 Đương nhiên nhiễm sắc thể (000000000000000000000) và (1111111111111111111111) biểu diễn các cận của các miền.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn . tất cả 22 bit của mỗi nhiễm sắc thể đều được tạo ngẫu nhiên. ta tính chính xác đến 6 số lẻ. ) từ cơ số 2 sang cơ số 10: (< . trong ví dụ này. Ví dụ 1: Tối ưu hàm một biến Xét bài toán tối ưu không ràng buộc sau: Max F(x)=x*sin(10pi*x)+1. thường có thể chỉ định trước số thế hệ cần tạo ra sau đó kiểm tra lại độ thích nghi những phần tử tốt nhất bằng cách so sánh với bài toán ban đầu..Để kết thúc vòng lặp GAs.637197 vì X'=(1000101110110101000111)=2288967 Và x=1.Điều kiện dừng của giải thuật: . nhiễm sắc thể v biểu diễn giá trị thực x như đã nói ở trên. Chiều dài của vecto phụ thuộc vào độ chính xác cần có. -1 và 2 cho mỗi cận b. 6.2] sao cho tại đó f có giá trị lớn nhất Ta sẽ lần lượt bàn về 5 thành phần chính của thuật giải di truyền giải bài toán này..

01 lại là 1% 1 bit bất kì của 1 các thể bất kì trong quần thể bị đột biến. Giả định rằng gen thứ 5 trong nhiễm sắc thể v3 được chọn để đột biến. và x3=1. ta dùng các tham số sau đây: kích thước quần thề pop-size=50.25 nghĩa là cá thể v trong quần thể có 25% cơ hội được chọn để thực hiện phép lai.85 1 chút. V3=(1110000000111111000101) Tương ứng với các giá trị x1=0. xác xuất lai Pc=0.586345 Eval(x2)=f(x2)=0. Và đột biến này chính là thay đổi giá trị gen này: 0 thành 1 và 1 thành 0. x2=-0.Các tham số: Đối với bài toán đặt biệt này.Các kết quả thử nghiệm: Bảng dưới đây trình bày 1 số kết quả hàm mục tiêu f ở 1 số thế hệ. khá hơn giá trị f(x3)=2.666028)=2. Giả định điểm lai được chọn (ngẫu nhiên) ở vị trí thứ 6: v2=(00000|01110000000010000) v3=(11100|00000111111000101) v'2=(00000|00000111111000101) v'3=(11100|01110000000010000) các con này có độ thích nghi: f(v'2)=f(-0.721638 và f(x'3)=0.940965 f(v'3)=f(1. Và có độ thích nghi tương ứng: Eval(x1)=f(x1)=1. Kết quả 150 thế hệ Nhóm thực hiện: 14 Trang 8 . nếu gen thứ 10 được chọn để đột biến nhiễm sắc thể v3 thì v'"3=(1110000001111111000101) giá trị tương ứng x"3=1. xmax=1. Ví dụ.Các phép toán di truyền: Trong giai đoạn tiến hoá quần thể.078878 Eval(x3)=f(x3)=2. V2=(0000001110000000010000). Bây giờ. nhiễm sắc thể v3 là tốt nhất trong 3 nhiễm sắc thể này vì hàm lượng giá nó trả về giá trị cao nhất d. Nhiễm sắc thể tốt nhất sau 150 thế hệ là Vmax=(111001101000100000101) tương ứng với giá trị xmax=1. Như vậy sau đột biến v3 sẽ là: V'3=(1110100000111111000101) nhiễm sắc thể này biểu diễn giá trị x'3=1.082257.343555. 3 nhiễm sắc thể: V1=(1000101110110101000111).85+ e và f(xmax) lớn hơn 2. ta có thể dùng 2 phép toán di truyền cổ điển: đột biến và lai Như đã trình bày ở trên.850773 Đúng như chúng ta mong đợi.459245 chú ý rằng con thứ 2 thích nghi hơn cả cha lẫn mẹ nó e. và cột bân phải cho biết giá trị hàm f.637197. Điều này có nghĩa là đột biến cụ thể làm giảm khá nhiều giá trị của nhiễm sắc thể v3.998113)=0. f. còn xác xuất đột biến Pm=0. đột biến làm thay đổi 1 (số) gen (các vị trí trong 1 nhiễm sắc thể) với xác xuất bằng tốc độ đột biến.627888.958973. đánh giá từng lời giải theo độ thích nghi của chúng.250650 ta sẽ minh hoạ phép lai trên các nhiễm sắc thể v2 và v3.630818 và f(x"3)=2.250650 Rõ ràng.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn trò môi trường. Cột bên trái cho biết thế hệ được xem xét.

Ví dụ: [ABCDE] = AB + BC + CD + DE + EA = .Chọn số lượng cá thể là 5 // vậy quần thể gồm có 5 cá thể. 30% đột biến. Ví dụ: [ABCDE]=15..E}. Phần mô tả hoạt động GT di truyền: Bước 1: khởi tạo ngẫu nhiên quần thể ban đầu. . .Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn Thế hệ thứ Hàm lượng giá 1 1.344251 40 2.849246 lịch 137 2.5) vd: [CBDAE]=16 [EADCB]=20 [BCDEA]=21 so sánh độ thích nghi và chọn cá thể tốt nhất trong số đó Nhóm thực hiện: 14 Trang 9 .D.250003 8 2.0 nếu random < 0. mỗi thành phố chỉ ghé thăm một lần duy nhất.250363 12 2.850217 145 2. cũng như cấu trúc cần thiết cho giải thuật di truyền.441942 6 2.329077 39 2.Dùng cấu trúc mảng 5 phần tử để lưu trữ một cá thể (đường đi) ví dụ [BACDE] //vì yêu cầu là tìm đường đi mà.Chọn độ thích nghi chính là độ dài đường đi. . ..Và cho di truyền tới thế hệ thứ 50. Ví dụ: [ABCDE] [AEBCD] [CBDAE] [EADCB] [BCDEA] Bước 2: tính độ dài của mỗi đường đi. thông tin. [CBDAE]=16 .250284 10 2. [BCDEA]=21 Bước 4 và 5: Gọi chung là quá trình tiến hóa // do 2 phần này liên quan chặt với nhau nên mình gộp chung .850227 Bài toán: Một người du lịch muốn đi qua tấc cả các thành phố.Chọn tỷ lệ sử dụng toán tử là 70% kết hợp.0 đến 1.B. Bước 3: gán độ thích nghi cho cá thể (tức đường đi đó).giữ lại một cá thể tốt nhất : [AEBCD]=14 -Repeat cho đến khi đủ số lượng cá thể trong quần thể mới tức 5 cá thể +)chọn random một số từ 0.3 thì (dùng đột biến) chọn 1 cá thể (dùng giải thuật chọn cạnh tranh) //mô tả chọn ngẫu nhiên một số cá thể (từ 1 . .C. Tạo ngẫu nhiên 5 mảng tương ứng với 5 cá thể ban đầu của quần thể.345087 51 2.250283 9 2. Tìm đường đi ngắn nhất? Giả sử tập các thành phố là {A..738930 Ví dụ 2: Bài toán người du 99 2. [AEBCD]=14. * Mô tả áp dụng giải thuật di truyền giải quyết bài toán trên: //đầu tiên chúng ta xác định các thông số.[EADCB]=20.

2 của dad là EA lưu vào baby2 được [EA ]. lấy từng phần tử của dad: nếu có trong baby1 thì k thêm vào nếu k có thì k thêm vào -> baby1 = [BDEAC] ví trí 1.5 cho đến thế hệ thứ 50 rồi chọn cá thế tốt nhất làm lời giải bài toán. lấy từng phần tử của mum: nếu có trong baby2 thì k thêm vào nếu k có thì k thêm vào -> baby2 = [EACBD] lưu vào quần thể mới //kết thúc Repeat Giả sử đến đây ta có một qt là [AEBCD] [CADEB] [BECDA] [AEBCD] [CDEAB] thay vào quần cũ rồi lập lại bước 2 .Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn -> chọn [CBDAE]16 so sánh độ thích nghi với cá thể tốt nhất của thế hệ trước nếu tốt hơn thì chọn do đây là đời đầu nên chắc chắn tốt hơn-> chọn [CBDAE]=16 nếu không thỏa thì chọn lại đột biến hoán vị cá thể chọn: [CBDAE] -> [CBEAD] // hoán vị giữa D và E lưu vào quần thể mới nếu random > 0. vd được 1 và 2 ví trí 1. 2 của mum là BD lưu vào baby1 được [BD ].3 thì (dùng toán tử lai ghép) chọn 2 cá thể trong quần thể// phép chọn giống trên vd: được [BDCAE](mum) [EACDB](dad) dùng toán tử lai ghép không trùng gen // chọn 2 vị trí ngẫu nhiên. //the end Nhóm thực hiện: 14 Trang 10 .

Sign up to vote on this title
UsefulNot useful