background preloader

Algorithms

Facebook Twitter

Dijkstra's Algorithm as a Sequence. Graphs are cool.

Dijkstra's Algorithm as a Sequence

After slogging through sorting arrays in the the Coursera Algorithms I class it is nice to implement algorithms that aren’t built into the standard library. They are also much more real world. For example finding the shortest path in Eve Online from NOL-M9 to every system in Delve (visualized above using D3.js). NOTE: You can drag the systems to make sure no lines overlap if that is your thing … it is mine. Two of my favorite quotes from the Joy of Clojure are: As author Rich Hickey himself proclaimed, any new class in general is itself an island; unusable by any existing code written by anyone, anywhere. – Fogus & Houser.

Artificial Intelligence - Particle Swarm Optimization. Particle swarm optimization (PSO) is an artificial intelligence (AI) technique that can be used to find approximate solutions to extremely difficult or impossible numeric maximization and minimization problems.

Artificial Intelligence - Particle Swarm Optimization

The version of PSO I describe in this article was first presented in a 1995 research paper by J. Kennedy and R. Eberhart. PSO is loosely modeled on group behavior, such as bird flocking and fish schooling. The best way for you to get a feel for what PSO is and to see where I’m heading here is to examine Figure 1. The first part of the figure describes a dummy problem being solved by a demonstration PSO program.

Figure 1 Particle Swarm Optimization Demo Run The next part of Figure 1 indicates that the PSO program is using 10 particles and that the program will iterate 1,000 times. The next lines in Figure 1 indicate that each of the 10 particles in the swarm is initialized to a random position. Particles Figure 2 Particle Definition The PSO Algorithm. Test Run - Radial Basis Function Networks for Programmers. Radial basis function (RBF) networks are software systems that have certain similarities to neural networks.

Test Run - Radial Basis Function Networks for Programmers

An RBF network accepts one or more numeric input values, such as (1.0, -2.0, 3.0), and generates one or more numeric output values, such as (4.6535, 9.4926). RBF networks (sometimes called radial nets) can be used to classify data and make predictions. For example, an RBF network could be used to predict the scores of two football teams that are scheduled to play each other, based on historical data such as each team’s current winning percentage, home field advantage (-1.0 or +1.0) and so on.

Or an RBF network could be used to classify a hospital patient’s risk of cancer (low = 0, high = 1) based on the values of medical test results and other factors such as age and sex. In my opinion, RBF networks are among the most fascinating of all machine-learning techniques. Test Run - Radial Basis Function Network Training. A radial basis function (RBF) network is a software system that can classify data and make predictions.

Test Run - Radial Basis Function Network Training

RBF networks have some superficial similarities to neural networks, but are actually quite different. An RBF network accepts one or more numeric inputs and generates one or more numeric outputs. The output values are determined by the input values, plus a set of parameters called the RBF centroids, a set called the RBF widths, a set called the RBF weights and a set called the RBF biases. For simplicity of terminology, the combination of RBF weights and bias values are sometimes collectively referred to as the weights. The context in which the term weights is used usually makes the meaning clear. When using an RBF network for classification and prediction, the challenge is to find a set of values for the centroids, widths, weights and biases so that computed outputs best match a set of known outputs. MSDN Magazine Authors. James McCaffrey New features in .NET 4.5 that make it much easier to work with an effective alternative to Windows Communication Foundation called async socket programming.

MSDN Magazine Authors

James McCaffrey shows how async socket programming works. March 2014 Extracting frequently occurring item-sets from a list of transactions is a surprisingly tricky but useful task. This article explains the Apriori algorithm and presents a complete demo program. January 2014 Following on his previous column in which he explained the details of RBF networks, James McCaffrey now provides practical guidance on implementing RBF network training.

December 2013 The Computer Security Division of the U.S. government's National Institute of Standards and Technology provides resources to protect information systems against cyber threats. Government Special Issue 2013. MSDN Magazine: Natural Algorithms - Use Bee Colony Algorithms to Solve Impossible Problems. Simulated Bee Colony (SBC) algorithms model the behavior of honey bees and can be used to find solutions to difficult or impossible combinatorial problems.

MSDN Magazine: Natural Algorithms - Use Bee Colony Algorithms to Solve Impossible Problems

In this article I’ll explain what exactly SBC algorithms are, describe the types of problems that can be solved using SBC algorithms, and present a complete end-to-end example that uses an SBC algorithm to solve the Traveling Salesman Problem. A good way for you to get a feel for SBC algorithms and see where I’m headed in this article is to examine the demo program shown running in Figure 1. The demo program uses an SBC algorithm to analyze a set of 20 cities (labeled A through T) and find the shortest path that visits every city exactly once.

The city data is artificially constructed so that the best path starts at city A and continues through city T, in order, and the best path has a length of 19.0 units. Figure 1 Simulated Bee Colony Demo This article assumes you have intermediate-level programming skills. About the Bees ...