How can i formulate a multi objective multi variable optimization problem?
29 ビュー (過去 30 日間)
古いコメントを表示
I'm trying to formulate a multi objective and multi variable problem, but i'm new to matlab and i don't know how i can solve it. I have been able to solve it for a single objective, using optimpro and declaring each variable and restriction, but i don't know how i can formulate it with (as in, which option, which object type, etc...)
I'm replicating the model exposed in this paper: https://doi.org/10.1016/j.apm.2011.10.007
I see the solvers and examples use one variable to solve the problem (when the function is declared, it depends on one variable only, say, X(1) and X(2)). I know how to formulate the model with each variable, i have a test model in which i already solved the problem for each objective, but i don't know how to solve it for both objectives at the same time as i don't know how to formulate it for matlab. This is the whole code i did https://pastebin.com/mUNY6aW3 (ignore my comments and my poor naming sense). As you can see, i have all the data and structure i need, and the model does solve the problem for each objective one at a time.
I mean, i assume i can somehow create an object with an extra dimension to save each variable, something akin to A(:,:,1)=q, A(:,:,2)=v and so on, but i don't know how to acomplish that. Another idea i had is that instead of converting them, i just replace it on the model (instead of writing u, writing X(1), instead of writing q, X(2) or something like that). These ideas respond to the assupmtion i have that to declare a function, i need to do them depending on one variable. I think maybe i can create the expresión for each objective and then do a function like fun=[f1,f2]. I tried playing with these ideas, but i they didn't work (i think i need to set an option for any of them to work, maybe say that the objective function is a series of matrixes or declare that i'm using a multi objective model or something). I know the way i have formualted my problem enables me to extract the inequalities and objective functions, should i need to use the coefficients as constants instead of the many matrixes i have.
I tried to emulate the documentation on multi objective models with my previous ideas, but i got errors because of object types or insufficient arguments, due to my inexperiende and lack of knowledge of matlab. The code i did was based in my knowledge of optimization and a bit of reading of the documentation provided. I have already read the documentation on multi objective optimization, problem based and solver based optimization, but i couldn't find there a way to formulate the problem. So, i'm saying, you can point me to material to read, or give me an example and i'll try my best to understand it and then ask a more specific question.
Lastly, pardon any issues with my grammar, it has been a while since i last wrote in english. Thanks in advance.
0 件のコメント
回答 (1 件)
Alan Weiss
2018 年 11 月 26 日
I suggest that you look at the Design Optimization of a Welded Beam example or other examples in the Multiobjective Optimization section of Global Optimization Toolbox.
Alan Weiss
MATLAB mathematical toolbox documentation
2 件のコメント
Alan Weiss
2018 年 11 月 26 日
Oh, I didn't understand that you have some binary variables. I think that you will have to treat them as completely separate, just taking the four cases into account. There is no built-in functionality for treating a multiobjective problem that has discrete variables.
As for turning your variables from an array into a vector, that is done by linear indexing, and to go from the linear index to the array you can use reshape.
Alan Weiss
MATLAB mathematical toolbox documentation
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!