Suppose that you want to seat $N$ persons in the office with exactly $N$ seats. Every person assigns own value for the every seat. Is there any algorithm that will provide 'fair' seating? I realize that 'fair' is not the the easily formalized concept.
And the second related question: is it better to assign values for the seats or to provide ordering?
E.g. one can say that they assign values 4, 7, 2, 8 to seats 1, 2, 3 and 4. Or that they prefer seats 4, 2, 1, 3 in this particular order.
If we define a good many things a priori, then we can have something to rank the various seating arrangements so that we can choose a "best" one or ones. In this example, we will define arrangements to be "better" when it let's more people get some of their more preferred seats.
As an assumption, we force each of the $N$ people to have a definite ranking for their seating arrangement. There is always a most preferred seat, followed by a second most, and so forth. This is a common assumption in decision theory to help arrive at some sort of answer to problems of this sort.
First, let's define $\mathbf{d}_i$ to be a $1\times n$ vector for the assigned values for the $n$ seats for person $i$. So, as an example, when we say $$\mathbf{d}_3 = \begin{bmatrix} 3 & 1 & 2 & 4 \end{bmatrix}$$ what we mean is person $3$ would like the second seat as their number one choice, followed by the third seat as their second choice, and etc. Furthermore, let's say that $\mathbf{d}_3 (2) = 1$ is a shorthand way of saying that person $3$ has seat $2$ as their number one choice, and in general, $\mathbf{d}_i (n)$ says what person $i$ ranks seat number $n$.
Next, we need to look at the $N!$ arrangements. Let us say that $\Theta$ is the set of all arrangements and $\rho \in \Theta$ is a given arrangement. Define $\phi_\rho(i)$ to be the function that tells us which seat person $i$ is moved to for the particular arrangement $\rho$. As an example, if we consider the arrangement that just sits person $i$ in seat $i$, then in this example $\phi_\rho (a) = a$
Now that we have these defined, we can look at the variable $$S_\rho = \sum_{k=1} ^N \mathbf{d}_k\left(\phi_\rho(k)\right)$$ This is the sum of everyone's rankings for their seats in arrangement $\rho$. Arrangements that give more people their higher ranked seats will have a smaller value for $S_\rho$. So finally we can say that the arrangement $\rho \in \Theta$ that minimizes $S_\rho$ will be the "best" seating arrangement; it is very possible for more than one arrangement to be considered the "best"
Now this algorithm is much better to use through the use of a computer program, but in groups of smaller people, it could be done by hand in theory. This is also just one way to define what a "best" arrangement can be, so this algorithm is open to opinion. But it is just one example of defining a method to rank the various seating arrangements. If this sort of stuff interests you, I would highly recommend doing some research in decision and utility theory.