3.5 Cấu trúc dữ liệu
3.5.4 Cấu trúc dữ liệu của giá trị hàm thích nghi
Giá trị của hàm thích thi có được từ giá trị của hàm mục tiêu thông qua một số phép biến đổi. Giá trị của hàm thích nghi là một giá trị vô hướng và không âm (xác định dương) được chứa trong một vectơ cột kích thước Nind. Ví dụ:
f 1 Cá thể 1
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 40 f 2 Cá thể 2
Fitn = f 3 Cá thể 3 . . . .. .
f Nind Cá thể Nind
Đối với hàm đa mục tiêu, giá trị thích nghi của từng cá thể là một hàm của một vectơ giá trị hàm mục tiêu. Bài toán đa mục tiêu đặc trưng bởi vì không phải có một nghiệm duy nhất mà là một họ các giá trị đồng thích nghi với các giá trị khác nhau cuûa bieán thieát keá.
3.6. ẹA QUAÀN THEÅ (MULTI POPULATION):
Hộp công cụ của GA trong Matlab hỗ trợ cho việc tính toán bằng nhiều quần thể con thông qua việc sử dụng các hàm toán tử di truyền cấp cao (High-level genetic operator functions) và một thủ tục để chuyển các cá thể qua lại giữa các quần thể con (subpopulation)
Chúng ta có thể chia một quần thể đơn thành một số các quần thể con (hay còn gọi là demes-đim) bằng cách thay đổi cách sử dụng cấu trúc dữ liệu. Có thể hình dung như các quần thể con được chứa trong những khối (block) kế tiếp nhau trong một ma trận đơn. Ví dụ cấu trúc dữ liệu của nhiễm sắc thể Chrom bao gồm một số lượng SUBPOP các quần thể con, mỗi ma trận có kích thước N cá thể được bieồu dieón nhử sau:
Ind1SubPop1 Ind2SubPop1 ...
IndNSubPop1 Ind1SubPop2 Ind2SubPop2 Chrom =
...
IndNSubPop2 ...
Ind1SubPopSUBPOP Ind2SubPopSUBPOP ...
IndNSubPopSUBPOP
Đây gọi là mô hình di trú (Migration). Mỗi các cá thể con tiến hoá qua các thế hệ bởi thuật toán di truyền truyền thống và thỉnh thoảng các cá thể di trú từ quần thể con này sang quần thể con khác.
Thông thường, có 3 cách di trú được thi hành để trao đổi các cá thể giữa các quần thể con là:
- Di trú theo vòng: (Ring Migration Topology): Các cá thể di chuyển giữa các quaàn theồ con lieàn keà nhau.
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 41
Hình 2.3.4 Di trú theo vòng
- Di trú kề cận (Neighbourhood Migration Topology):Giống như di cư theo vòng, tuy nhiên sự di chuyển này có thể xuất hiện theo hướng ngược lại
Hình 2.3.5 Di trú kề cận
- Di trú không hạn chế (Unrestricted Migration Topology): Các cá thể có thể di cư từ quần thể bất kỳ vào một quần thể bất kỳ khác.
Hình 2.3.6 Di trú không hạn chế
3.7. CÁC KHÁI NIỆM TRONG MATLAB KHI SỬ DỤNG THUẬT TOÁN DI TRUYEÀN:
3.7.1. Dạng quần theồ (Population type) :
Để thể hiện dạng dữ liệu đưa vào tính toán trong hàm thích nghi. Có thể ở 2 dạng sau:
- Vec tô keùp (Double vector) - Chuoãi bit (Bit string)
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 42
3.7.2. Kích thước quần thể : (Population size):
Chỉ định số cá thể có trong mỗi thế hệ. Với một quần thể có kích thước lớn, thuật toán di truyền sẽ dễ tìm ra vùng không gian khả thi hơn, do đó tránh được việc tìm ra những cực tiểu địa phương thay vì cực tiểu tổng thể. Tuy nhiên kích thước quần thể lớn sẽ làm thuật toán mất nhiều tời gian hơn.
Nếu kích thước quần thể là tập vectơ, thuật toán di truyền sẽ tạo ra nhiều quần thể con, số lượng các quần thể con là chiều dài của vectơ. Kích thước của mỗi quần thể con tương ứng với vectơ kích thước quần thể
3.7.3. Khởi tạo hàm: (Creation function) :
Là hàm dùng để tạo ra quần thể ban đầu. Tạo ngẫu nhiên quần thể ban đầu với một sự phân bố đồng đều (uniform) .
3.7.4. Mức độ đánh giá ban đầu: (Initial scores):
Để đánh giá mức độ thích nghi của quần thể ban đầu.
3.7.5. Khoảng chênh lệch về độ thích nghi của các cá thể trong quần thể (gọi tắt là khoảng chênh lệch) (Initial range):
Chỉ định biên độ giữa độ thích nghi cao nhất và độ thích nghi thấp nhất của các vectơ trong quần thể ban đầu đã được khởi tạo. Có thể tạo khoảng chênh lệch bằng một ma trận có 2 hàng và số cột bằng số các biến số, mỗi cột của ma trận này chứa [lb; ub]T với lb là biên dưới của biến và ub là biên trên của biến.
Hình 2.3.7 Giá trị thích nghi tốt nhất, kém nhất và trung bình 3.7.6. Thay đổi độ thích nghi- Hàm đánh giá (Fitness Scaling- Scaling
function):
Giá trị của hàm thích nghi được biến đổi thành một giá trị khác thông qua một ánh xạ biến đổi. Hàm lựa chọn (select function) sử dụng các giá trị thích nghi sau khi biến đổi để thực hiện lựa chọn cha mẹ cho thế hệ tiếp theo.
Biên độ giữa các giá trị thích nghi sau khi biến đổi ảnh hưởng rất lớn đến thuật toán di truyền. Nếu các giá trị này khác nhau quá lớn thì các giá trị có giá trị cao nhất được sinh sản rất nhanh. Điều này làm cho quần thể có thể rơi vào
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 43
các vùng cục bộ và ngăn cản thuật toán tìm kiếm trong những vùng nghiệm khác.
Mặt khác, nếu các giá trị này khác nhau quá nhỏ thì các cá thể gần như có những thay đổi giống nhau trong quá trình sinh sản, điều đó làm cho tiến trình giải rất chậm.
Có thể sử dụng các hàm sau để biến dổi:
- Rank (Xếp hạng): Biến đổi độ thích nghi dựa trên việc xếp hạng các cá thể theo độ thích nghi của chúng. Hạng của cá thể thích nghi tốt nhất là 1, cá thể có độ thích nghi tốt tiếp theo là 2 và tiếp tục như thế cho đến hạng của cá thể kém nhất là n, với n là số cá thể có trong quần thể.
• Giá trị biến đổi của các thể có hạng n tương ứng là 1/ n
• Tổng các giá trị biến đổi trên toàn quần thể bằng với số cha mẹ cần thiết để khởi tạo quần thể tiếp theo.
Bởi thuật toán là tìm cực tiểu của hàm thích nghi nên những giá trị có độ thích nghi nhỏ (tốt) sẽ có giá trị lớn sau khi biến đổi. Ngoài ra, biến đổi theo cách xếp hạng sẽ chấp nhận những giá trị dựa vào hạng của các cá thể trong quần thể nên giá trị này có thể không thay đổi đối với một quần thể nhất định, và số cha mẹ được lựa chọn cho quần thể tiếp theo cũng không thay đổi.
- Proportional(Tương ứng): Biến đổiù trên độ thích nghi của các thể - Top (Cao nhất): Đánh giá các cá thể tốt nhất là như nhau.
- Shift linear (Thay đổi tuyến tính): Biến đổiù độ thích nghi mà độ thích nghi của cá thể thích nghi cao nhất là một hằng số bằng giá trị độ thích nghi trung bình nhân với một hệ số (Thông thường hệ số này là 2) 3.7.7. Lựa chọn cá thể (selection):
Dùng để lựa chọn cha mẹ (parents) cho hệ thệ tiếp theo, dựa trên giá trị thích nghi của chúng thông qua hàm đánh giá. Có thể lựa chọn cá thể theo các cách sau đây:
- Stochatic uniform: Tạo ra một đường thẳng mà trên đó mỗi cha mẹ được lựa chọn tương ứng với điểm cắt giữa đường thẳng này với giá trị thích nghi cuûa chính chuùng.
- Remainder: Lựa chọn dựa trên phần nguyên giá trị thích nghi của mỗi cá thể, sau đó sử dụng vòng quay Roulette để lựa chọn đối với phần dử.
- Uniform: Lựa chọn cha mẹ theo độ thích nghi và số thứ tự của cha mẹ trong quần thể. Cách lựa chọn này chỉ thường được sử dụng để thử nghiệm và sửa lỗi trong quá trình tính toán bởi vì nó không hiệu quả trong vieọc tỡm kieỏm nghieọm toỏi ửu.
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 44
- Roulette: Lựa chọn cha mẹ theo vòng quay Roulette (đã đề cập ở phần treân)
- Tournament: Lựa chọn cha mẹ bằng cách chọn ngẫu nhiên một kích thước loại trừ (Tournament size) và sau đó lựa chọn cá thể tốt nhất ở ngoài kích thước đó để làm cha mẹ. Kích thước này không được nhỏ hơn 2. Thông thường giá trị này là 4.
3.7.8. Chọn lọc tinh hoa (Elite count) :
Chỉ định số cá thể sẽ được sao chép y nguyên vào thế hệ tính toán tiếp theo. Số này phải nhỏ hơn kích thước của quần thể. Thông thường giá trị này lấy giá trị là 2.
3.7.9. Xác suất lai (Crossover fraction):
Xác định các cá thể sẽ được đem lai tạo cho thế hệ tiếp theo (Trừ những cá thể đã được sao chép y nguyên theo Elite count. Xác suất này lấy giá trị trong khoảng [0;1] và thường có giá trị 0.8.
Ví dụ: Với quần thể có 20 cá thể, chọn lọc tinh hoa (Elite count)=2 ; Xác suất lai (Crossover fraction) =0.8; thì số cá thể ở quần thể tiếp theo sẽ bao gồm:
- 2 cá thể được chọn lọc tinh hoa (sao chép nguyên bản)
- Còn lại 20-2=18 cá thể; Với xác suất lai là 0.8 nên số cá thể được lai ghép là 18× 0.8 ≈ 14 cá thể.
- Còn lại 20-2-14=4 cá thể sẽ được đột biến.
Như vậy xác suất lai cũng chính là một thông số ảnh hưởng đến các cá thể đột biến.
3.7.10. Hàm Đột biến (Mutation functions ):
Tạo nên sự thay đổi nhỏ ngẫu nhiên trên cá thể để tạo nên các cá thể con đột biến. Đột biến tạo nên tính đa dạng trong di truyền và cho phép thuật toán di truyền có thể tìm kiếm nghiệm trong một không gian nghiệm rộng hơn. Có thể sử dụng các loại đột biến sau:
- Gaussian: Thêm vào một số ngẫu nhiên vào mỗi vectơ đầu vào của mỗi cá thể. Số ngẫu nhiên này được xác định từ phân bố Gausian với tõm khoảng là 0 (à =0) .Số lượng đột biến tương ứng với độ lệch chuẩn của phân bố sẽ giảm sau mỗi thế hệ mới được sinh ra Số lượng các cá thể đột biến phụ thuộc vào 2 thông số chính là Scale và Shrink . Giá trị của Scale và Shrink nằm trong koảng [0;1] và thường có giá trị lần lượt là 0.5 và 0.75.
___________________________________________________________
Phân phối chuẫn Gaussian là một phân phối quan trọng trong lý thuyết xác suất. Là phân phối của biến ngẫu nhiên liên tục nhận giá trị từ – ∞ đến + ∞ với hàm mật độ xác suaát :
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 45
2 2
( )
1 2
( ) 2
x
P x e
à
σ π σ
− −
=
Hàm số cú dạng hỡnh chuụng, đối xứng so với trục đối xứng tại điểm x= à . Đạt cực trị tại điểm M 1
, 2
à σ π
và hai điểm uốn : M1 1
, e 2 à σ σ π
−
và M2
, 1 2 à σ e
σ π
+
(à−σ) M1
(à+σ) à
M2
e M
Cú Mod(X)=à
EX=+∞P x dx( ) à
−∞
∫ = (Giá trị trung bình)(mean) DX=+∞(1 à)2P x dx( ) σ2
−∞
− =
∫ (Phửụng sai) (variance)
x DX
σ = =σ (Độ lệch chuẩn) (standard deviation)
__________________________________________________________________
• Thông số Scale xác định phương sai của đột biến tại thế hệ đầu tiên. Nếu khoảng chênh lệch (Initial range) (Tức là biên độ giữa độ thích nghi cao nhất và độ thích nghi thấp nhất của cá thể thông qua hàm thích nghi) là vectơ v có kích thước 2× 1 thì phương sai ban đầu là Scale × [v(2) - v(1)]. Nếu khoảng chênh lệch là vectơ v có kích thước 2× n với n là số biến số thì phương sai ban đầu của cha mẹ là Scale × [v(i,2) - v(i,1)] với i=1,…,n.
• Thông số Shrink kiểm soát sự co lại của các phương sai qua mỗi thế hệ tiến hoá. Nếu phạm vi ban đầu (Initial range) là vectơ v có kích thước 2× 1 thì phương sai (variance) tại thế hệ thứ k là vark
với:vark var(k 1) 1 k Shrink
Generations
−
= − × ; Nếu khoảng chênh
lệch là vectơ v có kích thước 2× n với n là số biến số thì phương sai tại thế hệ thứ k của cha mẹ là:
1 σ π2
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 46
, ,( 1)
vari k vari k 1 k
Shrink
Generations
−
= − × . Neáu Shrink baèng 0, thì phương sai là hằng số, nếu Shrink bằng 1 thì phương sai sẽ co về 0 một cách tyến tính khi tính toán đến thế hệ cuối cùng - Uniform ( Đột biến đồng bộ) : Có hai bước chính: Trước tiên thuật toán
sẽ chọn một khoảng nhỏ của vectơ đầu vào của một cá thể để đột biến.
Khoảng nhỏ này được xác định nhờ xác suất đột biến, xác suất đột biến thông thường bằng 0.01. Bước tiếp theo, thuật toán sẽ thay thế các khoảng nhỏ được chọn bằng một số ngẫu nhiên.
3.7.11. Hàm lai tạo (Crossover function) :
Dùng để kết hợp hai cá thể ( hay cha mẹ) để tạo thành một cá thể mới (hay con) cho thế hệ tiếp theo. Có thể sử dụng các dạng sau:
- Single point: (Lai một điểm): Chọn một số nguyên ngẫu nhiên trong khoảng 1 và số biến số. Sau đó thực hiện lai ghép tại vị trí số nguyên đã chọn. Ví dụ A và B là hai cá thể cha mẹ:
A = [11001011]
B = [11011111]
lai tại điểm 5: lúc đó cá thể con là : offspring = [11001111].
11001011+11011111 = 11001111
- Two points (Lai hai điểm): Tương tự như lai một điểm, ta chọn hai số nguyên ngẫu nhiên trong khoảng 1 và số biến số. Sau đó thực hiện lai ghép tại các vị trí số nguyên đã chọn. Ví dụ p1 và p2 là hai cá thể cha meù:
A = [11001011]
B = [11011111]
lai tại điểm 2 và 7 : lúc đó cá thể con là : offspring = [11011111]
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 47
11001011 + 11011111 = 11011111
- Scattered (Lai rải rác): Tạo nên một vectơ nhị phân ngẫu nhiên. Tại vị trí của vectơ này có giá trị 1 thì lấy gen của các thể cha (first parent), tại vị trí của vectơ này có giá trị 0 thì lấy gen của các thể cha (first parent). Ví dụ : p1 và p2 là hai cá thể cha mẹ:
p1 = [a b c d e f g h]
p2 = [1 2 3 4 5 6 7 8]
Và vectơ nhị phân ngẫu nhiên là [1 1 0 0 1 0 0 0], lúc đó cá thể con sau khi lai ghép là child1 = [a b 3 4 e 6 7 8]
- Intermediate: ( Lai trung gian): Tạo cá thể con bằng trọng số trung bình của cha mẹ. Lai trung gian được điều khiển bới tham số Ratio:
child = parent1 + rand × Ratio × ( parent2 - parent1)
- Heuristic: Tạo nên các thể con nằm trên đường thẳng chứa hai các thể cha mẹ. Con đuợc tạo ra như sau:
child = parent2 + R × (parent1 - parent2);
Thông thường giá trị R lấy giá trị 1.2 3.7.12. Sự di trú (Migration) :
Là sự di chuyển của các cá thể từ quần thể con này sang quần thể con khác.
Sự di trú xảy ra khi kích thước quần thể là một vectơ có chiều dài lớn hơn 1. Khi sự di trú xảy ra, cá thể tốt nhất từ một quần thể con sẽ thay thế cho cá thể xấu nhất trong quần thể con khác. Đay là sự sao chép nguyên bản, tức là sau khi di trú, cà hai quần thể đầu chứa cá thể tốt nhất đang xét. Chúng ta có thể kiểm soát có bao nhiêu sự di trú xảy ra thông qua 3 thông số sau:
- - Direction (Hướng): Sự di trú có thể xảy ra theo 1 hướng hoặc 2 hướng(Forward hoặc Both) .Nếu hướng là Forward thì cá thể trong quần thể con thứ n sẽ di trú sang quần thể con thứ (n+1). Nếu hướng là Both thì cá thể trong quần thể con thứ n sẽ di trú sang quần thể con thứ (n-1) và (n+1). Một vấn đề xảy ra là các cá thể có thể di trú từ quần thể con đầu tiên vào quần thể con cuối cùng và ngược lại, điều này dẫn tới sự “đè lên nhau” của các cá thể. Để ngăn chặn hiện tượng này, Ta tạo một quần thể con có kích thước là 0 bằng cách đưa số 0 vào cuối vec tơ kích thước của quần thể.
Phần 2-Cơ sở lý thuyết Chương 3: Thuật toán di truyền
Trang 48
Forward Both
- Interval :Xác định trải qua bao nhiêu thế hệ thì di trú xuất hiện một lần. Ví dụ Interval bằng 20 thì sau 20 thế hệ sẽ có sự di trú xảy ra.
- Fraction:Xác định bao nhiêu cá thể sẽ di trú trong một lần di trú. Ví dụ nếu các cá thể di trú từ quần thể con có kích thước là 50 sang quần thể có kích thước 100 với giá trị Fraction bằng 0.1 thì số cá thể sẽ di trú là:
0.1 × 50 = 5 cá thể.
\\@[[
Phần 3- Thiết lập bài toán Chương 1: Giả thiết và cơ sở ban đầu
Trang 49
bc=160cm
b1 hho
hb
h1 bs
FT
PHAÀN 3:
THIẾT LẬP BÀI TOÁN
CHƯƠNG 1: CÁC GIẢ THIẾT VÀ CƠ SỞ BAN ĐẦU 1.1 ĐẶT VẤN ĐỀ:
Trong lãnh vực xây dựng cầu, việc thiết kế dầm hiện nay vấn đề tính toán tối ưu kết cấu vẫn chưa được quan tâm. Thông thường việc thiết kế là đưa ra kích thước tiết diện trước theo kinh nghiệm, sau đó dùng các quy chuẩn dựa trên những triết lý thiết kế để phân tích đánh giá sự thoả mãn của tiết diện. Việc thiết kế kết cấu theo phương pháp tối ưu có thể sẽ giảm được rất nhiều về kinh phí về nguyên vật liệu chế tạo kết cấu, đảm bảo được chỉ tiêu kinh tế và hiệu quả.
Việc phân tích tối ưu dầm bêtông cốt thép ứng suất trước theo các phương pháp tối ưu thông thường như phương pháp quy hoạch toán học sẽ gặp rất nhiều khó khăn bởi nhiều lý do khác nhau, trong đó lí do cơ bản là trong quá trình thiết kế, hàm mục tiêu và các hàm ràng buộc sẽ có mức độ phi tuyến rất cao, đồng thời sẽ có rất nhiều biến số trong quá trình thiết kế. Phương pháp tối ưu bằng thuật giải di truyền có sử dụng hàm phạt để phạt các ràng buộc bị vi phạm tỏ ra có ưu điểm trong việc giải quyết các bài toán như trên
Với một nhịp cầu cho trước và tải trọng tác dụng cho trước, vấn đề là làm sao để thiết kế dầm với kinh phí thấp nhất. Như vậy, ta phải thiết kế sao cho dầm có khả năng chịu lực nhưng các chi phí về vật liệu bêtông cốt thép và ván khuôn là nhỏ nhất.
Do tính chất của bài toán, chỉ xem xét trong một phạm vi nhỏ của bài toán thiết kế dầm, Chỉ xem xét các điều kiện về cường độ, ổn định chống nứt và độ võng tại mặt cắt giữa dầm.
1.2 CÁC GIẢ THIẾT TÍNH TOÁN- ĐỊNH NGHĨA CÁC THÔNG SỐ TÍNH TOÁN:
1.2.1 Các thông số ban đầu:
Xét dầm BTCT dự ứng lực căng trước tiết diện mặt cắt ngang chữ T như hình vẽ:
Trong đó:
• bc : Chiều rộng cánh dầm. Giả sử với khổ cầu cho trước
B8+2x1.55, ta chọn bc = 160cm Hình:3.1.1