multi- objective solution for specified range of output values for the two functions

2 vues (au cours des 30 derniers jours)
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.....

Réponse acceptée

Alan Weiss
Alan Weiss le 27 Oct 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 commentaires
smriti garg
smriti garg le 27 Oct 2014
Thanx for the reply....Ok, I got it what you suggest.
Further, I want to ask whether 'fgoalattain' can be used for defining multiobjective functions values, say, y(1) = -90, y(2) = 15 and ...finding the value of variable 'n' within bound 1.5<n>6 ?
Smriti
Alan Weiss
Alan Weiss le 27 Oct 2014
Modifié(e) : Alan Weiss le 27 Oct 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

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by