October 03, 2019

Symbolic AI explained

The amount of literature about classical AI is large. It's important to extract the dominant ideas. Symbolic AI is often mentioned together with cognitive architectures. This is equal to a cognitive simulation. It means, to mimicry the behaviors of a human in a computer program. Realizing a cognitive simulation in computer code can be done with an agent-based simulation.

Agent-based programming languages like Agentspeak are working with the belief-desire-intention model. This is an abbreviation for 1. recognize the current state, 2. define the future state, 3 create a plan. It's interesting to know, that this kind of workflow can be implemented with a STRIPS like planner. The STRIPS Solver needs as input the current world, it needs also the goal state, and then strips is able to plan the actions in between.

STRIPS and the more recent declarative AI language PDDL are examples for a cognitive architecture. They are used to simulate the behavior of a human. Unfortunately, it's not answered yet how to convert a certain domain into a STRIPS notation or into a agent-simulation language like golog. Most practical projects from within the robotics domain are not focused on simulation of human thinking but they are domain oriented. That means, converting the Mario AI game into the strips notation is done with actions and goals from within the Mario game, while converting a snake game into a agent-simulation has to be done with the typical motion primitives from snake.

So in reality, the term cognitive architecture is a bit misleading. In reality, it's a more a domain-specific simulation in which not the human is simulated but the task he is trying to solve.

Agentspeak = qualitative simulation

Agentspeak defines itself as a cognitive architecture written in Java. The idea is, that the programmer gets a tool for creating a multi agent system. It's interesting to know, that the programmer doesn't define the agent itself, but he writes down the domain in a machine readable form. Converting a domain into the agentspeak syntax is equal to program a qualitative simulation.

Let me give an example. Suppose the domain has to do with a robot in a maze. For simulating the robot a symbolic game has to be written. The game consists of a game state, and possible actions. In the game programming literature this is described as a game engine or rule engine. The robot has a position (variable pos), he can move in 4 directions (action move), and he can collide with an obstacle (event collision).

Where exactly is the difference between a cognitive architecture written in Agentspeak and a game engine? Right, there is no difference, it's the same. Agentspeak can't be utilized for creating agents, but it's a game construction kit. From an abstract point of view, an agent simulation is utilized for simulating a system. The term system isn't referencing to an Artificial Intelligence, nor a cognitive agent, but to a domain. A possible domain is the “Super Mario game”, the Snake game, or a robot in a maze. The question is how to convert these domains into a computer simulation. This process is called agent programming, or game engine programming. From an engineering perspective the correct term is forward modelling or system identification. It means to convert a given domain into a computer simulation.

The most interesting aspect is, that system identification doesn't need an intelligent agent in the loop. If a the movement of a rigid body are formalized by ordinary differential equations, it's for sure, that the rigid body isn't able to think. Instead he is following physical laws. The same is true for implementing a racing car. The game engine which calculates the current position of the car in response to the speed value isn't an agent, nor an Artificial Intelligence, but it's the normal game engine. The result of the game engine is visualized by the graphics engine of the program.

That means, in practical projects, an agent can't be identified in a given domain. If the domain was transfered into a simulation, all the work was done.