我在人工智能課上有一項任務。守衛城牆的士兵 - 家庭作業
這是一個問題,我們必須解決使用R遺傳算法(使用GA庫)。我正在尋找一些如何解決這個問題的想法。
描述
野蠻人圍攻城市。將軍命令一天中每小時有多少士兵必須守衛城牆。這是他的表:
防禦Time of the day | Number of soldiers
00:00 - 01:00 150
01:00 - 02:00 160
02:00 - 03:00 160
03:00 - 04:00 170
04:00 - 05:00 350
05:00 - 06:00 380
06:00 - 07:00 400
07:00 - 08:00 420
08:00 - 09:00 450
09:00 - 10:00 470
10:00 - 11:00 500
11:00 - 12:00 500
12:00 - 13:00 450
13:00 - 14:00 350
14:00 - 15:00 300
15:00 - 16:00 300
16:00 - 17:00 310
17:00 - 18:00 350
18:00 - 19:00 350
19:00 - 20:00 330
20:00 - 21:00 300
21:00 - 22:00 250
22:00 - 23:00 200
23:00 - 24:00 170
指揮官希望兵來將完全集中,當他們在巡邏,所以他給出了這樣的命令:
- 守衛在牆上整整6每個士兵小時(24小時):在牆上4小時,然後他休息2小時,然後他又回到牆上再過2小時
- 在午夜之前開始的焊料,繼續在第二天 - 算法必須考慮日子的連續性。 需要多少名士兵才能守護城牆?
我的想法而已
可能aproaches中的兩個(到目前爲止):
第一種方法
GA的健身功能會接受一些焊料,然後進行模擬:
- 將初始分數設置爲0.
- 如果在模擬將會有城市中的士兵缺乏或多餘,然後從分數中減去。
- 最佳解決方案是當分數爲零時(所需士兵數量最佳)。
第二條本辦法
創建初始羣體(焊料),並在健身功能指揮官適用規則(我真的不知道如何定義這裏的上述規則),然後運行GA直到我們得到一些有用的分數。
最後我用非GA的方法。謝謝大家的回答。 –