Optimized resource allocation problem I am from ECE background and trying to solve channel allocation problem. Let's assume I have three users and three available channels. I would like to allocate channel among them in such a way that average BER would be minimum.
For example, consider BER matrix for each user for each frequency allocation 
\begin{bmatrix} User/frequency &amp; User1 &amp; User2 &amp;  User3 \\ f1 &amp;0.01 &amp; 0.05 &amp; 0.3\\f2 &amp; 0.12 &amp; 0.045 &amp; 0.02 \\ f3 &amp;0.02 &amp; 0.01 &amp; 0.01 \end{bmatrix}

Now, I would like to allocate channels f1--> User1, f2--> User3 and f3-->User2, which gives least average BER (Sum of each users BER/no of users).
(Note: Same frequency can't allocated to different users.)

Brute force is obliviously one solution, but I am trying to find optimized solution.
This is just the assignment problem: you need to find a maximum-weight matching between the users and frequencies.  The Hungarian algorithm solves this in time $O(n^3)$.