How to present priority list in an optimization problem?

1 次查看(过去 30 天)
I need help with an optimization problem please.
My model is a non linear model and I need to optimize x which has two variables (production rate of each field and its production priority list). The optimization problem as the following:
if true
% code
end
nvars = 10;
lb = [1100 500 150 200 300 1 1 1 1 1];
ub = [2500 1000 500 600 800 5 5 5 5 5];
opts = optimoptions('ga','PlotFcn',@gaplotbestf);
IntCon = [6:10];
[x,fval,exitflag] = ga(@OptimizationFunction,nvars,[],[],[],[],...
lb,ub,[],IntCon,opts);
Inside the main function (OptimizationFunction(x))
if true
% code
end
[NetPV,finalSupply] = OptimizationFunction(x)
NewRates = x(1:5);
field = x(6:end);
NewRates = x(1:5); is the variable rate of each field and it can be any rate between the lower and upper bound of each field.
field = x(6:end); is the order of each field and I have only 5 fields I want to show their production priority. In another world, which field to produce first. If one number was selected, it should be excluded from the list so, the right results can be as: [1 2 4 5 3] or [5 2 4 1 3]...etc
For example a result with x = [100, 300, 400, 500, 600, 1,3,2,5,4] can be translated as operate field 1 with 100, 3 with 300...and field 4 with 600. I need help on how I can ask the optimizer to find the optimum rate to operate each fields. In addition, which fields to produce first.
My problem the model find answer as x = (....... 1 1 1 2 1)

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by