1. Trang chủ
  2. » Luận Văn - Báo Cáo

Project 3 Các Tính Chất Của Rlp Sequence Và Ứng Dụng Liên Quan.pdf

19 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Các tính chất của RLP sequence và ứng dụng liên quan
Tác giả Lê Anh Đức
Người hướng dẫn PGS.TS. Đỗ Phan Thuận, TS. Vũ Văn Khu
Trường học Đại Học Bách Khoa Hà Nội, Trường Công Nghệ Thông Tin Và Truyền Thông
Chuyên ngành Công nghệ thông tin
Thể loại Project
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 1,77 MB

Nội dung

Lời nói đầuTrong lĩnh vực lập trình, các constraint code là những đoạn mã được sử dụng để áp đặt các ràng buộc vào các biến trong một hệ thống.. Ngoài ra, việc nghiên cứu constraint code

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

——————–o0o——————-PROJECT 3

Các tính chất của RLP sequence và ứng dụng liên quan Giảng viên hướng dẫn: PGS.TS Đỗ Phan Thuận

TS Vũ Văn Khu Sinh viên: Lê Anh Đức - 20190042

Trang 2

Lời nói đầu

Trong lĩnh vực lập trình, các constraint code là những đoạn mã được

sử dụng để áp đặt các ràng buộc vào các biến trong một hệ thống Các ràng buộc này có thể là các điều kiện, quy tắc hoặc giới hạn về giá trị của các biến, và chúng được thiết lập để đảm bảo rằng các biến đó hoạt động đúng theo một cách cụ thể

Việc nghiên cứu các constraint code là rất quan trọng trong việc phát triển các hệ thống phức tạp, đặc biệt là trong các lĩnh vực như tối ưu hóa, trí tuệ nhân tạo và kế hoạch hóa Nghiên cứu constraint code giúp cho các nhà phát triển hiểu rõ hơn về cách áp dụng các ràng buộc và tối ưu hóa các giải pháp cho các vấn đề khác nhau

Ngoài ra, việc nghiên cứu constraint code còn đóng vai trò quan trọng trong việc giải quyết các vấn đề tối ưu hóa và kế hoạch hóa thực tế, đảm bảo rằng các giải pháp được đưa ra là hiệu quả và đáp ứng các yêu cầu của hệ thống

Vì vậy, việc nghiên cứu các constraint code là rất cần thiết và quan trọng

để đạt được những kết quả tối ưu trong các hệ thống phức tạp hiện nay Trong báo cáo này, em xin trình bày về 1 constraint code cụ thể là RLP codes Một trong những constraint code có nhiều ứng dụng và vẫn đang được nghiên cứu rất nhiều trong thời gian gần đầy

Bài báo cáo sẽ có cấu trúc như sau: (1) Đặt vấn đề, (2) Giới thiệu các khái niệm và định nghĩa về RLP codes, (3) Ứng dụng của RLP codes với

bộ nhớ reactrack, (4) Các tính chất mở rộng của RLP codes, (5) Những khó khăn và hướng phát triển trong nghiên cứu

Trang 3

Mục lục

1.1 Sự cần thiết của constraint code trong mã hoá thông tin 3 1.2 Tổng quan về chuỗi RLP codes 4 1.3 Các hướng nghiên cứu liên quan 4

2.1 Các quy ước và định nghĩa 5 2.2 ℓ-symbol read channel và các lỗi xảy ra 6 2.3 Cách RLP code tìm ra các lỗi 7

4.1 Capacity 12 4.2 Các tính chất khác 15

5.1 Những thứ đạt được và những sự khó khăn gặp phải 16 5.2 Hướng nghiên cứu tiếp theo 16 5.3 Lời cảm ơn 17

Trang 4

Chương 1

Đặt vấn đề

1.1 Sự cần thiết của constraint code trong

mã hoá thông tin

Mã hóa thông tin là quá trình chuyển đổi dữ liệu từ dạng thông thường sang dạng mà máy tính có thể hiểu được và truyền thông tin qua các kênh truyền thông như mạng internet hay đường truyền viễn thông Trong quá trình này, các lỗi xảy ra do tạp âm, nhiễu và các vấn đề khác có thể làm thay đổi dữ liệu và gây ra những hậu quả không mong muốn Vì vậy, việc sử dụng các constraint code trong quá trình mã hóa thông tin là cần thiết để đảm bảo độ tin cậy của dữ liệu

Các constraint code là các mã được thiết kế để giới hạn tập các chuỗi bit

có thể được mã hóa Khi sử dụng constraint code, các chuỗi bit được giới hạn trong một tập hợp nhỏ hơn, giúp giảm thiểu số lỗi và làm cho quá trình giải mã dữ liệu trở nên dễ dàng hơn Việc sử dụng các constraint code cũng giúp tăng khả năng phát hiện và sửa chữa lỗi trong quá trình truyền thông Ngoài ra, các constraint code còn được sử dụng trong các hệ thống lưu trữ dữ liệu để bảo vệ dữ liệu khỏi các lỗi xảy ra trong quá trình ghi và đọc Chẳng hạn như trong bộ nhớ racetrack, các constraint code được sử dụng để

mã hóa các dữ liệu được ghi trên đường đua vòng tròn, giúp đảm bảo rằng

dữ liệu có thể được phục hồi một cách chính xác

Vì vậy, việc sử dụng các constraint code là cần thiết để đảm bảo độ tin cậy của dữ liệu trong các ứng dụng liên quan đến truyền thông và lưu trữ

dữ liệu Các constraint code đã đóng góp đáng kể cho việc phát triển các phương pháp mã hóa hiệu quả hơn và giải quyết các vấn đề liên quan đến sửa lỗi và tối ưu hóa hệ thống mã hóa

Trang 5

Project3 CHƯƠNG 1 ĐặT VấN Đề

1.2 Tổng quan về chuỗi RLP codes

Chuỗi RLP code là 1 chuỗi constraint code được đăng trưng bởi 5 tham

số n, d, b, k và q ta có thể viết gọn lại là (n, d, b, k)q-RLP sequence Các chuỗi RLP là chuỗi q-ary có độ dài n và mỗi tập con gồm b cửa sổ liên tiếp có độ dài k trong chuỗi này là một chuỗi q-ary có độ dài k với khoảng cách Hamming tối thiểu là d Các chuỗi và mã RLP được sử dụng trong nhiều ứng dụng khác nhau, đặc biệt là trong việc sửa lỗi cho bộ nhớ racetrack Khi tín hiệu được mã hoá bằng RLP code được truyền đi thì sẽ có 1 kênh đọc gọi là l-read channel để đọc tín hiệu này Một l-read channel sẽ đọc tín hiệu thành các của sổ l bit liên tiếp nhau Mỗi một của sổ gồm l bit liên tiếp nhau được gọi là 1 l-tuple Trong khi truyền đi thì sẽ xuất hiện các lỗi do nhiều hoặc sai số khiến cho các l-tuple không đúng ta gọi các lỗi đó là các lỗi đồng thời trên chuỗi RLP Với những tính chất đặc biệt của RLP code thì chúng ta có thể khôi phục, hoặc phát hiện các vị trí xảy ra lỗi để có thể đạt được 1 phương pháp truyền tin tối ưu nhất

1.3 Các hướng nghiên cứu liên quan

Hiện nay chuỗi RLP codes đang được quan tâm rất nhiều bởi tính ứng dụng cao của nó Một số hướng nghiên cứu liên quan là:

•Nghiên cứu về cách RLP code giải quyết các lỗi

•Nghiên cứu về những ứng dụng của RLP code

•Nghiên cứu về các tính chất cũng như maximal asymptotic rates của RLP code

•Nghiêm cứu về các kĩ thuật encode và decode của chuỗi RLP codes

Trang 6

Chương 2

Tìm hiểu về chuỗi RLP code

2.1 Các quy ước và định nghĩa

Đặt Σq= {0, 1, , q − 1}là 1 tập hợp gồm q số tự nhiên đầu tiên (bảng chữ cái kích thước q) và [a, b] là tập hợp {a, a + 1, , b} với mọi a < b Đặt

s = (s1, , sn) ∈ Σnlà 1 chuỗi có độ dài n với các phần tử thuộc tập hợp

Σq Chúng ta định nghĩa s[i, j] = (si, s , , si+1 j) ∈ Σj−i+1

gọi là 1 chuỗi con của s Giả sử x = (x1, , xn) ∈ Σn, thì ta định nghĩa khoảng cách Hamming của s và x : dH(x, s) =| {i : xi = si} | Đặt 0n∈ Σn

là 1 chuỗi gồm n số 0 Trọng số của chuỗi s được tính làwH(s) = dH(s, 0n) Một chuỗi s = (s1, , sn) ∈ Σ, đuọc gọi là (n n, d, b, k)q-robust locally positioning sequence (RLP codes) nếu dH(s[i, i + k − 1], s[j, j+ k − 1]) ⩾d với mọi i, j ∈ [n − k + 1] trong đó 0 < |i − j| ⩽ b − 1 Hay nói các khác, mỗi một của sổ b có độ dài chuỗi con là k trong s là 1 q-ary code với độ dài k thì

sẽ có khoảng cách Hamming nhỏ nhất là d

Một tập hợp gồm các chuỗi thoả mãn điều kiện trên gọi là 1(n, d, b, k)q -robust locally positioning code, và được kí hiệu là CRLP(n, d, b, k)q Một tập hợp lớn nhất gồm tất cả các (n, d, b, k)q − RLP code thì được kí hiệu là

ARLP(n, d, b, k)q

Trong báo cào này em sẽ tập trung vào trường hợp q = 2 (chuỗi nhị phân).Ta định nghĩa rate của chuỗi CRLP(n, d, b, k)là R (CRLP(n, d, b, k)) =

log|C RLP (n,d,b,k)|

n khi n tiến đến vô cùng, ta định nghĩa asymptotic rate RRLP(b, d, k) = limn→∞log|CRLP(n,d,b,k)|n Trong báo cáo này ta nói về thuật toán để tính maxi-mal asymptotic rate của RLP code Và đặc biệt ta cũng sẽ tìm hiểu về cách

Trang 7

Project3 CHƯƠNG 2 TÌM HIểU Về CHUỗI RLP CODE chuỗi RLP code xử lý các lỗi

2.2 ℓ-symbol read channel và các lỗi xảy ra

Trong phần này ta sẽ chỉ ra rằng 1 chuỗi (n, d, b, k)-RLP có khả năng phát hiện vị trí của các lỗi xảy ra

Đặt x = (x1, x , , x2 n) ∈ Σnlà 1 q-ary sequence có độ dài n Trong ℓ-symbol read channel, thì chuỗi x sẽ được truyền đi và đọc dưới dạng sau

πℓ(x) = ((x1, , xℓ) , (x2, , xℓ+1) , , (xn, , xn+ℓ−1)) với xifor i > n có thể nhận bất kì giá trị nào

Ta định nghĩa: 1 ℓ-tuple (xi, , xi+ℓ−1)chính là 1 của sổ độ dài ℓ bất

kỳ của x

Trong kênh truyền này sẽ có các lỗi xảy ra như:

•sticky-insertion: Khi 1 ℓ-tuple được lặp lại ngay sau vị trí của nó xuất hiện

•deletion: khi 1 ℓ-tuple bị xoá Một s-burst of deletions xảy ra khi có nhiều nhất s ℓ-tuple liên tiếp nhau bị xoá

•substitution: Xảy ra khi có 1 phần tử trong 1 ℓ-tuple bị sai, bị thay thế(ví dụ 1 thành 0 và 0 thành 1) Một t-substitution xảy ra khi nhiều nhất có t phần tử bị thay thế trong mỗi ℓ-tuple

Ví dụ 1 Giả sử x = (0, 1 0 0, , , 1 0, , , 0)0 là chuỗi truyền vào ℓ = 2, the 2 -symbol read sequence of x sẽ là

π2(x) = ((0,1), (1, 0) (0, 0) (0, 1), (1 0) (0, ,, , , , 0) (0 0) (0 0))., , ,

Như vậy nếu xảy ra 1 lỗi sticky-insertion ở vị trí i = 2, 1 lỗi burst of deletions of length 2 ở vị trí 6 và 7, 1 lỗi substitution ở vị trí thứ 2 của cặp thứ 3, vẫy ở kênh đọc -symbol read channel chúng ta nhận được2

π2(y) = ((0, ,1) (1, ,0) (1 0),, (0, 1) (0 1), (1 0), ,, , , (0 0))

Trang 8

Project3 CHƯƠNG 2 TÌM HIểU Về CHUỗI RLP CODE

2.3 Cách RLP code tìm ra các lỗi

Định lý 1 Giả sử n, d, b, k, t là các số nguyên dương thoả mã điều khiện sau 2k⩾b⩾2và d = 2t + 1 Đặt k + b − 2 = ℓ Thì (n, d, b, k)− RLP code CRLP(n, d, b, k)của chúng ta có thể phát hiện và sữa chũa bất kỳ sticky-insertions cũng như phát hiện vị trí xảy ra của (b − 2)-bursts of deletions trong ℓ-symbol read channel Ở đây chúng ta vẫn giả sử có lỗi t-substitutions xảy ra nhưng ℓ-tuple đầu liên luôn được truyền đúng

Chứng minh: Ta đặt s = (s1, s , , s2 n)là chuỗi được truyền đi và

πℓ(y) = ((y1,1, , y1,ℓ) , , (yk,1, , yk,ℓ)) là thông tin nhận được từ ℓ-symbol read sequence.Chúng ta giả sử ℓ-tuple đầu tiên là đúng, có nhiều nhất t substitutions trong mỗi ℓ-tuple, và có thể xảy ra nhiều lỗi sticky-insertion và nhiều lỗi burst deletion với độ dài tối đa là b − 2 Chúng ta

để ý tới k phần tử đầu tiên của ℓ-tuple thứ hai: (y2,1, , y2,k).Ta thấy, có nhiều nhất t symbols trong ℓ-tuple thứ hai bị sai Như vậy, nếu như không xảy ra lỗi gì thì dH((y2,1, , y2,k) , s , 2 + k − 1]) ⩽ t Nếu như xảy ra 1 lỗi[2 sticky-insertion, dH((y2,1, , y2,k) , s , k]) ⩽ t Và nếu như xảy ra lỗi burst[1 deletion, thì vì lỗi burst deletion chỉ có độ dài lớn nhất là s ⩽ b − 2 nên ta cũng códH((y2,1, , y2,k) , s[s + 2, s+ 1 +k]) ⩽ t

Như vậy sẽ tồn tại 1 ⩽ i ⩽ b để chodH((y2,1, , y2,k) , c[i, i+ k − 1]) ⩽ t Mặt khác ta lại thấy , dH(c[i, i + k − 1], c[j, j+ k − 1]) ⩾ d = 2t + 1với mọi 1 ⩽ i = j ⩽ b since c ∈ CRLP(n, d, b, k) Từ đó chỉ tồn tại duy nhất

1 chỉ số i0∈ [b]sao cho dH((y2,1, , y2,k) , c [i0, i0+ k − 1]) ⩽ tand thus

dH(y2,1, , y2,ℓ) = s [i0, i0+ ℓ − 1]

Với chỉ số i0được định nghĩa như trên thì ta thấy rằng s[i, i + k − 1] = (y1,i, , y1,i+k−1)for all 1 ⩽ i ⩽ b−1 bởi vì c(1, , cℓ) = (y1,1, , y1,ℓ) Nếu như c[i, i + k − 1] = (y2,1, , y2,k)với mọi 1 ⩽ i ⩽ b − 1 thì i0= b Mặt khác thì chúng ta đã tìm ra, chỉ số i0thuộc [b − 1] thoả mãn c [i0, i0+ k − 1] = (y2,1, , y2,k)

Nếu i0= 1, thì tức là đã xảy ra sticky-insertion Để sửa lỗi này, it is only required to remove the repeated ℓ-tuple If i0=2 , thì tức là không

có lỗi xảy ra Nếu như 3 ⩽ i0⩽ b, thì tức là có lỗi burst of deletions với

độ dài i0− 2 Trong trường hợp này , ta sẽ đánh dâu i0− 2 ℓ-tuples liên tiếp là đã bị xoá (mang dấu hiệu bị xoá) Và chúng ta cũng biết được rằng

dH((y2,1, , y2,k) , c [i0, i0+ k − 1]) ⩽ t, Như vậy chúng ta tiếp tục quá trình trên chúng ta sẽ thu được diều cần chứng minh

Như vậy đấy là cách mà chuối RLP tím ra lỗi Ta sẽ lấy với ví dụ ở ví dụ

Trang 9

Project3 CHƯƠNG 2 TÌM HIểU Về CHUỗI RLP CODE

1 Giả sử ta nhận được chuỗi

π2(y) = ((0, ,1) (1, ,0) (1 0) (0, ,, , 1) (0 1) (1, 0), (0 0))., , ,

thì bằng cách cách phát hiện lỗi như đã đề xuất ở trên thì chúng ta sẽ khôi phục được lại chuỗi như sau:

x = (0, 1, 0, , , ?, ?, 0) Ở đâu dấu ? đại diện cho dấu hiệu bị xoá Mặc0 1

dù chuỗi RLP không thể tìm ra các t-substitution nhưng vẫn có những ứng dụng khá lớn

Trang 10

Chương 3

Chuỗi RLP và bộ nhớ

Racetrack

Trong phần này ta sẽ đề cập đến cách sử dụng chuỗi RLP code hiệu quả trong bộ nhớ Racetrack Chúng ta sẽ sử dụng kết quả đã chứng minh ở định

lý 1 để xây dựng 1 mô hình hiệu quả giúp giảm bớt sự sai lệch thông tin trong bộ nhớ racetrack

Cho 3 số tự nhiên N, m, n trong đó có N = n · m, 1 bộ nhớ racetrack bao gồm N ô nhớ and m đầu đọc , mỗi đầu đọc 1 đoạn liên tiếp có n ô nhớ Trong bài này, chúng ta xem xét mô hình bộ nhớ racetrack gồm các đầu đọc phụ, Gồm có ℓ − 1 đầu đọc phụ, bên cạnh đầu đọc chíng đầu tiên For example,

in Ta có thể thấy trong hình trên, ta có 1 bộ nhớ racetrack gồm 15 ô nhớ, three đầu đọc chính ở các vị trí c1,1, c2,1, and c3,1, và đầu đọc phụ ở các vị trí

c1,2andc1,3

chúng ta có thể thấy nếu như c = (c1, c , , c2 N)là chuỗi các ô nhớ đọc được từ đầu đọc chính thứ i-th và ta đặt ci = (ci,1, , ci,n)where

ci,j= c(i−1)·n+jfor 1 ⩽ i ⩽ m and 1 ⩽ j ⩽ n Như vậy dữ liệu đọc được tù

Trang 11

Project3 CHƯƠNG 3 CHUỗI RLP VÀ Bộ NHớ RACETRACK

mđầu đọc (nếu không có lỗi xảy ra) sẽ như sau:

c1

c2

cm

=

c1,1 c1,2 c1,n

c2,1 c2,2 c2,n

cm,1 cm,2 cm,n

Bằng các thực nghiệm thì người ta thấy rằng ở ma trận trên cũng có 3 loại lỗi xảy ra:

•sticky-insertion: lỗi này xảy ra khi 1 cột của ma trận bị lặp lại

•deletion: lỗi này xảy ra khi 1 cột của ma trận bị xoá đi Một s-burst deletion tức là có nhiều nhất s cột liên tiếp của ma trận trên bị xoá đi

•substitution: lỗi này xả ra khi có 1 hay 1 số phần tử của ma trận bị sai lệch thông tin, bị thay thành 1 số khác một t-substitution tức là

có nhiều nhất t phần tử trong ma trận bị thay thế

Trong mô hình trên chúng ta chũng sẽ nhận được thông tin của ℓ − 1 đầu đọc phụ nằm bên cạnh đầu đọc chính đầu tiên Như vậy chúng ta sẽ có ℓ đầu đọc nằm liên tiếp nhau và chúng ta sẽ có ma trận đầu ra của ℓ đầu đọc đó là

c1,1

c1,2

c1,ℓ

=

c1,1 c1,2 c1,n−1 c1,n

c1,2 c1,3 c1,n ∗

c1,ℓ c1,ℓ+1 · · · ∗ ∗

Dễ thấy rằng đây chính là một ℓ-symbol ứng với kênh truyền ℓ-read chan-nel Như vậy, nếu như cuỗi c là chuỗi RLP thì chúng ta có thể sử dụng mô hình RLP code để tìm ra các lỗi Cuối cùng dựa vào những tính chất của RLP code nói trên để xây dựng ra 1 mô hình hiệu quả trong bộ nhớ racetrack Chúng ta sẽ đề xuất 1 mô hình có thể sửa tất các lỗi với số lượng lỗi bất

kỳ của sticky insertions, lỗi burst of deletions of có độ dài đoạn bị xoá lớn

Trang 12

Project3 CHƯƠNG 3 CHUỗI RLP VÀ Bộ NHớ RACETRACK Cách xây dựng: Ta có N, m, n, b, t, ℓ, v, s là các số nguyên dương thoả

mã N = mn Ta gọi CRLP(n, 2t+1, b+2, ℓ−b)là 1 chuỗi(n, 2t+1, b+2, ℓ−b) -robust locally positioning code Ta kí hiệu E(N, h, d) là mã sửa lỗi Hamming

có đội dài N, với khoảng cách Hamming tối thiểu làd = 2s + bmv + 1có thông tin của h bits Gọi C(h) là tập hợp tất cả các chuỗi x ∈ Σhsao cho x[1, n]là một (n, 2t + 1, b+ 2, ℓ − b)-RLP sequence Lấy C(h) là đầu vào của E(N, h, d), như vậy chúng ta sẽ sinh ra được mô hình mã hoá thông tin sau đây: C(N, v, b, s, t) = E(N, h, dChúng ta sẽ tiến hành chứng minh tính đúng đắn của việc xây dựng trên)(C(h) = E(N, h, d)(x) ∈ ΣN: x ∈ C(h) Chứng ming: Từ x ∈ C(h) và c = (c1, , cN) = E(N, h, d)(x) ∈ C(N, v, b, s, t)được định nghĩa như cách xây dựng nói trên thì c[1, n] = x , n[1 ]

là 1 (n, 2t + 1, b+ 2, ℓ− b)-RLP sequence Sử dụng Định lý 1 ở phần trước, chúng ta có thể phát hiện các lỗi sticky-insertion và deletion Với các lỗi sticky-insertion, Chúng ta đơn giản là xoá chúng khỏi chuỗi của chúng ta Với các lỗi busrt-deletion, chúng ta có thể phát hiện chúng và đánh dâu chúng mang dấu hiệu bị xoá(như ví dụ của phần trước) Vì có nhiều nhất làvlỗi bursts of deletions có độ dài nhiều nhất là b, như vậy sẽ có nhiều nhấtvb cột

bị xoá Từ đó có nhiều nhất vbmbit được đánh dấu là bị xoá Từ vị trí các bit bị đánh dấu bị xoá đó ta có thể cho ngẫu nhiên tất cả là 0 hoặc là 1, và như vậy chúng ta sẽ biết được số bit bị lỗi lớn nhất là s + bm/2 Như vậy từ tính chất của mã sửa lỗi Hamming C(N, v, b, s, t) ta chọn d = 2s + bmv + 1 thì mã code của chúng ta sẽ có thể sửa lại hết được tất cả các lỗi trên

Ngày đăng: 29/05/2024, 18:10

w