Problemi algoritmici dall'aspetto duro resi facili dai teoremi


28

Sto cercando buoni esempi, in cui si verifica il seguente fenomeno: (1) Un problema algoritmico sembra difficile, se si desidera risolverlo lavorando dalle definizioni e utilizzando solo risultati standard. (2) D'altra parte, diventa facile, se conosci alcuni teoremi (non così standard).

L'obiettivo di questo è di illustrare agli studenti che l'apprendimento di più teoremi può essere utile, anche per coloro che sono al di fuori del campo della teoria (come ingegneri del software, ingegneri informatici, ecc.). Ecco un esempio:

Domanda: dati interi n,k,l,d , esiste un grafico -vertex (e, in tal caso, trovane uno), in modo tale che la sua connettività del vertice sia , la sua connettività al bordo sia , e il suo grado minimo sia ?nkld

Si noti che è necessario che i parametri siano esattamente uguali ai numeri indicati, non sono solo limiti. Se vuoi risolverlo da zero, potrebbe sembrare piuttosto difficile. D'altra parte, se hai familiarità con il seguente teorema (vedi Teoria del grafico estremo di B. Bollobas), la situazione diventa piuttosto diversa.

Teorema: Sia numeri interi. Esiste un grafico -vertex con connettività del vertice , connettività del bordo e grado minimo , se e solo se è soddisfatta una delle seguenti condizioni:n,k,l,dnkld

  • 0kld<n/2 ,
  • 12d+2nkl=d<n1
  • k=l=d=n1.

Queste condizioni sono molto facili da controllare, essendo semplici disuguaglianze tra i parametri di input, quindi la domanda di esistenza può essere risolta senza sforzo. Inoltre, la dimostrazione del teorema è costruttiva, risolvendo anche il problema della costruzione. D'altra parte, questo risultato non sembra abbastanza standard, quindi puoi aspettarti che tutti lo sappiano.

Puoi fornire ulteriori esempi in questo spirito, in cui la conoscenza di un teorema (non così standard) semplifica notevolmente un compito?


1
Non sono sicuro di aver compreso appieno le tue domande. L'esempio che dai è un problema non banale per il quale Bollobas ha fornito un algoritmo (che implica una caratterizzazione). Quindi la mia impressione con il tuo esempio è che qualsiasi algoritmo non banale sarà una risposta ...
Bruno,

3
Primalità e teorema di AKS.
Lamine,

@Bruno: Voglio dire che il compito algoritmico diventa molto più semplice se conosci un teorema, che non è ben noto, quindi non ne avrai mai sentito parlare. L'esempio presentato non è perfetto, nel senso che qui il teorema non solo aiuta, ma risolve il problema. Quello che sto veramente cercando è quando un teorema aiuta, fornisce alcune scorciatoie utili, ma non risolve completamente il problema in sé.
Andras Farago,

3
Wiki della comunità?
Joshua Grochow,

1
Teorema di Robertson-Seymour, anche congetture che facilitano la ricerca deterministica di numeri primi.
Kaveh,

Risposte:


31

Decidere l'isomorfismo di gruppi semplici , dato dalle loro tabelle di moltiplicazione. Il fatto che ciò possa essere fatto in tempi polinomiali deriva direttamente dal fatto che tutti i gruppi semplici finiti possono essere generati da un massimo di 2 elementi e attualmente l'unica prova nota di tale fatto utilizza la classificazione dei gruppi semplici finiti (forse il più grande teorema - in termini di autori, articoli e pagine - mai provato).


3
Questo è un ottimo esempio! A proposito, i commenti a questa risposta affermano che in un certo senso questo teorema è difficile quanto la classificazione: mathoverflow.net/a/59216/35733
Nikolov,

32

Se capisco correttamente la tua domanda, un esempio canonico sarebbe decidere se un grafico ha un circuito euleriano: equivale a verificare che G sia connesso e che ogni vertice abbia un grado pari.GG


20

Questo pomeriggio stavo leggendo Stringology - la teoria delle stringhe "reale" .

Problema: Se ed y sono due stringhe su un certo alfabeto quando ci sono dei numeri interi positivi m , n tale che x m = y n .xym,nxm=yn

Teorema: ci sono numeri interi positivi tali che x m = y n se e solo se x y = y x .m,nxm=ynxy=yx


9

Trovare il numero di radici (distinte) reali di un polinomio reale, in tutto ℝ o in un dato intervallo. Il teorema di Sturm ti dice che una sequenza di polinomi che soddisfa un piccolo numero di requisiti può essere usata per contare il numero di radici reali di un polinomio con coefficienti reali.

Quindi, tutto ciò che devi fare è costruire una tale sequenza (che non è molto difficile, ma richiede alcuni casi limite e gestione del caso dei polinomi non separabili), e Bob è tuo zio.

Sorprendentemente, poche persone conoscono questo risultato, nonostante sia piuttosto vecchio (1829). È usato in molti sistemi di computer algebra, ma tutti i professori di matematica della mia università a cui ho chiesto o non conoscevano affatto il teorema di Sturm o lo sapevano solo per nome e che ha qualcosa a che fare con le radici dei polinomi.

Molte persone sono piuttosto sorprese quando dici loro che qualcosa come contare le radici reali è esattamente così facile e non richiede alcuna approssimazione, considerando che trovare le radici è molto più difficile. (Ricorda che per i polinomi di grado ≥ 5, non esiste nemmeno una formula "corretta" per le radici)


9

Teorema: ogni grafico planare ha un vertice con grado al massimo 5.

Problema: progettare una rappresentazione di grafici planari in cui è possibile verificare se ( u , v ) è un bordo nel tempo O ( 1 ) .O(n)(u,v)O(1)

Possiamo rimuovere il vertice con un massimo di 5 e aggiungerlo a un elenco come chiave e ai suoi vicini come valori. Anche il grafico rimanente è planare e ha un vertice con grado al massimo 5. Quindi lo spazio consumato è al massimo . Siamo in grado di controllare se la u è nella lista di adiacenza di v ; in caso contrario possiamo verificare se v è nell'elenco di adiacenza di u . Questo richiede al massimo 10 passaggi.5nuvvu10


5
Con un po 'più di attenzione è possibile ridurre la dimensione dell'elenco memorizzato in ciascun vertice a 3 e il numero di passaggi per verificare l'adiacenza a 6. Vedere: Orientamenti planari con basso grado esterno e compattazione delle matrici di adiacenza. M. Chrobak e D. Eppstein. Theor. Comp. Sci. 86 (2): 243–266, 1991. ics.uci.edu/~eppstein/pubs/ChrEpp-TCS-91.pdf
David Eppstein

7

Penso che il posterchild di questa categoria, almeno per quanto riguarda la difficoltà di assimetria, sia il seguente problema:

Dato un grafico planare , G 4 è colorabile?GG

Il teorema dei quattro colori semplifica l'algoritmo return true.


6

Se un reale (multivariata) polinomio può essere espressa come somma dei quadrati di polinomi reali possono essere risolti mediante riduzione di programmazione semi-definite. È necessario conoscere SDP e che SDP può essere risolto in modo efficiente.p


5

Un altro esempio: dato un grafico non orientato, ha un taglio minimo in cui tutti i bordi sono disgiunti? In tal caso, trovane uno.

A prima vista potrebbe sembrare difficile. Diventa facile, tuttavia, se conosci il risultato che un grafico -vertex non indirizzato può avere al massimo n ( n - 1 ) / 2 tagli minimi e tutti possono essere elencati in un tempo polinomiale.nn(n1)/2

Può essere esteso a tagli quasi minimi, che sono più grandi del taglio minimo, ma al massimo con un fattore costante. Il loro numero è ancora limitato da un polinomio.

(Non ho cercato un riferimento, il mio ricordo è che questi risultati sono dovuti a D. Karger.)


4

Problema: saturabilità di una formula MSO (logica monadica di secondo ordine) su parole finite.

Teorema: MSO è equivalente ad automi finiti su parole finite.

Quanto sopra può essere elevato a parole infinite, alberi finiti, alberi infiniti.


4

Un esempio leggermente più complicato: fattorizzazione a matrice non negativa , quando il rango non negativo è costante.

Dico Vi do una matrice insieme con la promessa che esistono negativo U M m × k , V M k × n tale che A = U V . Il problema è quello di trovare tale fattorizzazione una per una .AMm×nUMm×kVMk×nA=UVA

Con poche righe di algebra lineare elementare è possibile ridurre il problema risolvendo un sistema di disuguaglianze polinomiali nelle variabili , dove r è il rango non negativo della matrice che si desidera fattorizzare.O(r2)r

Usando l'algoritmo di Renegar come un martello, è possibile risolvere questo nel tempo e, quindi, recuperare U e V . Questo non è lontano dall'ottimalità, poiché è difficile ETH per risolvere NMF in tempo ( m n ) o ( r ) .(mn)O(r2)UV(mn)o(r)


4

Diffie Hellman decisionale

Indica: dato dove g è un generatore di un gruppo ciclico G , verificare se g c = g a b(g,ga,gb,gc)gGgc=gab

In base alle ipotesi standard di durezza del problema di registro discreto, questo problema può anche sembrare difficile.

Tuttavia, con le mappe bilineari questo problema è semplice e può essere verificato come

e(g,gc)=?e(ga,gb)

dove e:G×GGT

Maggiori informazioni su questo possono essere lette sul problema decisionale diffie-hellman , Boneh'98 o una ricerca su Google su abbinamenti


3

(Trivialmente) l'esistenza di un equilibrio di Nash in un gioco finito, un numero pari di Percorsi Hamiltoniani in un grafico cubico, vari tipi di punti fissi, confronti decentemente bilanciati in ordini parziali e molti altri problemi PPAD.


L'esistenza di Nash Equilibrium - e molte altre prove dell'esistenza che hanno caratterizzato il PPAD - non sembrano rendere nessuno di questi problemi più facile da risolvere in modo algoritmico ...
Joshua Grochow

1
Mi riferivo alla versione decisionale di questi problemi.
Yonatan N

2

Alla ricerca di tagli minuscoli. Dato un grafico ponderato e due vertici , trova E E tale che s e t non siano collegati in ( V , E ) , in modo tale che il peso totale di E sia massimizzato .((V,E),S,t)E'ESt(V,E')E'

St(V,E)St


1
Si può dire che il flusso è facile se si sa che LP è facile. Quindi due grandi teoremi (LP in poly-time e maxflow-mincut) ci permettono di calcolare i min-cut.
Chandra Chekuri,

@ChandraChekuri, la mia sensazione personale è che non si adatta perfettamente alla domanda: il teorema che LP è risolvibile nel tempo polifunzionale non ci aiuta a costruire effettivamente un algoritmo per i tagli minuscoli. Abbiamo bisogno dell'attuale algoritmo LP.
Max

Non proprio. Se riesci a trovare il valore di taglio minimo in un dato grafico in modo efficiente, puoi usare un tale algoritmo per trovare il taglio vero e proprio.
Chandra Chekuri,

2

Ecco un altro esempio: dato un semplice grafico non orientato, decidere se ha due circuiti vertici-disgiunti.

23

3K5K3,n3

Poiché è facile verificare se un grafico è uno dei grafici consentiti dal teorema, questo ci fornisce un algoritmo a tempo polinomiale per il problema decisionale.

Note: (1) La dimostrazione del teorema non è affatto facile. (2) Una volta deciso che esistono due circuiti disgiunti, sembra meno chiaro come risolvere il problema di ricerca associato , ovvero come trovare effettivamente tali circuiti. Il teorema non fornisce consigli diretti a questo.


1

esempi meno complessi: ci sono alcune proprietà simili a teoremi che mostrano che algoritmi avidi per alcuni problemi sono ottimali. non è così ovvio per chi non lo sapesse un minimo spanning tree può essere trovato da un avido algoritmo. un po 'simile concettualmente è l'algoritmo di Dijkstra per trovare un percorso più breve in un grafico. in realtà in entrambi i casi i "teoremi" associati sono quasi gli stessi degli algoritmi.


Penso che questa sarà una risposta migliore se, ad esempio, includi un'affermazione della proprietà cut di MST e menzioni come implichi la correttezza di un'intera classe di algoritmi MST avidi.
Sasho Nikolov,

Proprietà di taglio MST elencata nella pagina di Wikipedia. forse puoi fare riferimento ad altre generalizzazioni non trattate lì. btw ricordiamo che l'interrogatore ha chiesto esempi che servono "quelli al di fuori del campo della teoria" (altri bei esempi forniti potrebbero essere troppo avanzati per gli estranei)
vzn

che tagliare la proprietà non implica la correttezza degli algoritmi avidi per quanto posso vedere. La proprietà intendo è: un albero spanningTè un MST se vale quanto segue; per ogni vantaggioe, T-e ha due componenti connesse: lascia che siano i loro vertici UN un B; poie è un bordo di peso minimo sul taglio E(UN,B).
Sasho Nikolov,

1

Trova la sequenza dei numeri di Fibonacci che sono il prodotto di altri numeri di Fibonacci. Ad esempio, il numero di Fibonacci 8 è nella sequenza perché 8 = 2 * 2 * 2 e 2 è un numero di Fibonacci che non è uguale a 8. Il numero di Fibonacci 144 è nella sequenza perché 144 = 3 * 3 * 2 * 2 * 2 * 2, e sia 2 che 3 sono numeri di Fibonacci che non sono uguali a 144.

Il teorema di Carmichael implica che 8 e 144 sono gli unici termini di questa sequenza.

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.