With regard to backtracking, each CA or NA is preferably implemented as a stand-alone independent process with the following characteristics, explained with regard to the Prolog language, although it is understood that such a process could be implemented in other programming languages such as C++ or Java, for example.