Deleted [JK02] 10,000 steps

Project overview

Although people in the UK walk, on average, about 3,000—4,000 steps, the NHS recommends that people walk 10,000 steps per day [source]. Most people will need to add some additional walks into their daily schedules in order to meet this objective. Moreover, they will prefer to walk in quiet, pleasant and safe environments. The aim of this project is to produce a mobile device app that computes a suitable walking route that begins and ends at a given location and involves, roughly, a given number of steps.

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 these systems. 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 a route that is close to a particular distance (within a given margin of error). This will require some background reading into search algorithms. Some literature on AI planning will be relevant as well.

For this project, you will need to develop a mobile device application. You can produce an application for Android, iOS or a cross-platform application. Which mobile device OS you choose to develop for is not important. In this project, the mobile device application is merely a vehicle to deliver an interesting routing 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.

If time permits, there is scope in this project to increase the complexity of the problem by aiming to produce a pleasant route to walk. This would require some means to measure the pleasantness of paths and combine these for a whole route. Some heuristic solution that takes into account the type of road (size, traffic direction, number of crossroads, etc.) and adjacent features (water, parks, etc.). A variant of this problem is to produce a safe or safest route, by assessing route safety using different data (e.g. crime statistics, road lighting conditions, etc.). Beware, however, that this turns the constraint problem into an optimisation problem under constraints, which is trickier to solve.

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 sequence of action that accumulates a cost that falls within a given range. Nevertheless, 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.