Hi,
Assuming that you have got this running already it looks like you're using an IntegerVectorEncoding with a maximum length that is equal to the number that you're partitioning.
You'll have to create 3 operators if you want to run simulated annealing and 2 further operators if you want to use tabu search:
1. A move generator (this will create move objects and inject them into subscopes of the solution it is applied on)
2. A move evaluator (this will evaluate the quality of a move)
3. A move maker (this will apply the move to the current solution)
4. A tabu move evaluator (this will evaluate whether a move is tabu)
5. A tabu maker (this will declare the chosen move tabu)
You also need two objects:
1. A move object that stores the properties of the move
2. A tabu attribute object that stores attributes of the move that you want to set tabu
I would suggest that you take a look at the implementations in e.g. HeuristicLab.Encodings.RealVector. You certainly will need a different type of move, but it will tell you how the individual classes look like and what they do.
Sincerely,
Andreas