Princess Cruise Lines and its parent company Carnival Corporation have agreed to pay a $20 million criminal penalty for environmental violations.