I stumbled upon an interasting combinatorial question while playing a game of Magic: the Gathering.
Take N nodes, each one with an assigned value. Each node's value begins at 1, and may increase as the game progresses. Each move of the game consists of a node adding its value to the value of one other node. The source node does not reduce its value after this operation. Each pair of nodes may only make one move in each direction. The goal is to end up with the greatest possible total value among all nodes after all moves have been made. (The total number of moves will be (N choose 2) * 2.)
For example, consider N=2. The starting configuration is A=1,B=1. To begin the game, Node A adds its value to node B, resulting in A=1,B=2. Then node B adds its value to node A, resulting in A=3,B=2. The game is now over, and the final "score" is 5. The only other possibility is to have node B move first, which simply results in A=2,B=3 and the same final score.
However the problem becomes greatly more complex when more nodes are added. The complexity of the game increases extremely quickly, making brute-force approaches infeasible. So far, the maxima I have achieved for various N through random experimentation are:
But I am by no means convinced these are the best answers (at least for N>2). There are a number of simple instruction sets that can do well, but there always seems to be a better one, at least for some N. I'm curious if there is a simple algorithm to maximize the final value that works on all N.