Hi all, I have a problem with the list of taboo search. I have a move class with many attributes and I want to consider that a move is taboo by only two or three of its attributes (integer values). For example: I have two lists (each has its own id), the move is to move an object (which has its own id) from a list to another. then the attributes that identify the move are the three identifiers (id_object, id_SRC_List, id_DST_List). when I make this move I would consider taboo all the moves that bring me back the item in the original list. ie all the moves of type (Id_object, id_of_any_other_List, id_SRC_List). I don't think that I can use CompletTaboSize (or undoMove etc..) because I think that two moves that perform the same exchange can be considered different because of other attributes. is this correct ? For now I'm trying to use the PropertyTaboList. public Collection <? extends Object> getTabuProperties () ( HashMap <Integer, Integer> propertyTaboo = new HashMap <Integer,Integer> (1); propertyTaboo.put (CustomerNumber, sourceRoute); // id_object, id_SRC_List return Collections.singletonList (propertyTaboo); ) I do not know if it reaches the target. Someone has some advice on how I could do? Another question, is possible to stop the solver after X iteration and then restart maintaining the tabo list? ragards, Marco |