DAOOPT

DAOOPT: Distributed AND/OR Optimization. An implementation of sequential as well as distributed AND/OR Branch-and-Bound and its Breadth-Rotating AND/OR Branch-and-Bound enhancement for combinatorial optimization problems expressed as MPE (max-product) queries over graphical models like Bayes and Markov networks. Also implements the following: full context-based caching. mini-buckets for heuristic generation. minfill heuristic to find variable orderings. limited discrepancy search to quickly find initial solution. stochastic local search to quickly find initial solution (via GLS+ code by Frank Hutter). stochastic iterative greedy variable ordering (code by Kalev Kask). join graph cost-shifting techniques (MPLP, JGLP, MBE-MM) (code by Alex Ihler).