pstlab / oRatio

oRatio is an Integrated Logic and Constraint based solver
Apache License 2.0
6 stars 1 forks source link

Improving scheduling variable and value ordering heuristic #6

Closed riccardodebenedictis closed 4 years ago

riccardodebenedictis commented 5 years ago

Scheduling variable and value ordering heuristics should be improved.

As suggested in Philippe Laborie, Malik Ghallab "Planning with Sharable Resource Constraints", IJCAI 1995: 1643-1651, it is possible to use an heuristic estimator K(φ) such that K(φ)^-1) = Σ (1 + commit(ρ) - commit(ρmin))^-1 where commit(ρ) represents an estimation of commitment and ranges from 0 to 1. In other words, it estimates the loss in flexibility as a result of posting ρ. ρmin is the constraint with the minimum value of commit(ρ).

Roughly speaking, commit(ρ) is equal to 0 if ρ is redundant with the constraints already posted and is equal to 1 if it introduces an inconsistency.

Intuitively, higher values of K(φ) are preferrable for choosing flaws while smaller values of commit(ρ) are preferrable for choosing resolvers.