Quali sono i motivi per cui i ricercatori nella geometria computazionale preferiscono il modello BSS / RAM reale?


40

sfondo

Il calcolo sui numeri reali è più complicato del calcolo sui numeri naturali, poiché i numeri reali sono oggetti infiniti e ci sono innumerevoli numeri reali, quindi i numeri reali non possono essere rappresentati fedelmente da stringhe finite su un alfabeto finito.

A differenza della classica calcolabilità su stringhe finite in cui diversi modelli di calcolo come: lambda calcolo, macchine di Turing, funzioni ricorsive, ... risultano equivalenti (almeno per la calcolabilità sulle funzioni sulle stringhe), ci sono vari modelli proposti per il calcolo su numeri reali che non sono compatibili. Ad esempio, nel modello TTE (vedi anche [Wei00]) che è il più vicino al modello classico di Turing, i numeri reali sono rappresentati usando nastri di input infiniti (come gli oracoli di Turing) e non è possibile decidere il confronto e relazioni di uguaglianza tra due numeri reali dati (in quantità finita di tempo). D'altra parte nei modelli BBS / real-RAM che sono simili al modello di macchina RAM, abbiamo variabili che possono memorizzare numeri reali arbitrari e il confronto e l'uguaglianza sono tra le operazioni atomiche del modello. Per questo e motivi simili molti esperti affermano che i modelli BSS / RAM reale non sono realistici (non possono essere implementati, almeno non sui computer digitali attuali) e preferiscono il TTE o altri modelli equivalenti al TTE come un efficace modello teorico di dominio, Modello Ko-Friedman, ecc.

Se ho capito bene , il modello di calcolo predefinito che viene utilizzato in Geometria computazionale è il modello BSS (aka real-RAM , vedi [BCSS98]).

D'altra parte, mi sembra che nell'implementazione degli algoritmi in Geometria computazionale (es. LEDA ), abbiamo a che fare solo con numeri algebrici e non sono coinvolti oggetti o calcoli infiniti di tipo superiore (è corretto?). Quindi mi sembra (probabilmente ingenuamente) che si possa anche usare il modello classico di calcolo su stringhe finite per gestire questi numeri e usare il solito modello di calcolo (che è anche usato per l'implementazione degli algoritmi) per discutere di correttezza e complessità di algoritmi.


Domande:

Quali sono i motivi per cui i ricercatori in Geometria computazionale preferiscono utilizzare il modello BSS / RAM reale? (motivi specifici della geometria computazionale per l'utilizzo del modello BSS / real-RAM)

Quali sono i problemi con l'idea (probabilmente ingenua) che ho citato nel paragrafo precedente? (usando il classico modello di calcolo e limitando gli input ai numeri algebrici nella geometria computazionale)


Addendum:

C'è anche la complessità del problema degli algoritmi, è molto facile decidere il seguente problema nel modello BSS / real-RAM:

Dati due insiemi e di numeri interi positivi, è ?ST
ΣSSS>ΣtTt

Sebbene non sia noto alcun algoritmo RAM integer efficiente per risolverlo. Grazie a JeffE per l'esempio.


Riferimenti:

  1. Lenore Blum, Felipe Cucker, Michael Shub e Stephen Smale, "Complessità e calcolo reale", 1998
  2. Klaus Weihrauch, " Analisi calcolabile, un'introduzione ", 2000

3
A proposito, nel caso in cui non sia ovvio, la somma del problema delle radici quadrate ha un'interpretazione geometrica molto naturale: è quello che devi risolvere se vuoi confrontare le lunghezze di due percorsi poligonali con vertici di coordinate intere.
David Eppstein,

Risposte:


42

Innanzitutto, i geometri computazionali non lo considerano come il modello BSS. Il vero modello RAM è stato definito da Michael Shamos nella sua tesi di dottorato del 1978 ( Geometria computazionale ), che ha probabilmente lanciato il campo. Franco Preparata ha rivisto ed esteso la tesi di Shamos nel primo libro di testo sulla geometria computazionale, pubblicato nel 1985. Anche la RAM reale è equivalente ( tranne l'uniformità; vedi la risposta di Pascal! ) Al modello di albero di calcolo algebrico definito da Ben-Or nel 1983. Blum Gli sforzi di Shub e Smale furono pubblicati nel 1989, ben dopo che fu creata la vera RAM, e furono quasi completamente ignorati dalla comunità della geometria computazionale.

La maggior parte dei risultati (classici) nella geometria computazionale sono fortemente legati ai problemi della geometria combinatoria , per i quali ipotesi sulle coordinate integrali o algebriche sono (nella migliore delle ipotesi) distrazioni irrilevanti. Parlando come nativo, sembra del tutto naturale considerare punti, linee, cerchi e simili arbitrari come oggetti di prima classe quando si provano cose su di loro, e quindi altrettanto naturale quando si progettano e analizzano algoritmi per calcolarli.

Per la maggior parte degli algoritmi geometrici (classici), questo atteggiamento è ragionevole anche nella pratica. La maggior parte degli algoritmi per problemi geometrici planari sono costruiti su un numero molto piccolo di primitive geometriche: il punto a sinistra o a destra del punto ? Sopra, sotto, o sulla linea attraverso i punti e ? Dentro, fuori o sul cerchio determinato dai punti ? Sinistra o destra dell'intersezione dei segmenti e ? Ognuna di queste primitive viene implementata valutando il segno di un polinomio di basso grado nelle coordinate di input. (Quindi questi algoritmi possono essere descritti nella decisione algebrica più debolepqqrq,r,SqrSt modello ad albero.) Se le coordinate di input sono numeri interi, queste primitive possono essere valutate esattamente con solo un aumento costante del fattore di precisione, e quindi i tempi di esecuzione sulla RAM reale e sulla RAM intera sono gli stessi.

Per ragioni simili, quando la maggior parte delle persone pensa agli algoritmi di ordinamento, a loro non importa quello che stanno ordinando, purché i dati provengano da un universo totalmente ordinato e due valori possano essere confrontati in tempo costante.

Quindi la comunità ha sviluppato una separazione di preoccupazioni tra la progettazione di algoritmi geometrici "reali" e la loro implementazione pratica; da qui lo sviluppo di pacchetti come LEDA e CGAL. Anche per le persone che lavorano sul calcolo esatto, esiste una distinzione tra l' algoritmo reale , che utilizza l'esatta aritmetica reale come parte del modello sottostante e l' implementazione , che è costretta dalle limitazioni altrimenti irrilevanti dei dispositivi di calcolo fisico a utilizzare il calcolo discreto.

All'interno di questa visione del mondo, ad esempio, il problema aperto più importante nella geometria computazionale è l'esistenza di un algoritmo a tempo polinomiale per la programmazione lineare. No, i metodi dell'ellissoide e del punto interno non contano. A differenza dell'algoritmo simplex, tali algoritmi non sono garantiti per terminare a meno che la matrice di vincolo non sia razionale. ( Esistono tipi combinatori di politopi convessi che possono essere rappresentati solo da matrici di vincoli irrazionali , quindi questa è una restrizione non banale.) E anche quando la matrice di vincoli è razionale, i tempi di esecuzione di tali algoritmi non sono limitati da alcuna funzione del dimensione di input (dimensione #constraints).×

Esistono alcuni algoritmi geometrici che si basano molto sul modello di albero di calcolo algebrico e quindi non possono essere implementati esattamente ed efficientemente su computer fisici. Un buon esempio sono i percorsi di minimo collegamento in poligoni semplici, che possono essere calcolati in tempo lineare su una RAM reale, ma che richiedono un numero quadratico di bit nel caso peggiore per rappresentare esattamente. Un altro buon esempio sono i tagli gerarchici di Chazelle , che vengono utilizzati negli algoritmi più efficienti noti per la ricerca della gamma simplex. Questi tagli utilizzano una gerarchia di insiemi di triangoli, in cui i vertici dei triangoli a ciascun livello sono punti di intersezione delle linee attraverso i bordi dei triangoli ai livelli precedenti. Pertanto, anche se le coordinate di input sono numeri interi, le coordinate del vertice per questi triangoli sono numeri algebrici di grado illimitato; tuttavia, gli algoritmi per la costruzione e l'uso delle talee presuppongono che le coordinate possano essere manipolate esattamente in tempo costante.

Quindi, la mia risposta breve e di parte è: TTE, teoria dei domini, Ko-Friedman e altri modelli di calcolo "realistico" in numeri reali affrontano tutti i problemi di cui la comunità della geometria computazionale, nel complesso, non se ne preoccupa .


9
Forse si dovrebbe aggiungere che, sebbene nel complesso abbia successo, questo punto di vista ha portato ad alcune strane distorsioni in cui ad esempio gli algoritmi di ricerca parametrica multi-polilogo (n) sono preferiti a algoritmi di ricerca binaria log molto più semplici (precisione numerica).
David Eppstein,

È interessante menzionare l'ordinamento, poiché la restrizione dell'attenzione ai domini totalmente ordinati produce il limite inferiore classico , che può essere superato rompendo quella barriera di astrazione (vedi cstheory.stackexchange.com/questions/ 608 /… per di più). Esistono esempi simili nella geometria computazionale? Ω(nlogn)
Joshua Grochow,

4
Giosuè: sì, vedi ad esempio arxiv.org/abs/1010.1948
David Eppstein,

1
@David Eppstein: molto interessante! Vorresti pubblicarlo come risposta all'altra mia domanda: cstheory.stackexchange.com/questions/608/…
Joshua Grochow,

15

Non è del tutto vero che il modello RAM / BSS reale sia equivalente al modello dell'albero algebrico di calcolo. Quest'ultimo è più potente perché un albero di profondità polinomiale può avere dimensioni esponenziali. Ciò offre molto spazio per la codifica di informazioni non uniformi. Ad esempio, Meyer auf der Heide ha dimostrato che gli alberi decisionali algebrici (anche lineari) possono risolvere in modo efficiente problemi difficili come la somma dei sottoinsiemi, ma ciò è (congetturalmente) impossibile nel vero modello RAM / BSS.


1
Punto eccellente !!
Jeffε

4

Ecco un commento sull'ottima risposta di Jeff:

Nozioni di condizione, approssimazione e arrotondamento sono state proposte per colmare il divario di complessità (combinatorio vs. continuo) degli algoritmi di programmazione lineare. La condizione di un'istanza problematica stima l'effetto di piccole perturbazioni dell'input sull'accuratezza dell'output. La nozione di condizione è stata introdotta per la prima volta da Alan Turing. Jim Renegar ha introdotto la nozione di condizione di un programma lineare.

L. BLUM, informatiche sui reali: Dove Turing incontra Newton, , Avvisi della AMS, VOLUME 51, NUMERO 9, (2004), 1024-1034

A. TURING, errori di arrotondamento nei processi a matrice, Quart. J. Mech. Appl. Matematica. 1 (1948), 287–308

J. RENEGAR, Incorporando i numeri delle condizioni nella teoria della complessità della programmazione lineare, SIAM J. Optim. 5 (1995), 506-524

F. CUCKER e J. PEÑA, un algoritmo dual-primal per la risoluzione di sistemi conici poliedrici con una macchina a precisione finita, SIAM Journal on Optimization 12 (2002), 522–554.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.