Пользователь (id: Int, tokens: List, tokenForChange: Token, requiredToken: Token)
Token (// неважно, для упрощения это может быть просто Int)
Например, у нас есть 10 пользователей. Один из них хочет обменять токены с кем-то. И он может быть удовлетворен User_2. Пользователь_2 не может быть удовлетворен первым, и мы должны найти другого пользователя и т. Д. c. Таким образом, мы можем иметь цепочку User1 -> User5 -> User2 -> User6 -> User1. Когда все пользователи удовлетворены, цепочка готова. Пожалуйста, я не понимаю, как это сделать с optaplanner. Я думаю, что это похоже на TSP, но с HARD SCORE, когда мы пропускаем некоторые города