Well, here's a really simple algorithm that would be better than the current one IMO.
Maintain a CurrentSearch list of sites being searched in current month.
Code:
* Loop through owned sites to find next province to search:
- Capitol? Discard.
- 4 sites known? Discard.
- In CurrentSearch? Discard.
- Rank =
100 * (4 - (current search path level searched in province)
+ 10 * (4 - (# of known sites))
+ (total of other paths already searched in province)
- Rank < CurrentRank? Discard.
- CurrentRank = Rank, add to CurrentSearch list
Needs some modification to handle Tiamat, but so does the current search.