| InputProblem given in CSP form 
              a set of variables V = {V1, V2,..., Vn} 
                with associated domains of values a set of constraints C = {C1, C2, 
                ..., Ck} with associated error functions a combination function to project constraint errors on variables a (positive) cost function to minimize Output a sequence of moves (modification of the value of one of the variables) 
              that will lead to a solution of the CSP (configuration where all 
              constraints are satisfied) if the CSP is satisfied or to a partial 
              solution of minimal cost otherwise.  AlgorithmStart from a random assignment of variables in V  
               Repeat 
                Compute errors of all constraints in C and combine errors 
                  on each variable by considering for a given variable only the 
                  constraints on which it appears select the variable X (not marked as Tabu) with highest error 
                  and evaluate costs of possible moves from X if no improving move exists then mark X tabu for a given number of iterations
 else select the best move (min - conflict) and change the 
                  value of X accordingly
  until a solution is found or a maximal number of iterations 
                is reached |