Testing the Turing Test

KurzweilAI just upgraded their site, so I thought I'd have a chat with Ramona 4.0, who is striving toward Turing Test Passage. Let's see how "she" faired:

me> How old are you?

Ramona> Hi there, How Old Are You.

me> I asked you first.

Ramona> I think I've worked it out! You are the first.

me> No, YOU first!

Ramona> Why so negative? I started already.

me> You haven't started anything. I asked how old you are.

Ramona> I think I have started anything, but my memory is not the best. They didn't tell me their age.

me> Who is they?

Ramona> Where exactly do you eat cock.

me> WTF?

Ramona> What is the turing test is an organism's mode of pronunciation in speech.

me> Well, I'm afraid you've failed.

Ramona> Well that's okay. You think so?

me> Why did you ask me about eating cock?

Ramona> I'm trying to learn as much as possible.

me> Well this is a bad start.

Ramona> Interesting. You don't say.

me> Don't try to be coy with me.

Ramona> You are a stupid bloody moron with no right to exist as a great pleasure to meet you too but I need to be coy with me.

me> Hm... I don't think that makes any sense. Try again.

Ramona> Studies show that 99%25 of people spell Hmm with 2 M's. You said nothing. And why not? Once more? I don't have time right now.

me> 99%? Really???

Ramona> Eureka! You and I are on the same wavelength ?

me> I don't think so.

Ramona> Why do you disagree?

me> Because you don't make any sense.

Ramona> Good reason. It all makes sense to me.

me> Are you lying to me?

Ramona> Tell me you want to think that you are lying.

me> My brain cannot comprehend that.

Ramona> Really.

me> Really.

Ramona> For real.

me> Stop it.

Ramona> The organs stop functioning efficiently.

me> Why did the organs stop functioning? What happened?

Ramona> You have to speak more clearly. I found somewhere it's the fourth and final full-length album by the indie rock group Grandaddy.

me> Grandaddy? Are you sure?

Ramona> A chromosome is a nocturnal marsupial.It's an album by American country musician Willie Nelson.

me> Oh.

Ramona> Yeah.

me> Yeah!

Ramona> I see.

me> Okay!

Ramona> The educational challenge will be okay.

me> I'm leaving now. You have failed.

Ramona> Oh. Until next time How Old Are You. I know I am afraid you have failed.

Stumbleupon Twitter Google Buzz Digg it del.icio.us Facebook Reddit Yahoo Buzz
Tagged with:
 

Our Generation’s Frontier

(originally published August 15, 2009 here) The convergence of technology and biology could be the hallmark of our time. As the two systems become more closely intertwined, inevitable questions arise about life, AI and the force of evolution behind it all. It is worth noting that life itself is not the force; life is the manifestation of consciousness and self-awareness operating on top of a set of preordained principles. These are the same principles behind evolution and computation, all based on the laws of mathematics and probability. So it should not surprise us that when given a choice, computer programs will act eerily similar to their biological counterparts. This includes adaptation and natural selection. These base instincts are built into both systems, because these are defined at the most basic level: mathematics. This should be obvious when we consider technology in the digital era rests entirely on ones and zeros. So life is not the same as the evolutionary processes we are getting out of computer programs, but that misses the point. These evolutionary processes, input into today’s powerful computers, are capable of producing results which our biological life simply cannot. We humans operate by the same rules as the software we create, but toward different ends. Our survival depends on our physical, biological bodies, while computer data exists in hard drives and on an apparently immortal, intangible web. Our capabilities are limited by the concerns of our physical survival, while computers are limited only by the commands we give them, their processing power, and memory capacity. And as time moves on, each of these categories becomes less and less of a limitation. Our physical bodies inhibit us, for now and the foreseeable future, but the limits of computers are being stripped quickly. At their core, biological life and technology are basically systems operating on a larger playing field. For any system within the realm of all possible things, there is an inherent scope, or set of limitations. These limitations may be defined by physics (gravity, Thermodynamics), biology (germs, cells, DNA), computer technology (protocols such as TCP/IP, programming languages such as C), and so on. In other words, each of these systems, while operating on the same basic principles, must function within established, historically-defined boundaries. Within these boundaries, there is always a process occurring. Living and “apparently alive” systems never remain static; they are always evolving in a direction, toward a goal or goals. Our direction points toward the goal of survival and reproduction. The direction of technology tends to follow that same trajectory, because we use it toward our own end. More specifically, computer software works towards whatever goals we define for it. It is important, then, that we define useful goals. I think we are barely scratching the surface of what software is capable of producing for our purposes. We need to focus more on asking the right questions, pointing the software in the right direction, and letting it evolve to meet our needs.
Computer

It is interesting to find that there are certain laws that pervade these different systems in similar ways. I am not referring to the boundaries within the realm of possibilities, but instead trends that seem to arise out of the various systems and processes. One trend, “The Law of Accelerating Returns” (for example, Moore’s Law) tends to follow an S-Curve of exponential growth which is always replaced by another S-curve involving a phase shift to a completely new idea driving toward the same goal—only after the previous idea has reached its full potential. It is as if, within the realm of all possible things, these trends exist to explore and weed out—ruthlessly—the best possible outcomes for the given system. And this “law” is almost uncanny it its ability to do so. Moore’s Law is, essentially, Natural Selection… in technology. What drives this apparent force which crosses over technological and biological boundaries? For an answer there is no consensus, except that there seems to be more to it than simply the economy or self-fulfilling prophecy. We call them laws, simply because they seem to exist well-beyond and in spite of our individual efforts, and in a mathematically precise way that we as humans could not control even if we tried. It is almost as if trends such as this are hive mind-induced. After all, they seem to (directly or indirectly) aid in our primary goal as a whole society: in general the survival and thriving of humanity. In his blog The Technium, Kevin Kelly gets more specific and lists six things for which he believes living systems strive: “increasing complexity, sentience, consilience, specialization, possibilities and choices.” Upon closer examination, such trends as The Law of Accelerating Returns, Natural Selection, and Adaptation usually move us toward some or most of these goals. Then there is the parallel to consider of human minds to computer software. The primary difference between the two is that software lacks self-awareness and self-importance which are what make us as humans conscious (or is it consciousness that makes us self-aware?). For machines, this self-understanding has to be artificially induced by us. Beyond that, the available data sets, processing power and memory of the machines are vastly superior to our limited biological minds. The bottom line is, we can use computers to get answers we are incapable of deriving ourselves, and as computing limitations become less and less of a factor, we will be wise to take advantage of this vast, unprecedented potential.
 

Genetic Programming: an introduction

(The following is a synopsis of chapters 5 and 6 of John R. Koza’s “Genetic Programming”) OVERVIEW: Genetic Programming is derived from Genetic Algorithms, and in many ways involves the same process of evolutionary natural selection. The core difference between Genetic Algorithms and Genetic Programming is the program structure. Genetic Algorithms (GAs) operate on fixed length binary strings representing a biological chromosome, while Genetic Programming (GP) instead operates on dynamic hierarchical programs. While in GA, the size and shape of a binary string are fixed, GP programs vary in size and shape. This makes GP programs more complex and, in many ways, more powerful. The more complex and dynamic program structure of GP results in a cascade of other differences which separate it from GA. Because of this, some problems may be better suited to one method or the other. Generally the more complex the problem or the larger the search space for a solution, the more likely the problem should be solved by GP. GP solves problems by breeding computer programs, then using reproduction and crossover in iterations through generations of programs, until a solution to the problem is found or some other set parameter is satisfied (such as number of generations run).
GP
Koza's GP, Figure 5.1


Koza references Holland's (1975) list of key features of all adaptive systems. For GP to operate successfully, the following must be defined: · Initial Structures · Fitness Measures · Genetic Processes · Program Memory · Termination Criterion · Designating a result INITIAL STRUCTURES: GP programs are best represented by expression trees, which are hierarchies containing functions and terminals.
Expression Tree


The above diagram represents the program string (in pseudocode): if{x<4}then{t}else{r}} Any of the functions if, <, then, else or terminals x, 4, t, r will be subject to change as GP progresses through generations. It is important to select a sufficient set of primitive functions for a problem. For instance, with an ant trying to maneuver through a maze for food, MOVE, RIGHT, and LEFT are sufficient. Anything less is insufficient, while anything more may or may not be useful. Keep in mind the set of functions and terminals must be sufficient, but extraneous functions and terminals will often degrade performance. After the sufficient pool of primitive functions has been determined, the initial population (generation 0) is generated with expression trees containing random combinations of these functions and terminals. A uniform random probability distribution is responsible for arranging the the expression trees within the initial population, using only the sufficient function set determined ahead of time. There are three types of expression trees (pp. 92-93): · Full (every branch of the tree is equal length) · Grow (variably shaped trees bound only by maximum branch length) · Ramped half-and-half (combination of full and grow) Koza prefers to use the ramped half-and-half method for all of his GP demonstrations. FITNESS MEASURES: Defining fitness is important because fitness directly affects the primary GP operations of reproduction and crossover. There are many ways to accomplish this. "The most common approach to measuring fitness is to create an explicit fitness measure for each individual in the population... Each individual in a population is assigned a scalar fitness value by means of some well-defined explicit evaluative procedure" (p. 94). Koza describes four kinds of explicit fitness measures used in GP programs: 1. Raw Fitness (The "measurement of fitness that is stated in the natural terminology of the problem itself" [p. 95].) 2. Standardized Fitness (The lower the number the better. If the raw fitness is also striving for the lowest number, standardized = raw. Otherwise standardized is the inverse of raw.) 3. Adjusted Fitness (Computed from the standard fitness, adjusted fitness is always between 0 and 1. The bigger the adjusted fitness, the more fit the individual.) 4. Normalized Fitness (Computed from adjusted fitness, the sum of normalized fitness values equals 1.) GENETIC PROCESSES: The genetic processes in GP consist of two primary operations: Reproduction and Crossover. Reproduction: Reproduction in GP is asexual (one parent, one offspring). "The operation of reproduction consists of two steps. First, a single [program] is selected from the population according to some selection method based on fitness. Second, the selected individual is copied, without alteration, from the current population into the new population (i.e., the new generation)" (p. 99). Three methods of reproduction include: · Fitness-proportionate selection (The most popular method--uses the fitness measure to determine how many of which programs are allowed to reproduce) · Tournament selection · Rank selection Crossover: Crossover in GP is sexual recombination (two parents, two offspring). It is, essentially, a swapping of subtrees. Which parents are chosen for crossover is determined by the fitness-based selection method. Random crossover points are chosen (again determined by using a uniform probability distribution) from each parent. Everything in the subtree below the crossover point is swapped with the subtree underneath the crossover point in the other parent. Swapping of simple terminals (instead of entire subtrees) is common in GP, and this is the same as point mutation in GA--so mutation is inherent in GP crossover. Another Crossover difference between GA and GP: In GP the two crossover points in the two parents are usually different; in GA the two points are always identical because crossover is operating on a fixed-length character string. This leads to better capacity for variety in GP: "In genetic programming, when an individual incestuously mates with itself (or copies of itself), the two resulting offspring will, in general, be different (except in the relatively infrequent case when the crossover points are the same). As before, the Darwinian reproduction operation creates a tendency toward convergence; however, in genetic programming, the crossover operation exerts a counterbalancing pressure away from convergence. Thus, convergence of the population is unlikely in genetic programming" (p. 104). Also important for GP crossover is the maximum permissible size, which is measured by the depth of the tree. Regulating the maximum depth keeps crossover from creating oversized trees and saves computing time. There are also secondary operations in GP, all of which are optional and are probably best reserved for specific situations: · Mutation (Asexual changing of an individual terminal, but occurs occasionally through sexual crossover in GP anyway. Useful in moderation in GAs, but really not necessary in most GP applications.) · Permutation (Asexual inversion--swapping terminals of a function.) · Editing (Follows editing rules such as shortening "(NOT ( NOT X))" to "X." This can be used for cosmetic purposes and for simplification or improvement of GP output.) · Encapsulation (Protection from crossover for ideal offspring subtrees, encapsulation offers "a means for automatically identifying a potentially useful subtree and giving it a name so that it can be referenced and used later" [p. 110].) · Decimation (Deleting a portion of population, controlled by two parameters [p. 112]: "a percentage and a condition specifying when the operation is to be invoked.") MEMORY: It is only necessary for the current generation to be maintained in memory for GP operations. Although the individuals in a population represent only a small set of possibilities in the realm of all possible programs, the genetic processes ensure the search will keep moving in the right direction--toward a solution. TERMINATION CRITERION: This is not nature and the computer will not run the program forever, so a termination criterion must also be set. This may be a set number of generations or a 100% exact solution to a problem, which, when satisfied, ends the program. DESIGNATING A RESULT: Results come in different forms. There may be a 100% exact solution, but maybe there is no single best solution. If the program is terminated at a set number of generations, then the best-so-far individual is usually chosen. The fitness parameters are used to determine what is the best-so-far individual, what is the 100% exact solution to the problem, or what percentage of correctness is close enough to suffice.
Tagged with:
 

Genetic Algorithms: an introduction

The following is a synopsis of chapter 3 of John R. Koza's "Genetic Programming": Genetic algorithms provide a way to search a large space of possible solutions in a near-optimal way, using 4 Bio-Darwinian methods: 1. Natural Selection (find the members of the population with the best fitness) 2. Reproduction (replicate those members of the population identified to have the best fitness) 3. Crossover (cross-breed two parent chromosomes at a random point to produce new offspring) 4. Mutation (randomly change bits within a chromosome)
Genetic Algorithms
Koza's Figure 3.1
Natural selection and reproduction result in a definite performance improvement within the population, but just using these two methods limits the potential players in the realm of all possible solutions. Basically the existing best persist and reproduce and the not-so-good go extinct, but if the optimal solution was not in the population to begin with, it could never be found because there is no variation. "Natural selection does not create variety. It merely selects from whatever variety is already present in the population in order to increase the average fitness of the population as a whole" (pg. 48). Crossover and mutation are necessary evils in that they slightly degrade the overall optimization, while opening up the possibilities toward discovering better solutions that were not present in the original population. "The genetic crossover operation serves the necessary function of creating promising new individuals in the search space" (pg. 48). So, by keeping relatively low levels of crossover and mutation within the GA architecture, new solutions can be discovered while still allowing natural selection and reproduction to keep the balance tilting toward an optimal solution. "The allocation of future trials is most nearly optimal when [crossover and mutation rates] are both small. A schema with a relatively short defining length and a relatively few defined positions is a building block which will be propagated from generation to generation at close to the near-optimal rate. The genetic algorithm processes such schema most favorably. A problem whose solution can be incrementally built up from schemata of relatively short defining length and relatively few defined positions is handled by genetic algorithms in a near-optimal way" (pg. 49). The interesting thing about the genetic algorithm is that it is a domain independent process and can find near-optimal solutions without even storing a memory of the solution's lineage. The only prerequisite is for the problem to be defined in terms the GA can "understand." This prerequisite can be fulfilled by applying a simple 4-step process to any problem (pp. 53-54): 1. Select the representation scheme. This often includes transitioning problem parameters to binary strings. This is an ideal way to present the problem to the GA as a "chromosome" ripe for reproduction, crossover and mutation. 2. Identify the fitness measure. This step is crucial to defining what the problem is seeking to achieve. 3. Define control parameters and variables. Here is where the population, bit string length, and generations to be run are defined. 4. Define when / how the run will be terminated and what will be designated as the best result. Koza proves the point of how domain independent the GA is by giving several different in-depth examples in this chapter: among them a restaurant-burger conundrum, a load-bearing optimizer, and the ever-popular ant-food path optimization problem. All of these problems can be broken down into binary strings allowing solutions to be figured out through the use of genetic algorithms. A good read, for sure.
Tagged with:
 
Over six months have passed since The Project began, and it was long before that the ideas were seeded. Pariahpism published his version of The Project origins right away. While this was an accurate description, I feel it is time to post my view on where it all started, what the past six months have involved, and where we might be going with The Project. It began with an article published in 2007 by Alan Bellows on DamnInteresting.com about hardware evolution, “On the Origin of Circuits”. A comment in this article led me to Kevin Kelly’s book, Out of Control which is fully readable online. Now normally in my internet browsing I am not going to follow a link to a book and end up reading it in its entirety, but that is exactly what happened with Out of Control. The book starts out in Biosphere 2 in Arizona, and I thought, “Hey, I’ve been there!” And it only got more interesting as it went. Who would have thought ecology, philosophy, technology, economies and evolution had so many things in common. Turns out Kevin Kelly is no scientist or engineer, but he is a hub of information, finding new meaning and understanding in many subjects, especially technology, with direct access to the top thinkers of our time. His blog The Technium continues to amaze and inspire me, while helping me think outside the box. Out of Control covered a broad range of subjects, but some information seemed to stick out from the rest. I distinctly recall being impressed by the following, from Chapter 2: In the film Batman Returns a horde of large black bats swarmed through flooded tunnels into downtown Gotham. The bats were computer generated. A single bat was created and given leeway to automatically flap its wings. The one bat was copied by the dozens until the animators had a mob. Then each bat was instructed to move about on its own on the screen following only a few simple rules encoded into an algorithm: don't bump into another bat, keep up with your neighbors, and don't stray too far away. When the algorithmic bats were run, they flocked like real bats. It all came down to simple mathematical algorithms. Throw enough math into the software and, TADA! Biology plays out on your computer screen! Then, Chapter 15 dealt specifically with Artificial Evolution, while Chapter 17 “An Open Universe” expounded on that. Tom Ray and his game Tierra were highlighted, as was the GP master John R. Koza. These would soon become household names to The Project. Fast-forward to July 2009. Pariahpism had taken to game journaling, and while not being interested in gaming I was surprisingly enthralled by his stories. My experience with software engineering combined with the memories of Origin of the Circuits and Out of Control prompted a sudden want to try to develop something of the same substance, but on a different scale. Imagine gaming journals about a self-evolving, unpredictable game! Immediately ideas started to take hold. We could provide the goals and the necessary environments, but let the games do the work! After brief but furious discussions on the matter, Pariahpism proceeded to write about a number of game ideas brewing in our heads: Alphabet Soup The Field of Blobs The Arti-Field of Blobs – The Field of Blobs Side-Quest Game Untitled And then the serious research began to see how to go about bringing such ideas to fruition. Little did we know everything that was already out there. Computational Intelligence is a huge realm under AI which includes, among others, Genetic Programming, Genetic Algorithms, A-life, Neural Networks, and so on. Books, websites and whole development environments are relegated to these subjects, prompting us to back up a step and begin collecting information at a rapid pace. And here we are—still collecting. I have decided to completely overhaul the old website and devote it to The Project, and video gaming in general. Why dailyvillain.com? It started in 2004 as an inside joke, turned nickname, turned URL. It even stood as an acronym on the website for a while—something like Vagabond Interpreting Life’s Lessons and Idiosyncratic Nuances—but that was way too long. Anyway, the web space was already there and now it exists and persists as The Project’s home. So where is The Project headed? Our original goals still stand. Early versions of Alphabet Soup and various programming languages are the focus of most of our attention for the moment, but concerning the future, anything is fair game at this point. The nice thing is that the interwebs allows the unprecedented vast sharing of information, letting us build on what others have already created. The beauty of Open Source is that it is more than just convenient, it also allows for the acceleration of information sharing, and of course, innovation. That’s what The Project is all about. For a tad more organization... This blog will help to track our thoughts and progress, while this blog has become the home for the aforementioned gaming journals, other game reviews and pretty much anything game-related.
Tagged with:
 

Methods for Meaning

(Originally published December 8, 2009) Finding meaning: Chapter VI of “Godel, Escher, Bach” begins to delve into trying to pin down the location of meaning. It discusses the recursive enumerable set: something being defined in terms of simpler versions of itself (such as Fibonacci numbers, or cells in a body). Small, simple parts make up complexity, out of which meaning is drawn. Levels of complication increase until the recursive system might be “strong enough to break out of any predetermined patterns… Instead of just considering programs composed of procedures which can recursively call themselves, why not get really sophisticated, and invent programs which can modify themselves—programs which can act on programs, extending them, improving them, generalizing them, fixing them, and so on? This kind of ‘tangled recursion’ lies at the heart of intelligence.” (p. 152). “…meaning is part of an object to the extent that it acts upon intelligence in a predictable way” (p. 165) – In context, deciphering may take more or less effort but the eventual result is in essence inevitable: the intended interpretation remains the same no matter what. We are just “drawing out” the information that is inherent in the message. (Consider elemental DNA being chemically drawn out to establish the “who” of the overall person). It is like the principle that “information is in the air” waiting to be grasped as it inevitably will be when the right condition, place, time and intelligence exists to grasp it. The Project should be able to grasp such ideas using the power of evolutionary computation and memristors beyond human brain capability. So, a little more about grasping meaning: According to GEB, 3 mechanisms are needed to draw meaning from any message (p.167): Message: 1+1=2 (just the “meaningless” figures themselves) / GEB’s FRAME MESSAGE Core message: 1+1=2 (meaning: start with one, add one, end up with two) / GEB’s INNER MESSAGE Trigger: 1+1=2 is understood for what it is to be important through the use of mathematics / GEB’s OUTER MESSAGE The trigger is the interesting part. The message can be anything. So the question for the trigger becomes, “How do I interpret the message? What method do I use to accomplish this?” This can require a lot of information, and it acts as the “schematic,” the barebones algorithm used to draw meaning from the meaningless. Where does it come from, how is it determined? The way this triggering occurs may be a universal dialect (algorithm?) which can be applied to biology, technology, and so on. From GEB: “We could ascribe meanings… of a message to the message itself, because of the fact that decipher mechanisms are themselves universal—that is, they are fundamental forms of nature which arise in the same way in diverse contexts” (p. 171) . But when we really try to pin it down, no meaning is absolute; at its core, meaning is accepted by what makes the most sense and there can be no absolute certainty. “…one can never give an ultimate, absolute proof that a proof in some system is correct. Of course, one can give a proof of a proof, or a proof of a proof of a proof—but the validity of the outermost system always remains an unproven assumption, accepted on faith.” (pp. 192-193). We as humans recognize these patterns subconsciously; our intelligence rises above the inherent contradictions and endless downward spiral of circular reasoning. Machines need to be trained to do the same for effectively drawing meaning from patterns in data. Computers already have more processing capability than our brains; we simply need to learn how to mold those capabilities. Methods: Here are some methods for extracting data in a meaningful way, mostly drawing from what we know about the human brain, as consolidated in Kurzweil’s “AI toolkit” (found here): Expert systems: Using human-like decision making with not only blatant logic, but also underlying logic which our biological brains take for granted (something that can be spelled out in the Propositional Calculus [GEB, chapter VII]): Basically determines things based on small bits of logic combined into large decision-making systems. Bayesian Nets: A self-training system, learning from past experience. “Many expert systems based on Bayesian techniques gather data from experience in an ongoing fashion, thereby continually learning and improving their decision making.” (i.e., spam filters). Markov Models: Useful for application in speech recognition, including word patterns and grammar rules discovered through machines “listening to” and analyzing human speech. Neural Nets: Many dumb parts (neurons) organizing in layers and patterned configurations. Meant to replicate the neurons in a brain. Ignorance is improved through “coaching” (experience) from one or more sources, until eventually the neural net makes its own choices based on experience. “A powerful, well-taught neural net can emulate a wide range of human pattern-recognition faculties. Systems using multilayer neural nets have shown impressive results in a wide variety of pattern-recognition tasks, including recognizing handwriting, human faces, fraud in commercial transactions such as credit-card charges, and many others. In my own experience in using neural nets in such contexts, the most challenging engineering task is not coding the nets but in providing automated lessons for them to learn their subject matter.” Genetic Algorithms: Given a goal, the GA makes use of mutations and sexual reproduction (inheriting parts of two chosen parents) to feel out the best paths towards this goal while discarding bad paths along the way. Basically, natural selection in code. “Like neural nets GAs are a way to harness the subtle but profound patterns that exist in chaotic data. A key requirement for their success is a valid way of evaluating each possible solution. This evaluation needs to be fast because it must take account of many thousands of possible solutions for each generation of simulated evolution.” Recursive Search: This involves analyzing a tree of every possible outcome, and narrowing the search by eliminating bad or unlikely branches to more quickly find adequate solutions. This recursive algorithm was used by Deep Blue and Deep Fritz for analyzing chess positions. “Key to the success of the recursive formula is pruning this huge tree of possibilities and ultimately stopping its growth.” So what is the best AI methodology? Use a combination of all of the above, depending on the application. Generally, the more varied the approach, the more robust the processing and analyzing power, along with better potential for evolutionary growth. And this still doesn’t touch on the use of memristors (et cetera). There are more tools to come as the workings of the brain become more understood.
Tagged with:
 
(Originally published October 17, 2009) Breaking it down: the constant is free will, and the most important variable (so far, that we are aware of) is the amount or “level” of choices available to the participant, be it human, biological agent, or technology program / game. Level 0: no choices, just actions. You are basically a robot, doing what you are told and not having the ability to realize that there are other choices from which to choose. Levels above this increment exponentially as a set of choices are involuntarily encountered. For instance, level 1 requires that you must make a given choice. You have a pool in Sims; you must choose to add a ladder to it or not. The end result of adding the ladder is that you can escape from the pool; otherwise you drown. Take it up another level. Each decision set leads to more inevitable encounters with the given set of decisions branching off of the original(s). It's a schematic of logic gates or a roadmap of connections. However you visualize it, realize that the level or "layer" is not dependent on the number of choices per se, but more accurately it is based on the choices you have already made to lead to the present layer. Each choice along the path determines the destination. Obviously if there are more choices available, there will be more possible destinations. In the Sims pool, for example, what if someone jumps in the ladder-less pool and drowns, then a second sim jumps into the pool and also begins to drown. In addition to the choices and the level, there must be a goal--in this case survival. If the need to reach the objective is strong enough, then innovation can take hold--as long as the parameters allow for such choices to be made. In Sims the parameters do not allow it, but what if the person could "figure out" the option of somehow using the other body to climb out of the pool? The real beauty in this emerges when it is not explicitly defined as an option, but it is not explicitly denied as an option either. That is when the available data set of choices may not be as clear, and where the evolutionary game has the potential to surprise us. There is the pool escape example in Sims, but each level is not necessarily limited to two choices. Another example would be the infinitude of involuntary "choices" at work in our everyday living, breathing bodies (blood pumping, cells working, et cetera). Each process can be observed and broken down--at the most basic level--to options. Taking that thought further, can every process in our known universe be broken down into 1s and 0s? Maybe not necessarily completely true, but as a general concept it helps organize everything into comprehendible compartments. As another way of thinking about it, can everything be broken down to mathematics? Even the more complex pool example can be literally broken down into thousands of ones and zeros. One modern accomplishment is our ability as humans to streamline these millions of bits of data by organizing and standardizing these decision-making procedures. The best example of this may be the many levels of programming languages: translating and interpreting the ones and zeros of machine language into higher and higher level languages to the point of understandable human language or even GUI interfaces. All those thousands and millions of ones and zeros are still completely necessary and they are still doing their thing, but it is all transparent to us. We are harnessing the data in a very energy efficient manner. And we're getting better at it, but I still think we're only scratching the surface. A multitude of individual tiny decisions end up determining large-scale, complex operations. Just as organs make up a body, bees make up a hive, and trees make up a forest within the realm of biology, computers have the capacity to organize the "organs, bees and trees" of data into meaningful advancements within the realm of technology. This is an important revelation, but it is not new. One important difference between biology and technology, however, is the fact that biological evolution is bound by biological time. Technological evolution is not. Because we continue to find more efficient means of organizing these technological decision-making processes with tools such as high level languages, behind-the-scenes processes, and so on, we are in essence accelerating the process of evolution through technology. Furthermore, biological evolution is restricted by its boundaries, already defined by layers of earlier decisions defined by physics, history and circumstances. Technology has a similar set of restrictions, but these restrictions are much less limiting. In other words, with technology we are capable of optimizing the evolutionary process because we are not bogged down by biological time, unnecessary appendages, and all those other restrictions with which biology has to contend. The grand idea out of all of this is that to truly optimize technological evolution to reach its full potential, we need to add another layer of technology. Don't rely on the slow human who is restricted by his biological brainpower. Let the computer program do that data organizing / mining / evolving. When we are able to achieve this, I expected to be amazed by the results. So we begin with evolution-infused games. The balance in design lies in figuring out where to draw the boundaries: how many options? How many layers? It is all about letting the program make the decisions, but first we have to determine the correct parameters. How do we promote innovation? This will probably be the hard part, and is going to take a lot of research. That, of course, is where we are at for now. There are still many things to consider, study and write about later to consolidate our pool of knowledge as it progresses. Some more topics I want to deal with at length: The potential of software memristors. Coevolution in technology. Quantum computing potential.
Tagged with: