Deshalb scheidet Permutation eigentlich aus.
Deswegen habe ich ja Branch and Bound vorgeschlagen, wobei hoffentlich viele Zweige schon für kürzere Listen verworfen werden.
Kann natürlich sein, dass das immer noch zu viel ist; das kommt auch auf die erste Schranke an.
EDIT: Hui, ich hab mal nach
matrix bandwidth minimization gesucht und da gibt es einiges an Material. Einmal tatsächlich Branch&Bound-Verfahren, aber auch vieles anderes. Lies einfach ein paar der Paper durch, da wirst du schon einen passenden Ansatz finden
EDIT2: Der
Cuthill-McKee-Algorithmus scheint gut implementierbar zu sein, ansonsten sieht
das ganz interessant aus.