(Luận văn thạc sĩ) tối ưu hoá lớp các thông tin có cấu trúc dạng cây nhị nguyên 1 và n chiều với thông tin chứa ở lá trên tập khoá hữu hạn bằng mô hình xử lý song song

117 27 0
(Luận văn thạc sĩ) tối ưu hoá lớp các thông tin có cấu trúc dạng cây nhị nguyên 1 và n chiều với thông tin chứa ở lá trên tập khoá hữu hạn bằng mô hình xử lý song song

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ Trần Thị Ngọc Hà TỐI ƯU HỐ LỚP CÁC THƠNG TIN CÓ CẤU TRÚC DẠNG CÂY NHỊ NGUYÊN VÀ N CHIỀU VỚI THƠNG TIN CHỨA Ở LÁ TRÊN TẬP KHĨA HỮU HẠN BẰNG MƠ HÌNH XỬ LÝ SONG SONG LUẬN VĂN THẠC SĨ Hà Nội - Năm 2004 Luận văn tốt nghiệp Contents MỤC LỤC LỜI GIỚI THIỆU Chương l: THUẬT TỐN PHÂN RÃ LỚP THƠNG TIN CÓ CẤU TRÚC DẠNG CÂYNHỊ PHÂN MỘT CHIỀU VỚI THƠNG TIN CHỨA Ở LÁ TRÊN TẬP KHĨA HỮU HẠN Định nghĩa nhị phân chiều với thông tin chứa Ở Hệ tiên dề quy tắc dẫn xuất TREE 2.1 Quy tắc dẫn xuất TREE 2.2 Hệ tiên đề TREE tập khóa hữu hạn Ki(i=l, 2, , n-l) Cây chuẩn tắc chiều tập khóa K 11 1.4 Bảng mã tập khóa K 23 1.5 Cây tối ưu chiều tập khóa K 24 1.6 Thuật toán phân rã tìm nhị phân tối ưu tập khóa hữu hạn K 26 1.7 Ví dụ minh hoạ 30 Chương 38 THUẬT TỐN PHÂN RÃ LỚP THƠNG TIN CĨ CẤU TRÚC DẠNG CÂY NHỊ PHÂN N CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP KHÓA HỮU HẠN 38 2.1 Cây nhị phân n-chiều với thông tin chứa 38 2.2 Hệ tiên đề quy tắc dẫn xuất TREE(n) 40 2.2.1 Qui tắc dẫn xuất TREE(n) 40 2.2.2 Hệ tiên đề TREE(N) tập khóa hữu hạn Ki(n)(i=l, 2, ,m) 40 Trang 89 Luận văn tốt nghiệp 2.3 Dạng chuẩn tắc nhị phân n-chiều 48 2.4 Bảng mã n-chiều tập khóa K(n) 72 2.5 Cây nhị phân n- chiều tối ưu 73 2.6 Thuật toán phân rã xây dựng n-chiều tối ưu tập khóa hữu hạn K(n) 74 2.6.1 Thuật toán chuyển n-chiều chuẩn tắc tập khoá hữu hạn Ki(n)(i=l, 2, , m) (Thuật toán 2.l) 74 2.6.2 Thuật toán nối n-chiều chuẩn tắc Nin  (Ki(n))T(i=l, ,m) thành n-chiều chuẩn tắc Nn  (K(n))T (Thuật toán 2.2) 74 2.6.3 Thuật tốn phân rã tập khóa K(n) thành m tập Kl(n), K2(n), , Km(n) (Thuật toán 2.3) 75 2.6.4 Thuật toán chuyển n -chiều tối ưu (Thuật toán 2.4) 76 2.6.5 Thuật toán phân rã xây dựng n-chiều tối ưu tập khóa K(n) 76 2.7 Ví dụ minh hoạ 77 2.7.1 Ví dụ mơ thuật tốn chuyển 2-chiều chuẩn tắc tập khóa hữu hạn Ki(2) (thuật toán 2.l) 77 2.2.7 Ví dụ mơ thuật tốn nối chuẩn tắc Ni2  (Ki( 2))T thành chuẩn tắc N2  (K(2))T (Thuật toán 2.3) 78 2.7.3 Ví dụ mơ thuật toán chuyển - chiều chuẩn tắc T tối ưu ( thuật toán 2.5) 80 KẾT LUẬN 85 TÀI LIỆU THAM KHẢO: 87 PHỤ LỤC 88 Trang 90 Luận văn tốt nghiệp LỜI GIỚI THIỆU Khái niệm tìm kiếm nhị phân đóng vai trị quan trọng cấu trúc liệu lý thuyết thuật toán Tuy nhiên, để khai thác tối đa ưu điểm tìm kiếm nhị phân thiết ta phải lưu trữ thơng tin tìm kiếm nhị phân tối ưu (tức nhị phân có số đỉnh độ cao nhỏ tất tương đương với nó) Hơn nữa, sau thời gian sử dụng thơng tin lưu trữ bị lạc hậu, ta phải đánh giá tổ chức lại chúng, thông tin lạc hậu bị loại bỏ Như vậy, nhu cầu xây dựng nhị phân tối ưu đặt Vấn đề đặt làm để xây dựng nhị phân tối ưu? Đã có nhiều thuật toán xây dựng nhị phân tối ưu, nhiên, thuật toán hoạt động dựa việc xét duyệt tồn tập khóa, tập khóa lớn tập khóa vơ hạn thời gian thực thuật tốn lớn Để khắc phục nhược điểm trên, luận văn này, ta áp dụng thuật toán phân rã để tìm nhị phân tối ưu lưu trữ thông tin phân loại tối ưu Thuật tốn phân rã dựa việc chia nhỏ tập khóa hữu hạn ban đầu thành n tập khóa (n tập hữu hạn) Sau áp dụng phương pháp tiên đề H.Thiele để tìm nhị phân chuẩn tắc tập Cơng việc tiến hành đồng thời tất tập khóa làm giảm đáng kể thời gian thực thuật toán so với việc thực thuật tốn tồn tập khóa ban đầu Tiếp theo, ta ghép nối chuẩn tắc tập theo quy luật khóa có giá trị tăng dần ta chuẩn tắc toàn tập khóa ban đầu Từ dùng thuật tốn bẻ đôi chuẩn tắc ta nhị phân tối ưu tồn tập khóa ban đầu Thuật tốn phân rã hồn tồn khơng làm thơng tin có ích, Cây nhị phân tối ưu thu thuật toán phân rã hoàn toàn giống với tối ưu thu thực tồn tập khóa ban đầu Một vấn đề đặt là: với cấu trúc nhị phân n-chiều liệu kết có cịn khơng? Để trả lời câu hỏi chúng tơi tổng qt hố Trang Luận văn tốt nghiệp toán cho cấu trúc nhị phân n-chiều Tuy nhiên, nay, em giải xong toán với cấu trúc nhị phân n-chiều với thông tin chứa Điều thú vị thay n = ta thu lại hoàn toàn kết nghiên cứu với cấu trúc nhị phân chiều với thông tin chứa Luận văn gồm chƣơng sau: Chƣơng 1: Thuật tốn phân rã lớp thơng tin có cấu trúc dạng nhị phân chiều với thông tin chứa tập khóa hữu hạn - Xây dựng khái niệm: Cây nhị phân chiều với thông tin chứa lá, hàm kết quả, tương đương nhị phân chiều, dạng chuẩn nhị phân chiều, bảng mã nhị phân, nhị phân chiều tối ưu Các qui tắc dẫn xuất hệ tiên đề nhị phân chiều - Các tính chất tương đương nhị phân chiều, dạng chuẩn tắc, tối ưu bổ đề, định lý cho phép kiểm tra tính tương đương nhị phân, biến đổi tương đương nhị phân - Thuật toán chuyển nhị phân chiều chuẩn tắc, thuật toán nối nhị phân chiều chuẩn tắc, phân hoạch tập khóa ban đầu K thành n tập khóa - Thuật toán chuyển nhị phân chiều tối ưu - Thuật toán phân rã xây dựng nhị phân chiều tối ưu - Các ví dụ minh hoạ Chƣơng 2: Thuật tốn phân rã lớp thơng tin có cấu trúc dạng nhị phân nchiều với thông tin chứa Ở tập khóa hữu hạn - Xây dựng khái niệm về: nhị phân n-chiều với thông tin chứa Ở lá, hàm kết quả, tương đương nhị phân n-chiều, dạng chuẩn nhị phân n- chiều, nhị phân n-chiều tối ưu Các qui tắc dẫn xuất hệ tiên đề nhị phân n-chiều Trang Luận văn tốt nghiệp - Các tính chất tương đương nhị phân n-chiều, dạng chuẩn tắc, tối ưu bổ đề, định lý cho phép kiểm tra tính tương đương nhị phân n-chiều, biến đổi tương đương nhị phân nchiều - Thuật toán chuyển nhị phân n-chiều chuẩn tắc, thuật toán nối nhị phân n-chiều chuẩn tắc tắc, phân hoạch tập khóa ban đầu K(n) thành in tập Kl(n), K2(n), , Kn(n), thuật toán chuyển nhị phân n-chiều tối ưu - Thuật toán phân rã xây dựng nhị phân n-chiều tối ưu - Các ví dụ minh hoạ Kết luận: Tóm tắt lại kết thu luận văn Tài liệu tham khảo Phụ lục: Cài đặt chương trình mơ thuật tốn xây dựng nhị phân chiều tối ưu cho lớp thơng tin có cấu trúc dạng nhị phân chiều với thông tin chứa Trang Luận văn tốt nghiệp Chương l: THUẬT TỐN PHÂN RÃ LỚP THƠNG TIN CĨ CẤU TRÚC DẠNG CÂY NHỊ PHÂN MỘT CHIỀU VỚI THÔNG TIN CHỨA Ở LÁ TRÊN TẬP KHÓA HỮU HẠN Nội dung chương gồm: - Các định nghĩa về: nhị phân chiều với thông tin chứa Ở lá, hàm kết quả, tương đương nhị phân chiều, dạng chuẩn nhị phân chiều, bảng mã nhị phân, nhị phân chiều tối ưu Các qui tắc dẫn xuất hệ tiên đề nhị phân chiều - Các tính chất tương đương nhị phân chiều, dạng chuẩn tắc bổ đề, định lý cho phép kiểm tra tính tương đương nhị phân, biến đổi tương đương nhị phân - Thuật toán chuyển nhị phân chiều chuẩn tắc tập khóa hữu hạn, - Thuật toán nối nhị phân chiều chuẩn tắc, phân hoạch tập khóa ban đầu K thành n tập K1, K2, Kn - Thuật toán chuyển nhị phân chiều tối ưu - Thuật toán phân rã xây dựng nhị phân chiều tối ưu - Các ví dụ minh họa thuật toán Định nghĩa nhị phân chiều với thông tin chứa Ở Giả sử D tập khơng rỗng Documents phần tử ta gọi thơng tin, D gọi tập thông tin Tập K tập hữu hạn phần tử mà thỏa mãn quan hệ so sánh (tức với x, y y x K ta có : x > y) Khơng tính tổng qt ta xem K tập số tự nhiên K gọi tập khóa nhị phân Ta kí hiệu rỗng ta đặt D+ = D Giả sử kí hiệu [ ] < > , D+ { } K Trang Luận văn tốt nghiệp Định nghĩa l.1 (Định nghĩa đệ qui nhị phân chiều với thông tin chứa lá) a Mỗi phần tử d D gọi b Nếu T1, T2 hai k K, dãy kí hiệu k Dạng đồ thị d sau: k T1 T2 Tập tất định nghĩa ta kí hiệu qua TREE gọi tập nhị phân chiều với thông tin chứa tập khóa K (gọi tắt câ y nhị phân).K tập khố TREE Mỗi đỉnh có khố k gọi đỉnh Thông tin chứa đỉnh ngồi ( tức đỉnh khơng chứa khố) cịn gọi T bên trái, T bên phải Định nghĩa 1.2 (Định nghĩa hàm đánh giá hay hàm kết quả) Ta kí hiệu " " " " để đồng nhau(không đồng nhau) nhị phân Giả sử T nhị phân l K Ta định nghĩa hàm kết f từ tập TREE K vào D theo định nghĩa đệ quy T sau: a Nếu nhị phân T d D f(T,l) = f(d,1) = d với l b Nếu nhị phân T k : f(T1,l) K k f(T,1) = f(k,l) = f(T2) > k Định nghĩa 1.3 (Định nghĩa tương đương hai nhị phân) Giả sử T1 , T2 TREE Ta nói T tương đương với T K( Kí hiệu T (K) T2 ) khi: f(T 1, l) = f(T2, l) với K Từ định nghĩa ta thấy rằng: T không tương đương với T K (Ký hiệuT1 (K) T2) tồn khóa l0 Trang K cho f(T 1, l0) f(T2, l0) Luận văn tốt nghiệp Hệ tiên dề quy tắc dẫn xuất TREE 2.1 Quy tắc dẫn xuất TREE Trước hết ta đưa vào khái niệm phương trình cây: Giả sử T1, T2 TREE "=" kí hiệu khơng thuộc tập K D+ { [,],} Khi dãy kí hiệu T l = T2 gọi phương trình Đặt EQU : {T1 = T2 | T1,T2 TREE} EQU gọi tập tất phương trình TREE Giả sử X EQU Tl= T2 EQU Định nghĩa 1.4 (Định nghĩa dẫn được) Phương trình T = T2 dẫn từ X( kí hiệu X ├ T1 = T2) T1= T2 X T1 = T2 dẫn từ phần tử X cách áp dụng số hữu hạn lần qui tắc dẫn xuất sau : Quy tắc (R1): X ├ T =T với T TREE Quy tắc (R2): Nếu X ├ T1= T2 X ├ T2= T1 Quy tắc (R3): Nếu X ├ T1= T2 X ├ T2 = T3 X ├ T1= T3 Quy tắc (R4): Nếu X ├ T1= T1' X ├ k = k < T1', T2> Quy tắc (R5): Nếu X ├ T2=T2' X ├ k = k < T1, T2'> 2.2 Hệ tiên đề TREE tập khóa hữu hạn Ki (i=l, 2, , n-l) Do Ki hữu hạn nên Ki tồn phần tử bé phần tử lớn mà ta kí hiệu tương ứng k imin , kimax Hệ tiên đề TREE tập khóa hữu hạn Ki tập phương trình sau: Tiên đề axi1: k = k' tiên đề kimin k’ < k kimax Dạng đồ thị: k k’ T1 = T3 k’ T1 T2 k T2 T3 Tiên đề axi3: k < T1, k' > = k tiên đề kimin k k’ kimax Dạng đồ thị: k = k’ T1 T2 Tiên đề axi4 : k T1 T3 k = T tiên đề với T Dạng đồ thị: k = T T3 TREE k T T Tiên đề axi5: k < T1, k' > = k’ tiên đề kimin k < k’ kimax Dạng đồ thị: k = k’ T1 T1 k’ T1 T2 T2 Tiên đề axi6(tiên đề max) k = T1 tiên đề k > kimax Dạng đồ thị: k T1 = T2 Trang T1 Ki Luận văn tốt nghiệp a:=p^.x; b:=p^.y; p:=p^.left; p^.x:=a; p^.y:=b; end; end; ax4(p^.right); end; end; end; End; (**************************************) Function ktax4(var p:pointer):boolean; Begin ktax4:=false; if p nil then begin if (p^.left = nil) and (p^.right = nil) then else begin if (p^.right^.left nil) and (p^.right^.right nil) then begin ktax4:=ktax4(p^.left); if (p^.left^.value = p^.right^.value) and (p^.left^.value=0) then if p^.left^.tt=p^.right^.tt then begin ktax4:=true; exit; end; end; end; end; End; (************************************************) Procedure tdax4(var p:pointer); Var kt:boolean; Begin ax4(p); kt:=ktax4(p); while kt=true begin ax4(p); kt:=ktax4(p); end; End; (************************************************) Trang 100 Luận văn tốt nghiệp Procedure ax5(var p:pointer); Var a,b:integer; Begin if p nil then begin if (p^.left=nil) and (p^.right=nil) then else begin if p^.right = nil then else if p^.right^.value=0 then ax5(p^.left) else if (p^.right^.left nil ) or (p^.right^.right nil) and (p^.right^.left^.value=0) then begin ax5(p^.left); if (p^.right^.value > p^.value) and (p^.left^.value=0) then begin if (p^.left^.value = p^.right^.left^.value) and (p^.left^.tt=p^.right^.left^.tt) then begin tru(p^.right,p^.right^.x - p^.x, p^.right^.y - p^.y); p:=p^.right; end; end; ax5(p^.right); end; end; end; End; (***********************************************) Function ktax5(var p:pointer):boolean; Begin ktax5:=false; if p nil then begin if (p^.left = nil) and (p^.right = nil) then else begin if p^.right = nil then else if p^.right^.value = then ktax5:=ktax5(p^.left) else Trang 101 Luận văn tốt nghiệp if (p^.right^.left nil) or (p^.right^.right nil) and (p^.left^.value = 0) then begin ktax5:=ktax5(p^.left); if (p^.right^.value > p^.value) and (p^.left^.value=0) then begin if (p^.left^.value=p^.right^.left^.value) and (p^.left^.tt=p^.right^.left^.tt) then begin ktax5:=true; exit; end; end; end; end; end; End; (**************************************************) Procedure tdax5(var p:pointer); Var kt:boolean; Begin ax5(p); kt:=ktax5(p); while kt=true begin ax5(p); kt:=ktax5(p); end; End; (*************************************************) Procedure ax6(var p:pointer;kmax:integer); Begin if p nil then begin if (p^.left=nil) and (p^.right=nil) then else begin if (p^.left nil) and (p^.right nil) then begin ax6(p^.left,kmax); if (p^.value > kmax) and (p^.left nil) then begin cong(p^.left,p^.x - p^.left^.x, Trang 102 Luận văn tốt nghiệp p^.y - p^.left^.y); p:=p^.left; end; ax6(p^.right,kmax); end; end; end; End; (**************************************************) Procedure ax7(var p:pointer;kmin:integer); Begin if p nil then begin if (p^.left=nil) and (p^.right=nil) then else begin if (p^.left nil) and (p^.right nil) then begin ax7(p^.left,kmin); if (p^.value < kmin) and (p^.right nil) then begin tru(p^.right,p^.right^.x - p^.x, p^.right^.y - p^.y); p:=p^.right; end; ax7(p^.right,kmin); end; end; end; End; (***************************************************) Procedure caybandau; Var f,f1:text; a,b,c,d:array[1 50] of integer; e:array[1 50] of char; i,j,x,y,z,u,k:integer; v,tt:char; Begin assign(f,'c:\bp\bin\lp.txt'); reset(f); i:=1; while not eof(f) Trang 103 Luận văn tốt nghiệp begin readln(f,x,y,z,u); a[i]:=x; b[i]:=y;c[i]:=z; d[i]:=u; i:=i+1; end; assign(f1,'c:\bp\bin\tt.txt'); reset(f1); k:=1; while not eof(f1) begin readln(f1,v); e[k]:=v; k:=k+1; end; for j:=1 to i-1 chentu(dic^.link,a[j],e[j],b[j],c[j],d[j]); close(f); End; (**********************************************) Procedure cayhc(var p:pointer); Var m,i,dct,dcp:integer; Begin m:=numr(p); if (m div 2) =1 then begin for i:=1 to m div begin ax2_nghich(p); end; end else for i:=1 to (m div 2)-1 begin ax2_nghich(p); end; dct:=numl(p); dcp:=numr(p); if (dct=dcp) or (dcp=dct+1) then else begin ax2_thuan(p^.right); ax2_nghich(p); end; End; (********************************************) Function testright(var p:pointer):boolean; Var a,b,c,d,e,f:integer; Begin testright:=true; if (p nil) and (p^.value0) then Trang 104 Luận văn tốt nghiệp begin if (p^.left=nil) and (p^.right=nil) then else begin if p^.right=nil then else begin if p^.left^.value 0 then begin testright:=false;exit; end; if (p^.right^.value = k) then timtt:=timtt(p^.left,k) else if (p^.value < k) then timtt:=timtt(p^.right,k); end; End; (*******************************************) Trang 105 Luận văn tốt nghiệp Procedure timkiem(var p:pointer); Label tieptuc; Var tt,tam,tam1:string; z,luu,i:integer; ch,ch1:char; Begin tieptuc: setfillstyle(1,2); setcolor(2);bar(100,300,540,450); floodfill(120,400,2); setcolor(15); outtextxy(150,350,'NHAP KHOA: '); tam:='';z:=230; repeat ch:=readkey; if (ord(ch)>=48) and(ord(ch)

Ngày đăng: 05/12/2020, 11:51

Mục lục

  • LỜI GIỚI THIỆU

  • 1. Định nghĩa cây nhị phân một chiều với thông tin chứa Ở lá.

  • 2. Hệ tiên dề và các quy tắc dẫn xuất trên TREE.

  • 2.1 Quy tắc dẫn xuất của TREE.

  • 3. Cây chuẩn tắc một chiều trên tập khóa K.

  • 1.5 Cây tối ưu một chiều trên tập khóa K.

  • 1.6 Thuật toán phân rã tìm cây nhị phân tối ưu trên tập khóa hữu hạn K.

  • 1.6.1 Thuật toán chuyển về cây chuẩn tắc trên tập khóa hữu hạn Ki (i=l,...,n)

  • 1.6.3 Phân hoạch tương đương trên tập khóa K.

  • 1.6.5 Thuật toán phân rã xây dựng cây tối ưu trên tập khóa hữu hạn K.

  • 1.7 Ví dụ minh hoạ.

  • 1.7.4 Ví dụ mô phỏng thuật toán phân rã xây dựng cây tối ưu.

  • 2.1 Cây nhị phân n-chiều với thông tin chứa ở lá.

  • 2.2 Hệ tiên đề và các quy tắc dẫn xuất trên TREE(n).

  • 2.2.1 Qui tắc dẫn xuất của TREE(n).

  • 2.2.2 Hệ tiên đề của TREE(N) trên tập khóa hữu hạn Ki(n)(i=l, 2, ...,m).

  • 2.3 Dạng chuẩn tắc của cây nhị phân n-chiều.

  • 2.4 Bảng mã của cây n-chiều trên tập khóa K(n).

  • 2.5 Cây nhị phân n- chiều tối ƣu.

  • 2.6.4 Thuật toán chuyển về cây n -chiều tối ưu (Thuật toán 2.4).

Tài liệu cùng người dùng

Tài liệu liên quan