MATLAB Answers

How can i formulate this fitness function ?

1 view (last 30 days)
Nicolò Sgarabotto
Nicolò Sgarabotto on 2 Aug 2019
Answered: Navya Seelam on 7 Aug 2019
I just started studying Matlab and I need help.
I would like to represent a fitness function and then perform a genetic algorithm.
The function I have to script is the following in the picture:
To begin with, only the first part of the function would be enough. Once I understand the process of representation of the first part, I think I will be able to script the rest.
So it would be enough to understand how to script the following part.
Only the capital letters are variable, and the lower case letters are constant.
So the variable are the parts circled in red. The other are costants, also in the rest of the Function.
So for exemple i need to formulate a Fitness Function like that:
With N=16 and T=12
Thankyou very much.


Star Strider
Star Strider on 2 Aug 2019
Only the capital letters are variable, and the lower case letters are constant.
What are your independent variables?
What are your dependent variables?
What are the parameters you want to optimise?
Jon on 2 Aug 2019
In your last expression, are P and O N by T arrays, and so for example if in the summation we were at i = 2, t = 3 then Pi2t would be P(2,3) and Oi2t would be O(2,3)?
Nicolò Sgarabotto
Nicolò Sgarabotto on 2 Aug 2019
The function to be minimized is a cost function.
So, is COST = ∑(i=1)^N ∑(t=1)^T〖50 * Pk1t + 70 * Ok1t〗
Where the independent variables are Pk1t and Ok1t.
The dependent variable is the COST.
I want to optimize the variables of the model so as to obtain a minimum cost.
For Jon:
Yeah, exactly as you said.
For example P =[10 , 20 , 12; 15 , 17 , 21]
This is an APP (Aggregate Production Planning) Model.
I am attaching the description of the model variables so maybe it becomes easier to understand what I'm talking about.
And this is some parameters:

Sign in to comment.

Answers (1)

Navya Seelam
Navya Seelam on 7 Aug 2019
In this case P and O are variables of the order 16-by-12. Use syms to create the symbolic variables and nested for-loop to create the symbolic expression. If function handle is required “matlabFunction” can be used.
syms P O [16 12] % creating symboloc variables
for i=1:16
for t=1:12
h=h+50*P(i,t)+70*O(i,t); %creating symbolic expression
FitnessFunction=matlabFunction(h); %converting symbolic expression to function handle


Sign in to comment.

Sign in to answer this question.