如何解决高效的猜测算法
| 我将一个现实世界的问题抽象为以下问题: X是字母所有可能排列的集合。 Y是一个字符串池。 F是一个函数,它从X提取候选x并根据x是否属于Y返回布尔值。 F昂贵而X巨大。 从Y提取尽可能多的结果的最有效方法是什么?误报是可以的。解决方法
引入另一个便宜的函数G,并测试x是否属于y。每当F返回true时,G必须返回true,并且在F返回false时可以返回true。首先使用G进行测试,仅当G返回true时才使用F进行测试。
考虑到您的表达方式的一般性,我看不出要说的更具体。
, 确实没有办法很好地回答这个问题,因为针对这些类型问题的大多数解决方案都是特定于领域的。
您可能应该在这里尝试您的问题:https://cstheory.stackexchange.com/
但是,举一个您正在谈论的可能性范围的例子; “旅行推销员”问题似乎很相似-通常可以通过“自组织地图”解决:http://www.youtube.com/watch?v=IA6eGYMyr1A
当然,“解决方案”人员提出的旅行业务员问题不一定是最佳解决方案,而只是一个很好的解决方案...所以您的问题并不表示这是否适用是否适合您的情况。
听起来您正在寻求某种更有效的暴力破解技术...但是根本没有。
再举一个例子,为了破解密码(这似乎与您的问题类似),人们通常先尝试使用“常用单词/密码”,然后再使用总蛮力……但这又是特定于域的解决方案。
, 通过实施基于增量的得分计算,使F的成本降低。然后使用元启发法(或分支定界法)找到尽可能多的Y \(例如,使用Drools Planner)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。