阴阳师悬赏封印求解

1.前言

上回书我们说到,求解阴阳师悬赏封印的最优策略是一个线性规划问题,更准确的说是一个整数规划问题。上次的初代模型中,我们在探索副本关卡中求解。

2.初代模型存在的问题

在初代模型中,我们给出了矩阵A。
在这里插入图片描述
首先该模型仅包含了探索副本的所有关卡,忽略了御魂副本、秘闻副本、挑战关卡,因而有局限性。其次没有对关卡进行筛选,因为阴阳师们的能力不同,可以攻打的关卡也不同。例如根据初代模型的结果,应当挑战第十七章的某个关卡,但是我太菜了,只能打到第十六章。

3.改进

首先我们按照上次的方法获取原始的御魂妖怪、秘闻等数据并处理。
其次我们对初代模型进行改进。

def optimize(monsterList,monsterNum,exploreMax, enableChallenge, yuhunMax, miwenMax):

参数说明:
monsterList-需要的妖怪列表 list
monsterNum-需要妖怪的相应数量 list
exploreMax-探索最大章节 int
enableChallenge-是否允许挑战 boolean
yuhunMax-御魂副本的最大层数 int
miwenMax-秘闻副本可以达到的最大层数 list

通过后四个参数,我们就可以限定当前可以挑战的关卡范围,从而不至于出现求解结果超出阴阳师能力的尴尬情况。

4.界面设计

1)筛选器

在这里插入图片描述
首先是一个筛选器,用来限定阴阳师可以挑战的关卡范围。

2)妖怪选择器

在这里插入图片描述
接着是一个妖怪选择器,一般的悬赏封印都是四种不同的妖怪,但我们也允许用户添加或删除。选好之后点击计算按钮。

3)计算结果

在这里插入图片描述
即可得到一个计算结果。有理由相信,这就是最优解!

5.用户体验改进

考虑到筛选器部分的操作过于繁琐,如果每次进入页面都需要用户重新选择的话,显然用户体验过于差劲。我们可以将用户的初次选择记录到浏览器cookie上,下次使用直接将上次用户的选择作为默认选项。

6.民用接口

我启用了备用服务器,各位阴阳师可以访问
http://47.100.225.209
进行规划

7.工作回顾

日期工作语言行数
8-9收集、处理数据,编写算法Python400
8-16提供筛选功能Python20
8-16编写界面HTML+JavaScript469
8-17调试、配置服务器--

8.细思极恐

突然听说整数线性规划问题好像是个NP问题!因此在规划求解时,我设置了三秒的最大求解时间,防止程序阻塞。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值