Funzione pseudo-booleana

Da testwiki.
Vai alla navigazione Vai alla ricerca

Una funzione pseudo-booleana è una funzione nella forma

f:𝔹n,

dove 𝔹 è un dominio booleano e n è un intero non negativo che rappresenta l'arietà della funzione. Una funzione booleana è un caso speciale di funzione pseudo-booleana a valori booleani.

Rappresentazione

Ogni funzione pseudo-booleana può essere rappresentata in maniera unica da un polinomio multilineare:[1]

f(x)=a+iaixi+i<jaijxixj+i<j<kaijkxixjxk+

Il grado della funzione corrisponde al grado del polinomio che la rappresenta.

Ottimizzazione

L'ottimizzazione di una funzione pseudo-booleana nel caso generale è un problema NP-hard. Questo può essere dimostrato facilmente, formulando il problema del taglio massimo come massimizzazione di una funzione pseudo-booleana.[2]

Submodularità

Le funzioni submodulari soddisfano la condizione

f(x)+f(y)f(xy)+f(xy),x,y𝔹n.

Sono una classe importante di funzioni pseudo-booleane, in quanto possono essere ottimizzate in tempo polinomiale.

Roof Duality

Roof duality è un metodo per ottenere un limite inferiore per i valori di un polinomio quadratico,[2] e può essere usato per determinare un assegnamento ottimale parziale delle variabili. È un metodo piuttosto generale, e diversi metodi di ottimizzazione si sono rivelati essere equivalenti ad esso.[2]

Riduzioni

Le funzioni di grado superiore a 2 possono sempre essere ridotte ad una funzione quadratica equivalente dal punto di vista del problema di ottimizzazione, tramite l'aggiunta di variabili ausiliarie.[3] Le riduzioni non sono uniche, e differenti riduzioni possono produrre risultati diversi nel processo di ottimizzazione.[4]

Riduzione del numero di variabili

Data una funzione pseudo-booleana f(x)=I[n]wiiIxi a coefficienti interi, e un intero k, il problema P di determinare se f(x) è minore o uguale a k è NP-completo. In tempo polinomiale è possibile alternativamente risolvere P o ridurre il numero delle variabili a O(k2logk). Dato il grado r del polinomio associato a f, in tempo polinomiale è possibile alternativamente risolvere P o ridurre il numero di variabili a r(k1).[5]

Note

  1. Template:Cita libro
  2. 2,0 2,1 2,2 Boros and Hammer, 2002
  3. Ishikawa, 2011
  4. Kahl and Strandmark, 2011
  5. Crowston et al., 2011

Bibliografia

Voci correlate

Template:Portale