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

選課演算法

發布時間: 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串表示一種課程選擇策略,對應一個學分,還對應一個對各種約束的滿足程度,將對約束的違反當做罰函數。然後進行演化演算法的選擇交叉變異就開始搞,反正演化演算法不能說來話長,如果感興趣自己看看。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:587
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:882
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:575
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:678
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1006
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:251
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:800
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:706