AI as Rational Agents

There are several different types of Environments:

The type of Agent depends a lot on the type of Environment it is going to act in. To build an agent we need to fix an Agent Architecture and come up with an Agent Program that runs on it. There are various architectures we can choose from:

These types of architectures can all be turned into learning agents. We also differentiate between Domain-Specific Agents and General Agents.

Representing the Environment in Agents. Depending on the way the Environment (state) is implemented in an Agent it might behave differently. There are three different types of representation:

  • atomic
  • factored
    • attributes with values
  • structured
    • objects with relationships

Problem Solving

An Agent continuously solves the question of what Action to do next based on a state (Environment). The idea is to find actions which bring us from an initial state to a goal state. Such a sequence of actions is called a solution.

When solving problems we differentiate between Offline Problem Solving and Online Problem Solving.

A problem formulation describes the problem at an abstract level. One such formulation is the math of a Search Problem.

Adversarial Search for Game Playing

  • Minimax Search
  • Alpha-Beta Search
  • Monte-Carlo Tree Search (MCTS)

Constraint Satisfaction Problem

We want to solve problems where an Agent performs certain Actions in an Environment. At any given point in time we can use logical conclusions to choose a better next step by looking at the current percepts and doing Inference / Reasoning (Automated Reasoning) on them. In other words, we want the agent to think before it acts (Model-based Reflex Agent).

One way to implement such an agent would be to have a Knowledge Base Agent.

Now to create this type of agent we have to be able to reason about knowledge, using Logic. One type of logic is the so called Propositional Logic where we try to describe the world by formulas which can then be evaluated in the current wolrd (they should of course turn out true).

Deduction is a computer trying to reason about entailments.

In the end we want to be able to use an off-the-shelf reasoning tool (for example SAT solvers) to determine the agents best next steps.

But Propositional Logic is kind of bad for talking about real world things and it is for example impossible to speak about infinite sets of objects in it. Thus we need a new/better logic to deal with these problems, the First-Order Predicate Logic.

Applications:

  • Logic Programming
  • Deductive Databases
  • Semantic Technology
    • annotate Data Sets using PL1
    • Web Ontology Language