Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Simulannealbnd constraints
Replies: 4   Last Post: Aug 11, 2014 3:45 PM

 Messages: [ Previous | Next ]
 Christoph Posts: 3 Registered: 8/9/14
Simulannealbnd constraints
Posted: Aug 9, 2014 4:45 AM

Hi community,

I hope you can help me with this. I want to use the simulated annealing solver (with GUI) for an optimization (minimization) problem that uses a simulink modell. For my problem i have got different variables that can be changed by the solver. I know how the set up a .m file including the cost function and how to define lower and upper boundary conditions for each of my variables, but I wonder if there is a possibility to set additional constraints.
Especially i would need these:

1) The variables that can be change by the solver have to be integers (i.g. I set lb & up [1] & [4] the solver normally can vary the variable like 1.0, 1.1, 1.1545...3.93, 4.0 (double), I'd like the solver to vary those variables only as integers 1,2,3,4)

2) In my simulink modell I calculate different values (with my variables) which should be >, < or == as a defined value. Otherwise the set of variables that the solver has chosen for this iteration step do not meet my needs.

To give you an example:

Variables x(1) and x(2), lb [-3 6], ub [1 9] (in my modell there are 5 variables, chose just one to keep it simple for the example)
The variable have to be an integer x(1) = -3,-2,-1,0,1.
The simulink modell does some calculations like 0.5 * x(1)^2 + x(2) + 5 = val_result;
val_result should be minimized;
1) ( x(1) + x(2) ) / 2 == integer
2) x(1) * 5 < 4 (I know this is kind of ridiculous in this example because I could also change the ub but I need something like that in my modell)

Is there any possibility to solve such an problem with matlab/simulink optimization?
(I can also change the solver if necessary, just thought of simulanneal because it should not get stuck in a local minima that easy)

Do not hesitate to ask if you need further explanation!