Chương trình tính toán của mạng thần kinh trong thuật toán 2

Một phần của tài liệu MỘT SỐ PHÂN RÃ CỦA HIGGS VÔ HƯỚNG TRUNG HÒA TRONG MÔ HÌNH SIÊU ĐỐI XỨNG GẦN TỐI THIỂU (Trang 59 - 68)

CHƯƠNG III: CÁC KẾT QUẢ CHẠY CHƯƠNG TRÌNH VÀ THẢO LUẬN

B.2. Chương trình tính toán của mạng thần kinh trong thuật toán 2

/***** Neural Network – Reading from a File *****/

#include <stdlib.h>

#include <math.h>

#include <string.h>

#include <stdio.h>

#define N 10 #define N2 20

float runs=0,correct=0;

main(int argc, char * argv[ ] ) {

int neuron[N2],input,i;

float weight[N2],h,wsum,kappa=1.;

char ch,str[100];

FILE * fp;

if(argc==1) {

printf(“ Input file name? “);

scanf(“%s”,str);

}

else strcpy(str,argv[1]);

if((fp=fopen(str,”r”))==NULL) {

printf(“ File %s not found! “,str);

exit(1);

}

printf(“ File %s is being processed “,str);

for(i=0;i<N2;i++) ( neuron[i]=1; weight[i]=(float)i/N; )

while(feof(fp)==NULL) {

switch(fgetc(fp)) {

case ‘1’ : input=1; runs++;break;

case ‘0’ : input=-1; runs++;break;

default : continue;

}

for(h=0.,i=0 ;i<N ; i++) h+=weight[i]*neuron[i];

for(wsum=0.,i=0 ;i<N ; i++) wsum+=weight[i]*weight[i];

if(h*input>0.) correct++;

if( h*input < kappa*sqrt(wsum) )

for(i=0;i<N;i++) weight[i]+=input*neuron[i]/(float)N;

for(i=N2-1;i>0;i--) neuron[i]=neuron[i-1];

neuron[0]=input;

}

if(runs!=0)

printf(“\n %6.0f valid inputs”,runs);

printf(“\n %6.2f %% predicted correctly”,correct/runs*100.);

fclose(fp);

getch();

}

PHỤ LỤC C. Báo cáo hội nghị sinh viên nghiên cứu khoa học năm 2014 khoa Vật lý Trường Đại học Sư phạm Hà Nội

CÁC MẠNG FRACTAL Vũ Thị Hòa

Lớp AK60, Khoa Vật Lý, Trường ĐHSP Hà Nội

1MỞ ĐẦU

Một trò chơi xúc sắc đơn giản và một phép lặp hình học đơn giản đều dẫn tới một cấu trúc lạ bé hơn một diện tích nhưng lớn hơn một đường thẳng. Nó được gọi là fractal với số chiều là D = ln3/ ln2 = 1,58. Đáng kinh ngạc là các fractal rất phổ biến trong tự nhiên. Các bờ biển, dãy núi, mạch máu, dòng sông, sự thay đổi giá chứng khoán và mức nước sông đều có thể được mô tả bởi các fractal. Mạng fractal có rất nhiều ứng dụng trong cuộc sống và mở ra nhiều hướng nghiên cứu trong nhiều lĩnh vực như sinh học, y học, thiên văn, kinh tế, công nghệ thông tin,.... Mặc dù mạng fractal là một bài toán khá phổ biến trong tự nhiên nhưng lại vô cùng phức tạp mà những phương tiện thông thường và những phương pháp thông thường không thể giải được. Báo cáo khoa học này nhằm trả lời cho các câu hỏi như mạng fractal là gì và làm thế nào để có thể mô phỏng được các mạng fractal và tính toán được số chiều của nó?

2CƠ SỞ LÝ THUYẾT

Fractal là một thuật ngữ do nhà toán học Mandelbrot đưa ra khi ông khảo sát những hình dạng hoặc những hiện tượng tự nhiên không có đặc trưng về độ dài. Ông cho rằng các đám mây không có dạng hình cầu và các ngọn núi không có dạng hình nón. Theo ông, fractal là chỉ những đối tượng gồ ghề, không trơn nhẵn trong tự nhiên.

Cụ thể hơn đó là những vật thể có tính đối xứng được sắp xếp trong môt phạm vi nhất định, nghĩa là khi ta chia một vât thể fractal với hình dáng gồ ghề, gãy khúc ra thành những phần nhỏ thì nó vẫn có được đặc tính đối xứng trong một cấu trúc tưởng như hỗn loạn. Ví dụ như hình dạng các đám mây và đường đi của các tia chớp.

Theo Mandelbrot, fractal là “một tập hợp mà trong đó số chiều Hausdorff lớn hơn số chiều tô pô”. Số chiều Hausdorff là khái niệm sinh ra để đo kích thước của fractal và nó thường không phải là số tự nhiên. Xuất phát từ định nghĩa này, Mandelbrot đã đưa ra khái niệm số chiều fractal tổng quát với ba dạng đặc biệt áp

dụng cho từng loại đối tượng cụ thể. Đó là số chiều tự đồng dạng (hay số chiều Hausdorff – Besicovitch), số chiều compa và số chiều box-counting. Số chiều tự đồng dạng DS phù hợp với định nghĩa thông thường của hình học Euclide và nó được định nghĩa là

DS = lnln( )1N/r .

(1) Ở đây, N là số đoạn thẳng và r là số chiều dài của mỗi đoạn thẳng. Số chiều compa được áp dụng cho các đường cong không phải là các đường cong tự đồng dạng hoàn toàn như các đường bờ biển, các dòng sông,… nhưng có thể sử dụng nhiều đơn vị khác nhau để xác định độ dài của chúng. Số chiều compa DC được định nghĩa là

d DC =1+

(2) với d là hệ số góc của đường thẳng hồi quy dùng để xấp xỉ các giá trị u đo được dựa trên phương pháp bình phương cực tiểu. Số chiều box-counting được áp dụng cho các đường cong fractal không thể xác định số chiều theo hai cách trên. Lần lượt đặt một cấu trúc fractal bất kỳ lên một dãy các lưới có kích thước ô lưới s giảm theo tỷ

lệ 1/2. Nếu ) (s N

là số ô lưới có kích thước s chứa một phần cấu trúc thì số chiều box-counting DB là hệ số góc của đường thẳng hồi qui đối với tập hợp hữu hạn các

điểm (s,N(s))

trong hệ tọa độ log2( )1/s −log2 N(s)

và được xác định bởi

( ) ( ) ( )

( )2 .

log 2 2

log 2

log

2 log 2

log ( 1)

2 2

1 2

2 )

1 ( 2

k k k

k

k k

B N

N N

D N − ++ − = −−+

= −

(3)

Số chiều fractal D của một vật thể có thể được xác định từ hệ thức giữa số thành phần tạo nên khối lượng M của nó và kích thước dài L của nó

. LD

M

(4) Như vậy, bằng cách so sánh khối lượng của hai khối lập phương giống nhau với các cạnh L và 2L ta thu được

D D

L L M

M 2 2

1

2  =

 

=

(5)

với D = 3. Đối với các hình vuông, D = 2 và đối với các đường thẳng, D = 1. L cũng có thể là bán kính của các hình cầu hoặc các đĩa hoặc bất kì chiều dài đặc trưng nào khác của vật khảo sát. Dĩ nhiên là khối lượng tỉ lệ với số hạt. Trong bất kì trường hợp nào,

ln . limln

L D M

L→∞

=

(6)

Còn có một cách khác để xác định số chiều fractal D. Đối với phương pháp này, ta bao phủ vật bởi các khối lập phương nhỏ với các cạnh có chiều dài ε. Cho N(ε) là số khối lập phương cần thiết nhỏ nhất để bao phủ vật đó. Khi đó, N(ε) ∝ε - D và do đó

ln . ) ( limln

0 ε

ε

ε

D N

− →

=

(7) Để bao phủ môt khối lập phương ta cần (L/ε)3

hộp. Số này bằng (L/ε)3

đối với một

hình vuông và (L/ε)3

đối với một đường thẳng.

3THUẬT TOÁN VÀ KẾT QUẢ

Đường Sierpinski là một đường cong rất đặc biệt vì có rất nhiều cách phát sinh ra nó với các khởi tạo ban đầu hoàn toàn khác nhau nhưng lại kết thúc ở việc sinh ra một loại đường cong duy nhất. Xét thuật toán cho trò chơi con xúc sắc (phương pháp

Monte- Carlo). Lúc đầu, ta lựa chọn 3 điểm 1 2 ,p p

và 3 p

và một điểm khởi đầu n q

phân bố tùy ý trong mặt phẳng. Bắt đầu từ điểm n q

ta xây dựng điểm tiếp theo n+1 q

bằng cách chọn ngẫu nhiên một trong ba điểm

) 3 , 2 , 1 (i= pi

chẳng hạn nhờ tung con

xúc sắc. Khi đó, ta xác định tâm của đoạn thẳng nối n q

i, p

nghĩa là ta tìm được

2 ..

1 n i

n

p q + = q +

Sau đó, ta lặp lại phương trình này một cách không giới hạn.

Có thể dễ dàng lập trình thuật toán trong C để làm tăng tốc độ xử lí. Hình 1 chỉ ra kết quả. Đáng kinh ngạc là chuyển động ngẫu nhiên của điểm q dẫn tới một cấu trúc cân đối bao gồm các hình tam giác lồng vào nhau.

Hình 1. Các điểm trong mặt phẳng sinh ra bởi trò chơi xúc sắc được mô tả ở trên. Các góc của tam giác Sierpinski được cho bởi các điểm p[0], p[1] và p[2].

Thuật toán cho trò chơi hình học như sau: Ta bắt đầu với một tam giác. Sau đó, loại bỏ một tam giác ra khỏi tâm của nó theo một cách nào đó sao cho giữ lại ba tam giác giống nhau. Tiếp theo ,ta lặp lại không giới hạn điều này cho toàn bộ các tam giác được giữ lại sau mỗi bước.

Để tận dụng ưu điểm của các lệnh đồ thị đơn giản, ta lập trình nó trong Mathematica. Hỡnh 2 chỉ ra kết quả. Rừ ràng là ta thu đươc cựng một cấu trỳc như trong thuật toán cho trò chơi xúc sắc nhưng bây giờ nó là một fractal được sinh ra bởi vô số phép lặp.

Hình 2. Bằng cách di chuyển lặp lại các tam giác, một fractal với số chiều D = 1,58 được sinh ra.

Các nụ tuyết Koch có số chiều tự đồng dạng, số chiều fractal và số chiều Hausdorff – Besicovitch bằng nhau. Số chiều được tính theo công thức (1) Ta bắt đầu bằng một khởi tạo (initiator) và nó có thể là một đoạn thẳng hoặc một đa giác.

Mỗi cạnh của khởi tạo được thay thế bởi một máy phát (generator). Sau đó mỗi đoạn thẳng của hình mới được thay thế bởi một phiên bản nhỏ hơn của máy phát.

Quá trình này lặp lại vô số lần. Một nụ tuyết Koch được xác định bằng phép lặp

sau: Một phần ba trung tâm của một đoạn thẳng bị cắt đi và thay bởi một chỗ lồi ra mà hai cạnh của nó có chiều dài mỗi cạnh bằng chiều dài đoạn vừa bỏ đi (Hình 3(a)). Bắt đầu với một tam giác đều và lặp lại thiết kế trên nhiều lần ta sẽ thu được

nụ tuyết Koch. Số chiều fractal là

. 2618 , 1 3 ln / 4

ln ≈

= D

Kết quả chạy chương trình như trên Hình 3(b). Một dạng nụ tuyết Koch thứ hai tương tư như trên nhưng mỗi đoạn thẳng được thay thế bằng một máy phát như Hình 3(c). Khi đó, số chiều

fractal là

. 1291 , 1 7 ln / 3

ln ≈

= D

Kết quả chạy chương trình như trên Hình 3(d).

Một dạng nụ tuyết Koch thứ ba cũng tương tư như trên nhưng mỗi đoạn thẳng được thay thế bằng một máy phát như Hình 3(e). Khi đó, số chiều fractal là

. 3652 , 1 5 ln / 3

ln ≈

= D

Kết quả chạy chương trình như trên Hình 3(f).

(a)

(b)

(c) (d)

(e) (f)

Hình 3. Nụ tuyết Koch

Trong nhiều thập niên của thế kỉ XX, các nhà toán học đã nghiên cứu tập hợp fractal Mandelbrot sinh ra từ một biểu thức phức tạp được xác định bởi

c z zn=1 = n2 +

trong đó i

zC

, ∀ ∈i Nc C∈ . Để đơn giản hóa, ta xét trường hợp c

= 0 và 0

zR

. Nếu 0

z =1 thì

n 1

z =

, n >=1. Nếu 0

z <1 thì

n 0

z

khi n→∞. Nếu

0 1

z >

thì zn→ ∞

khi n→∞.

Thuật toán gồm 4 bước, Bước 1 xuất phát với một giá trị khởi đầu c = (p, q). Bước 2 kiểm tra xem c thuộc lớp 1 hay lớp 2. Trong bước 3, nếu c thuộc lớp 1 thì tô điểm ảnh tương ứng với c trên màn bằng màu đen và nếu ngược lại thì tô điểm ảnh này bởi màu tương ứng xác định từ kỹ thuật tô xoay vòng.

Bước 4: chọn một giá trị c mới và trở lại bước 1 cho đến khi quét hết toàn bộ giá trị c cần khảo sát. Khi đó thuật toán kết thúc. Kết quả thu được sau khi chạy chương trình là một tập hợp fractal Mandelbrot như trên Hình 4.

Hình 4. Tập hợp fractal Mandelbrot

4KẾT LUẬN

Hình học fractal là một ngành khoa học máy tính chỉ được phát triển khoảng 20 năm trở lại đây. Nét đẹp cũng như những điều bí ẩn xung quanh các hệ hàm lặp và các hình ảnh fractal sẽ còn lôi cuốn tính tò mò và óc tưởng tượng của con người.

Báo cáo đề cập đến việc giải một số bài toán fractal đơn giản (nụ tuyết Koch và đường Sierpinski) dựa trên các ngôn ngữ lập trình MathematicaC đồng thời khảo sát tập hợp fractal aMandelbrot – một trong những tập hợp fractal phức tạp và đẹp nhất trong thế giới “ảo” fractal.

5TÀI LIỆU THAM KHẢO

[1]. W. Kinzel and G. Reents, (1997), Physics by Computer Programming Physical Problems Using Mathemmatica and C, Springer, Wurzburg, German.

[2]. E.Ott, (1993), Chaos in Dynamical Systems, Cambridge University Press, Cambridge, New York.

[3]. H.O.Peitgen and D.Saupe, (1988), The Science of Fractal Images, Springer, Berlin, Heidelberg, New York.

[4]. P.T.Tôn và N.M.Đức, (2003), Tìm hiểu lý thuyết hình học fractal và ứng dụng trong việc cài đặt một số đường, mặt fractal phổ biến, Báo cáo sinh viên tại trường ĐH Khoa học Tự nhiên.

[5]. Trang web http://en.wikipedia.org/wiki/fractal [6]. Trang web http://www.physik.uni-wuerzburg.de [7]. Trang web http://www.fractalforum.com

Một phần của tài liệu MỘT SỐ PHÂN RÃ CỦA HIGGS VÔ HƯỚNG TRUNG HÒA TRONG MÔ HÌNH SIÊU ĐỐI XỨNG GẦN TỐI THIỂU (Trang 59 - 68)

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

(69 trang)
w