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?
cc.complexity-theory
computability
na.numerical-analysis
computing-over-reals
computable-analysis
Philip White
quelle
quelle
Antworten:
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.
quelle
Sie können auch einen Blick auf Andrej Bauers Vortrag über die Rolle des Intervallbereichs in der modernen exakten reellen Arithmetik werfen , in dem einige der verschiedenen Ansätze zur Spezifizierung der Berechnung über die reellen Zahlen in Theorie und Praxis untersucht werden.
quelle
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.
Koinduktion zur exakten Berechnung reeller Zahlen, Ulrich Berger und Tie Hou: THEORY OF COMPUTING SYSTEMS Band 43, Nummern 3-4, 394-409, DOI: 10.1007 / s00224-007-9017-6
Coinductive Formal Reasoning in Exact Real Arithmetic , Milad Niqui, Logische Methoden in der Informatik, 4 (3: 6): 1–40, 2008.
Kalkül in coinduktiver Form von Dusko Pavlovic und Martin Escardo, LICS 1998.
Sie decken kaum das gesamte Spektrum der reellen Zahlenberechnung ab, doch bei verschiedenen Problemen werden Fortschritte erzielt.
quelle
Die rechnerische Komplexität von Berechnungen über reelle Zahlen wird von Blum, Cucker, Shub und Smale betrachtet . Hier ist eine teilweise Beschreibung des Buches:
Eine Rezension dieses Buches finden Sie unter ACM SIGACT News .
quelle
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:
wobei EGC die exakte geometrische Berechnung ist .)
quelle
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.
quelle