Abstract
Many contemporary philosophers favor coherence theories of knowledge (Bender 1989, BonJour 1985, Davidson 1986, Harman 1986, Lehrer 1990). But the nature of coherence is usually left vague, with no method provided for determining whether a belief should be accepted or rejected on the basis of its coherence or incoherence with other beliefs. Haack's (1993) explication of coherence relies largely on an analogy between epistemic justification and crossword puzzles. We show in this paper how epistemic coherence can be understood in terms of maximization of constraint satisfaction, in keeping with computational models that have had a substantial impact in cognitive science. A coherence problem can be defined in terms of a set of elements and sets of positive and negative constraints between pairs of those elements. Algorithms are available for computing coherence by determining how to accept and reject elements in a way that satisfies the most constraints. Knowledge involves at least five different kinds of coherence - explanatory, analogical, deductive, perceptual, and conceptual - each requiring different sorts of elements and constraints.