Ähnlichkeit von Reihen
Njna
- programmiertechnik
Moin,
gerne würde ich zwei Reihen, z.B. (a,b,c,d,e) und (a,c,d,b,e) auf "Ähnlichkeit" überprüfen.
Für diese Zwecke habe ich recherchiert und letzten Endes diese Techniken gefunden: Editierabstand, Hamming und verschiedene N-Gramme. Diese machen bei Wörtern wohl Sinn, aber nicht, wenn es sich um Reihen aus Zahlen oder Konstanten handelt.
In meinem Fall geht es nicht um die exakte Übereinstimmung der beiden Reihen. Also es muss nicht zwangsweise Position 1 beider Reihen gleich sein, Pos2 gleich usw., sondern es ist - zwar nicht perfekt (100% gleich), aber - OK, wenn die zweite/Vergleich-Reihe a,c,b,d,e oder a,c,d,b,e lautet.
Äußerst schlecht (0% ähnlich) wäre jedoch e,d,c,b,a oder d,e,a,c,b usw.
Exakt muss die Reihenfolge nicht übereinstimmen, aber möglichst ähnlich sollte sie sein. Für den Fall einer kompletten Übereinstimmung könnten 100% erreicht werden.
Leider konnte ich auch nach langer Suche kein Verfahren hierfür finden. Gibt es dafür keinen "einheitlichen Algorithmus" bzw. nur eigene Lösungen für spezielle Fälle, oder habe ich lediglich falsch gesucht?
Danke
gerne würde ich zwei Reihen, z.B. (a,b,c,d,e) und (a,c,d,b,e) auf "Ähnlichkeit" überprüfen.
gleich viele Elemente?
Keine Ahnung von der Materie.
Aber mal schauen ob ich begriffen habe, was du eigentlich willst.
Also deine numerischen "Werte" übersetze ich in Whitespace
a| | | | | |
b| | | | | |
c| | | | | |
d| | | | | |
Du willst wissen, was die Richtige Sortierung dieser vier Balkendiagramme ist.
Erinnert mich an Treering Matching.
Ich beurteile jedes Paar. z.B. die Diagramme a und d
Ich übersetze in eine 01 Folge
a100100000010001000000101
d100001000001001000001001
x000111000011000000001100 1=Zone der Abweichung
y000121000011000000001100 Bewertete Abweichung
z000134444456666666667889 Summierte Abweichung
Daraus dürfte dann eine Schleife leicht abzuleiten sein.
mfg Beat
@@Njna:
nuqneH
gerne würde ich zwei Reihen, z.B. (a,b,c,d,e) und (a,c,d,b,e)
Was heißt „Reihen“? Verschiedene Permutationen derselben Elemente?
auf "Ähnlichkeit" überprüfen.
Qapla'