industrial-optimization-group / desdeo-problem Goto Github PK
View Code? Open in Web Editor NEWThis repository contains the packages that build the problem objects for the desdeo framework.
License: MIT License
This repository contains the packages that build the problem objects for the desdeo framework.
License: MIT License
desdeo-problem/desdeo_problem/Objective.py
Line 144 in fd83eeb
Consider having them all be one or the other?
No option for maximization, default is minimization.
Recently added test problems should be added to the __init__.py
file located in the testproblems module. Each function generating a test problem should be imported as done here and the function name should be added to the list stored in the __all__
variable here.
By adding this enhancement, we can import test problems from the testproblems module easily as such: from desdeo_problem.testproblems import ProblemName
.
desdeo-problem/desdeo_problem/Problem.py
Line 196 in fd83eeb
A method should be implemented in MOProblem
which checks whether each objective is supposed to be minimized or maximized. This information is purely informational. Problems, and thus objectives, should be defined in DESDEO in minimization form.
The type (hint) signature of the method should be:
def get_objective_directions(self) -> List[bool]
...
The tests test_evaluate_gaa
and test_evaluate_multiple_clutch_brakes
are not passing. The tolerance of the comparison to the expected value should be fine tuned. We arrived to the conclusion with @maaviixu earlier, that the code is correct and the discrepancies in the current comparisons stem from floating point precision errors and updated code (i.e., the true value was originally computed with an older version of the referenced test problem).
I added the following lines to all the files to prevent the output. I do not know enough about logging to know if this is a good solution or not.
# To prevent unexpected outputs in ipython console
logging.getLogger("parso.python.diff").disabled = True
logging.getLogger("parso.cache").disabled = True
logging.getLogger("parso.cache.pickle").disabled = True
More info: ipython/ipython#10946
This should probably be changed to a warning instead of exception. Some optimization methods can breach the limits set to the variables when evaluating, for example, gradients using a central point.
I.e., what is happening here
desdeo-problem/desdeo_problem/Problem.py
Line 203 in cf48404
Considering checks on line 181 and 192, do you really need the third check?
desdeo-problem/desdeo_problem/Objective.py
Line 248 in 30f2a5a
Initial values are not needed anywhere, so no need to enforce them.
Line 14 in 30f2a5a
Needs approval from Honda before use.
This will help us enable reading MOPs from a file. We can even try to extend the format ourselves to support simulators and scenarios. If there exists a format with those features already, we can implement that instead.
desdeo-problem/desdeo_problem/Problem.py
Line 398 in cf48404
This seems to be the best place to make that check
Refactor the current DTLZ, ZDT and WFG problem formulations to set an example for future problems.
The so-called CTP problems introduced in https://link.springer.com/chapter/10.1007/3-540-44719-9_20 should be implemented in desdeo-problem.
desdeo-problem/desdeo_problem/Problem.py
Line 492 in 96891b8
I think the user should have the option to specify whether they want to maximize or minimize. This can be done in two ways. Either problem.evaluate should return (objectives, constraints, fitness, uncertainity), where fitness = objective value multiplied by +/- one depending on whether to minimize or maximize, OR, the fitness calculation should be done in the optimization methods.
This should also enable us to make visualizations better.
desdeo-problem/desdeo_problem/Problem.py
Line 349 in cdb3eb8
desdeo-problem/desdeo_problem/Problem.py
Line 949 in 093c186
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.