Quadrupel berechnen |
Boldoran
Grünschnabel
Dabei seit: 10.11.2008
Beiträge: 3
|
|
Ja du hast mich richtig verstanden. Trotzdem bin ich einigermassen erstaunt dass das pure abarbeiten der for-Schleifen 15 -20 Minuten dauert.
Als mögliche tuningideen sind mir bisher 2 Dinge eingefallen.
- Die Berechnung der möglichen Quadrupel könnte vor dem eigentlichen ausführen des Programmes erfolgen. Dies würde dann aber den Speicherverbrauch in die höhe Treiben. Ausserdem möchte ich die grösse der Inputmenge nicht vorfixieren.
- Könnte man den Berechnungsvorgang irgendwie parallelisieren um evtl vorhandene Mehkernprozessorsysteme besser auszunutzen?
|
|
11.11.2008 21:28 |
|
|
ed209
Routinier
Dabei seit: 07.09.2006
Beiträge: 324
|
|
Eigentlich nicht, da dein Problem nicht ist daß es lange dauert eine Lösung zu berechnen, sondern du zuviele Lösungen hast.
Was genau willst du mit den gefundenen Lösungen denn eigentlich machen?
Wenn du zm Beispiel alle 39 Milliarden Lösungen auf Kommandozeile ausgeben willst, dann ist dein Flachenhals sicherlich den Outbuffer, und da hilft dir dann
auch kein parallelisieren.
|
|
12.11.2008 13:01 |
|
|
Tobias
Routinier
Dabei seit: 18.09.2006
Beiträge: 324
|
|
Du redest hier von Punkten. Sind das tatsächlich Koordinatenpaare (x- und y-Wert)? Wenn dem so ist, dann ist ein Quadrupel (x1, x2, x3, x4) also ein Punktepaar ((x1, x2), (x3, x4))? Was ist tatsächlich in deiner Collection drin?
Deine Java-Algo berechnet nicht alle geordneten Paare sondern alle ungeordneten Paare. Zu den geordneten Paaren würde z.B. das Paar (5,1) genauso wie der Paar (1,5) gehören. Deine Schleife berechnet aber nur (x, y) mit y > x.
|
|
12.11.2008 16:34 |
|
|
Boldoran
Grünschnabel
Dabei seit: 10.11.2008
Beiträge: 3
|
|
Zitat: |
Deine Java-Algo berechnet nicht alle geordneten Paare sondern alle ungeordneten Paare. Zu den geordneten Paaren würde z.B. das Paar (5,1) genauso wie der Paar (1,5) gehören. Deine Schleife berechnet aber nur (x, y) mit y > x
|
Das ist korrekt. Ich brauche nur ungeordnete Paare. Bei der ganzen Sache geht es darum einen Index zur Cluster Validierung zu berechnen und zwar geht es um den Goodman Kruskal Index. In der Collection sind Merkamalsvektoren enthalten.
Bei diesem Index vergleicht man jeweils paare von solchen Merkmalsvektoren auf ihre Distanz und auf ihre Clusterzugehörigkeit um ein Mass für die Güte des Clusterings zu bekommen. Ausgegeben wird bis auf das Endresultat nichts aber natürlich erfordert die Distanzberechnung nochmal einiges an Rechenzeit.
Ich war nur etwas erstaunt dass bereits das durchlaufen aller möglichen Paare ungeordneten Paare (ohne irgend eine Aktion in der Forschleife) ~20 Minuten gedauert hat. Durch die grösse des Datensatzes scheint dies bei der Berechnung diese Indexes aber unvermeidlich zu sein.
|
|
24.11.2008 16:19 |
|
|
|