Descripción de la mesa de la cena de la informática teórica?

51

A menudo me preguntan qué hace un informático teórico. Sería genial tener algunas buenas respuestas a esta pregunta. Tiendo a recurrir a la jerga técnica y los ojos de las personas generalmente se vuelven vidriosos en este punto.

¿Qué hace un informático teórico, en términos que pueden ser entendidos por personas que no son informáticos?

Una buena respuesta debe ser ágil, precisa en espíritu, sin sonar vaga o trillada. Para obtener puntos de bonificación, la respuesta debe indicar por qué un informático teórico no es matemático ni profesional de TI.

Esta pregunta está inspirada en la pregunta MO https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious-mathematics aunque la intención es diferente.

András Salamon
fuente

Respuestas:

34

En general, mi respuesta es: "Estudio por qué algunos cálculos son difíciles de hacer". Como ejemplo, típicamente comparo la suma y la multiplicación usando los métodos estándar de la escuela primaria. Estos son cálculos que todos han hecho y que todos aprecian el valor de hacerlo rápidamente. Todos están de acuerdo en que para grandes números, la multiplicación es mucho más difícil que la suma. De hecho, la mayoría de la gente sugiere que el método de la escuela primaria es lo más rápido posible. Entonces les pregunto por qué. ¿Cómo saben que no hay otra forma de multiplicar que sea tan fácil como la suma?

Casi todo el mundo tiene al menos algo de aprecio en este punto por la dificultad de probar límites más bajos (mi interés particular), a pesar de que no he usado ese término. Dependiendo de los antecedentes y el interés de la audiencia, puedo mencionar que alguien ha encontrado una manera de multiplicar que es mucho más rápido que el método de la escuela primaria (simplemente la palabra "algoritmo" tiende a ponerles un brillo), pero aún más lento que agregar.

Aubrey da Cunha
fuente
8
Me gusta que su ejemplo use la suma y la multiplicación como ejemplos. Parece que de alguna manera esto sería aún menos intimidante para un laico que ordenar o buscar.
Lev Reyzin
Esta es una manera realmente agradable de llegar rápidamente al meollo del asunto, ¡gracias!
András Salamon
3
He dado el mismo ejemplo :) La reacción que he visto es que la gente entra en la negación, casi enojándose conmigo: "¿qué quieres decir con que no sabemos si la multiplicación es más difícil que la suma? Por supuesto que lo eres ... ¿eres tú? jugando juegos conmigo?
Sasho Nikolov
Realmente me gusta esta respuesta, ¡pero no es lo que hago! Trabajo en un campo completamente diferente, a saber, la teoría del tipo dependiente. ¿Debo explicar "teoría A" versus "teoría B"?
cody
39

Le doy a la gente un ejemplo concreto. Específicamente, suelo motivar la teoría de la complejidad con el mismo problema muy ilustrativo (pero simple). Le pregunto a mi audiencia cómo le dirían a un niño pequeño que descubra si su nombre está en una lista de nombres ordenados alfabéticamente (y les digo que al niño le toma 3 segundos comparar un nombre con otro). A menudo se da el caso de que la persona / grupo presentará un enfoque ingenuo y lineal. Obligo a la conversación a recurrir al algoritmo logarítmico (podría usar una palabra diferente a logaritmo) ya sea pidiéndole a la persona algo mejor o mencionándolo yo mismo. Les muestro cómo duplicar el tamaño de la lista solo agrega tres segundos de trabajo para el niño con este nuevo enfoque. Y comparo esto directamente con la versión lineal, que ahora parecerá completamente tonta.

Por supuesto, lo traigo de vuelta a la tierra. Les digo que el niño en cuestión es generalmente una computadora, pero que podría ser un niño o realmente cualquier persona en general. Que las preguntas que hacemos no son realmente sobre computadoras, sino más bien sobre la cantidad de espacio, tiempo e información que necesita para resolver problemas. Y motivé el análisis de complejidad por analogía a los dos métodos diferentes para resolver el mismo problema.

Cuando llamo su atención, saco a relucir a los grandes bateadores. Les pregunto "¿pueden probar que la solución logarítmica es la mejor que pueden esperar hacer o pueden encontrar algo mejor?" y les pregunto "¿hay problemas que ningún proceso (algoritmo) pueda resolver?" Me sorprendió la forma en que las personas intentan abordar estas preguntas cuando no tienen antecedentes de TCS.

Ross Snider
fuente
1
Y para que conste, he tenido bastante buena suerte en términos de atraer a personas cercanas a mí algo interesadas en el tema.
Ross Snider
1
Antes de la desaparición efectiva del directorio telefónico, esto podría haberse convertido en una respuesta rápida de dos oraciones. ¿Existe un ejemplo canónico de una lista ordenada de acceso aleatorio que todos conozcan?
András Salamon
Claro, András. El índice de un libro. Alternativamente, podría, por supuesto, optar por un nuevo paquete de cartas antes de que se haya barajado, lo que, por supuesto, le permitiría considerar el caso desordenado.
Joe Fitzsimons
@ Joe: Me encuentro regularmente con personas que no han usado libros de texto con índices. Quizás si Harry Potter viniera con un índice ...
András Salamon
@ András: ¡Creo que he estado comiendo en la universidad con demasiada frecuencia! Seguramente casi todos los libros escolares los tienen.
Joe Fitzsimons
21

Me gusta esta publicación de Scott Aaronson , que explica la teoría de la complejidad como teología cuantitativa. Aquí hay un extracto:

La teoría de la complejidad computacional no se trata realmente, realmente, de las computadoras. Las computadoras juegan el mismo papel en la complejidad que los relojes, trenes y ascensores juegan en la relatividad. Son una excelente manera de ilustrar el punto, probablemente fueron esenciales para descubrir el punto, pero no son el punto.

La mejor definición de la teoría de la complejidad que se me ocurre es que es la teología cuantitativa: el estudio matemático de seres hipotéticos superinteligentes como los dioses. Sus preocupaciones incluyen:

  • Si existiera un Dios o dioses, ¿cómo podrían revelarse a los mortales? (IP = PSPACE o MIP = NEXP en el caso politeísta).

  • ¿Qué dioses son más poderosos que otros dioses? (P NP vs. PP, SZK vs. QMA, BQP NP vs. NP BQP , etc. etc.)

  • ¿Podría un Dios generoso elegir otorgar Su omnisciencia a un mortal? (EXP vs. P / poli.)

  • ¿Se puede confiar en los oráculos? (¿Se puede confiar en los oráculos?)

Y por supuesto:

  • ¿Podrían los mortales llegar a ser divinos? (P vs. NP, BQP vs. NP.)
Robin Kothari
fuente
puede haber un solo Dios, suponiendo que múltiples Dioses sean lógicamente inconsistentes porque múltiples Dioses tendrán diferentes niveles de atributos que contradicen el principio de un Dios supremo (un Dios más poderoso que otros Dioses es tonto)
Mohammad Al-Turkistany
1
@Williams, mi punto es que el laico se confundirá con estas analogías .
Mohammad Al-Turkistany
10
aunque realmente no debería, debo señalar que múltiples dioses son inconsistentes solo bajo el punto de vista de que las propiedades similares a Dios forman un orden total. Si forman un orden parcial, entonces está perfectamente bien tener múltiples Dioses. (lo siento, Ryan)
Suresh Venkat
@Suresh, ¿Estás insinuando que podría haber dos dioses que no podemos decir quién es más poderoso? La relación binaria aquí es el orden total. (lo siento, Ryan)
Mohammad Al-Turkistany
18

Un ejemplo de respuesta, que definitivamente se puede mejorar:

Los informáticos teóricos estudian la computación en términos matemáticos. Pueden reparar su computadora y los matemáticos pueden calcular sus impuestos.

András Salamon
fuente
20
Desafortunadamente, la mayoría de las personas que conozco piensan que los matemáticos serían precisamente buenos para calcular los impuestos ...
Lev Reyzin
11
Esto me recuerda la famosa cita de Dijkstra: "La informática no se trata más de computadoras que la astronomía de telescopios".
Vinayak Pathak
2
Lez: a esas personas se les debe contar sobre el Grothendiek Prime.
Vinayak Pathak
13
Aquí hay otro, extraído de Jondoda en Twitter: "Pedirle ayuda técnica a un científico de la computación es como pedirle a un botánico que corte el césped". Este se está calentando ...
Ryan Williams
44
Ryan, ¿el corolario es que ambos pueden cumplir fácilmente la tarea pero resienten que se les pregunte?
Joe Fitzsimons
16

Creo que Dijkstra dio una excelente (no) respuesta en este sentido (siempre es una buena fuente a la que recurrir para pronunciamientos crujientes y absolutistas :)).

La informática no tiene más que ver con las computadoras que la astronomía con los telescopios. - EW Dijkstra

Suresh Venkat
fuente
11

Realmente me gusta la introducción al problema de Particionamiento dada por Brian Hayes aquí .

Él usa el problema de dividir un conjunto de niños en equipos de igual habilidad total (suponiendo que pueda cuantificar la habilidad de cada niño que usa un número), y también explica el algoritmo codicioso que los niños suelen usar para resolver este problema.

Es un problema muy simple de entender, es fácil entender el algoritmo, sorprende que sea (muy probablemente) muy difícil en general y vergonzoso que aún no podamos probar el último bit.

Alex ten Brink
fuente
Éste es uno realmente bueno. De alguna manera no lo noté aquí antes.
Ryan Williams el
Me encantó el artículo!
arnab
8

Por lo general, respondo con algo como: trato de averiguar qué es posible hacer con una computadora. No es completamente exacto, pero está bastante cerca, y generalmente la gente pregunta algo como "¿Qué quieres decir?" y puedo hacer referencia a algo específico, como TSP. Aunque reformulo el vendedor ambulante como, por ejemplo, el problema de ir a la barra, el problema del agente de bienes raíces, el problema de demasiadas diligencias, no hay suficiente tiempo, o lo que parezca apropiado.

Por ejemplo: "Bueno, digamos que necesita comprar zapatos, comestibles y ropa, recoger un pastel, cortarse el pelo y hacer otros recados antes de la cena. Sería genial si pudiera poner todo eso en su GPS y podría decirle en qué orden debe hacer todos sus recados antes de las 4. Pero si la lista de recados es lo suficientemente larga, ni siquiera es posible, en este momento, averiguar si pueden conseguir que se hagan por 4 en absoluto , y mucho menos lo que pide lo que necesita hacer en ellos, en cualquier cantidad razonable de tiempo. Quiero saber si es posible resolver el problema rápidamente con un ordenador ".

filosodad
fuente
¡Genial, creo que ese es el tipo de respuesta que iniciaría una conversación interesante!
András Salamon
7

¿Cuáles son las mejores formas de resolver problemas y qué problemas son demasiado difíciles de resolver? Hay una palabra en los idiomas europeos, ¡incluido el inglés! - "informática". La ciencia de la información. En los Estados Unidos, llamamos a esto informática teórica, debido a la fuerte industria informática aquí, pero pensamos en resolver problemas sin computadoras por un minuto. Considera el cuerpo humano. Resuelve problemas de una manera casi milagrosa. La luz entra en nuestros ojos y podemos ver cosas que reconocemos . El sonido llega a nuestros oídos y escuchamos palabras que entendemos . Estos son problemas de información que resolvemos fácilmente, miles de veces al día, con los que las mejores computadoras del mundo todavía luchan.

Tomó el proceso de evolución millones de años resolver esos problemas, usando una estrategia de prueba y error, y matando a los desafortunados. Imagine lo que podríamos lograr si adoptamos un enfoque más racional e invertimos tanta creatividad humana en esta nueva ciencia de resolución de problemas como la que hemos invertido en geometría, teología o cálculo. Lo que hago es una pequeña parte de esa inversión.


En respuesta a la pregunta del laico, "¿Qué haces?" A menudo respondí: "Paso mucho tiempo mirando al espacio, descubriendo cómo hacer realidad la ciencia ficción". Luego doy un ejemplo específico de un proyecto, explicado en un par de oraciones.

Aaron Sterling
fuente
1
La mayoría de las personas que conozco pensarían que alguien que intenta hacer realidad la ciencia ficción es un físico. ¿Cómo se distingue?
András Salamon
2
Me encantaría que un científico experimental construyera algo que he pensado. ¿Por qué tiene que haber una manera de distinguir? Pero, para responder de todos modos: pienso en las computadoras microscópicas, mientras que los físicos piensan en las propiedades de la materia. ¿Hay una diferencia? Depende de lo que le interese y de lo que enfatice.
Aaron Sterling
Esto me parece que esto explica qué es la informática, pero no qué es la informática teórica.
Zsbán Ambrus
6

La informática teórica es para la informática lo que las matemáticas solían ser para la física.

Andrej Bauer
fuente
2
¿Por qué "solía ser"?
Suresh Venkat
1
Recuerdo haber escuchado algo como: "CS a lógica / combinatoria (TCS) es como física a geometría".
Kaveh
3
Claro, creo que Andrej afirma esto: solía ser que el estudio de la física generó una gran fracción de los problemas estudiados por los matemáticos, pero esta fracción ha disminuido con los años (ahora las matemáticas son mucho más amplias). No sé lo suficiente sobre la historia de las matemáticas para decir con certeza que esto es cierto, pero lo que sí sé está en línea con eso.
Ryan Williams
1
No creo que esta analogía funcione, porque los laicos tampoco saben de matemáticas y física.
Zsbán Ambrus
5

Generalmente doy la siguiente respuesta, aunque centrada en la teoría de la complejidad: "Estudio los límites, en términos de espacio y tiempo, para resolver un problema. Los problemas incluyen, encontrar el camino más corto en un mapa o ganar un juego de ajedrez".

Michaël Cadilhac
fuente
5

Por lo general, pongo el problema de factorización como ejemplo; Primero pido el número que divide 15; por lo general, las personas pueden responder 3, 5 y divertirse preguntándose si 1 y 15 son respuestas correctas. Luego doy un número enorme (más de 10 dígitos) y les pregunto si pueden decirme cuáles son los divisores; y explico que, incluso para los informáticos, esta es una pregunta realmente difícil.

Entonces, si tengo tiempo, trato de explicar que la pregunta es averiguar cómo resolver este problema o demostrar que siempre tomará mucho tiempo (una noción que sabemos exactamente cómo definir). Y luego una pequeña palabra de criptografía, para explicar por qué se usa, y una palabra sobre cuánto tiempo le toma al equipo de científicos romper la clave del número con cientos de dígitos (evito hablar de bits porque la gente parece saberlo mejor) qué es un dígito)

Arthur MILCHIOR
fuente
5

La pregunta planteada es realmente difícil ya que la mayoría de las personas no tienen idea de lo que hacen los científicos de la computación en general. Esto es muy diferente de otras disciplinas.

Me gusta usar la siguiente analogía: (T) CS es para computadoras lo que la física es para reproductores de CD (es decir, el láser). En realidad, esto funciona bastante bien porque la mayoría de las personas tienen una idea de lo que trata un físico, ya sea correcto o no.

Ejemplos más específicos incluyen aquellas cosas con las que la mayoría de las personas se pueden identificar

  • Coincidencia de cadenas (enfoque ingenuo lento frente a la experiencia diaria de búsqueda rápida en Word, navegador, ...)
  • Problema de ruta más corta (como se usa en los sistemas de navegación)
  • Programación (según el grado de nerdiness del otro, consulte los procesos comerciales o la programación en la CPU)

Luego explicaría que, si bien las personas con PCS se encargarían de una implementación rápida o una buena integración en sistemas complejos, las personas con TCS se preguntan qué es posible y prueban cosas que brindan conocimientos / técnicas seguras y reutilizables para que las use PCS.

También puede usar la frustración de la gente sobre las computadoras ("¡No hace lo que quiero!"). Puede señalar que (T) CS se ocupa de cómo expresar las cosas de una manera que las computadoras puedan entender y procesar de manera eficiente (refiriéndose a sintaxis, semántica, estructuras de datos, algoritmos).

Rafael
fuente
4

Cuando alguien le hace una pregunta, puede responderla directamente o puede darle un procedimiento paso a paso para que siga y una prueba de que si los pasos se siguen con precisión, la respuesta se obtendrá dentro de un período de tiempo razonable. Dado que los pasos en sí mismos no son demasiado complicados y pueden ser realizados rápidamente por una entidad capaz de existir en este universo, ¿qué tipo de preguntas exhiben tales procedimientos? Creo que este es el tema de la informática teórica.

Vinayak Pathak
fuente
1
El único problema es hablar de cosas que existen dentro del universo. Eso hace que sea física en lugar de TCS. Después de todo, el universo es un objeto finito, y una gran parte de TCS se ocupa de los asintóticos.
Joe Fitzsimons
Hmm, ese es un buen punto. Pero, ¿realmente usamos asintóticos porque queremos saber cómo funcionará nuestro algoritmo en tamaños de entrada que son más grandes que el universo o usamos la notación big-Oh solo para hacer que nuestros cálculos sean aproximadamente independientes del modelo?
Vinayak Pathak
Bueno, ciertamente creo que cosas como decidir la computabilidad, etc., viven en un nivel más abstracto.
Joe Fitzsimons
4

Mi respuesta habitual, que no es rápida pero garantiza que la conversación se detendrá (¡bono!) Es "como la teoría cuántica es el núcleo matemático de la física, TCS es el núcleo matemático de la informática".

Suresh Venkat
fuente
3
En realidad, la física teórica en lugar de la mecánica cuántica es el TCS de la física. Hay muchas otras teorías físicas además de la mecánica cuántica (la relatividad general clásica es el ejemplo más obvio).
Joe Fitzsimons
El objetivo no es la precisión :)
Suresh Venkat
Pero luego uno puede preguntar, "¿Qué es la informática?"
Vinayak Pathak
4

Estudiamos los límites de la computación. ¿Qué tan rápido puede resolver un determinado problema computacional? ¿Cuánto tiempo se requiere para resolverlo, sin importar qué solución intentes? Luego les doy estos ejemplos (que son fáciles de explicar a la mayoría de los laicos, y de hecho muchos laicos tienen experiencia directa con ellos, demuestran algunas propiedades de los problemas de NP completo y en realidad tienen que ver con salvar vidas).

Obviamente, las personas (incluyéndome a mí) podrían decir que he ignorado otros recursos importantes como el espacio, la aleatoriedad o incluso la cuantidad. Pero cuando solo tiene 2 minutos para contarle a alguien sobre un campo completo, algunas cosas se quedan fuera.

revs Joshua Grochow
fuente
4

Si desea dar una mirada caprichosa al pasado, recuerde a su audiencia que "computadora" solía referirse a una persona cuya profesión era calcular cosas . (Y si quiere violar algunos estereotipos de género que puedan tener, puede señalar que con frecuencia también eran mujeres).

Luego puede lograr un puñado de cosas a la vez:

  • haga un argumento convincente de que la "informática" puede ser algo más que estudiar "computadoras";
  • señale que las personas que computan necesitan algunas reglas para cumplir su tarea (especialmente en una sala llena de "computadoras" que realizan tareas especializadas: ¿complejidad de comunicación y paralelización, alguien?), y esto es tan cierto para las máquinas;
  • describa que la "informática" se trata de encontrar formas efectivas de resolver problemas relacionados con la "informática" en este sentido;
  • Ponga en claro que exactamente lo que está haciendo exactamente la informática no es tan importante como los recursos que necesitan (como el tiempo y el espacio temporal).
Niel de Beaudrap
fuente
4

Siempre empiezo apuntándolos hacia algún video o artículo creativo, intencionalmente irreverente que explique un concepto técnico a un nivel intuitivo. Aquí hay un buen ejemplo: Garabatos en matemáticas: espirales, Fibonacci y ser una planta

Una vez que entienden el concepto (y espero que se hayan divertido un poco con él), trato de generalizar lo que han aprendido sobre algo sobre TCS. Por ejemplo, el video anterior podría conducir a una explicación básica de los algoritmos o la computación como un proceso recursivo: "algo que genera una estructura compleja a partir de unas pocas reglas simples". ¡La gente de TCS, entonces, solo estudia qué tipos de reglas producen qué tipos de estructura!

A partir de ahí, generalmente es bastante fácil pasar de TCS general a lo específico de dominio que haces. :)

Daniel Apon
fuente
2

Siguiendo la sugerencia dada por Ross Snider, de comenzar con un ejemplo específico, también se puede explicar directamente la pregunta P vs NP. Uno puede describir esta pregunta a un laico como averiguar si verificar una solución es probablemente más fácil que encontrarla, o es cierto que siempre que podamos verificar una solución, también podemos encontrarla.

Vinayak Pathak
fuente
2

Aquí está el mío:

La informática no es solo ciencia, hay mucha ingeniería, sino que la parte científica se trata de comprender la computación. Y un cálculo es un proceso físico que genera información de manera ordenada. En informática teórica, creemos que necesitamos matemáticas relativamente sofisticadas para entender la computación.

Conduce muy bien a hablar sobre computación en biología, el papel de la lógica en informática, etc.

Charles Stewart
fuente
2

Tal vez se podría decir eso

un informático teórico estudia problemas realmente muy difíciles relacionados con la informática.

El científico no usará una computadora mientras sea creativo, sino que pensará mucho, garabateará fórmulas y dibujos extravagantes en papel y ocasionalmente deambulará. Por lo tanto, la practicabilidad inmediata no es lo más importante, es más como un artista explorando e intentando dar sentido a los misterios de este mundo.

Entonces uno podría mencionar cosas que dependen de algunas soluciones elegantes de teóricos, como la computadora, Internet, motores de búsqueda, banca segura, películas en 3D, secuenciación de ADN, etc. Pero siempre se debe enfatizar que nadie conoce las aplicaciones de la investigación de hoy, parte de esto se puede ver por primera vez en varias décadas.

Según mi experiencia, muchas personas tienen un momento AHA cuando se dan cuenta de que la informática, y la teoría en especial, es tan rica en preguntas y problemas interesantes para estudiar. ¡Muchos de los cuales se pueden describir en un alto nivel! Esta es una lista del Prof. Wikipedia (a través de SIGACT), elija sus favoritos: algoritmos, estructuras de datos, teoría de la complejidad computacional, computación distribuida, computación paralela, VLSI, aprendizaje automático, biología computacional, geometría computacional, teoría de la información, criptografía, computación cuántica , teoría computacional de números y álgebra, semántica y verificación de programas, teoría de autómatas y estudio de aleatoriedad.

Miguel
fuente
0

¿Qué hace un informático teórico, en términos que pueden ser entendidos por personas que no son informáticos?

Prácticamente lo mismo que un reparador de videograbadoras. Ambos consideran cómo obtener el mejor rendimiento de las máquinas que leen y escriben información en trozos de cinta extremadamente largos.

Esto puede ser un poco más de lengua en la mejilla de lo que buscabas ...

Joe Fitzsimons
fuente
¡Ciertamente mantendría la conversación!
András Salamon
11
Oh Dios. ¿Me puede decir cómo hacer que el reloj deje de parpadear a las 12:00?
Jeffε
1
Ciertamente, cobro la tarifa sindical habitual.
András Salamon
Sé que esto fue una pequeña lengua en la mejilla, pero al notar los votos negativos, felizmente lo eliminaré si alguien tiene un problema serio con él.
Joe Fitzsimons
1
¡No hay problema! Me preocupaba que algunos teóricos de CS o algunos reparadores de VCR pudieran haberse ofendido.
Joe Fitzsimons