Come giudicare la definizione di complessità computazionale dei reali è naturale o adatta?


11

Come sappiamo, la definizione della complessità computazionale dell'algoritmo è quasi senza controversie, ma la definizione della complessità computazionale dei reali o dei modelli di calcolo sui reali non è in tal caso. Conosciamo il modello e il modello di Blum e Smales nel libro Analisi calcolabile. E apparentemente, il modello in Analisi calcolabile è coerente con il modello classico, ma la definizione di complessità computazionale dei reali non può essere trapiantata nel modello classico.

Come giudicare la definizione di complessità computazionale dei reali è naturale o adatta?

E come trapiantare la definizione di complessità computazionale dei reali in un modello classico?


Per la tua prima domanda, "naturale" è una nozione molto soggettiva e, a seconda della persona che chiedi, l'una o l'altra definizione sarà considerata la più naturale. Per quanto riguarda "adatto", dipende: il modello BSS sembra adatto per la geometria computazionale o geometria algebrica computazionale, e il modello in Analisi calcolabile è più adatto per ... analisi calcolabile! Non capisco la seconda domanda.
Bruno,

@Bruno, grazie per il tuo commento, penso al modello in Analisi computabile e non so come applicare la definizione di complessità computazionale al calcolo del numero reale sul modello classico come Turing Machine, poiché la complessità computazionale del numero reale sul modello nell'analisi calcolabile dipende dalla sua rappresentazione, in particolare dall'input per il suo calcolo.
XL _At_Here_Chere il

3
Sembra che ci sia una nozione di complessità per il calcolo dei numeri reali che è indipendente dalla rappresentazione dei reali. Cosa te lo fa pensare? Neanche questo è il caso della complessità classica. Indipendentemente dal fatto che tu abbia un nastro o una macchina RAM, importa se rappresenti i grafici per elenchi di adeguatezza o matrici 01, ecc.
Andrej Bauer,

3
Ma non è vero che la complessità non dipende dalla rappresentazione. Passando a una rappresentazione stupida puoi sempre rovinare la complessità di un algoritmo. La domanda da porsi è: "Qual è una buona rappresentazione dell'input?" Per problemi discreti è molto più facile rispondere che per numeri reali, perché si ha una buona idea di cosa significhi "non sprecare bit".
Andrej Bauer,

3
il modello BSS sembra adatto alla geometria computazionale - Vedi la mia risposta a una domanda correlata . Il modello di RAM reale utilizzato dai geometri computazionali precede Blum, Shub e Smale di quasi un decennio.
Jeffε,

Risposte:


13

Non sono esattamente sicuro di quale sia la domanda, ma posso provare a dire un po 'per ripulire eventuali equivoci.

Prima di tutto, se stiamo parlando della complessità di una mappa , non ha senso chiedere "Qual è una buona rappresentazione per f:RR ? "Invece, devi chiedere" Qual è una buona rappresentazione pertutti gliinput dif? ". Confronta la situazione con una più semplice in matematica discreta: quando discuti di un algoritmo che prende un grafico come input, non lo fai chiedi "Dovremmo rappresentare il grafico di Petersen come un elenco di adiacenza o come una matrice binaria?" ma invece pensi automaticamente a unarappresentazioneuniformeche funzionerà per tutti i grafici.2f

Un'altra parola di avvertimento. Modificando la rappresentazione dei dati di input possiamo sempre rendere qualsiasi problema (incluso uno non calcolabile) banalmente calcolabile: per rendere calcolabile, rappresentano gli elementi di A come coppie ( a , f ( a ) ) . Quindi è possibile "calcolare" f con la seconda proiezione. Ciò dimostra che abbiamo bisogno di criteri chiari su cosa significhi rappresentare i dati.f:UNBUN(un',f(un'))f

Ho scritto in diverse occasioni su ciò che serve per rappresentare gli elementi di . La risposta dipende dalla struttura di R che si sta tentando di acquisire. Se stai cercando di catturare nessuna struttura, puoi rappresentare tutti i reali con l'elenco vuoto, ad esempio. Un ragionevole elenco di condizioni per una rappresentazione di R è che deve essere tale che:RRR

  1. Le operazioni aritmetiche , × , - , / sono calcolabili, così come il valore assoluto | - | .+×-/|-|
  2. C'è un programma che prende (la rappresentazione di) un vero e k N e uscite interi p , q tali che | x - p / q | 2 - k , cioè è possibile calcolare approssimazioni razionali arbitrariamente buone.XKNp,q|X-p/q|2-K
  3. Esiste un programma che accetta (rappresentazioni di) real e y e termina se, e solo se, x < y , ovvero l'ordine rigoroso è semidecidibile.XyX<y
  4. Data una sequenza (di rappresentazioni di) tale che | x n + 1 - x n | 2 - n una rappresentazione per il limite lim n x n può essere calcolato.(Xn)n|Xn+1-Xn|2-nlimnXn

Esistono vecchi teoremi (vedi introduzione a questo documento per i riferimenti) che spiegano perché queste condizioni sono corrette. Questi teoremi mostrano anche che due qualsiasi di tali rappresentazioni di reali sono calcolabili isomorfi, cioè possiamo tradurre tra loro con programmi. Questo stabilisce alcuni criteri per la correttezza che gettano idee difettose.

Ad esempio, sento persone dire cose come "i numeri razionali possono essere rappresentati da informazioni finite, quindi usiamoli per i numeri razionali, e i numeri irrazionali dovranno essere rappresentati da informazioni infinite". Questo genere di cose non funziona perché rompe la quarta condizione di cui sopra (si consideri un limite di numeri irrazionali - come dirai che sta convergendo in un razionale?).

Un altro esempio che elimina le condizioni di cui sopra è il modello Blum-Shub-Smale perché in esso non è possibile calcolare i limiti delle sequenze. È meglio dire che il modello BSS funziona su un sottocampo ordinato reale di reali (generato da qualunque parametro sia presente), non sui reali stessi.

Tra le rappresentazioni corrette dei reali alcuni sono più efficienti di altri, sebbene questo sia un argomento un po 'difficile da discutere perché i numeri reali sono oggetti infiniti. Matthias Schröder ha sottolineato che per una ragionevole teoria della complessità bisogna prestare attenzione alle proprietà topologiche della rappresentazione.

Infine, come dovremmo misurare la complessità di una mappa , supponendo che abbiamo una buona rappresentazione di R ? Poiché x R è rappresentato da una funzione, o da un flusso infinito di informazioni, o da alcuni di questi, dovremmo usare una delle nozioni di complessità di tipo superiore . Quale probabilmente dipende dalla rappresentazione che stai usando.f:RRRXR

Il modello BSS è anche un ragionevole modello di complessità del circuito in cui contiamo le operazioni aritmetiche. È bene ricordare che questo modello non riguarda numeri reali, ma qualcos'altro.


2
Grazie mille per la tua risposta e tanti riferimenti. Mi sento a disagio su alcune nozioni di complessità computazionale, mi permetta di leggere il riferimento e pensare per un po ', e dare un esempio, se posso trovarne uno adatto per spiegare perché sono così a disagio (sembra divertente, ma la mia esperienza mi dice se mi sento a disagio, ci deve essere qualcosa di singolare)
XL _At_Here_Chere

4
Nella mia esperienza, sentirsi a disagio per le nuove conoscenze è un buon segno, e di solito è un prerequisito per l'illuminazione.
András Salamon,

3

<KO(t)O(t)O(t)O(t2log(t)log(log(t))). Poiché le considerazioni topologiche evidenziate sono utili, non si sa se esiste un contesto topologico sviluppato per questo modello di calcolo che consenta calcoli reali, che hanno incertezza nella precisione.


Potresti fornire qualche riferimento per il modello RAM realizzabile?
XL _At_Here_Chere

Vedi sopra nell'area, "... questo riferimento indica ..." ha un collegamento all'articolo.
user3483902

2
Grazie per aver sottolineato il lavoro di Brattka & Hertling, stavo per menzionarlo e poi mi ero dimenticato. Vorrei solo sottolineare che il modello RAM fattibile non include alcuna funzione di ordine superiore, in particolare non può calcolare il limite di una sequenza (rapida) di Cauchy, quindi non lo considero come un'implementazione precisa dei "reali". Può calcolare un limite "al livello più alto", per così dire (vedere la parte del documento in cui parlano di approssimazioni razionali delle funzioni).
Andrej Bauer,
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.