def test_beta(): N = 30 dv = 3 dc = 6 num_codewords = 10 H = get_H(N, dv, dc) codewords = get_codewords(H, num_codewords) p = 0.25 max_iter = 10 trials = 100 print 'GOT ALL CODEWORDS' step = 0.1 b = np.arange(0, 0.5, step) results = set() for beta in b: success_rate = [0] * num_codewords print beta, for i, word in enumerate(codewords): for _ in xrange(trials): codeword = word codeword = convert_to_posneg(codeword) codeword = simulateBEC(p, codeword) f = FactorGraph(H) codeword = f.decode_BEC_memoryless(codeword, beta, max_iter) codeword = convert_to_zeroone(codeword) if tuple(codeword) == word: success_rate[i] += 1 / float(trials) stat = np.average(success_rate) print stat results.add(tuple([beta, stat])) print results for point in results: plt.plot(point[0], point[1], 'ro') plt.show()
def test_beta(): N = 30 dv = 3 dc = 6 num_codewords = 10 H = get_H(N,dv,dc) codewords = get_codewords(H, num_codewords) p = 0.25 max_iter = 10 trials = 100 print 'GOT ALL CODEWORDS' step = 0.1 b = np.arange(0, 0.5, step) results = set() for beta in b: success_rate = [0] * num_codewords print beta, for i, word in enumerate(codewords): for _ in xrange(trials): codeword = word codeword = convert_to_posneg(codeword) codeword = simulateBEC(p, codeword) f = FactorGraph(H) codeword = f.decode_BEC_memoryless(codeword, beta, max_iter) codeword = convert_to_zeroone(codeword) if tuple(codeword) == word: success_rate[i] += 1 / float(trials) stat = np.average(success_rate) print stat results.add(tuple([beta, stat])) print results for point in results: plt.plot(point[0], point[1], 'ro') plt.show()