第六十四章 :人狼羊菜過河問題(二更求月票)
對於韓川來說,建模大賽需要微分方程、圖論、統計分析、最優化這些數學知識並不是什麼問題。
雖然過去幾個月的時間他學習的重點著重在數學分析和解析數論領域,但這些基礎數學知識多多少少還是都學習了一些的。
儘管遠比不上數學分析和解析數論兩大領域,但應對建模大賽完全足夠了。
唯一需要他重點學習一下的,是計算機相關的一些軟體。
雖然說作為建模手的他不需要要成為頂尖的程式設計師,但也得熟悉相關的工具才行。
什麼都不懂,那不是扯犢子麼。
第一次的見面集訓結束後,韓川就背著電腦去了圖書館。
在數學專區找了個靠窗的位置坐下,把許志遠發的那份軟體清單打開。
清單上列了五款工具:MATLAB、LINGO、SPSS、Python、LaTeX。
前三款是競賽常用的商業軟體,後兩款是開源工具。
作為三人小組隊長的許志遠也算是盡心盡力了,給他的清單上甚至還標註了每款軟體需要掌握的程度。
MATLAB要求熟練,LINGO和SPSS要求會用,Python要求能看懂並修改已有的腳本,LaTeX要求能套用模板寫論文就行。
圖書館的網速不快,這幾個軟體加起來有十幾個G了,進度條跟地上的蝸牛一般爬著。
等待軟體下載的同時,韓川也沒閒著,他從書包里抽出那本《數學建模算法與應用》繼續啃之前沒看完的部分。
這本書的難度對他來說並不高,線性/非線性規劃、變量賦值、矩陣運算、微分方程建模...這些東西對現在的他來說閱讀起來基本沒啥門檻。
像矩陣運算這些東西在高等代數裡已經學透了,而MATLAB的語法也不過是把數學語言翻譯成另一種形式而已。
......
周三,上午九點,韓川準時來到了數模實驗室。
教室中已經有不少人提前到了,坐在中間的許志遠朝著韓川揮了揮手,示意這邊。
等待了一小會,負責上課的耿敏裕教授帶著個保溫杯走了進來。
掃了一圈教室中的學生後,耿敏裕隨和地笑了笑,開口道:「人都到齊了吧?我就懶得點名了啊。」
停頓了一下,他放下保溫杯,點開了實驗室中的電腦,將裡面的教材投放到銀幕上。
「今天咱們上建模的第一課,先了解一下建模到底是什麼。」
說著,耿敏裕操作了一下滑鼠,銀幕上一張圖片跳了出來。
圖片中有一個農夫,一隻狼,一隻羊,還有一筐白菜聚集在一條小河邊,河邊有一條小船。
看著圖片,耿教授掃視了一眼教室中的學生,笑著開口道。
「大家應該都玩過或者見過這種益智類的小遊戲,農夫要帶狼、羊、菜過河。河邊只有一條小船,船每次只能載農夫和一樣東西(農夫必須划船)。」
「如果農夫不在場,狼會吃羊,羊會吃菜。問:農夫怎樣才能把三樣東西都安全運到對岸?」
(百度找了張經典兒童圖片,笑死~)
教室里響起一陣輕微的笑聲。
這問題對於他們這群大學生來說確實太經典了,經典到在座的人大部分小時候就見過。
耿敏裕也笑了下,緊接著說道:「這個益智小遊戲,小學生用試錯法能解,老太太靠生活經驗也能解。」
「但今天不是來玩遊戲的,這個例子可以讓你們直觀地感受一下,數學建模到底建的是什麼。」
「所以,誰先來回答一下,農夫到底該怎麼過河?」
話落,他的目光落到了教室正中間的韓川身上。
與此同時,教室中其他的參加建模大賽的學生也都將目光投了過來,因為這裡除了他,其他人基本都參加過至少一次建模大賽。
韓川也沒有猶豫,站起來直接開口道。
「第一步:農夫先帶羊去右岸,左岸剩狼+菜(安全),右岸農夫+羊(安全)。」
「第二步:農夫空手回左岸,左岸農夫+狼+菜(安全),右岸羊(安全)。」
「第三步,農夫帶狼去右岸,左岸剩菜(安全),右岸農夫+狼+羊(農夫在場,安全)」
「第四步,農夫帶羊回左岸,左岸農夫+羊+菜(安全),右岸狼(安全)。」
「第五步,農夫帶菜去右岸,左岸剩羊(安全),右岸農夫+狼+菜(安全)。」
「第六步,農夫空手回左岸,左岸農夫+羊(安全),右岸狼+菜(安全)。」
「第七部,農夫帶羊去右岸,人,狼,羊,菜全部到達,完成。」
對他來說,這種問題的難度和小學生做的作業沒啥區別。
教室中,對於韓川能這麼快就解答出來,其他的學生也沒什麼驚訝的。
畢竟這玩意實在太簡單了。
如果一個能發SIMA頂刊的學生被這個難住了,那反而值得他們驚訝。
講台上,耿敏裕教授點點頭,笑著說道:「回答正確。」
停頓了一下,他緊接著繼續朝韓川詢問道:「那麼,這個過河問題中的『狀態』和『約束』,是哪些?」
韓川:「狀態是誰在河的哪一邊,約束是狼和羊不能單獨在一起、羊和菜不能單獨在一起、船每次只能載農夫加一樣東西』。」
「對!」
耿教授笑了笑,接著說道:「狀態和約束找到了,接下來就是把它們翻譯成數學語言。」
說著,他拿起粉筆在黑板上對剛剛畫了一個簡單的狀態轉移圖。
人狼羊菜在河邊的不同狀態位置用方框表示,箭頭則標註了每一次渡河的動作。
「在數學中,狀態可以用向量表示,約束用邏輯條件表示。」
「然後你會發現,這個問題本質上是在一個有限的狀態空間裡,尋找一條從初始狀態到目標狀態的安全路徑。」
「這個路徑,就是解,而這就是建模。」
「它能夠把一個生活中的問題,翻譯成數學結構。」
「這個翻譯的過程,比最後的求解更重要。因為只要你翻譯對了,求解就有現成的工具,直接計算出來。」
「今天我要講的內容,就是怎麼做好這個『翻譯』。」
「好了,接下來我們先從最基礎的模型類型——線性規劃開始......」
......
PS:二更求月票求推薦票求追讀求評論~
雖然過去幾個月的時間他學習的重點著重在數學分析和解析數論領域,但這些基礎數學知識多多少少還是都學習了一些的。
儘管遠比不上數學分析和解析數論兩大領域,但應對建模大賽完全足夠了。
唯一需要他重點學習一下的,是計算機相關的一些軟體。
雖然說作為建模手的他不需要要成為頂尖的程式設計師,但也得熟悉相關的工具才行。
什麼都不懂,那不是扯犢子麼。
第一次的見面集訓結束後,韓川就背著電腦去了圖書館。
在數學專區找了個靠窗的位置坐下,把許志遠發的那份軟體清單打開。
清單上列了五款工具:MATLAB、LINGO、SPSS、Python、LaTeX。
前三款是競賽常用的商業軟體,後兩款是開源工具。
作為三人小組隊長的許志遠也算是盡心盡力了,給他的清單上甚至還標註了每款軟體需要掌握的程度。
MATLAB要求熟練,LINGO和SPSS要求會用,Python要求能看懂並修改已有的腳本,LaTeX要求能套用模板寫論文就行。
圖書館的網速不快,這幾個軟體加起來有十幾個G了,進度條跟地上的蝸牛一般爬著。
等待軟體下載的同時,韓川也沒閒著,他從書包里抽出那本《數學建模算法與應用》繼續啃之前沒看完的部分。
這本書的難度對他來說並不高,線性/非線性規劃、變量賦值、矩陣運算、微分方程建模...這些東西對現在的他來說閱讀起來基本沒啥門檻。
像矩陣運算這些東西在高等代數裡已經學透了,而MATLAB的語法也不過是把數學語言翻譯成另一種形式而已。
......
周三,上午九點,韓川準時來到了數模實驗室。
教室中已經有不少人提前到了,坐在中間的許志遠朝著韓川揮了揮手,示意這邊。
等待了一小會,負責上課的耿敏裕教授帶著個保溫杯走了進來。
掃了一圈教室中的學生後,耿敏裕隨和地笑了笑,開口道:「人都到齊了吧?我就懶得點名了啊。」
停頓了一下,他放下保溫杯,點開了實驗室中的電腦,將裡面的教材投放到銀幕上。
「今天咱們上建模的第一課,先了解一下建模到底是什麼。」
說著,耿敏裕操作了一下滑鼠,銀幕上一張圖片跳了出來。
圖片中有一個農夫,一隻狼,一隻羊,還有一筐白菜聚集在一條小河邊,河邊有一條小船。
看著圖片,耿教授掃視了一眼教室中的學生,笑著開口道。
「大家應該都玩過或者見過這種益智類的小遊戲,農夫要帶狼、羊、菜過河。河邊只有一條小船,船每次只能載農夫和一樣東西(農夫必須划船)。」
「如果農夫不在場,狼會吃羊,羊會吃菜。問:農夫怎樣才能把三樣東西都安全運到對岸?」
(百度找了張經典兒童圖片,笑死~)
教室里響起一陣輕微的笑聲。
這問題對於他們這群大學生來說確實太經典了,經典到在座的人大部分小時候就見過。
耿敏裕也笑了下,緊接著說道:「這個益智小遊戲,小學生用試錯法能解,老太太靠生活經驗也能解。」
「但今天不是來玩遊戲的,這個例子可以讓你們直觀地感受一下,數學建模到底建的是什麼。」
「所以,誰先來回答一下,農夫到底該怎麼過河?」
話落,他的目光落到了教室正中間的韓川身上。
與此同時,教室中其他的參加建模大賽的學生也都將目光投了過來,因為這裡除了他,其他人基本都參加過至少一次建模大賽。
韓川也沒有猶豫,站起來直接開口道。
「第一步:農夫先帶羊去右岸,左岸剩狼+菜(安全),右岸農夫+羊(安全)。」
「第二步:農夫空手回左岸,左岸農夫+狼+菜(安全),右岸羊(安全)。」
「第三步,農夫帶狼去右岸,左岸剩菜(安全),右岸農夫+狼+羊(農夫在場,安全)」
「第四步,農夫帶羊回左岸,左岸農夫+羊+菜(安全),右岸狼(安全)。」
「第五步,農夫帶菜去右岸,左岸剩羊(安全),右岸農夫+狼+菜(安全)。」
「第六步,農夫空手回左岸,左岸農夫+羊(安全),右岸狼+菜(安全)。」
「第七部,農夫帶羊去右岸,人,狼,羊,菜全部到達,完成。」
對他來說,這種問題的難度和小學生做的作業沒啥區別。
教室中,對於韓川能這麼快就解答出來,其他的學生也沒什麼驚訝的。
畢竟這玩意實在太簡單了。
如果一個能發SIMA頂刊的學生被這個難住了,那反而值得他們驚訝。
講台上,耿敏裕教授點點頭,笑著說道:「回答正確。」
停頓了一下,他緊接著繼續朝韓川詢問道:「那麼,這個過河問題中的『狀態』和『約束』,是哪些?」
韓川:「狀態是誰在河的哪一邊,約束是狼和羊不能單獨在一起、羊和菜不能單獨在一起、船每次只能載農夫加一樣東西』。」
「對!」
耿教授笑了笑,接著說道:「狀態和約束找到了,接下來就是把它們翻譯成數學語言。」
說著,他拿起粉筆在黑板上對剛剛畫了一個簡單的狀態轉移圖。
人狼羊菜在河邊的不同狀態位置用方框表示,箭頭則標註了每一次渡河的動作。
「在數學中,狀態可以用向量表示,約束用邏輯條件表示。」
「然後你會發現,這個問題本質上是在一個有限的狀態空間裡,尋找一條從初始狀態到目標狀態的安全路徑。」
「這個路徑,就是解,而這就是建模。」
「它能夠把一個生活中的問題,翻譯成數學結構。」
「這個翻譯的過程,比最後的求解更重要。因為只要你翻譯對了,求解就有現成的工具,直接計算出來。」
「今天我要講的內容,就是怎麼做好這個『翻譯』。」
「好了,接下來我們先從最基礎的模型類型——線性規劃開始......」
......
PS:二更求月票求推薦票求追讀求評論~