Mustererkennung ist heutzutage mit eine der wichigsten Aufgaben in der Informatik. Daher mal eine Aufgabe aus diesem Themenbereich.

Aufgabe

„Ein Musikstück ist ein Plagiat, wenn sieben auf einanderfolgende Noten identisch sind.“ So oder so ähnlich lässt sich eine Bedingung der Musikindustrie formulieren. Implementiere daher eine Funktion die prüft, ob ein eingegebenes Lied ein Plagiat des Liedes „Alle meine Entchen“ ist.

Der Einfachheithalber sollte man sich vielleicht auf eine Oktave beschränken, so dass „Alle meine Entchen“ eventuell so codiert werden könnte:

C-D  -E-    F-  G-   G-      A-            A-    A-     A-   G…..

A-lle-mei-ne-Ent-chen-schwim-men-auf….

Eventuell könnte man noch die Oktave dazu notieren und damit komplexere Lieder prüfen.

Ein eingegebener String von Noten „cdeefgededc“ wird dann schrittweise in Chunks der Länge 7 zerlegt (Mathefrage: Wie viele Möglichkeiten gibt es, wenn z.B. 60 Noten eingegeben wurden?) und schrittweise vergleichen.

Die ganze Aufgabe lässt sich jetzt noch beliebig erweitern:

  1. Eine Datenbank mit verschiedenen Liedern mit einbinden
  2. Begleitakkorde, die lassen sich einfacher im Internet finden, anstelle von Noten nehmen.
  3. Mustererkennungsalgorithmen auf Laufzeiten untersuchen. Denn der obige Ansatz ist beileibe nicht der beste.