Esistono classi di complessità stabilite con numeri reali?


14

Di recente uno studente mi ha chiesto di verificare una prova di durezza NP. Hanno eseguito una riduzione sulla falsariga di:

Riduco questo problema che è noto per essere NP completo al mio problema P (con una riduzione multi-tempo polifunzionale), quindi P è NP-difficile.PPP

La mia risposta è stata sostanzialmente:

Poiché ha istanze con valori da R , non è banalmente calcolabile con Turing, quindi puoi saltare la riduzione.PR

Sebbene formalmente vero, non penso che questo approccio sia perspicace: vorremmo sicuramente essere in grado di catturare la "complessità intrinseca" di un problema decisionale (o di ottimizzazione) di valore reale, ignorando i limiti che affrontiamo nel trattare con il reale numeri; indagare su questi problemi è per un altro giorno.

Naturalmente, non è sempre facile come dire "la versione discreta del Somma del sottoinsieme è NP-completa, quindi anche la versione continua è 'NP-difficile'". In questo caso, la riduzione è semplice ma ci sono casi famosi in cui la versione continua è più semplice, ad esempio la programmazione lineare o intera.

Mi è venuto in mente che il modello RAM si estende naturalmente ai numeri reali; lasciare che ogni registro memorizzi un numero reale ed estendere le operazioni di base di conseguenza. Il modello di costo uniforme ha ancora senso - tanto quanto nel caso discreto - mentre quello logaritmico no.

Quindi, la mia domanda si riduce a: ci sono nozioni stabilite di complessità di problemi con valore reale? Come si collegano alle classi discrete "standard"?

Le ricerche di Google producono alcuni risultati, ad esempio questo , ma non ho modo di dire cosa è stabilito e / o utile e cosa no.


1
Potresti trovare interessanti "Complessità e calcolo reale" amazon.com/Complexity-Real-Computation-Lenore-Blum/dp/…
Kurt Mueller

Mi sembra che la tua risposta al tuo studente sia ingiustificata per una semplice ragione: qualsiasi calcolo che siamo abituati a considerare basato sui reali può essere condotto anche usando reali calcolabili . Non so se questa sia una risposta utilizzabile ai fini del tuo studente, ma almeno dovrebbe eliminare la mancanza di argomenti di computabilità di Turing. Sfortunatamente, non sono abbastanza esperto su questi temi per svilupparlo ulteriormente.
babou,

@babou Per quanto riguarda la calcolabilità, questa potrebbe essere una limitazione ragionevole (ma dovrebbe comunque dichiararla!). Tuttavia, cosa succede con la complessità?
Raffaello

@Raphael Il mio punto è in realtà che non è nemmeno una restrizione e non è necessario dichiararlo. È semplicemente inevitabile. Gli unici reali che puoi considerare in un calcolo sono i reali calcolabili (Tesi di Church-Turing). La parte bella è apparentemente che non cambia nessuna delle matematiche rilevanti, con la dovuta cura. Andare oltre i reali calcolabili è, come usare livelli più alti della gerarchia di Turing, affascinanti speculazioni, con probabilmente un piccolo impatto su qualsiasi cosa reale (gioco di parole inevitabile).
babou,

Risposte:


8

Sì. Ci sono.

C'è il modello RAM reale / BSS menzionato nell'altra risposta. Il modello presenta alcuni problemi e AFAIK non ha molte attività di ricerca al riguardo. Probabilmente, non è un modello realistico di calcolo .

La nozione più attiva di calcolabilità reale è quella del modello di calcolo di tipo superiore. L'idea di base è che si definisce la complessità per le funzioni di tipo più elevato e quindi si utilizzano le funzioni di tipo più elevato per rappresentare numeri reali.

Lo studio della complessità delle funzioni di tipo superiore risale almeno a [1]. Per lavori recenti, consultare i documenti di Akitoshi Kawamura sulla complessità degli operatori reali.

Il riferimento classico per la complessità delle funzioni reali è il libro di Ker-I Ko [2]. Il sesto capitolo del libro più recente di Klause Weihrauch [3] discute anche della complessità della comptazione reale (ma è più focalizzata sulla computabilità che su una complessità).

  • [1] Stephen Cook e Bruce Kapron, "Caratterizzazioni dei funzionali realizzabili di base di tipo finito", 1990.

  • [2] Ker-I Ko, "Complessità computazionale delle funzioni reali", 1991.

  • [3] "Analisi calcolabile" di Klaus Weihrauch, 2000.


Cosa rende il modello con funzione di tipo superiore più realistico del modello RAM reale?
Raffaello

1
@Raphael, penso di averlo spiegato nella domanda collegata. Se desideri un trattamento più completo, ce ne sono diversi, uno è il capitolo 9 di Weirauch. IIRC, un altro buono è un articolo di Tucker e Stolenberg-Hansen.
Kaveh,

1
A mio avviso, il modello di RAM reale presenta due problemi principali: da un lato manca la nozione di approssimazione arbitraria di precisione razionale dei numeri reali che è probabilmente la loro proprietà principale, dall'altro consente il confronto di numeri reali che AFAIK nessuno conosce come fare in pratica. Di conseguenza alcune funzioni reali che consideriamo calcolabili in modo efficiente nella pratica non sono calcolabili nel modello, mentre alcune funzioni reali calcolabili in modo efficiente nel modello non sono affatto calcolabili nella pratica.
Kaveh,

@Kaveh Sono infastidito dall'imprecisione dell'intera discussione, nella domanda e nelle risposte. Stiamo parlando di reali non numerabili tradizionali o di reali calcolabili. Dal tuo ultimo commento, stai parlando di "funzioni reali che consideriamo in modo efficace calcolabili nella pratica", quindi tendo a credere che si tratti di reali calcolabili. Cosa intendi veramente?
babou,

8

Il modello che descrivi è noto come il modello Blum-Shub-Smale (BSS) (anche modello Real RAM) e infatti utilizzato per definire le classi di complessità.

Alcuni problemi interessanti in questo ambito sono le classi , N P R , e, naturalmente, la questione se P R = N P R . Con P R intendiamo che il problema è polinomicamente decidibile, N P R è il problema polinomialmente verificabile. Ci sono domande di durezza / completezza sulla classe N P R . Un esempio di un problema completo di N P R è il problema di Q P S , sistema polinomiale quadratico, in cui l'input è polinomi reali inPRNPRPRNPRPRNPRNPRNPRQPS variabili e p 1 ,mR [ x 1 , . . . , x n ] di grado al massimo 2, e ogni polinomio ha al massimo 3 variabili. La questione se esiste una comune soluzione reale R n , tale che p 1 ( uno ) , p 2 ( a ) , . . . p n ( a ) = 0p1,...,pn R[x1,...,xn]Rnp1(a),p2(a),...pn(a)=0. Questo è un problema completo NPR

Ma più interessante c'è stato qualche lavoro sulla relazione tra (Probalistically Checkable Proofs), sui Reals, cioè la classe P C P R , e su come si relaziona con i modelli di calcolo algebrico. Il modello BSS esegue la panoramica su tutti gli N P rispetto ai reali. Questo è standard nella letteratura e ciò che sappiamo oggi è che N P R ha "prove lunghe trasparenti" e "prove brevi trasparenti". Per "prove lunghe trasparenti" è implicito quanto segue: N P R è contenuto in P C P R ( p o l yPCPPCPRNPNPRNPR . C'è anche un'estensione che dice che anche la "Versione breve quasi (approssimata)" è vera. Possiamo stabilizzare la prova e rilevare i guasti controllando un numero considerevolmente inferiore di componenti (reali) di n ? Ciò porta a domande sull'esistenza di zeri per (sistema di) polinomi univariati forniti dal programma in linea retta. Inoltre, per "prove lunghe trasparenti" intendiamoPCPR(poly,O(1))n

  1. "trasparente" - Solo, da leggere,O(1)

  2. long: numero superpolinomiale di componenti reali.

La dimostrazione è legata a e sicuramente un modo per esaminare i problemi valutati reali è come potrebbe essere correlato alla somma dei sottoinsiemi - anche gli algoritmi di approssimazione per i problemi valutati reali sarebbero interessanti -come ottimizzazione - Programmazione lineare che conosciamo è nella classe F P , ma sì sarebbe interessante vedere come l'approssimabilità potrebbe influire sulla completezza / durezza nel caso di problemi di N P R. Inoltre, un'altra domanda sarebbe la N P R = c o - N P R ? 3SATFPNPRNPR = co-NPR

Mentre si pensa alla classe , ci sono anche classi di conteggio definite per consentire il ragionamento sull'aritmetica polinomiale. Mentre # P è la classe di funzioni f definita su { 0 , 1 } N per cui esiste una macchina di Turing M polinomiale M e un polinomio p con la proprietà che n N e x { 0 , 1 } n , f ( x )NPR#Pf{0,1} NMpnNx{0,1}nf(x)conta il numero di stringhe { 0 , 1 } p ( n ) che Turing Machine M accetta { x , y } . Per davvero estendiamo questa idea ci sono macchine BSS additive - macchine BSS che fanno solo addizioni e moltiplicazioni (nessuna divisione, nessuna sottrazione). Con le macchine BSS additive (i nodi nel calcolo consentono solo l'addizione e la moltiplicazione) il modello per # P diventa uno in cui il conteggio supera i vettori accettati dalle macchine BSS additive. Quindi, la classe di conteggio è # P a d dy{0,1}p(n)M{x,y}#P#Padd questa classe è utile nello studio dei numeri di Betti e anche della caratteristica di Eulero.


La macchina real-RAM (Random Access Machine) o BSS (Blum-Shub-Smale) è il modello, menzionato in precedenza, ampiamente accettato come norma per il ragionamento su queste classi.
user3483902

No, tale affermazione è assolutamente falsa. Ad esempio, dai un'occhiata a CCA-Net e vedi quanti ricercatori stanno usando quel modello.
Kaveh,

Bene, i modelli usati per le classi di complessità nel post usano il modello BSS, e col passare del tempo potrebbero esserci altri modelli, quegli altri modelli funzionano con le classi di complessità nel post? A proposito, il commento è stato un chiarimento sui modelli utilizzati nelle classi in questione, che il post ha affrontato, quindi non è stato chiarito se esistessero altri modelli. Ancora una volta, il chiarimento riguardava i modelli utilizzati nelle classi, non vi era alcun reclamo.
user3483902
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.