Hallo Hero, hallo Horst -
schade, de Grippe packt mich gerade, deshalb nur
kurz hierzu.
Post by HeroDie Suche nach einem Algorithmus ist durchaus
sinnvoll bei vielen Punkten, Gottfried.
Das Firmament hat was.
Der Algorithmus kann abbrechen, wenn
entweder 2 Punkte auf dem Aequator
(Hoehe Null) sich genau gegenueber liegen
oder mindestens drei Punkte auf dem
Aequator liegen
und natuerlich alle Punkte innerhalb
der Kugel sind.
Ja - die Größe der Halbkugel kann bei dem ersten Schritt,
der Translation zum Zentroid, sofort mitbestimmt werden.
Ihr Durchmesser kann beliebig größer oder gleich der
maximalen Distanz werden. Man kann ihn auch 1 setzen
und alle Koordinaten standardisieren.
Post by HeroIch habe mir noch mal versucht, mir die
Algorithmen vorzustellen.
Nehmen wir mal als simpel Kriterium
Distanz in x-Richtung.
Anfangsstellung x max : +5 und -3
also verschieben (der Punkte) um
Eins nach links.
Drehen um 5 Grad (bei sehr vielen
Punkten kleinere Drehungen)
Jetzt x-max +4 und -3
Distanz ist kleiner, also nicht
verschieben
Drehen um 5 Grad
Distanz nicht kleiner, nicht verschieben
Drehen
Jetzt x-max +4 und - 4.5,
also verschieben um 0.25 nach rechts.
Habe ich das so begriffen, nur
verschieben, wenn Distanz groesser?
Ähm, warte mal... mal sehen - gleich.
Post by HeroJetzt ist die Frage nach den Kriterium.
Bei meinem simpel-Kriterium landet der
Mittelpunkt in der Mitte der laengsten
Verbindungsstrecke.
Ich habe aus dem Baukasten der Faktor-Analyse-Rotationen das
fertige Modul Quartimax-Rotation. Dies rotiert eine
Gruppe Punkte so, daß maximale Distanzen (als Koordinaten)
in Richtung der x- bzw der y-Achse ausgerichtet werden.
Allerdings ist dies ein gemeinsamer Kennwert *über alle*
Punkte, also nicht eine 2-Punkt-Optimierung, auf die es
hier aber im Endeffekt ankommt.
Eine Umdrehung des Quartimax-Kriteriums führt zu einer
Orientierung, bei der im Endeffekt die längsten Distanzen
entlang der Diagonale und die *kleinsten* Distanzen/Koordinaten
antlang der Achsen liegen ( damit kann man dem Problem
des kleinsten Rechtecks näher(!) kommen.)
Eine wiederholte Quartimax/negative Quartimax-Rotation abwechselnd
mit geeigneten Translationen sollte dann zum Ziel führen.
Das weiß ich aber nicht exakt, da es "lokale Minima" geben
könnte, die einen solchen Iterationsprozeß an der falschen
Stelle anhalten könnten.
Wenn man das Quartimax-Kriterium immer *nur für die 3 Punkte*
bestimmt, die die extremsten Koordinaten haben, könnte dies
hingegen zu einem globalen Maximum/Minimum führen.
Eine Kontrollrechnung hierfür habe ich entlang der
Idee, die Du oben ausgeführt hast, gestern mal programmiert,
und *das* scheint auch zu funktionieren: nach der
anfänglichen Zentrierung des Punkteschwarms werden
immer die drei Punkte gesucht, die die kleinsten Höhen haben,
und das Translationskriterium so berechnet, daß deren
Streuung (nur dieser 3 Punkte) minimal wird (also im besten Fall
alle gleich).
Konkret: die Punkte mit der kleinsten Höhe seien a,b,c,
dann werden Translationsschritte in x/y-Richtung solange
mit einer gewissen Schrittweite gemacht, wie die Streuung der
Höhen von a,b,c sich verkleinert.
Wächst sie wieder an, wird die Schrittweite halbiert und die
Richtung der Translationen umgedreht, solange, bis keine Änderung
mehr auftritt.
Genaugenommen wird die Richtung nicht genau um 180° umgedreht,
sondern mit einer Quartimax die Richtung so rotiert, daß
die längsten Distanzen /höchsten Koordinaten wiederum auf den Achsen
liegen, - und diese wird dann als neue Translationsrichtung
verwendet. Diese Änderungen der Translations-Richtung schießen
sich irgendwann auch auf 180°,180°,... ein und das ganze
Verfahren konvergiert. (... <ahem>. Muß man noch sehen).
Man sieht allerdings: nach der Begeisterung für die Eleganz
der Firmamentpunkte wird das dann womöglich schnell uninteressant,
da es unter Effizienzaspekten wahrscheinlich ein absoluter Overkill
wird, der durch den einfacheren Suchalgo um Längen geschlagen
wird. (Allerdings könnte sich das ja bei ein paar tausend Punkten
ändern ;-) ) Wie gesagt: mir ging es bei dem Verfolgen dieser
Idee auch darum, die Reichweite der vorhandenen Rotations-
Tools auszutesten / genauer zu verstehen. Wenn es reicht, würde ich
in mein kleines Statistikprogramm nur das Translationskonzept
hinzufügen, um solche Probleme *generell* lösen zu können.
Post by HeroJetzt ist die Frage nach den Kriterium.
Bei meinem simpel-Kriterium landet der
Mittelpunkt in der Mitte der laengsten
Verbindungsstrecke.
Jetzt zum Firmament
Grund stellung
Wie gross ist der Radius des ersten Halbkugel?
Halber Radius der x-Distanz (bzw wenn groesser
der y-Distanz)?
Jepp. Oder vielleicht etwas größer, um der anfänglich größten
Distanz nicht ein unwiederruflich großes Gewicht zu geben, was
dann vielleicht schenll in ein *lokales* Minimum führt.
.... zurück -
Gottfried Helms
(... und ab-ins-Bett gleich. Hoffe ich konnte mich trotz der
leichten grippemäßigen geistigen Verschattung ;-) verständlich
machen)