[python] Wie lange wird diese Exponentiation dauern?

Neue Frage »

Malcang Auf diesen Beitrag antworten »
[python] Wie lange wird diese Exponentiation dauern?
Hallo mal wieder smile

Ich lasse gerade einige Berechnungen laufen (Proth'sche Zahlen, wie immer Big Laugh ).
Jedenfalls geht es dabei um sehr große modulare Exponentiationen.
Im vorliegenden Fall will ich folgendes Berechnen:
mit (das ist die derzeit größte bekannte Cullen-Primzahl).
Nun wollte ich gerne abschätzen, wie lange das dauert. Dazu habe ich folgendes gemacht:
Ich habe diese Berechnungen für alle der Form mit und durchgeführt. (Ich hatte das erst mit allen Zahlen probiert, aber festgestellt, dass es bei verschiedenen Restklassen sehr unterschiedliche Ergebnisse gab. Daher hier auf gegangen).
Diese Zeiten habe ich gemessen und mit einem Polynom 2. Grades angenähert. Außerdem habe ich das Rauschen untersucht. Das ganze sieht so aus (die Beschriftung an der x-Achse ist falsch. Das ist nur die Anzahl der untersuchten Exponenten, nicht der jeweilige Exponent selbst)
[attach]57349[/attach]
Das quadratische Polynom lautet
Nun habe ich mir also angeschaut. Das ergbit eine Berechnungszeit von 45 Stunden.

Mir ist schon klar, dass dies nicht die genaue Zeit ist, und es sicher eher länger dauern wird. Aber ist dies eine "annehmbare" Approximation? Kann ich eine bessere Abschätzung erlangen?
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Malcang
Im vorliegenden Fall will ich folgendes Berechnen:
mit (das ist die derzeit größte bekannte Cullen-Primzahl).

Du willst also auf andere Weise als über das Quadratische Reziprozitätsgesetz berechnen? verwirrt
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Zitat:
Original von Malcang
Im vorliegenden Fall will ich folgendes Berechnen:
mit (das ist die derzeit größte bekannte Cullen-Primzahl).

Du willst also auf andere Weise als über das Quadratische Reziprozitätsgesetz berechnen? verwirrt


Hallo HAL. Ich habe das nun über die in python eingebaute Funktion
Zitat:
pow(a,b,m)
gemacht, das mir liefert.

Du sagst, eine andere Weise als das QRP? Ah, du willst darauf hinaus dass ich die größte Cullen-Primzahl erwähnt hab, oder?
Im Allgemeinen nutze ich meinen Algorithmus aus dem anderen Thread. In diesem Falle hier weiß ich halt einfach, dass rauskommen sollte. Ich wollte das für meine Ausarbeitung einfach mal "live" machen smile
Oder habe ich dich falsch verstanden.
HAL 9000 Auf diesen Beitrag antworten »

Ja, wenn man natürlich nicht weiß, dass dieses eine Primzahl ist, dann funktioniert der Weg über das Quadratische Reziprozitätsgesetz selbstredend nicht. Augenzwinkern
Malcang Auf diesen Beitrag antworten »

Danke HAL und sorry, da war ich zu betriebsblind und hab es deshalb nicht erwähnt smile

Aber wenn ich das mal rein auf die Berechnungszeit betrachte, ist mein Ansatz mit der Messung dann korrekt?
HAL 9000 Auf diesen Beitrag antworten »

Ich versuche das mal aufgrund der angenommenen Berechnungsweise zu verstehen:

Eine Multiplikation zweier ganzer Zahlen mit ungefähr Binärstellen hat Komplexität , das schaffen zumindest moderne Multiplikationsalgorithmen basierend auf FFT (gegenüber dem herkömmlichen, schlechteren der "schriftlichen" Multiplikation). Nun sind bei dieser Potenzberechnung auch in etwa solche Multiplikationen nötig, daher wäre meine Vermutung für die Komplexität eher als dein . verwirrt
 
 
Malcang Auf diesen Beitrag antworten »

Danke sehr, das gibt mir schon eine andere Sicht. Ich war einfach von quadratischem Wachstum ausgegangen und konnte mir "np.polyfit" auch noch eine Phyton-Funktion finden, die mir das so annähert. Aber sieht der der empirischen Daten denn nicht auch stark quadratisch aus?
Ich bin beim Thema Komplexität leider völlig raus.
Aber mit dem Hintergrundwissen von dir, HAL, wie könnte ich denn hier eine besser passende Funktion finden? Also wie könnte ich meine empirischen Daten durch eine Funktion der Form (richtig?) annähern?
HAL 9000 Auf diesen Beitrag antworten »

Naja, wenn du es mit dem Ansatz probieren willst, der entspricht ja

mit

Diese Koeffizienten kann man aus deinem empirischen Material mit multipler linearer Regression fitten.

Allzu kleine würde ich noch nicht in diese Statistik einbeziehen, da dort der Einfluss des "krummen" 631383 im Exponent noch zu groß ist. Also über den Daumen gepeilt anhand deines Graphes vielleicht nur die von 400..800 einbeziehen. Verlang aber bloß keine genauere Erklärung für dieses eher heuristische Argument. Augenzwinkern
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Naja, wenn du es mit dem Ansatz probieren willst, ...

Das war nur mein erster Gedanke. Was würdest du denn machen?

Zitat:
Original von HAL 9000
Verlang aber bloß keine genauere Erklärung für dieses eher heuristische Argument. Augenzwinkern


Big Laugh
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von Malcang
Das war nur mein erster Gedanke. Was würdest du denn machen?

Musst ja nicht jedes Wort eine Goldwaage legen. Probier es einfach aus, und wenn ein gutes Bestimmtheitsmaß herauskommt, umso besser. Wenn nicht, dann kannst du dir ja dann nochmal Gedanken machen, ob weitere/andere Glieder im Modell evtl. sinnvoll sein könnten.
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Zitat:
Original von Malcang
Das war nur mein erster Gedanke. Was würdest du denn machen?

Musst ja nicht jedes Wort eine Goldwaage legen. Probier es einfach aus, und wenn ein gutes Bestimmtheitsmaß herauskommt, umso besser. Wenn nicht, dann kannst du dir ja dann nochmal Gedanken machen, ob weitere/andere Glieder im Modell evtl. sinnvoll sein könnten.


So war das nicht gemeint. Ich hatte nur aus deinem
Zitat:
Naja, wenn du es mit dem Ansatz probieren willst...

reausgelesen, dass du es vielleicht mit einem anderen Ansatz machen würdest. Und der wäre mit deinem Wissen dann natürlich sinniger smile
HAL 9000 Auf diesen Beitrag antworten »

Das ist ja alles sehr schön, aber hast du nun diese Regression durchgeführt oder nicht?
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Das ist ja alles sehr schön, aber hast du nun diese Regression durchgeführt oder nicht?


Nein, ich hatte das weil die Berechnung nach ~60 Stunden fertig war dann wieder ad acta gelegt.
Interessieren würde es mich aber trotzdem. Dazu würde ich aber ohnehin wieder einen Thread aufmachen, weil ich das Thema gar nicht kenne Big Laugh
Können wir das hier vielleicht fortführen? Womit muss ich beginnen?

Ich habe ja die Wertepaare , wobei hier nur meine angenäherte Funktion ist.
HAL 9000 Auf diesen Beitrag antworten »

Ok, das werde ich jetzt nicht im einzelnen erläutern, verweise auf die in https://de.wikipedia.org/wiki/Multiple_lineare_Regression dargestellten Grundlagen.

Die Kurzfassung bezogen auf dein Modell :

Du hast Datenpaare für vorliegen, für die du so anpassen willst, dass Näherung möglichst gut funktioniert. Dazu konstruiere Matrizen bzw. Vektoren

und ,

dann sind optimal im Sinne einer minimalen Summe der quadratischen Abweichung

bzgl. .


Alternativ kannst du gemäß auch einfach lineare Regression angewandt auf die Datenpaare durchführen, was aber zu leicht anderen Koeffizienten führt, weil das Optimalitätskriterium hier ein anderes ist, nämlich

bzgl. .

Bedeutet eine stärkere Gewichtung der kleineren , was wir hier eigentlich nicht wollen (Ziel ist ja die Extrapolation der Rechenzeiten für große ). Daher würde ich die "echte" erstgenannte Regresssion hier vorziehen.
Malcang Auf diesen Beitrag antworten »

Cool, danke sehr HAL! Freude
Später am Laptop werde ich das sofort mal umsetzen!
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000

dann sind optimal im Sinne einer minimalen Summe der quadratischen Abweichung



HAL, ist eine -Matrix, oder?
Denn dann ist doch nicht defniert?
HAL 9000 Auf diesen Beitrag antworten »

Brauchen wir wirklich eine Wiederholung Grundlagen Matrix-Multiplikation??? Nun gut:

Matrix mit Dimension multipliziert mit Matrix der Dimension ergibt Matrix der Dimension .

Und nund die Anwendung hier:

ist eine -Matrix, und ein -Vektor bzw. gleichbedeutend eine -Matrix. Dann besitzen die folgenden Größen diese Dimensionen:

Dimension
Dimension
Dimension
Dimension
Dimension

Wo siehst du da Probleme???
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Brauchen wir wirklich eine Wiederholung Grundlagen Matrix-Multiplikation??? Nun gut:

Matrix mit Dimension multipliziert mit Matrix der Dimension ergibt Matrix der Dimension .

Und nund die Anwendung hier:

ist eine -Matrix, und ein -Vektor bzw. gleichbedeutend eine -Matrix. Dann besitzen die folgenden Größen diese Dimensionen:

Dimension
Dimension
Dimension
Dimension
Dimension

Wo siehst du da Probleme???


Nirgendwo... ach man, warum passieren mir immernoch diese Flüchtigkeitsfehler... Sorry und Danke!
HAL 9000 Auf diesen Beitrag antworten »

Wenn's so ein Riesenproblem ist, dann reich den Datensatz mit den gemessenen Zeiten für die jeweiligen $x$ einfach mal rüber und ich berechne dir bzw. dann in der Folge , inklusive Bestimmtheitsmaß (Gütefaktor der Anpassung).
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Wenn's so ein Riesenproblem ist, dann reich den Datensatz mit den gemessenen Zeiten für die jeweiligen $x$ einfach mal rüber und ich berechne dir bzw. dann in der Folge , inklusive Bestimmtheitsmaß (Gütefaktor der Anpassung).


Das ist ein tolles Angebot, vielen Dank HAL!
Ich wollte aber ohnehin gerade einen neuen Thread aufmachen, in dem es um Komplexitätsbestimmung geht (auch für diesen Algorithmus).

Ich hoffe das ist ok wenn ich dazu einen neuen Thread starte. Ansonsten kann ein Moderator das vielleicht einfach löschen und den Post hierher verschieben?
Danke nochmal für das Angebot und die Hilfe!! Freude Freude Freude

Zitat:
Original von HAL 9000
$x$


Schade dass das Board diesen Math-mode nicht unterstützt. Mir passiert es auch ständig Big Laugh
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »