multi- objective solution for specified range of output values for the two functions
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
smriti garg
el 26 de Oct. de 2014
Editada: Alan Weiss
el 27 de Oct. de 2014
Hello Alan Weiss sir,
I want to optimize two equations simultaneously having one independent variable (n), such that I want to maximize y(1) and minimize y(2), so I assigned a negative sign to y(1).
For this, I have defined the two functions in a function file: multi_fault.m like as follows:
function y = multi_fault(n)
a = -97.466; b = 1.3921; x0 = 1.7766; y0 = 93.7192;
a1 = -110228.0527; b1 = 213.913; x01 = 1.5279; y01 = 110230.5287;
y(1) = -(y0+a*exp(-0.5*((n-x0)/b)^2));
y(2) = (y01+a1*exp(-0.5*((n-x01)/b1)^2));
Now, I am using gamultiobj function to get optimized function values within variable range 1.5<n>6.
ObjectiveFunction = @multi_fault;
[n,fval] = gamultiobj(ObjectiveFunction,nvars,[],[],[],[],1.5,6);
It is giving correct result, such that it is giving a series of optimized combination values for y1 and y2 for different values of n.
My problem is that, I want to define the range of output values of the two functions also. Like
-95<y(1)<-80 and 5<y(2)<25.
After optimization, it should give only that n value satisfying these output function values.
Sir, I don't know how to set this output function limit. I have tried fgoalattain and other functions , but do not get the right result. In summary, I also want to define the particular values of the two functions to be optimized rather simply maimizing/ minimizing for the given range of input values.
Kindly help me to solve this. I need it urgently please.
Thanx in advance.....
0 comentarios
Respuesta aceptada
Alan Weiss
el 27 de Oct. de 2014
I know of no simple way of obtaining what you want within the optimization. But it seems to me that you could apply a filter after solving that discards all points on the Pareto front that are outside the ranges you set. In this case, I suggest that you increase the population a bit so that you have plenty of points after discarding the ones outside your desired range.
Alan Weiss
MATLAB mathematical toolbox documentation
2 comentarios
Alan Weiss
el 27 de Oct. de 2014
Editada: Alan Weiss
el 27 de Oct. de 2014
Yes, fgoalattain can address this kind of problem by using nonlinear inequality constraints for the objective functions. There is a relatively new example here on plotting a Pareto front using fgoalattain.
Of course, I might have misunderstood you. Both fgoalattain and gamultiobj accept bounds on the independent variable n.
Good luck,
Alan Weiss MATLAB mathematical toolbox documentation
Más respuestas (0)
Ver también
Categorías
Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!