nội dung: 1.PHÁT HIỆN VÀ SỬA LỖI( Các nguyên nhân gây lỗi Các loại lỗi và tỷ lệ lỗi trên các đường truyền Phát hiện lỗi bằng ECHO Phát hiện và sửa lỗi bằng truyền lặp Phát hiện lỗi bằng mã Parity dọc Sửa lỗi bằng mã Parity dọc và ngang Sửa lỗi bằng cách truyền lại Phát hiện bản tin mất Độ dài bản tin tối ưu Các lỗi ở vị trí bắt đầu và kết thúc khung Kiểm tra Likelihood Chẩn đoán lỗi. ) 2.CÁC TÍNH CHẤT CHUNG CỦA MÃ PHÁT HIỆN VÀ SỬA LỖI( Khái quát Phân loại mã Khả năng phát hiện và sửa lỗi của mã khối. Khoảng cách Hamming Mã khối tuyến tính hệ thống Nguyên lý mã hóa với mã tuyến tính hệ thống Nguyên lý phát hiện lỗi với mã khối tuyến tính hệ thống Nguyên lý sửa lỗi với mã khối tuyến tính hệ thống Mã Hamming ) 3.MÃ ĐA THỨC 4.MÃ VÒNG 5.MÃ CHẬP
Trang 1• MÃ ĐA THỨC
• MÃ VÒNG
• MÃ CHẬP
Trang 23.1 PHÁT HIỆN VÀ SỬA LỖI
• Các nguyên nhân gây lỗi
• Các loại lỗi và tỷ lệ lỗi trên các đường truyền
• Phát hiện lỗi bằng ECHO
• Phát hiện và sửa lỗi bằng truyền lặp
• Phát hiện lỗi bằng mã Parity dọc
• Sửa lỗi bằng mã Parity dọc và ngang
• Sửa lỗi bằng cách truyền lại
• Phát hiện bản tin mất
• Độ dài bản tin tối ưu
• Các lỗi ở vị trí bắt đầu và kết thúc khung
• Kiểm tra Likelihood
• Chẩn đoán lỗi.
Trang 33.1.1 Các nguyên nhân gây lỗi
• Định nghĩa: Lỗi là tất các sai sót có thể xảy ra trong quá trình hoạt động của mạng, ngoài ý
muốn của người thiết kế cũng như nhà cung cấp dịch vụ.
Trang 43.1.2 Các loại lỗi và tỷ lệ lỗi trên các
đường truyền
• Lỗi truyền dẫn sinh ra do
nhiễu nhiệt được mô hình hóa
là AWGN tỷ lệ nghịch với
S/N
• Với độ rộng băng tần cho
trước, khi tăng số mức sẽ dẫn
đến tăng PB, hay nói cách
khác PB sẽ tăng khi tốc độ
truyền càng cao mà công suất
trung bình không đổi
Lỗi sinh ra do nhiễu nhiệt thường là lỗi đơn, hoặc nhiều lắm
là vài bit lân cận
Trang 5Histogram của các tỷ lệ lỗi truyền
dẫn trên mạng chuyển mạch
Trang 6Tỷ lệ lỗi trên đường truyền mạng chuyển mạch
• Lỗi sinh ra do nhiễu
Được đánh giá bằng tỷ lệ lỗi khối PM.
CCITT đưa ra định mức p = 10 -3 cho đường truyền analog và p
Trang 7Tỷ lệ lỗi khối
B
m B M
m B B B
mP P
P
P P P
( 1
) 1
( 1
Xác suất lỗi bit
Xác suất không bị lỗi ở
Trang 83.1.3 Phát hiện lỗi bằng ECHO
• Bản tin phát đi
sẽ được lưu giữ
để so sánh với
bản tin ECHO,
nếu giống nhau
nghĩa là bên thu
nhận đúng
Tuy nhiên có thể xảy ra trường hợp bên thu đã nhận đúng nhưng bản tin ECHO bị sai do suy giảm nhiều
Trang 93.1.4 Phát hiện và sửa lỗi bằng truyền lặp
• Bên thu quyết
Trang 10Tính xác suất lỗi khối và lỗi không phát hiện được
Xác suất lỗi khối của bản tin m-bit là PM = 1-(1-PB)m ≅ mPB
Do xác suất không lỗi ở m-bit bất kỳ là (1-PB)m
Một lỗi sẽ không phát hiện được nếu nó lặp lại trong bản tin sao, xác suất xảy ra là PB2 Như vậy xác suất nhận được bản tin mà không có lỗi không phát hiện được là (1-PB2)m Từ
đó tính được xác suất lỗi không phát hiện được là PM =
1-(1-PB2)m ≅ mPB2
Giả sử pB = 10-5 , với bản tin 100-bit thì pM = 10-3 , nhưng
p = 10-8 trong trường hợp truyền lặp
Trang 11Thu theo đa số
• Nếu có hai bản tin
Trang 12Sử dụng scrambler
• Bản tin được gửi đi trên
line 1, làm trễ N-bit nhờ bộ
ghi dịch và cộng modulo 2
với bản tin đã scrambling
sau đó gửi đi trên line 2.
• Ở đầu thu bản tin được làm
trễ qua bộ ghi dịch N-bit
như ở máy phát và
scrambling để cộng với
bản tin qua line 2.
Kết quả so sánh cho phép phát hiện các bit lỗi đơn và sửa lỗi
Trang 13Giả sử có lỗi ở Line 1 ?
Giả sử có lỗi ở Line 2 ?
Trang 14Giải pháp kết hợp
• Sử dụng chung đường truyền để gửi bản tin và bản sao của nó
So sánh hai sơ đồ ?
Trang 153.1.5 Phát hiện lỗi bằng mã Parity dọc
• Bản tin mã hóa được chia thành các khối m-bit, mã hóa bằng các khối n-bit
Việc lưa chọn r-bit parity nhằm dễ dàng phát hiện lỗi ở đầu thu, n = m + r
Trang 16Nguyên lý truyền dẫn với mã phát hiện lỗi
• Với 1 bit dư,
Acknowledgement
Trang 173.1.6 Sửa lỗi bằng mã Parity dọc và ngang
• Cho phép phát hiện vị trí lỗi đơn
Trang 18Khả năng sửa lỗi
• Nếu các bit lỗi xuất hiện trên cùng một cột thì không sửa được
• Tính pM và pN ?
Trang 193.1.7 Sửa lỗi bằng cách truyền lại
Trang 203.1.8 Phát hiện bản tin mất
Trang 21Trường hợp mất bản tin phúc đáp
Trang 223.1.9 Độ dài bản tin tối ưu
Trang 283.1.11 Kiểm tra Likelihood
• Bản thân các hệ thống phát hiện lỗi mặc dù có thể đạt
được hiệu quả cao nhưng không thể bảo đảm vận hành không lỗi (error-free operation), cần có các thiết bị hỗ trợ được thiết kế theo phương pháp kiểm tra
Likelihood
• Ở mức thấp có thể kiểm tra kích thước khung (là bội
của 8 trong SDLC), kích thước gói hoặc một số trường kiểm tra và dùng thủ tục cấm để từ chối các khung, gói sai chuẩn.
• Ở mức cao hơn có thể kiểm tra dựa vào thứ tự các kiểu
khung hay các kiểu gói bắt buộc phải xuất hiện theo giao thức điều khiển đường truyền để khởi động các
Trang 293.1.12 Chẩn đoán lỗi.
• Nhằm phát hiện trực tiếp các sai sót của phần cứng
(breakdowns) hoặc phần mềm (faults).
• Khác với kiểu phát hiện và sửa lỗi (trực tiếp) của hệ
thống chỉ phát hiện gián tiếp các sai sót dựa vào sự lặp lại một kiểu lỗi.
• Có nhiều kiểu chẩn đoán dựa vào các phương pháp
khác nhau:
+ Kiểm tra một chức năng cụ thể
+ Kiểm tra tone trên đường dài
+ Kiểm tra mức DC trên đường truyền nội hạt.
+ watchdog.
Trang 30Các chiến lược truyền tin
• ARQ (Automatic Repeat Queue) sử dụng
mã phát hiện lỗi.
– Stop & Wait:
– Pull Back N
– Selective Repeat (Continuous)
• FEC (Forward Error Correct) sử dụng mã sửa lỗi.
Trang 31ARQ stop & wait
• Bên phát gửi đi một gói tin đã được mã hóa bằng
mã phát hiện lỗi, sau đó chờ bản tin phúc đáp.
• Bên thu nhận được bản mã, tiến hành giải mã phát hiện lỗi Nếu có lỗi phúc đáp NAK, nếu không
có lỗi phúc đáp ACK.
• Bên phát nhận được ACK thì gửi gói tin tiếp theo, nhận được NAK hoặc không nhận được phúc đáp sau một khoảng thời gian qui định thì phát lại gói tin.
Trang 32ARQ stop & wait
2 2
2 1
2 2
2 1
Source
Sink
Trang 33ARQ pull back N
• Bên phát liên tục gửi đi các gói tin đã được mã
hóa bằng mã phát hiện lỗi.
• Bên thu liên tục nhận và giải mã phát hiện lỗi, nếu khộng có lỗi phúc đáp ACK, nếu có lỗi phúc đáp NAK.
• Khi nhận được ACK, bên phát sẽ xóa gói tin được phúc đáp khỏi bộ đệm, khi nhận được NAK hoặc không nhận được phúc đáp, nó sẽ quay lại phát lại
từ gói tin bị hỏng (N là số gói tối đa được lưu trữ trong bộ đệm)
Trang 34ARQ pull back N
6 5 4 3 2 1 0 7 6 5 1 0 7 6 5 4 3 2 6 5 4 3 2 1
0
4 3 2
1 0 7 6 5
1 0 7 6 5 4 3 2
2
1 0
5 6 7 0 1
Source
Sink
Buffer
Trang 35ARQ Liên tục (lặp lại có chọn lọc)
• Bên phát liên tục gửi đi gói tin đã được mã hóa bằng mã phát hiện lỗi (lưu lại các bản tin chưa được phúc đáp)
• Bên thu liên tục nhận và giải mã phát hiện lỗi và phúc đáp (ACK/ NAK) (lưu lại các bản tin không lỗi và sắp xếp lại trật tự gói)
• Bên phát chỉ gửi lại gói tin bị lỗi hoặc gói tin không được phúc đáp.
Trang 36ARQ Liên tục (lặp lại có chọn lọc)
0 1 3
6 5 4 3 2 1 0 7 6 1 5 4 3 2 1 0 7 2 6 5 4 3 2
1
0
4 3 2 1 0 7 6
1
5 4 3 2 1 0 7 2 6 5 4 3
2
1 0
0 1 2 3 4
Source Buffer
Sink Buffer
Trang 37• Nguyên lý mã hóa với mã tuyến tính hệ thống
• Nguyên lý phát hiện lỗi với mã khối tuyến tính hệ thống
• Nguyên lý sửa lỗi với mã khối tuyến tính hệ thống
• Mã Hamming
Trang 393.2.2 Phân loại mã
• Mã khối và tính chất hệ thống
• Mã chập hoặc recurrent.
Trang 413.2.5 Nguyên lý mã hóa với mã
tuyến tính hệ thống
Trang 423.2.6 Nguyên lý phát hiện lỗi với
mã khối tuyến tính hệ thống
Trang 433.2.7 Nguyên lý sửa lỗi với mã
khối tuyến tính hệ thống
Trang 44• Bảng mã (7,4)
Trang 45Triệu chứng lỗi
Trang 46Sơ đồ sửa lỗi
Trang 48Mã (15,11)
• Qui luật tính các
bit parity
Trang 49Nguyên lý sửa lỗi
Trang 50Ma trận sinh dạng chuẩn
Trang 513.3 MÃ ĐA THỨC
• Định nghĩa các mã đa thức
• Mã hóa và giải mã bằng đa thức
• Thực hiện phần mềm mã hóa và giải mã bằng đa thức
• Các tính chất chủ yếu của mã đa thức
• Các mã đa thức chuẩn
Trang 523.3.1.Định nghĩa các mã đa thức
Trang 533.3.2.Mã hóa và giải mã bằng đa
thức
Trang 553.3.3.Thực hiện phần mềm mã hóa và giải mã bằng đa thức
Trang 593.3.4.Các tính chất chủ yếu của
mã đa thức
Trang 603.3.5.Các mã đa thức chuẩn
Trang 633.4.1.Các tính chất chính của mã
vòng
Trang 643.4.2.Giải mã sửa lỗi Meggitt
Trang 653.4.3.Mã BCH
Trang 663.4.4.Mã Golay
Trang 673.4.5.Các mã lửa
Trang 683.4.6.Mã Abramson
Trang 693.4.7.Mã Reed-Solomon
Trang 713.5 MÃ CHẬP
• Nguyên lý mã hóa chập
• Biểu diễn ma trận của mã chập
• Nguyên lý phát hiện và sửa lỗi bằng mã chập
• Thuật toán Viterbi
• Giải mã tuần tự
Trang 723.5.1.Nguyên lý mã hóa chập
Trang 753.5.2.Biểu diễn ma trận của mã
chập
Trang 763.5.3.Nguyên lý phát hiện và sửa
lỗi bằng mã chập
Trang 773.5.4.Thuật toán Viterbi
Trang 783.5.5.Giải mã tuần tự
Trang 79Mã khối tuyến tính
• Việc mã hoá cho một tổ hợp k-bit (vec tơ thông tin) là độc lập với các tổ hợp k-bit trước và sau nó.
• Mã khối (n,k) có tỷ số mã R=k/n
• Sử dụng cho mô hình kênh không nhớ
(memoryless channel) trong đó việc xuất hiện 1 bit lỗi hoàn toàn không phụ thuộc vào các bit lỗi trước và sau đó.
Trang 80Không gian vector trên trường số nhị phân
Trang 81• Xét S là tập một số vectơ
thuộc không gian Vn
• S được gọi là không gian
con của Vn nếu:
– Chứa vector không
– Khép kín
Thí dụ V4:
S v
v S
v v
S v
j i
Trang 83Mã khối tuyến tính
• Định nghĩa : mã khối tuyến tính là không
gian con của không gian Vn Được đặc
trưng bởi (n,k) với n là kích thước vector từ
mã và k là kích thước vector thông tin, tỷ số
mã R = k/n.
Trang 84Mã hóa và giải mã bằng bảng mã
Coder
0101 1010 1111
10 11 01 00 0101 1111 1010 0000
Decoder
0101 1010 1111
10 11 01 00
1 2 3
Trang 86Mã hóa và giải mã bằng bảng mã
Coder
110100 011010 101110 101001 011101 110011
v5 v2 v3 v1
011101 011010 101110 110100Decoder
110100 011010 101110 101001 011101 110011
101 010 110 100
m5 m2 m3 m1
m5 m2 m3 m1
101 010 110 100
Trang 87Dung lượng bit cần lưu trữ đối với
Trang 88Ma trận sinh
• Định nghĩa: Ma trận sinh G của mã (n,k) là
ma trận có kích thước k hàng x n cột, trong
đó mỗi hàng là một vector cơ sở.
• Từ ma trận sinh có thể sinh ra vector từ mã bằng biểu thức: Vi = mi.G
Trang 89Mã hóa bằng ma trận sinh
101001 011010 110100
101 010 110 100
m5 m2 m3 m1
011101 011010 101110 110100 v5 v2 v3 v1
Trang 90Tính chất hệ thống
• Mã (n,k) được gọi là có tính chất hệ thống nếu k-bit bên phải của vector từ mã chính là vector thông tin
• Ma trận sinh có thể được phân hoạch thành
2 phần: bên trái là ma trận parity, bên phải
là ma trận đơn vị G = [Pk,n-k| Ik]
Trang 91Giải mã dựa vào tính chất hệ thống
011 101 011 010 101 110 110 100
z4 z3 z2 z1
Lấy k-bit phải
101 010 110 100 m5 m2 m3 m1
Trang 92Phát hiện và sửa lỗi
• Ma trận kiểm tra
• Bảng triệu chứng (syndrome)
Trang 93Phát hiện lỗi nhờ ma trận kiểm tra H
• Định nghĩa: Một mã khối (n,k) được đặc trưng bằng ma trận sinh G (k hàng, n cột) thì cũng tồn tại một ma trân kiểm tra H (n-k hàng, n cột) sao cho G.HT=0
k n T
k k
n k
P
I H
I P
G
, ,
Trang 94Mô hình kênh bị nhiễu AWGN
Trang 950 0
0
0 0
0
1 0
1
1 1
0
0 1
1
1 0
0
0 1
0
0 0
1
.
1 0
0 1
0 1
0 1
0 1
1 0
0 0
1 0
1 1
H T
G
Trang 96Phát hiện lỗi bằng ma trận kiểm tra
Đ
Lấy k-bit phải
Trang 98Sửa lỗi bằng bảng triệu chứng (syndrome)
Đ
Lấy k-bit phải
011101 011010 101110 110100 z4 z3 z2 z1
Trang 100Các vectơ lỗi có triệu chứng bằng không
Trang 101Khả năng phát hiện và sửa lỗi của
mã khối tuyên tính
• Hàm trọng Hamming
• Khoảng cách Hamming
• Khả năng phát hiện lỗi tối đa
• Khả năng sửa lỗi
• Khả năng phát hiện và sửa lỗi đồng thời
• Phân bố Hamming
• Xác suất lỗi không phát hiện được
Trang 102Hàm trọng Hamming
• Hàm trọng Hamming W(Vi) của vectơ từ mã Vi
là số digit khác không của Vi.
Trang 103Tính khoảng cách hamming của 2
Trang 104) , ( ,
);
,
(
W k
n Vi
Vi W
Min
k n Vj
Vi Vj
Vi d Min
Trang 105Nguyên lý Maximum LikeLihood
Trang 1063.2.3.Khả năng phát hiện và sửa lỗi của
mã khối Khoảng cách Hamming
• Khả năng phát hiện lỗi tối đa: e = dmin – 1
• Khả năng sửa lỗi tối đa: t = int[(dmin –1)/2]
• Khả năng phát hiện α và sửa lỗi β đồng thời phải thỏa mãn điều kiện: α + β + 1 ≤ dmin.
Trang 108Các vec tơ lỗi không phát hiện được Cho xác suất lỗi bit của kênh là PB.
Trang 109Công thức tính xác suất lỗi không phát hiện được
9 9
12 9
2 4
3 3
6 1
3 1
10 4 10
003 ,
4 10
3 10
.
4
) 1
.(
3 )
1 (
4 )
1 (
) 3 ,
6
(
10
) 1
≈
− +
B B
j
n B j
j B j nd
B
j
n B
n
j
j B j nd
P P
P P
P P
A P
ma
ThiduchoP
P P
A P
Trang 1113.2.5 Nguyên lý mã hóa với mã
tuyến tính hệ thống
Trang 1123.2.6 Nguyên lý phát hiện lỗi với
mã khối tuyến tính hệ thống
Trang 1133.2.7 Nguyên lý sửa lỗi với mã
khối tuyến tính hệ thống
Trang 114• Bảng mã (7,4)
Trang 115Triệu chứng lỗi
Trang 116Sơ đồ sửa lỗi
Trang 118Mã (15,11)
• Qui luật tính các
bit parity
Trang 119Nguyên lý sửa lỗi
Trang 120Ma trận sinh dạng chuẩn
Trang 121Không gian vector con trên trường
số nhị phân
Trang 1221 0
0 1
0 1
1 0
1 0
0 0
0 1
G G
Trang 123Thí dụ mã hóa bằng mã(4,2)
Coder
110111
010101
100010
000000
010101
100010
000000
Vi
mi
Trang 125Mã hoá bằng bảng mã
Decoder Coder
110100011010101110101001011101110011000111
110100011010101110101001011101110011000111
110 001 101 000 111
101110 101001 011101 000000 000111
110 001 101 000 111
Trang 129Mã hoá bằng ma trận sinh
vi = miʘG
và giải mã nhờ tính chất hệ thống
Decoder Lấy k-bit phải
Coderʘ
110100011010101001
110100 011101 101001 000000 110011
Trang 130Mã (9,4)
Decoder Lấy k-bit phải
Coderʘ
001111000010110100111000010011100001
1011 0011 0010 1000 1010 1001
10101 1011 10010 0011 11100 0010
1011 0011 0010
Trang 131Tính chất hệ thống (systematic)
• Một mã khối (n,k) được gọi là có tính chất
hệ thống nếu k-bit bên phải của vec tơ từ
mã chính là véc tơ mang tin
Trang 132Phát hiện lỗi nhờ ma trận kiểm tra H
• Định nghĩa: Một mã khối (n,k) được đặc trưng bằng ma trận sinh G (k hàng, n cột) thì cũng tồn tại một ma trân kiểm tra H (n-k hàng, n cột) sao cho G.HT=0
k k
n k
P
I H
I P
Trang 1330 0
0
0 0
0
1 0
1
1 1
0
0 1
1
1 0
0
0 1
0
0 0
1
.
1 0
0 1
0 1
0 1
0 1
1 0
0 0
1 0
1 1
H T
G
Trang 134Phát hiện lỗi bằng ma trận kiểm tra
Đ
Lấy k-bit phải
S
100 xxx
Trang 136Sửa lỗi bằng bảng triệu chứng (syndrome)
Đ
Lấy k-bit phải
S
100 111
syndrome
e010
010000
Trang 138Các vectơ lỗi có triệu chứng bằng không
Trang 1395 Đánh giá khả năng phát hiện và sửa lỗi.
6 Tính xác suất lỗi không phát hiện được.
Trang 1400 1 1 0 1
1 0 1 1 0
0 1 0 1 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 1 1
0
1
0
0 1 0 0 0 1
1
0
1
0 0 1 0 1 0
1
1
0
0 0 0 1 0 1
Trang 1411 1 1 0
1 0 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
4 4 4 4 4 4 4
111 0001
011 1100
101 0110
001 1011
110 1010
010 0111
100 1101
000 0000
10 7 )
10 1 ( 10 7 )
1
( 1
0 0 1 1 0 1
0 1 0 1 1 1 0
0 0 1 1 0 1
1
12 3
3 12
7
1
T
i i
i
j
j n B
j B j nd
H
V W V
m
P P
A P
G
Trang 1431 0 1 0 1
1 1 1 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 1 0 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 1 1 0 0
T
H G
Trang 146Khả năng phát hiện và sửa lỗi
• Khoảng cách Hamming
tối thiểu dmin = 4
• Khả năng phát hiện lỗi tối
4 4
1
10
) 1
( 2
) 1
( 5
0 , 0 , 2 , 0 , 5 , 0 , 0 , 0
) 1
B B
nd j
j
n B
n j
j B j nd
P
P P
P P
P A
P P
A P
Trang 1470 0 1 1 1
1 1 0 1 0
1 1 1 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 0 1 1 1 0
0 1 0 0 0 0 1 1 1
0 0 1 0 1 1 0 1 0
0 0 0 1 1 1 1 0 0
T H G
Trang 149Khả năng phát hiện và sửa lỗi
• Khoảng cách Hamming
tối thiểu dmin = 4
• Khả năng phát hiện lỗi tối
3
3 6
5 4
1
10.510
.1010
)1
(5
)1
(10
0,0,0,5,0,10,0,0,0
)1
B B
B B
nd j
j
n B
n j
j B j nd
P P
P P
P P
P A
P P
A P
Trang 1500 1 0 0
0 0 1 0
0 0 0 1
1 0 0
0 1 0
0 0 1
34 33 32 31
24 23 22 21
14 13 12 11
T
H
P P P P
P P P P
P P P P G
Trang 1511 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
|
,
45 44 43 42 41
35 34 33 32 31
25 24 23 22 21
15 14 13 12 11 ,
T
k n k
k n T
k k n k
H
P
I H
P P P P P
P P P P P
P P P P P
P P P P P G
I P
G
Trang 152Thí dụ mã (8,4)
1 3 4
) 1 ( 14
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0111 1000
1011 0100
0011 0011
1101 0010
0101 0101
1001 1001
0001 1110
1110 0001
0110 0110
1010 1010
0010 1101
1100 1100
0100 1011
1000 0111
0000 0000
1
1
0 1 0 0 1 0
1
1
0 0 1 0 1 1
0
1
0 0 0 1 1 1
1
0
min
8 4 4
P P P
P H G
B B B
nd T