Thread Subject: Updating QHull: Removing redundant constraints (Help with convhullnl on large data)

Subject: Updating QHull: Removing redundant constraints (Help with convhullnl on large data)

From: Chris McIntosh

Date: 16 Mar, 2010 19:12:06

Message: 1 of 3

Hello,

I'm working on a quadratic programing problem where I have a constraint matrix

Ax <= b; where size(A) = [ 20,000 20 ] and size(b) = [20,000 1];

However, many of these constraints are redundant. I need to figure out which ones are not needed, and remove them.

I know of one way to do this:

- Find the convex hull of the constraint space and only keep those points on the hull:
http://www.mathworks.com/matlabcentral/fileexchange/7897-noredund-remove-redundant-linear-constraints-or-inequalities

b = b - A*c; % polytope A*x <= b now includes the origin
% obtain dual polytope vertices
D = A ./ repmat(b,[1 size(A,2)]);
k = convhulln(D);


----

However, here is the problem. When I run convhulln on the data, matlab crashes. Reading about QHull on their website, it seems a number of bugs with large data have been fixed recently, but I don't know how to upgrade QHull.

Does anybody know a better way to remove my constraints, or a way to upgrade QHull to a newer version that might not segfault on my data?

Subject: Updating QHull: Removing redundant constraints (Help with convhullnl on large data)

From: Sandro

Date: 4 Mar, 2011 02:53:04

Message: 2 of 3

I just wonder whether the issue Chris mentioned has some solution.

"Does anybody know a better way to remove my constraints, or a way to upgrade QHull to a newer version that might not segfault on my data?"

The version of qhull used in matlab seems pretty old, "2000-2003"

Sandro

"Chris McIntosh" wrote in message <hnol66$p0k$1@fred.mathworks.com>...
> Hello,
>
> I'm working on a quadratic programing problem where I have a constraint matrix
>
> Ax <= b; where size(A) = [ 20,000 20 ] and size(b) = [20,000 1];
>
> However, many of these constraints are redundant. I need to figure out which ones are not needed, and remove them.
>
> I know of one way to do this:
>
> - Find the convex hull of the constraint space and only keep those points on the hull:
> http://www.mathworks.com/matlabcentral/fileexchange/7897-noredund-remove-redundant-linear-constraints-or-inequalities
>
> b = b - A*c; % polytope A*x <= b now includes the origin
> % obtain dual polytope vertices
> D = A ./ repmat(b,[1 size(A,2)]);
> k = convhulln(D);
>
>
> ----
>
> However, here is the problem. When I run convhulln on the data, matlab crashes. Reading about QHull on their website, it seems a number of bugs with large data have been fixed recently, but I don't know how to upgrade QHull.
>
> Does anybody know a better way to remove my constraints, or a way to upgrade QHull to a newer version that might not segfault on my data?

Subject: Updating QHull: Removing redundant constraints (Help with convhullnl on large data)

From: Zsuzsanna Sukosd

Date: 11 May, 2011 23:17:24

Message: 3 of 3

I am also interested in an updated version of QHull in MATLAB. I wonder if someone is working on it already?

Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
qhull Zsuzsanna Sukosd 11 May, 2011 19:19:08
qhull Sandro 3 Mar, 2011 21:54:16
linear programing Chris McIntosh 16 Mar, 2010 15:14:12
constraints Chris McIntosh 16 Mar, 2010 15:14:12
convhulln Chris McIntosh 16 Mar, 2010 15:14:12
qhull Chris McIntosh 16 Mar, 2010 15:14:12
rssFeed for this Thread

Contact us at files@mathworks.com