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

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

规则暂时略过。


贪心

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


模拟退火

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

解空间:

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

初始解:

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

neighbour解:

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

评估函数:

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


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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值