Posso parzialmente rispondere alla tua domanda: il conteggio dell'optima locale di un problema di ricerca completo di PLS può essere davvero # P-difficile.
Innanzitutto, come sottolinea Yoshio, esiste un problema di ricerca in PLS il cui problema di conteggio associato è # P-completo. (Tuttavia, non sappiamo se è completo da PLS.) Sia un problema completo da PLS. Quindi definire che, sull'input per , richiede un ottimo locale per l'input rispetto a . Questo problema eredita l'appartenenza PLS di , eredita la completezza PLS di e per il problema di conteggio eredita la completezza # P di .P 1 P 2 P ′ ( x , i ) i ∈ { 1 , 2 } x P i P 1 , P 2 P 2 P 1P1P1P2P′(x,i)i∈{1,2}xPiP1,P2P2P1
Allo stesso modo, si può costruire un problema (artificiale) completo di PLS per il quale è NP completo per decidere se esiste più di un ottimale locale. Come nell'argomento precedente, si "unisce" un problema completo di PLS come prima, con un problema PLS che, una formula booleana , ha più di un ottimale locale associato iff è soddisfacente.P 2 ψ ψP1P2ψψ
Questi tipi di costruzioni sono in qualche modo insoddisfacenti perché stiamo cercando di costruire un problema di ricerca che ha due proprietà di durezza, ma il dominio di "si divide" in due pezzi, ognuno dei quali può avere solo una delle due proprietà. Di seguito mostrerò come, dato un problema di ricerca in PLS il cui problema di conteggio associato è # P-completo, e dato un problema di PLS completo , si può definire un problema PLS che è difficile tanto quanto il conteggio per e cerca in modo "istanza per istanza".Q P 1 P 2 Q P 1 P 2QQP1P2QP1P2
Vale a dire, mostreremo tale che la risoluzione del problema di conteggio per sull'input riduce in modo efficiente alla risoluzione del problema di conteggio per sull'input , e il problema di ricerca per sull'input riduce al problema di ricerca per sull'input .P 1 x Q x P 2 x Q xQP1xQxP2xQx
Per semplicità di presentazione, supponiamo che siano tali che su qualsiasi input di lunghezza , lo spazio soluzione candidato associato a sia su stringhe di bit di lunghezza per alcuni (ma con strutture di vicinato diverse per ). Sia la funzione fitness associata a . x n x y n c c P 1 , P 2 F i ( x , y ) P iP1,P2xnxynccP1,P2Fi(x,y)Pi
Sull'input , lo spazio di ricerca per è sopra le tuple dove ogni è in , e . Come funzione fitness per , definiamo Q ( y 1 , y 2 , z , b ) y i { 0 , 1 } n c z ∈ { 0 , 1 } n c + 1 b ∈ { 0 , 1 } F ( x , ( y 1 , y 2 , z , bx∈{0,1}nQ(y1,y2,z,b)yi{0,1}ncz∈{0,1}nc+1b∈{0,1}QF(x,(y1,y2,z,b))Q
b = 1F(x,(y1,y2,z,b)):=F1(x,y1)+F2(x,y2) se , b=1
b = 0F(x,(y1,y2,z,b)):=||y1||+||z||+F2(x,y2) se .b=0
(Questo è il peso di Hamming sopra.)
Per la struttura di vicinato di , colleghiamo ogni tupla (con ) a tutte le tuple tale che( x , ( y 1 , y 2 , z , 1 ) ) b = 1 ( x , ( ( y ′ ) 1 , ( y ′ ) 2 , z ′ , 1 ) )Q(x,(y1,y2,z,1))b=1(x,((y′)1,(y′)2,z′,1))
(A) è collegato a secondo per , AND( x , ( y ′ ) i ) P i i = 1 , 2(x,yi)(x,(y′)i)Pii=1,2
(B) differiscono al massimo per 1 coordinata.z,z′
Per le tuple con , connettiamo a tutte le tuple tale cheb=0(x,(y1,y2,z,0))(x,((y′)1,(y′)2,z′,0))
(A ') è collegato a secondo , AND(x,y2)(x,(y′)2)P2
(B ') differiscono al massimo per 1 coordinata, così come .z,z′y1,(y′)1
(Nota, le tuple con sono disconnesse da quelle con )b=0b=1
Questa è la definizione di . I quartieri sono di dimensioni polinomiali come richiesto, quindi è in PLS. QQ
Reclamo: gli optima locali per l' input lunghezza- secondo sono esattamente i seguenti due insiemi disgiunti:nxQ
(1) tutte le tuple , dove è un ottimo locale di per ciascuno di (e è arbitrario e ); e,(x,(y1,y2,z,1))(x,yi)Pii=1,2zb=1
(2) tutte le tuple , dove è un ottimale locale di e dove sono entrambi tutti-1 e .(x,1nc,y2,1n,0))(x,y2)P2z,y1b=0
Se si è d'accordo, la durezza PLS di è immediata, poiché qualsiasi ottimale locale di per l'ingresso fornisce un ottimo locale di (per lo stesso input ) e è PLS-hard.Q(x,(y1,y2,z,b))Qx(x,y2)P2xP2
Inoltre, dalla nostra rivendicazione segue che il numero di optima locale per sotto uguale a , dove è il numero di optima locale per in . Ora è compreso nell'intervallo , quindi abbiamoN(x)xQ(2nc+1N1(x)+1)⋅N2(x)Ni(x)xPiN2(x)[1,2nc]
N2(x)=N2(x) mod mod mod .2nc+1=(2nc+1N1(x)+1)⋅N2(x)2nc+1=N(x)2nc+1
Quindi possiamo ottenere dato . Quindi possiamo anche ottenere , con una semplice algebra:
. Poiché è # P-completo da calcolare, così è . Quindi è # P-completo per contare l'ottima locale per (e il conteggio per riduce al conteggio per nella stessa istanza). N ( x ) N 1 ( x ) N 1 ( x ) = ( N ( x )N2(x)N(x)N1(x)N1(x)N(x)QP1QN1(x)=(N(x)N2(x)−1)/2nc+1N1(x)N(x)QP1Q
Non so come dare una tale riduzione per combinare la durezza PLS con la durezza NP di decidere l'unicità dell'optima locale in modo "istanza per istanza".
Per quanto riguarda il fatto che ogni problema di ricerca completo di PLS produca un problema di conteggio completo # P, non lo so neanche io. Esso sembra legata alla questione se, per ogni NP-completi problema decisionale L ed ogni polytime verificatore per , il problema testimone conteggio associato è # P-completo. # La completezza P vale in tutti i casi specifici che le persone hanno preso in considerazione, e in alcune condizioni ragionevolmente lievi, ma è aperta in generale. Vedere questa discussione .LV(x,y)L
Per un problema specifico, più naturale, noto per essere completo con PLS, si potrebbe essere in grado di stabilire la completezza # P per il conteggio dell'optima locale dando una riduzione del PLS, ad esempio Matching to che ha alcune proprietà speciali appropriate per il conteggio. Forse le tecniche esistenti sono sufficienti; Non ho provato ad accertare.QQQ