Bài toán trong đó điện trƣờng và bộ dẫn điện đã biết trƣớc nhƣng nguồn điện lại không đƣợc biết thì đƣợc gọi là bài toán đảo (xem hình 2.10). Trong các ứng dụng y tế đối với các hiện tƣợng điện sinh học thì bài toán đảo có tầm quan trọng nhất định trong khám và điều trị bệnh. Ví nhƣ, trong chẩn đoán bệnh hàng ngày thì các bác sĩ chuyên khoa tim và các bác sĩ chuyên khoa thần kinh luôn phải tìm cách xác định nguồn gốc của các tín hiệu từ sinh học hoặc các tín hiệu điện sinh học đo đƣợc. Các bệnh lý tác động tới nguồn tạo nên nền tảng cho các nghiên cứu chẩn đoán của họ - đó là những trạng thái chẩn đoán của các bộ phận tƣơng ứng.
Hình 2.10. Mô hình hóa bài toán thuận và đảo điện trường sinh học
2.3.2 Xác định hàm mục tiêu
Vấn đề đầu tiên trƣớc khi giải bài toán đảo điện trƣờng sinh học là phải xây dựng đƣợc hàm mục tiêu cho bài toán. Về mặt lý thuyết, bài toán chỉ đúng nếu toàn bộ sự phân bố của điện thế trên bề mặt đều đƣợc biết, nhƣng điều này là không thể. Thực tế, các tín hiệu vào cho bài toán đảo có đƣợc từ một số hữu hạn
của các điện cực trên bề mặt cơ thể ngƣời đo đƣợc bằng các máy điện tim. (R. S. Macleod và D. H. Brooks 1998) [8] đã chứng minh rằng số các điện cực trong khoảng từ 32 đến 200 là đủ để diễn tả thỏa đáng sự phân bố bề mặt điện thế và đủ để định vị nguồn lƣỡng cực.
Vì vậy, hàm mục tiêu đƣợc xây dựng để diễn tả sự khác nhau giữa các trƣờng điện thế quan sát đƣợc và các trƣờng điện thế tính toán đƣợc ở các nút. Ở đây, tôi sử dụng công thức bình phƣơng tối thiểu để đánh giá sự sai khác này và ta có công thức sau:
(2.3) Trong đó, là số hữu hạn các nút đƣợc chọn trên biên. là điện thế tính đƣợc và điện thế đo đƣợc tại các nút đó. Vấn đề của chúng ta là tìm lƣỡng cực có các trƣờng điện thế làm giảm thiểu hàm đánh giá này.
Khi đó, bài toán đảo trở thành tìm nguồn điện trong tim sao cho điện thế phát sinh làm tối thiểu hóa hàm f.
2.3.3 Nguồn lƣỡng cực tƣơng đƣơng tối ƣu
Nhƣ đã trình bày ở trên, mô hình nguồn điện đƣợc giả sử là một nguồn lƣỡng cực đơn hay còn gọi là nguồn lƣỡng cực tƣơng đƣơng vì nó đƣợc xem nhƣ là mô hình đại diện của các nguồn điện thật trong tim.
Với mô hình này, nguồn đƣợc đặc trƣng bởi năm tham số : vị trí tâm (x, y), góc quay , độ lớn của nguồn IV và khoảng cách nguồn d. Tại mỗi vị trí, có thể có nhiều lƣỡng cực khác nhau (khác nhau về góc quay, độ lớn). Lƣỡng cực tƣơng đƣơng tối ƣu là lƣỡng cực có cùng vị trí với các lƣỡng cực khác nhƣng có hƣớng và độ lớn làm tối thiểu hóa hàm mục tiêu của thuật toán tối ƣu toàn cục. Các lƣỡng cực tối ƣu này gọi là lƣỡng cực tƣơng đƣơng tối ƣu cục bộ [5]. Tại mỗi vị trí, luôn có ít nhất một lƣỡng cực tƣơng đƣơng tối ƣu cục bộ.
Hình 2.1 Luôn tồn tại lưỡng cực tối ưu cục bộ tại mỗi vị trí xác định
Mỗi lƣỡng cực đƣợc xem là một vector có hƣớng từ đơn cực âm đến đơn cực dƣơng. Khi đó, vector momen lƣỡng cực đƣợc xác định bởi công thức :
.
V
P I d
(2.4) Trong đó, d là khoảng cách nguồn và IV là độ lớn của các đơn cực. Khi đó, lƣỡng cực đƣợc đặc trƣng bởi momen lƣỡng cực và vị trí tâm.
Theo công thức tính trong chƣơng 1, các điện thế này tỷ lệ tuyến tính với momen lƣỡng cực, P, theo công thức
Φ = A(r).P (2.5)
Trong đó, A(r) gọi là ma trận chuyển tƣơng ứng với mỗi vị trí r cũng nhƣ moment của lƣỡng cực. Gọi Popt là momen của lƣỡng cực tối ƣu cục bộ, khi đó ta cũng có:
Popt = [At(r) A(r)]-1 At(r) Φopt (2.6) Gọi Φobs=(Φ1
obs,Φ2
obs,…,ΦN
obs) là điện thế đo đƣợc thực tế đƣợc xác định tại N vị trí trên lồng ngực thông qua các điện cực (electrode). Khi đó, Hàm mục tiêu của thuật toán tối ƣu toàn cục đƣợc xác định theo công thức bình phƣơng tối thiểu giữa điện thế đo đƣợc thực tế và điện thế phát sinh bởi lƣỡng cực. Ta có công thức:
S(r,P) = (Φobs-Φ)t(Φobs-Φ) (2.7) Khi đó, sai số của lƣỡng cực tối ƣu cục bộ sẽ đƣợc xác định nhƣ sau :
S(r,Popt) = (Φobs-Φopt)t(Φobs-Φopt)
= Φtobs{E-A(r)[At(r)A(r)]-1At(r)}Φobs (2.8) Trong đó, E là ma trận đơn vị, ký hiệu t là ký hiệu chuyển vị ma trận. Từ công thức trên ta thấy, hàm mục tiêu S(r, Popt) chỉ phụ thuộc duy nhất vào vị trí của lƣỡng cực chứ không phụ thuộc vào các tham số khác nhƣ hƣớng và độ lớn của lƣỡng cực. Và việc xác định lƣỡng cực tƣơng đƣơng tối ƣu toàn cục có thể đƣợc xác định bằng thuật toán tối ƣu toàn cục.
2.3.4 Giải quyết bài toán
Trong bài toán đảo điện tim đồ, ta cần xác định nguồn điện phát sinh trong tim. Đối với bài toán điện trƣờng sinh học, việc xác định nghiệm là rất khó do độ phức tạp của miền nghiệm cũng nhƣ sự không ổn định của dữ liệu đầu vào. Ở đây nguồn điện đƣợc đặc trƣng bởi các tham số: vị trí (x, y), góc quay , độ lớn của nguồn IV và khoảng cách nguồn d. Nghiệm của bài toán đảo là nghiệm mà giá trị hàm mục tiêu là nhỏ nhất. Mô hình giải quyết bài toán đảo nhƣ sau:
Hình 2.12. Sơ đồ quy trình giải quyết bài toán
Thuật toán tối ƣu
Điện thế đo đƣợc Nguồn dự kiến Vị trí (x,y) Hƣớng Độ lớn m FEM Hàm mục tiêu Điện thế tính toán
CHƢƠNG 3: ĐÁNH GIÁ CÁC PHƢƠNG PHÁP TỐI ƢU
Bài toán cục bộ hóa nguồn năng lƣợng điện tâm đồ đƣợc coi nhƣ một bài toán tối ƣu. Ở phần trƣớc đã trình bày, lời giải cho bài toán đảo điện tâm đồ có thể thu đƣợc bằng việc sử dụng phƣơng pháp phần tử hữu hạn kết hợp với một phƣơng pháp tối ƣu trong việc đánh giá các tham số của các nguồn năng lƣợng lƣỡng cực. Trong luận văn này, sẽ giới thiệu ba phƣơng pháp tối ƣu: thuật toán di truyền, mô phỏng luyện kim, phƣơng pháp downhill simplex, sau đó so sánh ba phƣơng pháp trên trong việc giải bài toán đảo điện tâm đồ.
3.1 Thuật toán di truyền (Genetic algorithm)
Thuật toán di truyền là thuật toán bắt chƣớc sự chọn lọc tự nhiên và di truyền. Trong tự nhiên, các cá thể khỏe, có khả năng thích nghi tốt với môi trƣờng sẽ đƣợc tái sinh và nhân bản ở các thế hệ sau. Mỗi cá thể có cấu trúc gien đặc trƣng cho phẩm chất của cá thể đó. Trong quá trình sinh sản, các cá thể con có thể thừa hƣởng các phẩm chất của cả cha và mẹ, cấu trúc gien của nó mang một phần cấu trúc gien của cha và mẹ. Ngoài ra, trong quá trình tiến hóa, có thể xảy ra hiện tƣợng đột biến, cấu trúc gien của cá thể con có thể chứa các gien mà cả cha và mẹ đều không có.
Trong thuật toán di truyền, mỗi cá thể đƣợc mã hóa bởi một cấu trúc dữ liệu mô tả cấu trúc gien của cá thể đó, ta sẽ gọi nó là nhiễm sắc thể (chroniosome). Mỗi nhiễm sắc thể đƣợc tạo thành từ các đơn vị đƣợc gọi là gien. Chẳng hạn, trong các thuật toán di truyền cổ điển, các nhiễm sắc thể là các chuỗi nhị phân, tức là mỗi cá thể đƣợc biểu diễn bởi một chuỗi nhị phân.
Thuật toán di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Một quần thể ứng với một giai đoạn phát triển sẽ đƣợc gọi là một thế hệ.Từ thế hệ ban đầu đƣợc tạo ra, thuật toán di truyền bắt chƣớc chọn lọc tự nhiên và di truyền để biến đổi các thế hệ. Thuật toán di truyền sử dụng các toán tử cơ bản sau đây để biến đổi các thế hệ.
Toán tử tái sinh (reproduction) (còn đƣợc gọi là toán tử chọn lọc (selection)). Các cá thể tốt đƣợc chọn lọc để đƣa vào thế hệ sau. Sự lựa chọn này đƣợc thực hiện dựa vào độ thích nghi với môi trƣờng của mỗi cá thể. Ta sẽ gọi
hàm ứng mỗi cá thể với độ thích nghi của nó là hàm thích nghi (fitness function).
Toán tử lai ghép (crossover). Hai cá thể cha và mẹ trao đổi các gien để tạo ra hai cá thể con.
Toán tử đột biến (mutation). Một cá thể thay đổi một số gien để tạo thành cá thể mới.
Tất cả các toán tử trên khi thực hiện đều mang tính ngẫu nhiên. Sơ đồ sau đây minh họa hoạt động của thuật toán di truyền:
Bây giờ ta sẽ xét chi tiết hơn toán tử chọn lọc và các toán tử di truyền (lai ghép, đột biến) trong các thuật toán di truyền cổ điển.
Bắt đầu
Khởi tạo quần thể
Đánh giá độ thích nghi Chọn lọc Lai ghép Đột biến Thỏa mãn điều kiện dừng? Kết quả Kết thúc Đúng Sai
1. Chọn lọc: Việc chọn lọc các cá thể từ một quần thể dựa trên độ thích nghi của mỗi cá thể. Các cá thể có độ thích nghi cao có nhiều khả năng đƣợc chọn. Cần nhấn mạnh rằng, hàm thích nghi chỉ cần là một hàm thực dƣơng, nó có thể không tuyến tính, không liên tục, không khả vi.
Chọn lọc bánh xe quay: Quá trình chọn lọc đƣợc thực hiện theo kỹ thuật quay bánh xe.
Giả sử thế hệ hiện thời P(t) gồm có n cá thể {x1,..,xn}. Số n đƣợc gọi là cỡ của quần thể. Với mỗi cá thể xi, ta tính độ thích nghi của nó f(xi). Tính tổng các độ thích nghi của tất cả các cá thể trong quần thể:
Mỗi lần chọn lọc, ta thực hiện hai bƣớc sau:
Sinh ra một số thực ngẫu nhiên q trong khoảng (0, F); xk là cá thể đƣợc chọn, nếu k là số nhỏ nhất sao cho
Việc chọn lọc theo hai bƣớc trên có thể minh họa nhƣ sau: Ta có một bánh xe đƣợc chia thành n phần, mỗi phần ứng với độ thích nghi của một cá thể (hình 3.5). Một mũi tên chỉ vào bánh xe. Quay bánh xe, khi bánh xe dừng, mũi tên chỉ vào phần nào, cá thể ứng với phần đó đƣợc chọn.
Hình 3.1 – Kỹ thuật quay bánh xe
Rõ ràng là với cách chọn này, các cá thể có thể có độ thích nghi càng cao càng có khả năng đƣợc chọn. Các cá thể có độ thích nghi cao có thể có một hay nhiều bản sao, các cá thể có độ thích nghi thấp có thể không có mặt ở thế hệ sau (nó bị chết đi).
Chọn lọc xếp hạng: Phƣơng pháp này sẽ đƣợc xếp hạng cá thể dựa trên độ thích nghi của chúng. Cá thể xấu nhất sẽ có giá trị 1, kế tiếp là 2… Và cá thể tốt nhất sẽ có độ thích nghi N (N là số nhiễm sắc thể trong quần thể).
Chọn lọc đấu loại trực tiếp:
Chọn lọc đấu loại trực tiếp 2: Hai nhiễm sắc thể khác nhau đƣợc chọn ngẫu nhiên và đƣợc so sánh với nhiễm sắt thể tồn tại. Nếu nhiễm sắc thể I1 không tốt hơn nhiễm sắc thể I2 nghĩa là: f(I1) ≤ f(I2) thì nhiễm sắc thể I1 chết đi và bị loại ra khỏi quần thể (lien kết đƣợc phá vỡ một cách tùy ý). Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại.
Chọn lọc cạnh tranh 3: Giống nhƣ trên, ba nhiễm sắc thể khác nhau đƣợc chọn ngẫu nhiên và đƣợc so sánh. Nếu chúng ta có f(I1) ≤ f(I2) và f(I1) ≤ f(I3) thì nhiễm sắc thể I1 chết đi và bị gạt ra khỏi quần thể. Quá trình này lặp lại đến hết N nhiễm sắc thể còn lại.
2. Lai ghép:Trên cá thể đƣợc chọn lọc, ta tíến hành toán tử lai ghép. Đầu tiên ta cần đƣa ra xác suất lai ghép pc. xác suất này cho ta hy vọng có pc.n cá thể đƣợc lai ghép (n là cỡ của quần thể).
Với mỗi cá thể ta thực hiện hai bƣớc sau:
Sinh ra số thực ngẫu nhiên r trong đoạn [0, 1]; Nếu r < pc thì cá thể đó đƣợc chọn để lai ghép
Từ các cá thể đƣợc chọn để lai ghép, ngƣời ta cặp đôi chúng một cách ngẫu nhiên. Trong trƣờng hợp các nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định m, ta có thể thực hiện lai ghép nhƣ sau: Với mỗi cặp, sinh ra một số nguyên ngẫu nhiên p trên đoạn [0, m -1], p là vị trí điểm ghép. Cặp gồm hai nhiễm sắc thể
3. Đột biến: Ta thực hiện toán tử đột biến trên các cá thể có đƣợc sau quá trình lai ghép. Đột biến là thay đổi trạng thái một số gien nào đó trong nhiễm sắc thể. Mỗi gien chịu đột biến với xác suất pm. Xác suất đột biến pm do ta xác định và là xác suất thấp. Sau đây là toán tử đột biến trên các nhiễm sắc thể chuỗi nhị phân.
Với mỗi vị trí i trong nhiễm sắc thể:
Ta sinh ra một số thực nghiệm ngẫu nhiên pi trong [0,1]. Qua đột biến a đƣợc biến thành a’ nhƣ sau:
Trong đó :
Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới đƣợc sinh ra. Công việc còn lại của thuật toán di truyền bây giờ chỉ là lặp lại các bƣớc trên.
Thuật toán di truyền khác với các thuật toán tối ƣu khác ở các điểm sau:
Thuật toán di truyền chỉ sử dụng hàm thích nghi để hƣớng dẫn sự tìm kiếm, hàm thích nghi chỉ cần là hàm thực dƣơng. Ngoài ra, nó không đòi hỏi không gian tìm kiếm phải có cấu trúc nào cả.
Thuật toán di truyền làm việc trên các nhiễm sắc thể là mã của các cá thể cần tìm.
Thuật toán di truyền tìm kiếm từ một quần thể gồm nhiều cá thể.
Các toán tử trong thuật toán di truyền đều mang tính ngẫu nhiên.
Để giải quyết một vấn đề bằng thuật toán di truyền, chúng ta cần thực hiện các bƣớc sau đây:
Trƣớc hết ta cần mã hóa các đối tƣợng cần tìm bởi một cấu trúc dữ liệu nào đó. Chẳng hạn, trong các thuật toán di truyền cổ điển, nhƣ trong ví dụ trên, ta sử dụng mã nhị phân.
Thiết kế hàm thích nghi. Trong các bài toán tối ƣu, hàm thích nghi đƣợc xác định dựa vào hàm mục tiêu.
Trên cơ sở cấu trúc của nhiễm sắc thể, thiết kế các toán tử di truyền (lai ghép, đột biến) cho phù hợp với các vấn đề cần giải quyết.
Xác định cỡ của quần thể và khởi tạo quần thể ban đầu.
Xác định xác suất lai ghép pc và xác suất đột biến. Xác suất đột biến cần là xác suất thấp. Ngƣời ta (Goldberg, 1989) khuyên rằng nên chọn xác suất lai ghép là 0,6 và xác suất đột biến là 0,03. Tuy nhiên cần qua thử nghiệm để tìm ra các xác suất thích hợp cho vấn đề cần giải quyết.
Nói chung thuật ngữ thuật toán di truyền là để chỉ thuật toán di truyền cổ điển, khi mà cấu trúc của các nhiễm sắc thể là các chuỗi nhị phân với các toán tử di truyền đã đƣợc mô tả ở trên. Song trong nhiều vấn đề thực tế, thuận tiện hơn, ta có thể biểu diễn nhiễm sắc thể bởi các cấu trúc khác, chẳng hạn vectơ thực, mảng hai chiều, cây,... Tƣơng ứng với cấu trúc của nhiễm sắc thể, có thể có nhiều cách xác định các toán tử di truyền. Quá trình sinh ra thế hệ mới P(t) từ thế hệ cũ P(t - 1) cũng có nhiều cách chọn lựa. Ngƣời ta gọi chung các thuật toán này là thuật toán tiến hóa (evolutionary algorithms) hoặc chƣơng trình tiến hóa (evolution program).
Cấu trúc cơ bản của thuật toán di truyền là nhƣ sau: Bắt đầu
T=0;
Khởi tạo thế hệ ban đầu P(t)
Đánh giá P(t) (theo hàm thích nghi); Khi (điều kiện dừng chƣa thỏa) lặp t = t + 1;
Sinh ra thế hệ mới P(t) từ P(t-1) bởi
Chọn lọc P(t)
Lai ghép P(t)
Đột biến P(t) Đánh giá P(t);
Kết thúc
Trong thủ tục trên, điều kiện kết thúc vòng lặp có thể là một số thế hệ đủ lớn nào đó, hoặc độ thích nghi của các cá thể tốt nhất trong các thế hệ kế tiếp nhau khác nhau không đáng kể. Khi thuật toán dừng, cá thể tốt nhất trong thế hệ cuối cùng đƣợc chọn làm nghiệm cần tìm.
Áp dụng thuật toán di truyền đối với bài toán đảo điện tâm đồ gồm các bƣớc sau:
Bƣớc 1: Bƣớc khởi tạo quần thể: tạo một quần thể ban đầu gồm các nhiễm