Assignment Propagation 1
The algorithm for propagating the effect of assigning a donor or acceptor state to an atom is similar to that for assigning a kekulé form to a molecule.
One major difference is that assigning one atom may result in another atom being assigned. This is allowable only if there are enough hydrogens left.
If the effects of an atom type assignment are contradictory then the assignment fails and the search backtracks.