  Motivated by the need to control the exponential growth of constraint
violations in numerical solutions of the Einstein evolution equations, two
methods are studied here for controlling this growth in general hyperbolic
evolution systems. The first method adjusts the evolution equations
dynamically, by adding multiples of the constraints, in a way designed to
minimize this growth. The second method imposes special constraint preserving
boundary conditions on the incoming components of the dynamical fields. The
efficacy of these methods is tested by using them to control the growth of
constraints in fully dynamical 3D numerical solutions of a particular
representation of the Maxwell equations that is subject to constraint
violations. The constraint preserving boundary conditions are found to be much
more effective than active constraint control in the case of this Maxwell
system.
