根据我的理解,所有NP完全问题都是NP难的,但已知一些NP难问题不是NP完全的,NP难问题至少与NP完全问题一样难.
这是否意味着非NP完全的NP难问题更难?它是如何变得更难?
我试图恢复密码.考虑到这一点,我认识到"密码恢复"这个问题是NP问题的一个很好的例子.如果您知道密码,则很容易在多项式时间内验证密码.但是如果您不知道密码,则必须在整个空间内搜索可能显示为指数时间的可能解决方案.
现在我的问题是:这不是证明P!= NP,因为"密码恢复"是NP的一个元素,可以显示需要多于多项式时间来运行?
在我目前的面试准备期间,我遇到了一个问题,我遇到了一些难以获得最优解的问题.
我们给出了一个数组A和一个整数Sum,我们需要找到所有不同的子序列,A其总和等于Sum.
例如.A={1,2,3,5,6} Sum=6然后回答应该是
{1,2,3}
{1,5}
{6}
现在我可以想到两种方法,
Sum并检查分区的元素是否存在A 请引导我的想法.
通过尝试所有可能性,计算给定字符串的所有字符串排列可以在 O(n!) 中解决。
现在,看看旅行商问题,我们可以通过尝试城市的所有排列来解决它。假设我们有城市 A、B 和 C。假设我们从城市 A 开始。通过计算 BC 字符串的所有排列,我们得到 ABC ACB,然后我们只需求和(在多项式时间内,AB、CB 和 CA 之间的距离为第一个案件...)
那么这不是旅行商问题的所有字符串排列的减少吗?它不是一个NP完全问题吗?
我正在学习与 Berkeley 的 AI 课程类似的课程,并且我正在尝试找到 Q7 的 foodHeuristic(问题可以在此处找到),但是我不允许使用 mazeDistance,因为它的实现使用 BFS,它扩展了节点。我根本不知道如何找到这样的启发式方法。我尝试过 - 曼哈顿到壁橱食物的距离,曼哈顿到最远食物的距离,加上剩余的食物量,曼哈顿到最远食物的距离+曼哈顿从最远食物到壁橱食物的距离。
媒体搜索几乎到处都有食物,那么如何才能有效地计算它呢?
没有 mazeDistance 是否有可能击败 7000?
有关于食物启发的线索吗?
我正在尝试以一种直观的方式将我听到的P,NP,NP-Complete和NP-Hard包裹起来,以便我不必记住他们的定义.
在下图中(左手方案,P!= NP),NP-Complete和NP-Hard之间存在重叠区域.这是否意味着一些问题既是NP-Complete又是NP-Hard?根据这个特殊的答案,我发现这是矛盾的:NP,NP-Complete和NP-Hard之间有什么区别?.
上面链接中的表说NP-Complete问题在多项式时间内是可验证的,而NP-Hard问题则不是.那怎么会有重叠呢?

谁可以给我解释一下这个?首先,我知道为什么这个代码
String getName(){
for(;;){}
}
Run Code Online (Sandbox Code Playgroud)
将违反return类型方法:它是无限的,但为什么这段代码需要最终的返回值?
String getName(){
for(;i < limit; i++){// i is already defined
if(someArrayList.get(i).isDead)
continue;
return someArrayList.get(i).name;
}
//needs a final return
}
Run Code Online (Sandbox Code Playgroud)
返回值存在于循环内部并返回getName()方法的值,那么原因是什么?另一篇文章建议,如果循环对我的条件是负面的,那么我用这样重写:
String getName(){
for(; i < 10; i++){// i is already defined
if((i+1) == limit){
if(!someArrayList.get(i).isDead)
return "";
}else{
if(someArrayList.get(i).isDead)
continue;
return someArrayList.get(i).name;
}
}
// needs a final return
}
Run Code Online (Sandbox Code Playgroud)
相同的编译时错误,即使我i在for循环条件中重新定义0,所以我i变为零,如果内部条件检出否定我自己处理它.总而言之,如果我将它嵌套在无限循环中,那就没关系.
String getName(){
for(;;){
for(; i < limit; i++){// …Run Code Online (Sandbox Code Playgroud) 我正在研究 NP 完备性,我对 NP 问题的定义有疑问。
材料说
不确定性是指可以在 O(1) 时间内从多项式多个选项中猜测出解决方案
这里,什么意思polynomially many options in O(1) time?
例如,对于著名3SAT问题,选项不是呈指数级增长吗?
(bc 每个文字都可以是trueorfalse并且如果有 n 个文字,则选项总数为2*2*2* ... * 2 = 2^n)
然而,它说3SAT问题是NP问题。证书数量呈指数级增长,怎么可能是NP问题呢?
谢谢
algorithm ×3
np ×3
np-complete ×2
p-np ×2
heuristics ×1
java ×1
loops ×1
np-hard ×1
osgi ×1
pacman ×1
path-finding ×1
proof ×1
theory ×1