Jump to content

Fuzzy Logic


Recommended Posts

<BLOCKQUOTE>quote:</font><HR>Originally posted by redwolf:

Actually I would be very surprised if that has got anything to do with fuzzy logic at all.

What you observe here is the outcome of the random numbers that are used to resolve hit probabilities and penetration probabilities on hit and knockout propabilties on penetration. [ 06-07-2001: Message edited by: redwolf ]<HR></BLOCKQUOTE>

To be completely accurate, I think what I was describing was a combination of "random numbers used to resolve hit probabilites" PLUS the effects of fuzzy logic. Let's take the example of a tank that bounces a shot off another tank, then pops smoke. Next time it might not pop smoke. It might fire a tungsten round, or it might, without orders, reverse down a hill to escape the LOS or shift up a hit to get a better firing angle. It's not the hit effects that reflect fuzzy logic, but the response to the hit effects. Similarly with the squad that breaks and runs under pressure but doesn't in a replay. Maybe a slightly different pattern of hits on the squad affected them, but it's part of the sytem, as I understand it, that fuzzy logic creates a different morale response to the fire they were under, even if the hit pattern was identical.

To expand the point a little, the combination of highly randomized hit and penetration possibilites, PLUS fuzzy logic, means you REALLY never know what's going to happen next. In other words, CM combines a more sophistocated and pervasive treatment of randomization with more diverse responses by units to identical results or circumstances. And that's one of the things that makes this game unique.

[ 06-07-2001: Message edited by: CombinedArms ]

Link to comment
Share on other sites

<BLOCKQUOTE>quote:</font><HR>Originally posted by CombinedArms:

It's not the hit effects that reflect fuzzy logic, but the response to the hit effects.

[ 06-07-2001: Message edited by: CombinedArms ]<HR></BLOCKQUOTE>

Now I'm lost. I thought fuzzy logic was 'just' a generalization of 'vanilla' logic with Boolean operators, i.e. the algorithm is still completely deterministic : if you feed it the same situation, it should produce the same decision.

Unless what you're meaning is that small differences in the input ("almost the same" situation) can result in big differences in the output.

Link to comment
Share on other sites

<BLOCKQUOTE>quote:</font><HR>Originally posted by ferdinand:

Now I'm lost. I thought fuzzy logic was 'just' a generalization of 'vanilla' logic with Boolean operators, i.e. the algorithm is still completely deterministic : if you feed it the same situation, it should produce the same decision.

Unless what you're meaning is that small differences in the input ("almost the same" situation) can result in big differences in the output.<HR></BLOCKQUOTE>

Well, I may be wrong--and somebody please correct me if I am: I'm no computer expert-- but my understanding is that fuzzy logic is designed to create different results from the exact same conditions. In the manual (p. 64 in my--most recent--printing) it states that "The TacAI uses 'fuzzy logic' principles when determining the likely reactions of your units. This leads to a rich and varied set of possible unit behavior in different situations, and makes the units appear human in their actions. Some might run away when facing a new enemy close by, some might stand and fight or even charge."

Now, as I've stated, what I took this to mean--and it APPEARS to be confirmed by testing--is that the same circumstances will create different reactions in a given unit, based on largely random factors. Maybe BTS could confirm or deny?

[ 06-07-2001: Message edited by: CombinedArms ]

Link to comment
Share on other sites

Fuzzy logic comes out with the same results for the same input.

However, what probably happens is that the values the logic operators have before they enter the engine are initialized or modified by random numbers that are gotten fresh for each game run.

Link to comment
Share on other sites

<BLOCKQUOTE>quote:</font><HR>Originally posted by redwolf:

However, what probably happens is that the values the logic operators have before they enter the engine are initialized or modified by random numbers that are gotten fresh for each game run.<HR></BLOCKQUOTE>

Fuzzy logic is not concerned with random numbers so much as uncertainty and difficulty of classification.

Say you have some rules to govern how a tank should behave when it sees an enemy antitank team. What do you do about enemy infantry that is unidentified? Maybe it's an AT team, and maybe it isn't. Instead of picking one or the other (through random number generation or some other method) you can assign a value of say 20%, to capture the notion that this unit probably isn't an AT team, but it might be. If the enemy infantry is German, maybe you automatically bump the "is AT unit" value a bit because of the chance of inherent panzerfaust capability, especially at later dates when PF ranges are higher. If you're getting fancy, you might further adjust the value up or down based on the behavior and position of the unit in question.

Once the values of all the predicates are determined, then you can start evaluating rules to determine actions. Choice of which rules to fire might (but need not) depend on random number draws compared to various predicate values.

[ 06-07-2001: Message edited by: L.Tankersley ]

Link to comment
Share on other sites

Dr. Brian wrote:

From what I can tell, CM does not have an AI (as defined in academia or research circles).

I've always liked best the following AI definition:

<BLOCKQUOTE>quote:</font><HR>

A problem is an Artificial Intelligence problem if we humans can solve it but we don't have any idea how to get machines do it.

<HR></BLOCKQUOTE>

The corollary of this definition is that when we actually find a method to solve the problem, it is no more AI.

L.Tankersley wrote:

Expert systems tend to be rule-driven; that is, you will have a lot of rules like

if A and B then do C

Here should be noted that the research on traditional expert systems (as first conceived in the 70's and then hyped in the 80's) is dead. Or so close to death that it should be taken behind the barn and relieved of its misery.

The main problem with old-style expert systems is that rules like:

If NOT A then B

If NOT B then A

tend to cause infinite loops in the inference engine. (Starting from the first rule the engine concludes that B is true if A is not. It then tries to find whether A is true and finds that it happens when B is false. Then it tries to find if B is true and finds that it is if A is not true. Then it again tries to prove A and so on to the end of the world or the user's patience.)

Also, maintaining the systems became soon a major problem. The standard industrial excample, Digital's XCON, had ~40000 rules and 40% of them changed each year. (The figures may be off, I'm not inclined to dig up the relevant paper ... Oh, it was just beside my monitor. The 40% was change correct but there were only ~17000 rules in 1988, I don't have newer references at hand).

First new-generation rule-based expert system prototypes are now entering the use. They are mostly based on the stable model semantics of normal logic programs or some derivative of it. The stable semantics removes the nasty theoretical problems of old rule-based systems. Their main problem in practical use is that no-one has yet found out a sound way of adding probabilities to the rules so basically the systems operate using the closed-world assumption (i.e., everything important is always known).

By this far you may start to wonder why I'm writing this long on the subject of rule-based expert systems, when it is pretty much established that CM isn't one, at least in the traditional sense. Well, I'm working in a research team that has created an implementation of the stable semantics and my future doctoral dissertation will most probably be about the subject. (And here's a link to the software homepage http://www.tcs.hut.fi/Software/smodels )

- Tommi

Link to comment
Share on other sites

×
×
  • Create New...