【小研究】魔塔通关路线求解是NPC问题的证明&讨论
魔塔吧
全部回复
仅看楼主
level 10
不知道之前有没有人做过这个问题,如有雷同纯属巧合。
偏理论,也是个人的一点兴趣研究。若有异议、疑问、看法,欢迎讨论!
太长不看:我给魔塔问题下了一个定义,证明了魔塔问题是NPC问题。由于真正的魔塔问题会比我这里描述的问题复杂,因此魔塔求解器的问题难度(至少)是NPC。
目前,P=NP?猜想既没有被证真也没有被证伪。也就是说,魔塔求解器目前没有找到多项式时间算法,且目前普遍认为不存在多项式时间算法。
其实就是告诉你:如果想写一个程序来求解魔塔通关路线,基本不用考虑高效的多项式时间算法了,直接回溯+分支限界说不定性价比挺高的。
一些概念:
P:多项式时间可解
NP:多项式时间可验证
NP难:比所有NP问题都难的问题
NPC(NP完全):NP难且属于NP的问题(即NP问题中最难的问题)
以下是证明过程:
2020年07月02日 15点07分 1
level 12
[滑稽]
2020年07月02日 15点07分 2
这人这个时候在刷塔吧我是没想到的[滑稽]
2020年07月02日 15点07分
@SpiritedAwayCN 因为你出现在了我的关注列表里[滑稽]
2020年07月02日 15点07分
@ji00003924 啊这,我是基本上都不刷塔吧了[滑稽]
2020年07月04日 11点07分
[滑稽]
2020年07月04日 14点07分
level 15
这格式让我想到了量子力学
2020年07月02日 15点07分 3
Typora,本来想用Latex但嫌麻烦[滑稽]
2020年07月02日 23点07分
level 7
啊。虽然不知道这项知识如何应用,虽然好早就有人猜出魔塔是np问题,但严格证明你这里好像是第一次。我觉得从数理的意义上证明是很重要的。给大佬跪了[啊]
这贴建议加精[滑稽]
2020年07月02日 16点07分 4
level 8
1.有证明挺好的,虽然我看不懂
2.根据证明结论,我要励志做一个比NPC还要难的魔塔游戏
3.楼主以前的头像我记得是一个金头怪,长角的那个(记错了不要打脸)
2020年07月02日 17点07分 5
个人觉得做出NPC还要难的魔塔在机制上需要做出变化,并且不是很容易。这里的难度和游玩难度是两个概念,这里指计算难度。按照现在的结论,魔塔是NP难是比较肯定的,但证明里面提到了“任何魔塔问题都是NP”,因为只要按照攻略打就能验证这种打法能否最终通关。
2020年07月02日 23点07分
【字数超了】 因此如果有一个比NPC还难的魔塔,一个必要条件就是它的攻略肯定不是多项式长度的。如果真的要做,我觉得一个可能的方案是从生命攻防金币的数值下手,因为它们的输入规模是数值的对数,如果攻略规模能够与这些数值同阶,那攻略就不是多项式时间了。但这也只是个必要条件。[咦]
2020年07月02日 23点07分
@SpiritedAwayCN 我暴露了[乖]这么说的话比npc还要难的问题是就算看攻略也不一定能过的咯,那我还真的想不到除了引入随机因素和动作操作要素以外的方法了
2020年07月03日 04点07分
@斯莱特恩_艾力 引入随机因素和动作操作之后,这个就不是这里讨论的东西了。这也没办法算出攻略啊,把希望寄托于中心极限定理吧[滑稽]
2020年07月03日 08点07分
level 13
顶级理解[滑稽]
记得以前冒灌还用拓扑学解释过魔塔[滑稽][滑稽]
2020年07月03日 00点07分 6
topology?这个就是我的知识盲区了,感觉应该是讲布局?[滑稽]
2020年07月03日 00点07分
@SpiritedAwayCN 没错[滑稽],他想把魔塔复杂的地图转换成一个图形[滑稽]精品中可以找到原贴[滑稽]https://tieba.baidu.com/p/2512838618
2020年07月03日 00点07分
@SpiritedAwayCN 不过我没搞清楚p=np究竟是哪个领域的数学[滑稽]
2020年07月03日 00点07分
@喜欢架 计算机科学,复杂性理论
2020年07月03日 01点07分
level 8
我来帮你呼叫一下 @Zerg234 大佬,不知道他现在有没有时间帮你验证你的理论是否正确。[惊哭]
2020年07月03日 02点07分 7
关我屁事[阴险]
2020年07月03日 02点07分
level 3
先感谢楼主分享![真棒]
比起求最优解或者验证有没有解,我在想能不能能不能退而求其次,通过现实中魔塔的特性来求近似解。首先现实中的魔塔都是有解的(毕竟是给人玩的),而且一般都有一条或几条大优路线,不然作者也很难保证通关。我在想能不能从这个特性下手:例如地牢风的魔塔,从第一层开始,对于一个堵在x层的怪物,统计x-1层能获得的资源总量,并根据这个数值计算难度。然后对于难度值超过一个临界点的怪物使用针对性加点,用最有利的状态去迎击。这样也许就可以在多项式时间内找到近似解,也更接近真人的拆塔方法
2020年07月03日 04点07分 8
因此在证出不存在近似算法之前,我认为有可能存在某种基于贪心的求解,得到P时间的近似算法。[真棒]
2020年07月03日 05点07分
我同意层主观点。对于近似算法有一个关键的评价指标是近似比。我觉得在这里近似比可以定义为:程序给出攻略的损血 / 最优损血。事实上,我曾经思考过魔塔是否存在近似算法以及近似比下界。比如货郎问题就不存在近似算法(除非P=NP);装箱问题不存在近似比<1.5的近似算法。但我没能证出
2020年07月03日 05点07分
level 11
tql[真棒][真棒][真棒]
2020年07月03日 06点07分 9
level 7
经典的0-1背包问题是npc的,楼主定义了标准魔塔问题且证明了0-1背包问题可以约化为标准魔塔问题,因此标准魔塔问题至少是npc的,后面提到有机关门的魔塔可以约化为另一npc问题从而夹逼了标准魔塔问题和机关门魔塔问题都是npc的。
但这个标准魔塔问题只有宝石和守护怪物,没有血瓶和门,且实际情况中主路支路不好界定,魔塔的模型还有待探寻。不知道动态优化好不好研究。
2020年07月03日 17点07分 10
如果算法A能够解决更复杂的魔塔,那么算法A一定能解决标准魔塔问题(或者有商店的魔塔问题)。从而证明任意魔塔问题都是NP难的。
2020年07月03日 22点07分
动态规划有个比较关键的瓶颈:如果要弄出多项式时间的DP,则生命值等数值不能作为下标,否则不是多项式时间算法(因为要求复杂度与生命值的对数是多项式关系);在这种情况下,个人觉得魔塔问题很难找到最优子结构。[小乖]
2020年07月03日 23点07分
第一条回复的补充:算法A的关系证明了标准魔塔问题可以归约到任意魔塔问题(比如有血瓶、门的魔塔问题) ,任意魔塔问题不比标准魔塔问题简单,从而任意魔塔问题是NP难。因为攻略多项式时间可验证,从而任意更复杂模型的魔塔是NPC。
2020年07月03日 23点07分
吧务
level 13
看到你在空间发了个 没想到贴吧里也有发[滑稽]
2020年07月04日 03点07分 11
level 11
哇呜~
2020年07月04日 08点07分 12
level 14
淳安大佬,我来晚了[滑稽]
2020年07月04日 12点07分 13
level 7
真人制作的塔可能还真有暴力的可能性,因为大部分分支路线没几步就死了[滑稽]
2020年07月04日 16点07分 14
当然游戏机制得简单点
2020年07月04日 16点07分
level 10
大佬大佬,炸破飞和加点可以也考虑进来吗?[乖]
2020年07月05日 04点07分 15
参考我给10楼的回复。任何更复杂的问题都不必标准魔塔问题简单,所以各种增加了道具、机制的魔塔都是NP难的。
2020年07月05日 04点07分
@SpiritedAwayCN 那不属于np的能举个例子吗?
2020年07月05日 05点07分
@肥肥白白🌱 其实日常生活中的问题基本都是NP。一些不是NP的包括:已被证明是难解的(如判定Presburger算术中的命题真假)、图灵机不可计算的(如停机问题、求丢番图方程整数解问题)等。
2020年07月05日 05点07分
1