Các thuật toán cơ bản về xử lý mạng trong Pascal

19 1.3K 8
Các thuật toán cơ bản về xử lý mạng trong Pascal

Đ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

Sơ lợc về các chủ đề Sau đây là sơ lợc về các chủ đề sẽ đợc đề cập trong phần này của chơng trình: + Phần sở: là các công cụ và phơng pháp đợc dùng xuyên suốt cho tất cả các chơng sau của phần này. Nó gồm một phần bàn luận ngắn về Pascal, theo sau là giới thiệu về các cấu trúc dữ liệu bản gồm mảng, xâu liên kết, ngăn xếp, hàng đợi và cây. Chúng ta sẽ bàn luận về công dụng thực tiễn đệ quy và bắt đầu hớng tới việc phân tích và tiếp cận thực toán. + Sắp xếp: Các phơng pháp sắp xếp sẽ đợc phát triển, đợc mô tả, đợc so sánh với nhau. Các thuật toán cho nhiều vấn đề liên quan sẽ đợc xem xét gồm hàng đợi u tiên, phép chọn và phép trộn. Một vài nền tảng trong số này đợc dùng nh là nền tảng cho các thuật toán khác tiếp sau trong phần này. + Xử chuỗi: gồm một loạt các phơng pháp để phân tích câu. Các ky thuật nén tập và mật mã cũng sẽ đợc khảo sát. Cũng vậy, một giới thiệu về các chủ đề nâng cao cùng đợc cung cấp qua việc xem xét một vài bài toán bản quan trọng trong phạm vi của chúng. + Hình học: là một sự tập hợp chọn lọc các phơng pháp để giải quyết các bài toán liên quan đến điểm và đờng ( và các đối tợng hình học đơn giản khác ). Chúng ta sẽ xem xét các thuật toán để tìm bao lồi của một tập điểm, phần giao của các đối tợng, để giải bài toán điểm gần nhất, tìm kiếm nhiều chiều . + Đồ thị: Một chiến lợc tổng quát để tìm kiếm trên các đồ thị sẽ đợc phát triển và đợc áp dụng cho các bài toán liên thông bản, gồm đờng đi ngắn nhất, cây liên thông tối thiểu, mạng và so khớp. Một sự xem xét thống nhất đối với các thuật toán này chứng tỏ rằng tất cả đều dựa vào một thủ tục và thủ tục này phụ thuộc vào một cấu trúc dữ liệu bản đã phát triển trớc đó. + Các thuật toán toán học: gồm các phơng pháp bản từ số học và các số nguyên, đa thức, và ma trận cũng nh các thuật toán để giải quyết cac vấn đề toán học mà nó phát sinh trong nhiều ngữ cảnh : việc tạo số ngẫu nhiên, lỡi giải của các chơng trình đồng thời, xấp xỉ dữ liệu, và lấy tích phân. Sự nhấn mạnh thiên về các khía cạnh thuật toán của phơng pháp, chứ không phải trên nền tảng của toán học + Các chủ đề cao cấp: đợc thảo luận nhằm mục đích liên hệ các chủ đề trong tập sách này với nhiều lĩnh vực nghiên cứu cao cấp khác. Phần cứng chuyên dụng, quy hoạch động, quy hoạch tuyến tính, tìm kiếm- vét cạn . I. Sp xp: 1. Khái niệm: a) Sắp xếp là một quá trình tổ chức lại một dãy các dữ liệu theo một trật tự nhất định. b) Mục đích của việc sắp xếp là nhằm giúp cho việc tìm kiếm dữ liệu một cách dễ dàng và nhanh chóng. Sắp xếp là một việc làm hết sức bản và đợc dùng rộng rãi trong cácthuật lập trình nhằm sử dữ liệu. c) Các giải thuật sắp xếp đợc phân chia thành hai nhóm chính là: - Sắp xếp trong (hay sắp xếp mảng). Toàn bộ sở dữ liệu cần sắp xếp phải đợc đa vào bộ nhớ chính của máy tính. Do đó nó thờng đợc sử dụng khi khối lợng dữ liệu không vợt quá dung lợng bộ nhớ chính. Nhóm sắp xếp trong bao gồm các phơng pháp : * Phơng pháp đếm. 1 * Phơng pháp chèn. * Phơng pháp chọn. * Phơng pháp đổi chổ. * Phơng pháp trộn. - Sắp xếp ngoài (hay sắp xếp tập tin). Vận dụng trong trờng hợp ta phải sắp xếp các tập tin chứa nhiều mẫu tin và mỗi mẫu tin chiều dài tơng đối lớn do đó ta không thể nạp toàn bộ vào bộ nhớ chính để sắp xếp thứ tự. Vì vậy ta phải những phơng pháp thích hợp cho việc sắp xếp tập tin. 2. Sắp xếp trong: a) Khái niệm: Cấu trúc dữ liệu thích hợp cho các phần tử cần sắp xếp thứ tự là Record. Mỗi phần tử hai vùng đặc trơng là: Vùng Key để chứa khoá của phần tử và đợc sử dụng trong các giải thuật tìm kiếm, vùng info dùng để chứa đữ liệu các phần tử. Ta khai báo : Type Item = Record key : Integer; Info : Integer; End; Var A : Array[1 n] of Item; Khoá của phần tử thể là chữ hoặc số. Yêu cầu giải thích là dùng ít vùng nhớ và thời gian thực hiện nhanh. b) Phơng pháp đếm (Counting sort) * Giải thích: Nội dung của phơng pháp này là đếm các phần tử khoá nhỏ hơn hay bằng khoá của các phần tử A[i]. Nếu j phần tử khoá nhỏ hơn khoá của phần tử A[i] thì phần tử A[i] sẽ vị trí theo thứ tự (j+1) trong dãy đã thứ tự. Trong giải thuật, ta dùng mảng Count[i] ( i = 1, 2, n ) với Count[i] cho biết số phần tử khoá nhỏ hơn khoá của phần tử A[i]. Nh vậy Count[i+1] là vị trí của phần tử A[i] trong dãy đã thứ tự. * Ví dụ: Sắp xếp dãy 2 3 1 5 2 7 6 9 4 i: 1 2 3 4 5 6 7 8 Count: 2 0 4 1 6 5 7 3 Nh vậy phần tử khoá 9 ở vị trí 8 vì Count[9]=7. * Thể hiện bằng Pascal: Procedure Count_Sort; Var Count : Array[1 n] of Integer; A : Array[1 n] of Item; i,j : Integer; Begin For i := 1 to n do Count[i] := 0; 2 For i := n downto 2 do For j := i-1 downto 1 do If A[i].Key < A[j].Key Then Count[j] := Count[j] + 1 Else Count[i] := Count[i] + 1; For i := 1 to n do S[Count[i] + 1] := A[i]; For i := 1 to n do A[i] := S[i]; End; c) Phơng pháp chèn (Insertion Sort) * Giải thích: Nội dung của phơng pháp này là giả sử ta dãy A[1] A[i-1] đã thứ tự, phải xác định vị trí thích hợp của phần tử A[i] trong dãy A[1] A[i - 1] bằng phơng pháp tìm kiếm tuần tự từ A[i - 1] trở về A[1] để tìm ra vị trí thích hợp của A[i]. Ta chèn A[i] vào vị trí này và kết quả là đãy A[1] A[i] thứ tự. Ta áp dụng cách làm này với i = 2, 3, ., n. * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 37 89 13 1 62 i=2 39 50 7 37 89 13 1 62 i=3 39 50 7 37 89 13 1 62 i=4 7 39 50 37 89 13 1 62 i=5 7 37 39 50 89 13 1 62 i=6 7 37 39 50 89 13 1 62 i=7 7 13 37 39 50 89 1 62 i=8 1 7 13 37 39 50 89 62 1 7 13 37 39 50 89 62 * Thể hiện bằng Pascal: Procedure Insertion_Sort; Var x : Item; i,j : Integer; Begin For i := 2 to n do Begin x := A[i]; A[0] := x; j := j - 1; While x.Key < A[j].Key do Begin A[j+1] := A[j]; j := j - 1; End; A[j+1] := x; End; End; d) Phơng pháp chọn (Selection Sort) * Giải thích: 3 Nội dung của phơng pháp này là ở bớc thứ i (i = 1, 2, 3, ., n-1 ) ta lựa chọn phần tử nhỏ nhất trong dãy A[i] A[n] rồi đổi chổ phần tử này với phần tử A[i]. Cuối cùng ta sẽ dãy A[1] A[n] thứ tự. * Ví dụ: Ta phải sắp xếp dãy số : 39 50 7 37 89 13 1 62 i=1 39 50 7 37 89 13 1 62 i=2 1 50 7 37 89 13 39 62 i=3 1 7 50 37 89 13 39 62 i=4 1 7 13 37 89 50 39 62 i=5 1 7 13 37 89 50 39 62 i=6 1 7 13 37 50 50 39 62 i=7 1 7 13 37 39 50 89 62 1 7 13 37 39 50 89 62 * Thể hiện bằng Pascal: Procedure Selection_Sort; Var x : Item; i,j ,k : Integer; min : Integer; Begin For i := 2 to n-1 do Begin min := A[i].Key; k := i; For i := 1 to n-1 do For j := i+1 to n do If A[j].Key < min Then Begin min := A[j].Key; k := j; End; x := A[k]; A[k] := A[i]; A[i] := x; End; End; e) Phơng pháp đổi chỗ: rất nhiều phơng pháp sắp xếp dựa trên việc đổi chỗ giữa 2 phần tử của dãy. Sau đây chúng ta xét các phơng pháp: - Bubble Sort. - Shake Sort. - Sell Sort. - Quick Sort. * Bubble Sort: * Giải thích: 4 Nội dung của phơng pháp này là duyệt các dãy A[1], ., A[n]. Nếu A[i].Key > A[i+1].Key (i = 1, 2, 3, ., n-1)#0 thì ta đổi chỗ A[i].Key với phần tử A[i+1].Key. Lập lại quá trình duyệt dãy này cho đến khi không còn việc đổi chổ của hai phần tử. Chú ý rằng bất cứ lúc nào phần tử nhỏ nhất cũng gặp trớc tiên. Nó nh những bột khí nhẹ sẽ nổi lên trên khi đun nớc. Sau đó ở thứ hai phần tử nhỏ thứ 2 sẽ đợc đặ vào đúng một vị trí. Vì vậy sắp xếp nổi bột thao tác nh một kiểu sắp xếp chọn, mặc dù nó không làm nhiều việc hơn để đa từng phần tử vào đúng vị trí. * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 37 89 13 1 62 Bớc 0 1 2 3 4 5 6 7 50 1 1 1 1 13 1 62 39 39 7 7 7 7 7 7 7 50 39 13 13 13 13 13 37 7 50 39 37 37 37 37 89 37 13 50 39 39 39 39 13 89 37 37 50 50 50 50 1 13 89 62 62 62 62 62 62 62 62 89 89 89 89 89 * Thể hiện bằng Pascal: Procedure Bubble_Sort; Var x : Item; i,j : Integer; Begin For i := 2 to n do For j := n downto i do If A[j-1].Key > A[j].Key Then Begin x := A[j-1]; A[j-1] := A[j]; A[j-1] := x; End; End; * Cải tiến: Ta nhận thấy rằng nếu ở một lần duyệt dãy nào đó mà không co s xẩy ra sự đổi chổ giữa hai phần tử thì dãy dang sắp đã thứ tự và giải thuật kết thúc. Ta thể cài đặt cờ để ghi nhận điều này và chơng trình sau: Procedure Bubble_Sort2; Var x : Item; i : Integer; flag : Boolean; Begin flag := true; 5 While flag do Begin flag := False; For i := 1 to n-1 do If A[i].Key > A[i+1].Key Then Begin x := A[i]; A[i] := A[i+1]; A[i+1] := x; End; End; End; f* Shake Sort: * Giải thích: Phơng pháp này là một cải tiến của phơng pháp Bubble Sort theo hớng "Không những phần tử nhẹ nổi lên trên mà cả phần tử nặng cũng xuống dới" giống nh khi ta rung"rung" một cái nồi và thuật toán sắp xếp phải đợc điều khiển cả hai quá trình "nổi lên" và "chìm xuống" này một cách tự giác. Muốn vậy ta phải ghi nhớ lần đổi chổ cuối cùng khi duyệt dãy từ trên lên và khi duyệt từ trên xuoóng để quyết định chu trình kế tiếp sẽ duyệt từ đâu đến đâu. * Ví dụ: Sắp xếp dãy số: 39 50 7 37 89 13 1 62 d = 2 3 3 4 4 c = 8 8 7 7 4 39 1 1 1 1 50 39 39 7 7 7 50 7 39 13 37 7 37 13 37 89 37 50 37 39 13 89 13 50 50 1 13 62 62 62 62 62 89 89 89 * Thể hiện bằng Pascal: Procedure Shake_Sort; Var x : Item; i,k,d,c : Integer; Begin d := 2; c := n; k := n; Repeat For i := c downto d do If A[i-1].Key > A[i].Key Then Begin 6 x := A[i-1]; A[i-1] := A[i]; A[i-1] := x; k := i; End; d := d + 1; For i := d to c do If A[i-1].Key > A[i].Key Then Begin x := A[i-1]; A[i-1] := A[i]; A[i-1] := x; k := i; End; c := k-1; Until d>c; End; g. * Shell Sort: * Giải thích: Các phơng pháp sắp xếp dã trình bày ở trên nói chung đều di chuyển mỗi phần tử đi một vị trí trong mỗi bớc. Phơng pháp Shell Sort dựa trên ý tởng chính là hoán các phần tử ở xa nhau. Để làm đợc việc đó ta cần phải sắp các tập tin để nó tính chất là việc lấy mọi phần tử thứ h (bắt đầu từ vị trí bất kì nào) cũng đều cho ra tập tin đã sắp. Một tập tin nh vậy đợc gọi là sắp theo độ dài bớc h. Một cách nói khác, một tập tin dợc sắp theo độ dài bớc h là tập tin đợc sắp độc lập với nhau, đan xen vào nhau. Bằng cách sắp xếp theo độ dài bớc h ứng với vài giá trị h khá lớn, chúng ta thể di chuyển các phần tử ở những khoảng cách xa nhau trong mảng và vì vậy dễ dàng hơn để sắp xếp độ dài bớc h các giá tri nhỏ hơn. Dùng thủ tục cho bất kì một dãy các giá trị của h tận cùng là 1 sẽ cho ra một tập tin đã sắp xong: Dó chính là Shell Sort. * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 39 89 13 1 62 Bớc 1: 4-Sort 39 50 7 39 89 13 1 62 39 13 1 37 89 50 7 62 Bớc 2: 2-Sort 39 13 1 37 89 50 7 62 1 13 7 37 39 50 89 62 Bớc 3: 1-Sort 1 13 7 37 39 50 89 62 1 7 13 37 39 50 89 62 * Thể hiện bằng Pascal: Chú ý: 7 - Ta dùng dãy phụ chứa dộ tăng h[i], ., h[t] để điều khiển quá trình sắp xếp thứ tự với h[t]=1. Việc chộn các độ tăng thích hợp sẽ làm giảm thời gian sắp thứ tự. - Dặt h1 = h[1] ta phải khai báo dãy a nh sau: A : Array[1 n] of Item; các phần tử A[i] (i<=0) là các lính canh. Sau đây ta chọn: h[1] = 9, h[2] = 5, h[3] = 3, h[4] = 1 Procedure Shell_Sort; Const t = 4; Var x : Item; i,j,k,s,m: Integer; h : Array[1 t] of Integer; Begin h[1] = 9; h[2] = 5; h[3] = 3; h[4] = 1; For m := 1 to t do Begin k := h[m]; s := -k; For i := k+1 to n do Begin x := A[i]; j := i - k; If s = 0 Then s:=-k; s := s + 1; A[s] := x; While x.Key<A[j].Key do Begin A[j+k] :=A[j]; j := j - k; End; A[j+k] := x; End; End; End; h. Quick Sort: * Giải thích: Nội dung của phơng pháp này là chọn phần tử x ở giữa của dãy làm chuẩn để so sánh. Ta phân hoạch dãy này thành 3 dãy con liên tiếp nhau: - Dãy con thứ nhất gồm phần tử khoá nhỏ hơn x.key. - Dãy con thứ hai gồm các phần tử khoá bằng x.key. - Dãy con thứ ba gồm các phần tử khoá lớn hơn x.key. Sau đó áp dụng giải thuật phân hoạch này cho dãy con thứ nhất nhất và dãy con thứ ba, nếu các dãy con nhiều hơn một phần tử (Đệ qui). 8 Cụ thể là xét một doạn của dãy từ thành phần L đến thành phần thứ R. - Lấy giá trị của thành phần thứ (L+R) Div 2 gán vào biến X. - Cho i ban đầu là L. - Cho j ban đầu là R. - Lập lại. * Chừng nào còn A[i] < X thì tăng i. * Chừng nào còn A[j] > X thì giảm j. * i<=j thì + Hoán vị A[i] và A[j] + Tăng i + Giảm j Cho đến khi i>j + Sắp xếp đoạn từ A[L] đến A[j] + Sắp xếp đoạn từ A[i] đến A[R] * Ví dụ: Sắp xếp dãy số: 39 50 7 37 89 13 1 62 X = 37 Sau 2 lần đổi chổ ta đợc dãy: 1 13 7 37 89 50 39 62 Xử dãy con: 1 13 7 Ta đợc: 1 7 13 Sử dãy con: 89 50 39 62 Ta đợc: 39 50 89 62 39 50 62 89 Vậy dãy đã sắp xếp là: 1 7 13 39 50 62 89 * Thể hiện bằng Pascal: Để đơn giản ta viết thủ tục sắp một mảng số nguyên đợc truyền tham biến. Procedure Quick_Sort(Var A : Array[1 n] of Integer); Procedure Sort(L,R : Integer); Var i,j,Tg,X : Integer; Begin X := A[(L+R) Div 2]; i := L; j := R; Repeat While (A[i] < X) do Inc(i); While (A[j] > X) do Dec(j); If i <= j Then Begin 9 Tg := A[i]; A[i] := A[j]; A[j] := Tg; Inc(i); Dec(j); End; Until i>j; If L < j Then Sort(L,j); If i < R Then Sort(i,R); End; Begin Sort(1,n); End; i. Phơng pháp trọn (Merging Sort) * Giải thích: Nội dung của phơng pháp này là chia dãy số cần sắp thành các dãy con đã thứ tự(goi là các Run) và số phần tử là luỹ thừa 2 sau đó tìm cách trộn dần chúng với nhau thành các Run thứ tự chiều dài tăng dần cho đến khi chỉ còn một Run thì quá trình sắp xếp kết thúc. Ta giải thuật sau đây để trộn 2 Run x và y cùng thứ tự chiều dài lần lợt là m và n thành một run z chiều dài là m + n. Procedure Merge; Var i,j,k : Integer; Begin i := 1; j := 1; k := 1; While (i <= m) and (j <= n) do Begin If X[i] < Y[j] Then Begin Z[k] := X[j]; i := i + 1; End Else Begin Z[k] := Y[j] j := j + 1; End; k := k + 1; End; While i<=m do Begin Z[k] := X[j]; k := k + 1; i := i + 1; 10 [...]... phức tạp sẽ đợc biểu diễn dựa trên các phần tử sở này 1/Giao các đoạn thẳng: Trong bài học sơ cấp đầu tiên, chúng ta sẽ xét xem 2 đoạn thẳng giao nhau hay không Một phơng pháp dễ hiểu để giải quyết bài toán này là tìm giao điểm của các đờng thẳng xác định bởi các đoạn thẳng đó rồi kiểm tra xem nó nằm giữa hai điểm đầu của hai đoạn thẳng đó hay không Một cách dễ dàng khác là xem thử xem đờng... dùng một số lợng lớn tính toán để giải quyết một bài toán đơn giản Ngời đọc hãy mạnh dạn thử tìm một phơng pháp đơn giảm hơn nhng chú ý phải đầy đủ các trờng hợp 2/ Đờng khép kín đơn: Để thấy đợc đặc điểm riêng của bài toán ứng với tập hợp các điểm, chúng ta xét bài toán tìm một đờng đi, qua một tập hợp n điểm xác định, qua tất cả các điểm, không giao nhau và cuối cùng trở về điểm bắt đầu Đờng đi nh... đơn Để giái quyết bài toán này ta phải chọn một điểm làm "điểm gốc" Sau đó tính góc tạo bằng cách vẽ một đờng từ mỗi điểm trong tập hợp đến gốc vẽ ra theo phơng ngang Sau đó, sắp thứ tự các điểm theo thứ tự tăng dần của góc tơng ứng, cuối cùng nối các điểm cạnh nhau lại Gọi dx , dy là khoảng cách từ điểm gốc đến một điểm khác theo trục hoành và tung thì góc cần tính trong giải thuật này là cotan dy... cầu xử các tình huống khi các đỉnh cảu đa giác rơi trên đoạn thẳng kiểm tra buộc chúng ta phải làm nhiều hơn là chỉ đếm số giao điểm của các cạnh đa giác với đoạn thẳng kiểm tra Thực chất, chúng ta muốn đi vòng quanh đa giác, tăng một biến đếm khi nào ta di từ một bên của đoạn thẳng kiểm tra sang một bên khác Một cách để thực hiện là đơn giản bỏ qua các điểm rơi trên đoạn thẳng kiểm tra, nh trong. .. phơng án, gần đúng với phơng án tối u: 1 Xuất phát từ bản Cij đóng vai trò bảng hiện hành Tập cặp ghép đợc khởi gán bằng rỗng 2 Tìm dòng i cột j ra khỏi bảng hiện hành và lặp lại bớc thứ 2 cho đến khi bảng rỗng 3 Xoá dòng i, cột j ra khỏi bảng hiện hành và lặp lại bớc 2 cho đến khi bảng rỗng Thí dụ, xét bảng trọng số với n = 4: 2516 8764 6935 5127 các cặp ghép đợc chọn lần lợt là (1 8 9 7) (x3, y2),... một thuật toán tim cặp ghép đầy đủ tội u theo hớng thứ hai d Thuật toán Kuhn-Munkes Nội dung chủ yếu của phơng pháp là xuất phát từ một tập cặp ghép nào đó cha đâỳ đủ (co thể lập hợp rỗng ) , ta tăng dần số cặp ghép sao cho khi trở thành đầy đủ , các cặp ghép thu đợc cũng đồng thời thoã mãn tính tối u nhiều hình thức trình bày phơng pháp này Dới đây là cách trình bầy trên ngôn ngữ đồ thị với các. .. hợp này các cách ghép tìm đợc cha phải là cặp ghép đầy đủ và tối u( xem lại ví dụ này ở dới) c ịnh sở 15 Việc xây dựng tập cặp ghép đầy đủ tối u dựa vào dấu hiệu nhận biết một tập ghép đầy đủ khi nào là tối u Dĩ nhiên việc thử dấu hiệu này không phải là việc so sánh với tất cả các cặp ghép, mà phải đợc mang tính khả thi Để lam điều này ngời ta xây dựng hàm số F, xác định trên tập của các phần... End; 3/ Điểm nằm trong đa giác: Tiếp theo, chúng ta sẽ xét một bài toán rất tự nhiên: cho một điểm và một đa giác biểu diễn bằng một mảng các điểm, xác định xem điểm này nằm trong hay ngoài đa giác Một giải pháp dễ hiểu để giải bài toán này là vẽ một đọan thẳng dài bắt đầu từ điểm đó theo một hớng bất kỳ và đếm số lợng đoạn thẳng tạo đợc do nó cắt qua đa giác Nếu là số lẽ, điểm đó nằm trong đa giác và... u hoá theo các giá trị đã lợng hoá Vì số tập cặp ghép là hữu hạn, nên một phơng pháp xây dựng tầm cỡ là thử tất cả các khả năng Tuy nhiên, số khả năng nh vậy rất lớn (cỡ n!) Vì thế, ngời ta quan tâm đến việc tìm kiếm những thuật giải hữu hiệu, dễ cài đặt chơng trình và tính khả thi cao Bài toán này nhằm giới một số mụ hình ghép cặp nh vậy 14 2 Cặp ghép đầy đủ tối u a Giới thiệu bài toán Một cặp... cặp ghép, sao cho tất cả các phần tử của X và Y đều đợc ghép cặp (nghĩa là đủ n cặp với n là số phần tử của X và Y), đợc gọi là ghép cặp đầy đủ Rõ ràng mỗi song ánh p: X -> Y xác định một tập ghép cặp đầy đủ, trong đó mỗi cặp ghép đợc viết dới dạng (x , p(x)), x thuộc X Từ đó suy ra tất cả n! cách xây dựng tập cặp ghép đầy đủ khác nhau Với các tập cặp ghép đầy đủ, một cách tự nhiên, ngời ta quan . liệu cơ bản đã phát triển trớc đó. + Các thuật toán toán học: gồm các phơng pháp cơ bản từ số học và các số nguyên, đa thức, và ma trận cũng nh các thuật toán. nh là nền tảng cho các thuật toán khác tiếp sau trong phần này. + Xử lý chuỗi: gồm một loạt các phơng pháp để phân tích câu. Các ky thuật nén tập và mật

Ngày đăng: 22/10/2013, 10:15

Từ khóa liên quan

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

Tài liệu liên quan