Nguyên lý hoạt ựộng của một bài toán di truyền ựược mô tả như Hình 3.1.
Hình 3.1. Nguyên lý hoạt ựộng của Thuật toán di truyền[6]
a. Biểu diễn[6]
Nền tảng của thuật toán di truyền nằm ở việc biểu diễn các ựối tượng dưới dạng các mã di truyền (gene, chuỗi nhiễm sắc thể). Mỗi cá thể sẽ ựược mô tả bởi một chuỗi bao gồm các giá trị nằm trong tập hợp mô tả ựược quy ựịnh trước. Tùy thuộc vào mục ựắch, yêu cầu và miền giới hạn mà các tập mô tả này sẽ ựược lựa
chọn khác nhau, ựó có thể là một chuỗi nhị phân mô tả các số nguyên, các ký tự biểu thị cho các tham số, phép toán, v.vẦ Việc biểu diễn cũng có thể thông qua các hàm biến ựổi ựược tắnh toán ban ựầu. Số lượng phần tử của một chuỗi mô tả này ựược xác ựịnh thông qua các ựiều kiện, yêu cầu của bài toán cũng như kinh nghiệm của người thực hiện. Thông qua các cách biểu diễn này, ta tiến hành các thuật giải di truyền ựể tìm lời giải cho bài toán. Kết quả cuối cùng hay lời giải sẽ ựược chuyển trở lại dạng ban ựầu của bài toán.
Vắ dụ: Ta có thể mô tả các số từ 1 ựến 10 dưới dạng các chuỗi nhị phân (mã di truyền) như sau:
1 = (0 0 0 1) 6 = (0 1 1 0) 2 = (0 0 1 0) 7 = (0 1 1 1) 3 = (0 0 1 1) 8 = (1 0 0 0) 4 = (0 1 0 0) 9 = (1 0 0 1) 5 = (0 1 0 1) 10 = (1 0 1 0) b. Khởi tạo quần thể ban ựầu[16]
Tiến trình khởi tạo tương ựối ựơn giản. Ta lấy ngẫu nhiên các giá trị của chuỗi nhiễm sắc thể cho từng cá thể trong quần thể ban ựầu từ tập hợp mô tả ựịnh trước. Mỗi cá thể ở ựây tương ứng với một lời giải của bài toán. Các các thể ựược ngẫu nhiên trên toàn bộ không gian nghiệm của bài toán.
c. Phép lai[6,16]
Phép lai là một trong hai quá trình cơ bản của thuật toán di truyền. Quá trình này cũng tương tự những gì xảy ra trong tự nhiên, các phần tử sẽ trao ựổi các thông tin qua lại với nhau. Thông qua sự trao ựổi ựó giữa các phần tử ựược chọn lựa ngẫu nhiên, các phần tử mới sẽ ựược tạo ra có khả năng thắch nghi (ựộ phù hợp) tốt hơn các phần tử cũ. Việc lai tạo sẽ ựược tiến hành dựa trên chuỗi nhiễm sắc thể của hai hay nhiều phần tử ựược lựa chọn (ựược gọi là cha-mẹ). Phép lai có thể thực hiện thông qua việc cắt và ghép các chuỗi nhiễm sắc thể của cha và mẹ sao cho thế hệ sau thừa hưởng trong chuỗi nhiễm sắc thể của chúng một phần của phần tử này và
phần còn lại của cá thể kia. Thông thường, phép lai ựược tiến hành thông qua các kỹ thuật sau.
o Kỹ thuật lai một ựiểm: một ựiểm trong chuỗi nhiễm sắc thể của cha mẹ ựược chọn lựa một cách ngẫu nhiên. Một quá trình trao ựổi chéo các chuỗi nhiễm sắc thể này sẽ tạo thành hai chuỗi nhiễm sắc thể mới biểu diễn hai cá thể con.
Hình 3.2. Kỹ thuật lai một ựiểm[16]
o Kỹ thuật lai nhiều ựiểm: kỹ thuật này tương tự như kỹ thuật lai một ựiểm chỉ khác ở chỗ số ựiểm ngẫu nhiên ựược chọn lớn hơn hoặc bằng hai và các ựoạn nhiễm sắc thể sẽ ựược ựổi chéo cách quãng.
Hình 3.3. Kỹ thuật lai 2 ựiểm[16]
o Kỹ thuật cắt và nối: chuỗi nhiễm sắc thể của cha mẹ sẽ ựược cắt tại hai vị trắ ngẫu nhiên khác nhau. Kỹ thuật này làm thay ựổi ựộ dài của chuỗi nhiễm sắc thể con.
Cha mẹ
Con Cha mẹ
Hình 3.4. Kỹ thuật lai cắt và nối[16]
o Kỹ thuật lai ựồng ựều: Các nhiễm sắc thể tương ứng giữa cha me sẽ ựược hoán ựổi với nhau với xác suất là 50%. Với kỹ thuật này, một số ngẫu nhiên R sẽ ựược tạo ra tương ứng với từng nhiễm sắc thể. Nếu R≤0,5 thì hai nhiễm sắc thể tương ứng sẽ ựược trao ựổi. Tiến trình này sẽ ựược lặp lại với các cặp bố-mẹ tương ứng
d. đột biến[6]
đột biến là hiện tượng cá thể con mang một số tắnh trạng không giống với cha mẹ. Quá trình ựột biến có xác suất xảy ra khá thấp và ựược tiến hành trên một hoặc vài nhiễm sắc thể của chuỗi. Quá trình ựột biến có thể tiến hành thông qua biến ựổi ngẫu nhiên một nhiễm sắc thể trên chuỗi nhiễm sắc thể của một cá thể ựược lựa chọn bất kỳ.
e. Quá trình chọn lọc tự nhiên[6,16]
Quá trình chọn lọc tự nhiên ựược thực hiện dựa trên sự ựánh giá ựộ thắch nghi của từng cá thể với môi trường ở ựây chắnh là ựộ phù hợp của từng lời giải ựối với bài toán ựặt ra. độ thắch nghi của mỗi cá thể ựược tắnh toán dựa trên các hàm toán học ựược gán cho nó. Quá trình chọn lọc này có thể thực hiện theo hai phương pháp: chọn ngẫu nhiên hoặc cạnh tranh.
o Phương pháp ngẫu nhiên, ựộ thắch nghi của từng cá thể sau ựó sẽ ựược cộng dồn lập lại theo thứ tự của các cá thể. Khi ựó mỗi các thể thứ i sẽ có một ựộ thắch nghi FỖi = F1 + F2 + . . . + Fi. Tạo một số ngẫu nhiên R trong Cha mẹ
khoảng từ 0 ựến FỖn. Nếu F'k 1+ ≥R F'≥ k thì cá thể thứ k sẽ ựược lựa chọn vào quần thể mới. Quá trình sẽ lặp lại cho ựến khi số lượng cá thể ựạt một giá trị ựặt trước.
o Phương pháp cạnh tranh, các cá thể sẽ ựược sắp xếp theo ựộ thắch nghi của chúng từ những cá thể phù hợp nhất ựến cá thể ắt phù hợp nhất. Sau ựó, các cá thể ở phắa dưới sẽ bị loại bỏ chỉ giữ lại các cá thể phù hợp nhất.
Thông qua việc áp dụng các biến ựổi trên, một tập hợp mới có ựộ phù hợp (khả năng thắch nghi) cao hơn ựược tạo ra. Không gian tìm kiếm ựược mở rộng, số lượng lời giải không phù hợp sẽ bị loại bỏ và các lời giải tốt hơn sẽ ựược ghi nhận. 3.1.3 Ưu , khuyết ựiểm của thuật toán di truyền
Những ưu ựiểm khi sử dụng thuật toán di truyền vào xử lý phổ gamma: o Có khả năng tìm kiếm song song với số chiều không gian lớn.
o Không bị chi phối nhiều bởi không gian tìm kiếm và dữ liệu ban ựầu (khả năng vượt trội so với các thuật toán truyền thống).
o Có thể sử dụng với các mô hình phi tuyến phức tạp. o Loại bỏ ựược các tối ưu cục bộ, . . .
Tuy nhiên, thuật toán di truyền cũng có một số khuyết ựiểm như: o Thời gian thực hiện tương ựối lâu.
o Việc dự ựoán kết quả gặp khó khăn.
3.2 Làm khớp phổ gamma bằng thuật toán di truyền
Các phổ gamma thường ựược biểu diễn bởi n ựiểm số liệu (xi,yi) với xi biểu diễn kênh thứ i, yi cho biết số ựếm tại kênh này. Ta có thể coi số ựếm là một hàm của số kênh với dạng sau[4] :
( )
i i 1 m
y =F x ,a ,...,a (3.1)
Hàm F ựược xét ở trên thường phụ thuộc phi tuyến vào các tham số[4]. Do ựó, ựể tìm các tham số này người ta thường sử dụng các phương pháp làm khớp nhằm xác ựịnh một cách gần ựúng giá trị của các tham số ựã nêu.
Trong phần này, ta sẽ ứng dụng thuật toán di truyền trong việc tìm kiếm các tham số chưa biết của hàm làm khớp F. Quá trình làm khớp hàm phổ thông qua các bước cơ bản sau.
Bước 1: Tạo một tập hợp (quần thể ) bao gồm n phần tử (cá thể ), mỗi phần tử là một nghiệm của bài toán. Mỗi phần tử ựược biểu diễn dưới dạng các chuỗi các giá trị a1,Ầ,am ( mã di truyền). Mỗi giá trị ai ựược lấy một cách ngẫu nhiên dựa trên các dữ kiện ban ựầu của bài toán (phổ bức xạ). Khi ựó, tập hợp ban ựầu của bài toán có dạng như sau:
j, j 1,n= {a ,a ,...,a }j1 j2 jm
α = (3.2)
Bước 2: Các phần tử của tập hợp lời giải ựược tạo ra ở bước 1 sẽ ựược ựánh giá thông qua giá trị thắch nghi χ2ựược tắnh bởi công thức :
( ) 2 n i i j 2 2 i 1 i y F x , s = − α χ =∑ (3.3)
Bước 3: Áp dụng các phép toán lai tạo, ựột biến, chọn lọc tự nhiên ựã ựược nêu trong mục 3.1.2 với tập hợp ban ựầu này. Qua ựó, một tập hợp các lời giải mới sẽ ựược tạo ra với ựộ thắch nghi tốt hơn. Trong quá trình này, các lời giải tốt nhất của quá trình trước có thể ựược ghi nhận riêng ựể có thể sử dụng cho các tập hợp tiếp sau.
Bước 4: Kiểm tra ựiều kiện dừng. điều kiện dừng có thể xác ựịnh dựa vào các giá trị thắch nghi của cả tập hợp hay dựa vào số lượng tối ựa các thế hệ ựược phép. Các ựiều kiện này ựược xác ựịnh dựa trên kinh nghiệm hoặc ựiều kiện tới hạn của từng bài toán. Nếu ựiều kiện dừng ựược thỏa thì quá trình sẽ dừng lại. Ngược lại, quá trình sẽ ựược lặp lại từ bước 2 với tập hợp các lời giải mới ựược tắnh toán thông qua bước 3 cho ựến khi ựiều kiện dừng ựược thỏa mãn.
Kết quả cuối cùng của quá trình sẽ là một tập hợp các phần tử, mỗi phần tử mang một bộ mã bao gồm các tham số ai của hàm làm khớp F x ,a ,...,a( i 1 m). Phần tử tốt nhất của tập hợp này có thể xem như là lời giải tối ưu cho bài toán ựặt ra ban ựầu.
CHƯƠNG 4: CHƯƠNG TRÌNH XỬ LÝ
PHỔ GAMMA
4.1 Giới thiệu
Trong chương này, chúng tôi xây dựng chương trình xử lý phổ gamma dựa trên thuật toán di truyền ựã ựược giới thiệu ở chương 3 kết hợp với một vài thuật toán xử lý phổ tự ựộng ựã ựược nêu trong chương 2.
Chương trình xử lý phổ gamma (GASPA Ờ Gamma Spectrum Analysis) ựược viết dựa trên ngôn ngữ lập trình Fortran với giao diện ựược viết bằng C++ Builder. Các chức năng chắnh của chương trình này là:
o đọc file số liệu phổ, vẽ phổ.
o định vị các ựỉnh hiện diện trong phổ. o Xử lý và fit ựỉnh phổ theo phân bố Gauss. o Chuẩn ựường cong năng lượng, hiệu suất.
Hình 4.1 Giao diện chắnh của chương trình
Cửa sổ vẽ phổ Bảng Display Bảng ROI Menu ngang Bảng hiển thị kênh, số ựếm, năng lượng
Một số module chắnh trong chương trình GASPA: o Module đọc và vẽ phổ.
o Module Chuẩn năng lượng và bề rộng ựỉnh. o Module Tìm ựỉnh.
o Module Làm khớp ựỉnh.
4.2 Các thành phần của chương trình
4.2.1 Sơ ựồ khối chắnh
Sơ ựồ khối của chương trình xử lý phổ tự ựộng ựược mô tả trong Hình 4.2.
4.2.2 Module đỌC VÀ VẼ PHỔ
Chương trình có thể tương thắch với các tập tin phổ của nhiều chương trình thông dụng (vd: *.spe của MCA, *.tka của Genie2K, . . .) chương trình này ựược thiết lập mặc ựịnh chỉ ựọc số liệu của tập tin có chứa duy nhất số ựếm. Tuy nhiên nếu tập tin có chứa cả số kênh ghi nhận (ựược ghi trước số ựếm) thì cần phải chuyển ựổi sang tập tin chỉ chứa số ựếm. Sơ ựồ khối của module ựược mô tả trong Hình 4.3
4.2.3 Module CHUẨN NĂNG LƯỢNG VÀ BỀ RỘNG đỈNH
Module này nhằm chuẩn tương quan năng lượng theo kênh, từ ựó dễ dàng xác ựịnh ựược năng lượng tia gamma phát ra. đồng thời cũng chuẩn bề rộng ựỉnh theo năng lượng giúp cho việc phát hiện ựỉnh chập dễ dàng hơn. Sơ ựồ khối của một module như trên ựược mô tả trong Hình 4.4
Hình 4.4. Sơ ựồ khối của module Chuẩn năng lượng & bề rộng ựỉnh 4.2.4 Module TÌM đỈNH
Mục ựắch của module này là nhằm xác ựịnh vị trắ của các ựỉnh quang ựiện trong vùng quan tâm ựược chọn (ROI). Phương pháp sử dụng ựể tìm ựỉnh là phương pháp sử dụng ựạo hàm bậc 2. Sơ ựồ khối của nó ựược vẽ như trong Hình 4.5
Hình 4.5. Sơ ựồ khối module Tìm ựỉnh 4.2.5 Module LÀM KHỚP đỈNH
Mục ựắch của khối làm khớp phổ là tắnh toán các tham số của hàm xấp xỉ từ các số liệu thu nhận ban ựầu, từ ựó cung cấp các thông số về ựỉnh hấp thụ năng lượng quan tâm.
Phương pháp sử dụng ựể tắnh toán là thuật toán di truyền. Mỗi một ựỉnh quang ựiện j có thể xấp xỉ bằng một hàm phân bố Gauss ựược cho trong công thức sau [15]
( ) ( )2 2
ij i j i 0 j j
y =G x =A .exp - x −X / 2.σ (4.1) Ngoài ra, một số ựỉnh quang ựiện ựôi khi không ựối xứng. Tắnh ựến sự bất ựối xứng này ta có thể ựưa vào hàm (4.2) ựể mô tả sự lệch này[15].
( ) T ( i 0) T i T i A exp x -x / , y Y x 0, τ = = i 0 i 0 0 x x x x ≤ < > (4.2) Khi ựó vùng phổ quan tâm có thể xấp xỉ bằng tổng của các hàm Gauss và ựộ lệch của nó (nếu có), mỗi hàm mô tả một ựỉnh có trong vùng phổ
( ) sodinh ( ) i i j 0 j j j i j 1 y F x ,A ,X , G x BG = = σ = ∑ + (4.3a) hoặc ( ) sodinh ( ) ( ) i i j 0 j j Tj i T i i 1 y F x ,A ,X , , A , G x Y x BG = = σ τ = ∑ + + (4.3b)
Sơ ựồ khối của chương trình ựược mô tả trong hình 4.6 bao gồm 5 module nhỏ:
o Module Xây dựng tập hợp ban ựầu o Module đánh giá
o Module Lai tạo o Module đột biến
o Module Chọn lọc tự nhiên
Sơ ựồ khối của module Xây dựng tập hợp ban ựầu ựược mô tả trong Hình 4.7
Việc khởi tạo tập hợp các nghiệm ban ựầu ựược thực hiện thông qua ba bước: Bước 1: Thu nhận các dữ liệu ban ựầu như phổ bức xạ, số ựỉnh có trong phổ, năng lượng các ựỉnh E0, vùng phổ quan tâm ROI.
Bước 2 : Xác ựịnh ựộ dài bộ số liệu của từng phần tử lời giải. Trong trường hợp này, ựộ dài bộ số liệu là ba lần số ựỉnh có trong phổ. Mỗi bộ số liệu khi ựó có dạng ( 1 1 1 sodinh sodinh sodinh)
0 0
A ,X , ,...,Aσ ,X ,σ với mỗi bộ (A,X ,0 σ) cho biết các tham số của một ựỉnh tương ứng trong phổ.
Bước 3: Khởi tạo các giá trị ban ựầu bằng cách lấy ngẫu nhiên[15]
o Vị trắ ựỉnh X0 ựược lấy ngẫu nhiên trong khoảng 1 ựến 3 kênh bao quanh giá trị ựược tắnh toán thông qua E0
o Biên ựộ ựỉnh A ựược lấy ngẫu nhiên trong khoảng từ 0 ựến 1,5 lần số ựếm của kênh X0
o Bề rộng σ ựược lấy ngẫu nhiên trong khoảng từ 0,5 ựến 5 kênh với phổ ghi nhận bởi ựầu dò HpGe. Hoặc từ 6 ựến 10 kênh với ựầu dò NaI
o Nếu tắnh ựến ựộ lệch của ựỉnh ta sẽ lấy thêm hai tham số nữa bằng cách lấy ngẫu nhiên hai số tự nhiên a1 và a2 trong khoảng (0,1). Khi ựó ATj =a .A1 j và σ =j a .2τ
Bước 4 : Lặp lại bước 3 cho bộ số liệu mới ựến khi tạo ựủ số lượng phần tử của tập hợp lời giải ựược xác ựịnh ban ựầu thì dừng lại
Tập hợp các phần tử ựược xây dựng bởi module Xây dựng tập hợp ban ựầu sẽ ựược chuyển qua module đánh giá, các phần tử sẽ ựược tắnh toán ựộ phù hợp tương ứng bởi công thức (3.3) sau ựó sắp xếp theo thứ tự các phần tử phù hợp nhất cho ựến cái phần tử ắt tương thắch hơn. Sơ ựồ khối của quá trình đánh giá ựược mô tả qua Hình 4.8
Hình 4.8. Sơ ựồ khối module đánh giá
Tiếp theo, module Lai tạo sẽ nhận dữ liệu ựã ựược xử lý và tiến hành thuật toán lai tạo. Quá trình tiến hành theo các bước ựược mô tả bởi sơ ựồ khối Hình 4.9.
Bước 1: đối với mỗi phần tử trong tập hợp, một số r1 ựược lấy ngẫu nhiên trong khoảng (0,1). Nếu r1 nhỏ hơn hoặc bằng xác suất lai tạo R thì phần tử ựó sẽ ựược chọn ựể tiến hành lai tạo.
Bước 2: đối với mỗi cặp cha Ờ mẹ, một số nguyên r2 ựược lấy ngẫu nhiên trong khoảng (0, ựộ dài bộ số liệu).
Bước 3: Các bộ số liệu của cha Ờ mẹ sẽ ựược trao ựổi chéo với nhau từ ựầu chuỗi ựến vị trắ r2 . Khi ựó, hai phần tử mới ựược tạo thành.
Bước 4: Các phần tử mới tạo thành sẽ ựược ghi nhận. Tập hợp mới bao gồm