第90章 让程序去找程序(4/6)
一百二十种,小到可以一种不漏地全列出来。
所以机器根本不需要猜某套走法对不对。
它可以把这一百二十种乱序全部丢进去,让那套走法挨个跑一遍,只要有一种没被捋顺,这套走法就当场判死,扔掉。
这是数学意义上的干净。
不是我觉得它应该对,而是我把所有可能都试过了,它就是对的。
人靠直觉,会漏,会错。
机器靠穷举,一种都不会放过。
凌晨,第一版找程序的程序跑了起来。
它很笨,几乎不会偷懒,只是从所有该比哪两个的选择里,一层一层往下试。
每走一步,就回头看看那一百二十种乱序,还剩多少没被捋顺。
哪条路让混乱减少得最多,就顺着那条往下走。
江临给它定了个朴素的评判标准。
剩多少没排对,用了几次比较,有没有引入岔路,有没有破坏两个数相等时保持原顺序的规矩,有没有把缺失的数据提前隔离出去。
没有什么玄乎的智能模型。
只有最原始的三样东西:挨个试,及时砍掉死路,把所有可能都验一遍。
这是他这台机器现在跑得动的全部。
第一轮结果出来,屏幕上打印出一串走法。
江临先验证。
一百二十种乱序,全过。
两个数相等的情况,过。
缺失数据的隔离,过。
然后才看速度。
没比他自己手写的快多少,某个设定下甚至更慢。
他反而长长松了口气。
这才正常。
第一版找程序的程序,怎么可能一出来就碾压一个人熬了一整夜的经验。
但它已经证明了那件最重要的事。
机器,可以自己找到正确的程序。
快不快,是下一层的问题。
能不能找到,才是这扇门开没开。
接下来的时间里,江临一点点喂养这个还很笨的东西。
第一个台阶,是让它分清对不对。
这个最简单,穷举就行。
五个数的一百二十种,八个数的几万种,机器都能一种不漏地验完。
第二个台阶,是让它分清值不值。
同样能把数排对,可能有十几套不同的走法,它们不是一样好的。
有的比较次数多,有的岔路多,有的要占用更多临时空间。
江临得把这些代价一项项写进机器的评判标准里,让它在一堆都对的走法里,挑出最划算的那个。
本章未完,请翻下一页继续阅读.........