BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hi all,

i have to solve a Mixed Integer Non Linear Programming. I created the model with the Optmodel procedure: i have binary variables, linear objective, but a non linear constraint (quadratic).
I guess i have to call now a suitable SAS Solver. Could anyone tell me whether there is a solver in SAS OR 9.1.3 for this kind of program?

Many thanks!
8 REPLIES 8
Matthew_Galati
SAS Employee
SAS/OR does not provide a solver to directly solve MINLP. We have MILP and NLP -- and using these together can often heuristically solve MINLPs. If your problem is simple, R&D and/or tech support might be able to help. Otherwise, you can contact Professional Services for consulting support.
abhik_giri
Calcite | Level 5

Hi,

I was curious to whether the above statements by Matthew (in June '08) still holds true after more than 6 years. Can SAS OR solve Mixed Integer Non Linear Programming?

RobPratt
SAS Super FREQ

You can try PROC OPTLSO:

SAS/OR(R) 13.2 User's Guide: Local Search Optimization

But if your problem can be linearized, you might see better performance by using the MILP solver instead.

We have used over two dozen approaches to tackle various MINLP problems.  Can you share any details for your problem?

wefeqwF
Calcite | Level 5

I also have a very similar problem as abhik above.

I have a binary variable, linear objective and linear constraints. However, when I run optmodel I get the following error:

ERROR: A linear coefficient for constraint 'c' is missing or invalid.

This makes me believe that one of my constraints is not truly linear. I have tried using Transreg and BoxCox to find the right way to transform said constraint with no success..I keep getting the same error.

So I believe the only solution is to use a MINLP solver..

Matthew_Galati
SAS Employee

Please share your OPTMODEL code and we will try to help. You can send it directly to my email or post here.

wefeqwF
Calcite | Level 5

Actually turned out to be a simple fix after I had a co-worker look it over. The variable in the constraint throwing the linearity coefficient error included missing values.

I thought those would just be thrown out by the presolver but I guess not. Once I deleted those rows or changed the value from "." to 0, OptModel worked fine! Smiley Happy

Afdoone
Calcite | Level 5

Hi I saw this post and I have a similar situation, I have a binary variable an a nonlinear variable that I could not change to LP yet so I thought maybe you have an idea.

 

I have two variables as "D" and "Ad" and the condition is:

 

if D<0 then Ad=D

if D>=0 then 0<=Ad<=D

 

I model the constraint as 

 

(D-|D|)/2<= Ad <=D

 

so the left side takes "D" if "D" is negative and "Ad" will be equal to "D" and it takes 0 if "D" is positive. I could nott change this problem to linear. I tried binary variable to change absolute value to the linear form but since I already have one binary, by adding a new one it increases the size a lot and it is not solvable with the memory we have. I appreciate any idea you have.

RobPratt
SAS Super FREQ

Answered in this thread.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 8 replies
  • 3072 views
  • 4 likes
  • 6 in conversation