Wie werden reelle Zahlen bei der Berechnung angegeben?


27

Dies mag eine grundlegende Frage sein, aber ich habe Artikel über Themen wie Nash-Gleichgewichtsberechnung und lineare Entartungstests gelesen und zu verstehen versucht und war mir nicht sicher, wie reelle Zahlen als Eingabe angegeben werden. Wenn beispielsweise angegeben wird, dass LDT bestimmte untere Polynomgrenzen hat, wie werden die reellen Zahlen angegeben, wenn sie als Eingabe behandelt werden?


1
Die Diskussion könnte Sie hier interessieren: en.wikipedia.org/wiki/Computable_number
Joseph Malkevitch

Jemand sollte diese Papiere in einem kostenlosen herunterladbaren E-Book zusammenstellen.
Dilawar

Antworten:


34

Ich bin mit Ihrer akzeptierten Antwort von Kaveh nicht einverstanden. Bei linearer Programmierung und Nash-Gleichgewichten kann ein Gleitkommawert akzeptabel sein. Gleitkommazahlen und Rechengeometrie passen jedoch nicht zusammen: Der Rundungsfehler macht die kombinatorischen Annahmen der Algorithmen ungültig und führt häufig zum Absturz. Insbesondere hängen viele Algorithmen zur Berechnung der Geometrie von primitiven Tests ab, die prüfen, ob ein gegebener Wert positiv, negativ oder null ist. Wenn dieser Wert sehr nahe bei Null liegt und die Gleitkommarundung ein falsches Vorzeichen verursacht, können schlimme Dinge passieren.

Stattdessen wird häufig angenommen, dass Eingaben Ganzzahlkoordinaten haben, und Zwischenergebnisse werden häufig genau dargestellt, entweder als rationale Zahlen mit ausreichend hoher Genauigkeit, um einen Überlauf zu vermeiden, oder als algebraische Zahlen. Gleitkommanäherungen an diese Zahlen können verwendet werden, um die Berechnungen zu beschleunigen, aber nur in Situationen, in denen garantiert werden kann, dass die Zahlen weit genug von Null entfernt sind, dass die Vorzeichentests die richtigen Antworten geben.

In den meisten Veröffentlichungen zu theoretischen Algorithmen in der Computergeometrie wird dieses Problem dadurch umgangen, dass angenommen wird, dass die Eingaben exakte reelle Zahlen sind und dass die Primitive exakte Tests der Wurzelzeichen von Polynomen niedrigen Grades in den Eingabewerten sind. Wenn Sie jedoch geometrische Algorithmen implementieren, wird dies alles sehr wichtig.


Ich hatte den Teil von Kavehs Antwort gemocht, in dem er vorschlug, dass es alternative Berechnungsmodelle gibt, da dies mit dem übereinzustimmen schien, was ich in der Zeitung gelesen hatte, die ich mir ansah. Das heißt, ich wusste die Antwort nicht wirklich ... Ich habe Kavehs Antwort vorerst nicht akzeptiert. Ich hatte tatsächlich vermutet, dass algebraische Zahlen etwas damit zu tun haben könnten. Wie auch immer, danke, dass Sie sich die Zeit genommen haben, meine Frage abzuwägen ... Ich werde weiter nachdenken und lesen, bevor ich eine Antwort akzeptiere.
Philip White

Ich habe nicht gesagt, dass es ein gutes Modell für CG ist. Mein Punkt war, dass selbst wenn Autoren sagen, dass die Eingaben reelle Zahlen sind, es sich nicht wirklich um reelle Zahlen handelt . Ich stimme Ihnen zu, dass ich CG nicht zu den anderen zählen sollte. Ich habe eine sehr kleine Anzahl von CG-Artikeln gelesen. Ist das BSS-Modell in theoretischen CG-Artikeln gut etabliert?
Kaveh

1
Entschuldigen Sie meine Unwissenheit, aber wofür steht BSS?
Philip White

1
Das BSS-Modell ist ein theoretisches Modell, das davon ausgeht, dass beliebige reelle Zahlen verfügbar sind. Was in CG gemacht wird, beinhaltet die tatsächliche Implementierung eines Modells, das im Allgemeinen auf algebraische Zahlen beschränkt ist. Auch die CG-Implementierungen sind weit von den Stückkosten pro Operation entfernt. Sie sind also nicht dasselbe. Siehe z. B. das LEDA-Modell mit reellen Zahlen, citeseerx.ist.psu.edu/viewdoc/…
David Eppstein

10
@Kaveh: Nein. Geometrische Algorithmen sind so konzipiert, dass sie im realen RAM-Modell für beliebige reale Eingaben und nicht nur für rationale Eingaben korrekt sind. Insbesondere gibt es geometrische Algorithmen, die nicht genau implementiert werden können, weil sie Grundelemente verwenden, die im realen RAM trivial sind, für die jedoch kein effizienter Algorithmus für den (realistischen) Integer-RAM bekannt ist. Das beste Beispiel ist das Problem mit der Summe der Quadratwurzeln: Wenn zwei Mengen und von positiven ganzen Zahlen gegeben sind, ist ? T s S STsSs>tTt
Jeffs


8

Dies ist keine direkte Antwort auf Ihre Frage, sondern eher eine Antwort auf Raphael . In letzter Zeit wurde einige Arbeit geleistet, um reelle Zahlenberechnungen mithilfe von Coinduktion zu spezifizieren. Hier sind einige Artikel zum Thema.

Sie decken kaum das gesamte Spektrum der reellen Zahlenberechnung ab, doch bei verschiedenen Problemen werden Fortschritte erzielt.


1
R

Guter Punkt. Ich bin mir nicht sicher, wo die Grenzen des koinduktiven Ansatzes liegen. Der Ansatz steckt noch in den Kinderschuhen.
Dave Clarke

7

Die rechnerische Komplexität von Berechnungen über reelle Zahlen wird von Blum, Cucker, Shub und Smale betrachtet . Hier ist eine teilweise Beschreibung des Buches:

Die klassische Berechnungstheorie hat ihren Ursprung in den Arbeiten von Goedel, Turing, Church und Kleene und war ein außerordentlich erfolgreicher Rahmen für die theoretische Informatik. Die These dieses Buches ist jedoch, dass es eine unzureichende Grundlage für moderne wissenschaftliche Berechnungen bietet, bei denen die meisten Algorithmen reelle Zahlenalgorithmen sind. Das Ziel dieses Buches ist es, eine formale Berechnungstheorie zu entwickeln, die die Hauptthemen der klassischen Theorie integriert und direkter auf Probleme in der Mathematik, der numerischen Analyse und dem wissenschaftlichen Rechnen anwendbar ist. Dabei betrachten die Autoren grundlegende Probleme wie: Ist die Mandelbrotmenge entscheidbar? Ist das Julia-Set für einfache quadratische Karten ein Halteset? Was ist die wahre Komplexität von Newton? s Methode? Gibt es einen Algorithmus zur Entscheidung des Rucksackproblems in einer Vielzahl von Schritten? Ist der Hilbert-Nullstellensatz unlösbar? Ist das Problem, ein reales Null-Grad-Vier-Polynom zu lokalisieren, nicht zu lösen? Ist lineare Programmierung realitätsübergreifend?

Eine Rezension dieses Buches finden Sie unter ACM SIGACT News .


Dieses Buch sieht sehr interessant aus, danke.
Philip White

Sehr gern geschehen.
MS Dousti

5
Es ist erwähnenswert, dass das BSS-Modell der Berechnung über die Realwerte aus ähnlichen Gründen kontrovers ist, auf die David Eppstein in einem obigen Kommentar verwiesen hat. Zum Beispiel: das BSS-Axiom, das berechnet, ob x <y einen Zeitschritt dauert, für beliebige reelle x und y. Im Gegensatz dazu definieren Ansätze wie TTE (Type Two Effectivity) Maschinen, die Eingabenäherungen an Realwerte vornehmen und berechenbare Näherungen an Funktionen über Realwerte ausgeben. Je mehr Zeit vergeht, desto besser können die Ein- und Ausgangsnäherungen werden. Dieser Ansatz erscheint mir realistischer.
Aaron Sterling

@ Aaron Sterling: Kennen Sie eine gute Referenz für Type Two Effectivity?
Joshua Grochow

3
@ Joshua Grochow: Tut mir leid, dass ich nicht früher dazu gekommen bin. Das Buch, mit dem Kaveh verbunden ist, ist "Nielsen and Chuang" von TTE. Es ist jedoch so notationsbeladen, dass es für einen Gelegenheitsleser geheimnisvoll erscheint. Ich würde stattdessen die folgenden Tutorial-Folien von Vasco Brattka vorschlagen: cca-net.de/vasco/cca/tutorial.pdf
Aaron Sterling

7

Auf der Grundlage der Kommentare bearbeitet / korrigiert

Wenn Autoren über reelle Zahleneingaben in der linearen Programmierung, Nash-Gleichgewichtsberechnung, sprechen, ... meinen sie in den meisten Arbeiten (Arbeiten, die sich nicht mit Berechnung / Komplexität über reelle Zahlen befassen) nicht wirklich reelle Zahlen. Es sind rationale Zahlen und Zahlen, die sich aus ihren Manipulationen ergeben (algebraische Zahlen). Sie können sich diese also als endliche Zeichenfolgen vorstellen.

Wenn es auf der anderen Seite um Rechenbarkeit und Komplexität bei der Analyse geht , verwenden sie nicht das übliche Rechenmodell, und es gibt verschiedene inkompatible Rechenmodelle / Komplexitätsmodelle für reelle Zahlen.

Wenn in der Arbeit kein Berechnungsmodell für reelle Zahlen angegeben ist, können Sie davon ausgehen, dass dies der erste Fall ist, dh es handelt sich nur um rationale Zahlen.

Computergeometrie ist anders. Wenn die Autoren in den meisten Beiträgen in CG nicht angeben, welches Modell in Bezug auf die Korrektheit und Komplexität eines Algorithmus diskutiert wird, kann davon ausgegangen werden, dass es sich um das BSS-Modell (auch bekannt als Real-RAM-Modell) handelt.

Das Modell ist nicht realistisch und daher ist die Implementierung nicht einfach. (Dies ist einer der Gründe, warum einige Leute in CCA theoretische Modelle nach Ko-Friedman / TTE / Domain bevorzugen. Das Problem bei diesen Modellen ist jedoch, dass sie in der Praxis nicht so schnell sind wie Gleitkommaberechnungen.) Die Richtigkeit und Komplexität von Der Algorithmus im BSS-Modell überträgt sich nicht unbedingt auf die Richtigkeit des implementierten Algorithmus.

Weihrauchs Buch enthält einen Vergleich zwischen verschiedenen Modellen (Abschnitt 9.8). Es sind nur drei Seiten und lesenswert.

(Es gibt auch einen dritten Weg, der möglicherweise besser für CG geeignet ist. Schauen Sie sich dieses Dokument an:

Chee Yap, " Theorie der reellen Berechnung nach EGC "

wobei EGC die exakte geometrische Berechnung ist .)


Ich denke, die Arbeit, die mich in erster Linie interessiert, spezifiziert ein Modell, da es den Satz "Wir definieren jetzt formell unser Rechenmodell" enthält. Das Papier heißt "Lower Bounds for Satisfiability Problems", und es scheint eine Diskussion über lineare Entscheidungsbäume und Abfragepolynome zu geben. Also, ich denke, das ist die Antwort, die ich dort gesucht habe ... danke. Ich werde die Zeitung noch einmal lesen und sehen, ob ich einen Sinn daraus machen kann.
Philip White

2
Ich stimme dir nicht zu. Dies ist das falsche Modell für die Berechnungsgeometrie. Siehe meine detailliertere Antwort unten.
David Eppstein

1
@ Kaveh: Ich denke, Sie sollten sagen, dass es sich um rationale Zahlen handelt, nicht um Gleitkommazahlen. Genaue rationale Zahlen lassen sich leicht durch endliche Zeichenfolgen darstellen, und in vielen Anwendungen (z. B. im Zusammenhang mit linearer Programmierung) sind Zwischenergebnisse auch rationale Zahlen, wenn Ihre Eingaben rationale Zahlen sind. (Natürlich, wie David Eppstein betonte, ist comp. Geom. Eine bemerkenswerte Ausnahme in dem Sinne, dass Zwischenergebnisse normalerweise nicht rational sind.)
Jukka Suomela

@Jukka: Du hast recht, ich werde Gleitkomma durch rational ersetzen.
Kaveh

5
Nee. Wenn ich "reelle Zahl" schreibe, meine ich wirklich "reelle Zahl", und damit meine ich wirklich reelle Zahl, wirklich aus der Realität. Ja wirklich. Insbesondere in dem Artikel, über den @Philip spricht, muss ich davon ausgehen, dass die Algorithmen für beliebige reale Eingaben funktionieren , damit ich Ergebnisse aus Nicht-Standard-Analysen anwenden kann.
Jeffs

3

Sie sind nicht und sie können im Allgemeinen nicht. Mit unseren Berechnungsmodellen können wir nur eine zählbare Anzahl von Eingaben (und Ausgaben und Funktionen) behandeln. Insbesondere muss jede Eingabe endlich sein, aber nicht alle reellen Zahlen haben endliche Darstellungen.

Sie könnten, denke ich, eine Art Orakel annehmen, das auf Anfrage die nächste Ziffer einer bestimmten reellen Zahl liefert (etw wie ein Stream). Andernfalls müssen Sie mit (willkürlich genauen) Annäherungen leben.


Wenn dies zutrifft, wie kann LDT dann mit reellen Zahlen umgehen? Ich habe etwas über "r-lineare Entscheidungsbäume" gelesen, aber nicht wirklich verstanden, worüber sie in der Zeitung "Untere Grenzen für Probleme mit der linearen Sättigungsfähigkeit" sprachen.
Philip White

Ich wette, dass sie entweder keine Turing-Maschinen (oder gleichwertige Konzepte) benutzen können oder nicht. Die anderen Antworten, die nicht so streng / allgemein sind wie meine, sollten etwas Licht ins Dunkel bringen.
Raphael,
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.