Comments (7)
It sounds to me that your problem is not that sometimes you don't have a solution (because the simulation crashes) but more that your evaluation function is non-deterministic. You are right that NSGA-II makes the assumption that you have a deterministic function and will not re-evaluate a solution for this reason.
What about adding retry if it fails and just assuming after n attempts it truly fails?
from pymoo.
What about simply setting the objective(s) to a very large value, e.g. 1e12 or so?
I am not exactly what you are trying to do in your code, but for the algorithm, it would be also okay to consider a solution simply as infeasible if the evaluation fails (also referred to as death penalty). This might be the cleanest way of implementing this.
If you know before running your third-party code a solution will fail, you can also filter them out beforehand.
from pymoo.
The fact is, bacause of the insteability of the simulation software, it is impossible to decide which solution will fail. And the solution of the same variables may be OK if I run it again. So if I set the objectives to a very large value, I wonder the algorithm will not consider the solutions in the following generations, and that will affect the final search space I think. I am not sure my assumption is right or wrong? If the large penalty of these solutions doesn't affect the final searching space, I think it is a cleanest way.
from pymoo.
Hello @miraclema999 , I would suggest you to create surrogate model for the simulation if possible.
from pymoo.
What about adding retry if it fails and just assuming after n attempts it truly fails?
Sorry for the late reply. I agree with your suggestion. This way will not affect the number of solutions in each generation.
To be honest, I'm not doing well in scripting, can you tell me how to modify this script, to let it retry the generation? Thank you
from pymoo.
Hello @miraclema999 , I would suggest you to create surrogate model for the simulation if possible.
Thank you bro, did you mean that I switch to another algorithm?
from pymoo.
@miraclema999 I meant creating surrogate model with the samples from simulation software and replace it, and finally verify the result with simulation software. Here is the explanation of surrogate model on wikipedia. And here are some mainly steps:
- Generate samples using simulation software
- Create surrogate models by using the samples, and validate/test the surrogate model to make sure the quality
- Replace the simulation by surrogate model in optimization program
- Validate the optimization result in simulation software.
from pymoo.
Related Issues (20)
- Python-3.12 wheels HOT 1
- Tutorial with logist regression HOT 2
- MOPSO Implementation HOT 2
- Tutorial Mixed optimization with NSGA-II HOT 6
- annoying virustotal HOT 4
- Pareto front HOT 2
- Is there a way to couple two inputs? HOT 1
- Welded beam test problem Pareto front contains dominated solutions HOT 4
- Multi-objective Particle Swarm Optimization in Pymoo?
- issue with resuming from checkpoint HOT 4
- SPX is not correctly implemented HOT 1
- Is fast_best_order_sort intended to be usable by NonDominatedSorting? HOT 1
- RVEA not reaching specified number of evaluations HOT 6
- Encountered problems while using pymoo parallelization, hoping to seek help HOT 2
- ModuleNotFoundError: No module named 'optuna' HOT 1
- AssertionError: This implementation of MOEAD does not support any constraints. HOT 1
- Expose algorithm.data HOT 1
- Hello, can hyperparameter optimization be done for multi-objective problems? HOT 1
- 超参数优化HyperparameterProblem HOT 1
- Optimisation parameters for integer types HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pymoo.