Fri, 13 Apr 2007

> Great stuff, as usual. I wouldn't make all the initial IDs random.
> Reason: you can e.g. set the MAC from a WGS84 GPS position fix
> (about /m^2 Earth surface resolution, IIRC). Ideally, the ID
> should be a real 3d coordinate, of course.

(Eugen, has Kragen seen your grasscoding stuff yet?)

I've been handwaving geometrically*, but haven't yet had the chance to  
attempt coding any of the following.

a/ given a fixed mesh, maybe it'd be easier to just derive coordinates  
 from the edges.  let the minimal nodes in each dimension assign themselves  
0 coordinates, and propagate from there.

b/ on a random mesh, one could establish axes with initial random seeds:  
let the line between the global minimum and global maximum be the first  
axis, oriented appropriately, and choose the orientation of the second  
(perpendicular to the first) based on some comparison between the two  
sides.

now to where it gets really handwavy:

c/ choose random IDs so they should show up on the surface of a sphere (3d  
magnitude 1, say) -- then anneal by looking for violations of the triangle  
inequality.  does this converge to global quasi-gridlike coordinates, or  
does one wind up with a bunch of small gridlike grains that flip and  
reflip at the edges?

d/ a topological approach: establish 1D of addressing on the edge nodes,  
then propagate inwards to get something vaguely polar.  not so good if  
there are interior holes, nor if one wishes to extend to 3d.

-Dave

:: :: ::

* directionality is supposed to be difficult with radio, but I'm assuming  
that a small phased array would allow both a rough estimate of metric  
relation and improved performance during data transfer -- this assumption  
is pretty lousy for mobile applications.

> There's more to the ID encoding, you have to minimize
> the amount of bits flipping for nodes in circular orbits
> (anything moving on Earth surface also applies).

which explains some (the non-temporal aspects, anyway) of your interest in  
Gray coding...