embotech / ecos

A lightweight conic solver for second-order cone programming.
GNU General Public License v3.0
471 stars 123 forks source link

ecos/cvx on windows 7 64 bit #83

Closed jeremyftaylor closed 10 years ago

jeremyftaylor commented 10 years ago

Hi, hope you can help.

I've been using ecos (with cvx and calling directly from matlab) for a while. Decided to update to the latest version and I now get error messages and/or matlab crashes.

I've attached a description below.

many thanks Jeremy

output of my cvx_version


CVX: Software for Disciplined Convex Programming (c)2014 CVX Research

Version 2.1, Build 1088 (e790d80) Sat Sep 20 22:03:02 2014

Installation info: Path: C:\Users\jeremy.taylor\workspace\Research\tools\cvx MATLAB version: 8.2 (R2013b) OS: Windows 7 amd64 version 6.1 Java version: 1.7.0_11 Verfying CVX directory contents: No missing files. Preferences: Path: C:\Users\jeremy.taylor\AppData\Roaming\MathWorks\MATLAB\cvx_prefs.mat License host: Username: jeremy.taylor Host ID: 1803732b992e (eth3) Installed license: No license installed.

No valid licenses found.

output of ecos Error using ecos ECOS takes 4 to 7 arguments: ECOS(c,G,h,dims), ECOS(c,G,h,dims,opts), ECOS(c,G,h,dims,A,b), or ECOS(c,G,h,dims,A,b,opts)

If i do

clear all; %http://people.brunel.ac.uk/~mastjjb/jeb/or/morelp.html n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];

cvx_begin cvx_solver ecos variables x(n);

maximize (c' * x);
subject to
    x >= [45; 5];
    A*x <= b;

cvx_end

then i get the following error message Error using ecos Internal problem occurred in ECOS while setting up the problem. Please send a bug report with data to Alexander Domahidi. Email: domahidi@control.ee.ethz.ch Error in cvx_run_solver (line 50) [ varargout{1:nargout} ] = sfunc( inputs{:} ); Error in cvx_solver_shim>solve (line 185) [ yy, xf, info, zz, xK ] = cvx_run_solver( @ecos, ecos_c, ecos_G, ecos_h, K, ecos_A, ecos_b, opts, varnames{:}, settings, 7 ); %#ok Error in cvxprob/solve (line 429) [ x, status, tprec, iters ] = shim.solve( At, b, c, cones, quiet, prec, solv.settings, eargs{:} ); Error in cvx_end (line 88) solve( prob );

for a different problem it gets a bit further but then crashes matlab with a segfault

n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60]; cvx_begin cvx_solver ecos % without this line, CVX will use its default solver variable x(n)

  minimize sum_square(A*x - b)
  subject to
       x >= 0

cvx_end

mcg1969 commented 10 years ago

Jeremy,

Would you mind trying out CVX 3.0 beta and seeing how well it works with the latest ECOS?

http://cvxr.com/cvx/beta

On Oct 1, 2014, at 9:29 AM, jeremyftaylor notifications@github.com<mailto:notifications@github.com> wrote:

Hi, hope you can help.

I've been using ecos (with cvx and calling directly from matlab) for a while. Decided to update to the latest version and I now get error messages and/or matlab crashes.

I've attached a description below.

many thanks Jeremy

output of my cvx_version


CVX: Software for Disciplined Convex Programming (c)2014 CVX Research

Version 2.1, Build 1088 (e790d80) Sat Sep 20 22:03:02 2014

Installation info: Path: C:\Users\jeremy.taylor\workspace\Research\tools\cvx MATLAB version: 8.2 (R2013b) OS: Windows 7 amd64 version 6.1 Java version: 1.7.0_11 Verfying CVX directory contents: No missing files. Preferences: Path: C:\Users\jeremy.taylor\AppData\Roaming\MathWorks\MATLAB\cvx_prefs.mat License host: Username: jeremy.taylor Host ID: 1803732b992e (eth3) Installed license: No license installed.

No valid licenses found.

output of ecos Error using ecos ECOS takes 4 to 7 arguments: ECOS(c,G,h,dims), ECOS(c,G,h,dims,opts), ECOS(c,G,h,dims,A,b), or ECOS(c,G,h,dims,A,b,opts)

If i do

clear all; %http://people.brunel.ac.uk/~mastjjb/jeb/or/morelp.htmlhttp://people.brunel.ac.uk/%7Emastjjb/jeb/or/morelp.html n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60];

cvx_begin cvx_solver ecos variables x(n);

maximize (c' * x); subject to x >= [45; 5]; A*x <= b;

cvx_end

then i get the following error message Error using ecos Internal problem occurred in ECOS while setting up the problem. Please send a bug report with data to Alexander Domahidi. Email: domahidi@control.ee.ethz.chmailto:domahidi@control.ee.ethz.ch Error in cvx_run_solver (line 50) [ varargout{1:nargout} ] = sfunc( inputs{:} ); Error in cvx_solver_shim>solve (line 185) [ yy, xf, info, zz, xK ] = cvx_run_solver( @ecoshttps://github.com/ecos, ecos_c, ecos_G, ecos_h, K, ecos_A, ecos_b, opts, varnames{:}, settings, 7 ); %#ok Error in cvxprob/solve (line 429) [ x, status, tprec, iters ] = shim.solve( At, b, c, cones, quiet, prec, solv.settings, eargs{:} ); Error in cvx_end (line 88) solve( prob );

for a different problem it gets a bit further but then crashes matlab with a segfault

n = 2; c = [1; 1]; A = [50, 24; 30, 33]; b = [40_60; 35_60]; cvx_begin cvx_solver ecos % without this line, CVX will use its default solver variable x(n)

minimize sum_square(A*x - b) subject to x >= 0

cvx_end

— Reply to this email directly or view it on GitHubhttps://github.com/ifa-ethz/ecos/issues/83.

jeremyftaylor commented 10 years ago

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected? e.g. cor = [2, 0.9 ; 0.9, 1]; cvx_clear cvx_begin variable x(2) minimise(x' * cor * x) subject to x == nonnegative(2); cvx_end x = x./ sum(x);

gives: Error using * (line 174) Disciplined convex programming error: Invalid operation: * {real affine vector}

mcg1969 commented 10 years ago

That's odd. Well, I'd roll back then, at least until I figure that out. That should not happen.

On Oct 1, 2014, at 10:03 AM, jeremyftaylor notifications@github.com<mailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected? e.g. cor = [2, 0.9 ; 0.9, 1]; cvx_clear cvx_begin variable x(2) minimise(x' * cor * x) subject to x == nonnegative(2); cvx_end x = x./ sum(x);

gives: Error using * (line 174) Disciplined convex programming error: Invalid operation: * {real affine vector}

— Reply to this email directly or view it on GitHubhttps://github.com/ifa-ethz/ecos/issues/83#issuecomment-57478085.

mcg1969 commented 10 years ago

Here, try this replacement for cvx/builtins/@cvx/mtimes.m

On Oct 1, 2014, at 10:03 AM, jeremyftaylor notifications@github.com<mailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected? e.g. cor = [2, 0.9 ; 0.9, 1]; cvx_clear cvx_begin variable x(2) minimise(x' * cor * x) subject to x == nonnegative(2); cvx_end x = x./ sum(x);

gives: Error using * (line 174) Disciplined convex programming error: Invalid operation: * {real affine vector}

� Reply to this email directly or view it on GitHubhttps://github.com/ifa-ethz/ecos/issues/83#issuecomment-57478085.

mcg1969 commented 10 years ago

Actually, neither of the examples you gave involved quadratic forms anyway. Please try the very models you submitted for your bug report.

On Oct 1, 2014, at 10:03 AM, jeremyftaylor notifications@github.com<mailto:notifications@github.com> wrote:

Hmm, not getting very far with cvx 3.0 and that's before i try mixing in ecos. It appears to be rather less tolerant of my (admittedly totally sloppy) quadratic forms... is that to be expected? e.g. cor = [2, 0.9 ; 0.9, 1]; cvx_clear cvx_begin variable x(2) minimise(x' * cor * x) subject to x == nonnegative(2); cvx_end x = x./ sum(x);

gives: Error using * (line 174) Disciplined convex programming error: Invalid operation: * {real affine vector}

— Reply to this email directly or view it on GitHubhttps://github.com/ifa-ethz/ecos/issues/83#issuecomment-57478085.

jeremyftaylor commented 10 years ago

Fair point. Unfortunately they give exactly the same combination of errors and crashes. I should note that i have to manually run makemex within the ecos/matlab folder. My current mex setup uses the following compiler "Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0".

adomahidi commented 10 years ago

I will investigate the crashes as soon as I get to it - might be beginning of next week though.

mcg1969 commented 10 years ago

OK. Good to know. Obviously there's no reason why CVX should cause ECOS to crash. That's not to say CVX isn't at fault for, say, incorrect results. But not for crashes!

On Oct 1, 2014, at 10:27 AM, jeremyftaylor notifications@github.com<mailto:notifications@github.com> wrote:

Fair point. Unfortunately they give exactly the same combination of errors and crashes. I should note that i have to manually run makemex within the ecos/matlab folder. My current mex setup uses the following compiler "Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0".

— Reply to this email directly or view it on GitHubhttps://github.com/ifa-ethz/ecos/issues/83#issuecomment-57482578.

adomahidi commented 10 years ago

@jeremyftaylor When I run your example on my Mac it runs perfectly fine. Can you try again, please? It seems to be a Windows-related issue then, I guess. Just double checking.

adomahidi commented 10 years ago

This should be fixed now in the develop branch. I have also updated the Win32 and Win64 Matlab Mex binaries.