在宋星野的指引下,陳鑫重構了函式邏輯,引入了一組全新的修正項。 超好用,.隨時看
那是一種他從未嘗試過的、將幾何與分析完美結合的優美演算法。
接著,秦銳將它們敲進電腦裡。
回車。
執行。
隻見螢幕上的撞擊率瞬間歸零,緊接著,一條完美的木星探測軌道,如絲綢般在模擬的太陽係引力場中舒展開來。
秦銳和陳鑫都驚呆了,齊齊佩服的說道:
「厲害啊,原以為這個漏洞又要改一上午呢,沒想到這麼快就解決了!」
宋星野淡然一笑。
對於這倆初出茅廬的博士生來說,當然覺得這樣的漏洞很棘手。
但對他這個在航天一線摸爬滾打二十年的人來說,這種級別的Debug早已是從從容容、遊刃有餘了。
然而,這僅僅是個開始。
宋星野繼續滑動滑鼠,去檢查後麵的內容。
很快,他又在Matlab的日誌中,發現了一個鮮紅的『報錯框』。
擔心有遺漏,他還把旁邊的內容仔細捋了一遍,果然沒發現任何錯誤。
這金手指簡直火眼金睛啊!
既能第一時間快速、精準的鎖定漏洞,還沒有遺漏,可比自己一行一行校對省事多了。
「這裡停一下……引力常數、初始向量、積分步長都沒錯,但我們忽略了木星引力在長期積分中的共振效應。」
宋星野打眼一瞧,很快對症下藥給出了思路,他指著自己視野中『標紅』的內容說:
「從這裡,在飛掠木衛二的近拱點時,由於浮點數截斷誤差累積,探測器的實際高度會比理論高度低2公裡。」
「在浩瀚的太空中,2公裡微不足道,但在引力彈弓的極限操作中,這2公裡就是生與死的界限,明白吧?」
秦銳和陳鑫也不是豬隊友,自然一點就通,立即恍然大悟。
陳鑫連忙去改數學公式。
秦銳則摘下眼鏡,胡亂的用衣角擦了擦,一臉好奇的問:
「星野,神了啊!這段公式邏輯這麼繞,你就在邊上瞟一眼,連草稿都不打就看出問題了?之前咋不知道你有這本事?」
宋星野微微一頓。
怎麼解釋?
告訴他們,那段公式在自己眼裡,就像一個正在噴血的大動脈,想不注意都難?
「直覺。」
宋星野敷衍的回了一句,隨即神色一肅,強行將話題拉回正軌:
「老秦,現在的重點是怎麼在48小時內改完。我大概掃了一遍,發現咱們的方案,能優化的地方不少,起碼有二、三十處吧。」
「多少?二三十處!」秦銳叫了一聲,「咱們的方案這麼差勁嗎?」
宋星野默默點頭。
他隻看到視野中,此起彼伏的飄浮著紅色小方框。
全是報錯!
「宋師兄,那……怎麼改?」
陳鑫剛改完上一個Bug,終於抬起頭,現在已經徹底服氣了。
但仍不免焦慮道:
「現在的架構是基於遺傳演算法的全域性搜尋,要大改的話,連底層積分器都要改動了,很多的優化策略也要推倒重來,很麻煩的……」
「那就推倒重來。」
宋星野果斷說道。
秦銳張大了嘴巴,「還剩不到48小時了啊,鬧呢?」
「這種題目,要想在有限燃料下,讓探測器遍歷木星係統,使用遺傳演算法本來就是捨近求遠,完全是依賴電腦的暴力窮舉來尋找軌道。」
宋星野毫不掩飾自己對這種解題方式的鄙夷,
「用電腦像無頭蒼蠅一樣亂撞,直到撞出一條路?這種靠堆砌算力、暴力窮舉出來的軌道,根本毫無物理學的美感,隻有書呆子才會用!」
秦銳弱弱地插了一句:「可是……用遺傳演算法解題,當初好像是你提出來的?」
「噢,是嗎?那我收回剛剛的話。」
宋星野氣勢一滯,尷尬地撓了撓頭。
陳鑫連忙打圓場:「那不用遺傳演算法,用什麼?」
宋星野立即正色道:
「對於木星係統這種多衛星、多體引力的環境,用微分修正法配合龐特裡亞金極值原理,更合適。」
聽到這兩個名詞,秦銳和陳鑫都愣了一下。
理論在課本上見過,但真正敢在競賽裡工程化落地的,鳳毛麟角。
因為邏輯變換太複雜了。
為了省事,大家都是用遺傳演算法,編譯好模型後、交給電腦一個個試錯就行了。
秦銳心裡沒底:「這能行嗎?咱們時間可不多了。」
宋星野道:「正是因為沒時間了,纔要挑戰一下捷徑。」
見狀,秦銳和陳鑫也不囉嗦了,反正聽安排就是了。
宋星野將白板擦掉後,馬克筆在板麵上飛速遊走。
他將微分修正法與極值原理拆解,大膽引入了龐加萊截麵與傅立葉變換,構建出一套全新的演算法骨架。
兩人雖然聽得雲裡霧裡,但隨著推導深入,眼睛卻越聽越亮。
遺傳演算法就像是在沙灘撿貝殼,讓電腦一顆顆拿起來比對,累死累活,計算速度全靠電腦的算力;
而新演算法等於是製造了一把篩子,通過一組組極其優雅的解析不等式,將資料倒進去,不符合條件的瞬間被過濾掉,隻剩下最完美的『珍珠』。
簡單討論過後,宋星野給秦銳、陳鑫安排好分工,再次忙碌起來。
他們隻有兩天時間去折騰,必須得爭分奪秒。
「老秦,把Matlab的平行計算工具開啟,現在要呼叫實驗室所有空閒機子的算力!」
宋星野在一台電腦前忙活著,頭也不回地喊道。
「啊?哦!好!」
秦銳此時已經完全淪為了工具人,手忙腳亂的去操作伺服器終端。
「陳鑫,你幫我查一下噴氣推進實驗室在2009年發布的關於伽利略號探測器最後階段的資料,我要驗證一個引力模型引數!」
「知道了宋師兄。」
陳鑫連忙回復。
他有一種怪異的感覺,覺得宋師兄此刻展現出的狀態,太像自己的導師了……
不對,甚至比他導師那種長江學者還要專業,還要壓迫感十足。
三小時後。
「搞定!」
秦銳按照宋星野和陳鑫寫出的演算法,敲下最後一個符號,長舒了一口氣。
宋星野向後一仰,靠在椅背上,「跑全流程試試。」
秦銳緊張的按下回車。
空天樓的實驗室裡,三台工作站同時發出了轟鳴。
進度條飛快地向前推進。
T 100天……木衛二飛掠,成功。
T 200天……木衛三飛掠,成功。
T 400天……木衛四最終入軌,鎖定!
螢幕上跳出了最終的結算資料:
【Mission Success】
【總脈衝∆V:1600m/s。】
「1600?」
秦銳看著那個數字,眼珠子差點掉出來,「臥槽!」
「多少?」
陳鑫也沖了過來,激動的盯著螢幕,「1600?我記得昨天翻論壇帖子,暫列第一的北航團隊,成績是1550m/s?之前是差距15%,現在快追上了啊!」
「宋神太牛了啊!」
不知不覺中,秦銳這個工具人連稱呼都變了。
宋星野看著已經樂傻了的兩位隊友,嘴角微揚:
「還差點火候,接下來要繼續優化,沒準咱們能拿一枚金牌回來?」
一聽到金牌,秦銳和陳鑫倆人更興奮了。
若是昨天,這簡直是癡人說夢;
但現在,奇蹟似乎觸手可及……
正當仨人摩拳擦掌,準備一鼓作氣把方案改完的時候,秦銳的肚子先是咕嚕嚕叫起來,緊接著宋星野和陳鑫的肚子也叫了。
仨人尷尬的對視一眼,發現不知不覺已經過去了一上午。
「咳,人是鐵飯是鋼,還是先吃飯吧,下午再忙活?」秦銳尷尬一笑。
「走唄,去二餐廳?」陳鑫提議。
宋星野卻道:「去南街吃麻辣燙吧?」
秦銳一愣:「麻辣燙?昨天不是剛去了,又吃啊,你膩不膩?」
「就想這一口。你們去不去?不去我自己去了。」
畢業沒幾年那條街就被拆了,宋星野可是許多年沒嘗過那家麻辣燙了,自然是饞得心癢癢了。
聞言,秦銳和陳鑫都追上來,笑道:「成成成!聽你的,中午就吃麻辣燙!」