A Generalization of Grover's Algorithm
  We investigate the necessary and sufficient conditions in order that a unitary operator can amplify a pre-assigned component relative to a particular basis of a generic vector at the expense of the other components. This leads to a general method which allows, given a vector and one of its components we want to amplify, to choose the optimal unitary operator which realizes that goal. Grover's quantum algorithm is shown to be a particular case of our general method. However the general structure of the unitary we find is remarkably similar to that of Grover's one: a sign flip of one component combined with a reflection with respect to a vector. In Grover's case this vector is fixed; in our case it depends on a parameter and this allows optimization. 
Luigi Accardi, Ruben Sabbadini