User:RAIPP

From Wikipedia, the free encyclopedia

RAIPP is an on going project. Please excuse any omissions, inconsistencies or repetitions.

This page is still work in progress. Thank you.


Contents

What is RAIPP?

RAIPP stands for Random Asychronous Intelligent Parallel Processing. It is a set of principles that define a model that has a form of artificial intelligence, capable of developing solutions based on a goal and a variety of environmental inputs, and is based largely on the study of natural intelligent processes. Currently it is just a theory, but it is hoped that software could be produced illustrating basic intelligence capable of building tools to reach mathematical objectives. RAIPP’s goal is to create a machine that can optimise its performance through learning about its environment. By creating skills for itself to adapt to changes while working towards an objecive, it will exhibit a basic form of intelligence.

What's New?

Life as we know it is based on motivations and objectives. The actions we take are a result of a desire for something. Conventional software does not work like this. In the current style of software, we predefine the action to be taken as a result of an input. This means that if the software does not recognise the input, no action can be taken, or if action is taken we cannot predict the result. With the RAIPP process, the software uses the natural method, trial and error, to reach the objective with the input it is given, using the processes available to it. This means that the software is effectively creating the process itself, which implies that if there is the possibility of the software reaching it's objective, then eventually it will, and once it does, it will be able to remember the path it took for future use.

RAIPP's Limitations

RAIPP is not a total processing solution. In a lot of cases the conventional algorithmic process is the only suitable way for something to happen, mainly in cases where we do not know the final goal. However, current algorithmic approach is not suited to an intelligent system which can learn and react based on it's experience. The conventional approach also often means that the more complex the software becomes, the less reliable it's reuslts. Here, the exact opposite is the case, where the more the software learns, the more reliable its judgement.

Analogies and Explanations

A lot of what RAIPP is depends on your definition of intelligence. Here, we define intelligence as:

  • The ability for something to adapt and learn according to inputs that it receives from its environment, store this information for retrieval and use in the appropriate circumstances, all in order to achieve a final goal.

The key to creating an intelligent machine is not in trying to create something extremely complex so that every eventuality is covered, but to create a machine that has available to it certin resources and a preprogrammed goal that can be achieved only by combining the various resources given to it in specific ways, there by teaching itself a new method.

Much of the RAIPP concept can be illustrated with the following saying:


We learn from our mistakes


Stimulus and Reaction

Here is an analogy to illustrate and define the key terms of the concept:

  • Take an aribtary living animal.
  • Let's say that the animal is currently hot. This is the object's current state.
  • The animal however wishes to be cold and not hot. So this is the object's desired state.
  • Now let's say that the eyes see a pool of cold water. This is the input from the environment.
  • The animal also has available to it a variety of actions that it can perform, for example, walking in a certain direction. These are it's tools.
  • Following the input from the environment (seeing the cold pool of water), the object (animal) will be able to use the tool most appropriate (walking into the pool) to allow it to leave the current state (being hot) and achieve the desired state (being cold).
  • The above processes illustrate the motor aspect of the processor system.

But this leaves the question, how did the animal know what "tools" to use to achieve the desired state?

Clarification of Common Terms

Reading of the main article will still be required to understand the following explanations of these terms.



Current State

Can be predefined by the programmer, or found by the machine through sensors available to it. These sensors could be retrieving information from the machine itself or its environment.


Desired State

The desired state is the machine's overall objective. This is defined by the programmer. Any action undertaken by the machine will be taken in order to reach the desired state. A machine could have multiple desired states, arrange in a hierarchy. The higher ranking the hierachy of the desired state, the higher priority that tasks relating to that desired state will have. As an example, take a future machine of war. Its primary objective will be to maintain its own existence. Therefore any action required to aleviate any threat to its existence will be taken before any action required to fulfill its second objective, destroying a target, if the actions affect each other. However, if the two actions are exclusive in every way then they could be executed simultaneously.


Inputs

There are two types of input:

  • Environmental Input:
These inputs are the result of information obtained by the machine's sensors about the environment that it resides in and will often contain information required to obtain the desired state. Depending on the machine, the inputs may also define some current states.
  • Internal Input:
These inputs are the result of the machine monitoring its own state, and will often be used to define the Current State.

All inputs sent to a system would be processed and decoded into their various components, and sent both to the tools and database of existing knowledge.


Tools

Tools are the actions that a machine can perform in order to move closer to the desired state. Tools can either be absolute (will perform the same function every time they are executed) or variable (will execute differently depending on inputs). Tools are always independent of each other, meaning that they can be executed in parallel and the reults combined. In a process, the most efficient method is that which requires the least amount of tools to be used.


Database

In a RAIPP system, the database stores all the information about tools, and all the information about previous experiences. Every time an action is performed the results of the action and the circumstances under which that action was produced are logged so that in future, this information can be referenced to make a better decision, without having to simulate every input with the tools. This aspect of the system can be likened to Case Based Reasoning (CBR)

Gaining Knowledge

Take the same animal, still hot, and still wishing to be cold. Now let's assign the animal three "tools".

  1. Walk into the light
  2. Walk into the dark
  3. Walk into the pool

The animal is hot and now recieves the inputs from its eyes "Light" "Dark" and "Pool".

The animal's desired state is cold, and the animal is hot. The animal now uses the tools available to it to achieve the desired state. By trying tools 1, 2 and 3, the animal learns that tool number 3 (walking into the pool) is most effective for leaving the current state (hot) and gaining the desired state (cold). If however the only inputs are "Light" and "Dark", and no pool is avaialable, then the animal will know from the previous experience that the next best option is to use tool 2 (Walk into the dark) because this is the option that will bring it closest to the desired state.

With this knowledge stored, the next time the current state of the object is undesirable, depending on the input or range of available inputs, it will be able to reach the desired state in the most efficient way. This would form the principle of an intelligent processing system.

Learning and Creation

Now we shall illustrate this with a mathematical model. There is a machine, with a desired state of 6. However, its currenet state is 2, and the tools available to this machine are:

  1. Subtract the environmental input.
  2. Add the environmental input.

The environmental input happens to be 2.

The machine tries subtracting and adding 2, but finds that neither achieve the desired state.

However, it does find that the adding brings it closer to the desired state, so this is the process with which it sticks.

It then tries the process again, and senses that while subtracting furthers it from it's desired state, adding brings it to it's desired state.

Having discovered this, the machine can then generate a new tool, adding twice, knowing that if the input is 2, the required tool is the new one that it has created.

This is essentially an intelligent process where the machine has taught itself a new "tool" to complete a process that brings it to it's desired state.

We have to be careful not to confuse the desired state with an output. The desired state tells us what the object is trying to achieve. The output is actually the action resulting from the use of the tools available to it brought about by the nature of the object to want to achieve its desired state.

Constant Optimisation

Another more complex machine also wants to be 6, but is 2. The tools available to this one are:

  1. Add double the input
  2. Add the input
  3. Add the input minus two

The machine tries all these methods and discovers that with tool 3 it is not able to achieve the desired state because repetition of the tool does not improve its success. Tool 2 requires the action to be repeated twice, while tool 1 only needs to be done once to achieve the desired state. Therefore this makes it the most efficient method, and having now discovered this the machine will be able to apply this knowledge if ever it is at state 2 and wants to be state 6 with an environmental input of 2. This also allows the machine to carry out actions with varying degrees of success, choosing to memorise a hierachy of potential solutions. It will choose the most efficient method first (tool 1) but if this becomes unavailable it will still be able to use tool 2 to achieve the desired state, improving the security and stability of the system. This is much the same way in which the brain becomes more reliable and stable with the more it learns, not less so like conventional software.

Combining Tools and Infinitely Random Parallel Processes

For the same machine the environmental input is now 3.

Adding double the input gives 8, adding the input gives 5, and adding the input minus one gives 4.

From this the machine deduces that the adding the input has the highest degree of success.

However, if the machine is such that rather than just being able to repeat the tools available to it, it can combine the tools, then it would be able to achieve the desired state by using tool 2 and tool 1. Bear in mind here that both tools are using the environmental input, and not the result of another one of the tools. This means that the tools are independent of each other and do not need to wait for the other tool to complete. Therefore, each tool can be used at any time, and when tool 1 and tool 2 overlap (are executed at the same time), then the machine will achieve the desired state, realise this, and be able to memorise that tool 1 and 2 were used so that the next time the same circumstances arise it will be able to achieve the desired state in the most effective manner.

Evaluation of Efficiency

Once all the possible combinations of tools have been found, the machine can then rank the efficiency of each method by looking at how many steps and how many different tools each took to achieve the required result. The method requiring fewest steps and least amount of tools would be listed as the most efficient for that particular circumstance, and every other possible method would be listed after that in a ranking system so that there will always be a solution or degree of success even if all but one tool is destroyed.

Automatic Intelligence


Through these principles, a machine can grow in its knowledge if we supply it with inputs, a basic selection of tools and a desired state. The machine could have multiple desired states and multiple inputs. By passing every input to every tool, the constant repetition of these tools so that every possible combination overlaps will allow the machine to be able to work out the most efficient method for achieving the desired state from certain inputs, and essentially store what it has learnt as a new tool specific for those circumstances. Any other methods or combination of methods that also achieve the desired state would also be stored, so that if the tool or tools used to generate the most efficient method become damaged or corrupted, the less efficient tools would still be able to be used, greatly improving the stability of the system.

With these tools and the circumstances they are most suited to stored in the database of the machine, any new input will be passed to this database and if the circumstances are repeated the appropriate combination of tools would be executed, and most importantly, the independent nature of the tools could allow each tool to be used simultaneously.

A simple diagram modelling a potential system
A simple diagram modelling a potential system

A Linear Model of the RAIPP Process

  1. Machine has a current and desired state. The process relies on a difference between these two states. The desired state is predefined. The current state is derived from a sensor monitoring the current situation in real time.
    • The states might not concern the object itself. If the object has tools capable of altering it's environment, then the current and desired state may concern it's environment and not the machine itself.
  2. An input is recieved from the sensors. If the machine is currently at it's desired state, then this input may cause it's current state to be undesired, requiring action via the tools to achieve the desired state again. Alternatively, the machine's current state might already be undesired as a result of it's own internal sensors (see the animal analogy). Either way, the input is the passed to the next step.
  3. The nature and components of the input are processed and decoded.
  4. The decoded information is simultaneously compared against the database and virtualised by the tools to see if action based on the input would result in reaching the desired state.
  5. If a match is found in the database the appropriate action is taken according to what the machine already knows.
  6. If no match is found, the machine looks at the results of the virtualisation of the tools with that input.
  7. The tool or combination of tools that achieved greatest success most efficiently in the virtual simulation of the tools is then instrumented in reality.
  8. If the desired state is reached as a result of that combination of tools then that is written to the machine's database so it can be referenced later.
  9. If it is not reached, the results of the virtualisation are reconsidered to look at other viable options.
  10. This would be repeated till the desired state is achieved.