BookmarkSubscribeRSS Feed
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!
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.
Calcite | Level 5


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?


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?

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..

SAS Employee

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

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

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.


Answered in this thread.



Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

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
  • 6 in conversation