implements the standard flatten procedure
performs the relaxation of the critical path This N is our contribution; not found in iFlatiRelax papers.
performs the relaxation of the critical path This N is our contribution; not found in iFlatiRelax papers. relaxes N additional dependencies on a critical path (if n are found)
This solves the jobshop by iterative relaxation and flattening
This solves the jobshop by iterative relaxation and flattening
the max number of iterations of the search
the number of no successing noimprove that will cause the search to stop
returns a randomly chosen boolean (50%-50%)
returns a randomly chosen boolean (50%-50%)
returns a random permutation of the integers in [0; N]
returns a random permutation of the integers in [0; N]
return the first element r that is allowed: st(r) is true
return the first element r that is allowed: st(r) is true
is optional and set to true if not specified
return the first couple of elements (r,s) that is allowed: st(r) is true the order is lexicographic
return the first couple of elements (r,s) that is allowed: st(r) is true the order is lexicographic
is optional and set to true if not specified
return an element r that is allowed: st(r) is true this selector is randomized; in case of tie breaks the returned one is chosen randomly
return an element r that is allowed: st(r) is true this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return a couple (r,s) of elements r that is allowed: st(r,s) is true this selector is randomized; in case of tie breaks the returned one is chosen randomly
return a couple (r,s) of elements r that is allowed: st(r,s) is true this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return an element of the range.
return an element of the range. IT is selected randomly with a uniform distribution this is performed in O(1)
return an element r that is allowed: st(r) is true, and maximizing f(r) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
return an element r that is allowed: st(r) is true, and maximizing f(r) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return a couple (r,s) that is allowed: st(r,s) is true, and maximizing f(r,s) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
return a couple (r,s) that is allowed: st(r,s) is true, and maximizing f(r,s) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return an element r that is allowed: st(r) is true, and maximizing f(r) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
return an element r that is allowed: st(r) is true, and maximizing f(r) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
is optional and set to true if not specified
return a couple (r,s) that is allowed: st(r,s) is true, and maximizing f(r,s) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
return a couple (r,s) that is allowed: st(r,s) is true, and maximizing f(r,s) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
is optional and set to true if not specified
return an element r that is allowed: st(r) is true, and minimizing f(r) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
return an element r that is allowed: st(r) is true, and minimizing f(r) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return a couple (r,s) that is allowed: st(r,s) is true, and minimizing f(r,s) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
return a couple (r,s) that is allowed: st(r,s) is true, and minimizing f(r,s) among the allowed couples this selector is randomized; in case of tie breaks the returned one is chosen randomly
is optional and set to true if not specified
return an element r that is allowed: st(r) is true, and minimizing f(r) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
return an element r that is allowed: st(r) is true, and minimizing f(r) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
is optional and set to true if not specified
return a couple (r,s) that is allowed: st(r,s) is true, and minimizing f(r,s) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
return a couple (r,s) that is allowed: st(r,s) is true, and minimizing f(r,s) among the allowed couples this selector is not randomized; in case of tie breaks the first one is returned
is optional and set to true if not specified