<p>Regarding Question 1.</p>

<p>The examples you gave, linear programs and SDPs (both of which are linear programs over convex cones), can be generalized to convex programs: minimization of a convex function over a convex feasible set.  Since you are looking for 'other families of problems' that are efficient thanks to the presence of convexity, the natural thing to drop is the convex function part, and just look at convex sets.  This is the realm of convex geometry, and here there are lots of algorithms.</p>

<p>One of the standard favorites is:</p>

<p>Martin Dyer,  Alan Frieze,  Ravi Kannan. <I>A Random Polynomial Time Algorithm For Approximating The Volume Of Convex Bodies</I>.</p>

<p>The difficulty here is that the dimension is (at it should be) a part of the input; on the other hand, a naive algorithm samples points on the grid, which sticks the dimension in the exponent of the running time.  The reason why convexity helps is intuitive: convexity gives separation results, things like Farkas's lemma which say that a point is either in a closed convex cone, or you can separate them with a hyperplane.  The relevance here is say that you know some point is in the convex body, whereas some constellation of points around it is not in the body: from here you can lop off a huge piece of the input and never bother sampling from it.  Perhaps I should clarify that the above paper does the estimation by producing a nice sampling algorithm within the body (both of which are useful).  Last I checked, there is still no deterministic analog to this; I just googled to see if the status has changed (seems not), and was fed these notes that have a few references which may interest you: <a href="http://www.cs.berkeley.edu/~sinclair/cs294/n16.pdf" rel="nofollow noreferrer">http://www.cs.berkeley.edu/~sinclair/cs294/n16.pdf</a> .  I never took this class and only looked briefly, so my apologies if there are some problems, but the references there at least seem to have value to you.</p>

<p>For more examples of algorithms exploiting convex geometry, one place to look is the 'Bibliography and Remarks' subsections concluding each section (of each chapter!) of Jiri Matousek's book "Lectures on Discrete Geometry".</p>

<p>Another thing that gets cited a lot, and which seems to have topics for you (but I've never looked beyond the table of contents myself; Matousek on the other hand is .. in my other hand), is "Geometric algorithms and combinatorial optimization" by Grotschel, Lovasz, and Schrijver. (Yes, <i>that</i> Lovasz.)</p>

<p>I think these references have a lot for you so I'll move onto the next question.</p>

<p>Regarding Question 2.</p>

<p>While it is definitely true that convexity is powerful, I have not seen a comment like the one you seek, and I think people are very careful to communicate such a sentiment.</p>

<p>I have an anecdote on this.  One way people 'inject' convexity into problems is to simply.. approximate/model them with something convex.  (For example: replacing rank constraints with norms on the matrix, replacing integers (nonconvex and not even connected) with convex sets of reals.)  A go-to text for this stuff is Boyd &amp; Vandenberghe's "Convex Optimization".  But once I was watching Boyd's videos, and someone gave him the "is convex = efficient" question, and he immediately said SVD.  Note that SVD can be written as a rank constrained minimization problem.  Anyway, my point is that even Boyd is very quick to correct a comment like this.</p>

<p>That said, I have a desire to share two places where I was personally surprised by convex structures (experts can roll their eyes and doze here).  The first are so called 'sum of squares' problems, which are minimization problems over <em>nonconvex</em> polynomials.  Thanks to the interpolation properties of polynomials, you can rewrite these as SDPs.  There are some beautiful course notes on this topic by Pablo Parrilo; you can find that and more info on his web page and some other info in this MO post by Noah Stein:
<a href="https://mathoverflow.net/questions/32533/is-all-non-convex-optimization-heuristic/32634#32634">https://mathoverflow.net/questions/32533/is-all-non-convex-optimization-heuristic/32634#32634</a> .</p>

<p>Another beautiful place is in exponential families.  Now, this is all "obvious" once you realize these are solutions to max entropy (a convex optimization problem), but it's amazing how much convex structure informs the behavior of exponential families (a reference I like here is Wainwright and Jordan's book on graphical models).  This in turn gives one justification for some of the things people do with this sort of modeling.</p>

CC BY-SA 3.0
2011-07-21T00:07:01.580Z
Dear matus, Thanks for your examples and your thoughtful answer. I was wondering though about problems that are genuinely different from convex programming, preferrably discrete ones, where some analogue of convexity shows up.
Vijay D
CC BY-SA 3.0
2011-07-21T10:10:32.573Z
(following your edit) Oh no!  Looks like I totally missed what you actually wanted!!  Unfortunately I don't have anything specific to your question, but you may be interested in the following MO question:  http://mathoverflow.net/questions/45558/the-logic-of-convex-sets .
matus
CC BY-SA 4.0
2022-06-11T12:13:49.153Z
so, there are no discrete problems in this answer?
user1868607
CC BY-SA 3.0
2011-07-07T23:08:01.643Z
2011-07-07T23:08:01.643Z
2017-04-13T12:57:54.777Z
matus
<p>[Edit 21 July 2011: I edited the question to ask for more examples]</p>

<p>This question is asking for documented discussion of or more examples of a heuristic observation.</p>

<p>Some mathematical problems that admit efficient algorithms appear to be convex in nature. I'm thinking of linear and semi-definite programs and various combinatorial problems that reduce to these. </p>

<p>First, are there other families of problems that admit efficient algorithms for the convex/conjunctive case? (I would be particularly grateful for examples of  decision procedures for logical theories) Second, I would appreciate pointers to articles or sections of articles that discuss an opinion such as "lurking under a lot of efficient algorithms is a convex structure." </p>

<p>[Edit, 21 July 2011: Added the following.]</p>

<p>I would like to add some clarifications. I'm sorry I didn't include them earlier. I am interested in logical decision problems. It appears to me that efficient decision procedures exist for the conjunctive fragment of several logical problems. Here are two examples. </p>

<p>Efficient solvers for quantifier-free first order theories (such as SMT solvers for equality, equality with uninterpreted functions, difference arithmetic, etc.) typically have an efficient solver for the conjunctive fragment and use various techniques to cope with disjunction and negation. In static analysis of programs, the commonly used (and efficient) abstractions are based on integer intervals, affine equalities, octagons or polyhedra. In predicate-based abstraction and program verification, there is something called the Cartesian abstraction, which is intuitively about having conjunctions of predicates rather than arbitrary Boolean combinations. All these cases appear to me to be about gaining efficiency by exploiting the conjunctive fragment of the problem.</p>

<p>The conjunctive fragment of the first order theory of linear, real arithmetic can express convex polyhedra. This is why I originally asked about convex programming.</p>

<p>I am interested to know of other problems or examples where efficient solutions (in the theoretical or practical sense) are based on a convex or conjunctive sub-problem. If there is another general condition (Suresh mentioned sub-modularity) please mention it and problems whose solutions exploit that condition. </p>

CC BY-SA 3.0
2011-07-06T16:00:31.267Z
"invitations to think aloud" are usually marked as CW :). Any thoughts on this ?
Suresh Venkat
CC BY-SA 3.0
2011-07-06T23:04:11.853Z
I couldn't locate  CW in the FAQ. I assume the implication is to do with (no) points, in which case I have no issue.
Vijay D
CC BY-SA 3.0
2011-07-06T23:24:58.543Z
@Suresh, "invitations to think aloud" sounds like extended discussion, solicit opinion, etc., probably more suitable for chat than QA, I think that part should be closed as argumentative/non-constructive. On the other hand, IMHO, the reference request part doesn't need to be CW. I would suggest removing "think aloud" part.
Kaveh
CC BY-SA 3.0
2011-07-07T00:56:24.220Z
I have edited out the problematic phrase.
Vijay D
CC BY-SA 3.0
2011-07-07T04:31:41.563Z
one complication in your question is that recent work suggests that submodularity is also something that leads to efficient algorithms. Submodularity of course is a different notion to convexity
Suresh Venkat
CC BY-SA 3.0
2011-07-08T17:26:34.203Z
Submodularity is actually a kind of discrete analogue of convexity. The natural extension of a submodular function $f:\{0,1\}^n\rightarrow \mathcal{R}$ to the real cube $\hat{f}:[0,1]^n\rightarrow \mathcal{R}$ is convex.
Aaron Roth
CC BY-SA 3.0
2011-07-21T00:05:03.530Z
Suresh, thanks for the submodularity pointer.
Vijay D
CC BY-SA 3.0
2011-07-21T11:19:57.517Z
Hi Vijay, thanks for clarifying with the edit.  It seems to me like you are basically asking: which difficult problems are solved by decomposing them into a set of tractable subproblems, which are then combined via some heuristic?  Satisfiability of conjunctions (or disjunctions), convex or submodular optimization--these are all scenarios where a simple greedy algorithm does the trick; it is thus natural to decompose difficult problems (ones without this structure) into these.  There are heaps of examples of this, however maybe someone else can comment specifically on logical formulas.
matus
<ds.algorithms><convex-optimization><philosophy>
Convexity and efficient algorithms.
Vijay D
# Convexity and efficient algorithms.

(Asked by: username_0 on 2011-07-06)

[Edit 21 July 2011: I edited the question to ask for more examples]

This question is asking for documented discussion of or more examples of a heuristic observation.

Some mathematical problems that admit efficient algorithms appear to be convex in nature. I'm thinking of linear and semi-definite programs and various combinatorial problems that reduce to these.

First, are there other families of problems that admit efficient algorithms for the convex/conjunctive case? (I would be particularly grateful for examples of decision procedures for logical theories) Second, I would appreciate pointers to articles or sections of articles that discuss an opinion such as "lurking under a lot of efficient algorithms is a convex structure."

[Edit, 21 July 2011: Added the following.]

I would like to add some clarifications. I'm sorry I didn't include them earlier. I am interested in logical decision problems. It appears to me that efficient decision procedures exist for the conjunctive fragment of several logical problems. Here are two examples.

Efficient solvers for quantifier-free first order theories (such as SMT solvers for equality, equality with uninterpreted functions, difference arithmetic, etc.) typically have an efficient solver for the conjunctive fragment and use various techniques to cope with disjunction and negation. In static analysis of programs, the commonly used (and efficient) abstractions are based on integer intervals, affine equalities, octagons or polyhedra. In predicate-based abstraction and program verification, there is something called the Cartesian abstraction, which is intuitively about having conjunctions of predicates rather than arbitrary Boolean combinations. All these cases appear to me to be about gaining efficiency by exploiting the conjunctive fragment of the problem.

The conjunctive fragment of the first order theory of linear, real arithmetic can express convex polyhedra. This is why I originally asked about convex programming.

I am interested to know of other problems or examples where efficient solutions (in the theoretical or practical sense) are based on a convex or conjunctive sub-problem. If there is another general condition (Suresh mentioned sub-modularity) please mention it and problems whose solutions exploit that condition.

**Tags:** ds.algorithms, convex-optimization, philosophy

> **Comments:**
> **username_1**: "invitations to think aloud" are usually marked as CW :). Any thoughts on this ?  
> **username_0**: I couldn't locate  CW in the FAQ. I assume the implication is to do with (no) points, in which case I have no issue.  
> **username_2**: @Suresh, "invitations to think aloud" sounds like extended discussion, solicit opinion, etc., probably more suitable for chat than QA, I think that part should be closed as argumentative/non-constructive. On the other hand, IMHO, the reference request part doesn't need to be CW. I would suggest removing "think aloud" part.  
> **username_0**: I have edited out the problematic phrase.  
> **username_1**: one complication in your question is that recent work suggests that submodularity is also something that leads to efficient algorithms. Submodularity of course is a different notion to convexity  
> **username_3**: Submodularity is actually a kind of discrete analogue of convexity. The natural extension of a submodular function $f:\{0,1\}^n\rightarrow \mathcal{R}$ to the real cube $\hat{f}:[0,1]^n\rightarrow \mathcal{R}$ is convex.  
> **username_0**: Suresh, thanks for the submodularity pointer.  
> **username_4**: Hi Vijay, thanks for clarifying with the edit.  It seems to me like you are basically asking: which difficult problems are solved by decomposing them into a set of tractable subproblems, which are then combined via some heuristic?  Satisfiability of conjunctions (or disjunctions), convex or submodular optimization--these are all scenarios where a simple greedy algorithm does the trick; it is thus natural to decompose difficult problems (ones without this structure) into these.  There are heaps of examples of this, however maybe someone else can comment specifically on logical formulas.  

---

## 1 answers

### Answer by username_4 on 2011-07-07. Score: 10

Regarding Question 1.

The examples you gave, linear programs and SDPs (both of which are linear programs over convex cones), can be generalized to convex programs: minimization of a convex function over a convex feasible set. Since you are looking for 'other families of problems' that are efficient thanks to the presence of convexity, the natural thing to drop is the convex function part, and just look at convex sets. This is the realm of convex geometry, and here there are lots of algorithms.

One of the standard favorites is:

Martin Dyer, Alan Frieze, Ravi Kannan. *A Random Polynomial Time Algorithm For Approximating The Volume Of Convex Bodies*.

The difficulty here is that the dimension is (at it should be) a part of the input; on the other hand, a naive algorithm samples points on the grid, which sticks the dimension in the exponent of the running time. The reason why convexity helps is intuitive: convexity gives separation results, things like Farkas's lemma which say that a point is either in a closed convex cone, or you can separate them with a hyperplane. The relevance here is say that you know some point is in the convex body, whereas some constellation of points around it is not in the body: from here you can lop off a huge piece of the input and never bother sampling from it. Perhaps I should clarify that the above paper does the estimation by producing a nice sampling algorithm within the body (both of which are useful). Last I checked, there is still no deterministic analog to this; I just googled to see if the status has changed (seems not), and was fed these notes that have a few references which may interest you: <http://www.cs.berkeley.edu/~sinclair/cs294/n16.pdf> . I never took this class and only looked briefly, so my apologies if there are some problems, but the references there at least seem to have value to you.

For more examples of algorithms exploiting convex geometry, one place to look is the 'Bibliography and Remarks' subsections concluding each section (of each chapter!) of Jiri Matousek's book "Lectures on Discrete Geometry".

Another thing that gets cited a lot, and which seems to have topics for you (but I've never looked beyond the table of contents myself; Matousek on the other hand is .. in my other hand), is "Geometric algorithms and combinatorial optimization" by Grotschel, Lovasz, and Schrijver. (Yes, *that* Lovasz.)

I think these references have a lot for you so I'll move onto the next question.

Regarding Question 2.

While it is definitely true that convexity is powerful, I have not seen a comment like the one you seek, and I think people are very careful to communicate such a sentiment.

I have an anecdote on this. One way people 'inject' convexity into problems is to simply.. approximate/model them with something convex. (For example: replacing rank constraints with norms on the matrix, replacing integers (nonconvex and not even connected) with convex sets of reals.) A go-to text for this stuff is Boyd & Vandenberghe's "Convex Optimization". But once I was watching Boyd's videos, and someone gave him the "is convex = efficient" question, and he immediately said SVD. Note that SVD can be written as a rank constrained minimization problem. Anyway, my point is that even Boyd is very quick to correct a comment like this.

That said, I have a desire to share two places where I was personally surprised by convex structures (experts can roll their eyes and doze here). The first are so called 'sum of squares' problems, which are minimization problems over *nonconvex* polynomials. Thanks to the interpolation properties of polynomials, you can rewrite these as SDPs. There are some beautiful course notes on this topic by Pablo Parrilo; you can find that and more info on his web page and some other info in this MO post by Noah Stein:
<https://mathoverflow.net/questions/32533/is-all-non-convex-optimization-heuristic/32634#32634> .

Another beautiful place is in exponential families. Now, this is all "obvious" once you realize these are solutions to max entropy (a convex optimization problem), but it's amazing how much convex structure informs the behavior of exponential families (a reference I like here is Wainwright and Jordan's book on graphical models). This in turn gives one justification for some of the things people do with this sort of modeling.

> **Comments:**
> **username_0**: Dear username_4, Thanks for your examples and your thoughtful answer. I was wondering though about problems that are genuinely different from convex programming, preferrably discrete ones, where some analogue of convexity shows up.  
> **username_4**: (following your edit) Oh no!  Looks like I totally missed what you actually wanted!!  Unfortunately I don't have anything specific to your question, but you may be interested in the following MO question:  http://mathoverflow.net/questions/45558/the-logic-of-convex-sets .  
> **username_5**: so, there are no discrete problems in this answer?  

---

