Last Good Quote: Son's are the seasoning on our lives. - Someone on Facebook

Wednesday, June 25

A Quest to Find Intelligence

A Quest to Find Intelligence

I've decided that if I'm going to research and explore Artificial Intelligence (A.I.) it would be wise to define in my words what I am trying to find.

I am searching for a computer program that has the following capabilities:
  1. It must be able to create tools.
  2. It must be able to identify the usefulness of a tool.
  3. It must be able to set its own goals.
  4. It must be able to determine when a specific goal has been met.
  5. It must be able to be acted upon by its environment.
  6. It must be able to act upon its environment.
If a program is able to accomplish these things I would consider it intelligent and useful. In addition to this, the more complex it's environment the more intelligent I would find the Agent.

What's a tool?

A tool, to my AI, would be any function or program which accepts a number of inputs and delivers a number of outputs.

For example, an add function might take 2 numeric inputs and output one numeric number. In this case a single function acts as both the input and the output.

add(1,2) -> 3

This would be a simple tool. A more complex tool might be a map object which has a number of functions (inputs) that allow you to modify the appearance of the map (output)

map.createMap() - sending inputs
map.viewMap() - getting outputs
0 0 0
0 1 0
0 0 0

map.moveUp() - sending inputs
map.viewMap() - getting outputs
0 1 0
0 0 0
0 0 0

Identifying the usefulness of a tool

In order for the AI to understand the usefulness of the tool, it must be able to make an accurate prediction of the output of the tool.

For example, after examining and testing the add function mentioned above, the AI will be able to identify that if it puts 3 and 5 as inputs it will get back 8.

This is NOT the same as saying that the AI knows the implementation of the add function, rather it can anticipate the response of the tool.

This will allow the AI, when given a goal, to choose one specific tool to use from a variety of tools.

Note to self: This means that the AI must maintain some type of meta-data about tools. IE: When a goal using the word "addition" this should key the AI to consider the add function as part of it's procedures.

Setting a goal

As stated before one of the requirements is that the AI be able to set its own goals. This is needed because as more and more difficult tasks are requested of the AI it will have to set a sequence of steps together to achieve the tasks. I consider each of these sub steps as a goal that the AI must recognize and achieve before completing the final tasks.

For example if AI is asked to provide the tasks of moving itself 5 spaces up on a map, it must understand that it's first goal is to move a single space. It must then choose a tool that will do that and execute that tool 5 times.

This may result in the AI creating a new tool which moves it 5 spaces. Which brings us to our next point...

Creating tools

At some point the AI will need to build its own set of tools, as a tool may not exists (or be at its disposal) that will accomplish the overall goal.

In a simplistic sense, since tools are functions or objects, as the AI builds more tools it becomes "smarter"

Again the AI will need some method for determine when and how to create a tool.

Acting within the Environment

Finally and most importantly, the environment that the AI "lives" in will have to interact with the AI. And vice versa the AI will have to be able to interact with the environment.

This is most important as the "richness" of the environment that the AI can interact with will dictate the "intelligence" of the application.

For example:
Let's say an AI, agent's, environment consists of a label, text box and submit button. This is the agents environment. It is what the agent can act on and it is how the agent will be acted upon.

An agent can enter text into the text box and submit the text using the submit button. This would be the agent acting on the environment.

The environment would act upon the agent by placing text into the label.

Certain characters in the label, "That is correct" would affect the agent in some manner.

This is a simple environment and the agent behind it would be considered to have "lesser intelligence"

A More Complex Example

The environment consists of a 3d world, like "Worlds of Warcraft". The agent (AI) would be a character in that environment.

As the agent performs actions in this environment, attributes of the agent would respond accordingly. IE: health, level, skills, etc...

The next few post will go into each of these functions in more detail.


Post a Comment