Espanderò la risposta di Yuval Filmus fornendo un'interpretazione basata su problemi di ottimizzazione multi-obiettivo .
Ottimizzazione e approssimazione di un singolo obiettivo
In informatica studiamo spesso problemi di ottimizzazione con un unico obiettivo (ad esempio, minimizzare f ( x ) soggetto a qualche vincolo). Nel dimostrare, per esempio, la completezza NP, è comune considerare il corrispondente problema di bilancio . Ad esempio, nel problema massimo della cricca, l'obiettivo è massimizzare la cardinalità della cricca e il problema di bilancio è il problema di decidere se esiste una cricca di dimensioni almeno k , dove k viene fornito come parte dell'input per il problema.
Quando non è possibile calcolare una soluzione ottimale in modo efficiente, come nel caso del massimo problema di cricca, cerchiamo un algoritmo di approssimazione , una funzione che genera una soluzione all'interno di un fattore moltiplicativo di una soluzione ottimale. Si potrebbe anche considerare un algoritmo di approssimazione per il problema di budget, una funzione che genera una soluzione che soddisfa f ( x ) ≥ ck nel caso di un problema di massimizzazione, dove c è un numero inferiore a uno. In questa situazione, la soluzione può violare il vincolo rigido f ( x ) ≥ k , ma la "gravità" della violazione delimitata da c .
Ottimizzazione multi-obiettivo e approssimazione bi-criterio
In alcuni casi, potresti voler ottimizzare due obiettivi contemporaneamente. Per un esempio approssimativo, potrei voler massimizzare le mie "entrate" riducendo al minimo il mio "costo". In una situazione del genere, non esiste un singolo valore ottimale, in quanto esiste un compromesso tra i due obiettivi; per ulteriori informazioni, consultare l'articolo di Wikipedia sull'efficienza di Pareto .
Un modo per trasformare un problema di ottimizzazione a due obiettivi in un problema di ottimizzazione a obiettivo singolo (per il quale possiamo ragionare sul valore ottimale della funzione obiettivo) è quello di considerare i due problemi di vincolo , uno per ciascun obiettivo. Se il problema è massimizzare contemporaneamente f ( x ) mentre si minimizza g ( x ), il primo problema del vincolo è minimizzare g ( x ) soggetto al vincolo f ( x ) ≥ k , dove k viene dato come parte dell'input a questo problema di ottimizzazione a obiettivo singolo. Il secondo problema di vincolo è definito in modo simile.
Un algoritmo di approssimazione ( α , β ) - bicriteria per il primo problema di vincolo è una funzione che accetta un parametro di budget k come input e genera una soluzione x tale che
- f( x ) ≥ α k
- g( x ) ≤ βg( x*)
X*
- f( x ) ≥ α f( x*)
- g( x ) ≤ βℓ
In altre parole, l'algoritmo di approssimazione bicriteria è contemporaneamente una approssimazione per il problema di bilancio nel primo obiettivo e il problema di ottimizzazione nel secondo obiettivo. (Questa definizione è stata adattata dalla pagina quattro di " Ottimizzazione sottomodulare con copertura sottomodulare e vincoli zaino sottomarino ", di Iyer e Bilmes, 2013.)
Le disuguaglianze cambiano direzione quando gli obiettivi passano dal massimo al minimo o viceversa.