Minimizing Appreciating Quantities vs. Maximizing Depreciating Quantities Suppose you have a set $S = \{r_1, ..., r_n :\, r_k \in (1, \infty)\, \forall \,k \in \{1,...,n\}\}$. Find a bijective mapping $f: \{0,...,n-1\}\rightarrow \{1,...,n\}$ that minimizes
\begin{align*}
\sum_{k=0}^{n-1}r_{f(k)}^{k}
\end{align*}
Solution: Let $f$ be a mapping that satisfies $k< j \, \rightarrow \, r_{f(k)} \ge r_{f(j)}$. In other words, $f$ sorts $S$ in non-increasing order. To prove optimality, consider a bijective mapping $g$ defined on the same domain and range, and suppose $g$ minimizes the sum. Further, suppose $g$ differs from $f$. Therefore, there must be some inversion: an index $i$ such that $r_{g(i)} < r_{g(i+1)}$. We will show that swapping these two images decreases the total sum, contradicting the optimality of $g$. Notice that if we only swap these two, then the remaining terms of the sum are unchanged. To show that the swap decreases the total sum, we must verify
\begin{align*}
r_{g(i+1)}^{i}+r_{g(i)}^{i+1} &< r_{g(i)}^{i}+r_{g(i+1)}^{i+1}\\
r_{g(i)}^{i+1} -r_{g(i)}^{i}&< r_{g(i+1)}^{i+1}-r_{g(i+1)}^{i}&\iff \\
r_{g(i)}^i(r_{g(i)} - 1)&<r_{g(i+1)}^i(r_{g(i+1)}-1)&\iff 
\end{align*}
But this final inequality holds because each rate exceeds one and by assumption $r_{g(i)} < r_{g(i+1)}$. This contradicts the optimality of $g$, hence any mapping that deviates from sorting the rates in descending order is not optimal.

Now suppose you have a set $S = \{r_1, ..., r_n :\, r_k \in (0, 1)\, \forall \,k \in \{1,...,n\}\}$. Find a bijective mapping $f: \{0,...,n-1\}\rightarrow \{1,...,n\}$ that maxmizes
\begin{align*}
\sum_{k=0}^{n-1}r_{f(k)}^{k}
\end{align*}
Note: It is interesting to point out that the naïve attempt of sorting $S$ in ascending order fails to maximize the sum in certain cases. Take for example the set
\begin{align*}
\biggr\{\frac{1}{10}, \frac{1}{2}, \frac{4}{7}, \frac{3}{5}, \frac{2}{3}\biggr\}&\\
\biggr(\frac{1}{10}\biggr)^0 + \biggr(\frac{1}{2}\biggr)^1 + \biggr(\frac{4}{7}\biggr)^2 + \biggr(\frac{3}{5}\biggr)^3 + \biggr(\frac{2}{3}\biggr)^4&\approx 2.240061476\\
\biggr(\frac{1}{10}\biggr)^0 + \biggr(\frac{4}{7}\biggr)^1 + \biggr(\frac{2}{3}\biggr)^2 + \biggr(\frac{3}{5}\biggr)^3 + \biggr(\frac{1}{2}\biggr)^4&\approx 2.294373016
\end{align*}
You can verify that this second sum is optimal in Mathematica, using the following code

S = {1/10, 1/2, 4/7, 3/5, 2/3};
  p = Range[0, 4];
  perm = Permutations[S];
  totals = Total[#^p] & /@ perm;
  maxPos = First[Flatten[Position[totals, Max[totals]]]]
  perm[[maxPos]]


So my question is: can you think of an efficient rule to maximize the second sum? Currently my best solution is to literally enumerate all $n!$ possible ways to order the terms. Also, why is this problem so much harder? I feel it has something to do with the unboundness of the first problem. A colleague of mine suggested that the solution space of first problem is convex while the second is not, though I do not have a good grasp on why that is. (I know the definition of convexity, but what part of the problem formulation makes the solution space second problem not convex?)
Any help / input would be greatly appreciated.

Some additional input as a follow-up to Dominic Michaelis': I've modified the code slightly so that you can actually check the values of the "outlier" data.
The code now runs as follows:
n = 5;
(actualValues[#] = {}) & /@ Permutations[Range[n]];
rankingList = Table[sample = RandomReal[{0, 1}, n];
   sortedSample = (Last@
       SortBy[{N[Total[#^(Range[Length@sample] - 1)]], #} & /@ 
         Permutations[sample], First])[[2]];
   sortedSampleRanking = Ordering@Ordering@sortedSample;
   actualValues[sortedSampleRanking] = 
   Append[actualValues[sortedSampleRanking], sortedSample];
   sortedSampleRanking
   , {i, 1, 1000}];
Tally@rankingList

(*{{{1, 3, 4, 5, 2}, 367}, {{1, 4, 5, 3, 2}, 283}, {{1, 4, 3, 2, 5}, 6}, {{1, 3, 4, 2, 5}, 41}, {{1, 2, 3, 4, 5}, 173}, {{1, 5, 4, 3, 2}, 53}, {{1, 3, 5, 4, 2}, 10}, {{1, 4, 3, 5, 2}, 46}, {{1, 3, 2, 4, 5}, 16}, {{1, 2, 4, 5, 3}, 2}, {{1, 2, 4, 3, 5}, 3}}*)

You can now extract the actual values of certain rankings that you are interested in by running the following code
actualValues[{1, 2, 3, 5, 4}] (*or whatever other ranking*)

Which in the above case gives the following results.
(*{{0.150845, 0.579054, 0.693527, 0.636326, 0.8711}, {0.50505, 0.620839, 0.632839, 0.624155, 0.98465}, {0.342148, 0.555461, 0.630722, 0.604628, 0.927428}}*)

From the small sample size that we have, it does appear that "unexpected" rankings occur mostly when the two or more numbers that occur in unexpected positions are very close to each other in value.
