Extension of Swarm Particle algorithm for Mobile Device Optimisation

Tags: algorithm, android, evolutionary algorithm, java, pso

A little background about my research...

In today’s day and age, it is hard to function without our mobile phones. When we move around and switch from environment to environment, our mobile phones need to be optimised and self-adapted. Strip away all the fancy apps, the texting, the 'Snapchats' and the 'Flappy birds'; what is left of your phone? Your phone isn’t a phone at all anymore, it is pretty much a radio. The moment you turn your phone on; it detects, receives, and maintains signal that will leash your “mobile phone” to the network. The network then authenticates the mobile device so it can allow you to send and receive data, calls and other information. These signals affect the way your phone is configured and enforces the need for the device to adapt to the environment you’re in. This is what leads me to extend research in self-adaptation on mobile devices and using an algorithm called Particle Swarm Optimisation to optimise mobile devices.

My Individual Project

While carrying out research on an implementation of a PSO algorithm...

  • I developed it further and extended it so it can allow users to input custom tests for mobile optimisation 
  • I created a user interface in Android Studio so that there’s a platform for the user to get an instinctive feel of the algorithm.
  • As a user, this UI will allow you to enter the names of the services and the utility costs for each service that you would like the algorithm to configure.
  • You then initialise the number of particles you want the algorithm to have, how many iterations it should perform and what the predicted solution and battery level is. The algorithm then takes the costs of your services and the initialisation data, and attempts to find the best runtime configuration for your mobile device to be optimised.

User Interface preview




Why PSO for Mobile Device Optimisation?

  • The algorithm can be used to optimise resources on a mobile device by using the utility cost of the current/running services/apps and their dependencies, dependencies being a resource that the services require such as Wi-Fi or Data.
  • A calculation is then required to work out a new runtime configuration and this calculation can be done by PSO, as it is designed to select the best possible runtime solution based on the resources available.
  • It can also specify the number of iterations taken to find a new runtime configuration

How does it work?

PSO functions by having a swarm of particles that are initialised in a theoretical search space. The particles are characterised by their position and velocity. They are then initialised with random solutions however after each iteration is performed, each particle updates to the current best-found solution, each updating and changing around the strongest particle nearest to the solution. The next iteration happens when all the particles have updated and moved into the space with the strongest particle and repeats until an optimum solution is found. The strength of the particle, also be known as the ‘fitness’ of the particle, can be worked out using a fitness function. This fitness function something I had to modify so that it is relevant to mobile device optimisation. 

About Me

Name: Azhar Islam

Course: BSc (Hons) Computer Science

Project Title: Extension of Swarm Particle algorithm for Mobile Device Optimisation

Email: azhartislam@gmail.com

LinkedIn: https://www.linkedin.com/in/azharul-islam-6288b0a0