A multimodal approach to solving the transit fare optimisation problem