What is Reasoning?
Hey guys,
Ive been doing alot of research on Reasoning mechanisms, but i have yet to find a hard refined definition of reasoning in terms of AI.
So far my idea of reasoning is the constraint of problem space based using rules and special operators on the states. if anyone can help me out with this topic, it would be appreciated beyond the bounds of this universe !!!!!!
This may be a bit of a n00b question and may be a bit inappropriate for this forum... :P sorry :D
cheers,
Leo
I am not really sure so please don't flame me if I am wrong but...
It seems that reasoning is a special way of coding AI where you have a set of possible actions, for example Kill(), Rob(), Suffocate() (cruel...). So how does your AI 'guy' know what to do? There comes reasoning. You sort of scan the environment, whatever it is, and add points to a specific action accordingly. For example, you check if that guy is rich. If he is, add points to Rob(). Then check if he is your evil nemesis. If so, add points to Kill(). Then check if people are around. If they are, add points to Suffocate(). Check your money balance. If it's low, add points to Rob(). Check if you have any weapons. If none, add points to Suffocate() etc. etc.
And then, after all the checking is done, action with the most points is to be performed.
Again, I might be totally wrong, so sorry :(
Hope that helps anyway.
It seems that reasoning is a special way of coding AI where you have a set of possible actions, for example Kill(), Rob(), Suffocate() (cruel...). So how does your AI 'guy' know what to do? There comes reasoning. You sort of scan the environment, whatever it is, and add points to a specific action accordingly. For example, you check if that guy is rich. If he is, add points to Rob(). Then check if he is your evil nemesis. If so, add points to Kill(). Then check if people are around. If they are, add points to Suffocate(). Check your money balance. If it's low, add points to Rob(). Check if you have any weapons. If none, add points to Suffocate() etc. etc.
And then, after all the checking is done, action with the most points is to be performed.
Again, I might be totally wrong, so sorry :(
Hope that helps anyway.
I'd definetly say that a glass is half-empty!
Quote: Original post by Zodiak
I am not really sure so please don't flame me if I am wrong but...
It seems that reasoning is a special way of coding AI where you have a set of possible actions, for example Kill(), Rob(), Suffocate() (cruel...). So how does your AI 'guy' know what to do? There comes reasoning. You sort of scan the environment, whatever it is, and add points to a specific action accordingly. For example, you check if that guy is rich. If he is, add points to Rob(). Then check if he is your evil nemesis. If so, add points to Kill(). Then check if people are around. If they are, add points to Suffocate(). Check your money balance. If it's low, add points to Rob(). Check if you have any weapons. If none, add points to Suffocate() etc. etc.
And then, after all the checking is done, action with the most points is to be performed.
Again, I might be totally wrong, so sorry :(
Hope that helps anyway.
hey dude any feed back is appreciated mate :D ...
Im just trying to solidify what the idea is in my own mind, which is proving a little troublesome so any thoughts on the topic is welcome.. thanks mate :D
Reasoning is simply making the "right" or "proper" choice based on the information given.
So, for example, when trying to cross a busy street, you know that you have to look both ways to see that there are no cars coming before you cross. So, then when there are no cars around, you make the choice to cross thinnking that it is a "proper" choice. However, the fact that you get killed halfway across by a crate falling out of a cargo plane 3000 feet up doesn't negate the fact that you made a "proper" choice. This is because given the information and experience, you made a decision that seems "proper."
So, to make reasoning actually possible in AI in gaming, you must have two things. One, a memory to store things that are learned, and a mechanism to analyze the memory to make a "proper" choice based on it and the situation.
That's my take on reasoning, which is actually like a page out of texts on agents and their interaction with environments.
So, for example, when trying to cross a busy street, you know that you have to look both ways to see that there are no cars coming before you cross. So, then when there are no cars around, you make the choice to cross thinnking that it is a "proper" choice. However, the fact that you get killed halfway across by a crate falling out of a cargo plane 3000 feet up doesn't negate the fact that you made a "proper" choice. This is because given the information and experience, you made a decision that seems "proper."
So, to make reasoning actually possible in AI in gaming, you must have two things. One, a memory to store things that are learned, and a mechanism to analyze the memory to make a "proper" choice based on it and the situation.
That's my take on reasoning, which is actually like a page out of texts on agents and their interaction with environments.
The definition provided by WeirdoFu is pretty good -- its almost straight out of agent/reasoning description in Russell and Norvig I think :). Just one minor point, particularly applicable in the context of games:
While learning is ideal, it is not necessary for reasoning. Instead of generating the AIs knowledge at runtime, you can use some sort of offline knowledge database generated by hand. An expert systems using production rules, frequently written by a knowledge engineer working with an expert in the domain, is one example.
While learning is ideal, it is not necessary for reasoning. Instead of generating the AIs knowledge at runtime, you can use some sort of offline knowledge database generated by hand. An expert systems using production rules, frequently written by a knowledge engineer working with an expert in the domain, is one example.
You usually have rules.
You then use then to 'prof' and action before making it.
Ie.
Question: Should i kill x
Rules/data:
People should not be killed
Criminals should be killed
Nemisis should be killed
Anymody how attacks my friends is a nemisis
X attacked freddy
Freddy is my friend
Therefore x is a nemisis
And therefore x should be killed
Very logical.
From,
Nice coder
You then use then to 'prof' and action before making it.
Ie.
Question: Should i kill x
Rules/data:
People should not be killed
Criminals should be killed
Nemisis should be killed
Anymody how attacks my friends is a nemisis
X attacked freddy
Freddy is my friend
Therefore x is a nemisis
And therefore x should be killed
Very logical.
From,
Nice coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
Quote: Original post by ballist1c
Thanks guys, really helpful :D
now to start the nitty gritty :D
Cheers
We're allowed to do that?
Ok.
You have your rules, which reflects attributes.
You check all of the rules for one thing, then as things change, you only update rules that use the atribute that changes.
Really easy way, is a set of linked lists. One per attribute.
Now, when you make a new rule, you add an entry to each one of the linked lists, with a pointer to the rule.
When one of the atributes changes, go thorough the correstponding linked list, and update all the rules.
From,
Nice coder
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
IMO, Reasoning is just chaining rules and facts together to decide on an actio, as Nice Coder has shown.
I want to go to _place_.
On my path to _place_, there is a road.
The road is busy with cars.
Crossing a road while it is busy with cars leads to death
Death would prevent me from getting to _place_ (or cause me to take longer, depending on the game).
Thus, I must find an alternative to crossing the busy road.
There is another path that does not require walking across this road.
The alternate path is 30 seconds longer than this path.
Roads that are busy become no longer busy after some time.
Roads often stay busy from 4 PM to 5 PM.
It is 4:30 PM, thus the road will be busy for 30 minutes.
The alternate path will take less time than waiting for the road to no longer be busy.
-> Take alternate path
I want to go to _place_.
On my path to _place_, there is a road.
The road is busy with cars.
Crossing a road while it is busy with cars leads to death
Death would prevent me from getting to _place_ (or cause me to take longer, depending on the game).
Thus, I must find an alternative to crossing the busy road.
There is another path that does not require walking across this road.
The alternate path is 30 seconds longer than this path.
Roads that are busy become no longer busy after some time.
Roads often stay busy from 4 PM to 5 PM.
It is 4:30 PM, thus the road will be busy for 30 minutes.
The alternate path will take less time than waiting for the road to no longer be busy.
-> Take alternate path
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement