Wednesday, December 28, 2005
Archeologists (and some lay) love when ancient writing is found, as it is often a first-person descriptive narrative (even if said narrative is something as mundane as accounting). What if they (the people of the past) knew we (the people of our present) were trying to learn more about them via the keyhole of their societal flotsam? They might have made more of an effort to leave more writing (i.e. descriptive symbols) for us , in whatever form that worked for them. Why should our society be any different? What if there are archeologists or anthropologists of the future that want to know more about us? This is your chance, albeit a small one, to make something that can last generations past the loss of other contemporary records. What would you like the future to know, if your message is the only record that survives? Who you are and that you love your children? Your favourite recipie for Gazpacho soup? The secret to nuclear energy? Your favourite children's story? A dissertation on pi?
Whatever your reason for wanting a long-lived message for the future generations, here's some ideas on how to create the message. It assumes you already have a passing knowledge of anticryptography, mathematics, and some optimization theory.
Create a set of cartouches (i.e. a codec) in a 2D pixel array. The cartouches must be maximally distant and orthoganal from each other, given the number of symbols required to represent your message. This way they will also be the most resistant to pixel damage (i.e. max generalization == max noise tolerance), which is important if you want to extend the readability lifetime of the message on your artifact. You can also do further damage tolerance optimization if you can optimize for the most likely type of damage inflicted on the medium. Is it more likely to be localized damage (like a hammer or rock blow, affecting a small area of pixels) or widespread speckle wear-and-tear damage, affecting the whole surface area to greater or lesser degrees? (Hmmm...I wonder if you can you include CRC bits somehow, or will they break the pattern optimality? Something else to think about.)
Use a pixel array that has been optimized to reduce cartouch size (to save physical space on the artifact), but also to increase the cartouche size so you can uniquely and orthoganally encode as many symbols as possible (up to the maximum number of symbols needed). [The solution to this optimization smells like the same method for solving for the optimal number base. The optimal number base is defined as the point where the product of the number of symbols per digit and the number of digits needed to represent a given number is minimized. I have read that the solution is that the optimal real and integer number bases are be e and 3, respectively. I have not solved this myself, although 3 is chosen as the optimal integer base because it is the closest integer to e. You can also get to the optimal integer base through some heavy heavy math, and i'm just not up for that. It's left as an exercise for anybody who cares.]
Further, you could instead choose the pixel dimensions to encode yet another message (more of an "i'm a message" type of message), like choosing for the two dimensions two primes whose product is some other interesting number; this gives us a signal that repeats on a specific interval (i.e. the period) of the interesting number.
You could optimize the size of the 2D symbols (cartouches) and the number of symbols encodable (maximizing information stored) if the entire message and the anticipated artifact cartouche surface area are available. The set of symbols will maximally adapt their orthoganality (which again, resists pixel damage) to the extra space available for cartouches (given that you must have the minimum needed, since otherwise you could not encode the full message into the space available.) Extra Space is defined as any space on the surface of the artifact that is not encoding a cartouch, but could. (i.e. it is blank)
Now go out there and carve some rocks for the people of the future! Tell them I said "hi". That, and "The room where they keep my bones is kinda drafty; I'd like a fuzzy blanket, thank you very much."
Friday, December 23, 2005
Slide rulers are primitive versions of an algorithm to implement mathematical functions in a visceral computation medium (i.e. you directly manipulate the variables and observe the result from the "wooden calculator" while the calculation is performed). They are effectively pre-calculated lookup tables, where the relative distance between rule marks is an analog/continuous table index, and the value of the numbers (gratuations) read from the rule are the indexed values of that mathematical operation. Cool, heh? Their limitation is accuracy (or rather, lesser accuracy than a modern computer). We can implement computationally intensive mathematical functions in a lookup table - this gets you way faster computation (it's been pre-computed at design time) at the expense of errors from discretization of the function (but you can attempt increasing accuracy if you can afford the lesser computation of order-n interpolation between values) and space to store the table (which is also a mapping of computation from the time dimension into a spatial dimension, btw)
In a modern computer, you can represent any function discretely with maximal accuracy by making a lookup table containing as many indexes as the discrete range of the independent variable (i.e. the index) of the function. That is, let's say you're using a 32 bit integer to represent a continuous irrational function; Representing the irrational function with 32 bits of accuracy can be exactly duplicated by having a 32 bit precomputed hash index. Since you only have 32 bits of accuracy to represent the irrational function, your maximal representational accuracy is exactly the same as a 32 bit lookup table (assuming, of course, that the lookup table indexes 32 bit values. it does not have to be the case, but let's compare merkins with merkins)
Incidentally, this is also the basic algorithm used in Field Programmable Gate Arrays (FPGAs).
Thursday, December 22, 2005
Check out this robot that was designed to give us insight into when dedicated regions of its "brain" are activated while interacting with an identical robot and a mirror. At first I thought this was more blah blah blah, but after thinking about it more, I think they're on to something.
What is self awareness? I humbly suggest it is an ability to represent (and identify with) yourself symbolically when observing yourself as part of your environment (be it physical or mental). How else could you define self awareness but awareness of the self? The robot in question is designed to accomodate representation of itself as unique from others (i.e. it has an internal symbol for itself). I think it can, by definition, be self aware. Of course, this says nothing about motivation, will, emotion, blah blah blah.
That's a pretty big pill to swallow. Are we on the fringe of having to really ponder our responsibilities to an algorithm? What if all the logic (down to the transistor level!) is emulated via look up tables? Does this mean we have responsibilities to look up tables? It sounds crazy, but maybe we do if they're processing the right algorithm information. (hah! the "right" algorithm! now we're algorithmic type self awareness bigots!)
Update: Regardless of what I said above, Gregory Chaintin has an excellent opinion on lookup tables being programs. I think he's right. He said, "for any data there is always a complicated theory, which is a computer program that is the same size as the data. But that doesn't count. It is only a real theory if there is compression, if the program is much smaller than its output, both measured in 0/1 bits." So, if Chaintin is right, then we don't have to worry about having responsibilities to lookup tables. They're the RealDolls of the intelligence world - at a glance they look like the real thing, but they're not. Then again, maybe that's just a justification I would use to keep restraining bolts on my 'droids and my conscience clean. Hard to say. Self knowledge is hardest.
Wednesday, December 21, 2005
The autocorrelation I'm talking about here is in the context of Wide-Sense Stationary (WSS) signals. Just as we can "encode" signals into mediums (e.g. modulate signals on a carrier, like with AM radio), we can modulate the autocorrelative envelope through time of a non-stationary signal using the WSS simpler version. You plan your waveform of the statistical curve over time to represent the data you're encoding. However, because autocorrelation is a non-reversible algorithm it is lossy; information is destroyed; states are hashed into a smaller represented set of states. This means that there are many variant signals you could use to create the needed carrier signal statistics. (Hmmm...I wonder if they're orthoganal. If they are, could you code a hypercube set of symbols (e.g. a grey code) to further encode information into the same signal?) Your bandwidth is limited by how quickly you can sense/decode a shift in the statistics of the carrier, which is exactly the maximum sampling rate to tell us the Nyquist limit of that method of encoding. ...or something like that.
Oh, and no, I didn't use my speaking talent to modulate this audio file with a message hidden in the statistics, ala Aphex Twin. ;-)
Tuesday, December 20, 2005
This is a boring test of the audio blogging system. Don't bother listening unless you are immortal and have time in your life to waste.