pseudorandom21 166 Practically a Posting Shark

Here is a sort of description to my yet-unimplemented AI agent to play tic-tac-toe.

It doesn't have to win, it just has to work, and my description of it has to be good.

Tell me what you think:

/*

"RATION_AL"

The goal of my agent is to implement an agent function that
doesn't require omniscience and instead will rely entirely upon
rational decisions based upon the formal definition of a rational agent,
primarily utilizing the percept sequence, and some minor built-in knowledge,
it will alter it's behavior from experience gained by the percept sequence,
but will also remain largely reflex-oriented.

With Tic-Tac-Toe against another agent, omniscience in the simple sense,
isn't possible due to the variety of techniques available, 
including knowledge-based and entirely random move placement.

Success (for my agent) at each stage of the percept-sequence,
should likely be gauged by the state of the task environment in which the "agent"
resides--after the opponent's move.

Due to the finite nature of a 3x3 matrix, a knowledge-based approach encompassing
every possible action that can be performed could be employed perhaps successfully,
and one might argue that knowledge of every possible outcome could be considered
omniscience (as far as the agent is concerned), but I'm sure that's debatable 
and I don't have a definite answer.  With further review of the material,
this type of table-driven or knowledge-based approach may be unfeasible with
an astronomical number of possibilities.

Let's get it on!


The task environment is a fully observable, strategic, sequential, static, discrete, 
and competitive multiagent 3x3 matrix.

The task environment is a finite 3x3 matrix that can be completely, or partially filled
with 'X' characters and 'O' characters, it can also be empty.  

This is a strategic
task environment because it is entirely deterministic except for the actions
of other agents, and it is fully observable at each percept stage.

My agent's performance measure consist of minimizing occupied spaces, obtaining
3 adjacent appropriate characters, obtaining 2 agent-occupied spaces separated
by a blank space, obtaining 2 adjacent agent-occupied spaces with a blank space available
to either end, and acting to prevent the opponent agent from achieving these criterion
when necessary using one or more condition-action rules (reflex-agent-style).
*/
Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.