Опис обіднього столу теоретичної інформатики?


51

Мене часто запитують, чим займається теоретичний комп'ютер. Було б чудово відповісти на це питання. Я схильний повертатися до технічного жаргону, і очі людей зазвичай заглядають у цей момент.

Що робить теоретик-інформатик з точки зору, який можуть зрозуміти люди, які не є інформатиками?

Хороша відповідь повинна бути спритною, точною по духу, не звучати розпливчасто і банально. Щодо бонусних балів, відповідь повинна натякати, чому теоретик-теоретик не є ні математиком, ні ІТ-практиком.

Це питання натхнене запитанням МО https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious- mathematics, хоча інтенція інша.

Відповіді:


34

Моя відповідь, як правило, "я вивчаю, чому деякі обчислення важко зробити". Як приклад, я зазвичай порівнюю складання та множення, використовуючи стандартні шкільні методи. Це обчислення, які всі зробили і що всі цінують цінність швидко робити. Усі згодні, що для великої кількості множення набагато складніше, ніж додавання. Насправді більшість людей припускають, що метод початкової школи проходить так само швидко, як ви можете піти. Тоді я запитую їх, чому. Звідки вони знають, що не існує іншого способу множення, який так само простий, як додавання?

На сьогоднішній день майже всі вдячні за складність доведення нижчих меж (моя особлива зацікавленість), хоча я не використовував цей термін. Залежно від передумови та зацікавленості аудиторії, можу зазначити, що хтось знайшов спосіб розмножуватись набагато швидше, ніж метод початкової школи (просто слово «алгоритм», як правило, приносить глаз до їх очей), але все ж повільніше ніж додавання.


8
Мені подобається, що ваш приклад використовує додавання та множення як приклади. Здається, це якось було б навіть менш заляканим для непрофесіоналів, ніж сортування чи пошук.
Лев Рейзін

Це дійсно приємний спосіб швидко дістатися до суті справи, дякую!
Андрас Саламон

3
Я наводив той самий приклад :) Реакція, яку я бачив, - це люди, які заперечують, майже розлючуючись на мене: "Що ви маєте на увазі, що ми не знаємо, чи розмноження важче, ніж додавання? Звичайно, це ... грає зі мною в ігри? "
Сашо Ніколов

Мені дуже подобається ця відповідь, але це не те, що я роблю! Я працюю в зовсім іншій галузі, а саме теорії залежного типу. Чи слід пояснювати "теорією А" проти "теорією В"?
коді

39

Я даю людям конкретний приклад. Зокрема, я часто мотивую теорію складності тією ж дуже показовою (але простою) проблемою. Я запитую свою аудиторію, як вони доручать маленькій дитині дізнатися, чи є його ім’я в алфавітно відсортованому списку імен (і скажу їм, що дитині потрібно три секунди, щоб порівняти будь-яке ім’я з іншим). Часто буває так, що людина / група придумає наївний, лінійний підхід. Я змушую розмову звернутися до логарифмічного алгоритму (я можу використати інше слово, ніж логарифм) або попросивши людину чогось кращого, або сам згадуючи це. Я показую їм, як подвоєння розміру списку додає дитині лише три секунди роботи з цим новим підходом. І я порівнюю це безпосередньо з лінійною версією, яка тепер буде здаватися цілком дурною.

Звичайно, я повертаю це на землю. Я їм кажу, що дитина, про яку йдеться, - це, як правило, комп'ютер, але це може бути дитина чи взагалі хтось. Що запитання, які ми задаємо, насправді не стосуються комп’ютерів, а більше про кількість місця, часу та інформації, необхідної для вирішення проблем. І мотивую аналіз складності за аналогією двом різним методам вирішення однієї проблеми.

Коли я привернув їх увагу - я виводжу важких нападників. Я запитую їх: "чи можете ви довести, що логарифмічне рішення - найкраще, на що ви коли-небудь можете сподіватися, чи зможете знайти щось краще?" і я запитую їх "чи є проблеми, які жоден процес (алгоритм) не може сподіватися вирішити?" Я був здивований тим, як люди намагаються вирішувати ці питання, коли у них немає трас TCS.


1
І для запису, мені пощастило з точки зору наближення людей до мене дещо зацікавлених у цій темі.
Росс Снайдер

1
До ефективного припинення телефонного довідника це могло бути перетворене на швидку відповідь у двох реченнях. Чи є канонічний приклад упорядкованого списку з випадковим доступом, про який знають усі?
Андрас Саламон

Звичайно, Андраш. Покажчик книги. З іншого боку, ви, звичайно, можете попросити новий пакет карт до того, як його перетасують, що, звичайно, дозволить вам продовжити розгляд справи, що не має порядку.
Джо Фіцсімонс

@Joe: Я регулярно зустрічаю людей, які не користувалися підручниками з індексами. Можливо, якщо Гаррі Поттер прийшов з індексом ...
Андраш Саламон

@ András: Я думаю, я занадто часто їв у коледжі! Напевно майже всі шкільні книги мають їх.
Джо Фіцсімонс

21

Мені подобається цей пост Скотта Ааронсона , який пояснює теорію складності як кількісну теологію. Ось уривок:

Теорія складності обчислень насправді, насправді, насправді не стосується комп’ютерів. Комп'ютери відіграють ту саму роль у складності, що годинники, поїзди та ліфти відіграють у відносності. Вони - чудовий спосіб проілюструвати точку, вони, ймовірно, були важливими для відкриття точки, але вони не в цьому.

Найкраще визначення теорії складності, про яке я можу придумати, - це те, що це кількісна теологія: математичне вивчення гіпотетичних надінтелектуальних істот, таких як боги. Його проблеми включають:

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

  • Які боги могутніші, ніж інші боги? (P NP проти PP, SZK проти QMA, BQP NP проти NP BQP тощо) тощо)

  • Чи міг би божевільний Бог вирішити дарувати Своєму всезнанню смертному? (EXP проти P / poly.)

  • Чи можна довіряти оракулам? (Чи можна довіряти оракулам?)

І звичайно:

  • Чи могли смертні колись ставати богоподібними? (P проти NP, BQP проти NP.)

може бути тільки один Бог, Припускаючи кратна богів логічно непослідовним , так як кілька Gods матимуть різні рівні атрибутів , що суперечить принципу верховного Бога (Один Бог , будучи могутніше інших богів нерозумно).
Мухаммед аль-Turkistany

1
@Williams, моя думка полягає в тому, що лайперсон буде плутати ці аналогії .
Мохаммед Аль-Туркстані

10
хоча я справді не повинен, я мушу зазначити, що багато богів непослідовні лише за умови, що богоподібні властивості утворюють тотальний порядок. Якщо вони утворюють частковий порядок, тоді цілком чудово мати кілька богів. (вибачте, Райан)
Суреш Венкат

@ Суреш, ти маєш на увазі, що можуть бути два боги, яких ми не можемо сказати, хто могутніший? Бінарне відношення тут - тотальний порядок. (вибачте, Райан)
Мохаммед Аль-Туркстані

18

Приклад відповіді, який можна точно покращити:

Теоретичні комп’ютери вивчають обчислення в математичному плані. Вони можуть виправити ваш комп’ютер, а також математики можуть розрахувати ваші податки.


20
На жаль, більшість людей, яких я знаю, вважають, що саме математики були б хорошими в обчисленні податків ...
Лев Рейзін

11
Це нагадує мені відому цитату Дейкстри - "Інформатика - це не більше комп’ютерів, а астрономія - телескопи".
Vinayak Pathak

2
Лез - Цим людям слід розповісти про Гротендієка Прем'єр.
Vinayak Pathak

13
Ось ще один, витягнутий з jondoda у Twitter: "Просити вченого-комп’ютера про технічну підтримку - це як попросити ботаніка скосити ваш газон". У цьому стає тепліше ...
Райан Вільямс

4
Раян, наслідком є ​​те, що обидва можуть легко виконати завдання, але обурюються, коли їх задають?
Джо Фіцсімонс

16

Думаю, відмінний (не) відповідальність у цьому напрямку був наданий Дійкстра (завжди гарне джерело, щоб звернутися до користних і абсолютистських вимов :)).

Інформатика - це не більше комп’ютерів, а астрономія - телескопи. - EW Dijkstra


11

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

Він використовує проблему розподілу набору дітей на команди з однаковою сумарною здатністю (припускаючи, що можна кількісно визначити здатність кожної дитини, що використовує число), а також пояснює жадібний алгоритм, який зазвичай використовують діти для вирішення цієї проблеми.

Це дуже проста проблема для розуміння, алгоритм легко зрозуміти, дивно, що взагалі (найімовірніше) дуже важко і бентежно, що ми ще не в змозі довести останній біт.


Це справді добре. Якось я цього раніше тут не помічав.
Райан Вільямс

Подобалася стаття!
арнаб

8

Я зазвичай відповідаю чимось за принципом: Я намагаюся розібратися, що можна зробити з комп’ютером. Це не зовсім точно, але це досить близько, і зазвичай люди запитують щось на кшталт "Що ти маєш на увазі?" і я можу згадати щось конкретне, наприклад, TSP. Хоча я перефразовую подорожуючого продавця як, скажімо, проблему стрибків у стрибку, проблему агента з нерухомістю, проблему занадто багато запитань - недостатньо часу, або все, що здається доречним.

Наприклад: "Ну, скажімо, що вам потрібно робити покупки взуття, продуктів та одягу, підбирати торт, зачіску та виконувати деякі інші доручення перед обідом. Було б чудово, якби ви могли вмістити всі ці речі у ваш GPS, і це може сказати вам, що наказувати, щоб усі ваші доручення були виконані до 4 годин. Але якщо список доручень досить довгий, зараз навіть неможливо зрозуміти, чи є ви можна зробити їх взагалі на 4 , набагато менше, в якому порядку потрібно їх виконати за будь-яку розумну кількість часу. Я хочу знати, чи можна швидко вирішити цю проблему за допомогою комп’ютера ".


Чудово, я думаю, що така відповідь спричинила б цікаву розмову!
Андраш Саламон

7

Які найкращі способи вирішення проблем, а які проблеми занадто важко вирішити? Є слово в європейських мовах - включаючи англійську! - "інформатика". Наука інформації. У США ми називаємо цю теоретичну інформатику через сильну тут комп'ютерну індустрію, але думайте про вирішення проблем без комп’ютерів на хвилину. Розгляньте людський організм. Він вирішує проблеми майже чудодійним чином. Світло потрапляє нам в очі, і ми можемо бачити речі, які ми впізнаємо . Звук надходить у наші вуха, і ми чуємо слова, які ми розуміємо . Це інформаційні проблеми, які ми вирішуємо легко, тисячі разів на день, з якими все ще борються найкращі комп'ютери в світі.

Процес еволюції знадобився мільйони років, щоб вирішити ці проблеми, використовуючи стратегію спроб і помилок і вбивство нещасних. Уявіть, що ми могли б досягти, якби ми скористалися більш раціональним підходом і вклали стільки людської творчості в цю нову науку про вирішення проблем, скільки ми вклали в геометрію, теологію чи обчислення. Що я роблю, це одна невелика частина цих інвестицій.


У відповідь на запитання лайперсона "Що ти робиш?" Я часто відповідав: "Я провожу багато часу, дивлячись у космос, придумуючи, як зробити фантастику реальною". Тоді я наводжу конкретний приклад проекту, поясненого в пару реченнях.


1
Більшість людей, яких я знаю, могли б подумати, що хтось, хто намагається реалізувати наукову фантастику, був фізиком. Як ви розрізняєте?
Андраш Саламон

2
Мені б подобалося, якби експериментальний вчений будував щось, про що я придумав. Чому має бути спосіб розрізнити? Але, щоб відповісти все-таки: я думаю про мікроскопічні комп’ютери, тоді як фізики думають про властивості речовини. Чи є різниця? Залежить від того, що вас хвилює, і на чому ви наголосите.
Аарон Стерлінг

Мені це звучить так, як це пояснює, що таке інформатика, але не те, що теоретична інформатика.
Zsbán Ambrus

6

Теоретична інформатика - це інформатика, якою раніше була математика у фізиці.


2
чому "раніше"?
Суреш Венкат

1
Я пам’ятаю, що чув щось на кшталт: «CS до логіки / комбінаторики (TCS) - це як фізика до геометрії».
Каве

3
Суреш, я думаю, Андрій стверджує це: раніше було, що вивчення фізики породжувало велику частку проблем, які вивчали математики, але ця частка зменшилася з роками (зараз математика значно ширша). Мені недостатньо історії історії математики, щоб точно сказати, що це правда, але те, що я знаю, відповідає цьому.
Райан Вільямс

1
Я не думаю, що ця аналогія працює, тому що непрофесійні люди також не знають математики та фізики.
Зсбан Амбрус

5

Зазвичай я даю таку відповідь, хоч і зосереджена на теорії складності: "Я вивчаю межі в плані простору та часу, щоб вирішити проблему. До проблем відносяться пошук найкоротшого шляху на карті або виграти шахову гру".


5

Зазвичай я навожу проблему факторингу як приклад; Я спершу запитую число, яке ділиться на 15; Зазвичай люди можуть відповісти 3, 5 і весело цікавитись, чи правильно відповісти 1 і 15. Тоді я даю величезну кількість (більше 10 цифр) і запитую, чи можуть вони сказати мені, що таке дільники; і я пояснюю, що це навіть для комп'ютерного вченого.

Тоді, якщо в мене є час, я намагаюся пояснити, що питання полягає в тому, щоб розібратися, як вирішити цю проблему, або довести, що це завжди потребуватиме багато часу (поняття, яке ми точно знаємо, як визначити). А потім невелике слово криптографії, щоб пояснити, чому воно використовується, і слово про те, скільки часу потрібно команді вченого, щоб зламати ключ числа на сотні цифр (я уникаю говорити про біти, тому що люди, здається, краще знають що таке цифра)


5

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

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

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

  • Збіг рядків (повільний наївний підхід проти щоденного досвіду швидкого пошуку у Word, Browser, ...)
  • Найкоротша проблема шляху (як використовується в навігаційних системах)
  • Планування (залежно від ступеня нервовості, відношення до бізнес-процесів або планування на процесорі)

Тоді я б пояснив, що, хоча люди з ПКС доглядають за швидкою реалізацією чи хорошою інтеграцією у складні системи, люди з ТКС задаються питанням про те, що можливо, і доводять те, що забезпечує безпечні, багаторазові знання / методи для використання ПКС.

Ви також можете використовувати фрустрацію людей щодо комп’ютерів ("Це не робить те, що я хочу!"). Можна вказати, що (T) CS займається тим, як виразити речі таким чином, щоб комп'ютери могли зрозуміти та ефективно обробити (маючи на увазі синтаксис, семантику, структуру даних, алгоритми).


4

Коли хтось задає вам питання, ви можете або відповісти на нього безпосередньо, або ви зможете дати йому покрокову процедуру, яку слід виконувати, і доказ того, що якщо кроки будуть дотримані точно, то відповідь буде отримана протягом розумного часу. Зважаючи на те, що самі кроки не надто складні і їх може швидко здійснити суб'єкт, здатний існувати у цьому Всесвіті, які питання ставлять такі процедури? Я думаю, що це предмет теоретичної інформатики.


1
Єдине питання - це розмова про речі, що існують у Всесвіті. Цей вид робить це фізикою, а не ТКС. Зрештою, Всесвіт є кінцевим об'єктом, і значна частина TCS займається асимптотиками.
Джо Фіцсімонс

Хм, це хороший момент. Але чи справді ми використовуємо асимптотику, тому що хочемо знати, як працює наш алгоритм на розмірах вхідних даних, більших за всесвіт, чи ми використовуємо позначення великого О, лише для того, щоб зробити наші розрахунки приблизно незалежними?
Vinayak Pathak

Ну, я, звичайно, думаю, такі речі, як вирішення обчислень тощо, живуть на більш абстрактному рівні.
Джо Фіцсімонс

4

Моя звичайна відповідь, яка не є спритною, але гарантовано зупинить розмову мертвою (бонус!) - "як квантова теорія є математичним ядром фізики, TCS - математичним ядром інформатики".


3
Власне, теоретична фізика, а не квантова механіка, є ТКС фізики. Окрім квантової механіки існує маса інших фізичних теорій (найбільш очевидний приклад - класична загальна відносність).
Джо Фіцсімонс

Мета - не точність :)
Суреш Венкат

Але далі можна запитати: "Що таке інформатика?"
Vinayak Pathak

4

Вивчаємо межі обчислень. Як швидко ви можете вирішити певну обчислювальну задачу? Скільки часу потрібно для її вирішення, незалежно від того, яке рішення ви намагаєтеся? Тоді я наводжу їх цими прикладами (які легко пояснити більшості непрофесійних людей - і насправді багато людей не мають прямого досвіду роботи з ними - демонструють деякі властивості проблем, повних NP, і насправді мають відношення до порятунку життя).

Очевидно, що люди (в тому числі і я) можуть запитати, що я ігнорував важливі інші ресурси, такі як простір, випадковість чи навіть квантовість. Але коли у вас є лише дві хвилини, щоб розповісти комусь про ціле поле, деякі речі залишаються поза увагою.


4

Якщо ви хочете навести примхливий погляд у минуле, нагадайте своїй аудиторії, що "комп'ютер" використовувався для позначення людини, професією якої було обчислення речей . (І якщо ви хочете порушити деякі гендерні стереотипи, які вони можуть мати, ви можете вказати, що це часто були і жінки.)

Потім ви можете досягти кількох речей відразу:

  • зробити переконливий аргумент, що «інформатика» може бути чимось поза вивченням «комп’ютерів»;
  • зазначають, що людям, які займаються обчисленням, потрібні певні правила, щоб виконати своє завдання (особливо в приміщенні, повному «комп’ютерів», які виконують спеціалізовані завдання - складність спілкування та паралелізація, хтось?), і це так само справедливо і для машин;
  • опишіть, що "інформатика" - це пошук ефективних способів вирішення проблем, пов'язаних з "обчисленням" у цьому сенсі;
  • зауважте, що саме те, що саме робить обчислення, не є таким важливим, як необхідні ресурси (наприклад, час та місце нуля).

4

Я завжди починаю, вказуючи їх на якесь творче, навмисно-непокірне відео чи статтю, що пояснює технічну концепцію на інтуїтивному рівні. Ось хороший приклад: малювання в математиці: спіралі, фібоначчі та бути рослиною

Після того, як вони зрозуміють концепцію (і, сподіваємось, трохи повеселилися з нею), я намагаюся узагальнити те, що вони навчилися чомусь про TCS. Наприклад, вищезазначене відео може призвести до базового пояснення алгоритмів або обчислень як рекурсивного процесу - "щось, що створює складну структуру з кількох простих правил". Тоді люди з TCS просто вивчають, які типи правил виробляють, які типи структури!

Звідси, як правило, досить просто перейти від загального TCS до конкретного домену. :)


2

Виходячи з пропозиції Росса Снайдера, почати з конкретного прикладу, можна також безпосередньо пояснити питання Р проти НП. Можна охарактеризувати це питання для непрофесіонала як з'ясувати, чи перевірити рішення простіше простого, ніж насправді знайти його, чи правда, що коли ми можемо перевірити рішення, ми можемо його знайти і?


2

Ось моя:

Інформатика - це не просто наука, в ній багато техніки, але наукова частина полягає у розумінні обчислень. А обчислення - це фізичний процес, який впорядковує інформацію. У теоретичній інформатиці ми вважаємо, що нам потрібна відносно складна математика, щоб зрозуміти обчислення.

Це добре приводить до розмов про обчислення в біології, роль логіки в інформатиці та ін.


2

Можливо, можна сказати це

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

Вчений не буде користуватися комп’ютером під час творчості, а швидше буде думати багато, писати формули та химерні малюнки на папері та періодично блукати. Таким чином, безпосередня практичність - це не найважливіше, це більше схоже на художника, який вивчає та намагається осмислити таємниці цього світу.

Тоді можна було б згадати речі, які покладаються на якісь елегантні рішення теоретиків, як-от комп'ютер, Інтернет, пошукові системи, безпечне банкінг, 3D-фільми, послідовність ДНК тощо. Але завжди слід підкреслити, що прикладів сучасних досліджень ще ніхто не знає, деякі з них можуть бути вперше помічені через кілька десятиліть.

З мого досвіду, у багатьох людей виникає момент AHA, коли вони розуміють, що інформатика та спеціальна теорія настільки багаті на цікаві питання та проблеми для вивчення. Багато з яких можна описати на високому рівні! Це список від професора Вікіпедії (через SIGACT), виберіть улюблені: алгоритми, структури даних, теорія складності обчислювальної техніки, розподілене обчислення, паралельні обчислення, VLSI, машинне навчання, обчислювальна біологія, обчислювальна геометрія, теорія інформації, криптографія, квантові обчислення , теорія обчислювальних чисел та алгебра, семантика та верифікація програм, теорія автоматів та вивчення випадковості.


0

Що робить теоретик-інформатик з точки зору, який можуть зрозуміти люди, які не є інформатиками?

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

Це може бути трохи більше мови в щоці, ніж те, що ви були після ...


Безумовно, триватиме розмова!
Андраш Саламон

11
О добре. Чи можете ви сказати мені, як змусити годинник перестати блимати 12:00?
Jeffε

1
Звичайно, я стягую звичайну ставку союзу.
Андраш Саламон

Я знаю, що це було трохи язика в щоках, але помічаючи знижені голоси, я з радістю видаляю його, якщо хтось має серйозні проблеми з цим.
Джо Фіцсімонс

1
Нема проблем! Я хвилювався, що або деякі теоретики CS, або деякі ремонтники відеомагнітофона можуть образитися.
Джо Фіцсімонс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.