Le tecniche dipendono dal modello e dal tipo di risorsa su cui vogliamo ottenere un limite inferiore. Si noti che per dimostrare un limite inferiore alla complessità di un problema dobbiamo prima correggere un modello matematico di calcolo: un limite inferiore per un problema indica che nessun algoritmo che utilizza una certa quantità di risorse può risolvere il problema, cioè stiamo quantificando universalmente sopra gli algoritmi. Dobbiamo avere una definizione matematica del dominio di quantificazione. (Questo è generalmente vero per i risultati di impossibilità.) Pertanto, i risultati con limite inferiore valgono solo per un particolare modello di calcolo. Ad esempio, Ω ( n logn )il limite inferiore per l'ordinamento funziona solo con algoritmi di ordinamento basati sul confronto, senza questa limitazione e in modelli di calcolo più generali potrebbe essere possibile risolvere l'ordinamento in modo più rapido, anche lineare. (Vedi il commento di Josh qui sotto.)
Ecco alcuni metodi diretti di base per dimostrare limiti inferiori nella teoria della complessità computazionale per i modelli più generali di calcolo (macchine e circuiti di Turing).
I. Conteggio:
Idea: mostriamo che ci sono più funzioni che algoritmi.
Es: ci sono funzioni che richiedono circuiti esponenzialmente grandi.
Il problema con questo metodo è che si tratta di un argomento esistenziale e non fornisce alcuna funzione esplicita o alcun limite superiore alla complessità del problema dimostrato difficile.
II. Combinatoria / algebrico:
Idea: analizziamo i circuiti e mostriamo che hanno una proprietà particolare, ad esempio le funzioni calcolate da loro possono essere approssimate da una bella classe di oggetti matematici, mentre la funzione bersaglio non ha quella proprietà.
A C0A C0[ p ]
Il problema con questo metodo è che in pratica ha funzionato solo per classi piccole e relativamente facili da analizzare. Esiste anche la barriera Natural Proofs di Razborov-Rudich che in un certo senso formalizza il motivo per cui è improbabile che le proprietà semplici da sole siano sufficienti per dimostrare limiti inferiori del circuito più generali.
L'articolo di Razborov " Sul metodo di approssimazione " sostiene che il metodo di approssimazione è completo per dimostrare i limiti inferiori in un certo senso.
III. diagonalizzazione:
Idea. Diagonalizziamo rispetto alle funzioni della classe più piccola. L'idea risale a Gödel (e persino a Cantor).
Ex. Teoremi della gerarchia temporale , teorema della gerarchia spaziale , ecc.
PP S p a c ePP S p a c e
Abbiamo anche la barriera di relativizzazione (che risale al Baker, Gill e Solovay) e la barriera di algebraizzazione (di Aaronson e Wigderson) che affermano che particolari tipi di argomenti di diagonalizzazione si trasferiranno ad altre impostazioni in cui il risultato è dimostrabilmente falso.
Si noti che queste barriere non si applicano ad argomenti di diagonalizzazione più generali. In effetti, dall'articolo di Dexter Kozen " Indicizzazione delle classi sub-corsive ", la diagonalizzazione è completa per dimostrare limiti inferiori.
Come probabilmente avrai notato, esiste una forte relazione tra la ricerca di buoni simulatori universali per una classe di complessità e la separazione di quella classe di complessità da classi più grandi (per una dichiarazione formale vedi l'articolo di Kozen).
Lavori recenti
Per i recenti progressi, consulta i documenti recenti di Ryan Williams . Non ne discuto in questa risposta poiché spero che lo stesso Ryan scriverà una risposta.