The $(n,k)$-hypersimplex is the intersection of the unit hypercube with the hyperplane $\sum_i x_i = k$. It contains all the points in $\text{conv}\{ 1_S: S\subset[n], |S|=k \}$ i.e., the convex hull of all binary $n$-dimensional vectors with $k$ nonzero entries.
My question is, for any given hypercube point $\mathbf{x} \in [0,1]^n$ (whose coordinates sum to $k$), how can we express the coordinates of that point in terms of the corners of a $(n,k)$-hypersimplex (for arbitrarily chosen $k$)? In other words, suppose I fix $k$ to some number, $\mathbf{x}$ can be written as a convex combination of $\binom{n}{k}$ binary vectors, each having $k$ ones. I am interested in ways of finding such convex combinations (their coefficients).
In the case of the simplex, there are known ways of expressing any hypercube point in barycentric coordinates. Is there something similar for the hypersimplex?
My first thought is to stack all $\binom{n}{k}$ indicator vectors on a matrix $\mathbf{A} \in \{0,1\}^{n \times \binom{n}{k}}$ and find the coordinates of $\mathbf{y}\in [0,1]^{ \binom{n}{k}}$ such that $\mathbf{Ay} = \mathbf{x}$ and $\sum_{i}y_i=1$. I suppose this could be done with linear programming but it seems kind of expensive in the sense that the linear program will end up having a ton of constraints. Computationally, maybe I could just randomly sample a bunch of them until I get a matrix of sufficiently high rank and then go on to formulate a linear program?
Are there known constructions where the coefficients can be found in a more clever way (either analytically or computationally) without having to deal with all $\binom{n}{k}$ binary vectors?
A naive idea that may work.
Let $x$ be in $[0,1]^n$ with coordinates adding up to $k$. Then $x$ has at most $n-k$ zeroes and at most $k$ ones,
If $x$ has at exactly $n-k$ zeroes or exactly $k$ ones, then $x$ is one of the extremal points $1_S$ with $|S|=k$.
Otherwise, let $i_1<\ldots<i_k$ be the indexes corresponding to the greatest $k$ coordinates of $x$, and let $S = \{i_1,\ldots,i_k\}$. Note that $x_i<1$ for every $i \in S^c$. We choose the largest $t \ge 0$ such that the vector $y = (1-t)^{-1}(x-t1_S)$ belongs to $[0,1]^n$. Since this condition is equivalent to $t \le \min\{x_i : i \in S\}$ and $1-t \ge \max\{x_i : i \in S^c\}$, we set $$t := \min(\min\{x_i : i \in S\},\min\{1-x_i : i \in S^c\}) \in ]0,1[.$$ By construction, the vector $y := (1-t)^{-1}(x-t1_S)$ belongs to $[0,1]^n$ and its coordinates add up to $k$. Moreover, $y$ has at least one more zero or one than $x$. Indeed, $$x_i = 0 \implies (i \notin S \text{ and } y_i=0),$$ $$x_i = 1 \implies (i \in S \text{ and } y_i=1),$$ and we have $t=x_i$ for some $i \in S$ or $t=1-x_i$ for some $i \in S^c$, so $y_i=0$ for some $i \in S$ or $y_i=1$ for some $i \in S^c$.
Hence we may write $x=t1_S+(1-t)y$ and apply a recursive algorithm.