Komplexität des größten gemeinsamen Divisors (gcd)


33

Betrachten Sie das folgende Zählproblem (oder das damit verbundene Entscheidungsproblem): Berechnen Sie bei zwei binär codierten positiven Ganzzahlen ihren größten gemeinsamen Divisor (gcd). Was ist die kleinste Komplexitätsklasse, in der dieses Problem enthalten ist? Können Sie eine Referenz angeben?

In dieser Frage geht es mir nicht primär um asymptotische Grenzen der Laufzeit, sondern um Komplexitätsklassen. Liegt das Problem bei AC? Kann nachgewiesen werden, dass es nicht in AC0 liegt? Was sind andere Komplexitätsklassen in P, die hier relevant sind?


3
@ Joe: Meine Interpretation ist, dass der Fragesteller daran interessiert ist, ob die Sprache {(x, y, i) | Das i-te Bit von gcd (x, y) ist 1} in NC, AC0 usw., aber eine Klarstellung durch den Fragesteller wäre nützlich.
Tsuyoshi Ito

1
Ja, Tsuyoshi formuliert das Entscheidungsproblem so, wie ich es mir vorgestellt habe - entschuldige die Mehrdeutigkeit. Konzentrieren Sie sich jedoch nicht auf die von mir vorgeschlagenen Komplexitätsklassen, da ich einfach nicht weiß, welche Komplexitätsklassen hier relevant sind. Ich bin neugierig auf jede nichttriviale Komplexitätsklasse, die eine Teilmenge von P (bzw. FP) ist, die gcd enthält.
Felix Breuer

1
Ich bin neugierig auf den Fall von Gaußschen Ganzzahlen. Schnelle Google-Suche zeigt Möglichkeiten zur Anpassung des normalen euklidischen Algorithmus auf, aber keiner von ihnen diskutiert die Beziehung zwischen den natürlichen Zahlen und den Gaußschen Ganzzahlen. Gibt uns irgendein gcd-Algorithmus über die natürlichen Zahlen einen Algorithmus über die Gaußschen Ganzzahlen mit der gleichen Komplexität? (Ich habe keine Anwendung, das ist reine Neugier.) Gibt es auch effiziente randomisierte Algorithmen für die Berechnung von GCD mit geringeren erwarteten Laufzeiten?
Ross Snider


1
Korrigierter Link: mathoverflow.net/questions/44684/… . Danke für die Warnung, Kaveh.
Zsbán Ambrus

Antworten:


44

Dies ist eine wichtige offene Frage in der Komplexitätstheorie: Es ist nicht bekannt, ob GCDs in NC berechnet werden können, und es ist nicht bekannt, ob die Berechnung von GCDs P-vollständig ist. Die besten parallelen Algorithmen haben eine sublineare parallele Laufzeit, wobei ein solcher Algorithmus auf Sorenson zurückzuführen ist:

J. Sorenson. Zwei schnelle GCD-Algorithmen . Journal of Algorithms, 1994.

Wenn ich mich nicht irre, ist nicht einmal bekannt, ob man in NC entscheiden kann, ob zwei ganze Zahlen relativ prim sind.


Danke, das wollte ich wissen! Wenn jemand jedoch andere nichttriviale Untergruppen von P kennt, von denen bekannt ist, dass sie gcd enthalten, lassen Sie es mich bitte wissen.
Felix Breuer

15
Die Prüfung, ob zwei Ganzzahlen relativ prim sind, ist auch gemäß dieser Referenz offen: Grenzen der parallelen Berechnung , Seite 231, Problem B.5.7.
Robin Kothari

4
Eine sehr aktuelle Literaturstelle ist: Sorenson, Jonathan P. "Ein randomisierter, zeitparalleler GCD-Algorithmus für den EREW-PRAM." Information Processing Letters 110, No. 5 (Februar 2010): 198-201. linkedhub.elsevier.com/retrieve/pii/S0020019009003640 .
Felix Breuer


3

In diesem 2007 veröffentlichten Artikel heißt es, dass die Ganzzahl GCD in NC vorliegt.

Edit: Die Behauptung ist wahrscheinlich falsch. Überprüfen Sie die Kommentare.


4
Der Artikel wurde nie veröffentlicht , sondern nur auf der Website des Autors veröffentlicht. Darüber hinaus scheint der Autor selbst nicht zu glauben, dass seine Arbeit von 2007 korrekt ist, da er das Problem in seinen späteren Arbeiten als offen aufführt ( cs.cornell.edu/courses/CS6820/2012sp/Handouts/Sedjelmaci09.pdf ).
Emil Jeřábek unterstützt Monica

Wusste ich nicht. Vielen Dank für den Hinweis.
Apoorv Gupta

1
Ich denke nicht, dass diese Art von Antworten herabgestimmt werden sollte.
Alessandro Cosentino
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.