Trong ứng dụng củaĐSTT này, chúng ta sẽ xem xét cách thức giải mã một thông điệp sau khi nó bị bópméo bởi một số loại tiếng ồn.. Ma trận đầu tiên nàyđược gọi là ma trận mã hóa và nghịch
ỨNG DỤNG TRONG LÝ THUYẾT MÃ
Giới thiệu
Quá trình truyền thông tin thường bị gián đoạn bởi nhiễu, do đó cần mã hóa tin nhắn để bảo đảm tính chính xác sau nhiễu loạn Việc sao chép dữ liệu có thể tốn thêm dung lượng lưu trữ Mã hóa là quá trình mã hóa tin nhắn nhằm phát hiện hoặc sửa các lỗi nhiễu Phát hiện lỗi dễ dàng hơn nhiều so với sửa lỗi.
Một số kỹ thuật mã hóa cơ bản
Hầu hết các tin nhắn được gửi đi dưới dạng các dãy ký t7 của 0 và 1, chẳng hạn như 10101 hoặc 1010011, nên giả sử rằng chúng ta muốn gửi tin nhắn 1011.
"Từ" nhị phân này có thể thay cho một từ th7c tế, chẳng hạn như mua, hoặc một câu như mua cổ phiếu Một cách để mã hóa 1011 sẽ là việc đính kèm một "đuôi" nhị phân vào nó để sao cho nếu nó bị bóp méo, chẳng hạn như, 0011, chúng ta có thể phát hiện các lỗi Một trong những cái đuôi có thể là 1 hoặc 0, tùy thuộc vào việc chúng ta có lẻ hoặc một số chẵn của 1 trong các từ Bằng cách này, tất cả các từ mã hóa sẽ có một số chẵn của 1 Vì vậy, 1011 sẽ được mã hóa như 10111 Bây giờ nếu tin nhắn bị bóp méo đến 00.111 chúng ta biết rằng một lỗi đã xảy ra, bởi vì chúng ta chỉ nhận được một số lẻ của 1 Mã phát hiện lỗi này được gọi là kiểm tra ngang hàng và nó quá đơn giản để có thể hữu ích Ví dụ, nếu hai chữ số đã được thay đổi, chương trình của chúng ta sẽ không phát hiện các lỗi, vì vậy điều này chắc chắn không phải là một mã sửa lỗi Một phương pháp khác đó là việc mã hóa thông điệp bằng cách lặp lại nó hai lần, chẳng hạn như 10111011 Sau đó, nếu ta nhận được là 00.111.011, chúng ta biết rằng một trong hai phần bằng nhau đã bị bóp méo Nếu chỉ có một lỗi xảy ra, sau đó nó rõ ràng ở vị trí 1 là chương trình mã hóa này cũng cho kết quả thấp và không thường được sử dụng Chúng ta có thể có được kết quả tốt hơn bằng cách lặp lại thông điệp nhiều lần, nhưng sẽ mất không gian và thời gian.
Một kỹ thuật mã hóa nâng cao: Mã Hamming
Trong những năm 1950, R.H Hamming đã giới thiệu một mã sửa lỗi đơn thú vị cái mà trở thành một mã được biết đên với tên gọi là mã Hamming Trước khi chúng ta có thể kiểm tra chi tiết của kỹ thuật đó, chúng ta cần một vài kiến thức nền tảng từ đại số tuyến tính.
Trong một khóa học đại số tuyến tính năm nhất tiêu biểu, lúc sinh viên được giới thiệu khái niệm của một không gian vectơ, từ “vô hướng” có nghĩa là một số th7c hoặc một số phức Điều này có thể được tổng quát tới một phần tử bất kỳ của một trường cho trước.
Một trường là một tập F với hai phép toán, cộng và nhân, thỏa mãn các tiên đề sau đây:
1 Phép cộng khép kín: nếu x, y thuộc F, thì x+y cũng thuộc F.
2 Phép nhân khép kín: nếu x, y thuộc F, thì xy cũng thuộc F.
3 Phép cộng có tính kết hợp: nếu x, y, z thuộc F, thì (x+y)+z=x+(y+z)
4 Phép nhân có tính kết hợp: nếu x, y, z thuộc F, thì (xy)z=x(yz)
5 Luật phân phối: nếu x, y, z thuộc F, thì x(y+z)=xy+yz
6 Tồn tại phần tử 0: một phần tử của F thỏa mãn x+0=x với mọi thuộc Fx
7 Tồn tại phần tử 1: một phần tử của F thỏa mãn x.1=x với mọi thuộc Fx
8 Tồn tại phần tử đối: Nếu thuộc F, thì tồn tại thuộc F sao cho x y x+y=0
9 Tồn tại phần tử nghịch đảo của phần tử khác 0: Nếu khác 0 và thuộc Fx thì tồn tại một phần tử thuộc F sao cho y xy=1.
10.Luật giao hoán của phép cộng: Nếu x, y thuộc F, thì x+y=y+x
11.Luật giao hoán của phép nhân: Nếu x, y thuộc F, thì xy=yx.
Ví dụ của trường như (tập các số hữu tỷ), (tập các số th7c), (tập các số phức), và p): nếu là một số nguyên tố (các số nguyên modulo một số nguyên tốp p 0,1, ,( p 1) Đặc biệt, trong trường hợp p=2, trường hai phần tử là 0 và 1, tức là
1 được ký hiệu bởi Nó bao gồm chỉ
Trong , phép cộng và phép nhân được định nghĩa như sau:Z 2
Nhắc lại rằng cấu trúc không gian vectơ của sau:
) trên xác định bởi hai phép toán
1 a(x 1 ,…, x )= (ax ,…,a x ) n 1 n nếu là một số th7c.a
Cấu trúc tương t7 có thể được định nghĩa trên n 2 5 2 n
2 n Chúng ta trang bị với phép cộng và phép nhân với vô hướng (nhân với 0 và 1) Chẳng hạn, trong có: chúng ta
Khi đó, trở thành một không gian vectơ trên trường (phép nhân ở đây là với
Không gian vectơ hữu hạn, không gian được tạo thành từ số hữu hạn các vectơ, thường được biểu diễn bởi tập hợp các số 0 và 1 Các khái niệm cơ bản của không gian vectơ như phụ thuộc tuyến tính, tổ hợp tuyến tính, không gian con, chiều, không gian hàng, không gian vô hướng, đều áp dụng được trong trường hợp này Điểm khác biệt lớn nhất so với không gian vectơ thông thường là không gian vectơ hữu hạn chứa số hữu hạn các vectơ cụ thể.
Mã Hamming (7,4)
Cho trước hai số nguyên k ≤ n, một không gian con của với chiều k được gọi là một (n,k) mã tuyến tính Các phần tử của một mã tuyến tính được gọi là các từ mã.
Xét ma trận trênH gồm các cột c 1 , …, c 7 là các vectơ khác không của 3:
Không gian không, Null( ) (còn được gọi là H hạt nhân), của được gọi là một H mã Hamming (7,4) Nhắc lại rằng Null( ) không gì khác là tập tất cả các nghiệm củaH hệ phương trình tuyến tính thuần nhất HX=0 tương ứng với H Ta nói rằng H là một ma trận kiểm tra cho mã Null( ) Ta giải hệ phương trình H HX=0 để xác định Null( ).H
Sử dụng phương pháp khử Gauss-Jordan (cùng với các phép toán số học của ), chúng ta thu được dạng bậc thang của như sau:H
Và từ hạng của bằng 3, chiều của Null( ) là 7-3=4 Th7c ra, ta có thể dễ dàngH H chỉ ra rằng
B (1,0,0,0,0,1,1);(0,1,0,0,1,0,1);(0,0,1,0,1,1,0);(0,0,0,1,1,1,1) là một cơ sở của Null( ) trên H Z 2
Nhận xét Giả sử {e ,…,e 1 7 } là cơ sở chuẩn tắc của , khi đó He =c i i với mọi i=1,
…,7, và do đó không có vectơ e i nào thuộc Null( ) Như là một hệ quả, ta có haiH nhận xét sau:
2 Nếu là một vectơ của Null(v H), thì + v e i không thuộc Null( ) với H i=1,2,…,7.
3 Nếu là một vectơ của sao cho v Hv=c i với nào đó, thì + là một vectơi v e i của Null( ) Hơn nữa, + không thuộc Null( ) với mọi H v H ji
Ma trận gồm các hàng là các phần tử của cơ sở B được gọi là ma trận phần tử G sinh của mã Hamming (7,4):
Bây giờ chúng ta sẽ giải thích quá trình giải mã Hamming và sửa lỗi:
Thuật toán sửa lỗi với mã Hamming (7,4)
Giả sử rằng chúng ta muốn gửi một từ bao gồm 4 ký t7 u u 1 u u u , 2 3 4 và giả sử rằng chúng ta biết trước rằng từ mã hóa có thể bị làm nhiễu bởi một việc thay đổi chỉ một thành phần của nó Gọi là từ thu được.w
2 Để mã hóa , chúng ta tạo ra một tổ hợp tuyến tính của các phần tử của cơu v sở B ở trên với 4 ký t7 của như là hệ số Chú ý rằng có thể đạt được từu v từ gốc bằng việc biểu diễn phép nhân ma trận v=[u 1 u u u 2 3 4 ]G, trong đó G là ma trận ở trên Bởi xây d7ng này, vectơ v thuộc Null( ) Chú ý rằngH
[u 1 u u u 2 3 4 ]G có thể cho ta một vectơ 7 ký t7 trong đó 4 ký t7 đầu biểu diễn cho từ gốc.
3 Tính Hw, trong đó là ma trận được mô tả ở trên.H
4 Nếu Hw=0, thì w nằm trong Null(H) Do đó, một lỗi đơn có nghĩa là w không thuộc Null( ) bằng chú ý đầu tiên ở trên Chúng ta sẽ kết luận làH không có s7 sai lệch ở đây và là 4 ký t7 đầu tiên của u w.
5 Nếu Hw=c i với nào đó, thì + là một vectơ của Null( ), và + khôngi v e i H v e j thuộc Null( ) với mọi Điều này gợi ý một s7 thay đổi thành phần thứ H j i i của (từ 0 thành 1 hoặc từ 1 thành 0) và thu được một vectơ mới w w’ Bốn ký t7 đầu của w’ biểu diễn cho từ u.
Ta cùng minh họa các bước trên bởi hai ví dụ sau đây:
Ví dụ 1 Giả sử chúng ta nhận được tin nhắn là w=1100011 được mã hóa bởi mã Hamming (4, 7) Giả sử rằng có nhiều nhất một lỗi trong quá trình chuyển phát thông tin, hãy tìm tin nhắn gốc.
H Từ Hw bằng cột thứ hai của H, thay thành phần thứ hai của cho ta từ mã hóaw
1000011 Chúng ta kết luận rằng tin nhắn gốc là 1000.
Ví dụ 2 Giả sử rằng chúng ta nhận được tin nhắn là w=0101010 được mã hóa bởi mã Hamming (4, 7) Giả sử rằng có nhiều nhất một lỗi sai trong truyền tin, tìm tin nhắn gốc.
Từ Hw = 0, không có lỗi nào trong quá trình truyền tin nhắn này, do đó từ gốc là 0101.
Trong kỹ thuật ở trên, các từ chúng ta gửi đi rất ngắn: chỉ 4 ký t7 Chỉ có 2 4 từ như vậy Trong th7c tế, các tin nhắn điện tử chứa đ7ng rất nhiều ký t7 Một vấn đề khác với mã Hamming (4, 7) đó là nó không thể nhận ra nhiều hơn một lỗi trong tin nhắn được mã hóa Với cuộc cách mạng điện tử của thời đại chúng ta, ta có thể hình dung ra rằng có nhiều kiểu mã hiệu quả hơn nhiều.
ỨNG DỤNG TRONG MẬT MÃ
khái niệm mật mã
Mật mã học, với hầu hết mọi người, là việc giữ thông tin liên lạc một cách riêng tư Th7c tế là, việc bảo vệ các thông tin liên lạc nhạy cảm đã được đặt là trọng tâm của mật mã trong suốt quá trình lịch sử của nó Mã hóa là việc chuyển đổi dữ liệu vào một số hình thức không đọc được Mục đích của nó là để đảm bảo s7 riêng tư bằng cách giữ các thông tin bí mật với bất cứ ai mà nó không có ý định truyền tải đến, ngay cả những người có thể xem dữ liệu được mã hóa Giải mã là quá trình ngược lại của mã hóa; nó là s7 chuyển đổi dữ liệu được mã hóa trở về một số hình thức đọc được, hiểu được Mã hóa và giải mã yêu cầu sử dụng một số thông tin bí mật, thường được gọi là một chìa khóa Tùy thuộc vào các cơ chế mã hóa được sử dụng, các chìa khóa tương t7 có thể được sử dụng cho cả mã hóa và giải mã, trong khi đối với các cơ chế khác, các chìa khóa được sử dụng để mã hóa và giải mã có thể khác nhau.
Ngày nay, các chính phủ sử dụng các phương pháp phức tạp để mã hóa và giải mã các thông điệp Một loại mã, mà rất khó để phá vỡ, được tạo ra bằng việc sử dụng một ma trận lớn để mã hóa một thông điệp Người nhận thông điệp giải mã nó bằng cách sử dụng ma trận nghịch đảo của ma trận đó Ma trận đầu tiên này được gọi là ma trận mã hóa và nghịch đảo của nó được gọi là ma trận giải mã.
Ví dụ Giả sử thông điệp cần gửi là
Và ma trận mã hóa là
- Chúng ta gán một số cho mỗi chữ cái của bảng chữ cái.- Để đơn giản, chúng ta hãy gắn mỗi chữ cái với vị trí của nó trong bảng chữ cái: A là 1, B là 2, và cứ tiếp tục như vậy.- Ngoài ra, chúng ta chỉ định số 27 (nhớ là chúng ta chỉ có 26 chữ cái trong bảng chữ cái) là cách trống giữa hai từ.
Từ việc chúng ta đang sử dụng một ma trận cấp 3x3, chúng ta ngắt tin nhắn trên thành một dãy của các vectơ cột gồm 3 hàng như sau:
Lưu ý rằng nếu cần thiết có thể thêm cách trống vào cuối của thông điệp để hoàn thành vector cuối cùng Bây giờ chúng ta mã hóa thông điệp bằng cách nhân mỗi vectơ trên với ma trận mã hóa Điều này có thể được th7c hiện bằng cách viết các vectơ trên như là các cột của ma trận và th7c hiện các phép nhân ma trận đó ma trận với ma trận mã hóa như sau:
Và ta nhận được ma trận
Các cột của ma trận này cung cấp cho các thông điệp được mã hóa Thông điệp được truyền đi dưới dạng tuyến tính như sau Để giải mã thông điệp, người nhận viết chuỗi này như là một chuỗi của các ma trận cột 3x1 và lặp lại kỹ thuật bằng việc sử dụng ma trận nghịch đảo của ma trận mã hóa
Ma trận nghịch đảo của ma trận mã hóa này, hay ma trận giải mã, là:
Vì vậy, để giải mã thông điệp, th7c hiện phép nhân ma trận
Ta nhận được ma trận
Các cột của ma trận này, được viết ở dạng tuyến tính, cho ta thông điệp ban đầu:
ỨNG DỤNG TRONG LÝ THUYẾT ĐỒ THỊ
Giới thiệu và vài nét lịch sử
Kửnigsberg là một thành phố ở Nga nằm cạnh song Pregel, nơi được xem là nơi ở của công tước của nước Phổ trong thế kỷ thứ 16 Ngày nay, thành phố này được đặt tên là Kaliningrad, và nó là một trung tâm công nghiệp và thương mại của Tây nước Nga.Sông Pregel chảy dọc theo thành phố và chia thành phố thành 4 vùng như bức tranh sau:
Trong thế kỷ 18, bảy cây cầu nối bốn vùng này với nhau Người dân Kửnigsberg thường cú thúi quen đi bộ dọc theo thành phố vào cỏc chủ nhật hàng tuần Họ t7 hỏi rằng ta có thể bắt đầu tại một địa điểm trong thành phố, đi qua tất cả các cây cầu mà mỗi câu cầu không đi qua quá 2 làn và quay trở lại được điểm xuất phát không Vấn đề này đầu tiên được giải quyết bởi nhà toán học Thụy Sĩ nổi tiếng là Leonhard Euler, người mà, như một hệ quả của cách giải quyết của mình, đã phát minh ra một nhánh của toán học mà ngày nay được biết đến là Lý thuyết đồ thị Phương án của Euler đó là biểu thị vấn đề đặt ra bởi một đồ thị với 4 vùng được biểu thị bởi 4 đỉnh và 7 cây cầu là 7 cạnh như sau:
Lý thuyết đồ thị bay giờ là một công cụ chính trong các nghiên cứu toán học, kỹ thuật điện, lập trình máy tính và kết nối mạng, quản trị kinh doanh, xã hội học, kinh tế, tiếp thị và truyền thông; danh sách này có thể còn tiếp tục nhiều nữa Th7c tế, nhiều vấn đề có thể được mô hình hóa với các đường dẫn (xem định nghĩa dưới đây) được định hình bằng cách đi dọc theo các cạnh của một đồ thị nào đó Ví dụ,vấn đề về lập các tuyến đường một cách hiệu quả để chuyển phát thư, nhặt rác,quét tuyết, chẩn đoán trong các mạng máy tính, và những cái khác, có thể được giải quyết bằng việc sử dụng các mô hình có liên quan đến đường đi trong đồ thị.
Các khái niệm của đồ thị
Trước khi tìm hiểu mối liên hệ giữa lý thuyết đồ thị và đại số tuyến tính, cần nắm vững một số khái niệm cơ bản trong lý thuyết đồ thị.
Một đồ thị là một họ các điểm được gọi là các đỉnh, được nối với nhau bởi các đoạn thẳng được gọi là các cạnh:
Một đồ thị được gọi là được định hướng hay một digraph nếu các cạnh của nó được định hướng (có nghĩa là chúng có một hướng cụ thể) Một đường đi kết nối hai đỉnh X và Y của một digraph là một dãy các điểm phân biệt (các đỉnh) và các cạnh định hướng Một đường đi bắt đầu và kết thúc tại một đỉnh của P được gọi là một loop tại P Chẳng hạn, trong đồ thị định hướng:
Có nhiều hơn một đường đi từ P tới P Một trong số chúng bao gồm ba điểm 1 3
P1 P P Một đường đi khác từ P tới P bao gồm các điểm P P P P P 2 3 1 3 1 2 4 5 3
Một đồ thị được gọi là liên thông nếu có một đường đi kết nối hai đỉnh phân biệt.Các đồ thị khác được gọi là không liên thông.
Trong đồ thị G, nếu tồn tại đường đi bao gồm các cạnh giữa hai đỉnh P và P, thì ta nói rằng có một bước đi từ P đến P Ví dụ, giữa các đỉnh P và P có ba bước đi khác nhau trong đồ thị G ở trên.
3.2.1 Đại số tuyến tính liên quan tới lý thuyết đồ thị như thế nào?
Như vậy, chúng ta dễ dàng nhận thấy đồ thị đôi khi có thể trở nên rất phức tạp Bởi lẽ đó, một cách biểu diễn hữu ích hơn là ma trận Ma trận giúp chúng ta chuyển đổi hình ảnh thành số liệu, từ đó có thể tận dụng các phương pháp đại số tuyến tính để nghiên cứu đồ thị hiệu quả hơn.
Cho một đồ thị G với đỉnh n v ,…,v 1 n , ta định nghĩa ma trận liên thuộc của G tương ứng với các đỉnh được liệt kê theo thứ t7 v ,…,v 1 n là ma trận A=[a ] cấp ij n×n xác định bởi
Chẳng hạn, với đồ thị G ở trên, ma trận liên thuộc (ứng với thứ t7 liệt kê các đỉnh1
Chú ý rằng với một đồ thị không định hướng, chẳng hạn như G , ma trận kề của nó1 là đối xứng, nhưng điều này không còn đúng đối với ma trận định hướng như G 2
Cũng như vậy, chú ý rằng mọi ma trận vuông Boolean (phần tử nhận hai giá trị
0 và 1) với 0 ở trên đường chéo chính xác định duy nhất một đồ thị định hướng Định lý sau cho ta một ý nghĩa quan trọng của việc sử dụng các lũy thừa của ma trận liên thuộc của một đồ thị:
Nếu A là ma trận liên thuộc của đồ thị G (với các đỉnh là v ,…, v ), thì phần tử 1 n hàng i cột j của A biểu thị cho số các r-bước phân biệt từ đỉnh v tới đỉnh v trong r i j đồ thị.
Lấy bình phương của ma trận M ở trên cho ta ma trận:1
Từ ma trận này suy ra số các đường đi phân biệt gồm 2 cạnh giữa các đỉnh của đồ thị G Chẳng hạn như, có ba 2-bước phân biệt giữa đỉnh P và P trên đồ thị,1 2 7 nhưng không có cách nào để đi từ P tới P bằng hai bước.1 5
Ví dụ cung cấp biểu diễn đồ thị lối đi của công ty giao hàng với các thành phố A, B, C, D, E Ma trận liên thuộc M của đồ thị này mô tả mối liên hệ giữa các thành phố này, với các phần tử cho biết khoảng cách hoặc thời gian di chuyển giữa hai thành phố cụ thể.
Nếu công ty quan tâm tập trung vào s7 kết nối từ thành phố tới thành phố A B, ta có thể thấy rằng số 1-bước kết nối giữa và là 1, số 2-bước kết nối là 1, nhưngA B số 3- bước kết nối giữa hai thành phố lại là 4 Bốn kết nối này có thể liệt kê ra chi tiết là:
Đồ thị định hướng trội
Một đồ thị định hướng được gọi là đồ thị định hướng trội nếu với mọi cặp đỉnh phân biệt và của , hoặc u v G u→v hoặc v→u, chứ không có cả hai cùng lúc (ở đây khái niệm u→v có nghĩa là có một cạnh từ tới )u v
Sau đây là một ví dụ về đồ thị định hướng trội:
Trong đồ thị trên, các đỉnh A, C, và E có tính chất sau: từ mỗi một đỉnh có hoặc một cái 1-bước hoặc một cái 2-bước kết nối tới mọi đỉnh khác trong đồ thị Trong một mùa giải thể thao, những đỉnh này sẽ tương ứng các đội mạnh nhất theo nghĩa là những đội này đánh bại các đội khác hoặc đánh bại những đội mà đã thắng các đội khác Đồ thị trên là không duy nhất đối với tính chất này:
Trong mọi đồ thị có hướng trội (tức là đồ thị có hướng trong đó tồn tại một đỉnh trội có thể truy cập được mọi đỉnh khác), ít nhất phải có một đỉnh nguồn, được gọi là đỉnh trội, có đặc tính: mọi đỉnh còn lại trong đồ thị đều có thể đạt được từ đỉnh trội này chỉ bằng duy nhất một con đường có độ dài là 1 bước hoặc bằng một con đường có độ dài là 2 bước.
Trong một đồ thị định hướng trội, chúng ta định nghĩa lũy thừa của một đỉnh, như là tổng số các đường đi 1-bước hoặc 2-bước kết nối tới các đỉnh khác Sử dụng ma trận liên thuộc M của đồ thị, ta có thể tìm ra lũy thừa của một đỉnh như sau:P i tổng của các phần tử trong hàng thứ của i M là tổng số 1-bước kết nối từ tới cácP i đỉnh khác, và tổng các phần tử trên hàng thứ của i M 2 là tổng số các 2-bước kết nối từ P i tới các đỉnh khác Do đó, tổng của các phần tử trên hàng thứ của mai trận A=M+ M 2 là tổng số các đường đi 1-bước và 2-bước kết nối tới các đỉnhP i khác Trong một đồ thị định hướng trội, ta sẽ muốn xác định xem đỉnh nào có lũy thừa lớn nhất Để làm được điều đó, ta tính ma trận A=M+ M 2 , và sau đó một hàng của A với tổng các phần tử trên đó là lớn nhất sẽ tương ứng với đỉnh cần tìm.
Ví dụ Giả sử rằng các kết quả của một mùa giải bóng rổ gồm 5 đội A, B, C, D và E được cho bởi đồ thị định hướng trội H ở trên Ma trận liên thuộc của H là:M
Do hàng thứ nhất có tổng các phần tử lớn nhất, nên đỉnh phải có một đường đi 1-A bước hoặc 2-bước kết nối tới mọi đỉnh còn lại Thứ hạng của các đổi theo lũy thừa của đỉnh tương ứng là: Đội A (nhất), Đội C (nhì), Đội B và đội D (ba) và Đội E (tư).
ỨNG DỤNG TRONG NÉN ẢNH
Giới thiệu
Khi lấy từ Internet, hình ảnh kỹ thuật số mất một số lượng đáng kể thời gian để tải về và sử dụng một lượng lớn bộ nhớ máy tính Các Haar wavelet biến đổi mà chúng ta sẽ thảo luận trong ứng dụng này là một cách để nén hình ảnh kỹ thuật số để chúng mất ít không gian khi lưu trữ và truyền đi Như chúng ta sẽ thấy sau này, từ “wavelet” là viết tắt của một cơ sở tr7c giao của một không gian vector nhất định Ý tưởng cơ bản đằng sau phương pháp nén này đó là xem một hình ảnh kỹ thuật số như một dãy số, chẳng hạn như một ma trận Mỗi hình ảnh bao gồm một số lượng khá lớn các hình vuông nhỏ gọi là điểm ảnh (phần tử ảnh) Các ma trận tương ứng với một hình ảnh kỹ thuật số gán một số nguyên cho mỗi pixel Ví dụ, trong trường hợp của một hình ảnh màu xám quy mô 256x256 pixel, hình ảnh được lưu trữ như là một ma trận 256x256, với mỗi phần tử của ma trận là một số nguyên từ 0 (đen) đến 225 (cho trắng) Các kỹ thuật nén JPEG chia hình ảnh thành các khối 8x8 và gán một ma trận cho mỗi khối Người ta có thể sử dụng một số kỹ thuật đại số tuyến tính để tối đa hóa việc nén hình ảnh và duy trì một mức độ phù hợp của các chi tiết.
Vectơ chuyển đổi sử dụng Haar Wavelets
Trước khi ta giải thích s7 biến đổi của một ma trận, chúng ta hãy xem làm thế nào mà wavelets chuyển đổi các vectơ (hàng của một ma trận) Giả sử r là một hàng của một ma trận ảnh cấp 8x8 Tổng quát, nếu chuỗi dữ liệu có độ dài bằng 2 , thì quá trình chuyển đổi sẽ bao gồm bước Trong trường hợp trên, sẽ có k k
Ta th7c hiện phép biến đổi sau trên các phần tử của vectơ r:
1 Chia các phần tử của thành bốn cặp:r
2 Tính giá trị trung bình của mỗi cặp:
Các giá trị này sẽ là bốn phần tử của vectơ r của bước tiếp theo1
3 Trừ mỗi giá trị trung bình cho phần tử đầu tiên của cặp cho ta các số:
Các số này sẽ là bốn phần tử cuối cùng của vectơ r ở bước tiếp theo.1
Chú ý rằng vectơ có thể đạt được từ bằng cách nhân vào bên phải bởi mar 1 r r
Bốn phần tử đầu tiên của được gọi là các r 1 hệ số xấp xỉ và bốn phần tử cuối của r 1 được gọi là các hệ số chi tiết.
Với bước tiếp theo, ta xem bốn phần tử đầu tiên của như hai cặp mà chúngr 1 ta lấy giá trị trung bình của chúng như trong bước 1 ở trên Điều này cho ta hai phần tử đầu tiên 564, 1470 của vectơ mới Đây là các hệ số xấp xỉ mới củar 2 chúng ta Phần tử thứ ba và thứ tư của đạt được bằng cách trừ những giá trị trungr 2 bình này cho phần tử đầu tiên của mỗi cặp Điều này cho ta các hệ số chi tiết mới là -14, -130 Bốn phần tử cuối cùng của là giống như bốn hệ số chi tiết của :r 2 r 1
= Vectơ ở đây có thể đạt được từ bằng cách nhân vào bên phải ma trận:r 2 r 1 r 1
Ở bước cuối cùng, lấy trung bình hai phần tử đầu tiên của $\vec{x}_0$ và $\vec{x}_1$ như ở bước 2 trước, rồi trừ kết quả đó cho phần tử đầu tiên Thao tác này cho ta vectơ sau:
= Như ở trên, có thể đạt được từ bằng phép nhân vào bên phải ma trận:r 3 r 1 r 2
Từ đó ta có thể tính được tr7c tiếp từ sử dụng phương trình saur 3 r Đặt
Các cột của ma trận W 1 tạo ra một tập con tr7c giao của R 8 (không gian vectơ chiều 8 trên ); tức là những cột này đôi một tr7c giao với nhau Do đó,R chúng tạo ra một cơ sở của Như là một hệ quả, R 8 W 1 là khả nghịch Điều tương t7 cũng đúng cho W 2 và W 3
Từ đó, vì là tích của các ma trận khả nghịch nên W cũng khả nghịch và các cột của nó tạo ra một cơ sở tr7c giao của Nghịch đảo của R 8 W được cho bởi:
Từ đó cho phép ta thu lại hình ảnh gốc từ dạng nén bằng cách sử dụng liên hệ sau: r = Giả sử rằng là ma trận ứng với một ảnh nào đó Phép chuyển đổi HaarA được th7c hiện bằng việc biểu diễn các biến đổi trên mỗi hàng của ma trận vàA sau đó lặp lại tương t7 trên các cột của ma trận thu được Ma trận biến đổi hàng là
Phép biến đổi Haar được thực hiện bằng cách nhân ma trận với ma trận W theo thứ tự trái phải (tương đương với phép chuyển vị của ma trận ) Điều này có nghĩa là phép biến đổi Haar sẽ biến đổi ma trận W thành dạng mới là AW, trong đó S biểu thị ma trận biến đổi.
S Sử dụng các tính chất của ma trận nghịch đảo, ta có thể thu lại ma trận gốc là:
A = Điều này cho phép ta thấy được ảnh gốc (giải nén ảnh bị nén).
Ta hãy xét một ví dụ.
Ví dụ Giả sử chúng ta có một ma trận ảnh cấp 8x8 biểu diễn bởi ma trận
A Ma trận biến đổi hàng là
Biến đổi các cột của đạt được như sauL
S = W L = T Điểm mấu chốt của việc th7c hiện biến đổi Haar wavelet là những vị trí của ma trận gốc chứa ít biến đổi sẽ kết thúc với những phần tử 0 ở ma trận biến đổi. Một ma trận được xem là thưa thớt nếu nó có một “tỉ lệ cao các phần tử 0” Các ma trận thưa thớt chiếm ít bộ nhớ hơn để lưu trữ Do ta không thể mong chờ ma trận biến đổi luôn là thưa thớt, ta quy định một giá trị ngưỡng không âm là ε, và sau đó ta cho mọi phần tử trong ma trận biến đổi có giá trị tuyệt đối nhỏ hơn ε trở thành 0. Điều này sẽ cho ta một loại ma trận thưa thớt Nếu ε là 0, ta sẽ không sửa đổi bất cứ phần tử nào của ma trận.
Mỗi lần bạn nhấn chuột vào một hình ảnh để tải về từ Internet, máy tính nguồn nhớ lại ma trận chuyển Haar từ bộ nhớ của nó Đầu tiên nó sẽ gửi các hệ số xấp xỉ tổng thể và hệ số chi tiết lớn hơn và một lúc sau đó là các hệ số chi tiết nhỏ hơn Khi máy tính của bạn nhận được thông tin, nó bắt đầu xây d7ng lại một cách chi tiết lớn dần lên cho đến khi hình ảnh ban đầu được khôi phục lại hoàn toàn.
Đại số tuyến tính có thể làm cho quá trình nén nhanh hơn, hiệu quả hơn
Đầu tiên ta nhắc lại rằng một ma trận vuông cấp được gọi là tr7c giaoA n nếu các cột của nó tạo ra một cơ sở tr7c giao của , tức là các cột của đôi mộtR n A tr7c giao với nhau và độ dài của mỗi cột là 1 Một cách tương đương, là tr7c giaoA nếu nghịch đảo và chuyển vị của nó bằng nhau Tính chất này giúp quá trình hồi phục là ma trận chuyển đổi th7c hiện được bởi phương trình sau sẽ nhanh hơn nhiều
Một tính chất khác rất hữu dụng của ma trận trực giao là chúng bảo tồn độ lớn vectơ Điều này có nghĩa là nếu v là một vectơ của R^n và A là một ma trận trực giao, thì độ lớn của Av bằng độ lớn của v Tính chất này giúp cho các ma trận trực giao trở nên rất hữu ích trong các ứng dụng liên quan đến bảo toàn độ lớn, chẳng hạn như quay hoặc phản xạ vectơ.
||Av||=||v|| Giải thích chi tiết của đẳng thức này như sau
Do đó ||Av||=||v|| Tương t7 như vậy, các góc cũng được bảo toàn lúc phép biến đổi được định nghĩa bởi các ma trận tr7c giao: nhắc lại rằng cosin của góc giữa hai vec tớ và u v là:
Nên nếu là một ma trận tr7c giao, ψ là góc giữa hai vectơ A Au và Av,
Do cả độ lớn và góc được bảo toàn nên sẽ giảm thiểu được s7 méo mó sai lệch lúc xây d7ng lại ảnh nếu ta sử dụng các ma trận tr7c giao Từ ma trận chuyển đổi W là tích của ba ma trận khác, ta có thể tr7c chuẩn hóa W bằng việc tr7c chuẩn hóa ba ma trận này. Phiên bản tr7c chuẩn hóa của W là
W Nhận xét Nếu bạn xem kỹ hơn quá trình ta mô tả ở trên, bạn sẽ chú ý rằng ma trận
W không gì khác là một s7 thay đổi cơ sở của R 8 Nói cách khác, các cột của W tạo ra một cơ sở mới (một cơ sở rất đẹp) của Nên lúc ta nhân một vectơ (tọa độR 8 v đối với cơ sở chuẩn tắc) của R 8 bởi , ta nhận được là tọa độ của đối với cơ sởW v mới Một vài tọa độ này có thể bị bỏ quên khi sử dụng ngưỡng ε ở trên và điều này cho phép ma trận chuyển sẽ được lưu trữ dễ dàng hơn và truyền đi nhanh hơn.
Tỉ lệ nén Nếu ta chọn ngưỡng giá trị ε là dương, thì một số phần tử của ma trận chuyển sẽ bị đặt lại thành 0 và do đó một số chi tiết sẽ bị mất lúc ảnh được giải nén Vấn đề quan trọng là chọn ε đủ tốt sao cho việc nén được th7c hiện hiệu quả với mức thiệt hại tối thiểu cho hình ảnh Chú ý rằng tỉ lệ nén được định nghĩa là tỉ lệ của các phần tử khác 0 trong ma trận chuyển (S=W T AW) với số các phần tử khác
0 trong ma trận nén đạt được từ bằng việc áp dụng ngưỡng ε.S
ỨNG DỤNG TRONG MẠNG LƯỚI
Giới thiệu mạng lưới
Một mạng lưới bao gồm các nhánh và các nút Một ví dụ điển hình là mạng lưới đường phố, nơi các nhánh là các đường phố và các nút là các nút giao thông Một ví dụ khác là một mạng lưới điện Nhiều vấn đề về mạng lưới có thể được mô hình hóa bởi hệ phương trình tuyến tính Các định luật cơ bản được giải thích dưới đây.
Trong mạng lưới kiểu này, Định luật Ohm và Định luật Kirchhoff chi phối dòng điện như sau: Định luật Ohm: Hiệu điện thế tại hai đầu của một vật dẫn bằng tích của cường độ dòng điện và điện trở: V=IR. Định luật Kirchhoff thứ nhất: Tổng của cường độ dòng điện đi vào một nút bằng tổng của cường độ dòng điện đi ra từ đó. Định luật Kirchhoff thứ hai: Tổng đại số của các hiệu điện thế trong một mạch vòng kín bằng tổng các điện áp trong mạch vòng.
Ví dụ Xác định cường độ dòng điện I , I và I trong mạch điện sau:1 2, 3 Áp dụng Định luật Kirchhoff thứ nhất cho hoặc nút B hoặc C, ta có I =I +I 1 2 3 Nói cách khác:
I 1 -I -I 2 3 =0. Áp dụng Định luật Kirchhoff thứ hai cho mạch vòng BDCB và BCAB, ta thu được các phương trình
Từ đây ta có hệ phương trình tuyến tính
Ma trận bổ sung của hệ trên là
Ta biến đổi nó về ma trận
Do đó, các cường độ dòng điện cần tìm là:
Do I là âm, dòng điện đi từ C tới B chứ không phải từ B tới C, như ở sơ đồ trên đã 3 vẽ.
Biểu đồ minh họa lưu lượng giao thông tại các nút giao trên đại lộ Vào giờ cao điểm, đặc điểm lưu lượng giao thông được biểu thị bằng các con số, thể hiện lưu lượng trung bình ra vào mạng lưới giao thông.
Theo Định luật Kirchhoff thứ nhất, tổng lưu lượng dòng điện đi vào một giao điểm phải bằng tổng lưu lượng dòng điện đi ra khỏi giao điểm đó Điều này dẫn đến hệ phương trình tuyến tính sau:
Ma trận bổ sung của hệ trên là
Tính toán chỉ ra ma trận này biến đổi được về dạng
Do đó, nghiệm của hệ là x = w – 200 y = t – 600 z = t – 1200 u = t – w v = 1000 – w
Chẳng hạn, nếu 00 và 00 (số lượng phương tiện giao thông mỗi giờ), thìw t x0, p0, u00 và p0.y v
Giả sử đường từ A đến B và từ B đến C bị đóng, ta có x = y = 0 Để tránh lưu lượng âm trong nghiệm, hướng kết nối từ C đến D đảo ngược, dẫn đến z > 0 thay vì z = -600 ban đầu.
NHẬN DIỆN KHUÔN MẶT
Bạn có biết ã Đứa bộ xỏc định được mặt của mẹ mỡnh ngay sau một nửa giờ sinh? ã Rằng chỳng ta cú thể nhận ran gay lập tức (150 phỳt) hơn 1000 khuụn mặt? ã Rằng hơn một nửa vỏ nóo được huy động trong quỏ trỡnh nhận dạng hỡnh ảnh (nhiều hơn cả lúc làm toán!)?
Nói chung, hình ảnh chứa thông tin theo một dạng rất dày đặc và phức tạp. Các máy móc phải d7a trên các mô hình (số hóa) phức tạp của hình ảnh để hiểu nội dung của nó Nhận diện khuôn mặt là việc nhận ra một người là ai Nhận dạng một khuôn mặt là việc định vị một khuôn mặt trong một hình ảnh hoặc một chuỗi video Chúng ta thường nhớ con người d7a trên màu sắc trên khuôn mặt, đặc tính quan trọng nhất của họ, vv Hoạt động nhận dạng này trở nên rất rõ ràng khi chúng ta nhận diện cặp song sinh Trong ứng dụng này, ta giải thích một cách sử dụng s7 hiểu biết của chúng ta về hình ảnh để nhận diện khuôn mặt.
Khi đi đến việc nhận dạng một mô hình 2D ta cần biết điều gì ta đang tìm kiếm Bên trái của hình minh họa sau, một vật đang nhào lộn bao gồm một khung t7 thám trên một hình lục giác phẳng Phía bên phải, tương t7 là một khung hình lập phương Từ một hướng nhìn, chúng xuất hiện đồng nhất với nhau, nhưng không một người quan sát nào của hình ảnh giống nhau này lại nhận ra họ đang thấy một khung kim t7 tháp
Khi nhận diện các khuôn mặt 2D, nhiều nhân tố có thể ảnh hưởng tới quá trình nhận diện như điều kiện ánh sáng khác nhau, các biểu hiện và những cái khác: n
Như là một ví dụ, 70 bức ảnh sau được chụp với nhiều góc độ θ và Φ Mỗi cái được tập trung vào mắt, sau đó là hóa trang:
(Ảnh *) Mỗi một bức ảnh trong 70 ảnh này có thể được biểu diễn bởi một vectơ
V của không gian của các số tỉ lệ màu xám của các điểm ảnh Chẳng hạn, bức ảnh Bogart sau:
18300 có thể được biểu thị bởi vectơ: v=( ,0.858824, 0.615686, 0.407843, 0.396078, 0.65098, 1, 0.905882, 0.878431, 0.917647, 0.901961, 0.917647, 0.870588, 0.882353, ) của không gian
Là các vectơ tương ứng với các ảnh trong Ảnh (*) ở trên Đặt là giá trị trung bình của các vectơ này, và đặt
Biểu thị các điểm v ' trong không gian 18300 (Ta đang lấy N2x150300) sẽ cho ta một siêu elip trong chiều 18300 Đưa phương trình siêu elip về dạng chính tắc ta thu được dạng chuẩn tắc của nó là
Mỗi vectơ là một mặt riêng, 20 mặt riêng đầu tiên được sắp xếp bởi các giá trị riêng là:
Nói cách khác, mỗi một khuôn mặt trong 70 ảnh trên có thể viết lại như là tổ hợp tuyến tính của các mặt riêng, và một xấp xỉ tốt đối với mỗi cái có thể đạt được chỉ bằng cách sử dụng 20 mặt riêng đầu tiên này.
Đặt câu hỏi ảnh mặt người, ta cần giải quyết bài toán nhận diện khuôn mặt Để giải quyết bài toán này, cần có kiến thức sau:
Thành phần của một vectơ theo hướng một vectơ đơn vị được cho bởiu v