objective function in genetic algorithm to minimize movements
1 次查看(过去 30 天)
显示 更早的评论
how to define this function in matlab
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/159578/image.png)
where t=number of parts, gamma =cost, g=number of groups,
o=operation of part, *Y(o,t,g)*= 1 if operation o of part t is processed in cell c
here is a set of data first a population is created representing the machines in group using code:
Operation_time={[10,0,0,10,0,20,15] [0,10,10,15,0,0,20]} %operation time of parts on machines
t=2
g=3
Types_Machines=7
Vmin=1;
Vmax=3;
nVar=Types_Machine
VarSize=[1 nVar]
%initial Population
for i=1:10
pop(i).Position=randi([Vmin,Vmax],VarSize);
end
now this population is to be evaluated on the above mentioned function to minimize the cost(gamma). basically the equation is showing a sum of all movements of parts between machine groups.. for example I define a pop(i).Position= [1 1 2 3 1 2 1] it is interpolated as machine (1,2,5,7) are placed in group 1, machine(3,6) are in group 2 and machine 4 in group 3..now to check this chromosome fitness, the criteria is set which is the minimum flow of parts between groups..parts data is given in operation_time cell array showing that part 1 uses machine (1,4,6,7) according to non zero entities of this array.now according to the pop(i).Position
- part 1 goes to machine 1 which is assigned group 1*,
- then it goes to machine 4 which is in group 3 so there is a movement of part from one group to the other group
- then again part goes to machine 6 which is assigned group 2 and part moves to another group and
- then next non zero value of Operation_time is at place 7 and chromosome value at 7 position is different from the previous therefore another movement is made.thus the value of Y(o,t,p) becomes 4..now how to make this into fitness function so that each chromosome is checked for minimum movements made
can anyone please guide me how to code this objective function?
2 个评论
John D'Errico
2017-1-7
编辑:John D'Errico
2017-1-7
I'm sorry, but I doubt that anyone will be able to help you as this question is written. The problem is your question is so confusing as you have posed it. You have not specified the necessary information to understand it.
What does this mean?
"o=operation of part, Y(o,t,g)= 1 if operation o of part t is processed in cell c"
For example, what is Y? What is c? What does it mean in terms of MATLAB to know what "processed" refers to?
A variable means nothing at all without understanding what it contains. Those numbers have no context until you explain what they mean to YOU. And when you create your own jargon, we cannot guess what you intend by those words.
So help people to help you.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!