  Given a weighted undirected graph $G=(V,E,d)$, the Molecular Distance
Geometry Problem (MDGP) is that of finding a function $x:G\to \mathbb{R}^{3}$,
where $||x(u)-x(v)||=d(u,v)$ for each $\{u,v\}\in E$. We show that under a few
assumptions usually satisfied in proteins, the MDGP can be formulated as a
search in a discrete space. We call this MDGP subclass the Discretizable MDGP
(DMDGP). We show that the DMDGP is \textbf{NP}-complete and we propose an
algorithm, called Branch-and-Prune (BP), which solves the DMDGP exactly. The BP
algorithm performs exceptionally well in terms of solution accuracy and can
find all solutions to any DMDGP instance. We successfully test the BP algorithm
on several randomly generated instances.
