กลับไปหน้าบทความ

อ่าน 9 นาที

รหัสขยาย

ในทฤษฎีการเข้ารหัสรหัสขยาย (expander codes)จัดอยู่ในกลุ่มรหัสแก้ไขข้อผิดพลาดที่สร้างขึ้นจากกราฟขยาย แบบสอง ส่วน (bipartite expander graphs)...

รหัสขยาย

รหัสขยาย
กราฟขยายแบบสองส่วน
การจำแนกประเภท
พิมพ์รหัสบล็อกเชิงเส้น
ความยาวบล็อก
ความยาวของข้อความ
ประเมิน
ระยะทาง
ขนาดตัวอักษร
สัญกรณ์-รหัส

ในทฤษฎีการเข้ารหัสรหัสขยาย (expander codes)จัดอยู่ในกลุ่มรหัสแก้ไขข้อผิดพลาดที่สร้างขึ้นจากกราฟขยาย แบบสอง ส่วน (bipartite expander graphs) รหัสขยายมีความน่าสนใจเป็นพิเศษเช่นเดียวกับรหัสจัสเตเซน (Justesen codes ) เนื่องจากมี อัตรา บวกคงที่ ระยะทางสัมพัทธ์บวกคงที่และขนาดตัวอักษร คงที่ ที่จริงแล้ว ตัวอักษรมีเพียงสององค์ประกอบ ดังนั้นรหัสขยายจึงจัดอยู่ในกลุ่มรหัสไบนารียิ่งไปกว่านั้น รหัสขยายสามารถเข้ารหัสและถอดรหัสได้ในเวลาที่แปรผันตามความยาวบล็อกของรหัส

รหัสขยาย

ในทฤษฎีการเข้ารหัสรหัสขยาย (expander code) คือรหัสบล็อกเชิงเส้นที่มีเมทริกซ์ตรวจสอบความเท่าเทียมกัน (parity check matrix) เป็นเมทริกซ์ประชิด (adjacency matrix)ของกราฟขยาย แบบสองส่วน (bipartite expander graph) รหัสเหล่านี้มีระยะ ห่างสัมพัทธ์ที่ดี โดยที่และเป็นคุณสมบัติของกราฟขยายตามที่กำหนดไว้ในภายหลังมีอัตราและความสามารถในการถอดรหัส (มีอัลกอริธึมที่มีประสิทธิภาพในเวลาการทำงาน)

คำนิยาม

ให้เป็นกราฟไบเรกูลาร์ระหว่างเซตของโหนดที่เรียกว่าตัวแปรและเซตของโหนดที่เรียกว่าข้อจำกัด

ให้เป็นฟังก์ชันที่ออกแบบมาเพื่อให้สำหรับแต่ละข้อจำกัดตัวแปรที่อยู่ใกล้เคียงกัน คือ

ให้เป็นรหัสแก้ไขข้อผิดพลาดที่มีความยาวบล็อกรหัสขยายคือ รหัสที่มีความยาวบล็อกซึ่งคำรหัส คือ คำที่สำหรับเป็นคำรหัสของ[ 1 ]

ได้มีการแสดงให้เห็นแล้วว่ากราฟขยายแบบไม่สูญเสียที่ไม่ใช่แบบธรรมดามีอยู่จริง ยิ่งไปกว่านั้น เราสามารถสร้างกราฟเหล่านั้นได้อย่างชัดเจน[ 2 ]

ประเมิน

อัตราของเมทริกซ์ตรวจสอบความเท่าเทียมกันคือขนาดของเมทริกซ์หารด้วยความยาวของบล็อก ในกรณีนี้ เมทริกซ์ตรวจสอบความเท่าเทียมกันมีขนาดเท่ากับและดังนั้นจึงมีอัตราอย่างน้อยเท่ากับ

ระยะทาง

สมมติว่าดังนั้นระยะทางของรหัสขยายจะมีค่าอย่างน้อยที่สุด

การพิสูจน์

โปรดทราบว่าเราสามารถพิจารณาคำรหัสทุกคำในเป็นเซตย่อยของจุดยอดโดยกล่าวว่าจุดยอดนั้นเป็นจุดรหัสก็ต่อเมื่อดัชนีที่ ของคำรหัสเป็น 1 เท่านั้น ดังนั้นจะเป็นคำรหัสก็ต่อเมื่อจุดยอดทุกจุดใน อยู่ติดกับจุดยอดจำนวนคู่ใน(เพื่อให้ เป็นคำรหัสโดยที่คือเมทริกซ์ตรวจสอบความเท่าเทียมกัน ดังนั้น จุดยอดแต่ละจุดในจะสอดคล้องกับแต่ละคอลัมน์ของการ คูณเมทริกซ์เหนือจะให้ผลลัพธ์ที่ต้องการ) ดังนั้น ถ้าจุดยอดอยู่ติดกับจุดยอดเพียงจุดเดียวในเราจะรู้ได้ทันทีว่าไม่ใช่คำรหัส ให้แทนจุดยอดข้างเคียงในของและแทนจุดยอดข้างเคียงของซึ่งมีเอกลักษณ์เฉพาะตัว กล่าวคือ อยู่ติดกับจุดยอดเพียงจุดเดียวของ

บทตั้งที่ 1

สำหรับทุก ขนาด.

การพิสูจน์

โดยทั่วไปแล้วเนื่องจากหมายความว่าเป็น ไปตามนั้น เนื่องจากดีกรีของทุกจุดยอดในคือโดยคุณสมบัติการขยายของกราฟ จะต้องมีเซตของขอบที่เชื่อมไปยังจุดยอดที่แตกต่างกันขอบที่เหลือทำให้มีเพื่อนบ้านอย่างมากที่สุดเพื่อนบ้านที่ไม่ซ้ำกันดังนั้น

บทสรุป

ทุก ๆ จุดที่เล็กพอจะมีเพื่อนบ้านที่ไม่ซ้ำกัน นี่เป็นผลมาจาก...

บทตั้งที่ 2

เซต ย่อยทุกเซตจะมีเพื่อนบ้านที่ไม่ซ้ำกัน

การพิสูจน์

บทพิสูจน์เสริมที่ 1 พิสูจน์กรณีดังนั้นสมมติว่าให้ โดย ที่โดยบทพิสูจน์เสริมที่ 1 เราทราบว่าดังนั้นจุดยอดอยู่ในถ้าและเรารู้ว่าดังนั้นโดยส่วนแรกของบทพิสูจน์เสริมที่ 1 เราทราบว่าเนื่องจากและดังนั้น จึงไม่ว่างเปล่า

บทสรุป

โปรดทราบว่า ถ้า a มีเพื่อนบ้านที่ไม่ซ้ำกันอย่างน้อย 1 ตัว เช่นแล้วคำที่สอดคล้องกับจะไม่ใช่คำรหัส เนื่องจากจะไม่สามารถคูณกับเมทริกซ์ตรวจสอบความเท่าเทียมกันแล้วได้เวกเตอร์ที่เป็นศูนย์ทั้งหมด จากข้อโต้แย้งก่อนหน้านี้ เนื่องจากเป็นเชิงเส้น เราจึงสรุปได้ว่ามีระยะห่างอย่างน้อย

การเข้ารหัส

เวลาการเข้ารหัสสำหรับรหัสขยายจะถูกจำกัดสูงสุดโดยรหัสเชิงเส้น ทั่วไป - โดยการคูณเมทริกซ์ ผลลัพธ์ของ Spielman แสดงให้เห็นว่าการเข้ารหัสสามารถทำได้ในเวลา[ 3 ]

การถอดรหัส

การถอดรหัสขยายรหัสสามารถทำได้ทันเวลาเมื่อใช้อัลกอริทึมต่อไปนี้

ให้เป็นจุดยอดของที่สอดคล้องกับดัชนีในคำรหัสของให้เป็นคำที่ได้รับ และให้เป็นและเป็น จากนั้นพิจารณาอัลกอริทึมแบบโลภ (greedy algorithm) ดังนี้ :


อินพุต:คำที่ได้รับ

กำหนดค่าเริ่มต้น y' เป็น y ในขณะที่มี av ใน R ที่อยู่ติดกับจำนวนจุดยอดคี่ใน V(y') ถ้ามีค่า i ที่ทำให้ o(i) > e(i) พลิกรายการ i ใน y' อื่น ล้มเหลว 

ผลลัพธ์:ล้มเหลว หรือรหัสคำที่ถูกแก้ไข


การพิสูจน์

เราจะแสดงให้เห็นถึงความถูกต้องของอัลกอริทึมก่อน จากนั้นจึงตรวจสอบเวลาในการทำงานของอัลกอริทึม

ความถูกต้อง

เราต้องแสดงให้เห็นว่าอัลกอริทึมจะสิ้นสุดลงด้วยรหัสคำที่ถูกต้องเมื่อรหัสคำที่ได้รับอยู่ภายในครึ่งหนึ่งของระยะห่างของรหัสจากรหัสคำเดิม ให้เซตของตัวแปรที่เสียหายเป็น, , และเซตของจุดยอดที่ไม่ตรงตามเงื่อนไข (อยู่ติดกับจุดยอดจำนวนคี่) ในเป็นบทพิสูจน์ต่อไปนี้จะเป็นประโยชน์

บทตั้งที่ 3

ถ้า เช่นนั้น จะ มีค่า อยู่ด้วย

การพิสูจน์

จาก Lemma 1 เราทราบว่าดังนั้นจุดยอดเฉลี่ยจะมีเพื่อนบ้านที่ไม่ซ้ำกันอย่างน้อย(จำไว้ว่าเพื่อนบ้านที่ไม่ซ้ำกันจะไม่พึงพอใจและจึงมีส่วนร่วมใน) เนื่องจากและด้วยเหตุนี้จึงมีจุดยอดที่มี

ดังนั้น หากเรายังไม่ถึงรหัสคำ ก็จะมีจุดยอดบางจุดที่ต้องพลิกเสมอ ต่อไป เราจะแสดงให้เห็นว่าจำนวนข้อผิดพลาดไม่สามารถเพิ่มขึ้นเกินกว่าได้

บทตั้งที่ 4

ถ้าเราเริ่มต้นด้วยค่านี้เราจะไม่มีวันไปถึงจุดใด ๆ ในอัลกอริธึมเลย

การพิสูจน์

เมื่อเราพลิกจุดยอดและสลับตำแหน่งกัน และเนื่องจากเรามีนั่นหมายความว่าจำนวนจุดยอดที่ไม่สมบูรณ์ทางด้านขวาจะลดลงอย่างน้อยหนึ่งจุดหลังจากการพลิกแต่ละครั้ง เนื่องจากจำนวนจุดยอดที่ไม่สมบูรณ์เริ่มต้นจึงมีค่าสูงสุดตาม ความสม่ำเสมอ ของกราฟหากเราพบสตริงที่มีข้อผิดพลาด ตาม Lemma 1 จะมีเพื่อนบ้านที่ไม่ซ้ำกันอย่างน้อย ซึ่งหมายความว่าจะมีจุดยอดที่ไม่สมบูรณ์อย่างน้อย ซึ่งขัดแย้งกัน

บทพิสูจน์เสริมข้อที่ 3 และ 4 แสดงให้เราเห็นว่า ถ้าเราเริ่มต้นด้วย(ครึ่งหนึ่งของระยะทางของ) เราจะพบจุดยอดที่จะพลิกเสมอ การพลิกแต่ละครั้งจะลดจำนวนจุดยอดที่ไม่ตรงตามเงื่อนไขใน ลงอย่างน้อย 1 จุด ดังนั้นอัลกอริทึมจึงสิ้นสุดลงในขั้นตอนอย่างมากที่สุด และจะสิ้นสุดที่คำรหัสบางคำ ตามบทพิสูจน์เสริมข้อที่ 3 (หากไม่สิ้นสุดที่คำรหัส ก็จะมีจุดยอดให้พลิกอีกจุดหนึ่ง) บทพิสูจน์เสริมข้อที่ 4 แสดงให้เราเห็นว่าเราไม่สามารถอยู่ห่างจากคำรหัสที่ถูกต้องได้มากกว่า เนื่องจากรหัสมีระยะทาง(เนื่องจาก) คำรหัสที่สิ้นสุดลงจึงต้องเป็นคำรหัสที่ถูกต้อง เนื่องจากจำนวนการพลิกบิตน้อยกว่าครึ่งหนึ่งของระยะทาง (ดังนั้นเราจึงไม่สามารถเดินทางไปไกลพอที่จะไปถึงคำรหัสอื่นได้)

ความซับซ้อน

ต่อไปนี้เราจะแสดงให้เห็นว่าอัลกอริธึมนี้สามารถถอดรหัสได้ในเวลาเชิงเส้น ให้เป็นค่าคงที่ และให้เป็นดีกรีสูงสุดของจุดยอดใดๆ ในโปรดทราบว่าก็เป็นค่าคงที่เช่นกันสำหรับโครงสร้างที่ทราบแล้ว

  1. ขั้นตอนการประมวลผลเบื้องต้น: การคำนวณว่าแต่ละจุดยอดมีจำนวนเพื่อนบ้านเป็นเลขคี่หรือเลขคู่ ต้องใช้เวลา
  2. ขั้นตอนการประมวลผลเบื้องต้น 2: เราใช้เวลาในการคำนวณรายการจุดยอดที่มี.
  3. ในแต่ละรอบการทำงาน: เราเพียงแค่ลบองค์ประกอบแรกในรายการออก เพื่ออัปเดตรายการของจุดยอดคี่/คู่ในเราจำเป็นต้องอัปเดตเฉพาะรายการ โดยแทรก/ลบตามความจำเป็น จากนั้นเราจะอัปเดตรายการในรายการจุดยอดในที่มีเพื่อนบ้านเป็นเลขคี่มากกว่าเลขคู่ โดยแทรก/ลบตามความจำเป็น ดังนั้นแต่ละรอบการทำงานจึงใช้เวลา
  4. ตามที่ได้กล่าวไว้ข้างต้น จำนวนรอบการทำซ้ำทั้งหมดมีค่าสูงสุดไม่เกิน.

ซึ่งจะทำให้ได้เวลาการทำงานทั้งหมดเท่ากับเวลา โดยที่และเป็นค่าคงที่

ดูเพิ่มเติม

หมายเหตุ

บทความนี้อ้างอิงจากบันทึกหลักสูตรของ ดร. เวนกาเตสัน กูรุสวามี[ 4 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Expander_code&oldid=1322733251 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รหัสขยาย

ในทฤษฎีการเข้ารหัสรหัสขยาย (expander codes)จัดอยู่ในกลุ่มรหัสแก้ไขข้อผิดพลาดที่สร้างขึ้นจากกราฟขยาย แบบสอง ส่วน (bipartite expander graphs)...

รหัสขยาย

ใน ทฤษฎีการเข้ารหัส รหัสขยาย (expander code) คือ รหัสบล็อกเชิงเส้น ที่มีเมทริกซ์ตรวจสอบความเท่าเทียมกัน (parity check matrix) เป็น เมทริกซ์ประชิด (adjacency matrix) ของ กราฟขยาย แบบสองส่วน (bipartite expander graph) รหัสเหล่านี้มี ระยะ ห่างสัมพัทธ์ที่ดี...

คำนิยาม

ให้เป็น กราฟไบเรกูลาร์ ระหว่างเซตของโหนดที่เรียกว่า ตัวแปร และเซตของโหนดที่เรียกว่า ข้อ จำกัด บี {\displaystyle B} ( ค , ง ) {\displaystyle (c,d)} n {\displaystyle n} { วี 1 , ⋯ , วี n } {\displaystyle \{v_{1},\cdots ,v_{n}\}} ค n / ง {\displaystyle cn/d} {...

ประเมิน

อัตราของเมทริกซ์ตรวจสอบความเท่าเทียมกันคือขนาดของเมทริกซ์หารด้วยความยาวของบล็อก ในกรณีนี้ เมทริกซ์ตรวจสอบความเท่าเทียมกันมีขนาดเท่ากับและดังนั้นจึงมีอัตราอย่างน้อยเท่ากับ ซี {\displaystyle C\,} ม × n {\displaystyle m\times n\,} ซี {\displaystyle C\,} ( n − ม...