GA doesn't find a feasible solution

4 views (last 30 days)
MADAN BEHERA
MADAN BEHERA on 8 Jul 2022
Edited: MADAN BEHERA on 10 Jul 2022
Currently I am using Genetic Algorithim in MATLAB ('ga' and 'gamultiobj') for my set of fitness functions which are generally the difference between the calculated and experimental values. I am working with chemical kinetics domain and I have derived the reaction rate equations using a conventional kinetic model startegy called Langmuir Hinshelwood Hougen Watson (LHHW) model.
In the GA (both for ga and gamultiobj), I am using the default values with nonlinear constarints and upper and lower bounds for the parameters to be regressed (I have 14 parameters to be regressed with 8 experimental set of data). When I am running the GA, sometimes it gives me values which are comprehensive and sometimes the solutions are really insignificant and far away from the expected results. Therefore, i further added a loop to the script where the GA is called several times and the optimal values returned by the GA is stored in an excel file. I got to know that out of 20 loop runs, only 3-4 runs yield feasible (and comprehensive results) while for the rest of the runs the values yield a really high fitness function value (huge error).
In order to avoid this change in the solutions (that is normal to find in case of optimisation algorithim like GA), i used 'rng('default') but now all the solutions are bizzare with huge erroneous results (high values of fitness function). Therefore, my question is there a way to avoid this problem of non-feasible solutions in certain GA runs of the same fitness function?
Feel free to let me know if there is any more information that you need to better understand my question.
  3 Comments
Sam Chak
Sam Chak on 8 Jul 2022
Edited: Sam Chak on 8 Jul 2022
Can we view the 8 experimental sets of data, so that we can investigate the feasibility issue?
MADAN BEHERA
MADAN BEHERA on 10 Jul 2022
Edited: MADAN BEHERA on 10 Jul 2022
Thank you @John D'Errico and @Sam Chak for your comments. I will answer your concerns one by one:
Firstly for the queries by @John D'Errico:
1- I have 8 set of datapoints to solve 14 parameters ... yes! I feared this because the number of variables to be regressed were lesser than the number of data points. Looks like I have to make some assumptions to simplify the model and have lesser number of unknown parameters (increasing the number of datapoints is not possible at this moment). However, I believed that this issue can be solved by GA. Isn't that correct ?
2- I have nonlinear constraints. Since, the fitness function is the difference between the calculated and experimental fractional conversion values, the value of these fractional conversions cannot be negative and cannot exceed 1. So, the non linear constraint is 0 <= x <= 1 (where x is the fractional conversion).
Lastly for the queries by @Sam Chak:
Please find the set of experimental data as an excel file in the attachment to this comment. In the excel file:
(i) T(K) represents the temperature of the reactor in kelvins
(ii) P_i represents the partial pressure of the component i like NO, O2, CO2 etc. If mentioned 'in' or 'out' it means it is the partial pressure of the component at the inlet and outlet of the reactor respectively.
(iii) X_i represents the fractional conversion of the component i. The value of this component cannot be negative and more than 1 (already indicated in the nonlinear constraint function for the GA).
(iv) w_cat represents the weight of the catalyst
Thank you again for your comments and hoping to find some leads for the solution to my problem.

Sign in to comment.

Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!