Monthly Archives: October 2013

Turn taking in human-computer dialogue

Turn-taking has had a brief moment in the press recently with the news that marmosets ‘take turns in conversation’.  A blog post on the topic at National Geographic led me to a 2009 paper which examined turn-taking behaviour across 10 different … Continue reading

Posted in Machine Learning, Technology | Tagged , , , | Leave a comment

The Knapsack Problem and Dynamic Programming

The knapsack problem is a key one in computer science, and has received a lot of attention over the years. The goal is to best fill a bag of capacity Mkg with items {1..N} that each have a weight and … Continue reading

Posted in Technology | Tagged , , | Leave a comment

Dynamic programming for alignment

Dynamic programming is a technique that breaks a larger problem down into smaller sub-problems, solves those and caches the answers.  In this way, solving the larger problem is more computationally efficient than a naive brute-force approach which tries all possible … Continue reading

Posted in Technology | Tagged , , , | 1 Comment

Graphs

A graph is a fundamental data structure that’s really useful for lots of different applications. It is a set of nodes with edges joining them; the edges may be directed or undirected. Examples of directed graphs are transport networks (e.g. … Continue reading

Posted in Technology | Tagged , , , , | Leave a comment

Computational complexity and polynomial time

A key concept in computer science is computational complexity.  That is, how the time taken to run an algorithm changes with the size of the input.  Sorting a 100-dimensional array is obviously faster than sorting a 1,000,000-dimensional array, but how … Continue reading

Posted in Technology | Tagged , , , , , , | Leave a comment

Divide-and-conquer sorting algorithms

Previously, I wrote about the simple sorting algorithms which have a computational complexity of O(n2). Better sort algorithms exist, and the particular class of divide-and-conquer algorithms are interesting in this era of big data as they lend themselves well to … Continue reading

Posted in Technology | Tagged , , , , , , , | Leave a comment

Simple sorting algorithms

If, like me, you studied some computer science at university, you were once intimately familiar with a number of sorting algorithms. But now the exact details are a bit fuzzy, and all that remains of that knowledge is a voice … Continue reading

Posted in Technology | Tagged , , , , , | 1 Comment