Arrays umschaufeln 2.0 (Downhill Simplex)
Heiko
Die Sache mit der Uebertragung von Werten von einem Array in ein anderes geht in die naechste Runde....
Bitte nur weiterlesen, wer sich wirklich dafuer interessiert... sonst waere es zu langweilig...
Hintergrund:
Ich verwende einen Downhill-Simplex Algorithmus zur Kurvenapassung. Dabei wird die Summe der kleinsten Quadrate minimiert.
Der Simplex ist eine geometrische Figur, die aus allen anzupassenden Parametern gebildet wird.
Die Parameter stehen bei mir in einer Tabelle aus 5 Spalten und 7 Zeilen. Daraus bastle ich einen Parameter-Array P(m, p) (bei Option Base 1). Dabei steht m fuer die maximale Anzahl der einzubeziehenden Modelle. Diese Zahl ist variabel (1<= m <=5). p sind die jeweiligen Parameter dieser Modelle (Profilfunktionen wie z.B. Gauss).
Der Simplex interessiert sich jedoch nur fuer die absolute Anzahl n der Parameter, also n = m * p.
Im Extremfall sind das 35 Parameter. Der Simplex sieht dann so aus S(n, n+1).
Bisher ist es kein Problem, die Daten aus meinem 2-dimensionalen Array P(m, p) in S(n,n+1) zu uebertragen und auch wieder umgekehrt, weil alle Parameter eines Modells m benutzt werden und dann einfach untereinander gereiht werden koennen.
Jetzt kommt das eigentliche Problem:
Bei der Optimierung kann es sinnvoll sein, willkuerlich einzelne Parameter zu "fixieren", d. h., diese nicht in den Simplex mit einzubeziehen. Das macht den Simplex deutlich kleiner und auch schneller.
Frage:
Wie koennte man es hinkriegen, dass jeder Parameter, der "mitmachen darf", das auch weiss und vor allem auch spaeter noch weiss, wo er herkam.
Wenn ich z.B. aus Modell 1 (also Spalte 1) nur die Parameter 1,3 und 6 verwende und aus Modell 2 2, 3 und 5, werden die ja im Simplex einfach neu angeordnet und durchnummeriert, hier von 1 bis 6, also
S(1,...) = P(1, 1)
S(2,...) = P(1, 3)
S(3,...) = P(1, 6)
S(4,...) = P(2, 2)
S(5,...) = P(2, 3)
S(6,...) = P(2, 5)
... steht fuer n+1, darum kuemmert sich der Algorithmus selbst...
Wie koennte eine Loesung aussehen, dass jeder Parameter spaeter noch weiss, welcher er vorher war...?
Ich freue mich auf Vorschlaege und Diskussionen.
Danke im voraus, Heiko