multi- objective solution for specified range of output values for the two functions
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
Alan Weiss
2014년 10월 27일
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
Alan Weiss
2014년 10월 27일
편집: Alan Weiss
2014년 10월 27일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!