Complete.Org: Mailing Lists: Archives: freeciv-ai: June 2004:
[freeciv-ai] Re: Stop ferries from yoyo-ing between cities

[freeciv-ai] Re: Stop ferries from yoyo-ing between cities

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-ai@xxxxxxxxxxx
Subject: [freeciv-ai] Re: Stop ferries from yoyo-ing between cities
From: Per Inge Mathisen <per@xxxxxxxxxxx>
Date: Sun, 13 Jun 2004 09:53:05 +0000 (GMT)

On Sat, 12 Jun 2004, Gregory Berkolaiko wrote:
> > I noticed that ferries tend to yoyo between cities that need them for
> > their future production, causing these cities to shift between producing
> > ferries and their actual production every other turn. This patch fixes
> > this.
> I don't think this patch fixes anything broken.If ferry's present
> location needs a boat, the ferry will stay there.The only case when it
> will go for another city is if this other city is about to finish its
> build (and thus has a higher priority).

The reason the patch is fixing something, is that the weighting in
ai_ferry_find_interested_city() is rather weird, and makes ferries way too
eager to travel around to find the supposedly "optimal" place to be.

Another patch might actually be

- if (turns >= turns_horizon) {
+ if (turns + pos.turn >= turns_horizon) {
    UNIT_LOG(LOGLEVEL_FERRY, pferry, "%s is NOT suitable: "

to punish travelling more.

As of now, taking 30 turns traveling over half the world to stay in a city
that will finish its ferry in 31 turns rather than staying in a city that
will finish its ferry in 32 turns is a possible result. What will happen
is that both cities will buy the ferries before 30 turns because they need
it and the ferry they already have will be smack between the two cities,
leaving the player with 3 ferries, one too many.

This example does not really explain the yoyo-ing that I've seen, though,
so I suspect there are more issues here.

   - Per

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