Error Correcting Codes
Total Page:16
File Type:pdf, Size:1020Kb
ERROR CORRECTING CODES THESIS Presented in Partial Fulfillment of the Requirements for the Degree Masters of Science in the Graduate School of the Ohio State University By Peter M. Kosek, B.S. in Mathematics Graduate Program in Mathematics The Ohio State University 2014 Thesis Committee: Matthew Kahle, Advisor David Sivakoff c Copyright by Peter M. Kosek 2014 ABSTRACT Error correcting codes is an area of mathematics that combines many theoretical concepts with a wide variety of applications. In this expository thesis, we will begin by introducing many of the fundamental ideas in classical error correcting codes. The goal of this is to introduce the reader to the field of coding theory and discuss a few of the wide range of classical codes that have been studied. The second section will discuss the recent findings in error correcting codes, namely their use in quantum error correcting codes. This section uses much more theoretical areas of math, when compared to the classical section, in the construction of quantum error correcting codes. Most of the research discussed in this section has been completed within the past six years. All of the research discoveries presented in this thesis have been previously known. ii ACKNOWLEDGMENTS I would like to thank Matthew Kahle for his willingness to serve as my advisor. He has challenged me to learn topics I never imagined I would understand. I have appreciated his feedback on my writings. I would also like to thank David Sivakoff for being willing to be a member of my committee. I would very much like to thank the both of these gentlemen and their wives for meeting last minute to allow me to defend my thesis by the deadline. A very big thank you goes out to my wife, Amy, for her hugs and encouragement throughout this entire process. I have benefitted greatly from her encouragements to be diligent in writing and to not procrastinate. I would also like to thank Howard Skogman for initially introducing me to the area of error correcting codes and for making the topic come alive and create a desire to learn more about the subject. iii VITA 2008 . B.S. in Mathematics, The College at Brockport, State Univer- sity of New York 2012-Present . Graduate University Fellowship, The Ohio State University 2013-Present . Graduate Teaching Associate, The Ohio State University PUBLICATIONS Firke, Frank; Kosek, Peter; Nash, Evan; Williford, Jason Extremal Graphs Without 4-Cycles FIELDS OF STUDY Major Field: Mathematics iv TABLE OF CONTENTS Abstract . ii Acknowledgments . iii Vita......................................... iv List of Figures . vi CHAPTER PAGE 1 Classical Error Correcting Codes . .1 1.1 Motivation . .1 1.2 Minimum Distance Decoding . .4 1.2.1 t-error-correcting and t-error-detecting codes . .7 1.3 The Main Coding Theory Problem . .9 1.3.1 Bounds for Aq(n; d)......................9 1.4 Linear codes . 13 1.4.1 Syndrome decoding . 15 1.5 Other examples of codes . 18 1.5.1 Hamming codes . 18 1.5.2 Non-linear codes . 21 2 Quantum Error Correcting Codes . 23 2.1 Motivation . 23 2.2 Calderbank{Shor{Steane codes . 24 2.3 Recent research . 26 2.4 Quantum LDPC codes based on homological properties . 27 2.5 Quantum LDPC codes based on Cayley graphs . 29 Bibliography . 33 v LIST OF FIGURES FIGURE PAGE 1.1 Fano plane . 21 vi CHAPTER 1 CLASSICAL ERROR CORRECTING CODES 1.1 Motivation Let's begin by creating a simple scenario. Suppose you are in communication with another person at a distance using some noisy binary channel (i.e. a method of sending 0's and 1's in which errors may occur in which 0 gets switched to 1 and vice versa). Assume that the chance of an error occurring for any bit is less likely than the correct bit being received and that the likelihood of an error is independent of any other error occurring. Furthermore, assume the only two phrases you would like to send to one another are `yes' and `no'. You have both decided that 0 represents no and 1 represents yes. One day, you send the message 1, but due to the noise in the channel, the other person receives 0. Since the chance of an error occurring is less likely than the correct word being sent, the other person assumes that you said no. Clearly, this is not good. After learning your lesson, you realize that maybe you should not have the oc- currence of one error result in another word. You both decide that from now on, 00 represents no and 11 represents yes. That way, it would take two errors occurring to end up with the completely wrong word, and that has even less chance of occurring than a single error occurring. Now, if either one of you receive 01 or 10, you know that an error has occurred! However, you don't know if they meant to send 00 or 11. 1 This is not an issue if you are able to ask for the message to be resent. But if the message is not easily resent, then all you know if that an error has occurred and you have a 50/50 chance of guessing what the correct message was. You decide that it would be best if you could allow the other person, with a relatively high certainty, to know what the original message was, even if a single error occurred. You both decide that from now on, 000 represents no and 111 represents yes. Now, suppose you send 111 to the other person and an error has occurred and they receive 011. The other person realizes that an error has occurred since 011 is not a word you both agreed on. However, he knows that the chance of two errors occurring (if you had sent 000 and the last two bits got flipped) is much less than a single error occurring. Therefore, with a fair amount of certainity, he can assume you sent 111, which is correct! You can keep adding more bits of redundancy to your codewords to allow the detection of more errors as well as the correction of more errors. However, you'll end up with more data that needs to be transferred, which takes a longer amount of time. Also, you realize that you're only sending two words. What if you wanted to be able to send more than just yes and no? Error correcting codes are used when one is attempting to transmit messages across a noisy communication channel. For example, they are used in CD's to allow it to play music even if there are scratches, as well as in the transmission of pictures taken from outer space. The process is as follows. A certain message would like to be sent to some user. The message is encoded in some way by adding redundancy to the message to create a codeword. (As a side note, all parties have complete knowledge of the encoding.) Then, this codeword is transmitted through a noisy channel. Errors may or may not occur at this stage. A word is then received by the user. Using some 2 decoding method, the user will decode the word to be some message (it may or may not be correct). Definition 1.1.1. Let A = fa1; a2; : : : ; aqg be a finite set, called a code alphabet. Any codeword sent or received will be strings formed using elements from the code alphabet. We call a code over an alphabet of size q a q-ary code. Most often, the code alphabets we use are f0; 1; 2; : : : ; q−1g. However, there are other interesting examples using other code alphabets. Example 1.1.2. We could consider all street names in Columbus, OH as a 37-ary code (26 letters, 10 digits, and a space). We see that this is an example of a very poor code since EAST 4TH AVENUE and EAST 5TH AVENUE only differ in one location, so if an error occurred in that location, we would not know that our received street name was correct. Example 1.1.3. The ISBN numbers in every book are examples of error correcting codes. Older books have a 10-digit ISBN number while newer books have a 13-digit ISBN number. The ISBN-10 code has codewords of the form (x1; x2; : : : ; x10) where x1 + 2x2 + 3x3 + ··· + 9x9 + 10x10 ≡ 0 mod 11 with x1; x2; : : : ; x9 2 f0; 1;:::; 9g and x10 2 f0; 1;:::; 9;Xg. Since x10 is the check digit, if the previous numbers require x10 = 10, it is denoted as an X. The ISBN-13 code had codewords of the form (x1; x2; : : : ; x13) where x1 + 3x2 + x3 + 3x4 + x5 + 3x6 ··· + 3x12 + x13 ≡ 0 mod 10 with x1; x2; : : : ; x13 2 f0; 1;::: 9g. In both of these codes, every two codewords differ in at least two locations. Example 1.1.4. The United States Postal Service used to use a code called POST- NET (Postal Numeric Encoding Technique) to assist in the correct sending and re- ceiving of mail [8]. It used a series of tall and short bars to encode information about 3 the letter being sent. The first five digits are your zip code, the next four digits are the extended zip code, the next two digits are the delivery point digits and the last digit is a check digit to ensure that the sum of all of the digits is congruent to 0 mod 10. The digits were encoded into bars by the following table: number bar code 1 j j j 2 j j j 3 j j j 4 j j j 5 j j j 6 j j j 7 j j j 8 j j j 9 j j j 0 j j j Suppose the Postal Service receives a letter in which the first five bars got smudged and are unreadable.