餐桌上对理论计算机科学的描述?


51

经常有人问我理论上的计算机科学家会做什么。对这个问题有一些好的回答,将是很好的。我倾向于退回到技术术语上,此时人们的眼睛通常会呆滞。

用非计算机科学家可以理解的术语来说,理论上的计算机科学家会做什么?

一个好的答案应该活泼,准确,没有模棱两可的含义。对于加分,答案应暗示为什么理论计算机科学家既不是数学家也不是IT从业人员。

尽管目的不同,但此问题是受MO问题https://mathoverflow.net/questions/3559/colloquial-catchy-statements-encoding-serious-mathematics启发而产生的。

Answers:


34

我的回答通常是:“我研究为什么很难进行某些计算”。例如,我通常使用标准年级学校方法比较加法和乘法。这些是每个人都做过的计算,每个人都赞赏快速做事的价值。每个人都同意,对于大数,乘法比加法难得多。实际上,大多数人建议小学学习方法要尽可能快。然后我问他们为什么。他们怎么知道没有另一种方法像加法一样简单?

尽管我没有使用过这个术语,但几乎每个人在这一点上至少都对证明下界的困难(我特别感兴趣)有所赞赏。根据观众的背景和兴趣,我可能会提到有人找到了一种乘法的方法,该方法比小学方法要快得多(简单地,“算法”一词往往会给他们带来耀眼的光芒),但速度仍然较慢比添加。


8
我喜欢您的示例使用加法和乘法作为示例。看来这些对外行人的恐吓程度甚至比排序或搜索要小。
列夫·雷津

谢谢,这是一种快速了解问题实质的好方法!
安德拉斯·萨拉蒙(AndrásSalamon)2010年

3
我已经给出了相同的示例:)我所看到的反应是人们拒绝接受,几乎生我的气:“你是什么意思,我们不知道乘法难于加法吗?和我一起玩游戏?”
Sasho Nikolov

我真的很喜欢这个答案,但这不是我要做的!我在一个完全不同的领域工作,即依赖类型理论。我应该解释“理论A”还是“理论B”?
科迪2015年

39

我给人们一个具体的例子。具体来说,我经常以同样具有说明性(但简单)的问题来激发复杂性理论。我问我的听众他们将如何指示一个小孩,以发现他的名字是否在按字母顺序排序的名字列表中(并告诉他们,小孩将一个名字与另一个名字进行比较需要3秒)。通常,个人/小组会提出幼稚的线性方法。我通过询问对方更好的东西或自己提及来迫使对话转向对数算法(我可能使用与对数不同的词)。我向他们展示了如何通过这种新方法将列表大小加倍仅给孩子增加三秒钟的工作时间。我直接将其与线性版本进行比较,线性版本现在看起来似乎很愚蠢。

当然,我把它带回了地球。我告诉他们,所讨论的孩子通常是计算机,但可能是孩子,或者实际上是任何人。我们提出的问题实际上与计算机无关,而是与解决问题所需的空间,时间和信息有关。并且,我通过类似于解决同一问题的两种不同方法的方法来激发复杂性分析。

当我引起他们的注意时-我挑出了沉重的打击者。我问他们“您能证明对数解是您曾经希望做的最好的还是能找到更好的东西?” 我问他们“是否有解决方法(算法)无法解决的问题?” 我对人们没有TCS背景时如何解决这些问题感到惊讶。


1
记录下来,我很幸运,因为让我身边的人对这个话题有些兴趣。
罗斯·斯尼德

1
在电话簿有效销毁之前,这可能已经变成了快速的两句响应。是否有每个人都知道的随机访问有序列表的规范示例?
安德拉斯·萨拉蒙(AndrásSalamon)2010年

当然可以,安德拉斯。一本书的索引。或者,您当然可以在重新包装之前购买新的卡片包,这当然会让您继续研究无序的情况。
Joe Fitzsimons 2010年

@Joe:我经常遇到那些没有使用带有索引的教科书的人。也许哈利·波特(Harry Potter)带有索引...
安德拉斯·萨拉曼(AndrásSalamon)2010年

@András:我想我经常在大学里吃饭!几乎所有教科书都肯定有它们。
Joe Fitzsimons 2010年

21

我喜欢Scott Aaronson的这篇文章,该文章将复杂性理论解释为定量神学。摘录如下:

计算复杂性理论的确与计算机无关。计算机在复杂性方面的作用与时钟,火车和电梯在相对论中的作用相同。它们是说明要点的好方法,可能是发现要点的必要条件,但不是要点。

我能想到的关于复杂性理论的最佳定义是定量神学:对诸如神之类的假设超智能生物的数学研究。它的关注点包括:

  • 如果存在一个或多个神灵,他们如何向凡人展现自己?(在多神论情况下,IP = PSPACE,或MIP = NEXP。)

  • 哪些神比其他神更强大?(P NP与PP,SZK与QMA,BQP NP与NP BQP等)。

  • 一位慷慨的上帝能选择将他的无所不知赐予凡人吗?(EXP与P / poly。)

  • 甲骨文可以信任吗?(可以信任甲骨文吗?)

而且当然:

  • 凡人会自己变得像神吗?(P与NP,BQP与NP。)

只能有一个上帝,假设多个上帝在逻辑上是不一致的,因为多个上帝具有不同级别的属性,这与至高无上的上帝的原则相矛盾。(一个上帝比另一个上帝更强大是愚蠢的)
Mohammad Al-Turkistany

1
@威廉姆斯,我的意思是,外行人会对这些类比感到困惑。
Mohammad Al-Turkistany

10
尽管我确实不应该这样做,但我应该指出,只有在类神属性形成一个整体秩序的观点下,多个神才是不一致的。如果他们形成部分秩序,那么拥有多个神是完全可以的。(对不起,瑞安)
Suresh Venkat 2010年

@Suresh,您是否暗示可能有两个神我们无法告诉谁是谁?这里的二进制关系是总订单。(对不起,瑞安)
Mohammad Al-Turkistany 2010年

18

答案示例可以肯定得到改进:

理论计算机科学家以数学术语研究计算。他们可以修复您的计算机,数学家也可以计算您的税金。


20
不幸的是,我认识的大多数人都认为数学家恰好擅长计算税收……
列夫·雷津

11
这让我想起了Dijkstra的一句名言:“计算机科学与计算机无关,而天文学与望远镜无关。”
Vinayak Pathak

2
列兹(Lez)-应该向那些人介绍格洛腾迪克总理(Grothendiek Prime)。
Vinayak Pathak

13
这是从Twitter上的jondoda中提取的另一个消息:“向计算机科学家寻求技术支持就像在要求植物学家修剪草坪。” 这个人越来越热……
Ryan Williams

4
赖安(Ryan)的推论是,两者都可以轻松完成任务,但不满被问到?
Joe Fitzsimons 2010年

16

我认为Dijkstra提供了一个很好的(非)答案(总是一个有力的和信奉绝对主义的主张的来源:)。

计算机科学与计算机无关,而天文学与望远镜无关。-EW Dijkstra


11

我真的很喜欢Brian Hayes 在这里对分区问题的介绍。

他使用了将一组孩子分成总能力相等的团队的问题(假设您可以使用数字量化每个孩子的能力),还解释了孩子通常使用的贪婪算法来解决此问题。

这是一个很容易理解的问题,很容易理解该算法,令人惊讶的是,它通常(很可能)非常困难,令人尴尬的是我们仍然无法证明最后一点。


这是一个非常好的。不知何故我以前在这里没有注意到它。
瑞安·威廉姆斯

喜欢这篇文章!
阿纳布

8

我通常用以下方式回答:我试图弄清楚用计算机可以做什么。它并不完全准确,但是非常接近,通常人们会问诸如“您的意思是什么?”之类的问题。我可以参考一些特定的东西,例如TSP。尽管我将旅行推销员的措辞改写为“跳栏问题”,“房地产经纪人问题”,“时间过多但时间不够的问题”或任何看起来适当的问题。

例如:“嗯,假设您需要在鞋子,杂货和衣服上购物,拿起蛋糕,理发以及在晚餐前跑其他杂项。如果您可以放所有这些东西,那就太好了。到您的GPS中,它可以告诉您在4点之前完成所有任务的顺序。但是,如果任务列表足够长,那么现在甚至无法确定您是否可以可以让他们通过4完成所有,更不用说你需要什么才能在做他们,在任何时间合理费用。我想知道是否有可能迅速解决问题,一台电脑。”


太好了,我认为这是那种可以引发有趣对话的回应!
安德拉斯·萨拉蒙(Sandramon)

7

解决问题的最佳方法是什么?哪些问题很难解决?欧洲有一个单词-包括英语!-“信息学”。信息科学。在美国,由于这里强大的计算机行业,我们称其为理论计算机科学,但是请考虑一分钟不使用计算机来解决问题。考虑一下人体。它几乎以奇迹般的方式解决了问题。光进入我们的眼睛,我们可以看到我们认识的事物。声音进入了我们的耳朵,我们听到了我们理解的单词。这些是我们每天数千次轻松解决的信息问题,世界上最好的计算机仍在与之抗争。

解决问题的过程需要花费数百万年的发展历程,采用了反复试验的策略,并消除了不幸的人。想象一下,如果我们采取更理性的方法,并像在几何学,神学或微积分上投入一样多的人力创造力来投入这一新的问题解决科学领域,将会取得什么样的成就。我所做的只是那笔投资的一小部分。


在回答外行人的问题时,“你做什么?” 我经常回答:“我花了很多时间盯着太空,想出如何使科幻小说成为现实。” 然后,我给出一个项目的具体示例,用几句话来解释。


1
我认识的大多数人会认为,试图使科幻小说成为现实的人是物理学家。你如何区分?
安德拉斯·萨拉曼(AndrásSalamon)2010年

2
如果一位实验科学家要构建我想过的东西,我会喜欢的。为什么必须有一种区分方法?但是,无论如何要回答:我考虑的是微观计算机,而物理学家则考虑物质的性质。有区别吗?取决于您在乎什么以及您强调什么。
亚伦·斯特林

在我看来,这听起来像解释了什么是计算机科学,但没有解释理论上的计算机科学。
Zsbán安布鲁斯

6

理论计算机科学对计算机科学而言是数学曾经对物理学而言。


2
为什么“曾经是”?
Suresh Venkat 2010年

1
我记得听到过这样的话:“从CS到逻辑/组合(TCS)就像从物理到几何。”
卡夫

3
苏雷什(Suresh),我认为安德烈(Andrej)声称这一点:过去,物理学的研究在数学家研究的问题中产生了很大一部分,但是随着时间的流逝,这一部分近年来有所减少(现在数学范围更广)。对于数学的历史,我还不足以肯定这是真的,但是我所知道的与之相符。
瑞安·威廉姆斯

1
我认为这种类比是行不通的,因为外行人也不了解数学和物理学。
Zsbán安布鲁斯


5

通常我以分解问题为例。我首先要求除以15的数字。通常,人们可以回答3、5,并且很想知道1和15是否是正确答案。然后我给出一个很大的数字(超过10个数字),问他们是否可以告诉我分隔符是什么?我解释说,即使对于计算机科学家来说,这也是一个非常棘手的问题。

然后,如果我有时间,我将尝试说明问题是要弄清楚如何解决此问题,还是要证明它总是会花费很多时间(我们确切知道如何定义的概念)。然后讲一点密码,以解释为什么使用密码,并讲一说科学家团队用多少时间用几百位数字破解数字密钥(我避免讲比特,因为人们似乎更了解什么是数字)


5

提出的问题确实是一个难题,因为大多数人都不知道计算机科学家通常会做什么。这与其他学科有很大的不同。

我喜欢使用以下类比:(T)CS对于计算机而言,物理对于CD播放器(即激光)而言。这实际上效果很好,因为大多数人对物理学家的处理方式有所了解,无论正确与否。

更具体的示例包括大多数人可以与之相关的事物

  • 字符串匹配(慢幼稚方法与在Word,浏览器等中快速搜索的日常经验)
  • 最短路径问题(用于导航系统)
  • 调度(取决于对方的呆滞程度,是指业务流程或在CPU上进行调度)

然后,我将解释说,尽管PCS员工希望在复杂系统中实现快速实施或良好集成,但TCS员工却想知道有什么可能,并证明可以为PCS使用安全,可重用的知识/技术的事物。

您还可以使用人们对计算机的无奈(“它不满足我的要求!”)。您可以指出(T)CS处理如何以计算机可以有效理解和处理的方式来表达事物(指语法,语义,数据结构,算法)。


4

当有人问您一个问题时,您可以直接回答该问题,也可以给他一个逐步执行的步骤,并证明如果正确执行了这些步骤,则可以在合理的时间内获得答案。鉴于步骤本身并不太复杂,并且可以由存在于此宇宙中的实体快速执行,那么哪些问题表现出此类程序?我认为这是理论计算机科学的主题。


1
唯一的问题是谈论宇宙内存在的事物。那种使它成为物理而不是TCS。毕竟,宇宙是一个有限的对象,TCS的很大一部分涉及渐近性。
Joe Fitzsimons 2010年

嗯,这是一个好主意。但是,我们是否真的使用渐近线,是因为我们想知道我们的算法在大于宇宙的输入大小上将如何执行,还是使用big-Oh表示只是为了使计算大致与模型无关?
Vinayak Pathak

好吧,我当然认为诸如决定可计算性之类的东西处于更抽象的水平。
Joe Fitzsimons 2010年

4

我通常的回答不是很快,但是可以保证阻止对话死机(奖金!),就像“量子理论是物理学的数学核心,TCS是计算机科学的数学核心”。


3
实际上,理论物理学而不是量子力学是物理学的TCS。除了量子力学以外,还有很多其他物理理论(经典广义相对论是最明显的例子)。
Joe Fitzsimons 2010年

目标不是准确性:)
Suresh Venkat 2010年

但是随后人们可能会进一步问:“什么是计算机科学?”
Vinayak Pathak

4

我们研究计算的极限。您能多快解决特定的计算问题?无论您尝试哪种解决方案,都要花多少时间解决它?然后,我给他们提供这些示例(对于大多数外行人来说很容易解释-实际上许多外行人都对他们有直接的经验-展示了NP完全问题的某些性质,并且实际上与挽救生命有关)。

显然,人们(包括我自己)可能会嘲笑我忽略了其他重要的资源,例如空间,随机性甚至量子性。但是,当您只有2分钟的时间告诉某人有关整个领域的信息时,有些事情会被遗漏。


4

如果您想对过去进行异想天开的回顾,请提醒您的听众,“计算机”曾经是指一个专门从事计算工作的人。(并且,如果您想违反他们可能存在的某些性别陈规定型观念,可以指出,这些习俗通常也是女性。)

然后,您可以一次完成一些事情:

  • 提出令人信服的论点,即“计算机科学”可以超出研究“计算机”的范围;
  • 指出计算人员需要一些规则来完成他们的任务(尤其是在一个充满“计算机”的房间里,他们要完成专门的任务-通信复杂性和并行化,有人吗?),这对机器也是如此。
  • 描述“计算机科学”是要找到解决这种意义上涉及“计算”的问题的有效方法;
  • 明确指出,准确地执行计算并不像其所需的资源(例如时间和暂存空间)那么重要。

4

我总是首先将他们指向一些有创意的,有意的视频或文章,这些视频或文章从直观的角度解释了技术概念。这是一个很好的例子:数学涂鸦:螺旋,斐波那契和成为植物

一旦他们理解了这个概念(并希望对此有所了解),我就会尝试将他们学到的知识推广到有关TCS的一些知识上。例如,上面的视频可能导致对算法或计算作为递归过程的基本解释-“从一些简单规则中产生复杂结构的东西。” 那么,TCS人员只需研究什么类型的规则产生什么类型的结构!

从那里开始,从一般的TCS到您要做的特定于域的事情通常很容易。:)


2

按照罗斯·斯尼德(Ross Snider)的建议,从一个具体的例子开始,也可以直接解释P vs NP问题。可以将这一问题描述给外行人,因为它可以确定验证解决方案是否比实际找到解决方案容易得多,或者每当我们可以验证解决方案时也可以找到解决方案?


2

这是我的:

计算机科学不仅是科学,还包含许多工程学,但是科学部分是关于理解计算的。计算是一种有序产生信息的物理过程。在理论计算机科学中,我们认为我们需要相对复杂的数学来理解计算。

它很好地介绍了生物学中的计算,逻辑在计算机科学中的作用等。


2

也许有人会说

一个理论上的计算机科学家研究与计算机科学有关的确实非常困难的问题。

科学家在创造时不会使用计算机,而是会思考很多,在纸上乱写公式和古怪的图画,有时会四处走动。因此,即时实用性不是最重要的,它更像是一位艺术家探索并试图弄清这个世界的奥秘。

然后,人们可能会提到某些东西,这些东西依靠的是理论学家们提出的一些优雅的解决方案,例如计算机,互联网,搜索引擎,安全银行业务,3D电影,DNA测序等。其中一些可能会在几十年后首次出现。

根据我的经验,当许多人意识到计算机科学以及特殊的理论是如此丰富的有趣问题要研究时,他们就会有一个AHA时刻。其中许多可以在较高的层次上描述!这是Wikipedia教授的列表(通过SIGACT),选择您的收藏夹:算法,数据结构,计算复杂性理论,分布式计算,并行计算,VLSI,机器学习,计算生物学,计算几何,信息论,密码学,量子计算,计算数论和代数,程序语义和验证,自动机理论以及随机性研究。


0

用非计算机科学家可以理解的术语来说,理论上的计算机科学家会做什么?

与VCR维修人员几乎一样。两者都考虑了如何从将信息读写到极长磁带的机器中获得最佳性能。

这可能比您想要的多了点舌头...


这肯定会使对话继续进行!
安德拉斯·萨拉蒙(AndrásSalamon)2010年

11
很好 你能告诉我如何使时钟停止闪烁12:00吗?
Jeffε

1
当然,我收取通常的工会费。
安德拉斯·萨拉蒙(AndrásSalamon)2010年

我知道这有点勉强,但是注意到不赞成票,如果有人对此有严重的问题,我会很乐意将其删除。
Joe Fitzsimons 2010年

1
没问题!我担心某些CS理论家或某些VCR修理工可能会冒犯。
Joe Fitzsimons 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.