Descrizione del tavolo da pranzo dell'informatica teorica?


51

Mi viene spesso chiesto cosa fa un teorico informatico. Sarebbe bello avere delle belle risposte a questa domanda. Tendo a ripiegare sul gergo tecnico e gli occhi delle persone di solito si sminuiscono a questo punto.

Che cosa fa un informatico teorico, in termini che possono essere compresi da persone che non sono informatici?

Una buona risposta dovrebbe essere scattante, precisa nello spirito, senza sembrare vaga o banale. Per quanto riguarda i punti bonus, la risposta dovrebbe suggerire perché un teorico informatico non è né un matematico né un professionista IT.

Questa domanda è ispirata alla domanda MO https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious-mathematics sebbene l'intento sia diverso.

Risposte:


34

La mia risposta è generalmente: "Studio perché alcuni calcoli sono difficili da fare". Ad esempio, in genere confronto l'addizione e la moltiplicazione usando i metodi standard della scuola elementare. Questi sono calcoli che tutti hanno fatto e che tutti apprezzano il valore di fare rapidamente. Tutti concordano sul fatto che per un gran numero, la moltiplicazione è molto più difficile dell'aggiunta. In effetti, la maggior parte delle persone suggerisce che il metodo della scuola elementare sia il più veloce possibile. Quindi chiedo loro perché. Come fanno a sapere che non esiste un altro modo di fare moltiplicazione altrettanto semplice dell'aggiunta?

Praticamente tutti hanno almeno un certo apprezzamento a questo punto per la difficoltà di dimostrare limiti inferiori (il mio particolare interesse), anche se non ho usato quel termine. A seconda dello sfondo e dell'interesse del pubblico, posso dire che qualcuno ha trovato un modo per moltiplicarsi molto più velocemente del metodo della scuola elementare (semplicemente la parola "algoritmo" tende a dare uno sguardo ai loro occhi), ma ancora più lentamente che aggiungere.


8
Mi piace che il tuo esempio usi addizione e moltiplicazione come esempi. Sembra che questi sarebbero in qualche modo ancora meno intimidatori per un laico che lo smistamento o la ricerca.
Lev Reyzin

Questo è davvero un bel modo per arrivare rapidamente al nocciolo della questione, grazie!
András Salamon,

3
Ho dato lo stesso esempio :) La reazione che ho visto è che le persone vanno in negazione, quasi ad arrabbiarsi con me: "cosa vuoi dire non sappiamo se la moltiplicazione è più dura dell'aggiunta? Certo che lo sei ... sei tu giocare con me? "
Sasho Nikolov,

Mi piace molto questa risposta, ma non è quello che faccio! Lavoro in un campo completamente diverso, vale a dire la teoria dei tipi dipendenti. Dovrei spiegare "teoria A" vs "teoria B"?
cody

39

Do un esempio concreto alle persone. Nello specifico, spesso motivo la teoria della complessità con lo stesso problema molto illustrativo (ma semplice). Chiedo al mio pubblico come insegnerebbe a un bambino piccolo a scoprire se il suo nome è in un elenco di nomi in ordine alfabetico (e dico loro che ci vogliono 3 secondi per confrontare un nome con un altro). Spesso la persona / il gruppo escogitano un approccio ingenuo e lineare. Costringo la conversazione a rivolgersi all'algoritmo logaritmico (potrei usare una parola diversa dal logaritmo) chiedendo alla persona qualcosa di meglio o citandolo da solo. Mostro loro come raddoppiare le dimensioni dell'elenco aggiunge solo tre secondi di lavoro al bambino con questo nuovo approccio. E lo confronto direttamente con la versione lineare, che ora sembrerà del tutto sciocca.

Certo, lo riporto sulla terra. Dico loro che il bambino in questione è generalmente un computer, ma che potrebbe essere un bambino o davvero chiunque in generale. Che le domande che poniamo non riguardano realmente i computer ma riguardano piuttosto la quantità di spazio, tempo e informazioni necessari per risolvere i problemi. E motivo l'analisi della complessità per analogia ai due diversi metodi per risolvere lo stesso problema.

Quando ho la loro attenzione, tiro fuori i colpi pesanti. Chiedo loro "puoi provare che la soluzione logaritmica è la migliore che tu possa mai sperare di fare o puoi trovare qualcosa di meglio?" e chiedo loro "ci sono problemi che nessun processo (algoritmo) può sperare di risolvere?" Sono stato sorpreso dal modo in cui le persone cercano di affrontare queste domande quando non hanno un background TCS.


1
E per la cronaca, ho avuto abbastanza fortuna in termini di avvicinare le persone a me un po 'interessate all'argomento.
Ross Snider,

1
Prima della fine effettiva dell'elenco telefonico, questo avrebbe potuto essere trasformato in una risposta di due frasi scattante. Esiste un esempio canonico di un elenco ordinato ad accesso casuale che tutti conoscono?
András Salamon,

Certo, András. L'indice di un libro. In alternativa, puoi ovviamente scegliere un nuovo mazzo di carte prima che sia mescolato, il che ovviamente ti lascerebbe andare a considerare il caso non ordinato.
Joe Fitzsimons,

@Joe: incontro regolarmente persone che non hanno usato libri di testo con indici. Forse se Harry Potter arrivasse con un indice ...
András Salamon,

@ András: Immagino di aver mangiato troppo spesso al college! Sicuramente quasi tutti i libri di scuola li hanno.
Joe Fitzsimons,

21

Mi piace questo post di Scott Aaronson , che spiega la teoria della complessità come teologia quantitativa. Ecco un estratto:

La teoria della complessità computazionale non riguarda davvero i computer. I computer svolgono lo stesso ruolo nella complessità di orologi, treni e ascensori nella relatività. Sono un ottimo modo per illustrare il punto, probabilmente erano essenziali per scoprire il punto, ma non sono il punto.

La migliore definizione della teoria della complessità che mi viene in mente è che si tratta di teologia quantitativa: lo studio matematico di ipotetici esseri superintelligenti come gli dei. Le sue preoccupazioni includono:

  • Se esistessero un dio o dei, come potevano rivelarsi ai mortali? (IP = PSPACE o MIP = NEXP nel caso politeistico.)

  • Quali dei sono più potenti di quali altri dei? (P NP vs. PP, SZK vs. QMA, BQP NP vs. NP BQP , ecc. Ecc.)

  • Un dio munifico potrebbe scegliere di concedere la sua onniscienza a un mortale? (EXP vs. P / poly.)

  • Ci si può fidare degli oracoli? (Ci si può fidare degli oracoli?)

Ed ovviamente:

  • I mortali potrebbero mai diventare simili a Dio? (P vs. NP, BQP vs. NP.)

può esserci un solo Dio, supponendo che il multiplo degli dei sia logicamente incoerente perché molti dei avranno livelli diversi di attributi che contraddicono il principio di un dio supremo (un dio che è più potente di un altro dio è sciocco)
Mohammad Al-Turkistany,

1
@Williams, il mio punto è che il laico si confonderà con queste analogie .
Mohammad Al-Turkistany,

10
anche se non dovrei davvero, dovrei sottolineare che più divinità sono incoerenti solo alla luce del fatto che le proprietà simili a Dio formano un ordine totale. Se formano un ordine parziale, allora è perfettamente bene avere più divinità. (scusa, Ryan)
Suresh Venkat,

@Suresh, stai insinuando che potrebbero esserci due dei che non possiamo dire chi è più potente? La relazione binaria qui è l'ordine totale. (scusa, Ryan)
Mohammad Al-Turkistany,

18

Una risposta di esempio, che può sicuramente essere migliorata:

Gli informatici teorici studiano il calcolo in termini matematici. Possono riparare il tuo computer e matematici possono calcolare le tue tasse.


20
Sfortunatamente, la maggior parte delle persone che conosco pensano che i matematici sarebbero esattamente bravi a calcolare le tasse ...
Lev Reyzin

11
Questo mi ricorda la famosa citazione di Dijkstra: "L'informatica non riguarda più i computer di quanto l'astronomia riguardi i telescopi".
Vinayak Pathak,

2
Lez - Queste persone dovrebbero essere informate del Primo Grothendiek.
Vinayak Pathak,

13
Eccone un altro, tratto da jondoda su Twitter: "Chiedere a un informatico il supporto tecnico è come chiedere a un botanico di falciare il prato". Questo si sta riscaldando ...
Ryan Williams,

4
Ryan, essendo il corollario che entrambi possono facilmente svolgere il compito ma risentirsi se gli viene chiesto?
Joe Fitzsimons,

16

Penso che Dijkstra abbia fornito un'eccellente (non) risposta in questo senso (sempre una buona fonte a cui rivolgersi per le dichiarazioni crude e assolutiste :)).

L'informatica non riguarda più i computer di quanto l'astronomia riguardi i telescopi. - EW Dijkstra


11

Mi piace molto l'introduzione al problema del partizionamento data da Brian Hayes qui .

Usa il problema di suddividere un gruppo di bambini in gruppi di pari capacità totale (supponendo che tu possa quantificare l'abilità di ogni bambino usando un numero), e spiega anche l'algoritmo avido solitamente usato dai bambini per risolvere questo problema.

È un problema molto semplice da capire, è facile capire l'algoritmo, sorprendente che sia (molto probabilmente) molto difficile in generale e imbarazzante che non siamo ancora in grado di dimostrare l'ultimo bit.


Questo è davvero buono. In qualche modo non l'ho notato qui prima.
Ryan Williams,

Mi è piaciuto l'articolo!
Arnab,

8

Di solito rispondo con qualcosa del genere: cerco di capire cosa è possibile fare con un computer. Non è completamente accurato ma è abbastanza vicino, e di solito le persone chiedono qualcosa del tipo "Che cosa vuoi dire?" e posso fare riferimento a qualcosa di specifico, come TSP. Anche se riformulo il commesso viaggiatore come, per esempio, il problema del bar-hopping, il problema degli agenti immobiliari, il problema delle troppe commissioni, del non abbastanza tempo, o qualunque cosa sembri appropriata.

Ad esempio: "Bene, diciamo che è necessario acquistare scarpe, generi alimentari e vestiti, prendere una torta, tagliarsi i capelli ed eseguire altre commissioni prima di cena. Sarebbe bello se tu potessi mettere tutta quella roba nel tuo GPS e potrebbe dirti in quale ordine fare tutte le tue commissioni da fare entro le 4. Ma se l'elenco delle commissioni è abbastanza lungo, non è nemmeno possibile, in questo momento, capire se tu possono farli fatto da 4 a tutti , e tanto meno che ordine che devi fare loro in, in qualsiasi quantità di tempo ragionevole. voglio sapere se è possibile risolvere rapidamente il problema con un computer."


Fantastico, penso che sia il tipo di risposta che darebbe il via a una conversazione interessante!
András Salamon,

7

Quali sono i modi migliori per risolvere i problemi e quali problemi sono troppo difficili da risolvere? C'è una parola nelle lingue europee, incluso l'inglese! - "informatica". La scienza dell'informazione. Negli Stati Uniti, chiamiamo questa informatica teorica, a causa della forte industria informatica qui, ma pensiamo alla risoluzione dei problemi senza computer per un minuto. Considera il corpo umano. Risolve i problemi in modo quasi miracoloso. La luce entra nei nostri occhi e possiamo vedere le cose che riconosciamo . Il suono arriva nelle nostre orecchie e sentiamo parole che capiamo . Questi sono problemi di informazione che risolviamo facilmente, migliaia di volte al giorno, con i quali i migliori computer del mondo continuano a lottare.

Ci sono voluti milioni di anni di evoluzione per risolvere quei problemi, usando una strategia di tentativi ed errori e uccidendo gli sfortunati. Immagina cosa potremmo realizzare se avessimo adottato un approccio più razionale e investito la stessa creatività umana in questa nuova scienza di risoluzione dei problemi quanti ne abbiamo investiti in geometria, teologia o calcolo. Quello che faccio è una piccola parte di quell'investimento.


In risposta alla domanda del laico, "Che cosa fai?" Ho spesso risposto: "Trascorro molto tempo a guardare nello spazio, a capire come rendere reale la fantascienza". Quindi faccio un esempio specifico di un progetto, spiegato in un paio di frasi.


1
La maggior parte delle persone che conosco penserebbero che qualcuno che cercava di rendere reale la fantascienza fosse un fisico. Come si fa a distinguere?
András Salamon,

2
Mi piace che se uno scienziato sperimentale dovesse costruire qualcosa ho pensato su. Perché deve esserci un modo per distinguere? Ma per rispondere comunque: penso ai computer microscopici, mentre i fisici pensano alle proprietà della materia. C'è una differenza? Dipende da cosa ti interessa e da cosa enfatizzi.
Aaron Sterling,

Mi sembra che questo spieghi cos'è l'informatica, ma non cos'è l'informatica teorica.
Zsbán Ambrus,

6

L'informatica teorica è per l'informatica ciò che la matematica era per la fisica.


2
perché "era"?
Suresh Venkat,

1
Ricordo di aver sentito qualcosa del tipo: "CS alla logica / combinatoria (TCS) è come la fisica alla geometria".
Kaveh,

3
Suresh, penso che Andrej stia affermando questo: in passato lo studio della fisica ha generato una grande parte dei problemi studiati dai matematici, ma questa frazione è diminuita nel corso degli anni (ora la matematica è molto più ampia). Non ho abbastanza informazioni sulla storia della matematica per dire con certezza che questo è vero, ma quello che so è in linea con esso.
Ryan Williams,

1
Non penso che questa analogia funzioni, perché anche i laici non conoscono la matematica e la fisica.
Zsbán Ambrus,

5

Di solito do la seguente risposta, sebbene focalizzata sulla teoria della complessità: "Studio i limiti, in termini di spazio e tempo, per risolvere un problema. I problemi includono, trovare il percorso più breve su una mappa o vincere una partita a scacchi".


5

Di solito do il problema del factoring come esempio; Per prima cosa chiedo il numero che divide 15; di solito le persone possono rispondere a 3, 5 e divertirsi chiedendosi se 1 e 15 sono la risposta corretta. Quindi do un numero enorme (più di 10 cifre) e chiedo se possono dirmi quali sono i divisori; e spiego che, anche per gli informatici, questa è una domanda davvero difficile.

Quindi, se ho tempo, provo a spiegare che la domanda è o capire come risolvere questo problema o provare che ci vorrà sempre molto tempo (un concetto che sappiamo esattamente come definire). E poi una piccola parola di crittografia, per spiegare perché viene utilizzata e una parola su quante volte ci vuole un team di scienziati per rompere la chiave del numero con centinaia di cifre (evito di parlare di bit perché la gente sembra conoscere meglio che cifra è)


5

La domanda posta è davvero difficile poiché la maggior parte delle persone non ha idea di cosa facciano gli informatici in generale. Questo è molto diverso dalle altre discipline.

Mi piace usare la seguente analogia: (T) CS è per i computer ciò che la fisica è per i lettori CD (cioè il laser). In realtà funziona abbastanza bene perché la maggior parte delle persone ha un'idea di ciò che un fisico affronta, che sia corretto o no.

Esempi più specifici includono quelle a cui la maggior parte delle persone può fare riferimento

  • String Matching (approccio ingenuo lento vs esperienza quotidiana di ricerca veloce in Word, Browser, ...)
  • Problema percorso più breve (utilizzato nei sistemi di navigazione)
  • Pianificazione (a seconda del grado di seccatura dell'altro, fare riferimento a processi aziendali o pianificazione sulla CPU)

Spiegherei quindi che mentre le persone PCS si accorgono di un'implementazione rapida o di una buona integrazione in sistemi complessi, le persone TCS si chiedono cosa sia possibile e provando cose che forniscono conoscenze / tecniche sicure e riutilizzabili per PCS.

Puoi anche usare la frustrazione della gente per i computer ("Non fa quello che voglio!"). Puoi sottolineare che (T) CS si occupa di come esprimere le cose in un modo che i computer possono capire ed elaborare in modo efficiente (facendo riferimento a sintassi, semantica, strutture di dati, algoritmi).


4

Quando qualcuno ti pone una domanda, puoi rispondere direttamente o puoi dargli una procedura passo-passo da seguire e una prova che se i passaggi vengono seguiti accuratamente, la risposta verrà ottenuta entro un ragionevole lasso di tempo. Dato che i passaggi stessi non sono troppo complicati e possono essere eseguiti rapidamente da un'entità in grado di esistere in questo universo, quali tipi di domande presentano tali procedure? Penso che questo sia il tema dell'informatica teorica.


1
L'unico problema è il parlare di cose esistenti nell'universo. Quel tipo lo rende fisica piuttosto che TCS. Dopotutto, l'universo è un oggetto finito e una grande porzione di TCS si occupa di assintotici.
Joe Fitzsimons,

Hmm, questo è un buon punto. Ma usiamo davvero gli asintotici perché vogliamo sapere come funzionerà il nostro algoritmo su dimensioni di input più grandi dell'universo o usiamo la notazione big-Oh solo per rendere i nostri calcoli approssimativamente indipendenti dal modello?
Vinayak Pathak,

Beh, certamente penso che cose come decidere la calcolabilità, ecc., Vivano a un livello più astratto.
Joe Fitzsimons,

4

La mia solita risposta, che non è scattante ma garantisce di fermare la conversazione (bonus!) È "come la teoria quantistica è il nucleo matematico della fisica, TCS è il nucleo matematico dell'informatica".


3
In realtà, la fisica teorica piuttosto che la meccanica quantistica è il TCS della fisica. Esistono molte altre teorie fisiche oltre alla meccanica quantistica (la relatività generale classica è l'esempio più ovvio).
Joe Fitzsimons,

L'obiettivo non è la precisione :)
Suresh Venkat,

Ma poi si può chiedere ancora: "Cos'è l'informatica?"
Vinayak Pathak,

4

Studiamo i limiti del calcolo. Quanto velocemente puoi risolvere un determinato problema computazionale? Quanto tempo è necessario per risolverlo, indipendentemente dalla soluzione che provi? Quindi do loro questi esempi (che sono facili da spiegare alla maggior parte dei laici - e in effetti molti laici hanno esperienza diretta con loro - dimostrano alcune proprietà dei problemi NP-completi e hanno effettivamente a che fare con il salvataggio di vite umane).

Ovviamente le persone (incluso me stesso) potrebbero smettere di aver ignorato altre importanti risorse come lo spazio, la casualità o persino la quantumness. Ma quando hai solo 2 minuti per dire a qualcuno di un intero campo, alcune cose vengono lasciate fuori.


4

Se vuoi dare uno sguardo bizzarro al passato, ricorda al tuo pubblico che "computer" faceva riferimento a una persona la cui professione era quella di calcolare le cose . (E se vuoi violare alcuni stereotipi di genere che potrebbero avere, puoi sottolineare che spesso si trattava anche di donne.)

È quindi possibile ottenere una manciata di cose contemporaneamente:

  • argomentare in modo convincente che "l'informatica" può essere qualcosa che va oltre lo studio dei "computer";
  • sottolineare che le persone che lavorano nel campo dell'informatica hanno bisogno di alcune regole per svolgere il loro compito (specialmente in una stanza piena di "computer" che svolgono compiti specialistici - complessità della comunicazione e parallelizzazione, chiunque?), e questo è altrettanto vero per le macchine;
  • descrivere che "informatica" riguarda la ricerca di modi efficaci per risolvere i problemi che implicano "informatica" in questo senso;
  • metti in evidenza che ciò che sta esattamente facendo l'informatica non è importante quanto le risorse di cui hanno bisogno (come il tempo e lo spazio di lavoro).

4

Comincio sempre indicandoli verso alcuni video o articoli creativi, intenzionalmente irriverenti che spiegano un concetto tecnico a livello intuitivo. Ecco un buon esempio: Scarabocchiare in matematica: spirali, fibonacci ed essere una pianta

Una volta compreso il concetto (e si spera che si sia divertito un po 'con esso), provo a generalizzare ciò che hanno imparato su qualcosa riguardo TCS. Ad esempio, il video sopra potrebbe portare a una spiegazione di base degli algoritmi o del calcolo come processo ricorsivo - "qualcosa che genera una struttura complessa da poche e semplici regole". Le persone TCS, quindi, studiano solo quali tipi di regole producono quali tipi di struttura!

Da lì, è generalmente abbastanza facile passare dal TCS generale alla cosa specifica del dominio che fai. :)


2

Seguendo il suggerimento di Ross Snider, di iniziare con un esempio specifico, si può anche spiegare direttamente la domanda P vs NP. Si può descrivere questa domanda a un laico nel capire se verificare una soluzione sia molto più semplice che trovarne effettivamente una, oppure è vero che ogni volta che possiamo verificare una soluzione, possiamo trovarla anche?


2

Ecco il mio:

L'informatica non è solo scienza, c'è molta ingegneria in essa, ma la parte scientifica riguarda la comprensione del calcolo. E un calcolo è un processo fisico che genera informazioni in modo ordinato. In informatica teorica, riteniamo di aver bisogno di matematica relativamente sofisticata per comprendere il calcolo.

Conduce piacevolmente a parlare di calcolo in biologia, il ruolo della logica nell'informatica, ecc.


2

Forse si potrebbe dire questo

uno scienziato teorico studia problemi davvero difficili legati all'informatica.

Lo scienziato non userà un computer mentre è creativo, ma piuttosto pensa molto, scarabocchia formule e stravaganti disegni su carta e ogni tanto gironzola. Quindi l'immediata praticabilità non è la cosa più importante, è più come un artista che esplora e cerca di dare un senso ai misteri di questo mondo.

Quindi si potrebbero menzionare cose che si basano su alcune soluzioni eleganti di teorici, come il computer, Internet, i motori di ricerca, il banking sicuro, i film in 3D, il sequenziamento del DNA, ecc. Ma si dovrebbe sempre sottolineare che nessuno conosce ancora le applicazioni della ricerca di oggi, alcuni di questi possono essere visti per la prima volta in diversi decenni.

Dalla mia esperienza, molte persone hanno un momento AHA in cui si rendono conto che l'informatica e la teoria in particolare sono così ricche di domande e problemi interessanti da studiare. Molti dei quali possono essere descritti ad alto livello! Questa è una lista del Prof. Wikipedia (tramite SIGACT), scegli i tuoi preferiti: algoritmi, strutture dati, teoria della complessità computazionale, calcolo distribuito, calcolo parallelo, VLSI, machine learning, biologia computazionale, geometria computazionale, teoria dell'informazione, crittografia, calcolo quantistico , teoria dei numeri computazionale e algebra, semantica e verifica dei programmi, teoria degli automi e studio della casualità.


0

Che cosa fa un informatico teorico, in termini che possono essere compresi da persone che non sono informatici?

Praticamente uguale a un tecnico di riparazione videoregistratore. Entrambi considerano come ottenere le migliori prestazioni dalle macchine che leggono e scrivono informazioni su pezzi di nastro estremamente lunghi.

Questo potrebbe essere un po 'più di lingua nella guancia di quello che stavi cercando ...


Avrebbe sicuramente continuato la conversazione!
András Salamon,

11
Oh bene. Puoi dirmi come far smettere di lampeggiare l'orologio 12:00?
Jeffε

1
Certamente, faccio pagare il solito tasso sindacale.
András Salamon,

So che questa era una piccola lingua sulla guancia, ma notando i voti negativi, lo rimuoverò felicemente se qualcuno ha un problema serio con esso.
Joe Fitzsimons,

1
Nessun problema! Ero preoccupato che alcuni teorici della CS o alcuni riparatori del videoregistratore si fossero offesi.
Joe Fitzsimons,
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.