## Hyperassociative Map

### From Syncleus Wiki

dANN Information
General
Description An Artificial Intelligence Library written in Java.
Last Activity Today
Homepage dANN
Distributions 2.1
Documentation Documentation Snapshot
Development http://gerrit.syncleus.com/dANN
JIRA Bug Tracking
Sonar Technical Debt
Support
IRC Room #dANN on irc.freenode.org
Mailing Lists Directory of Mailing Lists

A Hyperassociative Map is a new type of algorithm that organizes an arbitrary graph of interconnected nodes according to its associations to other nodes. Once a new Hyperassociative Map has been associated and aligned, nodes that are most closely associated will be closest to each other. This can be used to determine how similarly associated two nodes are to each other. Since the algorithm does not depend on the immediate neighbors of a node, similarity will still be matched even when such similarity exists several degrees of separation from the nodes.

## Practical Example

In case you are still not following, we will provide a few examples of how you might want to use a Hyperassociative Map. One possible dataset would be the various topics (pages) represented in Wikipedia. One could represent Wikipedia as a Hyperassociative Map where each topic/page is a node in the map and each link from one topic to another would be an association between their respective nodes in the map. Once this is entered into a Hyperassociative Map and then aligned, it would be possible to calculate the similarity between two topics as well as see how well covered a particular category of topics is covered. For example, the topic regarding dolphins and whales would be relatively close on the Hyperassociative Map; the nodes for dolphins and spiders would be slightly farther away; the nodes for dolphins and helicopters would be on opposite sides of the map. Similarly all the nodes on wildlife would be clustered in the same general region of the map and all the nodes on aircraft would also be clustered in its own region of the map. In this way, one can quantify the similarity of the various nodes as well as how well covered the various topic categories are.

## Underlying Algorithm

At this point, you should have a good understanding of what a Hyperassociative Map is and the kind of problems it can be used for. We want to explain now exactly it works, specifically, how the map aligns itself.

The algorithm is based on the idea of repulsive and attractive forces between nodes. These forces are designed so that over time the various nodes reach an equilibrium as they settle into their final positions. The forces between nodes are different depending on if the two nodes are associated or unassociated.

Unlike other force-based algorithms, like the spring algorithm, no kinetic energy is retained between steps. The forces are applied for each step, new positions of each node are calculated but the kinetic force is not retained between steps. This means the nodes have no apparent momentum, which allows them to settle to their equilibrium point without oscillation.

### Unassociated Nodes

Unassociated nodes always exert a repulsive force against each other as an inverse square of their distance; the farther two nodes are from each other the weaker the repulsive force will be on an exponential scale. The formula for calculating the repulsive force between two unassociated nodes is as follows:

$\frac {-1}{x^{2}}$
where:
x = Distance between nodes

### Associated Nodes

Associated nodes exert a combination of repulsive and attractive forces amongst one another, depending on whether they are farther or closer than the equilibrium distance. This is done such that the nodes always want to try to reach their equilibrium distance.

If two nodes are closer together than the equilibrium distance, then they exhibit a repulsive force against each other according to the arc hyperbolic tangent. In other words, the repulsive force approaches infinity as the distance between nodes approaches 0 and the repulsive force approaches 0 as the distance approaches the equilibrium distance.

If two nodes are farther apart than the equilibrium distance, then they exert an attractive force on each other which is the square of their distance past the equilibrium distance. In other words, the attraction gets stronger the farther away two nodes are on an exponential scale.

The function defining the force between two associated nodes can be represented by the following equation: $\begin{cases}-1*atanh({\frac {E-|x|}{E}}),&{\mbox{if }}x{\mbox{ is less than }}E\\(|x|-E)^{2},&{\mbox{else }}\end{cases}$
Where:
E = Equilibrium distance
x = Distance between nodes

## Screenshots

Here are some screenshots of the Hyperassociative Map after it has finished aligning for various problem sets: