工作笔记——一键配招算法思路,模拟退火

来源:互联网 发布:mac os sierra解锁 编辑:程序博客网 时间:2024/06/05 09:04

在游戏核心的基础上写一键配招。使尽可能多的招式克制对面。

规则暂时略过。


贪心

拿笔算了一上午,发现无论怎么贪心都有反例,摔笔。


模拟退火

万能算法。。遇到不会的就用这个= =

解空间:

一个list,装若干自己的技能

初始解:

唯一麻烦的地方,这里用的贪心找初始解,以品质、长度共同构成primary key给技能分组,排序,取若干组直到再取下一组就超过要求技能数,如果刚好就return,如果还差技能就计算敌人技能中相同品质、长度的技能有哪些段位,在自己下一组技能中找尽量多克制对面的招式放进剩余技能空位。好难描述。

neighbour解:

交换两个招式的位子(初始解已经尽量保证了用了强力的招式,如果替换,只有可能替换到品质、长度更低,或者品质、长度一样但段位不同,而初始解又保证了段位尽量克制,所以不用替换招式(其实也不一定是最好的,比如两个长度1的中品质技能是有可能比一个长度2的高品质技能好的,但是这种情况太少改动收益不大))

评估函数:

将list里的技能和敌人的招式对比,克制对面招式+100分,平手+50分


调整温度、降温速率、阿伏伽德罗常数,随便搞搞



0 0
原创粉丝点击