Jump to content

Human intuition in AI


Recommended Posts

There seems to be a lot of discussions on the board how to implement the AI in SC2. But as I see it, the general consensus is that the AI should be event driven, that is, some predefined strategies triggered by some predefined propabilities.

And then I read something about 'A program can never have intuition like humans', think it was JerseyJohn. At first I agreed, but now thinking about it, I believe there is a way of giving the AI (at least some) intuitive skills.

The idea, on a more abstract level, is that the AI has to learn from its experience. But the only way it can do that is to observe games (or part of at least). So, in order to do that it would be great if there were an option in SC2 to automatically upload games when played to some server/database. Here a program could analyse the games, with some pattern recognition techniques, and then learn from these observations. Then if this was 'checked' in the option panel of SC2, the AI could ask the program on the net for guidance on what to do in some situations. With some clustering techniques the players (if every player had a unique player id) and/or stragtegies could even be segmented, and the AI could use that information to apply the most suited strategy.

There are several ways an AI can learn from these logged games. A simple example could be to optimize the free parameters in the scripted AI, e.g. the propabilities for taking certain tasks/strategies when the predefined events occur.

This was just an idea, and not something Hubert should go into before release, but IMO I believe it has potential. For the solo players it would be great with a continously adaptive AI who gets better and better (as more games are logged). And the program that analyse the data could be upgraded independently of the game, making it more sophisticated progressively over the time.

The idea is partly based on the way they made the chess program Deep Blue, which analysed more than 700.000 grandmaster games in order to optimize the evaluation parameters of game board positions.

Just an idea - what do you think? :)

Jakob

Link to comment
Share on other sites

the general consensus is that the AI should be event driven, that is, some predefined strategies triggered by some predefined propabilities.
I don't see this being the case. Hubert has previously described his AI as an implementation of fuzzy logic:

Generally I tried to use Fuzzy Logic and broke it down into a few levels along the lines of what the AI has to do at the basic combat level, an immediate objective level where it has to think about defending or seeking out resources/cities etc., and then the strategic level, who do I declare war on etc.
Now I don't presume to know the details about how this works, but there must be generic algorithms that weigh various parameters and then make strategic/operational/tactical decisions. These should apply to custom games that players will create. It would be interesting to see if the weighting factors could be optimized over time by having the AI learn from its games.

There will be AI event scripts to drive certain strategies. Basically, there will be events for planning and executing operations such as Barbarossa or D-Day, purchases, research, and diplomacy. There may be others as well, and we'll just have to wait and see how they work.

Think of SC2 as having a "perfect storm" of features that should ensure challenging and variable gameplay from the computer opponent. A decent fuzzy logic AI, AI event scripts to drive certain historical and ahistorical strategies, and then event scripts to trigger various other things. All in all, there should be plenty of surprises to keep you coming back for another game.

Link to comment
Share on other sites

A few comments on the Fuzzy Logic in SC1;

a. It was good at the tactical level, with the exception of not concentrating air units on destroying a front line unit. (it would often attack units behind the front line)

b. At the operational level it tended to use operation movement too often and concentrate HQ units where they would be cut off and not utilized. In a recent game vs the AI, the Axis AI located 2 Italian and 3 German HQ units in Greece along with one Italian corps. In another game it allowed 3 German HQ and 1 Italian HQ to but cut off along the Northern Russian cost. The withdrawal strategy and placement of HQ units needs to be fine tuned. Additionally, it did not know how to conduct an offensive action on one front while conducting an holding action on another front.

c.At the strategic level the Fuzzy AI tended to always follow the same strategy, without looking at the map or being willing to explore or at an elementary level learning from its actions.

Example for the Opening Game Axis AI;

Attack Options: France, Low Countries, Denmark

Key Objective: French Surrender

In SC1 the AI would only choose France and/or Low Countries. Often time wasting too much time attacking the Maginot line before switching to the Maginot Line. It would never attack Denmark before France surrendered.

I would like to see the Fuzzy Logic track how long it takes to accomplish its first Key Objective (French Surrender) and use this to adjust the chance for the various attack options.

Example:

Attack Denmark then Low Countries then France

Attack Denmark and Low Countries then France

Attack Low Countries then France

Attack France Maginor Line

Attack France Maginot Line and Low Countries then Denmark

[ December 04, 2005, 09:41 AM: Message edited by: Edwin P. ]

Link to comment
Share on other sites

There will be AI event scripts to drive certain strategies. Basically, there will be events for planning and executing operations such as Barbarossa or D-Day, purchases, research, and diplomacy. There may be others as well, and we'll just have to wait and see how they work.
I would be interested in seeing Scripts for the Allied AI to Liberate the Nordic Countries, and Defend Egypt.

For the AXIS I would like to see event scripts for Conquering Vichy France, launching a Sea Lion, Conquest of the Nordic Countries and Conquest of the Middle East, Conquer Vichy (including Algeria) and Sicily.

[ December 04, 2005, 09:42 AM: Message edited by: Edwin P. ]

Link to comment
Share on other sites

×
×
  • Create New...