Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General List of Proposed Improvements and Bugs #3

Open
danlindb opened this issue Feb 21, 2019 · 5 comments
Open

General List of Proposed Improvements and Bugs #3

danlindb opened this issue Feb 21, 2019 · 5 comments

Comments

@danlindb
Copy link
Collaborator

  1. In multi objective optimization, HAMON does not warn the user if the list max_min contains too few items, i.e. when len(max_min) < n_of. When the optimization runs, all individuals are always rank 1, which should not be possible. With respect to this, Hamon should preferably print out a list of all objectives, with names, and specify how it will optimise these objectives. This makes it easier for the user to see what they put in.

  2. Does Hamon have post routines to print results which end up in EA_data/ ?

@danlindb
Copy link
Collaborator Author

  1. The number of input parameters to the code can easily be minimised. Let for example the variables n_of and n_lim simply be given indirectly by the length of the lists var_range and lim_range_orig. It must then be specified in the documentation that these lists must be provided. By making length of input list the way the code figures out the number of objectives and constraints, one minimises the risk of wrongly specifying the setup, and makes the input file shorter and easier to read.

@danlindb
Copy link
Collaborator Author

  1. When more than one element in the list min_max is specified in the input file, whereas the number of objectives are specified to 1 (n_of=1), the optimization does not work. In other words, independently on the number of generations run, the objective function stays constant. Clearly a bug related to how the code runs through the different objectives, and it is possible that a simplification like the previous point (3.) can help this to some extent. It is also possible that a unified class structure that contains the setup of the problem can help this. This way, the class can make checks to make sure that all its necessary values have been set, and set some to default.

@danlindb
Copy link
Collaborator Author

  1. Split the analytical functions into analytical constraints and analytical objective functions. This implies that there should be two functions:
    getAnalyticalObjectives()
    getAnalyticalConstraints()

This should facilitate the use of objectives and constraints for cases when RBF is used for objectives, but an analytical function is used as a constraint. In general, it is probably a good idea to figure out how the code should handle mixed analytical/numerical objectives and constraints. Can we for example model a constraint with a RBF?

@danlindb
Copy link
Collaborator Author

danlindb commented Mar 9, 2019

  1. Hamon reports that all individuals have rank=1 in the fg_summary.csv file, even though some individuals are not rank=1 when the Pareto front is plotted at the end of the simulation. Something is clearly wrong with respect to this. It is also interesting to note that some individuals are classified as non-feasible, whereas they indeed are set as rank=1 in the output file.

@danlindb
Copy link
Collaborator Author

  1. Add functionality to plot the number of individuals that are feasible after mutation and recombination in DE/GA. This could help figure out if the mutation is too aggressive and thereby constantly produces individuals which violate the constraints. This could indicate that one needs to use smaller values of mut_rate in DE for example. Similar to this, it can be useful to have a plot which shows how many of the individuals in the mutated population that made it into the new pupulation, i.e. that won the tournament selection. This can help indicate how efficient the mutation is at producing better individuals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant