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
Trang 1TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNGKHOA KỸ THUẬT CÔNG NGHỆBỘ MÔN CÔNG NGHỆ THÔNG TIN
-oOo -TIỂU LUẬN MÔN TOÁN A2
GVHD : Phạm Thuý NgaSVTT : Phạm Ngọc Anh TuấnMSSV : 181101037
LỚP : TH18KHÓA : 2018 – 2022
TP.HCM, THÁNG 07 NĂM 2023
Trang 2NHẬN XÉT C&A GIẢNG VIÊN HƯỚNG DẪN
Họ và tên sinh viên:
Lớp:
Tên đề tài:
1 Tiến độ và thái độ của sinh viên: - Mức đô , liên hệ với giáo viên:
- Thu nhâ ,p và xử lý các số liệu th7c tế:
- Khả năng hiểu biết về th7c tế và lý thuyết:
3 Hình thức trình bày:
4 Một số ý kiến khác:
5 Đánh giá của giảng viên HD: ……… (…./10)
(Chất lượng báo cáo: tốt, khá, trung bình, yếu) TP Hồ Chí Minh, ngày …… tháng…… năm…
GIẢNG VIÊN HƯỚNG DẪN
Trang 31.2 Một số kỹ thuật mã hóa cơ bản 3
1.3 Một kỹ thuật mã hóa nâng cao: Mã Hamming 4
1.4 Mã Hamming (7,4) 5
1.5 Thuật toán sửa lỗi với mã Hamming (7,4) 7
CHƯƠNG 2: ỨNG DỤNG TRONG MẬT MÃ 16
2.1 khái niệm mật mã 16
CHƯƠNG 3: ỨNG DỤNG TRONG LÝ THUYẾT ĐỒ THỊ 20
3.1 Giới thiệu và vài nét lịch sử: 20
3.2 Các khái niệm của đồ thị 21
3.2.1 Đại số tuyến tính liên quan tới lý thuyết đồ thị như thế nào? 22
3.3 Đồ thị định hướng trội 25
CHƯƠNG 4: ỨNG DỤNG TRONG NÉN ẢNH 27
4.1 Giới thiệu 27
4.2 Vectơ chuyển đổi sử dụng Haar Wavelets 28
4.3 Đại số tuyến tính có thể làm cho quá trình nén nhanh hơn, hiệu quả hơn 31
CHƯƠNG 5: ỨNG DỤNG TRONG MẠNG LƯỚI 33
5.1 Giới thiệu mạng lưới 33
5.1.1 Mạng lưới điện 33
5.1.2 Mạng lưới giao thông 34
CHƯƠNG 6: NHẬN DIỆN KHUÔN MẶT 36
Trang 4CHƯƠNG 1: ỨNG DỤNG TRONG LÝ THUYẾT MÃ
1.1 Giới thiệu
Các thông điệp được truyền đi, như dữ liệu từ một vệ tinh, luôn là nhữngthông tin đã bị gây nhiễu Do đó, một điều quan trọng đó là khả năng để mã hóamột tin nhắn theo cách mà sau khi tiếng ồn đã gây nhiễu nó, nó có thể được giải mãvề dạng chính thống ban đầu Điều này được th7c hiện đôi khi bằng cách lặp lại tinnhắn hai hoặc ba lần, một điều rất phổ biến trong các bài phát biểu của con người.Tuy nhiên, việc sao chép dữ liệu được lưu trữ trên một đĩa nhỏ gọn, hoặc một đĩamềm một hoặc hai lần đòi hỏi thêm không gian để lưu trữ 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 Quá trình này được gọi là mã hóa Một mã phát hiệnlỗi trong một tin nhắn bị gây nhiêu được gọi là phát hiện lỗi Nếu, thêm vào đó, nócó thể sửa lỗi thì nó được gọi là sửa lỗi Sẽ là khó khăn hơn nhiều để tìm cách sửalỗi hơn so với các mã phát hiện lỗi.
1.2 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ẳnghạ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ộtcâ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àoviệ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áctừ 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âygiờ 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 trangang hàng và nó quá đơn giản để có thể hữu ích Ví dụ, nếu hai chữ số đã đượcthay đổ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àychắ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óathông điệp bằng cách lặp lại nó hai lần, chẳng hạn như 10111011 Sau đó, nếu tanhậ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ó
Trang 5đượ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ônggian và thời gian.
Trang 61.3 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 khichú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ứcnền tảng từ đại số tuyến tính.
Không gian vectơ trên
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 đượcgiớ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ủamộ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=09 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+x11 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à
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:Z2
0+0=0; 1+0=1; 0+1=1; 1+1=0;0.0=0; 1.0=0; 0.1=0; 1.1=1.Nhắc lại rằng cấu trúc không gian vectơ của
1 (x1,…, x )+ (y ,…, y )= (x + y ,…, xn1n11n+yn
trên xác định bởi hai phép toán
1 a(x1,…, x )= (ax ,…,a x ) n1n nếu là một số th7c.a
Cấu trúc tương t7 có thể được định nghĩa trên
Trang 7Khi đó, trở thành một không gian vectơ trên trường (phép nhân ở đây là với0 và 1) Tất cả các khái niệm cơ bản của không gian vectơ như độc lập tuyến tính,tập các tổ hợp tuyến tính, không gian con, chiều, không gian hàng, không giankhông, … Đều áp dụng được trong trường hợp này Điểm khác biệt lớn nhất vớikhông gian vectơ là chứa một số hữu hạn các vectơ, cụ thể là vectơ.
1.4 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 c1, …, c 7là các vectơ khác không của 3:
H =
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 HHX=0 để xác địnhNull( ).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
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 HZ2
Nhận xét Giả sử {e ,…,e17} là cơ sở chuẩn tắc của , khi đó He =ciivới mọi i=1,…,7, và do đó không có vectơ ei 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 ei không thuộc Null( ) với Hi=1,2,…,7.
3 Nếu là một vectơ của sao cho v Hv=civới nào đó, thì + là một vectơi v ei
của Null( ) Hơn nữa, + không thuộc Null( ) với mọi HvHji
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):
G = 2
2
Trang 8Bây giờ chúng ta sẽ giải thích quá trình giải mã Hamming và sửa lỗi:
1.5 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 u1 u u u , 234 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 đổichỉ 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ơuv
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=[u1 u u u234]G, trong đó G là
ma trận ở trên Bởi xây d7ng này, vectơ v thuộc Null( ) Chú ý rằngH
[u1 u u u234]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=civới nào đó, thì + là một vectơ của Null( ), và + khôngi v eiHv ej
thuộc Null( ) với mọi Điều này gợi ý một s7 thay đổi thành phần thứ Hj 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átthông tin, hãy tìm tin nhắn gốc.
Trang 9tin 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.
Trang 10Ngà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ệcsử 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à
PREPARE TO NEGOTIATE
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ãygắ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ụcnhư vậy Ngoài ra, chúng ta chỉ định số 27 (nhớ là chúng ta chỉ có 26 chữ cái trongbảng chữ cái) là cách trống giữa hai từ Vì vậy, thông điệp trở thành:
Trang 11Từ 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ênthà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ànthà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ỗivectơ 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ácvectơ 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 đó matrậ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:
Trang 12CHƯƠNG 3: ỨNG DỤNG TRONG LÝ THUYẾT ĐỒ THỊ
3.1 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âynước Nga.Sông Pregel chảy dọc theo thành phố và chia thành phố thành 4 vùngnhư 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ânKönigsberg thường có thói quen đi bộ dọc theo thành phố vào các chủ nhật hàngtuầ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ấtcả 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ểmxuấ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ổitiế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 Th7ctế, 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ể đượcgiải quyết bằng việc sử dụng các mô hình có liên quan đến đường đi trong đồ thị.
Trang 133.2 Các khái niệm của đồ thị
Trước khi chúng ta tạo s7 kết nối giữa lý thuyết đồ thị và đại số tuyến tính, tabắt đầu với mội số định nghiaxcow bản trong lý thuyết đồ thị cho những ai còn xalạ với chủ đề này:
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ốihai đỉ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áccạ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 13P1 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 231312453
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.
Trang 14Trong một đồ thị G, nếu tồn tại một đường đi gồm cạnh giữa hai đỉnh P và P ,n ijthì ta nói rằng có một bước từ P tới P Chẳng hạn, có ba cái 2-bước khác nhaun- ijgiữa các đỉnh P và P ở đồ thị G ở trên.271
3.2.1 Đại số tuyến tính liên quan tới lý thuyết đồ thị như thế nào?
Như ta có thể hình dung, các đồ thị đôi khi có thể rất phức tạp Nên ta cần tìmmột cách thiết th7c hơn để biểu diễn chúng Các ma trận là một cách rất hữu dụngđể nghiên cứu các đồ thị, do chúng có thể chuyển đổi hình ảnh thành những con sốvà sau đó ta có thể sử dụng các kỹ thuật từ đại số tuyến tính.
Cho một đồ thị G với đỉnh n v ,…,v1n, ta định nghĩa ma trận liên thuộc của Gtương ứng với các đỉnh được liệt kê theo thứ t7 v ,…,v1nlà ma trận A=[a ] cấp ij n×n
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ử1n
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 trongrij
đồ thị.
Trang 15Lấ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ị,127nhưng không có cách nào để đi từ P tới P bằng hai bước.15
Ví dụ Sơ đồ sau biểu diễn một đồ thị lối đi của một công ty giao hàng:
trong đó A, B, C, D, E là các thành phố phục vụ bởi công ty Ma trận liên thuộc Mcủa đồ thị trên là:
Nên là ma trận
Và là ma trận