我在人工智能课上有一项任务。守卫城墙的士兵 - 家庭作业
这是一个问题,我们必须解决使用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的方法。谢谢大家的回答。 –