自己解決した筈のものですが、仕様の変更があり、困っています。

二次元平面上に任意の点を最大で10程度取り、原点Oからその
全ての点を通る経路について最短経路長及び経路順を求めよ。
ただし、二点間の距離は
sqrt(pow(x1-x2,2)+pow(y1-y2,2))で求められるものとする。
なお、使用言語はC++であり、点はクラスを用いて表現する。

というものです。点の数が任意であるため、単純なforループでは
実装できませんでした。

やはりGAなどを使ったほうがいいのでしょうか?当方にはGAに関する
知識が無いので困っております。どなたかご指南をお願いいたします。

また、GAを使う必要が有るのであれば、参考になる文献などを教えていただけると
幸いです。