MATLAB Answers

Difficulty implementing simulated annealing algorithm

3 views (last 30 days)
Abbi Hashem
Abbi Hashem on 25 Jun 2019
Commented: Abbi Hashem on 25 Jun 2019
While there are exaplanations for this (see the following link), I couldn't figure out exactly how to implement it:
This is the code that I am typing, based on the info in the link:
type simple_objective
function y = simple_objective(x)
x1 = x(1);
x2 = x(2);
y = (4-2.1.*x1.^2+x1.^4./3).*x1.^2+x1.*x2+(-4+4.*x2.^2).*x2.^2;
ObjectiveFunction = @simple_objective;
x0 = [0.5 0.5]; % Starting point
rng default % For reproducibility
[x,fval,exitFlag,output] = simulannealbnd(ObjectiveFunction,x0)
I don't understand what exactly is wrong with that code (I keep getting an error). I am very new to MATLAB and would appreciate any help!

  0 Comments

Sign in to comment.

Accepted Answer

Stephan
Stephan on 25 Jun 2019
rng default % For reproducibility
x0 = [0.5 0.5]; % Starting point
[x,y,flag,output] = simulannealbnd(@simple_objective,x0)
function y = simple_objective(x)
x1 = x(1);
x2 = x(2);
y = (4-2.1.*x1.^2+x1.^4./3).*x1.^2+x1.*x2+(-4+4.*x2.^2).*x2.^2;
end

  3 Comments

Abbi Hashem
Abbi Hashem on 25 Jun 2019
I still get the following error:
Undefined function or variable 'x'.
Is there something else to add to the code to make this error go away?
Stephan
Stephan on 25 Jun 2019
did you exactly copy my code? it runs for me with result:
Optimization terminated: change in best function value less than options.FunctionTolerance.
x =
-0.0896 0.7130
y =
-1.0316
flag =
1
output =
struct with fields:
iterations: 2948
funccount: 2971
message: 'Optimization terminated: change in best function value less than options.FunctionTolerance.'
rngstate: [1×1 struct]
problemtype: 'unconstrained'
temperature: [2×1 double]
totaltime: 1.1943
Abbi Hashem
Abbi Hashem on 25 Jun 2019
I was typing something wrong, it just did, thank you so much!

Sign in to comment.

More Answers (0)