How can graph coloring be applied in real-world situations, and what are the challenges and limitations associated with using graph coloring algorithms? Provide specific examples to support your answer.