objective function in case of genetic algorithm for dynamic optimization

3 views (last 30 days)
I have data of 2 coloumns with respect to time . so ihave 1st coloumns of inflow data for time t=1 to t=12(12 months).
similarly 2nd coloumn in for demand of water. Now i have to do genetic algorithm for this dynamic optimization where objective function is to minimize spill of water for time t=1 to t=12 subjected to some constraints. Here storage of tank and spill of water for timeperiods is unknown.and inflow and demand for time periods is known.
So how to define objective function using function handle?

Answers (1)

Meet
Meet on 8 Mar 2023
To define the objective function for your genetic algorithm, you can follow these steps:
  1. Define the decision variables: In your case, the decision variables are the storage of the tank and the spill of water for each time period.
  2. Write down the constraints: The constraints can include the storage balance equation, which relates the storage of the tank at each time period to the inflow, outflow, and spill of water. The constraints can also include upper and lower bounds on the storage and spill of water.
  3. Define the objective function: The objective function is to minimize the total spill of water over the 12-month time horizon. You can use a weighted sum of the spill of water at each time period as the objective function, where the weights represent the relative importance of each time period.
To implement this objective function as a function handle in MATLAB, you can define a function with two input arguments: the decision variables (storage and spill) and the data (inflow and demand). The function should return the total spill of water over the 12-month time horizon. Here's an example code snippet:
function f = objective(x, data)
% x is the decision variables (storage and spill)
% data is the input data (inflow and demand)
% extract the data
inflow = data(:, 1);
demand = data(:, 2);
% extract the decision variables
storage = x(:, 1);
spill = x(:, 2);
% compute the spill for each time period
s = max(0, inflow - demand - storage);
% compute the total spill over the 12-month time horizon
f = sum(s);
end
In this function, ‘x’ is a 12x2 matrix representing the decision variables (storage and spill) for each time period, and ‘data’ is a 12x2 matrix representing the input data (inflow and demand) for each time period. The function first extracts the input data and decision variables, computes the spill for each time period using the storage balance equation, and then computes the total spill over the 12-month time horizon. The ‘max’ function ensures that the spill is non-negative, and the ‘sum’ function computes the total spill.

Community Treasure Hunt

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

Start Hunting!