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

limited discrepancy search explore strategy #1052

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

guimarqu
Copy link
Contributor

@guimarqu guimarqu commented Sep 7, 2023

No description provided.

@codecov
Copy link

codecov bot commented Sep 7, 2023

Codecov Report

Patch coverage: 95.00% and project coverage change: +0.04% 🎉

Comparison is base (ac69a88) 82.65% compared to head (aea8ba1) 82.70%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1052      +/-   ##
==========================================
+ Coverage   82.65%   82.70%   +0.04%     
==========================================
  Files          89       89              
  Lines        7022     7041      +19     
==========================================
+ Hits         5804     5823      +19     
  Misses       1218     1218              
Files Changed Coverage Δ
src/TreeSearch/explore.jl 97.67% <95.00%> (+1.84%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Collaborator

@rrsadykov rrsadykov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure that LDS as it is implemented is a proper explore strategy. For me, explore strategy is for more about in which order we explore generated children, and not about filtering the generated children. The original LDS was proposed in http://cse.unl.edu/~choueiry/Documents/LDS.pdf as a complete search, but with different explore order of nodes.

Also, the LDS explore strategy as it is implemented now is not that much useful, as it just truncates the number of children generated, if we generate too much. I think we should already generate exactly the number of children we need in diving, as every generated child is not cheap (we do preprocessing for each generated child).

@guimarqu
Copy link
Contributor Author

guimarqu commented Sep 7, 2023

I agree, I'll move the code so we can qualify it as a tree search algorithm. It won't the implemantation of the lds though. We'll have to figure out how we can transmit the number of exepected children to the divide algorithm.

@rrsadykov
Copy link
Collaborator

My understanding is that there should be a storage unit which keeps the tabu list of variables forbidden to the added to the partial solution. The dive algorithm generates the children as long as the size of the tabu list is not more than the maximum size (which is a parameter of the dive algorithm). There is another parameter which is the maximum depth, if the current depth is larger than the maximum one, one only child should be generated.

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

Successfully merging this pull request may close these issues.

2 participants