當前位置:首頁 » 操作系統 » 選課演算法

選課演算法

發布時間: 2025-05-09 17:44:38

⑴ 數學建模選課問題完整解答

這個問題應該算是一個0-1背包問題吧。18個學分算是背包容量,每門課的學分是物體體積,物品收益都相同,是1.

第一問屬於背包的最少收益問題,第二問是最大收益問題。

然後這個問題應該就可以用經典背包問題求解演算法了。比如動態規劃:
對課程1,考慮選擇它和不選擇它
如果選擇它,就只需要再選擇13個學分,然後這個問題會簡化為要選擇13個學分,少了課程1後的課程選擇問題,問題還是原先的問題,但是問題的規模小了點,剩下的繼續遞歸。
如果不選擇它,就需要選擇18個學分,,問題簡化為18個學分,但是沒有課程1,剩下的也遞歸下去。
兩種選擇,哪種優選擇哪一個。

當進行遞歸的時候,如果碰到選擇方案不能滿足約束條件,即任選課大約1/6小於1/3,則該方案返回0值,如果還有同修要求的,比如限選課6,如果開始選擇的是不選課程1,那麼對於課程6,就不存在選擇和不選擇問題了,必然是不選擇,如果開始第一步選擇了課程1,當遞歸到課程6的時候才有選擇和不選兩種選擇。

最終會得到一組第一問和第二問的最優解,則第三問結果也有了。

另外,附贈一個思路:可以查一下關鍵詞【演化演算法】,不用確定性演算法,而是用智能優化演算法,將所有的課用一個二進制位進行編碼,0表示不選,1表示選擇。每一種01串表示一種課程選擇策略,對應一個學分,還對應一個對各種約束的滿足程度,將對約束的違反當做罰函數。然後進行演化演算法的選擇交叉變異就開始搞,反正演化演算法不能說來話長,如果感興趣自己看看。

熱點內容
自製網路存儲 發布:2025-05-10 01:03:29 瀏覽:504
java防重復提交 發布:2025-05-10 01:02:32 瀏覽:736
如何在家用樂高製作解壓玩具 發布:2025-05-10 00:55:07 瀏覽:438
linux的mtu 發布:2025-05-10 00:54:52 瀏覽:154
android判斷root 發布:2025-05-10 00:44:06 瀏覽:688
if條件編譯 發布:2025-05-10 00:21:02 瀏覽:72
圓管根數演算法 發布:2025-05-10 00:18:55 瀏覽:676
中短發編程 發布:2025-05-10 00:16:07 瀏覽:39
安卓相機的解析度在哪裡 發布:2025-05-10 00:15:28 瀏覽:236
拉鉤的雲伺服器 發布:2025-05-10 00:10:29 瀏覽:229