Startseite Informationen Theorie Primzahlen P-Labor Kontakt

Das P-System und der grammatikalische Ursprung der Primzahlen

Valerio Antognelli

Zusammenfassung

Diese Arbeit führt das "P-System" ein, ein theoretisches Framework, das eine dynamische Ontologie für natürliche Zahlen postuliert, in der Primzahlen die einzigen fundamentalen Entitäten ("Promotoren") sind und zusammengesetzte Zahlen emergente Effekte ihrer Interaktion darstellen. Um diese Dynamik zu beschreiben, wurde eine formale Sprache basierend auf Symbolen (πk) und einer qualitativen Metrik, der "Morphogenetischen Signatur", entwickelt. Aus dieser Theorie ergibt sich eine neue Definition von Primalität basierend auf grammatikalischer Nicht-Konstruierbarkeit. Die Gültigkeit des Frameworks wird durch die Formalisierung des Selektiven Genealogischen Algorithmus (SGA) demonstriert, eines konstruktiven, nicht-eliminativen Prozesses. Die Implementierung des SGA in Rust ermöglichte die Berechnung der 37.607.912.018 Primzahlen bis 10¹² in etwa 28 Minuten auf Consumer-Hardware, was bestätigt, dass die Theorie sich in einen Algorithmus mit höchster Leistung übersetzt. Der Hauptbeitrag ist daher zweifach: eine neue Theorie über den strukturellen Ursprung der Primzahlen und ein daraus abgeleiteter Algorithmus, der empirisch ihre Kohärenz und Effizienz validiert.

Einführung: Hypothese einer dynamischen Ontologie für Zahlen

Die Zahlentheorie hat traditionell die Eigenschaften von Primzahlen innerhalb eines Frameworks untersucht, das die Folge der natürlichen Zahlen als statische, präexistente und linear geordnete Entität (1, 2, 3, ...) annimmt. Aus dieser Perspektive erscheinen Primzahlen als spezielle Elemente mit einer komplexen Verteilung, deren Muster seit Jahrhunderten Gegenstand der Forschung ist. Der Ausgangspunkt dieser Forschung ist eine alternative Hypothese, die nicht die innerhalb dieses Frameworks beobachteten Eigenschaften in Frage stellt, sondern die statische Natur des Frameworks selbst.

Die vorliegende Forschung basiert auf einer alternativen ontologischen Hypothese: Primzahlen bilden die einzigen fundamentalen numerischen Entitäten, die ich in dieser Arbeit als Promotoren definiere, und zusammengesetzte Zahlen sind strukturelle Effekte, die aus der kombinatorischen Interaktion der Promotoren selbst entstehen. Diese Perspektive legt nahe, dass die Natur der Zahlen intrinsisch dynamisch ist. Sie "existieren" nicht in einer festen Sequenz, sondern "emergieren" gemäß einer Ordnung konstruktiver Notwendigkeit.

Eine direkte Konsequenz dieser Hypothese ist, dass die lineare Ordnung, mit der wir zu zählen gewohnt sind (n → n+1), eine der möglichen Lesarten dieser Struktur darstellt, aber nicht notwendigerweise die fundamentale Ordnung ihrer Erzeugung. Ich postuliere die Existenz einer deterministischen "Emergenzordnung", die von den Interaktionen zwischen den Promotoren diktiert wird und die Chronologie beschreibt, mit der jede numerische Struktur – sowohl Primzahlen als auch zusammengesetzte Zahlen – erzeugt wird. Dieser Prozess zeigt manchmal eine nichtlineare Charakteristik, bei der die Wirkung (die Erzeugung einer zusammengesetzten Zahl wie 4) der vollständigen Zertifizierung ihrer scheinbaren Ursache (die Emergenz der Primzahl 3 als strukturelles "Loch") vorausgeht.

Um diese dynamische Vision zu untersuchen, war es notwendig, eine formale Sprache zu entwickeln, die nicht nur Quantitäten, sondern auch Beziehungen, Genealogien und interne Architekturen von Zahlen beschreiben kann. Aus diesem Grund habe ich das P-System entwickelt, ein theoretisches Framework und eine symbolische Sprache, deren Zweck es ist, die grammatikalischen Regeln explizit zu machen, die die Erzeugung von Zahlen regeln.

In den folgenden Abschnitten werde ich die empirische Methodik beschreiben, die mich zu dieser Hypothese führte, die Formalisierung des P-Systems als Sprache, die Definition eines daraus resultierenden "Selektiven Propagations"-Algorithmus und seine experimentelle Validierung durch eine Hochleistungsimplementierung. Das Ziel ist nicht, bestehende Modelle zu widerlegen, sondern eine komplementäre Perspektive anzubieten, die sich auf die generative Natur der Zahlen konzentriert, anstatt auf die Eigenschaften ihres Endzustands.

Forschungsmethodik: Von der empirischen Untersuchung zur ersten Formalisierung

Nachdem die Hypothese einer dynamischen und generativen Natur der Zahlen postuliert wurde, bestand der nächste notwendige Schritt der Forschung darin, ein empirisches Modell zu entwickeln, um die strukturellen Beziehungen zwischen den Promotoren und den von ihnen erzeugten zusammengesetzten Zahlen zu analysieren. Das Ziel war es, das beobachtbar zu machen, was ich als komplexe Struktur generativer Abhängigkeiten vermutete, bei der jeder Promotor eine "Familie" von zusammengesetzten Zahlen erzeugt, die sich mit anderen überschneidet und interagiert.

Zu diesem Zweck konstruierte ich eine relationale Karte, die PTM-Tabelle (Prime Transitional Model) genannt wird. Dieses Werkzeug wurde nicht als Berechnungsalgorithmus konzipiert, sondern als Beobachtungsumgebung. Für jede natürliche Zahl n registriert die Tabelle eine Reihe qualitativer und nicht nur quantitativer Attribute:

Das Ziel dieser Kartierung war es, die Verbindungen, Überlappungen und "Einflusszonen" jedes Promotors explizit zu machen, die in der traditionellen Arithmetik implizit bleiben. Die Analyse dieser Karte ermöglichte es, die beobachteten Dynamiken in einem ersten Berechnungsmodell zu formalisieren.

Das erste Modell: Das Übergangsieb (PTM)

Das Prime Transitional Model war der erste Versuch, die in der Karte beobachtete generative Logik in Code zu übersetzen. Seine Architektur ist die eines Siebs, aber sein operatives Prinzip ist mit der konstruktivistischen Hypothese ausgerichtet.

Seine Logik ist wie folgt:

  1. Es wird eine Menge von Basis-Promotoren identifiziert (die Primzahlen bis √N).
  2. Alle "Übergänge" werden berechnet, die diese Promotoren innerhalb eines gegebenen Intervalls erzeugen, d.h. alle ihre Produkte.
  3. Diese Übergänge werden verwendet, um die Positionen der zusammengesetzten Zahlen zu "markieren".
  4. Die Zahlen, die unmarkiert bleiben, sind per Definition die neuen Promotoren, die in diesem Intervall entstanden sind.
Beispielausgabe des PTM für das Intervall [1, 30]: Gefundene Primzahlen: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

Dieser Algorithmus stellte, obwohl er eine arithmetische Implementierung ist, einen entscheidenden Schritt dar und validierte die Wirksamkeit des generativen Ansatzes. Er machte jedoch auch die Notwendigkeit einer mächtigeren Sprache deutlich, die direkt auf Strukturen und Genealogien arbeiten kann, anstatt auf ihren numerischen Werten. Diese Erkenntnis markierte den Beginn der Entwicklung des P-Systems als formale Sprache.

Die Geburt der symbolischen Sprache: Struktur, Qualität und Maß

Die Analyse der PTM-Beziehungskarte war zwar effektiv, arbeitete aber immer noch mit numerischen Quantitäten. Um die reine Struktur zu untersuchen, die diesen Quantitäten zugrunde liegt, entstand die Notwendigkeit einer neuen Sprache. Eine Sprache, die nicht beschreibt "wie viel", sondern "wie" und "woraus" eine Struktur gebildet ist. Das Ziel meiner Forschung wurde daher, die Interaktion und Genealogie der Zahlen darzustellen, nicht ihre Größe. Aus diesem Bedürfnis entstehen die Symbole, die Operatoren und ein neues Alphabet für eine neue Grammatik.

Die Symbole (πk) und die Operatoren (⊗, ↑): Das Alphabet und die Syntax

Der erste Schritt war, die Grundelemente dieser Sprache zu definieren.

Die Symbole (πk): Ich führte das Symbol π ein, um einen Promotor darzustellen. π1 ist kein Alias für die Zahl "2", sondern ist der erste primäre Promotor des Systems, der Ursprung der ersten genealogischen Familie. π2 ist der zweite, π3 der dritte, und so weiter. Sie sind die fundamentalen und irreduziblen Elemente der Sprache.

Die Operatoren (⊗, ↑): Um Interaktionen zu beschreiben, definierte ich zwei fundamentale grammatikalische Operatoren, die "Verben" der Sprache:

Durch diese Elemente kann jede natürliche Zahl eindeutig nicht als Quantität, sondern als grammatikalischer Ausdruck beschrieben werden, der ihre konstruktive Geschichte offenbart.

Die Morphogenetische Signatur (φ): Die Metrik der Struktur

Nachdem Zahlen in symbolische Strukturen übersetzt wurden, war eine Methode erforderlich, um sie objektiv zu messen und zu klassifizieren, ohne auf ihren numerischen Wert zurückzugreifen. Dafür entwickelte ich die Morphogenetische Signatur, eine Funktion φ, die jede Struktur auf einen Vektor von 5 Parametern abbildet und ihre qualitative Identität beschreibt:

Diese Signatur macht tiefe strukturelle Unterschiede explizit, die die Arithmetik nicht hervorhebt. Nehmen wir zum Beispiel die Zahlen 6 und 8:

Obwohl numerisch nah, beschreibt das P-System sie als genealogisch und qualitativ verschiedene Geschöpfe. Die 6 ist strukturell der 15 (⦅π2 ⊗ π3⦆) ähnlich, während die 8 der 27 (⦅π2↑3⦆) ähnlich ist.

Das zweite Modell und seine empirische Validierung

Die Vereinigung dieser Konzepte führte zum zweiten Berechnungsmodell meiner Forschung: einem rein grammatikalischen Generator. Der Zweck dieses Modells war zu demonstrieren, dass es möglich war, die Sequenz numerischer Strukturen und ihrer Signaturen zu konstruieren, indem man in einer rein abstrakten Welt operiert, ohne die Notwendigkeit, den Symbolen πk numerische Werte vorab zuzuweisen.

Dieses Programm simulierte eine symbolische Betriebsumgebung, die in der Lage war, eine Sequenz zu generieren, ihre Signatur zu berechnen und die "Löcher" zu identifizieren, um neue πk basierend ausschließlich auf internen Konstruktionsregeln zu fördern.

Um die Korrektheit dieses Ansatzes zu validieren, wurde die Ausgabe des Modells mit realen numerischen Daten verglichen. Die folgende Tabelle zeigt einen Auszug der Ergebnisse und demonstriert, dass die Anzahl der vom Modell generierten grammatikalischen Promotoren perfekt mit der Primzahl-Zählfunktion π(x) übereinstimmt.

Tabelle 1: Vergleich zwischen generierten Promotoren und realer Primzahlzählung
Grenze (N) Generierte Promotoren (πk) Primzahlzählung π(N) Status
100 25 25 ✅ Korrekt
1.000 168 168 ✅ Korrekt
10.000 1.229 1.229 ✅ Korrekt
100.000 9.592 9.592 ✅ Korrekt

Der Erfolg und die Korrektheit dieses grammatikalischen Modells zeigten, dass der symbolische Ansatz nicht nur gültig, sondern auch vollständig war. Die Implementierung war jedoch noch nicht rechnerisch für extreme numerische Skalen optimiert. Dies ebnete den Weg für die letzte Phase der Forschung: die Formalisierung eines Algorithmus, der diese theoretische Reinheit in rechnerische Leistung übersetzte.

Die Formalisierung des P-Systems: Fundamentale Postulate und Theoreme

Um das Berechnungsmodell in eine vollständige Theorie zu transformieren, definierte ich die logische Architektur des P-Systems durch ein System rigoroser Postulate und Theoreme. Diese Formalisierung bildet den theoretischen Kern meiner Forschung.

Fundamentale Postulate

Das P-System basiert auf einer Reihe von Postulaten, die seine Natur und operativen Grenzen definieren. Die wichtigsten sind:

Postulat 1: Konstruktiver Primat der Grammatik

Jede im System zulässige Entität wird durch eine grammatikalische Struktur über eine deterministische konstruktive Sequenz erzeugt. Es gibt keine vorausgesetzten Objekte; alles, was existiert, ist der Ausdruck einer wohlgeformten und nachvollziehbaren grammatikalischen Konstruktion.

Postulat 2: Minimale Erzeugung und symbolische Orthogonalität

Jedes Symbol wird ausgehend von einem einzigen ursprünglichen Symbol (π₁) durch eine endliche und geschlossene Menge grammatikalischer Operatoren konstruiert. Promotor-Symbole (πk) sind axiomatisch irreduzibel und orthogonal: Sie können nicht durch Komposition aus anderen Promotoren erzeugt werden.

Postulat 3: Eindeutigkeit und Berechenbarkeit der Morphogenetischen Signatur

Jede wohlgeformte grammatikalische Struktur (σ) ist eindeutig einer berechenbaren morphogenetischen Signatur (φ) zugeordnet, die ihre interne Komplexität und kombinatorische Struktur auf rein syntaktische Weise beschreibt.

Postulat 4: Operatoriale Geschlossenheit

Die Menge der Operatoren (𝓞) ist geschlossen. Das Ergebnis jeder Operation, die auf gültige Strukturen des Systems angewendet wird, ist immer eine gültige Struktur des Systems, was seine Autonomie und rechnerische Vollständigkeit garantiert.

Zentrale strukturelle Theoreme

Aus diesen Postulaten ergeben sich Theoreme, die die Robustheit des Systems garantieren.

Theorem der symbolischen Geschlossenheit

Aussage: Die endliche und rekursive Anwendung der zugelassenen Operatoren erzeugt eine geschlossene symbolische Sprache (𝓛ₚ).

Implikation: Das P-System ist ein selbstgenügsames Universum, unfähig, Paradoxe oder inkohärente Strukturen zu erzeugen.

Theorem der einzigartigen genealogischen Ableitung

Aussage: Jedes Symbol (σ) besitzt eine und nur eine konstruktive genealogische Kette, die eindeutig seine syntaktische Struktur bestimmt.

Implikation: Jedes Symbol hat eine einzigartige und verifizierbare "Geschichte", die Grundlage der morphogenetischen Nachverfolgbarkeit.

Theorem der strukturellen Nicht-Umkehrbarkeit

Aussage: Es existiert kein inverser grammatikalischer Operator (◦⁻¹), der die algebraisch reversible Zerlegung eines zusammengesetzten Symbols erlaubt.

Implikation: Der generative Prozess des P-Systems hat einen intrinsischen "Zeitpfeil"; die Konstruktion ist ein historisch einzigartiges und irreversibles Ereignis.

Dieses theoretische Gerüst liefert die rigorose Basis für den finalen Algorithmus, der nichts anderes ist als die effizienteste rechnerische Implementierung der von dieser Grammatik beschriebenen generativen Dynamiken.

Der genealogische Motor: Formalisierung der dynamischen Konkurrenz

Die in der vorherigen Sektion beschriebenen Postulate und Theoreme liefern die axiomatischen Grundlagen des P-Systems. Nun können wir auf diesen Grundlagen aufbauen, um den mathematischen Motor rigoros zu definieren, der den Emergenzprozess der Zahlen regiert. Während der Selektive Genealogische Algorithmus (SGA), der später vorgestellt wird, die rechnerische Implementierung dieses Prozesses ist, formalisieren wir hier seine abstrakte Logik.

Dazu definieren wir das P-System als einen generativen Zustandsautomaten, ein formales System, das deterministisch von einem Zustand zum nächsten evolviert.

Definition des formalen P-Systems

Das P-System kann als Quintupel beschrieben werden:

P = (Σ, Γ, Φ, S₀, T)

Jede Komponente hat eine präzise Rolle:

Die Übergangsfunktion T und die genealogische Konkurrenz

Die Funktion T: Γ → Γ beschreibt einen einzelnen Schritt des generativen Prozesses. Gegeben einen Ausgangszustand Sₙ = (Nₙ, Cₙ), erfolgt der Übergang zum nächsten Zustand Sₙ₊₁ durch die folgenden deterministischen Schritte:

  1. Auswahl des Siegers: Das System analysiert die Menge der ausstehenden Aufgaben Cₙ und wählt das "siegreiche" Paar (k*, p*) aus, das die minimale Konstruktionsbedingung erfüllt. Der Sieger ist die Aufgabe, deren Produkt k das kleinste unter allen Aufgaben in der Warteschlange ist und somit das unmittelbar bevorstehende Kompositionsereignis darstellt.
    k* = min{kᵢ | (kᵢ, pᵢ) ∈ Cₙ}
  2. Identifikation von Lücken und Emergenz neuer Promotoren: Das System vergleicht den Wert der "siegreichen" zusammengesetzten Zahl k* mit der zuletzt analysierten Zahl Nₙ. Wenn k* > Nₙ + 1, ist eine konstruktive Lücke aufgetreten. Alle ganzen Zahlen im Intervall (Nₙ, k*) sind nicht durch die Interaktionen der existierenden Promotoren erzeugbar. Gemäß Postulat 1 (Konstruktiver Primat der Grammatik) müssen diese Zahlen notwendigerweise die gerade emergenten Promotoren sein.
    Pₙₑw = {p | p ∈ ℕ, Nₙ < p < k*}
  3. Zustandsaktualisierung: Der Zustand des Systems wird aktualisiert, um das Ergebnis der Konkurrenz und die mögliche Emergenz neuer Promotoren widerzuspiegeln.
    • Die neue "Grenze" der bekannten Welt wird Nₙ₊₁ = k*.
    • Die neue Menge der ausstehenden Aufgaben, Cₙ₊₁, wird wie folgt berechnet:
      • Entfernung: Die siegreiche Aufgabe (k*, p*) wird aus Cₙ entfernt.
      • Propagation: Der "siegreiche" Promotor p* wird mit seiner nächsten Aufgabe zurück in die Warteschlange gestellt. Das neue Paar wird (k* + p*, p*) sein.
      • Initiierung: Für jeden neuen Promotor pⱼ, der in Schritt 2 emergiert ist, wird seine erste Aufgabe in die Warteschlange gestellt, die immer seine Selbstinteraktion ist: (pⱼ², pⱼ).

Die rekursive Anwendung der Übergangsfunktion T ausgehend von S₀ erzeugt die gesamte geordnete Sequenz von Promotoren und zusammengesetzten Zahlen und offenbart die genealogische Struktur der Menge der natürlichen Zahlen. Diese Formalisierung zeigt, dass der Prozess, obwohl er lokal eine komplexe und unvorhersehbare Sequenz erzeugt, von einer deterministischen und berechenbaren Ordnung regiert wird.

Erweiterung der P-Sprache: Explorative Anwendungen in verschiedenen Domänen

Die Formalisierung des P-Systems hat eine Sprache mit einer kohärenten internen Grammatik und einem reichen operativen Apparat hervorgebracht. An diesem Punkt der Forschung stellte sich eine natürliche Frage: Ist die Fähigkeit des Systems, generative Strukturen zu beschreiben, auf die Domäne der Zahlentheorie beschränkt, oder ist sein Formalismus allgemein genug, um auf andere komplexe Systeme angewendet zu werden?

Um diese Möglichkeit zu untersuchen, führte ich eine Reihe von Fallstudien durch und wendete die Grammatik des P-Systems auf verschiedene Domänen an. Das Ziel war nicht, vollständige Modelle dieser Felder zu liefern, sondern die Flexibilität und Kohärenz der Sprache als Werkzeug zur strukturellen Analyse zu bewerten.

Der vollständige operative Apparat des P-Systems

Die Grundlage dieser Experimente ist die vollständige Menge der neun grammatikalischen Operatoren, die ich für das P-System definiert habe. Während für die Erzeugung von Primzahlen die Operatoren Komposition (⊗) und Selbstinteraktion (↑) ausreichen, ermöglicht der vollständige Apparat eine viel reichere Manipulation symbolischer Strukturen, die für die Modellierung komplexer Dynamiken wesentlich ist. Die Operatoren sind:

Fallstudien: Symbolische Modellierung

Mit dieser Sprache entwickelte ich mehrere vorläufige Anwendungsmodelle. In jedem Experiment wurden die fundamentalen Entitäten einer Domäne (z.B. Teilchen, atmosphärische Parameter) in Symbole πk übersetzt, und ihre Interaktionen wurden von den Operatoren des P-Systems regiert. Dazu gehören:

Diese vorläufigen Fallstudien legen nahe, dass das P-System-Framework eine Allgemeingültigkeit und interne Kohärenz besitzt, die es ermöglichen, es auf verschiedene Domänen anzuwenden. Dies ist ein faszinierendes Forschungsgebiet, das ich weiterhin vertiefe.

Der Selektive Genealogische Algorithmus (SGA): Die finale Formalisierung

Die theoretische Analyse und die empirische Untersuchung, die in den vorherigen Abschnitten beschrieben wurden, mündeten in der Gestaltung eines finalen Algorithmus, des Selektiven Genealogischen Algorithmus (SGA). Dieser Algorithmus ist kein eliminatives Sieb im klassischen Sinne, sondern ein generativer und konstruktiver Motor, dessen Logik die treue rechnerische Übersetzung des dynamischen Prozesses von "Propagation und Emergenz" ist.

Die Logik des SGA kann im folgenden Pseudocode formalisiert werden:

FUNKTION SGA(GrenzeN): Sei P eine leere Liste von Promotoren Sei C eine Prioritätswarteschlange (Min-Heap) von Aufträgen (Produkt, Promotor) FÜR n von 2 bis GrenzeN: Wenn die Warteschlange C leer ist ODER n < C.spitze().produkt: // Emergenz: n ist ein neuer Promotor Füge n zu P hinzu erste_aufgabe = (n*n, n) Füge erste_aufgabe zu C hinzu SONST: // Propagation: n ist eine zusammengesetzte Zahl WÄHREND C.spitze().produkt == n: erledigte_aufgabe = Extrahiere C.spitze() p = erledigte_aufgabe.promotor nächste_aufgabe = (erledigte_aufgabe.produkt + p, p) Füge nächste_aufgabe zu C hinzu ENDE WÄHREND ENDE FÜR GEBE P ZURÜCK

Box 1: Pseudocode des Selektiven Genealogischen Algorithmus.

Das folgende Diagramm illustriert den Zustand des Systems in einem Zeitpunkt n. Der Algorithmus analysiert n nicht im Vakuum, sondern vergleicht seinen Wert mit der "Aufgabe" an der Spitze der Propagationswarteschlange, die die nächste unvermeidliche zusammengesetzte Zahl darstellt. Die Interaktion zwischen diesen beiden Komponenten bestimmt, ob n ein neuer Promotor (eine Emergenz) oder eine zusammengesetzte Zahl (eine Propagation) ist.

Konzeptdiagramm des synchronen Prozesses ZUSTAND BEI SCHRITT 'n': +---------------------------+ | ENTDECKTE PROMOTOREN (P) | | [2, 3, 5, ...] | +---------------------------+ | | (Fügt neue Promotoren hinzu) V +------------------------------------------+ | PROPAGATIONSWARTESCHLANGE (C) | | (Prioritätswarteschlange zukünftiger | | Aufgaben) | | | | Spitze -> [ (produkt_min, promotor_k) ]| | [ (produkt_x, promotor_m) ] | | [ (produkt_y, promotor_n) ] | | ... | +------------------------------------------+ | | (Extrahiert minimale Aufgabe) V DURCHLAUF --> n ⟷ produkt_min --> AKTION (Emergenz oder Propagation)

Abbildung 1: Logisches Schema der Interaktion zwischen Durchlauf und Propagationswarteschlange.

Architektur des Algorithmus

Der SGA operiert als endlicher Zustandsautomat, dessen Funktion es ist, die Zahlenlinie zu "bevölkern", nicht linear (n → n+1), sondern springend von einem generativen "Ereignis" zum nächsten. Dazu nutzt er zwei Hauptdatenstrukturen:

Der Hauptzyklus des Algorithmus besteht darin, kontinuierlich die Aufgabe mit der höchsten Priorität aus der Warteschlange zu extrahieren, die entstandene numerische "Lücke" zu analysieren, um neue Promotoren zu entdecken, und schließlich die Warteschlange mit den neuen Aufgaben zu aktualisieren, die sowohl vom Promotor erzeugt werden, der gerade "gearbeitet" hat, als auch von den neu entdeckten Promotoren.

Schlüsseleigenschaften des SGA

Diese Architektur verleiht dem Algorithmus seine einzigartigen Eigenschaften:

Positionierung im Vergleich zum Stand der Technik

Es ist nützlich, den SGA im Verhältnis zu klassischen Sieben zu positionieren. Im Gegensatz zum Sieb des Eratosthenes, das eliminativ ist und auf einem Speicherarray der Größe N operiert, ist der SGA konstruktiv und hat in seiner segmentierten Version einen viel niedrigeren Speicherbedarf (O(√N)). Im Vergleich zum Sieb von Atkin, das komplexer ist und die Markierung zusammengesetzter Zahlen basierend auf quadratischen Formen optimiert, verfolgt der SGA eine andere Logik, die auf einer dynamischen "Planung" von Multiplikationsereignissen durch eine Prioritätswarteschlange basiert. Obwohl all diese Algorithmen eine ähnliche theoretische Komplexität haben (O(N) in den optimiertesten Versionen), zeichnet sich der SGA dadurch aus, dass er aus einem grammatikalischen theoretischen Framework abgeleitet ist und seine Implementierung intrinsisch selektiv ist.

Experimentelle Validierung und Leistungsanalyse

Um die Wirksamkeit und Korrektheit des theoretischen Modells zu validieren, übersetzte ich die Logik des SGA in eine Hochleistungsimplementierung unter Verwendung der Programmiersprache Rust und wendete eine Blockstrategie (segmentiertes Sieb) an, um die Speicherverwaltung weiter zu optimieren.

Verifikation der Korrektheit

Die Tests wurden auf einem Consumer-Laptop durchgeführt (Apple MacBook Pro, 2021, M1, 16GB RAM). Die primäre Validierungsmetrik ist die Korrektheit der Primzahlzählung. Tabelle 2 vergleicht die Ergebnisse des Algorithmus mit den offiziellen Werten der Primzahl-Zählfunktion π(x).

Tabelle 2: Vergleich zwischen SGA-Ergebnissen und Referenzwerten
Getestete Grenze (N) Vom SGA gefundene Primzahlen Offizielle Zählung π(N) Status
10⁸ 5.761.455 5.761.455 ✅ Korrekt
10⁹ 50.847.534 50.847.534 ✅ Korrekt
10¹⁰ 455.052.511 455.052.511 ✅ Korrekt
10¹¹ 4.118.054.813 4.118.054.813 ✅ Korrekt
10¹² 37.607.912.018 37.607.912.018 ✅ Korrekt

Die Daten zeigen eine perfekte Übereinstimmung und validieren die logische Konsistenz des Algorithmus.

Leistungsanalyse und Skalierbarkeit

Tabelle 3 zeigt die Ausführungszeiten zum Erreichen der angegebenen Grenzen.

Tabelle 3: Ausführungszeiten der Rust-Implementierung
Getestete Grenze (N) Ausführungszeit (Rust, M1)
10⁹ (1 Milliarde) ~1,9 Sekunden
10¹⁰ (10 Milliarden) ~19,4 Sekunden
10¹¹ (100 Milliarden) ~203,5 Sekunden (~3,4 Minuten)
10¹² (1 Billion) ~1670 Sekunden (~28 Minuten)

Die bedeutendste Analyse betrifft die Skalierbarkeit. Bei jeder 10-fachen Erhöhung der Grenze stieg die Ausführungszeit um einen Faktor von etwa 10-11 mal bis zu 100 Milliarden und nur 8,2 mal für den Übergang zu 1000 Milliarden. Dieser nahezu lineare Verlauf (O(N log log N)) zeigt eine extrem hohe rechnerische Effizienz und das Fehlen signifikanter Engpässe, selbst auf extremen numerischen Skalen.

Schlussfolgerungen und Zukunftsperspektiven

In der vorliegenden Arbeit habe ich das P-System eingeführt und formalisiert, ein theoretisches Framework, das auf einer konstruktivistischen Hypothese für die Natur der natürlichen Zahlen basiert. Die Hauptbeiträge dieser Forschung sind drei: erstens die Präsentation einer neuen Definition von Primalität, die nicht auf Teilbarkeit basiert, sondern auf Nicht-Konstruierbarkeit innerhalb einer formalen Grammatik und durch eine spezifische Morphogenetische Signatur charakterisiert wird; zweitens die Entdeckung eines deterministischen generativen Prozesses ("Selektive Propagation"), der die Emergenzordnung der Zahlen regiert; drittens die Entwicklung eines abgeleiteten Algorithmus, des Selektiven Genealogischen Algorithmus (SGA).

Die Gültigkeit des theoretischen Frameworks wird durch die experimentellen Ergebnisse bestätigt. Die Fähigkeit, die Logik des P-Systems in den SGA-Algorithmus zu übersetzen, der nicht nur die Primzahl-Zählfunktion π(x) korrekt reproduziert, sondern auch eine rechnerische Effizienz auf höchstem Niveau zeigt, liefert eine solide empirische Validierung des Modells. Die Rust-Implementierung des SGA ermöglichte die Berechnung der 37.607.912.018 Primzahlen bis 10¹² in etwa 28 Minuten auf Consumer-Hardware und demonstrierte die Leistungsfähigkeit und Skalierbarkeit des Ansatzes.

Die Zukunftsperspektiven dieser Forschung gliedern sich in zwei Hauptrichtungen, die sich ergänzen. Die erste ist ingenieurtechnischer und angewandter Natur: Sie sieht die weitere Optimierung des SGA und die Anwendung des P-System-Frameworks auf andere Domänen vor, wie es vorläufig im Bereich der Kryptographie mit dem P-Signature-Schema erforscht wurde. Die zweite ist ein Weg fundamentaler theoretischer Forschung: Das Ziel ist die Entwicklung eines rein symbolischen Berechnungsmotors, der ohne jede arithmetische "Brücke" operiert, und die Erweiterung von SyntaxOS, einem Betriebssystem, das vollständig auf der generativen Grammatik des P-Systems basieren soll.

Zusammenfassend bietet das P-System ein alternatives Framework zur Analyse der fundamentalen Struktur von Zahlen, indem es sie als emergente Entitäten aus einem grammatikalischen Prozess interpretiert. Die vollständige Dokumentation des Projekts, einschließlich Implementierungen und Datensätze, wird in einem öffentlichen Archiv für die Überprüfung und Zusammenarbeit der wissenschaftlichen Gemeinschaft gepflegt.

Literaturverzeichnis

Sprachphilosophie und Erkenntnistheorie

Chomsky, N. (1957). Syntactic Structures. The Hague: Mouton.

Chomsky, N. (1965). Aspects of the Theory of Syntax. Cambridge: MIT Press.

Lévi-Strauss, C. (1958). Anthropologie structurale. Paris: Plon.

Platon. Kratylos.

Saussure, F. de (1916). Cours de linguistique générale. Paris: Payot.

Schopenhauer, A. (1818). Die Welt als Wille und Vorstellung. Leipzig: Brockhaus.

Wittgenstein, L. (1921). Tractatus Logico-Philosophicus. London: Routledge.

Zahlentheorie und Mathematik

Church, A. (1936). "An unsolvable problem of elementary number theory". American Journal of Mathematics, 58(2), 345-363.

Gödel, K. (1931). "Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme". Monatshefte für Mathematik, 38, 173-198.

Russell, B. & Whitehead, A.N. (1910-1913). Principia Mathematica. Cambridge: Cambridge University Press.

Turing, A.M. (1936). "On computable numbers, with an application to the Entscheidungsproblem". Proceedings of the London Mathematical Society, 42(2), 230-265.

Komplexe Systeme und Morphogenese

Lindenmayer, A. (1968). "Mathematical models for cellular interactions in development". Journal of Theoretical Biology, 18(3), 280-299.

Mandelbrot, B. (1982). The Fractal Geometry of Nature. New York: W.H. Freeman.

Thompson, D'Arcy W. (1917). On Growth and Form. Cambridge: Cambridge University Press.

Wolfram, S. (2002). A New Kind of Science. Champaign: Wolfram Media.

Anhang: Rust-Code der Implementierung

use std::env; use std::time::Instant; fn motor_in_bloecken_final(grenze_n: u64) -> Vec<u64> { // KORREKTUR: Ich habe den Variablennamen vereinheitlicht. let block_groesse: usize = 1_000_000; if grenze_n < 2 { return Vec::new(); } // Phase 1: Berechnung der "Leit"-Primzahlen bis sqrt(grenze_n) let grenze_leiter = (grenze_n as f64).sqrt() as usize; let mut markierer_leiter = vec![true; grenze_leiter + 1]; // KORREKTUR: 'leiter' ist jetzt von Anfang an ein Vec<u64>. let mut leiter: Vec<u64> = Vec::new(); for p in 2..=grenze_leiter { if markierer_leiter[p] { // KORREKTUR: Wir fügen die Primzahl als u64 zur Liste hinzu. leiter.push(p as u64); for i in (p * p..=grenze_leiter).step_by(p) { markierer_leiter[i] = false; } } } // Jetzt wird 'gefundene_primzahlen' korrekt ein Vec<u64> sein. let mut gefundene_primzahlen = leiter.clone(); // Phase 2: Blockweise Analyse let start_schleife = (grenze_leiter + 1) as u64; // KORREKTUR: Verwendung der Variablen mit dem korrekten Namen. for niedrig in (start_schleife..=grenze_n).step_by(block_groesse) { let hoch = (niedrig + block_groesse as u64 - 1).min(grenze_n); // KORREKTUR: Ich habe die Grenzenverwaltung hier für mehr Klarheit verschoben. if niedrig > hoch { continue; } let block_size = (hoch - niedrig + 1) as usize; let mut block_markierer = vec![true; block_size]; for &p in &leiter { let start_wert = (niedrig + p - 1) / p; let start_vielfaches = start_wert.max(p) * p; if start_vielfaches > hoch { continue; } let start_vielfaches_relativ = (start_vielfaches - niedrig) as usize; for j in (start_vielfaches_relativ..block_size).step_by(p as usize) { block_markierer[j] = false; } } for (i, &ist_p) in block_markierer.iter().enumerate() { if ist_p { // Jetzt sind die Typen konsistent: wir fügen ein u64 zu einem Vec<u64> hinzu. gefundene_primzahlen.push(niedrig + i as u64); } } } gefundene_primzahlen } fn main() { println!("=== P-PURE: GENEALOGISCHER MOTOR ==="); let args: Vec<String> = env::args().collect(); if args.len() != 2 { println!("❌ Fehler: Bitte eine numerische Grenze als Argument angeben."); println!(" Beispiel: cargo run --release 1000000000"); return; } let grenze = match args[1].parse::<u64>() { Ok(n) if n > 1 => n, _ => { println!("❌ Fehler: Das Argument muss eine ganze Zahl größer als 1 sein."); return; } }; println!(" Starte Berechnung bis {}...", grenze); let start_zeit = Instant::now(); let primzahl_ergebnisse = motor_in_bloecken_final(grenze); let dauer = start_zeit.elapsed(); // Abschlusszusammenfassung println!("\n{}", "=".repeat(50)); println!("✅ Benchmark abgeschlossen!"); println!(" - Getestete Grenze: {}", grenze); println!(" - Gefundene Primzahlen insgesamt: {}", primzahl_ergebnisse.len()); let n_zeigen = 25.min(primzahl_ergebnisse.len()); println!("\n Erste {} gefundene Primzahlen:", n_zeigen); println!(" {:?}", &primzahl_ergebnisse[..n_zeigen]); let len = primzahl_ergebnisse.len(); println!("\n Letzte {} gefundene Primzahlen:", n_zeigen); println!(" {:?}", &primzahl_ergebnisse[len.saturating_sub(n_zeigen)..]); println!("\n⏱ Gesamte Ausführungszeit: {:.4?}", dauer); println!("{}", "=".repeat(50)); }

Erkunden Sie die praktischen Implementierungen

Besuchen Sie das P-Labor