Eine Permutationssequenz besteht aus einer Reihenfolge von Zusänden, die jeweils durch Vertauschung zweier Elemente auseinander hervorgehen. In einer Permutationssequenz dar kein Zustand doppelt vorkommen oder fehlen. Für n Elemente gibt es (n*(n-1))/2 solcher Zustände. <br />Ausgangszustand: 1234 <br />mögliche Fogezustände: 2134 3214 4231 1324 432 1243 <br />Eine Standard-Permutationssequenz gibt eine feste Regel für die Abarbeitung der einzelnen Zustände vor. Insoweit ist der Ablauf einer Standard-Permutationssequenz deterministisch. <br />Das obige Beispiel zeigt eine Vertauschung von Indices; in den <br />Clips werden diesen Indices Objekte zugeordnet. <br />Beim Algorithmus von Steinhaus-Johnson-Trotter sind dies: <br />1 A <br />2 B <br />3 C <br />4 _ <br />In diesem Algorithmus wird ein Führungsobjekt, im Clip durch _ <br />markiert, zunächst von hinten nach vorne durchgeschoben. <br />Hat dieses Führungsobjekt den ersten Platz erreicht, so ruht dies für eine Phase, und mit dem Objekt mit dem nächstniedrigen Index, in diesem Fall C, wird gleichermassen verfahren. <br />Der Algorithmus für n Objekte besteht somit aus n-1 verschachtelten Schleifen. Dabei ist die Kennzahl der inneren Schleife jeweils um 1 geringer als die der äusseren Schleife. <br />Ist die vorderste Position erreicht, so wandert das Führungsobjekt in die entgegengesetzte Richtung, also von <br />vorne nach hinten. Das lässt sich im Clip durch Verfolgung des Zeichens _ sehr gut nachvollziehen. <br />Nun können Permutationszustände auch lexikalisch angeordnet werden. Dabei wird die Indexdarstellung als n-stellige Zahl begriffen, und diese Zahlen werden der Grösse nach sortiert und <br />mit einer Ordnungsnummer versehen: <br />01 1234 <br />02 1243 <br />03 1324 <br />04 1342 <br />05 1423 <br />06 1432 <br />07 2134 usw. <br />Die Umsetzung der Indexdarstellungen in Ordnungsnummern bedarf keiner Tabelle, sondern ist durch einen unschwierigen <br />Algorithmus zu bewältigen. Im Anzeigefeld auf der rechten Seite werden bearbeitete Indexdarstellungen farblich markiert. <br />Verfolgt man den Weg des Führungsobjektes, so ergibt sich eine Charakteristik, welche man so darstellen kann: \/\/\/. <br />Beim anderen Algorithmus, welche ich als "Rotating" bezeichnen will, ergibt sich folgende Charakteristik: / / /\\\. Würde nach drei Rotationen weiter in die selbe Richtung rotiert, so würde wieder der Ausgangszustand erreicht. Also pausiert das Führungsobjekt, und es erfolgt die Rotation der inneren Schleife, deren Kennzahl um 2 geringer als die Kennzahl der äusseren Schleife ist. Bei nur vier Objekten freilich ist die innere Schleife nur ein einfaches Toggling. <br />Der Aufwand bei der Programmierung ist beim Rotating etwas grösser als bei Steinhaus-Johnson-Trotter - wohl ein Grund, weswegen zumeist Steinhaus-Johnson-Trotter der Vorzug gegeben wird
