Ну, это зависит от того, насколько сложные и сложные проблемы вам нужно решить, но в большинстве случаев проблема настолько проста, что, например, алгоритм PSO довольно прост.
Может быть, просто попытаться найти хорошую основу для матричных операций и реализовать ее самостоятельно?
Но, как я уже сказал, все зависит от сложности вашей проблемы. Я использовал PSO для довольно простых задач (поиск миниатюр очень сложных функций и т. Д.), Поэтому мне никогда не требовался какой-либо фреймворк.