Thread Elemente einer Tabelle anhand einer nicht exakten Tabelle zuordnen (8 answers)
Opened by TheDude at 2009-08-15 23:50

Gast wer
 2009-08-16 13:13
#124289 #124289
Ich glaube ich verstehe jetzt.

Wir haben Drei Werte Die zusammen einen "Typ" definieren.
Mehrere Typen mit den Wertetrippeln wurden definiert.
Nun sollen Objekte, welche die drei Werte enthalten, den Typen zugeortnet werden. Da die Werte in den Objekten nicht exakt übereinstimmen, sogar weit voneinander abweichen können, soll das Objekt dem wert zugeordnet werden, dass am "besten" passt.

Die Definition was dieses "am besten Passt" umfasst ist der Schlüssel zu deinem Problem.

Da es sich um Zahlenwerte handelt kannst du einen Durchschnitt bilden und diesen als Entscheidungskriterium heran ziehen.

Ich will versuchen es an einem Beispiel zu Erklären was ich meine:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     A   B  C
Typ1 109 71 30
Typ2 19 56 99

Obj1 25 60 80


schlüssel-obj1-typ1 = abs(25 - 109) + abs(60 - 71) + abs(30 - 80)
schlüssel-obj1-typ1 = 145

schlüssel-obj1-typ2 = abs(25 - 19) + abs(60 - 56) + abs(30 - 99)
schlüssel-obj1-typ2 = 79

allgemein:
schlüssel = abs(objX->A - typY->A) + abs(objX->B - typY->B) + abs(objX->C - typY->C)


In dem Beispiel oben werden alle Werte gleich bedeutend behandelt, durch multiplizieren der Werte mit festen Faktoren kannst du die Bewertung verschieben.
Formel:
Code: (dl )
schlüssel = abs(objX->A - typY->A)*prioA + abs(objX->B - typY->B)*prioB + abs(objX->C - typY->C)*prioC

Beispiel:
A soll höher bewertet sein als B soll höher bewertet sein als C
Code: (dl )
1
2
3
prioA = 0.01
prioB = 0.1
prioC = 1

Die genaue Verteilung musst du selbst bestimmen, das konkret von den Werten und deren Wertebereichen abhängt.

Durch umstellen der Formel kannst du alle Werte im Vornherein berechnen und musst dann nur noch objX und typY subtrahieren um den Vergleichswert zu erhalten. Das geht sehr schnell.

View full thread Elemente einer Tabelle anhand einer nicht exakten Tabelle zuordnen