CSC 310, ASSIGNMENT #4 - RESULTS AND DISCUSSION Here is the output of the program: Results: all-ok-count/fraction message-ok-count/fraction errs tries | Method 1 | Method 2 | Method 3 | 0 153 | 153/1.000 153/1.000| 153/1.000 153/1.000| 153/1.000 153/1.000| 1 696 | 696/1.000 696/1.000| 696/1.000 696/1.000| 696/1.000 696/1.000| 2 1514 |1514/1.000 1514/1.000|1514/1.000 1514/1.000|1514/1.000 1514/1.000| 3 2012 |2012/1.000 2012/1.000|2012/1.000 2012/1.000|2012/1.000 2012/1.000| 4 2073 |1965/0.948 2003/0.966|2058/0.993 2058/0.993|2073/1.000 2073/1.000| 5 1624 |1337/0.823 1447/0.891|1565/0.964 1565/0.964|1620/0.998 1620/0.998| 6 989 | 569/0.575 705/0.713| 848/0.857 850/0.859| 963/0.974 963/0.974| 7 564 | 190/0.337 293/0.520| 391/0.693 394/0.699| 519/0.920 519/0.920| 8 238 | 31/0.130 70/0.294| 110/0.462 110/0.462| 199/0.836 199/0.836| 9 97 | 2/0.021 18/0.186| 19/0.196 20/0.206| 52/0.536 52/0.536| >=10 40 | 0/0.000 2/0.050| 1/0.025 1/0.025| 10/0.250 10/0.250| total 10000 |8469/0.847 8913/0.891|9367/0.937 9373/0.937|9811/0.981 9811/0.981| Method 1 is row/col decoding, Method 2 is row/col/row/col, Method 3 is optimal Your results will not necessarily be exactly the same, if the pseudo-random numbers you used were different. The accuracy of the proportions of correct decoding shown will vary with the number of messages that they are based on, and on the proportion. For the line with 8 errors, based on 238 messages, the accuracy of the figure of 0.462 for the fraction of correct decoding using Method 2 is accurate to around plus-or-minus 2*sqrt(0.462*(1-0.462)/238)=0.06 (with 95% confidence). Most of the other proportions will be more accurate. Since the methods were all tested on the same messages, the differences seen between the methods may be more accurate than the individual figures. We can see that all the methods decode correctly when there are no more than three transmission errors. The optimal method also always decodes correctly when there are four transmission errors, which is expected, since we know that the minimum distance for this code is d=9, and hence it should be guaranteed to correct all patterns of (d-1)/2 = 4 or fewer errors if decoded optimally. For larger numbers of errors, all the methods still often decode correctly. Method 3 is best, as expected, and Method 2 is better than Method 1 (the apparent slight exception for >=10 errors is almost certainly a chance result in which Method 1 got lucky for the extra transmission in which it decoded the message bits correctly). Method 1 and Method 2 sometimes decode the message bits correctly but don't get all the check bits correct. We can conclude from this that these decoding methods don't always produce codewords as their decoding, since a codeword (by definition) has the right check bits to go with its message bits. Method 3 always produces a codeword, since it works by finding the codeword closest to the received data. Hence Method 3 can't possible get the message bits right without getting the check bits right too. Method 2 seems like a good practical solution, since it improves on Method 1 by a non-neglibible amount, while being much faster than Method 3.