Generalization of Hamiltonian algorithms