Wednesday, December 31, 2008

One Bit Manipulation - A Reduced Instruction Set Computer

The esoteric computer programming language, brainfuck, a reduced instruction set language and slight variation of p prime prime, uses a set of only eight instructions to perform universal computation. In otherwords, it can perform operations equivalent in complexity to any other computer, regardless of the fact that most modern processors use instruction sets consisting of several thousands of commands. Brainfuck uses basic operations to control both it's program counter and it's one and only memory pointer. By moving the memory and program pointers back and forth and incrementing and decrementing the values contained within up and down with conditional control, the limited language is capable of solving any algorithmically expressable problem. The 8 instructions are:
+ (increment value at pointer)
- (decrement value at pointer)
> (move pointer right)
< (move pointer left)
[ (jump forward to the matcing "]" *they can be nested if value at pointer is zero
] (jump backward to the command after the matching "[" if the value at the pointer is non zero
. (output the value at the pointer)
, (accept an input and store it in the location pointed to by the pointer)

Although this set may seem already maximally reduced, it can be decreased further! Firstly, the input and output commands are completely unnecessary. They simply provide a convenient method of transfering data between the processor and the external world. Other methods exists, such as memory mapping, and because of this, they can be eliminated.

On top of that, the brainfuck language assumes that the registers comprising the memory locations are 8 bit, however 8 bit wide registers are not necessary and reducing them to the logical extreme of only one bit allows for the + and - commands to be reduced to a single instruction. Since incrementing or decrementing a 1 bit value simple reverses the current value, for example ones turns to zeros and a zeros turns to ones, only one command is necessary and so for purposes of this article we can express it as "x", meaning to flip the current bit.

With this modified language, constructed from only 5 opcodes, one can create an even less efficient way of solving any problem. Is it possible to reduce the instruction set even further? Actually, surprisingly, the answer is yes. By the inclusions of more complicated internal architecture and addition of parameter based operations, the instruction set can be reduced to only one instruction. This impractical system doesn't do much more than to illustrate the methods by which a single instruction computer can work, however, it greatly reduces the quantity of transistors required to fabricate the processor and assuming that one day transistor switching times are reduced sufficiently, it could very well become cost effective.

Superior Digital Design

The design of the impossible is now in your hands. Allow us to professionally and affordably develop your advanced electronic computerized super invention. We offer software development, microcontroller programming, digital electronic circuit design, high power electronic controllers, artificial intelligences, and just about anything else. Designs for $300, if they're simple. You may never know if you don't request a free quote.

Monday, December 29, 2008

Genetic Error Correction Mechanism

What I've learned, through experimentation with open ended evolution by computer simulation, is that evolution will take a random path towards no particular goal as long as reproduction remains successful. If, however, there is an added parameter to maintaining survival, a particular evolutionary response (linear on average) will result. In extraordinarily simple self replicating machines, the process is nearly immediate, since it is necessary, but in more advanced systems, there is a great deal of redundancy and seemingly dormant code can "reactivate" to allow the organism to persevere. Also, interestingly, it is very common for complementary pairs of "genetic" code to form which each disallows the other from mutating. It is only when both of these is coincidentally mutated in the correct way that either of them can be changed successfully. This is a very natural, very common process, which acts as an error correcting mechanism very similar to that of a checksum.

Of course in my experiments there is no actual genetic code, meaning there is no DNA, however there is a code and that code is capable of mutation. I assume that essentially the natural laws of evolution and processes of natural selection can be governed by a universal mathematical description and for any system, regardless of material composition, the same will apply.

I'd like to hear from people about this, if anyone has had similar results with experiments. Also, if there are any readers out there that would like to take advantage of some of my source code for the universal open ended evolver please leave me a message. Thanks!

Persistance of Vision

Interesting, low part count, relatively simple devices, called Persistence of Vision displays, utilize the exceptionally slow response time of the retina to optical variations. Exploiting these effects make it possible to build a graphical matrix display with far fewer light emitting pixels than one might first intuitively expect. For example, this first picture illustrates my attempt of a hand built rotating POV clock without the need of any specialty machining tools. Using only seven LEDs, a 0.1 Horse power AC electric motor, 16Mhz microcontroller, and a solidly constructed aluminum frame, a virtual seven by 120 pixel display appears to come into existance. Electric power is supplied to the rotating circuit board by an isulated rotary contact and spring brush. The motor's rotor provides the necessary grounding connection and reduces the otherwise increase in friction that would result with a second brush. Alternative methods for supplying power to the board are numerous and probably would result in a quieter, longer lived design. Of these variations, the the simplest, quietest, and possibly least electrically efficient is to use an air core resonant transformer. This method consists of a primary coil mounted stationary to the motor which induces an electromagnetic field upon a secondary coil which travels with the rotating display platform providing a contactless power bridge to the control circuitry.

Since the display contains only minimal LEDs and weight is a factor, resolution can be improved simply by a faster control circuit and finer pitched bulbs. With LEDs spaced closer together and with the ability to control them more precisely, the designer can create images with better quality without resorting to spending extra money. Some have taken this concept to the extreme and produced full HD quality video using only about a 1000 emitters. Since rotation speed directly affects picture quality, it is important to minimize system components and mass. An aerodynamic design or placing the device in a vacuumed chamber can greatly improve refresh rates.

Rather than rotating the light source, a specially angled type mirror can be used to automatically reflect the light source into scanning rows upon a projection screen. The motor simply spins this 7 sided cylindrical mirror (each side having a slightly different tilt). When a stationary mounted laser is bounced off the rotating mirror a raster pattern is produced on the screen. By keeping track of rotational indexes and other timing information, a processor can determine whether to turn the laser on or off at extremely high speeds. The end result is the stable illusion of an image on the wall.

A still better approach is to use a flat mirror on a double axis, spring suspended mount. Electromagnets can force the mirror into a scanning pattern where rows are generated more often than columns. Very similar to a television's electron beam control, but far superior in its ability to project images beyond a vacuum chamber and zero requirement for a phosphorescent doped screen, a mechanically scanned laser projector can generate images of any size, with any resolution, and is only limited by the intensity of the laser's beam and the reaction speed of the electronics.

Atomic Time Receiver Circuit - Break Out Module

This is the CMMR - 6P - 60 receiver module. With minimal external hookups like power, and ground, and that's about it... this module forms a complete system for acquiring and digitizing the 60khz atomic clock radio broadcast from Colorado. By connecting its single digital output into a microcontroller and orienting the ferrite core antenna in the direction of the transmitter, the user can immediately take advantage of ultra precise official world time. Assuming you also know your exact location, the timing information retrieved could even be compensated for the fact that light travel is not instantaneous. The information contained within the signal encodes, either directly or indirectly, hours, minutes, seconds, month, day, and year. As well as, daylight savings time mode, leap year, and leap second. The time specified is in GMT (Greenwich Mean Time) Since the decoding of the timing pulses and time formatting may be difficult for those with limited experience, we offer a small module to supplement the features lacking within the CMMR and automatically handles resynchronization, error correction (since nearby electronics easily overcast the Colorado radio station), and power saving. Our module is microprocessor controlled and can easily interface with new and existing designs through a three wire interface. Unlike the CMMR by itself, the microcontroller controlled module assembly automatically decodes day of year into week, month, and day of week, eliminating the user's need to calculate this or use a lookup table. The picture to the right represents a simple clock based around the module. Upon power up, the system immediatelyy synchronizes the clock and periodically rechecks to prevent the possible drift of precision, since the US atomic clock is many orders of magnitude more precise than a typical quartz crystal.

Received Atomic Time from Colorado, United States version

Friday, December 26, 2008

A Game of Life, Multicored, Ultra Processor

Conway's Game of Life, a system where each cell's value depends on both it's current state and it's neighbors, is the most popular cellular automaton ever created. It has been mathematically proven to be capable of universality, meaning basically within the rules of the game, any algorithmic process can be simulated and solved, given enough time and space. As the dimensions of the grid expand, conventional linear computers (like a desktop) have difficulties evaluating successive time steps within a reasonable amount of time. A possible solution to this problem is to create linkable hardware based modules, each with their own processor, which when combined could process exceedingly complicated scenarios. Given enough space, one could simulate entire computer systems or even neural networks like the human brain. Packed with a high enough density, a cellular automata based system could conceivably act as the ultimate multicored computer, literally consisting of possibly millions of individual processors. Unlike convention computer designs, there is no centralized instruction decoder in a CA based processor, nor any centralized memory. If one module malfunctions, the rest of the system will continue to run. Larger assemblies of modules would directly lead to more computing power and would be limited only by propagation delays in communication between modules. Trivial modular Game of Life circuit boards are readily available from various sites. These forms were only intended as a graphical excitement - something to be attached to a wall as a decoration. While primitive, they properly illustrate the essential concept of the idea. Lacking high refresh rates and being extraordinarily large and expensive for the computing power they could provide, one would have difficulties attempting to compile these devices into a working virtual world. In our laboratories, here at Nova Conceptions, we are working on high density / high speed versions which could form the basis of a multicored network of super processors, as well as the most awesome rendering of a graphical Game of Life simulation ever performed. I will post results as events progress.

Saturday, December 20, 2008

An Infinite Regression - Thoughts About Existance

Imagine the universe to be non continuous and the calculus to represent only an

approximation. Space and time are discrete units which have a lower limit in size and can assume only a finite set of properties and be arranged in a numerable set of possibilities. In this mindset the cosmos is a cellular automaton where the future is computable and the laws of physics are exactly determinable. Of course these ideas are controversial and there are discrepancies with many of the interpretations of quantum physics. Many experiments

seemingly clearly reveal the hidden variable theories to be inadequate explanations and belong in the realm of metaphysics – that which attempts to explain why physics is the way it is, w

hich may be an indeterminable. However, it is obvious by analogy that the universe very well could operate as a cellular automaton and whether or not this idea is provable, many interesting correlations can be extracted, including possible reasons why we may never know.

The Game of Life, a simple two dimensional cellular automaton which exhibits complex interactions and has been shown to be capable of universal computation has many similarities to our own world. Various types of machines can assembled within this cellular automaton, such as gliders, which are so common, they are naturally occurring within the system. Other machines

are sufficiently complicated that a natural origin for their existence could only be reasonably explained by evolution or, in the far more common case they are preprogrammed by the humans running the simulation, such as a complete universal computer. Since a computer is a machine

which can emulate any other algorithmic solving machine, it is as powerful as any other computer, at least in terms of computability. However probable or not, our universe may be being emulated through a computer built within a cellular automaton operating by The Game of Life rule set.

It is important to realize any implication for the specialness of the Game of Life is non existent and it was only used as an example. A cellular automaton of any number of dimensions, which is capable of performing universal computation, is capable of emulating another system which could be our universe. This means that physical laws around us are not necessarily meaningful in describing the true mechanism used to process this univer

se. In fact, the nested depth of emulation could be infinite, meaning essentially there could be no beginning to the process. This approach requires no confrontation to the question of what ultimately began existence, it would simply be the product of an infinitely long series of simulations. This doesn't mean we are not real. The term has little meaning at all, since reality seems to consist of information alone.

With sufficient computer power it would be possible in principle to simulate another universe, most likely smaller than our own but not necessarily, which could give rise to self aware lifeforms which may ponder over their own existence, completely oblivious that they are being watched on a computer screen. As in most cellular automata, the mechanisms, or laws of physics, may not allow information passing between the simulation and the simulator. Those within the simulation would have no knowledge of the higher realm and nothing they could ever do or build could allow them access unless a process for doing so was explicitly part of the rules.

Examples of naturally occurring cellular automata have been found on Earth in certain types of crystals, the color patterns of animals, and the finger prints on our hands.

Although we may be a simulation within yet another simulation, it is not necessary to assume that these simulations were designed with purpose by an intelligent entity, although either view is plausible. In my opinion the universe is probably naturally occurring, is part of an infinite chain of other simulations, and is a direct example of a specific cellular automata rather than a program being evaluated linearly on a universal computer. If this is the case, a systematic search for our universe's rule set could be done and once found, would be of great importance to our understanding of what is and is not physically possible. Keep in mind however, that the stability of the physics we see around us is not a guaranty. There is no way of knowing if rules can be modified, either globally or locally. The quest for understanding is an infinite journey, keep your mind open.

Wednesday, December 17, 2008

Maximal Esotericism

Redundancy is an important aspect of any code which has intentions of evolving through natural selection. Imagine a program, for example, which performs a certain task such as generating a sequence of prime numbers. If such a program were written to be as small or efficient as possible, it is highly probable that any modification made to a single instruction would cause the system to malfunction and no prime numbers would be generated. Since evolution depends on the accumulation of beneficial random mutations of a program, the program must at least be partially tolerant of changes.

A simple solution to this problem is to construct the initial program in a reduced instruction set environment, such as the OISC. Having only a single parameter based command, this one instruction set computer has no need for explicit coding of the opcodes and programs can become extraordinarily long even to achieve relatively simple tasks. To move data from one register to another, a very important and commonly used operation which is typically executed in a single instruction cycle, requires four instruction cycles in OISC using the subtract-and-branch-if conditional statement. See the example below.

MOV a, b ==
subleq b, b
subleq a, Z
subleq Z, b
subleq Z, Z

With simple instructions being expanded in this way, the program as a whole has a greater toleration of occasional mutation and is now ready to perform a massive evolution attempt. A simple Tetris playing artificial intelligence, written in OISC, provides an interesting experiment. First, several thousand slightly different versions of the AI are automatically synthesized by a mutation algorithm. Obviously, a very large number of these different version will be malformed and will not succeed in playing the game. However, occasionally, some of these variants will have acquired an advantage and will out perform their cousins. A simple scoring procedure can be written to evaluate the effectiveness of different AIs and only allow those which perform better to make it to the next generation. The cycle repeats when those which succeed are then selected for mutation of several thousand new variants, each with different mutations. Eventually a high performance Tetris solving algorithm will emerge. The system as a whole can continue to evolve and seemingly learn to play better and better. With accumulation of millions of mutations the final result will be something completely alien to the original human generated algorithm. It may develop intelligence and even self awareness, anything it needs to play the game.

Human Body Fuel Efficiency

I am often asked personal questions regarding my performance as a human being. "What is your peak metabolic rate?", they ask... which happens to be 0.39 kilocalories per second or 2.2 Horsepower. Needless to say, I have difficulties maintaining this power level, I only consume between 5,500 and 7,000 Calories per day and am adversely affected by lactic acid accumulation.
With an energy storage capacity of approximately 115 kilowatt hours (or 28,000 1.5V AA batteries) and the complete lack of the sensation of pain, I potentially could traverse a distance of nearly 600 miles when fully charged and to top it off, I could achieve this with the equivalent efficiency of 190.4 miles / gallon (unleaded gasoline).

Saturday, October 25, 2008

Life at the Speed of Light

In the blink of an eye our lives will change. Our minds will effortlessly expend 35 joules of energy and electrochemically evaluate 33 trillion thoughts. We will seemingly aimlessly be propelled 65,000 miles into the future. For the vast majority of the population, there is no looking back.
We find patterns in the past and make sense of the previous. The future is distant and cannot be understood until it has arrived. The lives that surround us and interact with us have a greater impact than we can ever know.

Wednesday, October 22, 2008

How to Make the Best Pizza in the World - In 24 Hours

If you're here to learn the secret, then welcome to my guide for ultimate pizza construction. If you are here by mistake or do not desire to possess the necessary magic, then please read no further. Perhaps you'd prefer to read one of my other life changing pieces of insight.
To begin, one must first develop the succulent sauce - chefs get ready for this - which consists of a combination of unusual ingredients as well as a more conventional tomato base. Red cayenne peppers, which chromologically match the tomato, as well as add excessive amounts of heat, provide cohesion to the otherwise unstable basic ingredients. The end result is a sauce with a scoville rating of nearly 45,000 and a perfectly balanced mouthwatering masterpiece.
Now what? This is where I highly recommend a divergence from each of my readers. Toppings are not the key to omnipotence. However, if you prefer my opinion, use marinated grilled chicken with sliced green bell peppers and jalapenos. If you are beginning your journey with raw material, be sure to allow the chicken to properly rise above its freezing point and do not allow bacterial contamination between the ingredients, unless pasteurization processes are performed.
Next, the dough! I used a tube of pre-packaged pizza dough, simply because I did not have flour at the time and my attempts to make flour from backyard grass seed were severely inefficient and time consuming. Follow the instructions on the packaging to prepare the dough in the oven. Once it has reached a certain temperature the ingredients can be installed. From dough to surface the correct order of assembly is as follows: sauce, cheese, chicken, all other toppings, more cheese. And... that's it! Place the configured pizza into an oven and just sit back and relax, in a few minutes you too can exclaim, "I've made the best pizza in the world!"

Tuesday, October 21, 2008

Artificial Ribosome

Ribosomes are structures within biological cells that perform protein biosynthesis, basically meaning they assemble proteins from simpler molecules. Remarkably they assemble proteins specified by the instruction of the DNA. With that said, ribosomes are essentially a type of universal constructor. Through many direct and indirect processes they ultimately build the entire cell and are capable of replicating themselves. The Von Neumann type universal constructors are simulations of the concept, executed on a cellular automaton, and are capable of demonstrating replication and open-ended evolution. Currently such abstractions are somewhat over simplified and do not have sufficient redundancy built in for natural selection to have a high chance for success, although it is possible.
A model I am working on is a real-world machine consisting only of plastics and using sunlight and water as dependencies. The core of the machine is a universal constructor and a turing-complete pneumatic processor which reads it's instructions off plastic punch cards. The system is a photosynthetic hybrid, meaning it uses the sun's energy as it's primary power source, but could theoretically also use chemical energies (such as plastics - hydrocarbons). The machine would capture radiant energy from the sun and focus it using polished plastic lenses. Operation at night would be made possible by boiling water to run a steam piston and compressing air in plastic cylinders. By use of the the machine's universal constructor and an elaborate series of holes in the plastic sheet "punch card" memory, the artificial life form would be able to gather raw materials, machine and mold them into parts, assemble them, and ultimately reproduce itself, all while maintaining homeostasis.
The act of replication would not be flawless however, since the air powered plastic computer would intentionally be lacking cyclic redundancy checks and other error correction mechanisms, as well as being partially analog based. During each replication stage, assuming that the organism was in fact successful, there would be a possibility of a replication error, or a copying error when attempting to duplicate the punch card memory. Errors could manifest themselves in numerous ways, such as having a direct advantage or disadvantage over the success of subsequent generations. More commonly, errors would most likely remain dormant or have no immediate effect until certain circumstances arose. The accumulation of errors over time would eventually lead to a totally different set of instruction on the punch card. Since the punch card would directly control both the machine's function and construction blueprints, open ended evolution would occur. Over time the system may even eliminate the need for punch cards, air powered pistons, and plastic construction, and develop magnetic storage devices, a titanium alloy frame, and nuclear powered reactor cores. Possibly even more amazingly the system could evolve into a form indestiguishable from the world's current biological life.
It is unclear whether life can spontaneously arise from anything other than carbon, or at least whether or not this has a probable chance of ever occuring. Undoubtedly, life can be artificially constructed from a myriad of materials. These alternative versions of life could be considered secondary lifeforms, since their existance may depend on the intentional construction by an already existing being.

Grass Flour

I wanted a pizza, so I gathered the ingredients and after realizing I had no flour to make the dough, I considered my options. I was too tired to go to the store, and if I went out it would be easier to simply stop at a restaurant.Using past experiences as a guide I checked my back yard window, just to see what was out there. Sure enough the grass was very long and was starting to generate seeds, I hadn't been home in months, fortunately. I grabbed several hundred stalks of grass and shook them violently over a collecting cylinder. Nearly a million seeds detached and willingly fell into the container. I had acquired my raw material!Since the seeds were still too fresh I laid them out in a uniform pattern on a flat service and baked them in an oven, set to 275 degrees F, for 8 hours. It worked! The house was filled with the aroma of freshly baked grass seed, similar to that of oats. Once they were finished cooling they made there way down into my hand driven mill machine and were disintegrated into a light brown powder visually indistinguishable from that of whole wheat. I've yet to incorporate this ingredient into my dough. The entire process took too long and I'm unsure if it is toxic.

Sunday, October 19, 2008

Algorithm Optimization with Open Ended Evolution

I've completed a simple machine capable of open ended evolution. The system produces great complexity and functionality from initially non functional sub units. The code, analogous to information stored in DNA in biological lifeforms, fully defines the construction of the simple, Turing machine like assembler, which in turn determines the behavior of the automaton. A sufficient dose of random mutation per generation has the potential to drive an artificially induced "natural selection" process which when guided with purpose, causes the machine to adapt. These adaptations can either be an increase or decrease in overall complexity but nonetheless cause the system to be more suited for its environment. In a very abstract version of the experiment, I have "guided" the system to evolve from a machine which outputs meaningless numbers, into a machine optimized for generating sequential lists of prime numbers. My current future intentions are to expand this simple adaptive concept and combine it with simple pattern recognition algorithms (which themselves will be capable of limitless evolution) to create a demonstration for a high reliability, high accuracy path-finding algorithm which would have the potential to be used in applications such as automated automobiles and robotics.