These problems have something in common, you need to calculate every possible solution and pick the most optimal one.
They are expensive to calculate and it's usually better to use a simpler approximation algorithm (e.g., greedy algorithms).
Can you restate your problem as the set-covering or the traveling-salesperson problems?
- All combinations of "X".
- Have to calculate every possible version of X because you can't break it down into smaller sub-problems.
- Involves a sequence (e.g., cities like traveling salesperson) and it's hard to solve.
- Involves a set (e.g., radio stations set-covering) and it's hard to solve.
- Traveling salesperson.
- Set-covering.
Calculating the shortest way to get from point A to point B can be done with Dijkstra's algorithm but if you want to find the shortest path that connects several points, that's the traveling-salesperson problem, which is NP-complete.