Booked [JK07] Route planning for cyclists

Project overview

Navigation normally involves the "shortest path" between two points. Definitions as to what a "shortest path" is may vary, as the length of a route can be measured by means of distance travelled, time travelled, fuel consumed, etc. Bicycle navigation is a somewhat more challenging problem because cyclists prefer a path that is short enough, but also good for cycling. This project aims to produce a route finding application for cyclists. Although there are a number of such applications available, this project aims to produce a new variant where the user can specify their preferences.

At the start of this project, you will need to find a suitable data source for mapping data. OpenStreetMap is a good starting point. However, very early on, you should produce one or more prototypes to check out the feasibility of using the data source of your choice. In this project, you will also need to produce a routing algorithm. Conventional routing algorithms aim to produce the shortest path between two points, but that is not the purpose of this project. Instead, your algorithm will need to produce the shortest route that satisfies the user's preferences. The lenght of a route will, of course, be one criterion. The type of road, the intersections that need to be navigated, the surroundings of the road, may also affect a route's suitability.

For this project, you will need to develop an application that produces suitable routes for cycling from location A to location B. The application may be a desktop, web or mobile application. You may also be tempted to think up a range of interesting features you could add to this application (e.g. fitness tracking). However, it is important to bear in mind that such features are somewhat off-topic and I would strongly urge you to stay focussed on producing a good routing application.

At the end of your project, you will need to evaluate your solution. It is quite feasible to evaluate the routes your application produces without human subjects, e.g. by identifying a number of use cases or scenarios. Beware that any evaluation with human subjects in the field, while interesting, would require ethics approval and comes with safety risks that need to be assessed.

Initial background reading suggestions

In this project, you would be tackling an AI planning problem, albeit one with a twist: instead of finding the most cost-effective sequence of actions that achieves a particular goal, you must find a cost-effective sequence of actions that satisfies additional criteria. It would be good to read an introductory text on AI planning as this will provide you with a good foundation of the concepts involved in tackling this type of problems. Ghallab, Nau and Traverso's book "Automated Planning and Acting" is a good start and available for your to read online. You should also look at data sources. I recommend OpenStreetMap as a starting point. Google and Apple's map API are intended to serve map images and will not provide what you need.

Who is this project for?

This project is suitable for both BSc and MSci students with an interest in Artificial Intelligence and Software Engineering. It is primarily a software development project, so perhaps more suited if you are inclined towards a career in industry. However, you will need to do some research, albeit with a very applied inclination. A key challenge of this project will be to find a good data source to form the basis of your own navigation application. You should be prepared to build some prototypes to test out different APIs and data sources in a systematic manner. You will also need to produce a routing algorithm that produces suitable routes, and this will take some creativity. Given the challenges of these tasks, it would be helpful if you already have some familiarity with development for a mobile platform.

Questions about this project

Q: Can I discuss this project with you in person?

A: Yes, I have arrange a project Q&A session on Thursday 27 September, 18:00%—20:00 in Bush House (SE) 2.12. All students in an undergraduate Computer Science programme doing an individual project this year are welcome. I'm afraid it is not feasible to meet all students with questions on a one-to-one basis this week. I am supervising 11 undergraduate projects this year and usually receive 5-6 meeting requests per project on average (because most students explore a range of different projects). As it is simply not feasible to schedule that many meetings in a single week, a group Q&A session seems to me to be the fairest approach to meet everyone.