New Algorithms for Structure-based Drug Design