Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2002:
[Freeciv-Dev] Re: Changed AI behaviour in 1.14 BETA
Home

[Freeciv-Dev] Re: Changed AI behaviour in 1.14 BETA

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: "Anthony J. Stuckey" <astuckey@xxxxxxxx>
Cc: "Per I. Mathisen" <per@xxxxxxxxxxx>, Freeciv Developers <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Changed AI behaviour in 1.14 BETA
From: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>
Date: Sat, 07 Dec 2002 01:04:33 -0500

At 07:39 PM 02/12/05 -0600, Anthony J. Stuckey wrote:
>
>On Thu, Dec 05, 2002 at 11:38:51AM +0000, Per I. Mathisen wrote:
>> This is going to be a persistent problem - when generalising and removing
>> ugly kludges in the code, the AI may get worse.
>> 
>> A solution is to move such kludges into the rulesets. For exampe, I think
>> that Navigation and Steam Engine should have a new tech flag AI_Goal which
>> makes the AI crazy to get them, since it is almost impossible to calculate
>> beforehand that you really need these techs (maybe not Navigation,
>> but certainly Steam Engine).
>
>       Why is this "almost impossible to calculate"?  Are you saying that
>calculating win percentages for each unit, ranking those units in tech cost
>per win percentage order, and then quickly researching the techs to enable
>the "best bang for buck" units is painful?

Constantly rederiving these same values over and over again *is* both 
complex and expensive. The logic of this approach is always going to 
be incomplete and thus not very exact, even though horrifically time 
consuming as a return on investment. Your assumption pure unit rankings 
are enough should illustrate both the above flaws and the start of the
slippery slope of an a priori derivation solution.

It is often better to set simpler bias constants like tech goals that
both accomplish the same thing with just as good an accuracy and don't
introduce near the overhead. Influence can be adjusted by tuning, or 
factoring into a simple function along a couple of the more useful 
directions of variance if this produces better play. This is more akin
to a neural net solution (vs your a priori derivation) with the feedback 
adjustment of the constants the learning function. Even better is if
some feedback elements get actively updated during play.

The other pitfall that a priori derivations fall into, is they tend to
be horribly rigorous in pursuing a very limited single track. It is 
much more challenging to play against an opponent that first understands
more than a single choice, and second that any or the top three choices 
are usually equally valid. The winner is the one that can consistently
choose one of the top three everytime, moreover in enough of an 
unpredictable way to remove the edge from an opponent knowing what the
choice will be.

You should remember this game is far more complex than chess and not played
on machines of the Big Blue class. The algorithms and approach should be 
adapted accordingly.

Cheers,
RossW
=====




[Prev in Thread] Current Thread [Next in Thread]