Re: [ojAlgo-user] QuadraticSolver issue
Mathematics, linear algebra and optimisation
Brought to you by:
apete
From: Anders P. <an...@op...> - 2011-06-13 21:26:15
|
What org.ojalgo.optimisation.State do you get? Why don't you construct a junit test case to show me exactly what you're doing. /Anders On 13 jun 2011, at 16.21, Simon Greaves wrote: > Hi, thanks for helping! > The inequality constraints are the ones being violated. All variables are supposed to be <=1, but I get one variable with values as high as 2.4... > > SG > > > > > From: Anders Peterson <an...@op...> > To: oja...@li... > Sent: Fri, June 10, 2011 4:15:06 PM > Subject: Re: [ojAlgo-user] QuadraticSolver issue > > Which constraint is violated with negative Xi's? > > BTW > > When/if you create the various matrices manually, the way you do, there is no need to (also) use QuadraticExpressionsModel. > > Alternative 1: > > QuadraticExpressionsModel qem = new QuadraticExpressionsModel(VARIABLE); > qem.add...; > qem.add...; > OptimisationSolver qdrtc_slvr = qem.getDefaultSolver(); > > Alternative 2: > > QuadraticSolver.Builder qdrtc_slvr_bldr = new QuadraticSolver.Builder(Q_ms, C_ms).equalities(AE_ms, BE_ms).inequalities(AI_ms, BI_ms); > QuadraticSolver qdrtc_slvr = qdrtc_slvr_bldr.build(); > > /Anders > > > On 10 jun 2011, at 20.29, Simon Greaves wrote: > >> Hello! I'm using the QuadraticSolver in ojAlgo. Solving >> min 1/2 [X]T[Q][X] - [C]T[X] >> when [AE][X] == [BE] >> and [AI][X] <= [BI] >> >> I'm having a problem. Can anyone help? In the equalities I state that the sum the variables must be = 1 (by making AE a row of 1's and BE=1). And in the inequalities I state that all variables must be between 0 and 1 (by making AI an Identity Matrix and AE a column vector of 1's, which along with the equalities restriction means none can go above 1 or below 0). Still, when I run solve(), the result follows that the sum of X is 1, however, sometimes there's negative Xi's... >> >> This is how I instance the solver: >> >> QuadraticExpressionsModel qem = new QuadraticExpressionsModel(VARIABLE); >> QuadraticSolver.Builder qdrtc_slvr_bldr = new QuadraticSolver.Builder(qem).objective(Q_ms, C_ms).equalities(AE_ms, BE_ms).inequalities(AI_ms, BI_ms); >> QuadraticSolver qdrtc_slvr = qdrtc_slvr_bldr.build(); >> >> when I call "qdrtc_slvr_bldr.getAI()" I get the matrix I inserted, so it seem like the object has all the matrices in place. Am I doing something wrong? >> >> >> >> Thanks in advance for any help! >> >> >> >> SG >> >> ------------------------------------------------------------------------------ >> EditLive Enterprise is the world's most technically advanced content >> authoring tool. Experience the power of Track Changes, Inline Image >> Editing and ensure content is compliant with Accessibility Checking. >> http://p.sf.net/sfu/ephox-dev2dev_______________________________________________ >> ojAlgo-user mailing list >> ojA...@li... >> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > ojAlgo-user mailing list > ojA...@li... > https://lists.sourceforge.net/lists/listinfo/ojalgo-user > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev_______________________________________________ > ojAlgo-user mailing list > ojA...@li... > https://lists.sourceforge.net/lists/listinfo/ojalgo-user |