Обеденный стол описания теоретической информатики?

51

Меня часто спрашивают, чем занимается теоретический компьютерщик. Было бы здорово получить хорошие ответы на этот вопрос. Я склонен прибегать к техническому жаргону, и в этот момент глаза людей обычно застекляются.

Что делает теоретический компьютерный ученый в терминах, которые могут понять люди, которые не являются компьютерными учеными?

Хороший ответ должен быть быстрым, точным по духу, не звучать расплывчато или банально. Для получения бонусных баллов ответ должен указывать на то, почему теоретик-компьютерщик не является ни математиком, ни практиком в области ИТ.

Этот вопрос вдохновлен вопросом МО https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious-matmatics, хотя цель иная.

Андраш Саламон
источник

Ответы:

34

Мой ответ, как правило, «я изучаю, почему некоторые вычисления трудно сделать». В качестве примера я обычно сравниваю сложение и умножение, используя стандартные методы начальной школы. Это вычисления, которые все сделали, и каждый ценит ценность быстрого выполнения. Все согласны с тем, что для больших чисел умножение намного сложнее, чем сложение. Фактически, большинство людей предполагают, что метод начальной школы настолько быстр, насколько вы можете. Тогда я спрашиваю их, почему. Откуда они знают, что нет другого способа сделать умножение, столь же простое, как сложение?

Практически каждый имеет хоть какую-то признательность за трудность доказательства нижних границ (мой особый интерес), хотя я не использовал этот термин. В зависимости от предыстории и интереса аудитории, я могу упомянуть, что кто-то нашел способ умножения, который намного быстрее, чем метод начальной школы (просто слово «алгоритм» имеет тенденцию вызывать блики в их глазах), но все же медленнее чем добавление.

Обри да Кунья
источник
8
Мне нравится, что ваш пример использует сложение и умножение в качестве примеров. Кажется, что это как-то может быть даже менее пугающим для непрофессионала, чем сортировка или поиск.
Лев Рейзин
Это действительно хороший способ быстро понять суть дела, спасибо!
Андрас Саламон
3
Я привел тот же самый пример :) Реакция, которую я видел, - это то, что люди отрицают, почти злятся на меня: «что вы имеете в виду, мы не знаем, сложнее ли умножение, чем сложение? Конечно, это так… играть в игры со мной? "
Сашо Николов
Мне очень нравится этот ответ, но это не то, что я делаю! Я работаю в совершенно другой области, а именно в теории зависимых типов. Должен ли я объяснить «теорию А» против «теории Б»?
Коди
39

Я даю людям конкретный пример. В частности, я часто мотивирую теорию сложности одной и той же очень иллюстративной (но простой) проблемой. Я спрашиваю аудиторию о том, как они будут инструктировать маленького ребенка, чтобы выяснить, есть ли его имя в отсортированном по алфавиту списке имен (и сказать им, что ребенку требуется 3 секунды, чтобы сравнить одно имя с другим). Часто бывает, что человек / группа придумают наивный, линейный подход. Я заставляю разговор перейти к логарифмическому алгоритму (я мог бы использовать слово, отличное от логарифма), либо попросив человека о чем-то лучше, либо упомянув его сам. Я показываю им, что удвоение размера списка только добавляет три секунды работы для ребенка с этим новым подходом. И я сравниваю это непосредственно с линейной версией, которая теперь покажется совершенно глупой.

Конечно, я возвращаю это на землю. Я говорю им, что рассматриваемый ребенок - это, как правило, компьютер, но это может быть ребенок или кто-то вообще. То, что вопросы, которые мы задаем, на самом деле не о компьютерах, а о количестве места, времени и информации, необходимых для решения проблем. И я мотивирую анализ сложности по аналогии с двумя разными методами решения одной и той же проблемы.

Когда я привлек их внимание - я выявляю сильных нападающих. Я спрашиваю их: «Можете ли вы доказать, что логарифмическое решение - лучшее, на что вы можете надеяться, или вы можете найти что-то лучшее?» и я спрашиваю их: «Есть ли проблемы, которые ни один процесс (алгоритм) не может решить?» Я был удивлен тем, как люди пытаются решить эти вопросы, когда у них нет опыта в TCS.

Росс Снайдер
источник
1
И, к сведению, мне очень повезло с точки зрения того, что близкие мне люди немного заинтересовались этой темой.
Росс Снайдер
1
До фактического исчезновения телефонного справочника это можно было бы превратить в быстрый ответ из двух предложений. Есть ли канонический пример упорядоченного списка с произвольным доступом, о котором все знают?
Андрас Саламон
Конечно, Андраш. Указатель книги. С другой стороны, вы можете, конечно, пойти на новую колоду карт до того, как она будет перетасована, что, конечно, позволит вам продолжить рассмотрение неупорядоченного случая.
Джо Фитцзимонс
@Joe: я регулярно встречаю людей, которые не использовали учебники с индексами. Может быть, если Гарри Поттер пришел с индексом ...
Андрас Саламон
@ Андрас: Я думаю, я слишком часто ел в колледже! Конечно, почти во всех школьных учебниках они есть.
Джо Фицсимонс
21

Мне нравится этот пост Скотта Ааронсона , который объясняет теорию сложности как количественную теологию. Вот выдержка:

Теория сложности вычислений действительно, действительно, на самом деле не о компьютерах. Компьютеры играют ту же роль в сложности, что часы, поезда и лифты играют в теории относительности. Это отличный способ проиллюстрировать суть, возможно, они были необходимы для выяснения сути, но не в этом суть.

Лучшее определение теории сложности, которое я могу придумать, заключается в том, что это количественное богословие: математическое изучение гипотетических сверхразумных существ, таких как боги. Его проблемы включают в себя:

  • Если Бог или Боги существовали, как они могли открыть себя смертным? (IP = PSPACE или MIP = NEXP в политеистическом случае.)

  • Какие боги сильнее, чем другие боги? (P NP против NP , SZK против QMA, BQP NP против NP BQP и т. Д. И т. Д.)

  • Может ли благородный Бог решить даровать Своё всеведение смертному? (EXP против P / poly.)

  • Можно ли доверять оракулам? (Можно ли доверять оракулам?)

И конечно:

  • Могли ли смертные когда-нибудь стать богоподобными сами по себе? (P против NP, BQP против NP.)
Робин Котари
источник
может быть только один Бог, если предположить, что несколько Богов логически непоследовательны, потому что у нескольких Богов будут разные уровни атрибутов, что противоречит принципу Верховного Бога (один Бог могущественнее других Богов глуп)
Мухаммед Аль-Туркистани,
1
@ Уильямс, я хочу сказать, что непрофессионал запутается с этими аналогиями .
Мухаммед Аль-Туркистани
10
хотя я действительно не должен этого делать, я должен отметить, что множество богов противоречивы только при условии, что свойства, подобные богам, образуют общий порядок. Если они образуют частичный порядок, то прекрасно иметь несколько Богов. (извините, Райан)
Суреш Венкат
@Suresh, ты намекаешь на то, что может быть два бога, которые мы не можем сказать, кто сильнее? Бинарное отношение здесь - полный порядок. (извините, Райан)
Мухаммед Аль-Туркистани
18

Пример ответа, который определенно можно улучшить:

Теоретические информатики изучают вычисления в математических терминах. Они могут починить ваш компьютер, а математики могут рассчитать ваши налоги.

Андраш Саламон
источник
20
К сожалению, большинство людей, которых я знаю, думают, что математики были бы точно хороши в расчете налогов ...
Лев Рейзин
11
Это напоминает мне известную цитату Дейкстры: «Информатика не больше о компьютерах, чем астрономия о телескопах».
Винаяк Патхак
2
Лез - Этим людям нужно рассказать о Гротендике Прайме.
Винаяк Патхак
13
Вот еще один, извлеченный из jondoda в Твиттере: «Обращаться к специалисту по информатике за технической поддержкой - все равно, что попросить ботаника косить ваш газон». Этот становится теплее ...
Райан Уильямс
4
Райан, следствие того, что оба могут легко выполнить задачу, но возмущаться, когда их спрашивают?
Джо Фитцзимонс
16

Я думаю, что Дейкстра дал отличный (не) ответ на этот вопрос (всегда хороший источник для грубых и абсолютистских заявлений :)).

Информатика не больше о компьютерах, чем астрономия о телескопах. - EW Dijkstra

Суреш Венкат
источник
11

Мне действительно нравится введение в проблему Разделения, данное Брайаном Хейсом, данное здесь .

Он использует проблему разделения набора детей на команды с одинаковыми общими способностями (при условии, что вы можете количественно оценить способности каждого ребенка, используя число), а также объясняет жадный алгоритм, обычно используемый детьми для решения этой проблемы.

Это очень простая для понимания проблема, легко понять алгоритм, удивительно, что он (скорее всего) очень сложен в целом, и смущает, что мы все еще не можем доказать последний бит.

Алекс тен Бринк
источник
Это действительно хороший. Почему-то я не заметил этого здесь раньше.
Райан Уильямс
Очень понравилась статья!
Арнаб
8

Я обычно отвечаю чем-то вроде: я пытаюсь понять, что можно сделать с компьютером. Это не совсем точно, но довольно близко, и обычно люди спрашивают что-то вроде «Что вы имеете в виду?» и я могу сослаться на что-то конкретное, например, TSP. Хотя я перефразирую коммивояжера как, скажем, проблему скачкообразной перестройки, проблему агента по недвижимости, проблему «слишком много поручений, не хватает времени» или что-то, что кажется подходящим.

Например: «Ну, скажем, вам нужно купить обувь, продукты и одежду, подобрать торт, сделать стрижку и выполнить некоторые другие поручения перед обедом. Было бы здорово, если бы вы могли положить все эти вещи в ваш GPS, и он может сказать вам, какой заказ выполнить все ваши поручения, которые должны быть выполнены к 4 часам. Но если список поручений достаточно длинный, прямо сейчас, даже невозможно выяснить, если вы может заставить их сделать на 4 вообще , гораздо меньше , чем заказ вы должны сделать их в любом разумном количестве времени. Я хочу знать , если это возможно , чтобы решить эту проблему быстро с компьютером «.

philosodad
источник
Отлично, я думаю, что такой ответ положит начало интересному разговору!
Андрас Саламон
7

Каковы наилучшие способы решения проблем, и какие проблемы слишком трудно решить? Есть слово на европейских языках - включая английский! - «информатика». Наука информации. В США мы называем это теоретической информатикой из-за сильной компьютерной индустрии, но думаем о решении проблем без компьютеров на минуту. Рассмотрим человеческое тело. Это решает проблемы почти чудесным образом. Свет приходит в наши глаза, и мы можем видеть , что мы распознаем . Звук приходит в наши уши, и мы слышим слова, которые понимаем . Это информационные проблемы, которые мы легко решаем тысячи раз в день, с которыми все еще борются лучшие компьютеры в мире.

Процесс эволюции занял миллионы лет, чтобы решить эти проблемы, используя стратегию проб и ошибок, и убить несчастных. Представьте, чего мы могли бы достичь, если бы мы выбрали более рациональный подход и вложили столько человеческих творческих способностей в эту новую науку решения проблем, сколько мы вложили в геометрию, теологию или исчисление. То, что я делаю, является одной маленькой частью этих инвестиций.


В ответ на вопрос непрофессионала: «Что вы делаете?» Я часто отвечал: «Я провожу много времени, глядя в космос, выясняя, как сделать научную фантастику реальной». Затем я привожу конкретный пример проекта, объясненный в паре предложений.

Аарон Стерлинг
источник
1
Большинство людей, которых я знаю, думают, что кто-то, пытающийся сделать научную фантастику реальностью, был физиком. Как вы отличаете?
Андрас Саламон
2
Я был бы рад, если бы ученый-экспериментатор создал что-то, что я придумал. Почему должен быть способ различать? Но, в любом случае, отвечаю: я думаю о микроскопических компьютерах, а физики думают о свойствах материи. Есть ли разница? Зависит от того, что вы заботитесь, и что вы подчеркиваете.
Аарон Стерлинг
Для меня это звучит так, как будто объясняет, что такое информатика, но не теоретическая информатика.
Zsbán Ambrus
6

Теоретическая информатика для информатики - то же, что математика для физики.

Андрей Бауэр
источник
2
почему "раньше"?
Суреш Венкат
1
Я помню, что слышал что-то вроде: «CS для логики / комбинаторики (TCS) - это как физика для геометрии».
Каве
3
Суреш, я думаю, что Андрей утверждает это: раньше физика вызвала большую часть проблем, которые изучали математики, но эта доля уменьшилась за эти годы (сейчас математика намного шире). Я не достаточно об истории математики, чтобы сказать наверняка, что это правда, но то, что я знаю, соответствует этому.
Райан Уильямс
1
Я не думаю, что эта аналогия работает, потому что непрофессионалы также не знают о математике и физике.
Zsbán Ambrus
5

Я обычно даю следующий ответ, хотя и сосредоточенный на теории сложности: «Я изучаю границы в терминах пространства и времени для решения проблемы. Проблемы включают в себя поиск кратчайшего пути на карте или выигрыш в шахматы».

Михаэль Кадилхак
источник
5

Обычно я даю проблему факторинга в качестве примера; Сначала я спрашиваю число, которое делит 15; обычно люди могут ответить на 3, 5, и им интересно узнать, являются ли 1 и 15 правильным ответом. Затем я даю огромное число (более 10 цифр) и спрашиваю, могут ли они сказать мне, какие делители; и я объясняю, что даже для программиста это действительно сложный вопрос.

Затем, если у меня есть время, я пытаюсь объяснить, что вопрос состоит в том, чтобы либо выяснить, как решить эту проблему, либо доказать, что это всегда будет занимать много времени (понятие, которое мы точно знаем, как определить). И затем небольшое слово криптографии, чтобы объяснить, почему она используется, и слово о том, сколько времени понадобится команде ученых, чтобы взломать ключ числа с сотнями цифр (я избегаю говорить о битах, потому что люди, кажется, лучше знают что за цифра)

Артур МИЛКИОР
источник
5

Поставленный вопрос действительно сложный, так как большинство людей понятия не имеют, что вообще делают ученые. Это очень отличается от других дисциплин.

Мне нравится использовать следующую аналогию: (T) CS - для компьютеров, что физика для CD-плееров (т.е. лазера). Это на самом деле работает довольно хорошо, потому что большинство людей имеют представление о том, с чем физик имеет дело, правильно это или нет.

Более конкретные примеры включают те вещи, к которым может относиться большинство людей

  • Соответствие строк (медленный наивный подход против ежедневного опыта быстрого поиска в Word, браузере, ...)
  • Проблема кратчайшего пути (используется в навигационных системах)
  • Планирование (в зависимости от степени нервозности другого, относится к бизнес-процессам или планированию на процессоре)

Затем я бы объяснил, что, в то время как люди из PCS следят за быстрой реализацией или хорошей интеграцией в сложные системы, люди из TCS задаются вопросом о том, что возможно, и доказывают, что обеспечивает безопасные, многократно используемые знания / методы для использования PCS.

Вы также можете использовать разочарование людей по поводу компьютеров («Он не делает то, что я хочу!»). Вы можете указать, что (T) CS имеет дело с тем, как выразить вещи так, как компьютеры могут понимать и эффективно обрабатывать (ссылаясь на синтаксис, семантику, структуры данных, алгоритмы).

Рафаэль
источник
4

Когда кто-то задает вам вопрос, вы можете либо ответить на него напрямую, либо вы можете дать ему пошаговую процедуру, которую следует выполнить, и доказательство того, что если шаги будут выполнены точно, то ответ будет получен в течение разумного периода времени. Учитывая, что сами шаги не слишком сложны и могут быть быстро выполнены субъектом, способным существовать в этой вселенной, какие виды вопросов демонстрируют такие процедуры? Я думаю, что это предмет теоретической информатики.

Винаяк Патхак
источник
1
Единственная проблема - это разговоры о вещах, существующих во вселенной. Такого рода физика, а не TCS. В конце концов, вселенная - это конечный объект, и большая часть TCS имеет дело с асимптотикой.
Джо Фицсимонс
Хм, это хороший момент. Но действительно ли мы используем асимптотику, потому что мы хотим знать, как наш алгоритм будет работать на входных размерах, которые больше, чем у юниверса, или мы используем нотацию большого О, чтобы сделать наши расчеты примерно независимыми от модели?
Винаяк Патхак
Ну, я, конечно, думаю, что такие вещи, как решение вычислимости и т. Д., Живут на более абстрактном уровне.
Джо Фицсимонс
4

Мой обычный ответ, который не является быстрым, но гарантированно остановит разговор (бонус!): «Как квантовая теория - математическое ядро ​​физики, TCS - математическое ядро ​​информатики».

Суреш Венкат
источник
3
На самом деле теоретическая физика, а не квантовая механика, является ТКС физики. Существует множество других физических теорий, помимо квантовой механики (классическая общая теория относительности является наиболее очевидным примером).
Джо Фицсимонс
Цель не точность :)
Суреш Венкат
Но тогда можно еще спросить: «Что такое информатика?»
Винаяк Патхак
4

Мы изучаем границы вычислений. Как быстро вы можете решить определенную вычислительную проблему? Сколько времени требуется для ее решения, независимо от того, какое решение вы пытаетесь? Затем я привожу им эти примеры (которые легко объяснить большинству непрофессионалов - и, действительно, многие непрофессионалы имеют с ними непосредственный опыт - демонстрируют некоторые свойства NP-полных задач и фактически имеют отношение к спасению жизней).

Очевидно, что люди (в том числе и я) могут заметить, что я игнорировал другие важные ресурсы, такие как пространство, случайность или даже квантовость. Но когда у вас есть всего 2 минуты, чтобы рассказать кому-то о целой области, некоторые вещи не учитываются.

Джошуа Грохов
источник
4

Если вы хотите загадочно взглянуть в прошлое, напомните своей аудитории, что «компьютер» использовался для обозначения человека, чья профессия заключалась в том, чтобы вычислять вещи . (И если вы хотите нарушить некоторые гендерные стереотипы, которые у них могут быть, вы можете указать, что это также были и женщины).

Затем вы можете достичь нескольких вещей одновременно:

  • сделать убедительный аргумент, что «информатика» может быть чем-то большим, чем изучение «компьютеров»;
  • отметьте, что людям, занимающимся вычислениями, нужны некоторые правила для выполнения своей задачи (особенно в комнате, полной «компьютеров», выполняющих специализированные задачи - сложность связи и распараллеливание, кто-нибудь?), и это так же верно для машин;
  • опишите, что «информатика» - это поиск эффективных путей решения проблем, связанных с «вычислениями» в этом смысле;
  • Подчеркните, что именно то, что именно выполняет вычисления, не так важно, как ресурсы, которые им необходимы (например, время и пустое пространство).
Ниль де Бодрап
источник
4

Я всегда начинаю с того, что нацеливаю их на какое-то творческое, намеренно неуважительное видео или статью, объясняющую техническую концепцию на интуитивном уровне. Вот хороший пример: рисование в математике: спирали, Фибоначчи и быть растением

Как только они понимают концепцию (и, надеюсь, немного повеселились с ней), я пытаюсь обобщить то, что они узнали о TCS. Например, приведенное выше видео может привести к базовому объяснению алгоритмов или вычислений как рекурсивного процесса - «нечто, генерирующее сложную структуру из нескольких простых правил». Люди из TCS просто изучают, какие типы правил создают какие типы структур!

Оттуда, как правило, достаточно легко перейти от общего TCS к тому, что вы делаете для конкретного домена. :)

Даниэль Апон
источник
2

Следуя предложенному Россом Снайдером предложению начать с конкретного примера, можно также прямо объяснить вопрос «P против NP». Можно описать этот вопрос для непрофессионала как выясняющего, легче ли проверить решение, чем на самом деле, чем найти его, или это правда, что всякий раз, когда мы можем проверить решение, мы тоже можем его найти?

Винаяк Патхак
источник
2

Вот мой:

Информатика - это не просто наука, в ней много техники, а научная часть касается понимания вычислений. А вычисления - это физический процесс, который генерирует информацию упорядоченным образом. В теоретической информатике мы думаем, что нам нужна относительно сложная математика для понимания вычислений.

Это приводит к разговорам о вычислениях в биологии, роли логики в информатике и т. Д.

Чарльз Стюарт
источник
2

Может быть, можно сказать, что

теоретик-информатик изучает действительно очень сложные проблемы, связанные с информатикой.

Ученый не будет использовать компьютер, будучи креативным, а скорее думает, набрасывает формулы и изворотливые рисунки на бумаге, а иногда и бродит вокруг. Таким образом, непосредственная выполнимость не самая важная вещь, это больше похоже на художника, исследующего и пытающегося понять тайны этого мира.

Затем можно упомянуть вещи, которые опираются на некоторые изящные решения теоретиков, такие как компьютер, интернет, поисковые системы, безопасные банковские операции, 3D-фильмы, секвенирование ДНК и т. Д. Но следует всегда подчеркивать, что никто еще не знает приложений сегодняшних исследований, некоторые из них могут впервые появиться через несколько десятилетий.

По моему опыту, у многих людей наступает момент АНА, когда они понимают, что информатика и теория в особенности настолько богаты интересными вопросами и проблемами для изучения. Многие из которых можно описать на высоком уровне! Это список из проф. Википедии (через SIGACT), выберите ваши любимые: алгоритмы, структуры данных, теория сложности вычислений, распределенные вычисления, параллельные вычисления, СБИС, машинное обучение, вычислительная биология, вычислительная геометрия, теория информации, криптография, квантовые вычисления вычислительная теория чисел и алгебра, семантика и верификация программ, теория автоматов и исследование случайности.

Майкл
источник
0

Что делает теоретический компьютерный ученый в терминах, которые могут понять люди, которые не являются компьютерными учеными?

Почти так же, как ремонтник видеомагнитофона. Оба рассматривают, как добиться максимальной производительности от машин, которые читают и записывают информацию на чрезвычайно длинные куски ленты.

Это может быть немного больше языка в щеке, чем вы были после ...

Джо Фитцсимонс
источник
Это, безусловно, будет поддерживать разговор!
Андрас Саламон
11
О, хорошо. Можете ли вы сказать мне, как заставить часы перестать мигать 12:00?
Джефф
1
Конечно, я взимаю обычную профсоюзную ставку.
Андрас Саламон
Я знаю, что это был маленький язычок в щеку, но, заметив отрицательные голоса, я с удовольствием удалю его, если у кого-то возникнут серьезные проблемы с ним.
Джо Фитцсимонс
1
Нет проблем! Я волновался, что некоторые теоретики CS или ремонтники видеомагнитофонов могли обидеться.
Джо Фицсимонс