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

Litterature reference for auto scheduling #41

Open
matthieu-pa opened this issue Jan 27, 2021 · 2 comments
Open

Litterature reference for auto scheduling #41

matthieu-pa opened this issue Jan 27, 2021 · 2 comments

Comments

@matthieu-pa
Copy link

First thank you for this implementation of SA! Its flexibility allowed me to get really good results in a few hours on the Quadratic Knapsack Problem by implementing two simple moves.

I was wondering if the auto scheduling from below is something you came up on your own or something which can be found in the literature? If it is from the literature, could you give me the references?

def auto(self, minutes, steps=2000):

Thank you for your time.

@perrygeo
Copy link
Owner

perrygeo commented Jan 30, 2021 via email

@matthieu-pa
Copy link
Author

Thank you for your reply,

I am writing a paper on solving the Quadratic Knapsack Problem with different methods, one of them being SA. I will forward it to you once it is hopefully published.

The way I implemented the move() method was:

  1. try to add a random item among those which would not violate the capacity constraint.
  2. If no item adding is possible without violation the constraint, try to swap 2 random items until I find a pair which would satisfy the constraint.

To make the move "fast" I use np.dot() to evaluate in parallel capacity and profit of each variable if it were removed/added.

I haven't finished benchmarking but I setup Tmax to the maximum worse ΔE possible, e.g the maximum row(column) sum value between each variable in the symmetrized profit matrix, divided by 10. I repeat short burst of SA with steps between 500 and 1500 depending on the instance.

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