P. 1
Thuật giải di truyền-filenop

Thuật giải di truyền-filenop

|Views: 268|Likes:
Được xuất bản bởiHuynh Minh Canh

More info:

Published by: Huynh Minh Canh on Nov 27, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

04/03/2013

pdf

text

original

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

Trong mỗi nhiễm sắc thể có chứa nhiều gen. thành công cho sự thích nghi bên trong các hệ thống sinh học.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. Toán tử di truyền sẽ được thực thi trên đối tượng này. Các kiểu hình này khi mã hoá gọi là kiểu gen. Mỗi cá thể trong kiểu gen có nhiều nhiễm sắc thể. do John Holland (1975) và Goldberg (1989) đề xuất và phát triển.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. 3. trái lại chỉ chú ý đến giải pháp cho vấn đề. . tức làm thay đổi giá trị của gen gọi là đột biến.Viết tắt là GAs). 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 đề. hay tìm điều kiện tối ưu cho việc điều hành. Một ánh xạ từ kiểu hình sang kiểu gen gọi là quá trình mã hoá. Nhóm thực hiện: 14 Trang 2 . b) Các đặc trưng cơ bản của GA: .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. 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. 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 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. 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. -GAs không để ý đến chi tiết vấn đề. 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 1: Chọn mô hình để biểu diễn vấn đề thông qua các dãy ký hiệu (số. và phân nhóm những giải pháp có được. 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.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. 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ể.Thuật giải di truyền: a) Tổng quan: -Thuật giải di truyền (Genetic Algorithms. thay vì xác định như toán học giải tích.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. Toán tử thay đổi ngẫu nhiên cấu trúc cá thể. Độ 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 . ở đó ả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.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: . . Toán tử kết hợp ngẫu nhiên hai cá thể được chọn gọi là lai ghép. .

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.Bước 3: Dựa trên các số thích nghi. Khởi tạo P(t) Tính độ thích nghi cho các cá thể thuộc P(t).Các toán tử di truyền: a.Bước 4: Tính số thích nghi cho các giải pháp mới sinh sản.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn . Khi (điều kiện dừng chưa thỏa) lặp t = t + 1. loại bỏ giải pháp kém nhất.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ả. . . chỉ giữ lại một số nhất định các giải pháp (có độ thích nghi cao). 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. 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 .Toán tử lai ghép : Giống như trong sinh học. Chọn lọc P(t) Lai P(t) Đột biến P(t) Hết lặp Kết thúc 4. 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. .

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. toán tử đột biến có nhiệm vụ phá vỡ sự cân bằng đó.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ó. 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 đó. cá thể con 1. Code của một toán tử đột biến : int dotbien(double p. Nó có thể giúp cho quần thể phát triển đi lên nếu đúng mức. 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. 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.03% nhưng đóng một vai trò rất lớn đến sự tiến hoá của quần thể. cá thể ) { // tạo ngẫu nhiên từ 0 --> 1 double n = makeRand(). toán tử đột biến đóng vai trò như là người mở đường. return 1.97%. cá thể mẹ. Thông thường.. Trong tự nhiên xác suất đột biến thường rất thấp khoảng 0. 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. // nếu không thoả ngưỡng thì không đột biến if (n > p) return 0. Trong GA cũng vậy. đa dạng hơ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. cá thể cha. // đột biến tại gen thứ pos . b. cá thể con 2) { // tạo ngẫu nhiên từ 0 --> 1 double n = makeRand(). // nếu không thoả ngưỡng thì không lai ghép if (n > p) return 0..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ẹ. 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ú.03%) nhưng đóng một vai trò rất quan trọng đến sự tối ưu của cá thể. hay không có tác dụng nếu quá thấp Nhóm thực hiện: 14 Trang 4 . } Chính vì những đặc điểm như trên.. 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.. // thực hiện đột biến int pos = rand() % length_of_individual. Code mẫu của nó có thể có dạng như sau : int laighep(double pCross. việc chọn các toán tử đột biến cần phải cẩn thận. // thực hiện lai ghép . Mỗi toán tử lai ghép sẽ có xác suất xảy ra tương ứng của 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ẹ.

cá thể được chọn) { // chọn ngẫu nhiên k cá thể từ quần thể. Đó là cá thể được chọn. i < k ..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.1 Hình ảnh các toán tử lai ghép và đột biến c. Code của nó có dạng như sau : void K_Select(int k. i ++) { // chọn ngẫu nhiên cá thể thứ i K_individuals[i] = quần thể[ rand() % length_of_quần_thể] . 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. + Một số vấn đề về chọn tập tái sinh Nhóm thực hiện: 14 Trang 5 .Ở đâ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. Sau khi đã chọn lọc. 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. quần thể. } // 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. Nhiều phép chọn lọc được đề ra theo nguyên lý này.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. Thông thường k sẽ được chọn trong khoảng từ 5 -> 8. Theo nguyên lý tiến hoá quần thể.(tuỳ các bạn quyết định). 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. } Tham số k đóng vai trò xác định số cá thể trong một quần thể con. for (int i = 0 . 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..

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

6.2] thành ít nhất 3*10^6 hoảng có kích thước bằng nhau..+ *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ụ. nghĩa là tìm x0 sao cho: F(x0)>=f(x) với mọi x thuộc [-1.0+2288967*3/4194303=0. nhiễm sắc thể v biểu diễn giá trị thực x như đã nói ở trên. c. 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. ) từ cơ số 2 sang cơ số 10: (< ....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ất cả 22 bit của mỗi nhiễm sắc thể đều được tạo ngẫu nhiên. ) thành số thực x trong đoạn [-1.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn . hàm lượng giá đóng vai Nhóm thực hiện: 14 Trang 7 . nhiễm sắc thể (1000101110110101000111) biểu diễn số 0.2] để f có gía trị lớn nhất.2] Bây giờ ta dùng thuật giải di truyền để giải bài toán nói trên.2] được thực hiện qua 2 bước sau: + đổi chuỗi nhị phân ( .. -1 và 2 cho mỗi cận b. Đ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 ( . Chiều dài của vecto phụ thuộc vào độ chính xác cần có. với yêu cầu về độ chính xác 6 số lẻ như thế phải chia đoạn [-1..Để kết thúc vòng lặp GAs.. ta tính chính xác đến 6 số lẻ.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. nghĩa là tìm 1 điểm trong đoạn [-1..Điều kiện dừng của giải thuật: .2] Bài toán có nghĩa là tìm x trong đoạn [-1.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.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ườ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.0 . x thuộc [-1.. Miền giá trị của x có thể có chiều dài 2-(-1)=3.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ể.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. trong ví dụ này. >)= *2^0+. a.637197 vì X'=(1000101110110101000111)=2288967 Và x=1.

343555.850773 Đúng như chúng ta mong đợi. 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.Các tham số: Đối với bài toán đặt biệt này. Bây giờ.630818 và f(x"3)=2. x2=-0. còn xác xuất đột biến Pm=0. Giả định rằng gen thứ 5 trong nhiễm sắc thể v3 được chọn để đột biến.637197. 3 nhiễm sắc thể: V1=(1000101110110101000111). 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. đánh giá từng lời giải theo độ thích nghi của chúng. Đ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.250650 ta sẽ minh hoạ phép lai trên các nhiễm sắc thể v2 và v3. V2=(0000001110000000010000). xmax=1. Ví dụ. khá hơn giá trị f(x3)=2.940965 f(v'3)=f(1.078878 Eval(x3)=f(x3)=2. 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. độ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. 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. xác xuất lai Pc=0. ta dùng các tham số sau đây: kích thước quần thề pop-size=50.459245 chú ý rằng con thứ 2 thích nghi hơn cả cha lẫn mẹ nó e.721638 và f(x'3)=0.586345 Eval(x2)=f(x2)=0.85 1 chút.250650 Rõ ràng.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. V3=(1110000000111111000101) Tương ứng với các giá trị x1=0. Cột bên trái cho biết thế hệ được xem xét.Các phép toán di truyền: Trong giai đoạn tiến hoá quần thể.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.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ệ.666028)=2. 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.Tìm hiểuThuật giải di truyền(GAs) GVHD: Nguyễn Lương Anh Tuấn trò môi trường. Và có độ thích nghi tương ứng: Eval(x1)=f(x1)=1. và cột bân phải cho biết giá trị hàm f. Kết quả 150 thế hệ Nhóm thực hiện: 14 Trang 8 . f. 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. 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.85+ e và f(xmax) lớn hơn 2.082257.627888.958973. và x3=1.998113)=0.

Tạo ngẫu nhiên 5 mảng tương ứng với 5 cá thể ban đầu của quần thể. .Chọn độ thích nghi chính là độ dài đường đi. Bước 3: gán độ thích nghi cho cá thể (tức đường đi đó). Ví dụ: [ABCDE]=15. .0 đến 1. . [CBDAE]=16 . Ví dụ: [ABCDE] [AEBCD] [CBDAE] [EADCB] [BCDEA] Bước 2: tính độ dài của mỗi đường đi.344251 40 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 số lượng cá thể là 5 // vậy quần thể gồm có 5 cá thể.E}. Tìm đường đi ngắn nhất? Giả sử tập các thành phố là {A. .Và cho di truyền tới thế hệ thứ 50.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. cũng như cấu trúc cần thiết cho giải thuật di truyền..345087 51 2. 30% đột biến. .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 .250003 8 2.[EADCB]=20.B.441942 6 2.C. 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.250363 12 2..850217 145 2. thông tin.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 .329077 39 2. Ví dụ: [ABCDE] = AB + BC + CD + DE + EA = .D..0 nếu random < 0. mỗi thành phố chỉ ghé thăm một lần duy nhất.738930 Ví dụ 2: Bài toán người du 99 2. [AEBCD]=14.850227 Bài toán: Một người du lịch muốn đi qua tấc cả các thành phố. * 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ố.849246 lịch 137 2.250284 10 2.250283 9 2.Chọn tỷ lệ sử dụng toán tử là 70% kết hợp. [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 .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.

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.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.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. 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. vd được 1 và 2 ví trí 1. 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 . //the end Nhóm thực hiện: 14 Trang 10 . 2 của dad là EA lưu vào baby2 được [EA ]. 2 của mum là BD lưu vào baby1 được [BD ].

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->