Combinatorial optimization problem

In summary, the conversation discusses an optimization problem involving choosing a set of tools to perform certain tasks while minimizing cost. The problem can be solved using algorithms such as branch and bound, network simplex, dynamic programming, and mixed integer programming. Approximation algorithms and ensemble approaches can also be used. The simplex algorithm can be an effective tool for solving NP-hard problems.
  • #1
csopi
82
2
Hi,
I have the following optimization problem. I have a list of tasks that I should be able to perform with my tools. Each tool costs a certain amount of money, and may be used to carry out a finite number of tasks. The goal is to choose an optimal set of tools in such a way that the toolset can do all the required tasks, while the total cost should be minimal.

Any idea what kind of algorithm shall I use to solve this? It looks like a standard combinatorial optimization problem, I suppose there should be a solution for it.

Many thanks!
 
Mathematics news on Phys.org
  • #2
Start here and use the terms as search terms to find somethingof interest. It's a wide subject where there's a lot to earn, so there's an awful lot of material
 
  • #3
BvU said:
Start here and use the terms as search terms to find somethingof interest. It's a wide subject where there's a lot to earn, so there's an awful lot of material

Thanks for the immediate reply! I have heard about this one, actually already tried a basic version. I am wondering if there are other methods? B & B is an "art" for me, not sure what is the most efficient way for bound estimation, that's why I am asking.
 
  • #4
Can you formulate similar to a weighted bipartite matching problem (with tools on one side, and tasks on the other), and solve it as a min-cost max-flow problem using the network simplex algorithm?
 
Last edited:
  • Like
Likes StoneTemplePython
  • #5
csopi said:
Thanks for the immediate reply! I have heard about this one, actually already tried a basic version. I am wondering if there are other methods? B & B is an "art" for me, not sure what is the most efficient way for bound estimation, that's why I am asking.

To be clear everything is an "art" when you're dealing with NP Hard problems. Combinatorial optimization problems invariably fall under into this bucket or close relative, unless there is some very special structure to exploit (see dynamic programming in particular if you find a way to make subproblems overlap and above post on network simplex, which roughly means very special linear program that gets integer results).

Other power tools are dynamic programming and mixed integer programming (MIP). These are for exact solutions and run in exponential time. A quick and easy bound on optimality comes when you relax the integer domain requirement of your problem and run it as a linear program.

There are tons of approximation algorithms out there as well, including some very powerful stuff with semidefinite programming that I've been meaning to learn. Local search with randomness sprinkled in is a popular method (simulated annealing being a well known flavor of this).

- - - -
In general this not an easy class of problems and it takes a lot of sophistication (and patience) to deal with this stuff. Sometimes people find ways to mix and match tools, creating an ensemble approach.

If it were me, I'd first code up the mixed integer program (and actually first run the LP relaxation to get a fast bound). Give the MIP a few hours and see if it terminates.
 
  • Like
Likes BvU
  • #6
This 2013-2014 paper: The Simplex Algorithm is NP-mighty, by Yann Disser and Martin Skutella, has some good insights regarding use of the simplex algorithm as a tool for for solving NP-hard problems.
 

What is a combinatorial optimization problem?

A combinatorial optimization problem is a type of mathematical problem that involves finding the best solution from a finite set of possible solutions. It is characterized by having a large number of possible combinations or arrangements, making it difficult to find the optimal solution using traditional algorithms.

What are some real-world applications of combinatorial optimization problems?

Combinatorial optimization problems have a wide range of applications in various fields such as logistics, scheduling, network design, and resource allocation. They are used to optimize the routes of delivery trucks, schedule airline flights, design communication networks, and allocate resources efficiently in manufacturing processes.

What are some common techniques used to solve combinatorial optimization problems?

Some common techniques used to solve combinatorial optimization problems include linear programming, dynamic programming, branch and bound, and metaheuristics such as genetic algorithms and simulated annealing. Each technique has its own strengths and weaknesses, and the most suitable approach depends on the specific problem being solved.

What is the difference between a combinatorial optimization problem and a continuous optimization problem?

The main difference between a combinatorial optimization problem and a continuous optimization problem is the nature of the variables involved. In combinatorial problems, the variables are discrete and can only take on certain values, while in continuous problems, the variables can take on any value within a specified range. This difference also affects the techniques used to solve these problems.

How do you evaluate the quality of a solution to a combinatorial optimization problem?

The quality of a solution to a combinatorial optimization problem can be evaluated by comparing it to the optimal solution or by using a performance metric. The most common performance metric is the objective function, which quantifies the value or cost of a solution. Other metrics may include the number of resources used, the time it takes to complete the solution, or the accuracy of the solution compared to real-world data.

Similar threads

  • General Math
Replies
6
Views
1K
Replies
6
Views
1K
  • General Math
Replies
13
Views
1K
  • General Math
Replies
2
Views
1K
  • Programming and Computer Science
Replies
17
Views
955
Replies
2
Views
622
  • Set Theory, Logic, Probability, Statistics
Replies
10
Views
1K
Replies
2
Views
1K
  • General Math
Replies
2
Views
2K
  • General Math
Replies
2
Views
6K
Back
Top