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

question on multi-objective #38

Open
atefeh-mehrabi opened this issue May 26, 2020 · 1 comment
Open

question on multi-objective #38

atefeh-mehrabi opened this issue May 26, 2020 · 1 comment

Comments

@atefeh-mehrabi
Copy link

Hi,
Does this code support multi-objective simulated annealing when objectives are multiple different independent functions? Is there any sample or hint on which parts of anneal.py should be modified? I would appreciate your guidance on this and thanks for sharing this repository.

@perrygeo
Copy link
Owner

If you have multiple objective functions, you must combine them into a single function. In simanneal terminology, you have to define the energy method. This could be anything from simple weighting:

    def energy(self):
        a = objective_a()
        b = objective_b()
        return (4 * a) + b

For more complex multi-objective problems, you can add any logic that can be implemented in Python. As long as you return a scalar value, simanneal will find a way to minimize that value.

A common technique, known to me through the use of the conservation planning tool Marxan, is to have positive objectives as "targets" with equal units, while other negative objectives are treated as "penalties" for exceeding a certain threshold.

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

2 participants