simplegraph.py 624 B

1234567891011121314151617181920212223242526272829
  1. import numpy as np
  2. import factorgraph as fg
  3. # Make an empty graph
  4. g = fg.Graph()
  5. # Add some discrete random variables (RVs)
  6. g.rv('a', 2)
  7. g.rv('b', 3)
  8. # Add some factors, unary and binary
  9. g.factor(['a'], potential=np.array([0.3, 0.7]))
  10. g.factor(['b', 'a'], potential=np.array([
  11. [0.2, 0.8],
  12. [0.4, 0.6],
  13. [0.1, 0.9],
  14. ]))
  15. # Run (loopy) belief propagation (LBP)
  16. iters, converged = g.lbp(normalize=True)
  17. print 'LBP ran for %d iterations. Converged = %r' % (iters, converged)
  18. print
  19. # Print out the final messages from LBP
  20. g.print_messages()
  21. print
  22. # Print out the final marginals
  23. g.print_rv_marginals()