This file corresponds to a brute-force sampling-based strategy for CSP solving.

Given a set of generators, and a CSP problem, we randomly sample a lot of values from the generators, and then assign variables in the CSP problem to the sampled values (enumeratively). If the CSP problem is satisfied, we return the assignment. Otherwise, we continue to sample and assign.

In practice, we do not directly implement this algorithm. When we are solving a task and motion planning problem with continuous-parameterized operators, we first sample a large collection of possible continuous parameters, and then reduce the problem into a basic discrete search problem.

The main function of this file is generate_continuous_values, which implements the sampling for continuous parameters given the initial state and a collection of generators.


expand_continuous_values_(executor, current)

Internal function used by generate_continuous_values().

extract_generator_data(executor, state, ...)

Extract the positive data from the state for a given generator.

generate_continuous_values(executor, state)

The function generate_continuous_values and expand_continuous_values jointly implements the incremental search algorithm for Task and Motion Planning.