Imagine Cup Logo

ALGORITHM - Round 2
Tutorial

Simulator Operation

Here's how the simulator works, and what your algorithm must do.

The simulator presents problems in the forms of networks. In these networks, the nodes represent neurons and the edges represent connections between neurons.

The connections between the nodes have been placed in such a way that the resultant network is similar to the one found in the brain:

  • It is scale-free, meaning that the distribution of node degrees follows a power law. That is, the number of nodes with degree x approximates the curve ax-b for some a and b.
  • It is a small-world network, characterized by clusters of nodes where there are many connections within a cluster but only a few between clusters. This clustering is hierarchical (clusters within clusters).
  • It is a connected network, meaning there is a path (but not necessarily a direct connection) between any pair of nodes.

Within these parameters the connections have been chosen randomly. These characteristics may help you optimize your algorithm.

What your assembly must return is a 3D cube of nodes, ordered in a way to minimize the total distance of connections between the nodes.

  • There must be exactly one node at each (integer) position in the cube. Note that the number of nodes you are given will always be a cubic power to allow for this; for example, you will be given exactly 8 nodes when you are expected to return a 2x2x2 cube.
  • You must ensure that each node is placed in only one location in the cube.
  • Node 0 must be placed at (0, 0, 0). Node N3-1 must be placed at (N-1, N-1, N-1), where N is the length of the side of the cube. This simulates the fact that in the brain, some neurons are tied to inputs and outputs and can not be relocated.
  • The total distance will be calculated using the standard Euclidean distance formula; that is, the distance between points (x0, y0, z0) and (x1, y1, z1) is equal to
((x1 – x0)2 + (y1 – y0)2 + (z1 - z0)2)1/2

It is important that your algorithm work on any network. A number of randomly-generated practice networks have been provided; however, the final test will use a different set of randomly-generated networks (which will not be known in advance). Any algorithm which fails to work on any network will be eliminated from consideration.

Your algorithm must be supplied in the form of a .NET 2.0 assembly which exposes a "OptimizeNetwork" method. The OptimizeNetwork method will be given the current network as an input and must return a 3D cube of node placements. See the SDK documentation for more information on creating your submission.

Example

Say you are given the following network of 8 nodes:

 

A possible placement of the nodes into the 3D cube might be:

 

Which has total length 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1.414 + 1.414 = 11.828.

© Copyright 2005-2006 Wild Noodle. All Rights Reserved. Terms of Use