Ma/improve solves #46

Merged
merged 10 commits into from Aug 4, 2016

Projects

None yet

5 participants

@markan
Member
markan commented Aug 3, 2016

The key change is tweaks to the branchers to avoid some pathological cases with complex problems.

Choosing the package_versions variable to be INT_VAR_SIZE_MIN causes us to spend a large amount of time permuting variables that don't generate many propagations. Switching that to INT_VAR_DEGREE_MAX causes the solver to focus on the most 'influential' package versions first.

Also included are some refactors; a cleanup to avoid segfaulting with the new timer code.

Finally there's preliminary support for the GIST solve visualization tool; that was very helpful to tune the branchers.

@lamont-granquist
Contributor

👍

@danielsdeleo
Member

I'm not very familiar with the stuff that interfaces directly with gecode, but it looks sane. I'm a bit wary of potentially changing the solutions we spit out for complicated graphs, but lots of people are suffering from the performance of some of the pathological cases so I think that tips the balance in favor. 👍

@tduffield tduffield merged commit 96b8444 into master Aug 4, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
@tduffield tduffield deleted the ma/improve_solves branch Aug 4, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment