I could use some advice on which of the three maximizing options I should go with. {Maximize, FindMaximum, FindArgMax}. Or if someone has a better recommendation, by all means. I have read the blurbs about them but not sure what is the golden number for a “small problem”
I’m working on a scheduling problem, I need about 95% of my variables to be binary, the other 5% can just be integers.
Currently, I have 10,440 variables. My constraints are up to 32,222. However, I really only have about 1,300 if I don’t count the trivial constraints, (x>=0, x<=1 , x:elem: integers) for every x variable.
While maximizing my objective function would be ideal, I really just need a “good” solution. Currently when I try running my program with any of these 3 options its runs for some time until I get an " abort or continue waiting error " . If there is a sleeker way of forcing the variables to be binary that would hopefully help with the runtime.
Any advice on either issues is most appreciated. Thanks
My objective function is and I believe all my constraints are linear as well. There is one I feel skeptical about as to whether the program knows what I’m trying to do.
My X variables have three subscripts so X[i,j,k] with i being a person, j is a class, and k is a time. Well I don’t want any person to have any more than 3 types of classes, j.
SUM X[i,j,k] < 50 Y[i,j] sum from k to all, for a given i and given j’s , SUM Y[i,j] <= 3 sum from j to all, for a given i.
There is nothing special about 50, the main hope is that if an X[i,j,k] is active it forces that Y[i,j] to also be active.
For linear f and cons, x[Element]Integers can be used to specify that a variable can take on only integer values.
To make an integer variable binary, you need a constraint that it is between 0 and 1.
However, your problem may be too big for FindMaximum.