Advertisement

What's the difference between Decision Making and Inference?

Started by July 05, 2009 12:04 AM
5 comments, last by ZiKaS 15 years, 4 months ago
Hi all, I'd like to know what's the difference between decision making and inference in Game AI. The definitions I have: Decision making system is the underlying structure that determines the type of AI engine you are building --- Inference: act of deriving logical conclusions from actual knowledge or primes to be true So, what's the difference? Reference of these definitions: AI Game Engine Programming Thanks in advance
Quote: Original post by ZiKaS
[...] The definitions I have:
Decision making system is the underlying structure that determines the type of AI engine you are building
---
Inference: act of deriving logical conclusions from actual knowledge or primes to be true

The first definition doesn't fit what I understand by "decision making" (actually it doesn't even seem like a definition at all). I would say decision making is the mechanism by which an agent selects an action. Your definition of inference seems OK.

To be very brief: Inference is observing, decision making is acting.
Advertisement
@alvaro
Thanks for your reply. So if inference means observation then what's the definition of perception?
Quote: Original post by ZiKaS
@alvaro
Thanks for your reply. So if inference means observation then what's the definition of perception?


To be pedantic about it I guess perception is the act of collecting information from your sensors while inference is deducing further information from a base of knowledge. Usually this base of knowledge is the actor's percept sequence. For instance your actor may perceive a "shot in arm" percept and then infer that enemies are nearby. Often these are so tightly coupled in games that we don't bother to separate them. We don't care whether "shot in the arm" was perceived directly or inferred from "took 30dmg to arm" and "heard gunshot". The perception/inference system simply tells us that we were shot.

A decision making system determines what actions to perform based on the information inferred by the inference system. I.e. it's a system that makes decisions. Again to be pedantic it doesn't actually carry out the actions, it only tells its "motors" to carry out actions such as "sprint" or "drop active weapon".
@CTar
Thanks for your reply. So I've understand that perception is concerned about collecting data, inference concerned about converting the collected data (by perception) to game information and decision making is concerned about taking suitable decision against game information (provided by the inference).
For Example, in FPS Game the enemy has shot me then perception system will collect this data after that, the inference system will take this data and then produce the output "My hp was reduced by 50 hit points" finally, the decision making will produce output "Attack enemy"

Thanks :)
Quote: Original post by ZiKaS
@CTar
Thanks for your reply. So I've understand that perception is concerned about collecting data, inference concerned about converting the collected data (by perception) to game information and decision making is concerned about taking suitable decision against game information (provided by the inference).
For Example, in FPS Game the enemy has shot me then perception system will collect this data after that, the inference system will take this data and then produce the output "My hp was reduced by 50 hit points" finally, the decision making will produce output "Attack enemy"

Thanks :)


Yes that's pretty much it though I doubt any real FPS games would structure it like that. In every AI architecture you will have a number of pre-defined messages that the actor can get to inform it about what happens. This is what perception is. As you said "You have been shot" could be such a percept, but you would likely get a couple of additional parameters detailing where you were shot and how much damage you took and possibly the kind of weapon and direction you were shot from. Thus you example of "my hp was reduced by 50 hp" is really an inference as you state, but a fairly trivial one because you were told "you were shot and took 50 hp dmg". The purpose of an inference system is to take the fairly unstructured information and present it in a format that is easier to understand for the decision making system. Thus a much more useful inference would be "I have taken 50% damage in the current firefight", "I will probably be killed in 9 seconds if the current rate of damage continues.", "There is a heavy concentration of fire coming from approximately (x,y,z)". These inferences are things that the decision making system can work with so it can structure high level strategies like "look for cover", "run to cover", etc. and then finally execute those actions.

Also a decision making system can rarely output such high-level commands as "attack enemy". It has a set of narrowly defined actions it's allowed to execute such as "fire" or perhaps "fire in direction x", "crouch", "shout for help", etc. "Attack enemy" is a perfectly valid goal for a decision making system, but it also needs to break down that task and find out how to actually carry out the attack. In some cases it can help to structure the decision making system as a sequential list of smaller decision making systems with progressively more specific commands. The first decision making system may output "Attack enemy", the next decision making system gets that action and outputs "Find position from which I can shoot at (x,y,z) and prepare for combat" and the final decision making system may then look at percepts and inferences to determine that the appropriate action is "turn 130 degrees clockwise" followed by "sprint" and "equip primary rifle".
Advertisement
@CTar,
Thanks for explanation it's so helpful :)

This topic is closed to new replies.

Advertisement