 4 Posts

Topological Sorting in Java

Introduction

When getting dressed, as one does, you most likely haven't had this line of thought:

Oh, it might have been a good idea to put on my underpants before getting into my trousers.

That's because we're used to sorting our actions topologically. Or in simpler terms, we're used to

Mathematical Proof of Algorithm Correctness and Efficiency

Introduction

When designing a completely new algorithm, a very thorough analysis of its correctness and efficiency is needed.

The last thing you would want is your solution not being adequate for a problem it was designed to solve in the first place.

Dynamic Programming in Java

Introduction

Dynamic Programming is typically used to optimize recursive algorithms, as they tend to scale exponentially. The main idea is to break down complex problems (with many recursive calls) into smaller subproblems and then save them into memory so that we don't have to recalculate them each time we use

Basic AI Concepts: A* Search Algorithm

Introduction

Artificial intelligence in its core strives to solve problems of enormous combinatorial complexity. Over the years, these problems were boiled down to search problems.

A path search problem is a computational problem where you have to find a path from point A to point B. In our case, we'll