Top10 bot with beamsearch
Heuristics
I tried to stick with it for the first few days (but maybe too long) to get better comprehension of the game and also it is fun. Most of it was about heavy pruning, use of next turn shadow, and endgame rule of thumb, complete when: 23 - day <= min(nutrients, max(player1tree3cnt, player2tree3cnt)))
Beam search
Brought me back top20 (after fixing some major bugs)
Pretty similar to @Eurerschezahl’s but with heavy eval. Simulate sun collection till the end than complete all trees. That is why my bot tend to turn the tide in the end.
Pruning
I have used almost every order/limitation what were mentioned, some less freqeunt/important are:
-(on the first turns) when there are no seed I do allow seed before other actions
-I only calc the target of the seed action, and just use best source tree for it on demand
Speedups
I have started without bitboard, because I felt that seeding would be most costly anyway. But later for heavy eval I have added (the simpler) bitboard representation already mentioned. I have also utilized the fact that sun collection has repeated pattern every 6th day (considering that my eval takes no actions).
Other smaller optimization didn’t really matter, the beam reached its limit (the uncertainty coming from opponent actions).
Enemy prediction:
That is what brough the breakthrough #1 around legend open.
Part one is making automatic grow (if there is no next turn shadow).
The other part is real predict for next 1-2 grow/complete actions by running the same beam for the opponent (for waiting opponent or if first action is waiting, i have used second action).
In contrast to my initial feeling of simple optimization problem, it proved to be a very interesting contest. Heuristics were competitive till last few days, and also there was no clear winning search algorithm till…
congratz for @reCurse for the excellent (and can i say shocking) performance with NN in contest!