Looking for guidance on specification for an unknown subset of linear programming. The task at hand:
For a firm making staffing allocation decisions, accept exogenous levels of required services (b), labor input types (x), wage rates for those types (c) and contributions to service minimums by labor type (A), where labor type can contribute to an arbitrary number of entries in the service requirements. Return the labor allocation (staff choices) that minimizes our internal cost function (wages by labor vars). I thought I wanted to run the standard:
\begin{align} \min \ c^T x \\ \text{subject to } Ax \geq b \\ \end{align}
However, this Diet Problem-like routine fails to account for the fact that a worker ("I render the more useful of manual labor OR paper pushing when you buy me"), unlike food, does not yield a composite benefit ("I render Iron AND Protein when you buy me").
I expect that I could reconcile the issue by fabricating a new vector, x', that has an entry at the intersection of every wage rate and labor type and then adjusting matrix A in some non-obvious way, but extending the matrices/vectors manually is both beyond my intuitive reasoning ability and cluttering up my production environment.
Am I on the right track to the solution and, if so, what is the most elegant way to express the change to my problem? If not, how would I structure the problem to reflect the following feature: If I buy a unit of labor (from x) I can only apply its' productivity once, despite the fact that an employee might be able to contribute to some or all of the minimum requirements?
Apologies if this question is meandering or ridiculously simplistic; I am new to both LP and Stack Exchange.
If you assume that each unit of labor purchased can contribute to only one of the required services, then your idea in the fourth paragraph ("I expect ...") sounds right to me. You create a separate variable (component of $x$) representing the amount of each labor type purchased for each individual service. The $b$ vector is unchanged. Adjusting $A$ and $c$ is straightforward. Suppose that there are two labor types with costs $c=(3, 5)$ and three services, and that the original $A$ matrix is $$A=\left[\begin{array}{cc} 1 & 2\\ 3 & 4\\ 5 & 6 \end{array}\right].$$ The new $c$ vector would be $c=(3,3,3,5,5,5)$ (I'm assuming the price of labor in either category is the same regardless of what you use it for), and the new $A$ matrix would be $$A=\left[\begin{array}{cccccc} 1 & 0 & 0 & 2 & 0 & 0\\ 0 & 3 & 0 & 0 & 4 & 0\\ 0 & 0 & 5 & 0 & 0 & 6 \end{array}\right].$$