2016-05-14 30 views
0

我想用遺傳算法來解決這個問題。但找不到任何方法來計算適應值。我不是在寫一個程序,而是在一張紙上解決這個問題。
問題是我無法找到迎合衝突的適應值。例如class1和class2不能在同一天。使用遺傳算法的小時間表

每位教授一次只能教一門課。


週一
週三
週五

的類別是:
類1 - 簡介到編程:從8符合:00-9:00AM。
類2 - 簡介人工智能:滿足從8:30-9:30AM
第3類 - 自然語言處理:從符合9:00-10:00AM
第4類 - 計算機視覺:從9:00滿足-10:00AM
5級 - 機器學習:從9滿足:30-10:30AM

教授們:
教授,誰有空教課3和4
乙教授,可以教授2,3,4和5類。
C教授,他是可用於教1,2,3,4,5類。

任何形式的幫助將不勝感激。

+0

幫助我們:你的健身功能現在是什麼樣子? – Ray

回答

0

在您的場景中,健身功能需要指示解決方案創建了多少次碰撞,因此您會得到類似負值的東西。例如。班級衝突時爲-100,職業衝突時爲-50。 0的適應值將是滿足所有所需約束的解決方案。

然後,您還可以添加一些邏輯來尊重教授工作量的平衡。一個簡單的想法是考慮最小和最高教師工作量之間的差異。差異越小,適應值應該越高。要麼重新減去差值,就像約束一樣,或者反轉它,例如, 100/DIFF。