AI~ARENA * Visible Intelligent Universal Agent 
 	by David Albert Harrell	   		academic version 1.1

	Keywords - artificial intelligence, programming, robotics, cognitive science

	AI-ARENA.zip may be freely copied and distributed in its original 
	complete zip file format only. 

	AI-ARENA.zip 47985 bytes decompressing to 10 files (Dec 11, 1996)  

 AI~ARENA * Visible Intelligent Universal Agent 
     evolves within a graphic environment

User can design (and see a moving display of) his own custom 
universe/challenge for the AI agent. To directly access a 
freeze-frame of AI-ARENA screen graphics click on:
http://members.aol.com/daharrell/ai-are15.gif

Within a few minutes you can create your own universe.
Get involved, or sit back and watch a colorful visual play-out as the entity 
discovers, consumes, and alters objects within the environment you have 
created.  Objects disappear, flee, and are transformed into other objects,
depending on creator designated laws and values.

Once completed, the specifics of the environment/challenge are saved to disk. 
You can run these starting configurations (.dat files) from zero knowledge 
as many times as you like.  You have the option to either observe the high 
speed evolution of your universe, as the entity becomes more and more competent, 
or you can slow the action down, and take over the mobility controls of the 
AI-agent in your universe.

In addition to the visual observation of each event, there is a text 
display describing each encounter, the entity's reaction, and the results.

This program is now available to everyone at:
http://members.aol.com/daharrell/
_

QUICK START

To Run AI-ARENA.bas

1. Put these files into a directory with MS QBASIC.EXE.
   QBASIC is included with MS DOS 5 and higher.  
   (Copyright restrictions prevent me from including QBASIC)

2. Run START_AR.bat.
   (If you open QBASIC.EXE directly through the DOS directory 
    you may NOT be able to access AI-ARENA files!)

You will see the Main Menu screen.

Choose "a" Auto Test.
This will load a simple sample universe that I created (hastily).

You may also load (one at at time) the 6 pre-designed
universe files by selecting "d",
then enter one of the file names "u1.dat" (thru u6.dat).

Once you have created a custom environment/challenge, you may instantly 
replay this universe at any time by loading this file through the "d" 
option at the Main Menu.

AI~ARENA USER MANUAL  version 1

Custom Universe/Challenge
You can create any universe you can imagine (within your hardware limits)
by choosing "c" at the Main Menu. You will be prompted to name the file.

There are 3 sections to creating an environmental challenge for the AI-entity.

1. SENSOR IN-PARTICLES "STRING of GROUPS"
A sentence, phrase, or paragraph made up of single representatives 
of a variable number of particle groups.

2. SHAPING OUT-PARTICLES "STRING of GROUPS"
A sentence, phrase, or paragraph made up of single representatives 
of a variable number of particle groups.

3. LAWS OF CAUSE AND EFFECT
A value equation qualifying the i/o strings by specific (or parameterized in 
advanced adaptations) particle configurations, yielding: value, metamorphosis, 
or any environmental or entity status influence.

Objects, adjectives, actions, tools, adverbs, and prepositions, along with 
their suffixes and prefixes, may be entered in any numbers, order, or 
combination, as phrases, sentences, or paragraphs. (there are hardware limits)

The next screen will ask "Which in condition will be on display?"
This is where the creator indicates the "main particle" in the 
incoming string of words.

For instance, the string:   "AI-guy finds a green plant."

This is a short incoming string, with two particles, green and plant.
("AI-guy finds a" are constant words that may optionally precede [or follow] 
a particle in the text print-out that describes each event.)

Here "AI-guy finds a" are preceding-words associated with the particle "green".  

The particle green is one of the (any number of) "colors" that might 
modify the next particle in the string, in this case "plant" (another 
variable particle in this in-condition group).

Plant is included in the (2nd) incoming particle group designated as 
the main object particle within the string. This "main object particle" 
will be visible in your motion picture of the universe as the entity 
interacts and evolves.

As to the question: "Which in condition will be on display?"

In the above example the correct entry would be "2" (designating the second 
particle in the string for display.  In all cases
this will be a number between one and the maximum number of IN-conditions 
within the given task Universe definition. This is usually the condition 
number of the grammatical subject of the incoming field. This incoming 
field is usually a sentence or paragraph, but may also be a mathematical 
or encrypted expression.

SENSORS (THE INCOMING STRING)

After entering the above "main object number", you will begin the input 
particle loop, where you will define particles until you answer no "n" 
to the question:

   " x input conditions defined so far. Create another incond..?"
 
The input condition definition loop has the 4 inquires:

1.  "Input Particle Heading (for reference)?" 
This is a name that the creator gives to this particle group for his own 
reference.

2.  "Always put this text before this condition name?"
Enter any word or words you wish to always appearing before this particle 
variable within the "event report readout".

3.  "Always put this text after this condition name?"
Enter any word or words you wish to always appearing after this variable 
within the "event report readout".

4.   "Object name?"
For example, If you where defining various color particles , 
you might type "red" or "blue".

Or you could make up you own color (particle) names, "moon-yellow".  

When you have finished listing the various particles of this color group, 
answer no "n" to the question:

   " x particles defined so far. Create another particle..?"

As you list the groups of particles, the program will ask additional 
questions when you enter the particle list of the main object (you 
designated with the first inquiry: "Which in condition will be on display?") 

After giving the name of each particle you will be asked:

     "Object code?" (1-255) (see ASCII list)
     "Object color?" (1-15)
     "Background color of Object?" (1-15)
     "Numbers of objects in opening universe?" (recommend 1-400)

In cases where objects do not naturally occur in the environment, 
ie, they are produced as a result of some interaction by the agent, 
this "Numbers of objects in opening universe?"  would be zero (0). 
(a negative number here is also an interesting option)
Particles in the list of a Main Object/Conditions may be individually 
restricted; ie, certain of these particles may be designated as not naturally 
occurring in the given universe, these being exclusively the byproduct of 
some given event/law.

 When the list of particle for this incoming condition is complete,
 answer no "n" to the question: 

   " x inconds defined so far. Create another incond..?"

You will advance to out conditions screen.

ACTION (OUTPUT STRING)

Repeat the entire process for out conditions particle
lists, with the main action being considered as the first group of outgoing 
particles.  In other words, consider the first particle group, in this out 
particles defining loop, to be the "main OUT action" that will be in the 
visual display, and which requires additional responses for each of these 
particles listed.

In addition to the same questions as the in-particle loop, you will be asked
to designate the "cost" of each action.

  "What is the Creator assigned value unit cost of this action?"

Here you may assign a "unit action cost" to each out particle,
allowing the creator to designate an energy expenditure for all action.

This is usually entered as a negative number.  It will augment the entire value 
of the any event in which this action is used in the output string.

For example if an agent consumes an object which yields a value of 10 units, 
and the particle action unit cost of the "consume" action is -3, then the total 
value of the event would be 7 (assuming the are no other action particles in the
output string that have a been assigned an action cost).

When you answer no "n" to the question: 

   "x out-conds defined so far. Create another out-cond..?"

You will you advance to the laws entry loop. 

LAWS 

First you will see a text summary of your i/o particle entries.
Press enter to continue. 

 	Unless you answer "n" to this: 

   " x laws defined so far.  Create another law of universe..?"

        You enter the loop to create a (another) law.

   "Select object, or enter to include all objects in this law."

If you just press "enter": This will cause this particle group to qualify 
within the law regardless of which in-cond particle is involved in the event.

   "Object [creator's reference name for the particle list will appear here]

Here you must type one of the incoming particle names from the group/list
named in the brackets following the word "object" above.

If this were the color group, for instance, you could now specify a color 
particle for this law.

After being given an opportunity to specify each incoming particle, you move on 
to outgoing particles. As with incoming particle groups, your are first offered 
this option for each out-particle of the action string:

   "Select action, or enter to include all actions in this law."

As with incoming groups, [enter] will cause any particle in the group to qualify 
within the law, regardless of which out-cond particle is involved in the event.
                 
   "action "[creator's reference name for the particle list will appear here]

Here you must type one of the out-going particle names from the group/list
named in brackets following the word "action" above.

   "Value to this event"

Here the creator assigns value to the event in which all the particles 
(in and out) have qualified.  This can be a negative or positive number.  
A positive number would assign "objective" value to these conditions, and 
a negative number would indicate a loss in this overall agent objective. 

(Notice that an event may yield value and still not be a positive event,
as in an event where the "action cost" expenditures surpass the "assigned 
value" yield.)

   "Object created from this event; d to disappear, f to flee"

If you wish these conditions to cause a metamorphosis of an object, then 
you must name the new object here. It will then replace the main object of 
the event.

Or if you wish the the object to disappear as a result of these conditions 
enter a "d".

If you wish for the object to flee the enter "f".

When you have entered all desired laws, answer "n" to the following question 
to begin processing in your custom universe.

   " x laws defined so far.  Create another law of universe..?" 

You will next see a summary screen of you entries, press enter to begin.

The program starts out in the pause mode giving the creator an opportunity 
to direct first interaction, if you wish to see auto evolution press "a".
to interrupt auto evolution and enter manual "walking mode" press "m".

WALKING MODE

In waking mode your may move the agent within the environment by using the 
number key pad pressing "1" will move the agent to the south/west, 2 will 
move to the south, 8 to the north, etc. 

To interact with an object, move next to it, then press the center toggle 
key "5" to change to interact mode.  Now choose the object you will 
interact with by pressing the corresponding number key. (as though you 
were trying to move into the same squares [as the object] in the "walking 
mode". If you were directly below the object, for instance, you would 
press "8" to interact.)

To quit        press    "z"
walking mode   press    "m"
auto evolution press    "a"

To exit QBASIC,         "alt fx"

More details applying to this software and a crash course in cognitive physics 
may be found in the .htm help files of AI~Wheel.zip, also available for download 
at my web site:

http://members.aol.com/daharrell/

AI~WHEEL and AI~ARENA UPDATE - Interfacing the "Hub of the Wheel"
Applying the Unified Cognitive Agent (UCA) to a real-time environment/challenge.

Replacing A "Value Specific" with a "Reference to Value"

When interfacing a UCA to a given environment/challenge, it is 
frequently more practical to replace the awarded "value specific" 
with a "reference to value" when designating a creator assigned law.

AI~WHEEL and AI~ARENA are simple examples of cyber based processing 
agents that are able to handle completely anonymous incoming and 
outgoing particles.  However, these programs deal only with direct 
value assignments within the laws, as opposed to value references. 

When a value reference is designated, the specific value itself is not 
given; instead this field would contain the location of the value, or a 
formula for calculating this value, usually involving some measurements 
within the "current" Entity Task Universe (ETU).  Such designated 
indicators of value may vary in number and type. 

Once acquired, this variable will be applied to the recorded value of the 
flux cycle event. (Notice that an initial reference may be only the first 
step in a chain of references or calculations necessary to determine the 
value of a given event cycle.)
Also, the "qualifying conditions" of a law may be parameterized instead of 
specified.  An i/o condition may qualify because it falls within a given 
spectrum or group.

"Laws" containing value references are ideal for developing intelligent 
"player" entities within a computer hosted game environment, since 
performance value feedback and the status of the universe are frequently 
precisely and immediately available.  The positive or negative value of 
an event cycle is often clearly evident within a finite game environment, 
and can be easily be applied to the UCA event record.

Complications arise when the shaping action of a given event causes value 
changes that do not show up immediately (during the same cycle), but 
instead influence some future cycle.  Such overall patterns of delayed 
value must be directed by the creator, or discovered by the UCA in 
retrospect.

Perspectives can be established that display such patterns; which brings 
us to the "3D" part of cognitive physics, ie, a multiple of "imploding" 
UCA perspectives, all portions of a UCA pyramid of command.  At the top 
there is a single UCA with the original and complete overall (creator 
assigned) objective. 

A paper on "perspective expansions within the ETU" is at: (abstract and paper)
http://www.bioele.nuee.nagoya-u.ac.jp/wec2/papers/p001.html
http://www.bioele.nuee.nagoya-u.ac.jp/wec2/papers/files/harrell.txt

A Unified Cognitive Agent must be able to handle anonymous strings of 
incoming (sensor) particles, coordinating these with a given array of 
shaping abilities (output particles) according to an assigned objective.
[This objective may involve some creator designated indicator(s) of value 
 within the ETU.]

David Albert Harrell
daharrell@aol.com

