MỘT SỐ PHƢƠNG PHÁP XÂY DỰNG BỘ DỮ LIỆU

Một phần của tài liệu Xây dựng một số bộ dữ liệu phân tán trong không gian 2D cho phương pháp RBF FD giải phương trình Poisson (Trang 32 - 61)

2.3.1. Bộ tâm ngẫu nhiên

Mục đích là tạo ra những dải trống không chứa dữ liệu một cách ngẫu nhiên

Hình 2.2 Sinh tâm ngẫu nhiên (400 tâm trong số 4000 tâm)

2.3.2. Cấu trúc Ngựa vằn (Zebra)

Mục đích là tạo ra những dải trống không chứa dữ liệu, tựa nhƣ những đƣờng Ngựa vằn

Để xét miền D = [0, 6]2.

Đầu tiên tạo ra 4N điểm ngẫu nhiên (x1, x2) phân bố đều trên [0, l]2

, Tiếp theo nhân tọa độ với 6 để đƣợc 4N điểm ngẫu nhiên (6x1, 6x2) phân bố đều trên [0, 6]2

.

Tiếp đó bỏ đi các điểm có hoành độ thuộc tập (0.25, 1.75) (2.25, 3.75) (4.25, 5.75), nghĩa là bỏ đi khoảng 3N điểm nằm trong 75% diện tích của D = [0, 6]2 và chỉ còn giữ lại khoảng N điểm.

Hình 2.5 Cấu trúc ngựa vằn (800 tâm với độ rộng dải trống là 0.65)

Hình 2.7 Cấu trúc ngựa vằn (1200 tâm với độ rộng dải trống là 0.13)

Hình 2.9 Cấu trúc ngựa vằn (1200 tâm với độ rộng dải trống là 0.15)

2.3.3. Cấu trúc co đều xung quanh các điểm có tọa độ nguyên

Mục đích là tạo ra một cấu trúc, trong đó các điểm đƣợc xét tích tụ xung quanh các điểm của miền D có hoành độ và tung độ đều là số nguyên. Cụ thể, nếu xét D = [0, 3]2 thì sẽ làm nhƣ sau:

Đầu tiên tạo ra đủ nhiều điểm ngẫu nhiên phân bố đều trong miền [0, 1]2,

Sau đó tịnh tiến thông qua phép cộng véctơ (-0.5, -0.5) để đƣợc các điểm ngẫu nhiên phân bố đều trong miền [-0.5, 0.5]2, tức là nếu điểm cũ có tọa độ là (x1, x2) [0, 1]2 thì điểm mới sau khi tịnh tiến là

1 0.5, 2 0.5

x x [-0.5, 0.5]2

Tiếp theo nhân tọa độ của các điểm trên với hệ số c [0.2, 1] để co các điểm đó lại trong một hình vuông nhỏ hơn. tức là nếu điểm cũ có tọa độ là (x1,

Để "phủ" D = [0, 3]2

thì cần chọn 9 nhóm điểm, mỗi nhóm có k điểm, trong đó k là số mà ta chọn để làm thí nghiệm. Ví dụ: Nhóm Ni gồm các điểm có chỉ số từ i - 1 k 1, đến 1 i 9

Chia nhóm N1 thành 4 phần và tinh tiến về 4 góc nhƣ sau: Nếu (x1, x2) N1, x1 >= 0,x2 > 0 thì giữ nguyên; Nếu (x1, x2) N1, x1 < 0, x2 >= 0 thì tịnh tiến nó về điểm (3, 0) D, tức là (x1, x2) biến thành (x1 + 3, x2); Nếu (x1, x2)

N1, x1 <= 0, x2 < 0 thì tịnh tiến nó về điểm (3, 3) D, tức là (x1, x2) biến thành (x1 + 3, x2 + 3); Nếu (x1, x2) N1, x1 > 0, x2 <= 0 thì tịnh tiến nó về điểm (0, 3) D, tức là (x1, x2) biến thành (x1, x2 +3).

Chia nhóm N2 thành 2 phần và tinh tiến về 2 điểm (1, 0) và (1, 3) nhƣ sau: Nếu (x1, x2) N2, x2 >= 0 thì tịnh tiến nó về điểm (1, 0) D,tức là (x1, x2) biến thành (x1 + 1, x2); Nếu (x1, x2) N2, x2 < 0 thì tịnh tiến nó về điểm (1, 3) D, tức là (x1, x2) biến thành (x1 + 1, x2 + 3).

Chia nhóm N3 thành 2 phần và tinh tiến về 2 điểm (2, 0) và (2, 3) nhƣ sau: Nếu (x1, x2) N3, x2 > 0 thì tịnh tiến nó về điểm (2, 0) D, tức là (x1, x2) biến thành (x1 +2, x2); Nếu (x1, x2) N3,x2 <= 0 thì tịnh tiến nó về điểm (2, 3)

D, tức là (x1, x2) biến thành (x1 + 2, x2 + 3).

Chia nhóm N4 thành 2 phần và tinh tiến về 2 điểm (0, 1) và (3, 1) nhƣ sau:

Nếu (x1, x2) N4, x1 >= 0 thì tịnh tiến nó về điểm (0, 1) D, tức là(x1, x2) biến thành (x1, x2 + 1); Nếu (x1, x2) N4, x1 < 0 thì tịnh tiến nó về điểm (3, 1) D, tức là (x1, x2) biến thành (x1 + 3, x2+ 1)

Chia nhóm N5 thành 2 phần và tinh tiến về 2 điểm (0, 2) và (3, 2) nhƣ sau: Nếu (x1, x2) N5, x1 > 0 thì tịnh tiến nó về điểm (0, 2) D, tức là (x1, x2) biến thành (x1, x2 + 2); Nếu (x1,x2) N5, x1 <= 0 thì tịnh tiến nó về điểm (3, 2) D, tức là(x1, x2) biến thành (x1 + 3, x2 + 2).

Tịnh tiến nhóm N6 về điểm (1, 1), tức là (x1, x2) N6 biến thành (x1+1, x2+ 1).

Tịnh tiến nhóm N7 về điểm (1, 2), tức là (x1,x2) N7 biến thành (x1+1, x2+ 2). Tịnh tiến nhóm N8 về điểm (2, 1), tức là (x1,x2) N8 biến thành (x1+2, x2+ 1). Tịnh tiến nhóm N9 về điểm (2, 2), tức là (x1,x2) N9 biến thành (x1+2, x2+ 2). Nhận xét

Sau khi làm nhƣ trên, ta sẽ thu đƣợc cấu trúc giống nhƣ xuất phát từ trạng thái phân bố đều trên miền D = [0, 3]2 rồi co về các tọa độ nguyên.

Thực ra ,có thể tạo cấu trúc trên một cách đơn giản hơn hẳn. Sinh ra tập điểm ngẫu nhiên phân bố đều trên miền D = [0, 3]2 rồi khoét đi 3 dải song song với trục tung và 3 dải song song với trục hoành. Nếu làm nhƣ thế thì đơn giản về thuật toán, nhƣng số điểm ngẫu nhiên phải tạo ra sẽ lớn hơn nhiều

Về nguyên tắc, khi 0.4 < c < 0.6 thì ta thu đƣợc kết quả tƣơng tự nhƣ cấu trúc Zebra

Hình 2.10 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (200 tâm trong miền với hệ số co là 0.2)

Hình 2.11 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (400 tâm trong miền với hệ số co là 0.2)

Hình 2.12 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (400 tâm trong miền với hệ số co là 0.4)

Hình 2.13 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (800 tâm trong miền với hệ số co là 0.4)

Hình 2.14 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (400 tâm trong miền với hệ số co là 0.6)

(400 tâm trong miền với hệ số co là 0.6)

Hình 2.15 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (800 tâm trong miền với hệ số co là 0.6)

Hình 2.16 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (400 tâm trong miền với hệ số co là 0.8)

Hình 2.17 Cấu trúc co đều xung quanh các điểm có tọa độ nguyên (800 tâm trong miền với hệ số co là 0.8)

2.3.4. Làm mịn thích nghi

Chỉ báo sai số (Error indicator). Cho rời rạc của bài toán Dirichlet (1.34)-(1.35), với mỗi và mỗi chúng ta xác định chỉ báo sai số , kết hợp với cạnh có hƣớng bởi , : uˆ uˆ , trong đó uˆ là nghiệm của (1.34)-(1.35). Cho : max , : , Cạnh đƣợc đánh dấu để làm mịn nếu , , trong đó 0,1 là giới hạn cho phép của ngƣời dùng.

Lƣu ý rằng, ta quyết định ấn định chỉ báo sai số đến các cạnh hơn là đến các tâm bởi vì đây là kỹ thuật phổ biến hơn. mà có thể tự nhiên dần đến làm mịn không đẳng hƣớng, nếu là xấp xỉ. Nhắc lại rằng, phƣơng pháp làm mịn phổ biến của phƣơng pháp PTHH thích nghi là chia đôi tam giác, có thể đƣợc xem nhƣ làm mịn cạnh.

Ta làm mịn cạnh bằng cách chèn một tâm mới / 2 vào trung điểm của cạnh này. Tuy nhiên, điểm này có thể đƣợc nằm ở vị trí rất gần với một tâm đã tồn tại , hoặc một tâm mới đã đƣợc tạo bởi làm mịn một cạnh khác. Cách tiếp cận của ta là chỉ tiến hành làm mịn nếu việc chèn thêm một tâm mới không làm giảm đi đáng kể sự chia tách địa phương trong vùng lân cận của khoảng chia tách này đƣợc xác định bởi

4 1 1 : , \ 4 i i i sep dist , ,

Trong đó 1, 2..., 4 là bốn điểm thuộc mà gần nhất

dist i, \ i : min 2: là khoảng cách từ điểm đến tập hữu hạn.

Để đơn giản, ta đặt các giả thiết về biên của và tập nhƣ sau:

1. Các thành phần liên thông của là các đƣờng cong tham số đơn giản đóng.

2.Với mỗi thành phần liên thông đơn giản của , tập chứa ít nhất ba điểm và 3) đối với mỗi cặp điểm liền kề 1, 2 xác định một điểm giữa hợp lý , ví dụ, điểm tƣơng ứng với trung bình của các giá trị tham số của 1, 2. Khi đó, làm mịn địa phương của đƣợc xác định hợp lý bởi thuật toán sau: Với mỗi , tìm hai điểm lân cận

, và thuộc , ta mở rộng bằng cách chèn vào hai điểm giữa và , đƣợc xác định bởi cặp điểm , và , .

Thuật toán Làm mịn không lưới thích nghi

a. Tƣ tƣởng thuật toán: Các tâm mới đƣợc sinh ra tại những vị trí nghiệm có kỳ dị (có nghĩa là sai số tại vị trí đó cao hơn nhiều so với các vị trí khác). Đầu tiên, tính sai số chỉ báo bởi công thức

: max , : , , với , : uˆ uˆ , trong đó uˆ là nghiệm của (1.38)-(1.39). Tiếp theo, đánh dấu tất cả các cạnh nếu các cạnh đó thỏa mãn , , trong đó 0,1 là một giới hạn cho phép của ngƣời dùng. Tiếp theo với mỗi cạnh đƣợc đánh dấu, chèn một tâm mới vào vị trí giữa của cạnh đó nếu việc chèn đó không làm giảm đi đáng kể sự chia tách địa phương. Cuối cùng, áp dụng Thuật Toán 1 để làm mịn địa phƣơng, nghĩa là bất kỳ tập i nào mà có chứa một điểm i nào đó quá xa thì chèn thêm một tâm mới vào vị trí giữa của cạnh đó. b. Nội dung thuật toán:

Input: Tập các tâm , bộ các tâm cho hệ số nội suy hàm RBF

: \

Output: Tập các tâm đã đƣợc làm mịn và các bộ các tâm cho hệ số nội suy hàm RBF : \ .

Các tham biến: (giới hạn cho phép của chỉ báo sai số), (giới hạn tách biệt cho phép). Các giá trị tham biến đƣợc sử dụng trong các thử nghiệm số của ta : = 0.5 đối với Bài Toán Thử Nghiệm 1.34 và = 0.3 đối với Bài Toán Thử Nghiệm 1.35, = 0.7.

I. Tính chỉ báo sai số lớn nhất và đánh dấu tất cả các cạnh

int

, \ , , sao cho , . Đầu tiên, gán : . II. Với mỗi cạnh đã đánh dấu :

1. Cho : / 2 .

2. Nếu dist , sep :

i. Gán :

ii. Nếu

III. 1. Với mỗi \

i. Áp dụng Thuật Toán 1 để tìm .

ii. Tính các khoảng cách d 2, \ và trung bình của chúng 1 : \ av d d l trong đó l # 1 và đánh dấu tất cả các cạnh , \ sao cho d 2dav.

2. Lặp lại Bƣớc II đối với các cạnh đã đƣợc đánh dấu trong Bƣớc III. 1 và tập tất cả các tâm mới đã đƣợc tạo trong tập aux .

3. Áp dụng Thuật Toán 1 để tính với tất cả aux và tính lại đối với mọi \ aux sao cho dist , aux d : max 2

Nhận xét

1. Thường xuyên xảy ra và đồng thời . Trong các trường hợp này, chỉ báo sai số đối với các cạnh có giá trị giống nhau và vì vậy, tâm mới / 2 có khả năng chèn vào 2 cạnh đó là như nhau. Khi đó có thể xử lý bằng cách, trong bước I, tránh cạnh sau khi cạnh đã được xử lý

2. Trong Bước II.2.ii có thể xảy ra, hoặc cũng thuộc vào cạnh đã được đánh dấu, vì vậy hoặc đã nằm trong tập . Để tránh thực hiện hai lần, cần lưu trữ đủ thông tin các thành phần của đã được làm mịn.

3. Điều chỉnh tập trong Bước III, giúp cải tiến các bộ tâm cho hệ số nội suy hàm RBF, khi các tâm trong bộ các tâm cho hệ số nội suy hàm RBF này có khoảng cách đến quá không đều sau khi thực hiện quá trình làm mịn trong Bước II.

4. Nếu Thuật Toán 2 không sinh ra bất kỳ tâm mới nào, thì lặp lại với giới hạn tách biệt cho phép giảm : 0.9 cho đến khi đạt được số các tâm

mới số tâm nhỏ nhất cho phép (trong các thử nghiệm của ta, 10 tâm mới là sốtâm nhỏ nhất cần được được sinh ra).

c. Đánh giá độ phức tạp

Mệnh đề 2.2. Cho N là số các tâm rời rạc trong tập , Nint là số các tâm trong tập int, k là số các tâm cần thiết trong tập , m>klà số các tâm lâncận của . Khi đó, độ phức tạp của thuật toán này là O m N. int.log N

Chứng minh

I. Vì bƣớc I. sử dụng Thuật Toán 1 nên độ phức tạp là O m N. int.log N . II.Chi phí tính toán tại bƣớc II. là O(N).

III. Tính chi phí tính toán tại bƣớc III.

1. i. Chi phí tính toán là Nint.O m N. int.log N (áp dụng Thuật toán 1). ii. Chi phí tính toán là O( k ) .

Vì vậy chi phí tính toán tại bƣớc III. 1. là Nint.O m N. int.log N . 2. Chi phí tính toán là Nmark.O(N). Với Nmark nhỏ so với Nint

3. Chi phí tính toán là O m N. int.log N .

Vì chi phí tính toán của Bƣớc III. là theo quy tắc cộng, nên độ phức tạp tính toán tại bƣớc này là 2

int

. .log

O m N N .

Vì chi phí tính toán của đoạn chƣơng trình từ Bƣớc I đến Bƣớc 3 của Thuật toán 2 là theo quy tắc cộng nên độ phức tạp của thuật toán này là

2 int

. .log

Hình 2.18 Bộ tâm là sản phẩm của thuật toán làm mịn thích nghi (với số nút trên miền = 145 và số nút trên biên = 44)

Hình 2.19 Bộ tâm là sản phẩm của thuật toán làm mịn thích nghi (Số nút trên miền 206 và số nút trên biên 54)

Hình 2.20 Bộ tâm là sản phẩm của thuật toán làm mịn thích nghi (số nút trên miền = 283 và số nút trên biên= 74)

Hình 2.21 Bộ tâm là sản phẩm của thuật toán làm mịn thích nghi (với số nút trên miền = 433 và số nút trên biên = 102)

CHƢƠNG 3: THỬ NGHIỆM SỐ

3.1. GIAO DIỆN CHÍNH CỦA CHƢƠNG TRÌNH

Giao diện chính của chƣơng trình:

Hình 3.1 Giao diện chính của chƣơng trình

3.2. SAI SỐ VÀ CÁC BÀI TOÁN THỬ NGHIỆM 3.2.1 Sai số 3.2.1 Sai số

RMS (Root Mean Square)

RMS  int 1 2 2 int 1 error u u

3.2.2 Các bài toán

Ta thử nghiệm với các bài toán sau:

1 (1.35)-(1.36

sin( ) sin

u x y [1,4]2. dirichlet thỏa mãn

phƣơng trình 2sin( )sin( )x y

2 (1.35)-(1.36 sin(5x)sin(5y) u [1,4]2. dirichlet thỏa mãn phƣơng trình -50sin(5x)sin(5y) 3 (1.35)-(1.36 3 (x y)

u [1,4]2. dirichlet thỏa mãn phƣơng

trình 12(x+y)

4 (1.35)-(1.36

12( )

u x y [1,4]2. dirichlet thỏa mãn phƣơng

trình 3

(x y)

3.3 KẾT QUẢ THỬ NGHIỆM

3.3.1 Thử nghiệm trên bộ sinh tâm ngẫu nhiên

[1, 4]2

3.2

Bảng sai số ứng với 4 bài toán. Số tâm (k) Sai số RMS

của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4

200 0.0051 0.3672 0.0262 0.0495

300 0.0034 0.2922 0.0396 0.0165

400 0.0019 0.1877 0.0095 0.0112

800 0.0016 0.1509 0.0181 0.0105

1200 0.0010 0.0563 0.0042 0.0012

Bảng 3.1. Bảng sai số RMS trên bộ tâm được biểu diễn như trong hình 3.2

Kết Luận : Ta dựa vào bảng sai số đã thử nghiệm và nhận thấy đối với cấu trúc sinh tâm ngẫu nhiên, khi mà số tâm tăng lên thì sai số sẽ giảm, vậy nên thuật toán chọn tâm thích hợp với cấu trúc này.

3.3.2 Thử nghiệm trên cấu trúc ngựa vằn

[1, 4]2 Chọn c = 0, d = 0.13

Bảng sai số ứng với 4 bài toán. Số tâm (k) Sai số RMS

của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4

200 0.0012 0.0300 0.0032 0.0024

300 0.0321 0.0246 0.0016 0.0103

400 0.0018 0.0706 0.0302 0.0348

800 0.1159 0.7785 0.3691 0.2459

1200 0.0529 0.9026 0.0777 0.7789

Bảng 3.2. Bảng sai số RMS trên bộ tâm được biểu diễn như trong hình 3.3

[1, 4]2 Chọn c = 0, d = 0.15

3.4

Bảng sai số ứng với 4 bài toán. Số tâm (k) Sai số RMS

của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4

200 0.0103 0.0453 0.0012 0.0072

300 0.0356 0.0092 0.0034 0.0195

400 0.0647 0.0981 0.0420 0.0947

800 0.1102 0.1091 0.1948 0.3858

1200 0.0467 0.7890 0.0651 0.4950

Bảng 3.3. Bảng sai số RMS trên bộ tâm được biểu diễn như trong hình 3.4

Kết Luận : Ta dựa vào bảng sai số đã thử nghiệm và nhận thấy đối với cấu trúc ngựa vằn, khi mà số tâm tăng lên thì sai số không giảm, vậy nên thuật toán chọn tâm không thích hợp với cấu trúc này.

3.3.3 Thử nghiệm trên bộ sinh tâm co đều xung quanh các điểm :

[1, 4]2 Chọn c = 0.4, d = 0

3.5

Bảng sai số ứng với 4 bài toán.

Số tâm (k) Sai số RMS của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4

200 0.0069 0.0948 0.0038 0.0131

300 0.4593 0.0492 0.0012 4.2931

400 0.9458 0.0489 0.0478 2.5675

800 0.3859 0.3693 0.3890 1.2874

1200 0.6794 0.3524 0.0938 4.2319

Bảng 3.4. Bảng sai số RMS trên bộ tâm được biểu diễn như trong hình 3.5

[1, 4]2 Chọn c = 0.8, d = 0

h 3.6

Bảng sai số ứng với 4 bài toán. Số tâm (k) Sai số RMS

của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4

200 0.0859 0.0839 0.1485 0.8490

300 0.4950 0.0489 1.1579 4.9180

400 0.5843 0.0154 2.5766 1.2547

800 0.9459 0.9163 1.3546 2.9370

1200 1.3356 0.1755 3.5169 3.5680

Bảng 3.5. Bảng sai số RMS trên bộ tâm được biểu diễn như trong hình 3.6

Kết Luận : Ta dựa vào bảng sai số đã thử nghiệm và nhận thấy đối với cấu trúc co đều xung quanh các điểm có tọa độ nguyên, khi mà số tâm tăng lên thì sai số không giảm, vậy nên thuật toán chọn tâm không thích hợp với cấu trúc này.

3.3.4 Thử nghiệm trên cấu trúc sinh tâm thích nghi

[1, 4]2

3.7

Bảng sai số ứng với 4 bài toán. Số tâm (k) Sai số RMS

của bài toán 1

Sai số RMS của bài toán 2

Sai số RMS của bài toán 3

Sai số RMS của bài toán 4 200 0.0149409 0.0118597 0.014008 0.0149360 300 0.0024839 0.0019700 0.0028278 0.0105908

Một phần của tài liệu Xây dựng một số bộ dữ liệu phân tán trong không gian 2D cho phương pháp RBF FD giải phương trình Poisson (Trang 32 - 61)

Tải bản đầy đủ (PDF)

(61 trang)