Nel contesto della complessità computazionale e dell'ottimizzazione, il teorema "no free lunch" (NFL) è un risultato che afferma che per certi tipi di problemi matematici, il costo computazionale per il ritrovamento di una soluzione, mediato su tutti i problemi della classe, è lo stesso per qualsiasi metodo di soluzione. Il nome allude al detto " no such thing as a free lunch ", ovvero nessun metodo offre una "scorciatoia". Ciò si basa sull'assunzione che lo spazio di ricerca sia una funzione di densità di probabilità ma non si applica al caso in cui lo spazio di ricerca abbia una struttura sottesa (ad esempio, sia una funzione differenziabile) che può essere sfruttata in modo più efficiente (ad esempio, come nel metodo di Newton nell'ottimizzazione) rispetto alla ricerca casuale o addirittura abbia soluzioni in forma chiusa (ad esempio, gli estremi di un polinomio quadratico) che possono essere determinate senza alcuna ricerca. Fatte tali assunzioni probabilistiche, gli output di tutte le procedure che risolvono un particolare tipo di problema sono statisticamente identici. Un modo colorito per descrivere tale circostanza, introdotto da David Wolpert e William G. Macready in relazione ai problemi di ricerca e ottimizzazione, è dire che non esiste un pranzo gratis. Wolpert aveva precedentemente derivato teoremi NFL per l'apprendimento automatico (inferenza statistica). Prima che l'articolo di Wolpert fosse pubblicato, Cullen Schaffer aveva dimostrato in modo indipendente una versione ristretta di uno dei teoremi di Wolpert e lo utilizzò per criticare lo stato della ricerca sull'apprendimento automatico riguardo al problema dell'induzione.
Nella metafora del "nessun pasto gratis", ogni "ristorante" (procedura di problem-solving) ha un "menù" che associa a ogni "piatto" (problema) un "prezzo" (l'efficacia della procedura nella risoluzione del problema). I menù dei ristoranti sono identici, tranne che per un aspetto: i prezzi cambiano da un ristorante all'altro. Per un onnivoro che abbia la stessa probabilità di ordinare ogni piatto come qualsiasi altro, il costo medio del pasto non dipende dalla scelta del ristorante. Ma un vegano che mangia regolarmente con un carnivoro che cerca di risparmiare potrebbe pagare molto, mediamente, per un pasto. Per ridurre in modo sistematico il costo medio, è necessario sapere in anticipo a) cosa si ordinerà e b) quanto costerà l'ordine nei vari ristoranti. In altre parole, il miglioramento delle prestazioni nella risoluzione dei problemi dipende dall'utilizzo di informazioni pregresse per adattare le procedure ai problemi.
In termini formali, non c'è niente di gratuito quando la distribuzione di probabilità sulle istanze del problema è tale che tutti i risolutori di problemi ottengono risultati distribuiti in modo identico. Nel caso della ricerca, un'istanza del problema in tale contesto è una particolare funzione obiettivo e un risultato è una sequenza di valori ottenuti nella valutazione delle soluzioni candidate nel dominio della funzione. Per le interpretazioni tipiche dei risultati, la ricerca è un processo di ottimizzazione. Non ci sono pasti gratis nella ricerca se e solo se la distribuzione sulle funzioni obiettivo è invariante rispetto alla permutazione dello spazio delle soluzioni candidate. Questa condizione non è verificata esattamente nella pratica, ma un teorema "(quasi) niente pasti gratis" suggerisce che sia verificata in modo approssimato.
Alcuni problemi computazionali vengono risolti cercando buone soluzioni in uno spazio di soluzioni candidate. Un algoritmo di ricerca costituisce una descrizione di come selezionare ripetutamente soluzioni candidate per la valutazione. Dato un particolare problema, diversi algoritmi di ricerca possono trovare risultati diversi, ma nel complesso dei diversi problemi essi sono indistinguibili. Ne consegue che se un algoritmo ottiene risultati superiori su alcuni problemi, deve pagare con l'inferiorità su altri problemi. In questo senso, la ricerca non è un pasto gratis. In alternativa, seguendo Schaffer, esiste una legge di conservazione delle le prestazioni nella ricerca. Essendo di solito la ricerca finalizzata all'ottimizzazione, ne consegue l'osservazione che non ci siano pasti gratis nell'ottimizzazione.
"Il teorema del 'pasto gratis' di Wolpert e Macready", come affermato in parole semplici dagli stessi autori, sostiene che "due algoritmi qualsiasi sono equivalenti quando le loro prestazioni vengono mediate su tutti i possibili problemi". I risultati NFL indicano che con l'abbinamento fra algoritmi e problemi si ottengano prestazioni medie più elevate rispetto all'applicazione di un algoritmo fisso. Igel e Toussaint e English hanno stabilito una condizione generale in base alla quale non esista un pasto gratis. Sebbene sia fisicamente possibile, essa non è precisamente valida. Droste, Jansen e Wegener hanno dimostrato un teorema che interpretano come indice del fatto che non esista "(quasi) nessun pranzo gratis" nella pratica.
Per rendere le cose più concrete, si consideri un tecnico dell'ottimizzazione alle prese con un problema. Avendo una certa conoscenza su come si sia verificato il problema, il tecnico potrebbe essere in grado di sfruttarla per selezionare un algoritmo che nella sua risoluzione fornirà buone prestazioni. Se il tecnico non comprende come sfruttare tale conoscenza o se, semplicemente, non ne ha alcuna, allora si trova ad affrontare la questione di stabilire se un dato algoritmo, in generale, sia superiore ad altri su problemi reali. Gli autori del teorema "(quasi) nessun pasto gratis" affermano che la risposta è essenzialmente negativa, ma ammettono di avere delle riserve sul fatto che il teorema sia applicabile nella pratica.
Sul piano formale un "problema" è una funzione obiettivo che associa soluzioni candidate a valori di qualità. Un algoritmo di ricerca accetta una funzione obiettivo come input e valuta le soluzioni candidate una alla volta. L'output dell'algoritmo è la sequenza dei valori di qualità osservati.
Wolpert e Macready sostengono che un algoritmo non rivaluta mai una soluzione candidata e che le prestazioni dell'algoritmo vengono misurate in base agli output. Per semplicità, non si considereranno algoritmi che sfruttino la casualità. In tali condizioni, quando un algoritmo di ricerca viene eseguito su ogni possibile input, genera ogni possibile output esattamente una volta. Poiché le prestazioni vengono misurate in base agli output, gli algoritmi sono indistinguibili in base alla frequenza con cui raggiungono particolari livelli di prestazioni.
Alcune misure delle prestazioni degli algoritmi di ricerca indicano quanto bene essi si comportano nell'ottimizzazione della funzione obiettivo. In effetti, non sembra esserci alcuna applicazione interessante degli algoritmi di ricerca nella classe in esame se non ai problemi di ottimizzazione. Una misura comune è l'indice minimo del valore minimo nella sequenza di output. Questo rappresenta il numero di valutazioni necessarie per minimizzare la funzione obiettivo. Per alcuni algoritmi, il tempo necessario per trovare il minimo è proporzionale al numero di valutazioni.
I teoremi originali NFL presuppongono che tutte le funzioni obiettivo abbiano la stessa probabilità di essere date in input ad algoritmi di ricerca. È stato quindi stabilito che non ci sono pasti gratis se e solo se, in parole povere, "rimescolare" le funzioni obiettivo non ha alcun impatto sulle loro probabilità. Sebbene questa condizione sia fisicamente possibile, è stato osservato che certamente essa non sia valida in modo preciso.
Apparentemente l'interpretazione immediata di "non NFL" è quella di "pasto gratis", tuttavia ciò è fuorviante. NFL è un fatto graduale non una proprietà che valga "del tutto o per niente". Se la condizione per il NFL è pressoché soddisfatta, allora tutti gli algoritmi producono approssimativamente gli stessi risultati mediando su tutte le funzioni obiettivo. "Non NFL" implica solo che gli algoritmi siano nel complesso non equivalenti per una certa misura delle prestazioni. Per una data misura di interesse, gli algoritmi potrebbero restare equivalenti, o quasi.
Quasi tutti gli elementi dell'insieme di tutte le possibili funzioni (nel senso insiemistico di "funzione") sono casuali secondo Kolmogorov, quindi i teoremi NFL si applicano a un insieme di funzioni per lo più non esprimibili in modo più compatto di una tabella di ricerca contenente una riga distinta (e casuale) per ogni punto nello spazio di ricerca. Funzioni che possono essere espresse in modo più compatto (ad esempio, tramite un'espressione matematica di dimensioni ragionevoli) per definizione non sono casuali secondo Kolmogorov.
Inoltre, all'interno dell'insieme di tutte le possibili funzioni obiettivo, i gradi di qualità sono equamente rappresentati tra le soluzioni candidate, quindi le buone soluzioni sono sparse nello spazio delle candidate. Di conseguenza, raramente un algoritmo di ricerca valuterà più di una piccola frazione delle candidate prima di individuare una soluzione di qualità molto buona.
Quasi tutte le funzioni obiettivo hanno una complessità di Kolmogorov talmente elevata da non poter essere memorizzate in un particolare computer. Più precisamente, se modelliamo un dato computer fisico come una macchina a registro con una memoria di dimensioni date, pari a quelle dei computer moderni, allora la maggior parte delle funzioni obiettivo non possono essere memorizzate nelle loro memorie. Ci sono più informazioni nella tipica funzione obiettivo o algoritmo di quante Seth Lloyd stimi che l'universo osservabile sia in grado di registrare. Ad esempio, se ogni soluzione candidata è codificata come una sequenza di 300 cifre binarie e i valori di qualità sono 0 e 1, allora la maggior parte delle funzioni obiettivo ha una complessità di Kolmogorov di almeno 2300 bit e ciò supera il limite di Lloyd di 1090 ≈ 2299 bit. Ne consegue che il teorema originale del "no free lunch" non si applica a ciò che può essere memorizzato in un computer fisico; invece è necessario applicare i cosiddetti teoremi NFL "ristretti". È stato anche dimostrato che i risultati del NFL si applicano a funzioni non calcolabili.
è l'insieme di tutte le funzioni obiettivo , dove è uno spazio delle soluzioni finito e è un insieme parzialmente ordinato finito. L'insieme di tutte le permutazioni di è . Una variabile casuale sia distribuita su . Per ciascun in , sia una variabile casuale distribuita su , con per ogni f in .
Sia l'output dell'algoritmo di ricerca sull'input . Se e sono identicamente distribuite per tutti gli algoritmi e , allora ha una distribuzione NFL. Questa condizione è valida se e solo se e sono identicamente distribuite per tutti i in . In altre parole, non c'è pasto gratis per gli algoritmi di ricerca se e solo se la distribuzione delle funzioni obiettivo è invariante rispetto alla permutazione dello spazio delle soluzioni. I teoremi NFL insiemistici sono stati recentemente generalizzati a casi di e di cardinalità arbitraria.
Wolpert e Macready forniscono due principali teoremi NFL, il primo riguarda le funzioni obiettivo non cambiano nel corso della ricerca mentre il secondo riguarda le funzioni obiettivo possono cambiare.
In sostanza ciò significa che quando tutte le funzioni f sono equiprobabili, la probabilità di osservare una sequenza arbitraria di valori nel corso della ricerca non dipende dall'algoritmo di ricerca.
Il secondo teorema stabilisce un risultato NFL "più sottile" per funzioni obiettivo che variano nel tempo.
Un'interpretazione convenzionale, ma non del tutto accurata, dei teoremi NFL è che "una strategia di ottimizzazione universale di uso generale è teoricamente impossibile e l'unico modo in cui una strategia può superare un'altra è specializzarsi sullo specifico problema in esame". È il caso di fare diverse osservazioni:
In pratica, solo le funzioni obiettivo altamente comprimibili (lontane dall'essere casuali) possono trovare posto nella memoria dei computer, e non è detto che ogni algoritmo funzioni bene su quasi tutte le funzioni comprimibili. In genere, l'integrazione nell'algoritmo di conoscenza pregressa sul problema comporta un vantaggio in termini di prestazioni. Sebbene i risultati NFL costituiscano, in senso stretto, teoremi di piena occupazione per gli esperti di ottimizzazione, è importante tenere presente un contesto più ampio. Da un lato, gli esseri umani spesso dispongono di scarse conoscenze pregresse con cui lavorare. Dall'altro, l'integrazione della conoscenza pregressa non garantisce un gran miglioramento delle prestazioni su certi problemi. Infine, il costo del tempo è molto maggiore per gli umani rispetto alle macchine. In molti i casi un'azienda preferisce ottimizzare una funzione in modo lento con un programma senza modifiche piuttosto che rapidamente usando un programma modificato dall'uomo.
I teoremi NFL non indicano che sia vano tentare di risolvere problemi con algoritmi non specializzati. Nessuno è stato in grado di determinare la proporzione di problemi pratici per i quali un algoritmo produce rapidamente buoni risultati. E c'è un vantaggio pratico, per nulla in conflitto con la teoria. Eseguire l'implementazione di un algoritmo su un computer costa pochissimo rispetto al costo del tempo per un esperto e al beneficio di una buona soluzione. Se un algoritmo riesce a trovare una soluzione soddisfacente in un tempo accettabile, un piccolo investimento ha prodotto un grande guadagno. Se l'algoritmo fallisce, allora la perditaè contenuta.
Recentemente alcuni filosofi della scienza hanno sostenuto che esistono modi per aggirare i teoremi NFL, utilizzando la cosiddetta "meta-induzione". Wolpert affronta tali argomentazioni in.
Wolpert e Macready hanno dimostrato che nell'ottimizzazione coevolutiva ci sono pasti gratis. La loro analisi "copre i problemi di 'auto-gioco' (self-play). In tali problemi, l'insieme dei giocatori lavora insieme per produrre un campione, che poi affronta uno o più antagonisti in una successiva partita multigiocatore". Cioè, l'obiettivo è ottenere un buon giocatore, ma senza una funzione obiettivo. La bontà di ciascun giocatore (soluzione candidata) viene valutata osservando la qualita del suo gioco contro gli altri. Un algoritmo tenta di utilizzare giocatori e loro qualità di gioco per ottenere giocatori migliori. Il giocatore ritenuto il migliore di tutti dall'algoritmo è il campione. Wolpert e Macready hanno dimostrato che alcuni algoritmi coevolutivi sono generalmente superiori ad altri algoritmi per qualità dei campioni ottenuti. La generazione di un campione attraverso self-play è di interesse nel calcolo evolutivo e nella teoria dei giochi. I risultati non sono applicabili alla coevoluzione delle specie biologiche, che non produce campioni.