(Come) Potremmo scoprire / analizzare i problemi NP in assenza del modello di calcolo di Turing?


15

Da un punto di vista matematico / di ragionamento puramente astratto (come) si potrebbe persino scoprire o ragionare su problemi come 3-SAT, somma dei sottoinsiemi, commesso viaggiatore ecc.? Saremmo ancora in grado di ragionare su di loro in modo significativo con il solo funzionale punto di vista? Sarebbe anche possibile?

Ho riflettuto su questa domanda puramente da un punto di autoindagine come parte dell'apprendimento del modello di calcolo lambda di calcolo. Capisco che è "non intuitivo" ed è per questo che Godel ha favorito il modello di Turing. Tuttavia, vorrei solo sapere quali sono i noti limiti teorici di questo funzionale stile di calcolo e quanto di un ostacolo sarebbe per analizzare la classe NP di problemi?


Questa non è una domanda a livello di ricerca per qualcuno che fa la teoria dei linguaggi di programmazione in modo professionale, ma non credo ancora che la domanda meriti tutti i voti negativi. I downvoter potrebbero dirci cosa li disturba? Forse la domanda può essere migliorata.
Andrej Bauer,

2
@AndrejBauer: ho annullato il voto perché (1) penso che l'equivalenza (polinomiale) tra le macchine di Turing e il calcolo lambda sia abbastanza nota, e (2) il post ha un sacco di lanugine che lo maschera come la domanda principale. Tuttavia, la tua risposta mostra che c'è molto di più di quanto pensassi, quindi posso invertire il mio voto.
Huck Bennett,

Sono d'accordo che la lanugine appartiene a Discovery Channel.
Andrej Bauer,

2
@AndrejBauer, HuckBennet: inizialmente stavo decidendo di pubblicarlo sul portale dell'informatica ma non sono riuscito a trovare i tag pertinenti e quindi l'ho pubblicato qui. Ho rimosso la lanugine per aiutare a essere diretto con quello che voglio sapere. Ho lasciato la mia "ragione" per porre la domanda e quindi l'ho contrassegnata come una domanda delicata. Sono sinceramente interessato a sapere come si potrebbero analizzare i problemi NP esclusivamente da una prospettiva funzionale e se c'è davvero alcun valore nel farlo - con la speranza di capire qualcosa di più profondo sul calcolo lambda
Dottorato

Penso che il nocciolo della tua domanda sia se la complessità possa essere sviluppata usando il calcolo lambda. La risposta è sì, e c'è una vecchia domanda che la pone sul sito iirc.
Kaveh,

Risposte:


16

Potresti voler esaminare la semantica dei costi per i linguaggi funzionali . Queste sono varie misure di complessità computazionale per linguaggi funzionali che non passano attraverso alcun tipo di macchina di Turing, macchina RAM, ecc. Un buon punto di partenza è questo post Lambda the Ultimate , che ha alcuni buoni riferimenti ulteriori.

La sezione 7.4 delle basi pratiche di Bob Harper per i linguaggi di programmazione spiega la semantica dei costi.

L'articolo sulla relativa utilità delle palle di fuoco di Accattoli e Coen mostra che il calcolo ha al massimo un ingrandimento lineare rispetto al modello di macchina RAM.λ

In sintesi, su questo altro pianeta le cose sarebbero praticamente le stesse per quanto riguarda NP, ma ci sarebbero meno traboccamenti del buffer e non ci sarebbe tanta spazzatura in giro.


Suppongo che il non tipizzato λ calcoli inventerebbero ancora lo schema (puro). Oh bene.
Andrej Bauer,

Questo è un bel link sul post LtU. Ma qualche link ad esempi concreti di dimostrazione di questa classe di "NP" con problemi come 3Sat? Curios per vedere una "prova" nel calcolo lambda
PhD

Damiano, potresti pubblicare i tuoi commenti come una risposta adeguata che dimostra che si può fare la teoria relativa alla NP direttamente in λ calcolo .
Andrej Bauer,

@DamianoMazza - Sono d'accordo con Andrej e credo che il tuo commento dovrebbe essere una risposta
Dottorato di ricerca

@Andrej: Fatto! Ho rimosso i miei commenti precedenti.
Damiano Mazza,

14

Su richiesta di Andrej e PhD, sto trasformando il mio commento in una risposta, con scuse per l'auto-pubblicità.

Recentemente ho scritto un documento in cui guardo come dimostrare il teorema Cook-Levin ( -completeness di SAT) utilizzando un linguaggio funzionale (una variante del λ-calcolo), invece di macchine di Turing. Un sommario:NP

  • la nozione chiave è quella delle approssimazioni affine, cioè approssimando i programmi arbitrari da quelli affini (che possono usare i loro input al massimo una volta); l'intuizione è che i così affiniλ-termati approssimativi calcoli arbitrari bene arbitrari proprio come i circuiti booleani;
    Circuiti booleaniMacchine di Turing=affine λ-Condizioniλ-Condizioni
    λ
  • il risultato è che, nel mondo dei calcoli , la dimostrazione è molto "di livello superiore", usa la teoria degli ordini, la continuità di Scott, ecc. invece di hackerare i circuiti booleani; in particolare, lo slogan "il calcolo è locale" (che viene dato da molti come il messaggio alla base del teorema di Cook-Levin) diventa "il calcolo è continuo", come previsto;λ
  • tuttavia, il problema "naturale" di non è CIRCUIT SAT ma HO CIRCUIT SAT, una sorta di "solvibilità" di termini lineari λ o, più precisamente, reti logiche a prova di logica (che sono come circuiti booleani di ordine superiore) ;NP
  • naturalmente, si può quindi ridurre HO CIRCUIT SAT a CIRCUIT SAT, dimostrando così il solito teorema di Cook-Levin, e i dettagli cruenti e di basso livello vengono tutti spostati per costruire tale riduzione.

Quindi l'unica cosa che cambierebbe "da questa parte del pianeta" è, forse, che avremmo considerato un "problema relativo al calcolo λ, invece del problema relativo al circuito booleano, il" primordiale " - problema completo.NP

Una nota a margine : la prova di cui sopra potrebbe essere riformulata in una variante del calcolo di Accattoli con sostituzioni esplicite lineari menzionate nella risposta di Andrej, che è forse più standard del calcolo λ che uso nel mio documento.λλ


Modifica successiva: la mia risposta è stata solo un po 'più che un incolla dal mio commento e mi rendo conto che qualcosa di più dovrebbe essere detto riguardo al cuore della domanda che, come ho capito, è: sarebbe possibile sviluppare la teoria della completezza di senza macchine di Turing?NP

Concordo con il commento di Kaveh: la risposta è , ma forse solo in modo restrittivo. Cioè, quando si tratta di complessità (contando il tempo e lo spazio), le macchine di Turing sono imbattibili nella semplicità, il modello di costo è evidente per il tempo e quasi evidente per lo spazio. Nel calcolo , le cose sono molto meno evidenti: i modelli di costo del tempo come quelli menzionati da Andrej e riportati nel libro di Harper sono della metà degli anni '90, i modelli di costo dello spazio sono ancora quasi inesistenti (sono a conoscenza essenzialmente di un'opera pubblicata nel 2008 ).λ

λ

NPNPcoNPλ

λλ

NPλ, non importa se sai che le tue intuizioni sono solide. Le macchine di Turing hanno dato una risposta immediata e praticabile, e le persone non hanno (e continuano a non sentire) la necessità di andare oltre.


2
Solo un chiarimento che molti mancano: Steve ha dimostrato la completezza NP per TAUT, la prova per SAT è implicita lì dentro. Il concetto di riduzione del Karp non esisteva al momento. È anche importante notare che TAUT è stato il motivo per cui Steve si è interessato all'argomento ed è fondamentale per la dimostrazione automatica del teorema, le persone sarebbero altrettanto interessate alla solvibilità dei termini lambda lineari? Lo sviluppo alternativo è possibile, ma accadrebbe senza la preconoscenza della completezza NP? Lo trovo improbabile se si considera che lo sviluppo alternativo è piuttosto recente. :)
Kaveh,

1
Ricordo di aver letto da qualche parte che parte della motivazione di Levin a sviluppare la completezza NP era l'incapacità di risolvere l'isomorfismo dei grafi e il problema delle dimensioni minime dei circuiti (MCSP) e la speranza di dimostrare che erano (ciò che ora chiameremmo) NP-difficili. Almeno GI sarebbe ancora esistito in un mondo di lambda ...
Joshua Grochow,

1
@Kaveh, grazie per il tuo commento, ho aggiunto alcuni paragrafi per completare la risposta.
Damiano Mazza,

1
@Josh, anche TAUT e SAT.
Kaveh,
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.