Una variante NP completa del factoring.


45

Il libro di Arora e Barak presenta il factoring come il seguente problema:

FACTORING={L,U,N|( a prime p{L,,U})[p|N]}

Aggiungono inoltre, nel capitolo 2, che la rimozione del fatto che è primo rende completo questo problema NP, sebbene ciò non sia legato alla difficoltà dei numeri di factoring. Sembra che ci possa essere una riduzione da SUBSETSUM, ma mi sono bloccato nel trovarlo. Qualche fortuna in più qui?p

MODIFICA 1 marzo: la generosità è per la prova della usando la riduzione deterministica di Karp (o Cook).NP


5
@turkistany: FWIW, considero uno stile errato per mettere NP in corsivo e sia uno stile cattivo che un cattivo LaTeX per metterlo in modalità matematica (poiché la spaziatura tra le lettere differisce).
Michaël Cadilhac,

@ Michaël, mi spiace, è tornato allo stile originale. Mi sono emozionato per la tua domanda :)
Mohammad Al-Turkistany,

7
Una descrizione un po 'più completa: a pagina 63 del libro, scrivono: Alon e Kilian (nella comunicazione personale) hanno mostrato che nella definizione del Factoring della lingua nell'esempio 2.3, la condizione che il fattore p sia primo è necessaria per catturare il problema di factoring, poiché senza questa condizione questo linguaggio è NP-completo (per ragioni che non hanno nulla a che fare con la durezza degli interi di factoring).
MS Dousti,

2
Naturalmente, ho cercato un articolo di Alon e Kilian contenente "factoring" e "NP-complete". Non ne ho trovato nessuno (immagino che questo sia anche naturale in un certo senso). :(
Tsuyoshi Ito

5
@Michael In realtà mi piacciono le classi di rendering come piuttosto che NP. No ? NP
Suresh Venkat,

Risposte:


35

Questa non è una vera risposta, ma è vicina. Quanto segue è una prova che il problema è NP-difficile con riduzioni randomizzate.

Esiste una relazione evidente con la somma dei sottoinsiemi che è: supponiamo di conoscere i fattori di : p 1 , p 2 , ... , p k . Ora, vuoi trovare un sottoinsieme S di p 1 ... p k tale cheNp1p2pkSp1 pk

logLpiSlogpilogU.

Il problema con il tentativo di utilizzare questa idea per mostrare il problema è NP-difficile è che se si ha un problema di somma parziale con i numeri , t 2 , ... , t k , non è possibile trovare necessariamente numeri primi nel tempo polinomiale quel log p it i (dove per , intendo approssimativamente proporzionale a). Questo è un vero problema, perché, in quanto sottoinsieme somma non è fortemente NP-completo, è necessario trovare questi log p i per i grandi numeri interi t i .t1t2tklogpitilogpiti

Supponiamo ora che tutti gli interi t k in un problema di somma di sottoinsieme siano compresi tra x e x ( 1 + 1 / k ) e che la somma sia approssimativamente 1t1 tKXx(1+1/k). Il problema della somma dei sottoinsiemi sarà comunque NP-completo e qualsiasi soluzione sarà la somma dik/2numeri interi. Siamo in grado di cambiare il problema da interi a reali se lasciamot ' ho compreso tratiela ti+112itik/2titi , e invece di richiedere che la somma sia esattamentes, è necessario che sia compresa trases+1tio+110KSS . Abbiamo solo bisogno di specificare i nostri numeri a circa4logkpiù bit di precisione per farlo. Pertanto, se iniziamo con numeri conbitBe possiamo specificare numeri realilogpia circaB+4logkbit di precisione, possiamo effettuare la nostra riduzione.S+1104logKBlogpioB+4logK

Ora, da wikipedia (tramite commento di Hsien-Chih sotto), il numero di primi tra e T + T 5 / 8 è θ ( T 5 / 8 / log T ) , quindi se si sceglie i numeri in modo casuale in tale intervallo, e testali per la primalità, con alta probabilità ottieni un numero primo in tempo polinomiale.TT+T5/8θ(T5/8/logT)

Ora proviamo la riduzione. Diciamo che la nostra sono tutti i B bit. Se prendiamo T i di lunghezza 3 B bit, allora possiamo trovare un numero primo p ho vicino T I con 9 / 8 B bit di precisione. Così, possiamo scegliere T i modo che registro T ho alfa t i con precisione 9 / 8tioBTio3BpioTio9/8BTiologTioαtioBit B. Questo ci consente di trovare p iT i modo che log p ho alfa t i con precisione 9 / 89/8BpioTiologpioαtioBit B. Se un sottoinsieme di questi numeri primi si moltiplica in qualcosa vicino al valore target, esiste una soluzione ai problemi di somma del sottoinsieme originale. Quindi lasciamo N = Π i p i , scegliamo L e U in modo appropriato e abbiamo una riduzione randomizzata dalla somma del sottoinsieme.9/8BN=ΠiopioLU


3
Non capisco la riduzione. Perché il problema della somma dei sottoinsiemi sia NP-completo, il numero deve essere indicato in binario. Se vogliamo numeri interi i cui logaritmi sono vicini ai numeri in un'istanza del problema della somma dei sottoinsiemi, abbiamo bisogno esponenzialmente di molte cifre. Come superare questo?
Tsuyoshi Ito

2
@Peter: L'assunto nella teoria dei numeri è chiamato congettura di Cramér , che afferma che , dove p n è l'n-esimo numero primo. Vedi l'articolo prime gap anche per riferimento. pn+1-pn=O(log2n)pn
Hsien-Chih Chang 張顯 之

2
@Peter: Sì, questa versione dell'assunzione è stata dimostrata per abbastanza grande. Il primo risultato di questo tipo è mostrato da Hoheisel, e il miglior risultato dovuto a wikipedia è il lavoro di Baker, Harman e Pintz , con α = 0,525 , c 1 = (poiché vale per la probabilità 1) ec 2 = 1 . Tα=0.525c1=c2=1
Hsien-Chih Chang 張顯 之

2
Mi sono appena imbattuto in questo. Dovrei notare che non so quale fosse la prova originale di Kilian-Alon. La mia unica conoscenza della dimostrazione proviene da una comunicazione con Noga che non ricordava i dettagli della dimostrazione originale e la dimostrazione che aveva ricostruito era esattamente questa. Si noti che può anche essere descritto come una riduzione deterministica sotto alcune assunzioni teoriche di numeri forti (ad esempio, che esiste un numero primo in qualsiasi intervallo della forma [x, x + polilogo (x)]).
Boaz Barak,

4
Ho appena parlato con Joe Kilian. Ha detto che la prova che lui e Alon hanno fornito riduzioni randomizzate a errore zero. Per quanto ne sappia, la riduzione deterministica è ancora aperta a meno che non si faccia un'ipotesi teorica dei numeri, come già ha detto Boaz Barak.
Timothy Chow,

8

Penso che sia collegato al teorema di PCP (in particolare ).NP=PCP[O(logn),O(1)]

Un estratto dall'articolo di un Madhu :

... L'idea che un verificatore possa eseguire qualsiasi calcolo temporale polinomiale arricchisce notevolmente la classe di teoremi e prove e inizia a offrire metodi altamente non banali per dimostrare i teoremi. (Una conseguenza immediata è che possiamo assumere teoremi / prove / asserzioni / argomenti sono sequenze binarie e lo faremo d'ora in poi.) Ad esempio, supponiamo di avere un'asserzione (diciamo l'ipotesi di Riemann), e diciamo che crediamo che abbia prova che rientrerebbe in un articolo di 10.000 pagine. La prospettiva computazionale dice che dato A e questo limite (10.000 pagine), si possono calcolare in modo efficiente tre interi positivi N , L , U con L U NAAN,L,ULUNtale che è vera se e solo se N è un divisore tra L e U . I numeri interi N , L e U saranno piuttosto lunghi (forse la loro scrittura richiederebbe un milione di pagine), ma possono essere prodotti in modo estremamente efficiente (in meno del tempo necessario a una stampante per stampare tutti questi numeri interi, che è certamente al massimo un giorno o due). (Questo esempio specifico si basa su un risultato dovuto a Joe Kilian , comunicazione personale) ...ANLUNLU

... ben oltre le mie capacità di teoria della complessità :-)


2
Questa è solo un'altra formulazione secondo cui questo problema è NP-completo.
Marc Bury,

@ Marc ... mmm ... penso che significa: è NP-completo perchéesisteuna riduzione polinomiale dal problema NP-completoPROVA CORTA...{L,U,N|(p{L,...,U})[p|N]}
Marzio De Biasi

2
Il problema delle PROVE CORTE nel documento è quasi lo stesso del problema di arresto limitato. Una riduzione dal problema SHORT PROOFS sarebbe molto probabilmente confusa quanto la tipica dimostrazione della completezza NP di SAT, e quindi è improbabile che la prova della completezza NP di questo fattore che trova il problema da parte di Kilian costruisca una riduzione dal PROBLEMA CORTO direttamente.
Tsuyoshi Ito,

0

Questa è un'idea di riduzione deterministica efficiente informale (e può essere incompleta):

Fractran è un linguaggio di programmazione completo di Turing. Una versione delimitata opportunamente definita dei programmi Fractran dovrebbe essere riducibile al linguaggio {L,U,M|( a positive integer p{L,,U})[p|M]}

Ad esempio, una versione limitata potrebbe chiedere se l'intero numero viene prodotto nella sequenza di output di un programma Fractran entro un certo numero di passaggi (divisioni) (cioè M = N jF i ).MM=NjFi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.