Klar ist, dass Dein Problem viele Lösungen hat und DEN deterministischen Ansatz zu DER optimalen Lösung sehe ich nicht. Je nachdem ob es Dir den (Rechen-)Aufwand wert ist, könntest Du einen einfachen evolutionären Ansatz probieren. Er gibt nicht notwendigerweise eine optimale, aber garantiert eine "gute" Lösung. Grundidee ist, Mengen von Lösungskandidaten in mehreren Phasen zu bewerten, immer die Beste(n) auszuwählen, die Kind-Lösungskandidaten zu mutieren (und/oder zu kreuzen), bis eine Abbruchbedingung erfüllt ist.
Nehmen wir an, die k Punkte haben ganzzahlige Koordinaten und der Abstand zum Rand spielt keine Rolle. Alle Zahlen, die folgen, kannst Du problemlos anpassen.
1.) Bilde eine Anfangspopulation von 10 Lösungskadidaten: Jeder Lösungskandidat ist eine Liste mit k Punkten mit zufälligen Koordinaten.
2.) Jedem Lösungskandidaten wird eine Güte zugeordnet. Hier die Summe aller existieren Abstände: Für jeden Punkt summierst Du die Abstände zu allen anderen Punkten in der Liste. Das ist zwar eine quadratische Laufzeit, aber Du kannst z. B. die simple Manhattan-Metrik wälhen (nur die Koordinaten subtrahieren und die Absolutwerte addieren).
3.) Wähle die besten 3 Lösungskandidaten (- d. h. die mit der höchsten Summe aus 2.) -) und kopiere diese sooft, bis Du wieder eine Poplation von 10 neuen/alten Lösungskandidaten hast.
4.) Iteriere über alle 7*k Punkte der neuen Lösungskandidaten und mutiere jeden mit der Wahrscheinlichkeit 1%: Wenn ein Punkt mutiert wird, bedeutet das, ihn ein BISSCHEN wegzuschubsen, also z. B. mit Warhscheinlichkeit 1/2 den Wert 1 von seiner x- oder y-Koordinate abzuziehen oder addieren. (Wichtig ist, dass hier "behutsam" vorgegangen wird, "kleine" Werte nehmen und mit geringen Wahrscheinlichkeiten arbteiten)
5.) Gehe zurück zu Schritt 2.
Mach das Ganze so lange, bis eine Abbruchbedingung greift: Das kann eine maximale Anzahl evolutionärer Zyklen sein und/oder eine ausreichend geringe Änderung der besten Gütewerte.
Wenn man nach jedem Zyklus den besten Lösungskandidaten in eine Bitmap malt, gibt das bestimmt ein witziges Filmchen.
Es gibt noch Dutzende Varianten, wie man mit den Populationen umgehen kann; eine davon ist der Crossover, in dem man Individuen kreuzt, hier zufällig Koordinaten tauscht. Aber das Verfahren von oben sollte schon so einigermaßen klappen.