The Problem
A primary aspect of our world is location. Humanity
has created maps, putting complex networks onto a
two- dimensional sheet of paper, in an attempt to
make traveling between these locations easier. The
map was amazing. A human being was able to look at
the map and quickly discover a route to their
destination. However, was it always the fastest?
Surely, in a small system, a human can deduce the fastest route, as it is normally a straight line with very few turns. However, a human being may fail to discover the fastest route when the system grows more complex. This presents a clear opportunity for a computer – something consistent, precise, and always correct.
Surely, in a small system, a human can deduce the fastest route, as it is normally a straight line with very few turns. However, a human being may fail to discover the fastest route when the system grows more complex. This presents a clear opportunity for a computer – something consistent, precise, and always correct.
The Solution
We've created an original map file system that is
simple and to-the-point. It allows for a unlimited
size, as well as unlimited distance between points.
In short, one vertex can touch a second, through an
edge. This edge has a certain weight. If we were
talking about locations on a map, the points
(vertexes) would be a location, and the weighted
values will be the distance between points.
On top of this infinitely expandable map file system, we've created an incredibly flexible and fast engine.
On top of this infinitely expandable map file system, we've created an incredibly flexible and fast engine.
The Engine
In creating our engine, we considered elegance and
speed to be critical factors. Our program is written
in LISP, as LISP makes it easier to concentrate on
the algorithm instead of on the small semantics that
are embedded in other languages. LISP itself was
developed purely for processing lists, as the name
suggests. The program will need to take in any set of
connected nodes as data, and quickly and reliably
find the best path between the two.
The engine has three primary functions:
The engine has three primary functions:
- Shortest distance: The engine can compute the shortest distance between point A and point B.
- Scheduling: You can find the fastest route passing through any number of specified points.
- Salesman: Find the fastest route to every single point and then back to the starting point.