Nichrome: A Solver for Mixed Hard and Soft Constraints

Nichrome is a solver for solving a system of mixed hard and soft constraints. Many inference tasks in diverse application domains such as machine learning, information retrieval, mathematical optimization, and many others require optimizing certain objectives in addition to satisfying soundness conditions. A natural specification for such tasks is a system of relational constraints with optional weights. Examples of such logics are MLNs (Markov Logic Networks) and PSLs (Probabilistic Soft Logic). The relational inference problem in such logics seeks a solution that satisfies all unweighted (“hard”) constraints while maximizing the sum of the weights of satisfied weighted (“soft”) constraints. Hard constraints thus enable to express soundness conditions while soft constraints allow to express the objectives to optimize.