Hello! I studied Computer Science, now I live in Bath! I write code, design games, and occasionally tweet. Why not subscribe?

Posts about Algorithms

Roulette, An Intelligent Negotiating Agent

Posted January 9, 2018. Agents, Algorithms, Genius, Java, Negotiation. 2179 words.

When making decisions, people negotiate to maximise utility and social welfare - agents are no different. Utilizing the GENIUS framework, this report tests time dependant concessions, and fitness proportionate selection putting them to test in a negotiation competition. The results are analysed and discussed.

  • CSS Concept: Computing methodologies → Intelligent Agents
  • Keywords: Agents, Negotiation, Competition, Selection, Roulette

Continue Reading...

Competing in the NWERC Regionals

Posted November 26, 2017. Algorithms, Competitions, Photos. 17 words.

We came, we saw, we lost. Image courtesy Dorota Filipczuk.

Our teams

Visiting Bloombergs London Headquarters for CodeCon Finals

Posted January 30, 2016. Algorithms, Competitions, Java, Photos. 203 words.

This week I had the pleasure of competing in the CodeCon Grand finals at Bloombergs London headquarters. While unfortunately I didn’t do that well, visiting the headquarters and exploring London was great fun. I didn’t take any pictures inside the event, I thought I would share a few photos taken on during my trip.

Museum of London

The day after the competition, I left the hotel and set of through the city. The Museum of London was nearby, so I checked it out. While there it started raining and a rainbow appeared.

St. Pauls Cathedral

Then, a quick walk lead me to St. Pauls.

Panorama 1

Panorama 2

While, crossing the Millennium Bridge I took two panoramas of the Thames. Unfortunately the day was overcast, and so the pictures are rather gray.

Tate Modern

Finally ending my trip inside the Tate Modern where I saw Abraham Cruzvillegas Empty Lot filling the Turbine room.

Finally, it was time to return home, heading back to Waterloo I boarded a train to Southampton. My day was over.

Solving Block World Search

Posted November 26, 2015. Algorithms, Java, University. 1866 words.

Block world is a simple 2D sliding puzzle game taking place on a finite rectangular grid. You manipulate the world by swapping an agent (In this case the character: ☺) with an adjacent tile. There are up to 4 possible moves that can be taken from any tile. As you can imagine, with plain tree search the problem quickly scales to impossibility for each of the blind searches.

It is very similar to the 8/15 puzzles, just with fewer pieces, meaning it’s simpler for the algorithms to solve. It’s unlikely any of my blind searches could solve a well shuffled tile puzzle with unique pieces, but I suspect my A* algorithm could. However, before doing so I would want to spend time improving my Manhattan distance heuristic, so it gave more accurate results over a larger range.

I decided to use Java to solve this problem, as I’m familiar with it and it has a rich standard library containing Queue, Stack, and PriorityQueue. These collections are vital to implementing the 4 search methods. You can implement the different searches differently, but the data structures I listed just deal with everything for you.

Continue Reading...

StatCounter Pixel