General modeling and optimization technique for real-world earth observation satellite scheduling