Kriss Jessop About Me Projects Personal Projects RPGs

AirBnB Preprocessing

Posted on December 19th, 2016

Before I was able to start on the application of Dispersive Flies Optimisation to the AirBnB data, it occured to me that while I could use the information as it was, things would be much simpler further down the line if I was to process the data I needed (namely the amenities field) into fields of their own with boolean 0,1 values, than it would be to parse the amenities field each time a fitness check was performed. It should probably be noted early that DFO is intended for search with high dimensionality, My search is likely only going to use a few dimensions and it’s entirely possible that a more conventional search algorithm would perform better.

GA: Analysis to Implementation

Posted on December 3rd, 2016


Assume that your GA has chromosomes in the following structure:

ch = (g0, g1, g2, g3, g4, g5, g6, g7)

g0-7 can be any digits between zero to nine.
The fitness of each chromosome is calculated using the following formula:

f(ch) = (g0 + g1) – (g2 + g3) + (g4 + g5 ) – (g6 + g7)
BODMAS is a thing…

This problem is a maximisation problem.

In this scenario we initially have a population of four chromosomes as shown below:

Steady State vs Modular Genetic Algorithms

Posted on November 20th, 2016

Once again with definitions and stuff. I’m sure this makes for an absolutely thrilling read. Below we’re talk about the different types of genetic algorithm. Pretty straight forward.

An Introduction to Genetic Algorithms

Posted on November 14th, 2016

Genetic algorithms are a form of evolutionary computation pioneered by one John Henry Holland in 1975. At the time, the main limitation of applying early genetic algorithms was computing power. Because apparently my current computer is like 30,000 times more powerful than my first computer. Yeah…

Fitness Evaluation

Posted on October 29th, 2016

This week on Natural Algorithms: We learn some terminology, Kriss makes a wisecrack and a dog does science!

Okay, so the point here is that we’re looking at different types of fitness functions. We divide the type of function an algorithm uses based on what it returns and how it searches for the result. Notably, a continuous or boolean function can be applied to both a full function search and a partial function search.

Algorithm: Stochastic Diffusion Search

Posted on October 23rd, 2016

Stochastic Diffusion Search is a search algorithm that can take the form of either a neural network or a swarm and attempts an optimal application of resources. The agents scatter randomly across the search area and keep searching random locations until either they or one of their neighbours find a location that they determine to be good. An agent that finds a good location tries to take a neighbour to that location (which will in-turn judge whether it believes the location to be good, or bad, and do the same), while an agent that fails to find a good location will follow a neighbour that has, given the opportunity.

In this post, we’ll be exploring the application of Dispersive Flies Optimisation, as originally pondered in my previous post. Specifically, we’ll discuss applying DFO to AirBnB data, as the AirBnB data is readily available with very little effort. I will be referring to the data provided for London, however all of the available data should be the same.

There are probably loads of ways we can apply DFO to search this information; I’m going to be looking for the best place to stay.

It’s quite curious that at the time of writing, this algorithm doesn’t have so much as a Wikipedia page. Heck, a cursory Google search implies that the individual who came up with it is the very same guy who asked for people to think about it.

Yeah, you! I know you’re out there Mohammad!

Dispersive Flies Optimisation

page1-800px-sphere_function_in_3d-pdfDispersive Flies Optimisation (DFO) is a swarm intelligence algorithm that aims to find the best piece of data in a matrix. How good a piece of data (referred to as an agent) is, is judged by its fitness. An agent contains data, or I suppose metadata, such as a location, among other possible things. The flies are then scattered across various locations within the data and set to finding the optimal location, which is either the lowest possible fitness, or highest.

The No Free Lunch Theorem

Posted on September 29th, 2016

There are two dominant No Free Lunch theorem’s that relate to computing. One is focused towards search and optimisation, while the other is for supervised machine learning.

The Key Point

Eric Cai eloquently describes the No Free Lunch theorem in relation to Machine Learning. He describes the theorem as a series of simplifications and assumptions that apply to a problem and it’s solution. In turn, he also points out that the simplifications and assumptions that work for one problem and it’s solution will not nescessarily work on another problem, thus making the solution ineffective.

The “No Free Lunch” theorem states that there is no one model that works best for every problem

The idea that a solution cannot be picked up and applied to another problem without any work at all is most likely the origin of the name.

The original No Free Lunch Theorems for Optimization paper can be found here, if you’re into that kind of thing.