向電腦學(xué)習(xí)-生活
當(dāng)你在一個(gè)大城市租房時(shí),怎樣才能使自己租到最好房子的概率達(dá)到最大?認(rèn)知科學(xué)家說,假如你給自己一個(gè)月的尋找時(shí)間,你應(yīng)該把其中37%的時(shí)間(約11天)用于探索你的選項(xiàng)。過了這個(gè)時(shí)間點(diǎn)之后,你就要租下你看到的第一個(gè)勝過之前看過的房子的那套房子。找房子屬于數(shù)學(xué)上的“最優(yōu)停止”問題,37%法則是解決這類問題的算法。
布萊恩·克里斯蒂安是《華爾街日?qǐng)?bào)》的記者,湯姆·格里菲斯是加州大學(xué)伯克利分校的心理學(xué)和認(rèn)知科學(xué)教授,二人合著了《賴以生存的算法》一書。書中說:“‘算法’一詞總讓人覺得高深莫測(cè),但一個(gè)算法其實(shí)就是用于解決問題的有限的步驟序列。”
許多人對(duì)電腦都有一個(gè)誤解,以為電腦會(huì)為困難的問題找出簡單、正確的答案。其實(shí)計(jì)算科學(xué)關(guān)心的是困難問題的近似答案。我們讓計(jì)算機(jī)以閃電般的速度做許多事情,但它們的處理能力是有限的,于是總要權(quán)衡。什么時(shí)候快比準(zhǔn)確更好?在什么時(shí)候要停止搜尋完美的解決方法,轉(zhuǎn)而給出一個(gè)手頭就有的辦法?這跟人在生活中遇到的問題類似。
找停車位跟找房子一樣,屬于“最優(yōu)停止”問題。人們都想找一個(gè)離自己的目的地比較近的停車位,但在不斷靠近目的地時(shí),每當(dāng)經(jīng)過一個(gè)空的車位,你都要做一個(gè)決定:就停在這里,還是看看自己的運(yùn)氣是否足夠好,前面還有車位?假如你走在一條無限長的路上,停車位是均勻分布的,你的最優(yōu)選擇是駛過一定距離內(nèi)的所有空車位,然后停在之后的第一個(gè)空車位上。至于多遠(yuǎn)的距離,這取決于車位的被占用比率。如果99%的車位都被占用了,你應(yīng)該從距離目的地還有大約70個(gè)車位的地方(約0。4公里)開始,再看到空車位就該停車了。與之類似,如果一個(gè)人打算從18歲開始找對(duì)象,并在40歲以前結(jié)婚,他應(yīng)該選擇在26歲時(shí)遇到的心儀對(duì)象。
另一個(gè)對(duì)日常生活有幫助的算法叫摩爾算法。冰箱里的每一樣食物都有各自的保質(zhì)期,先吃馬上要過保質(zhì)期的食物能夠最大限度地減少浪費(fèi)。但有時(shí)候快過期的并不是你最想吃的,為了把壞掉的食物量降到最低,可以使用摩爾算法。根據(jù)摩爾算法,我們按照食物的保質(zhì)期食用,最先過期的要最先食用,可一旦看上去無法及時(shí)吃掉下一樣食物,我們就該暫停,檢視一下計(jì)劃中想吃的食物,然后扔掉最大的那一種,即需要最多時(shí)間才能吃掉的那一種。比如扔掉那個(gè)好幾次才能吃完的西瓜,這樣才能早點(diǎn)食用后面的食物。然后重復(fù)這一模式,按照保質(zhì)期的長短擺放食物,趕不上時(shí)就扔掉其中最大的。