Mustererkennung bei Zahlenfolgen mit PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mustererkennung bei Zahlenfolgen mit PHP

    Hi @all,

    ich habe ein Frage und weiss nicht, in wieweit ich eine Lösung mittels PHP realisieren kann.

    Also: Ich habe ein Zahlenfolge in einer Tabelle einer Datenbank. Diese besteht lediglich aus 0 und 1.

    Bsp.:
    0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1
    usw (die Zeichenkette wächst ständig an)

    Innerhalb dieser Zahlenfolgen befinden sich immer wieder Muster über kürzere oder längere Abschnitte was die Zahl 1 betrifft. Bsp.: Im ersten Abschnitt: 4x0, 1x1, 4x0, 1x1; mittlerer Abschnitt: 1x0, 1x1, 1x0, 1x1, ... usw

    Ich würde gerne ein Script schreiben, diese Muster zu identifizieren, sodass man das Kommen der nächsten 1 aufgrund des Musterverhaltens "vorhersagen" kann. Dabei soll berücksichtigt werden, dass die Muster eben nicht immer gleich bleiben, sondern mitunter recht schnell variieren. Wie muss so ein Script angegangen werden? Und wie kann man in so einem Script die Erkennung von Mustern innerhalb eines Musters einbinden? Bsp: 0000001001010101010010000001 Muster 01: 6x0,1x1 und innerhalb dieses Musters ergibt sich Muster 02: 1x0, 1x1

    so in der Art
    Ich hoffe ich habe die Fragestellung deutlich formuliert^^

    Danke für jeden Hinweis und Denkanstoß
    cya CrazyPip

  • #2
    Was verstehst du unter Muster? Willst du nur bestimmte Folgen erkennen, die du schon kennst, oder suchst du einen Algorithmus, der sich wiederholende Folgen in dem Bitmuster findet? Falls du Wiederholungen suchst, musst du die einschränken - wie lang sollen sie minimal (>= 3 Bit) und maximal sein? Wie geht man mit Überlappungen um? Willst du möglichst kurze oder lange Muster erkennen?

    Wenn du aus dem Bitstream erstmal Muster extrahieren kannst, musst du den Algorithmus nur noch rekursiv auf die gefundenen Muster anwenden, um Muster in Mustern zu finden.

    Kommentar


    • #3
      Mit Muster meine ich das Auftreten der Zahl 1 in bestimmten gleichbleibenden Abständen (5x0, 1x1, 5x0, 1x1) . Ich denke, das Auftreten der 1 liegt einem Algorhytmus zugrunde. Da sich der Algorhytmus aber zu verändern scheint, tritt die 1 nicht immer in den gleichbleibenden Abständen auf, sondern sie scheint nach 2 oder 3 gleichen Intervallen in anderen Abständen aufzutreten (5x0 1x1 5x0 1x1 nächster Intervall 10x0 1x1 10x0 1x1 ... ). Dazwischen gibt es aber immer wieder Stellen, in denen 20x0 oder mehr auftreten und danach erst wieder ein neues Muster beginnt. D.h. sobald sich ein neues Muster abzeichnet, soll das von PHP ermittelt werden.

      Ich würde gerne alle möglichen Muster erkennen. Was genau meinst du mit dieser Einschränkung? Und was mit Überlappungen?

      THX

      Kommentar


      • #4
        Hallo,

        du kannst dich ja mal mit der DCT beschäftigen (gibt's auch als fertige PHP-Funktion) und deine Daten dort durchjagen, vielleicht ist es ja eine komplex-periodische Folge?

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Sry hab mich früher eingehender mit PHP beschäftigt und bin deswegen heute nicht mehr so ganz auf dem Laufenden.

          Was ist DCT?
          Google und die Forumssuche haben nichts zu DCT gefunden, ausser irgendwas mit einer Funktion, in der es um das Frequenzspektrum in einem Bild geht. Denke mal, dass du das nicht gemeint hast^^

          Kommentar


          • #6
            Zitat von CrazyPip Beitrag anzeigen
            Denke mal, dass du das nicht gemeint hast^^
            Doch, aber nicht im Zusammenhang mit Bildern. Die DCT nimmt als Eingabe viele Samples (also die y-Werte einer periodischen Funktion) und gibt dir als Ausgabe genausoviele Frequenzbänder (also deren Amplitude) zurück. Wenn dein Datenstrom ein periodisches Muster ist, kannst du damit also genau berechnen, welche Werte als nächstes kommen.

            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              gibt's auch als fertige PHP-Funktion
              sorry ich hab die Funktion nicht gefunden, weder bei Google, noch hier, noch bei php.net

              Hast du einen Link für mich?

              gruss

              Kommentar


              • #8
                Zend Technologies - Code GalleryFast Fourier Transform

                Das ist zwar die FFT, aber das schadet ja auch nicht. Das Prinzip ist dasselbe.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar

                Lädt...
                X