CỦA GIẢI THUẬT GEN

Một phần của tài liệu đồ án tốt nghiệp giải thuật gen và một số bài toán về giải thuật gen (Trang 37 - 41)

I-SỰ CẢI TIẾN CỦA GIẢI THUẬT GEN:

1.Sự tiến hóa của giải thuật gen:

Qua các chương , những khái niệm cơ bản của GAs đã được đề cập ,tuy nhiên để GAs thực thi có hiệu quả hơn ,người ta đã thực hiên một số cải tiến GAs chuẩn này.Trước tiêncải tiến dựa trên chọn lọc các sơ đồ và sau đó là một số cải tiến trên toan tử gen.

a/Cải tiến trong việc chọn lựa các sơ đồ:

Việc chọn lọc các sơ đồ được sử dụng trong GAs chuẩn đó là lựa chọn trên bánh xe roulette .Những sơ đồ này là những thành viên tốt nhất nhưng có thể thất bại trong các lần sinh kế tiếp và có thể dẫn đến những lỗi ngẫu nhiên .Để cải thiện điều này , một vài phương pháp cải tiếnđược liên kết cùng với việc chọn lựa trên bánh xe roulette đã được tiến hành.

Chọn lọc ưu tú (elitist): Chiến thuật này nhằm sao chép lại thành viên tốt nhất trong một thế hệ và đưa nó vào trong thế hệ kế tiếp .Chiến thuật này có thể gia tăng tốc độ tôí ưu của một dân số bởinhững cá thể tốt và do đó không những cải thiện được việc tìm kiếmcục bộ mà còn làm cho GAs được thực hiện hoàn chỉnh hơn .

Chọn lọc khi lấy mẫu (Deterministic Sampling): Trong một sơ đồ ,xác suất chọn lọc thường được tính như sau : pselecti = fi /Σ fj .Sau đó số con cái ei trong một chuỗi Ai được tính bởi ei = n * pselecti .Mỗi chuỗi sẽ cấp phát một số con cái tùy thuộc vào giá trị ei .Những chuỗi còn lại cần phải điền cho đầy một dân số thì sẽ được lấy ra theo thứ tự từ đầu dân số đã được sắp xếp trước .

Lấy phần mẫu còn lại ngẫu nhiên có thay thế (Remainder Stochatic Sampling With Replacement) :Sau khi đã tính số con cái ei trong một sơ đồ đã được chọn lọc để lấy mẫu trong giai đoạn trên , thì phần nguyên của ei sẽ gán cho những cá thể có trong dân số đó ,còn phần lẻ của ei sẽ được sử dụng để tính trọng số trong việc chọn lựa trên vòng tròn bánh xe để sinh ra các cá thể còn lại.

Lấy mẫu còn lại ngẫu nhiên và không thay thế ( Remainder Stochatic Sampling Without Replacement ) :Cũng tương tự như trên nhưng phần lẻ của giá trị ei bây giờ được xem như là xác suất. Hay nói cách khác ,số lần tham gia vào trong quá trình sinh sản của một chuổi bằng với giá trị phần nguyên của ei .Sau đó ,để đảm bảo đủ kích thước dân số , ta chọn những con cái khác của những chuỗi với xác suất tương đương với phần lẻ của số cá thể mong đợi cho đến khi đạt được kích thước dân số n .Ví dụ 1 chuỗi với số bản copy mong đợi là 1.5 ,chắc chắn sẽ nhận được một bản copy và một bản copy khác với xác suất 0.5

Ranking Procedure : Theo phuơng pháp này ,một dân số được sắp xếp tùy thuộc vào giá trị fitness .Sau đó ta gán các cá thể này cho mỗi một con cháu mà có hàm gần giống với Rank .Một hàm Rank do BanKer đề ra (1985) :

Rank Khi đó :

Trong đó λmax là giá trị do user đưa vào ,1 < λmax <=2 với n là kích thước dân số .Miền ei sau đó sẽ là[2 - λmax , λmax].Phương trình trên là một trường hợp đặc biệt. 2-Cải tiến trên các toán tử tối ưu :

GAs là sự kết hợp của 3 toán tử :tái tạo ,ghép chéo và đột biến .Chúng tác động ở cấp độ trên toàn bộ dân số ,ta có một số cải tiến trên các toán tử này như sau:

Ghép chéo nhiều điểm: Toán tử ghép chéo mà ta sử dụng từ trước đến giờ là ghép chéo chỉ trên 1 bit đơn tại 1 vị trí được. Quá trình ghép chéo này có thể tiến hóa thành ghép chéo nhiều điểm mà trong đó số điểmghép chéo sẽ được cho trước Nc .Khi Nc = 1 thì trở thành ghép chéo đơn ,với Nc chẳn chuỗi được xem như là một chuỗi không có sự bắt đầu và kết thúc ,và số điểm ghép chéo Nc được chọn xung quanh một vòng tròn đồng nhất một cách ngẫu nhiên. Quá trình ghép chéo nhiều điểm có thể giải quyết 1 tổ hợp cụ thể các đặt tính đã được mã hóa trên một chuỗi nhiễm sắc thể mà sự ghép chéo một điểm không giải quyết được.

Giả sử ta có hai chuỗi :

Chuỗi 1 : 10110001100

Chuỗi 2 : 00101101001

Trong đó các bits gạch dưới biểu diễn cho những sơ đồ có tính hoàn thiện cao .Giả sử một trong hai sơ đồ này hoán chuyển thì sẽ mất đi thuận lợi trong quá trình ghép chéo .Rõ ràng ghép chéo một điểm không thể tránh được điều này ,sơ đồ 1 sẽ bị phá vỡ và không được truyền đi .Vấn đề này có thể giải quyết bằng ghép chéo hai điểm như sau :

Chuỗi 1 : 1 0 1 1 | 0 0 0 1 | 1 0 0 Chuỗi 2 : 0 0 1 0 | 1 1 0 1 | 0 0 1 Chuỗi con 1 : 1 0 1 1 1 1 0 1 1 0 0 Chuỗi con 2 : 0 0 1 0 0 0 0 1 0 0 1

Một cách khác thể hiện sự ghép chéo nhiều điểm là ghép chéo đồng nhất đã được giới thiệu bởi Syswerda(1989) .Theo cách này ,hai chuỗi parents được chọn và hai chuỗi children sẽ được tạo ra .Với mỗi vị trí trên hai chuỗi con ,chúng ta quyết địng ngẫu nhiên chuỗi cha nào đó đóng góp giá trị bit vào chuỗi con này tùy thuộc vào khuôn mẫu (template) đã được chọn ngẫu nhiên .Quá trình được mô tả như sau :

parent 1 : 01100111 parent 2 : 11010001 template: 01101001

Tương ứng với 0 thì lấy chuỗi 1 còn 1 thì lấy chuỗi 2 và ngược lại.Kết quả : child 1 : 11110001

Mặc dù ghép chéo nhiều điểm có ưu điểm trên ,nhưng đôi khi nó dẫn đến cấu trúc phức tạp .

- Các toán tử tái lập lại bậc : Không giống như toán tử từ trước chỉ tìm kiếm trên tập allele tốt ,các toán tử này còn tìm kiếm trên những cách mã hóa cũng như tập các giá trị allele tốt hơn .Những toán tử này thích hợp cho bài toán mà giá trị fitness phụ thuộc vào sự sắp xếp chuỗi ,chẵn hạn như trị fitness phụ thuộc vào tổ hợp của các giá trị allele v và bậc o , f = f(v,o) ,một chuỗi kết hợp các giá trị allele và các thônh tin có thể biểu diễn như sau :

12345678 10010001

Trong đó 1,2 … 8 biểu diễn vị trí gen hay tên gen .Thông thường các toán tử tái lập lại bậc là toán tử đảo chiều .Với toán tử này ,người ta chọn hai điểm trên chiều dài chuỗi ,sau đó ta tiến hành cắt lại điểm này ,và những điểm cuối của phần cắt sẽ hoán chỗ cho nhau . Ví dụ ,hai chuỗi có 8 bit sẽ hoán đổi như sau :

1 2 | 3 4 5 6 | 7 8 0 1 | 1 1 1 0 | 1 0 Sau khi hoán đổi ta có :

1 2 6 5 4 3 7 8 0 1 0 1 1 1 1 0 3/ Giải thuật lai gen :

Giải thuật lai gen đơn giản ,mặc dù mạnh mẻ ,nhưng nói chung không phải lúc nào giải thuật cũng đạt tối ưu hoá .Ghép chéo hoá một GA với GA hiện có có thể sinh ra một giải thuật tốt hơn cả GA và giải thuật hiện tại .Vì vậy , đối với các bài toán tối ưu hoá , khi có nhiều giải thuật tối ưu hoá một cách có hiệu quả ,thì có thể sử dụng nó cho vấn đề tối ưu .Một GA có thể ghép chéo vơí nhiều kỹ thuật tìm kiếm khác nhau ,để taọ ra một dạng ghép chéo mà khai thác được việc tìm kiếm toàn cục và cả tìm kiếm cục bộ.

Có rất nhiều kỹ thuật đạo hàm và không đạo hàm có sẵn cho việc tìm kiếm tối ưu hóa cục bộ trong các hàm tính toán quaen thuộc .Mặc dù không có những hàm tính toán quen thuộc ,vẫn luôn luôn có những sơ đồ tìm kiếm tối ưu cho bài toán đặc biệt .Trong một số trường hợp ,sự kế thừa ghép chéo đã đưa ra việc biểu diễn tốt cũng như kỹ thuật tốt trang việc sử dụng .

II-ỨNG DỤNG CỦA GIẢI THUẬT GEN : (adsbygoogle = window.adsbygoogle || []).push({});

1 / Tối ưu hóa đường ống :

David E.Golderg đã ứng dụng GAs để tối ưu hóa bài toán điều khiễn hệ thống đường ống dãn khí thiên nhiên . Trong bài roán đầu tiên ,ông đã xem xét bài toán của Wong và Larson ,với hệ thống 10 máy nén khí ,10 ống dẫn khí nối tiếp . Bài toán bị chi phối bởi phương trình chuyển đổi phi tuyến ,chỉ ra sự sụt áp qua các đường ống và sự tăng áp khi qua máy nén.

Để kiểm tra GAs đơn giản trong các bài toán đường ống khác nhau , tác giả đã mã hoá bài toán điều khiển nhất thời một đường ống của Wong và Larson .Trong bài toán này, mục tiêu là cực tiểu hóa năng lượng do quá trình nén ,phụ thuộc vào áp suất tối

đa và áp suất tối thiểu và các ràng buộc tỉ lệ áp suất . Các chi tiết nhất thời mà tác giả đã dùng vượt quá phạm vi nghien cứu .Điều này đủ để noí rằng các phương trình riêng phần đã đơn giản hoá tính liên tục và động lượng được chuyển đổi thành các phương trình vi phân thông thường bằng cách dùng các phương pháp đặc thù .Sau đó ,các phương trình này được giải quyết bằng số trên một mạng lưới thời gian thông thường bởi thủ tu5c vi phân hữu hạn .Cũng như bài toán trạng thái bền ,các ràng buộc được đưa vào bài toán bằng phương pháp phạt bên ngoài ,dạng bậc hai.

2 / Tối ưu hoá kết cấu qua GAs :

Tác giả đã áp dụng GAs vào việc tối ưu hóa kết cấu của một khung phẳng gồm 10 thanh.

Mục tiêu của bài toán này là cực tiểu hóa trọng lượng của kết cấu ,Phụ thuộc vào các ràng buộc về ứng suất lớn nhất và ứng suất nhỏ nhất của mỗi thanh .Trong công trình của tác giả ,một bộ mã cho khung kết cấu theo ma trận tiêu chuẩn được dùng để phân tích mỗi thiết kế tạo ra bởi GAs .GAs 3 toán tử bao gồm lựa chọn bằng bánh xe roulette ,ghép chéo đơn giản và đột biến đưọc dùng với các ràng buộc kề nó ,sử dụng hàm phạt bên ngoài ,dạng bậc hai .Các biến thiết kế , 10 vùng thành phần Ai ,được mã hoá như là một chuỗi dạng dấu chấm cố định ,được biến đổi ,được nối kết ,trong đó 1 trong 10 chuỗi con 4 bit được biến đổi tuyến tính giữ a

giá trị = 0.1 in2 và Amax = 10 in2 .Kết quả các lần chạy độc lập của GAs chỉ rằng độ hộim tụ không khác biệt so với các nghiên cứu quan sát trước đây.

3 / Ghi ảnh y học với GAs :

Các tác giả đã sử dụng GAs đơn giản để thực hiện ghi hình ảnh ,như là bộ phận của hệ thống lớn có tên là Digital Subtraction Angiography (DSA) .Trong DSA ,Bác sĩ sẽ cố gắng xem xét bên trong của một động mạch khả nghi bằng cách so sánh hình ảnh x-quang ,một được chụp trước khi tiêm thuốc đã nhuộm màuvào động mạch ,một và một được chụp sau khi tiêm thuốc .Cả hai hình được số hóa và được trừ nhau theo từng điểm một ,với kết quả mong muốn cuối cùng nhận được một hình ảnh sai khác phác họa rõ ràng hình ảnh bên trong động mạch chủ .Nếu sự khác biệt gữa hai hình ảnh chỉ là sự bổ sung của phần nhuộm màu thì phép trừ ảnh phải để lại hình ảnh chỉ riêng phần bị phủ màu .Tuy nhiên sự chuyển động nhẹ của bệnh nhân có thể tạo ra hai hình ảnh kế nhau ,làm rối loạn phần hình ảnh sai khác .Kết quả là ,các hình ảnhphải được xếp kế nhau ,để tính toán phần hình ảnh sai khác.

Các tác giả đã sử dụng GAs .Trong thủ tục này ,hình ảnh trước khi tiêm thuốc được chuyển đổi bởi bởi một phép biến đổi tuyến tính .GAs được dùng để tìm kiếm các hệ số biế đổi để tìm kiếm các hệ số giúp cực tiểu hóa sự sai biệt hình ảnh trước và sau khi tiêm ,trên cơ sở các sai khác hình ảnh tuyệt đối.

4 /Ứng dụng GAs trong C++ :

Trong phần 2 của nội dung đề tài này chúng ta sẽ vận dụng GAs vào trong mội trường C++ để giải quyết hai lĩnh vực : Tối ưu hóa và máy hữu hạn .

Trong lĩnh vực tối ưu hóa đầu tiên chúng ta giải quyết bài toán về hộp đen ,sau đó là vận dụng sự tối ưu hóa trong chọn lọc tự nhiên để giải bài toán tối ưu hóa hàm nhiều biến ,tiếp theo là vận dụng GAs trong bài toán tối ưu trong du lịch .Trong lĩnh vực máy hữu hạn chúng ta vận dụng GAs xem xét máy tiến hoá.

Một phần của tài liệu đồ án tốt nghiệp giải thuật gen và một số bài toán về giải thuật gen (Trang 37 - 41)