1
chengxiao 2014-05-27 08:29:37 +08:00
外星人说不定用的是灵能或者是原力,怎么破?May the force be with you
|
2
yangff 2014-05-27 08:40:05 +08:00
为毛要调试,你需要证明啊亲。。
|
3
rannnn 2014-05-27 08:52:11 +08:00
po主兴趣真广泛。。。
|
5
tonyup 2014-05-27 09:03:51 +08:00
嗯……看来只能打printf了!233
|
7
akfish OP @tonyup printf也不行,因为print之前也要先对量子态进行测量。
量子计算机只能一个算法从头跑到尾,然后才能取结果,所以中间任何问题都无法在运行时发现。 |
8
se77en 2014-05-27 09:07:44 +08:00
表示即使是普通计算机调试在多线程下也没什么用,更多的是靠打 log 来观察的,一旦涉及到线程竟态,调试就几乎没作用了
|
9
akfish OP @rannnn 主要是为了搞懂Google的Quantum Computing Playground(http://qcplayground.withgoogle.com/)是怎么一回事
|
11
akfish OP @se77en 不能调试对发展早期技术的自举过程会有比较严重的影响,不管是验证硬件的正确性还是软件的正确性都很困难,电子计算机刚开始也并没有多线程,而且多线程程序的除错调试也不见得完全无用,因为bug可能出在非并发代码中。
|
12
tossking 2014-05-27 09:19:41 +08:00 via Android
函数式编程可以大显身手了?
|
15
guotie 2014-05-27 09:42:48 +08:00
这充分说明了量子计算机不是给人用的,而是给智能人用的。
|
16
williamx 2014-05-27 10:37:29 +08:00
同一段代码运行两次能给出相同的结果吗?
|
18
HowardMei 2014-05-27 10:49:42 +08:00
少见多怪,有些硬件也是不能直接引出调试接口的,比如大多数小信号模拟/射频微电路,
只能从数字控制端进行调试输入,从很多级放大之后的大信号端放测试输出,这种不透明的 级联黑盒测试,也没妨碍你手机正常工作呀? 原因在于,实际应用不需要全透明穷举测试,只需要正常工作模式下批量可靠性超过一个阈值, 那就是合格了;追求完全透明可靠,那是科学派的洁癖和偏执,如果搞工程的也这么做事, 技术根本别想发展、手机会是目前价格的百倍、很多科学理论的工程实证基础也会显得过于 粗糙而摇摇欲坠。 |
19
akfish OP @HowardMei No no no 你的关注点偏了,这个帖子说的主要是要按顺序点科技树,和你说的完全不是同一个话题。
你举的例子之所以不是问题,是因为人类已经按顺序点完了科技树,理论储备、工程设施已经这么完备了,才可能做到,说得好像人类一来就撸得出射频电路造手机一样。 量子计算机的这些问题最后应该都能解决,因为人类已经有技术储备,有足够强的运算设备了。 |
20
loading 2014-05-27 11:28:45 +08:00 via Android
将程序切片,先输出,再把结果给下一个子程序。
类似 linux 用管道把一大堆工具协同使用的方法! do one thing and do it well. |
21
wwqgtxx 2014-05-27 11:48:16 +08:00 via Android
放心,这个问题一定会在量子计算机流行之前解决的
|
22
shyrock 2014-05-27 12:01:35 +08:00
可不可以这样理解,量子计算的不确定性中其实包涵了设计逻辑上的不完备?因此只要你的代码大体上是正确的就行了,本来你得到的计算结果就每次都不一样,只是指向理想结果的概率更大而已。
|
23
akfish OP @shyrock 这不是设计逻辑的问题,而是由基础物理理论决定的。
也不是说不完备,而应该认为是一种不同的计算模型。 计算结果以概率密度的形式出现,并不代表对代码只需要大体正确,也不代表结果的正确性没有保证。 量子计算机的非决定性来源于量子比特是处于叠加态,即可能同时处于0,1或者01叠加态,这满足非决定性图灵机的定义:即对于当前状态以及一个特定的输入,可能有多种状态转移方案。这并不代表计算过程本身不确定。 事实上量子逻辑门的一个很独特的特征就是可逆性,即完成一系列的量子逻辑运算后,如果再逆向执行一遍,可以恢复到最初状态。而数字电路里的逻辑门则不行,你不能从1 OR 0的结果1,逆向得到最初的输入1和0. |
24
HowardMei 2014-05-27 12:27:26 +08:00 3
@akfish 顺不顺序,都是事后诸葛亮,有些东西就是试错试出来,十几年后才有完备理论解释,半导体发展史就是典型例子,你不能说因为现代计算机建立在半导体基础上,并顺势生长了几十年,就说科技树只会顺势增长,这种历史决定论,无法解释科技突破中的偶然性和劈叉生长。
科技树有缓变生长期和突变分叉期,之所以叫树,当然是因为它的新芽生长方向不定,如果完全是顺序攀爬,那只会在主干一个分支上发展,根本不会分叉,只能叫科技棒。 最早的半导体器件,就是撸出来的,没有任何理论支持那些器件会和传统电子管一样工作,更别说工作得更好,晶体管本身是肖克利凭经验、直觉和偏执,弄出来的,那个时候谁知道沟道里面量子效应是什么,外部特性“像”电子管就行了。 手机整体固然是科技顺序生长的结果,但里面有些器件仍然不是,射频器件的很多设计,就没办法进行顺序攀爬和推论,某些新器件,只能作为新特例,反复黑盒测试、迭代修改,凑出来。试错不够多,就做不出来,工程实践就是这么残酷,很多东西要用真金白银烧,烧出来就叫科技树顺势生长,烧不出来就是枯死的末端。 科技树生长,除了不完全是顺序的、经常出乎意料地分叉,甚至都不完全是连续的,任何一粒别处的种子都有可能长出另一颗科技树,至今物理学和生物学这两颗大树,都是孤立生长的,就算物理学与化学都也没能完美合体,联系两棵树的价键理论,人工嫁接痕迹就非常重。 |
25
akfish OP @HowardMei 你的关注点再次偏了,科技树的顺序决定的是发展难易程度,点错了可能会走弯路甚至死胡同,但总是可以回头换个方向。
不是说顺序有个是非对错,而是有好坏之分。 这不叫历史决定论,而是怎样从历史中学习进步。 假如说人类当初真是直接先点了射频电路,然后不断试错最终用了更长的时间撸到了今天的水平。这个时候如果回头再讨论其实有更好的顺序,意义不在于站在上帝视角诋毁人类的伟大成就,而是总结经验教训下次学聪明点。 这个讨论本来就是事后诸葛亮,人类已经有电子计算机了。 |
26
wodemyworld 2014-05-27 12:39:20 +08:00
好能yy,学过量子力学吗,学过测试相关理论么。。。。。。。。。。。
|
27
akfish OP @wodemyworld
YY?写那些论文的作者们要哭了,原来别人努力学了这么多年终于可以靠这个吃饭了,到头随便一个只知道两个名词的人就能跳出来说人家没学过,233。 |
28
HowardMei 2014-05-27 12:55:07 +08:00
最早图灵机的程序,也是图灵自己大脑充当模拟器和调试、测试器。楼主所谓自举,那是多少年后,计算机科学化才催生的奢侈玩意儿。创造C,不必有比C更强大的语言做基础。
这篇文章作者,犯了学院派常见错误,过早担忧,总想找什么最优发展路径。其实只要量子计算机作为黑盒,在一些简单计算上,能足够可靠替换传统计算机,那么后续发展到一定程度,天然就能自举。 比如:算法里包含一些校验子算法,只要这些子算法得出的结果符合传统计算结论,就可以相信整个计算是可靠的,这跟网络传输协议有什么太大不同吗? |
29
akfish OP @HowardMei
第一,此自举非彼自举。 第二,喷前先看原文?你说的那些原文完全就没提到过,原作者也根本没那个意思。 你说的这些,放在完全不同的语境下面,我都表示同意。 放在这里,只能说你理解各种偏差了。 不再回了,讨论的完全不是同一个话题。 |
30
HowardMei 2014-05-27 13:07:47 +08:00
@akfish 没得到你的意思
按我的大概猜测,你大概和多数中国父母教育小孩一样,足够自信能从历史中总结一套‘正确’方式来保证不走弯路,但是科技本质上是探索未知,对错的判断,很多都是马后炮,所谓判断对错的经验,自然也无从谈起。 我已经在上面说了,科技缓变期,你这种方式可能收到很好投入产出比,但是忽略那些‘错误’的路径,也会让你错过科技突破和分叉。人类在和平时期,科研投入都是这种倾向,但在战争时期,就会出现病急乱投医的大胆试错,科技会发生突变,这种现象不是偶然的。 另外,人类点燃射频电路和数字电路的进程,基本上是同步的,并没有以数字电路为基础,才发展出射频,后面的融合是后面的事,数字长得快,射频长得慢,都有足够道理,两种发展路径很难比较优劣。 |
31
nybux 2014-05-27 13:08:47 +08:00
量子计算机如何实现 i++
|
32
akfish OP @HowardMei 我来告诉你在这个帖子的做了一件什么事情:
一个人从山上下来,运气好选了一条容易的路走完了,回头发现有一条很难的路,然后他感叹了下:“还好当初没有走那条路,显然这个世界上有的路容易有的路难。” 这个时候出来一个路人甲跳出来一阵说教:“别总是想着一来就找到最好的路,你这是犯了学院派错误,blah,blah,blah。”他的这些话可能本身都是正确的,但在这个场合下就是绝对无用的废话。 你就是那个路人甲,这还不懂那我就没办法了。 |
33
akfish OP |
35
akfish OP |
37
bengol 2014-05-27 13:42:19 +08:00
不得不说lz是个好人,脾气好,正在撸这个google链接中。。。
|
38
HowardMei 2014-05-27 14:12:00 +08:00
@akfish 你自己的观点是:“果然...” 和 “所以...”,这两部分,我的回应完全切合主题,讨论的就是科技树怎么长,怎么爬,不存在关注点偏了的问题。
这篇文章是你拿来作为例证的,反映的是这篇文章作者的观点,不能算你自己的观点。如果你本来意图是让大家针对文章或者内容本身,主题应该是“这篇文章水准...” 或 “该文xxx提到的...” 如何如何。 针对这个意图,我的看法: 文章本身:很水,等同国内常见的综述文;扯了一堆不可能性,唯一结论是"the work have to be done upstream"; 文章内容:没什么有用信息,他扯的那些稍微关注量子计算的都应该知道,结论也不新,upstream该怎么做,才是最有价值的部分。 而且在你复述的时候,结论upstream那段变成“唯一的出路只有在编译时验证”,与原文意思风马牛不相及。 谁告诉你量子计算语言一定和通用计算机的C语言一样,要静态编译时验证了?动态语言里广泛使用的单元测试、行为测试等非侵入式查错手段,就一定不能用?实际上量子计算根本还没到这步,最起码把我前面说的校验算法这类可靠性基石先搞定,再扯什么语法级的调试。 基本上,你自己不清楚想要表达些什么,只会说别人不懂你的心思,却不管自己打出来的字在别人眼里是什么意思。 |
39
HowardMei 2014-05-27 14:23:04 +08:00 1
@akfish 呵呵,你的“果然...”、"所以..." 可真是很强的感慨啊,这既然是你的观点,我来驳斥你的观点,不正切合主题?你也承认我说的对,是正确的废话,那不一个回复就结了?
自己歪楼而不自知,中文论坛里的常见病,引述作者结论,就是表达了自己观点?拜托,那是原作者的观点,不是你的。两个观点之间,并没有显然的不言自明效果。 如果希望大家讨论原作者的观点,你应该针对那些观点发表评论,而不是感什么慨。 |
40
akfish OP @HowardMei 读懂/读完原文再说,OK?
实际上就在我引用的那一段紧接着就有两条: * A program needs to be specified and verified beforehand. A quantum programming language therefore needs to come up with a well-defined and sound semantics, in which one can specify a particular behavior for a piece of code, and eventually prove that the code behave as expected. * Because of the cost of each run, the compiler of the programming language should catch most of the standard causes of run-time errors: the language needs a strong type system. 我引用的这一段所处位置文章都还没过半,你就能理解成这是“唯一的结论”,后文对现有量子编程语言的评价分析被你吃了? 还扯什么动态语言,基础物理原理都不同,计算体系结构都不同,你这种逻辑就等于说猪肉都可以烤着吃,砖头凭什么不能油炸。 不看文章先说文章水,自己理解能力有限就怪别人表达不清,真是放之四海而皆准总能立于不败之地的流氓逻辑。 真是懒得跟你扯了,给你个台阶下,你过去说的,即将说的,已经说的,还没说的都是对的行了吧。 |
42
jianghu52 2014-05-27 14:32:42 +08:00
除了观察者校验能看得懂,其他的完全不懂。我是不是太low了。
|
43
HowardMei 2014-05-27 15:22:50 +08:00
@akfish 好吧,基本上沟通是很困难的一件事,承认这点并不伤自尊。
其一:你犯了一个错误,主题措辞和心中想讨论的问题本身完全不符,从字面上看,你想讨论爬科技树;觉得歪楼了,指明一下就是了,你只是重复“关注点”偏了,并不能把楼正过来。 其二:我并没有声称自己完全对,特意写了“我的看法”。不对的地方,你完全可以逐条指出来,打滚撒泼不是讨论。 事实上,之前我确实没仔细看完这篇文章,特别3.2部分,作者在结论的地方都没提他们的Propose,我评价成水文,确实武断了,但这也正是你应该指出来给大家,说3.2节是最有价值的地方,否则你给这个链接有什么意义呢? 我对量子计算的了解只局限于这篇文章前面的Model部分,以及传统编程语言也很有可能被用在这个模型上。再看了一遍,我对作者结论的只有“强类型语言”才适用,仍然有怀疑。如果你有更深理解,分享一下,当然欢迎。 代入情绪,恐怕没法真正讨论。 |
44
edwardro 2014-05-27 16:40:37 +08:00
@HowardMei “有些东西就是试错试出来,十几年后才有完备理论解释”——有些东西就是试错试出来就代表所有的东西都是试错出来的?
人类没有发明计算机之前拿到一台外星人的量子计算机,能试错试出来一个量子程序编译器? 感觉自己在带着情绪以及偏见在讨论问题,结果说成别人带情绪。 |
45
HowardMei 2014-05-27 17:32:18 +08:00
@edwardro 破折号后面是你的结论,不是我的,你把“有些”毫无障碍地引申为“所有”,然后归谬树靶子打自己,真得很神奇。
楼主说“科技树只能按照顺序点”,并用量子计算机必须以电子计算机为基础这个个例来 证明所有东西都是积累出来的,我举了个射频的反例,并且后面还说明了,突破性的进展, 通常跟积累无关,楼主说的顺序点,只合乎缓变阶段。所以,我结论是楼主的观点不完全成立, “有些”东西是试错出来的,而不是积累出来的。反过来,这里除了你,没人荒唐到说所有东西都是 试错试出来的,那不叫科技,叫炼金术。 就此结束吧,表达精确、逻辑严密是沟通和讨论的基础,不然就是像你这样把自己的话塞到别人嘴里, 然后加以鄙视。 |
47
edwardro 2014-05-27 20:48:41 +08:00
@HowardMei 既然知道有些东西不是靠试错试出来的,结果反而拿着不一定正确的逻辑来反驳别人,我看你说的话正好就是在说你自己,“把自己的话塞到别人嘴里,
然后加以鄙视”说的就是你这种人,打自己嘴巴打得真响!好!! |
49
wodemyworld 2014-06-04 14:43:52 +08:00
@akfish 我不是说他们怎样,我是说你的理解太狭义了,调试有很多方法,测试又有很多方法,不是量子信息不可被完美重发就不能调试和测试的,量子信息保证了发出的信息只能被观察到一次,但是如果引入第三方并且信任他,一致认定第三方重发的信息作为有效信息,那么调试和测试就不存在什么问题,哪有调试的时候程序不信任调试器的呢。。。。。
|
50
akfish OP @wodemyworld 还第三方,搞量子密码学的要哭了,别YY了好不。
恩,测试有很多方法,你怎么不说编译时静态验证也是测试的一种,我的标题是自己打脸呢? 量子计算最基本的就是量子纠缠态的建立量子比特,中间的任何量子逻辑运算的前提都是这个纠缠态的完整性,第三方必然导致对纠缠态的干扰。你可以设个断点,你可以假装信任所谓的“第三方”,但你取出来的东西根本不可靠,你也无法从断点处恢复继续运行。 至于说(量子计算机早期)测试的不可行,那是由于量子计算的成本,和模拟运算量大的不可行性导致的。量子计算机的发展早期会经历一个较长的阶段,它会是地球上计算能力最强的设备,在它上面进行的计算会完全榨干其性能。在这个阶段内,根本没有任何设备有足够的运算量(在合理的成本范围内)去跑有效的测试。 你的想法就等于用算盘来测试电子计算机,理论上可行,前提是要有足够多的时间、人力和算盘。 这不是信任问题,不是方法论问题,而是可行性问题。 不要用经典领域的眼光,去看待完全不同的领域。 |
51
wodemyworld 2014-06-04 17:06:29 +08:00
@akfish 还密码学,真是没救了。。。。。。
|
52
akfish OP @wodemyworld 没救的是你,局限在自己那点知识里,量子计算机也就有生之年内能看到的东西,无需多言,谁是井底之蛙自有分晓。就这样吧,看你对量子力学一点基本了解都没的样子,实在也不会有什么建设性的讨论。
|