Sto cercando di costruire un elenco di algoritmi / problemi che sono "eccezionalmente utili", come in, risolvendo problemi che 'sembrano' molto esponenziali in natura, ma hanno alcuni algoritmi particolarmente intelligenti che alla fine li risolvono. Esempi di cosa intendo:
- Programmazione lineare (L'algoritmo simplex è tempo esponenziale; ci è voluto molto tempo per trovare una soluzione di tempo polinomiale!)
- Più in generale, Programmazione semidefinita
- Test di primalità
- 2-SAT e HORNSAT
- Determinanti del calcolo (se questo non sembra difficile, considera il permanente)
- Trovare abbinamenti perfetti
- Una varietà di problemi teorici di gruppo difficili che possono essere realizzati utilizzando la classificazione dei gruppi semplici finiti
- Una varietà di problemi con grafi rigidi che possono essere realizzati utilizzando complicate caratterizzazioni minori proibite (incorporabilità su una superficie arbitraria; delimitazione di larghezza dell'albero e larghezza del ramo; grafici riducibili Delta-Wye)
- Calcolo degli esponenziali in un gruppo limitato (ovvero calcolo di passi in , come compiuto da ripetute quadrature)
- Calcoli basati sull'algoritmo LLL. (Come caso speciale: algoritmo euclideo. Come caso più generale: algoritmi PSLQ o HJLS.)
- Problemi di vincolo senza termini di Taylor (?). Devo ammettere che non lo capisco del tutto, ma sembra che probabilmente sottrae i casi 2-SAT / HORNSAT sopra e qualsiasi algebra lineare su campi finiti. Vedi qui per un post più lungo
- Problemi calcolabili tramite riduzioni olografiche .
Come menzione d'onore, vorrei anche citare Isomorfismo grafico, perché è ancora terribilmente facile ( ), ed equivale a tanti altri problemi di isomorfismo:
- Digraphs / multigraphs / hypergraphs (una sorta di problema "più difficile")
- Automi / CFG finiti
Ovviamente c'è una serie di difficoltà in questi, ma tutti lasciano almeno alcune persone con un certo senso di "sorpresa", nel senso che il problema può sembrare difficile ma risulta trattabile. LP potrebbe sembrare relativamente semplice, ma ci è voluto un po 'di tempo prima che le persone costruissero una soluzione reale. La ripetuta quadratura o risoluzione di 2-SAT è qualcosa che un studente non laureato potrebbe inventare da solo, ma se avessi appreso dei problemi NP-Complete senza aver visto HORNSAT, potrebbe sembrare un candidato naturale per NP-Completezza. Risolvere il CFSG o avere un modo polinomiale per verificare la riducibilità di Delta-Wye non è una cosa da poco.
Spero che abbia senso; ci sono ovviamente molti attributi soggettivi qui, ma sono curioso di sapere quali altre persone trovano soluzioni efficaci a problemi "ovviamente difficili".