Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 全组合树算法_Algorithm_Path_Tree_Combinations - Fatal编程技术网

Algorithm 全组合树算法

Algorithm 全组合树算法,algorithm,path,tree,combinations,Algorithm,Path,Tree,Combinations,我有一个关于树木的问题。我有大约100句关于“汽车”这样的主题的句子。这些句子基本上都是关于汽车的。如果用户提交查询:“查找单词“engine”和“oil”之间的所有单词链接组合”。我想查找所有可能的单词链接,以便“engine”和“oil”通过句子中任意数量的类似单词连接 比如说 发动机运转时是热的 这辆汽车有一个发动机 汽车使用机油 在这种情况下,答案将是:发动机->汽车->机油(三个单词组合)。我想找到所有可能的组合,以便最终“发动机”和“机油”相互连接。它不是最短的路径,也不是最长的路径

我有一个关于树木的问题。我有大约100句关于“汽车”这样的主题的句子。这些句子基本上都是关于汽车的。如果用户提交查询:“查找单词“engine”和“oil”之间的所有单词链接组合”。我想查找所有可能的单词链接,以便“engine”和“oil”通过句子中任意数量的类似单词连接

比如说

  • 发动机运转时是热的
  • 这辆汽车有一个发动机
  • 汽车使用机油
  • 在这种情况下,答案将是:发动机->汽车->机油(三个单词组合)。我想找到所有可能的组合,以便最终“发动机”和“机油”相互连接。它不是最短的路径,也不是最长的路径,而是在所有方向和文字上运行的所有可能的路径。当然,只要路径不相似,甚至可以使用1000个单词组合来表示“发动机”和“机油”

    有没有办法做到这一点。我试着先用面包,但有点棘手。例如,组合可以是

  • 发动机->汽车->运行->停止->机油
  • 发动机->汽车->机油
  • 发动机->快速->制动器->机油
  • 谁能帮我一下吗。这里的逻辑和思想是什么。我不能忽略我已经访问过的一个词,因为这会停止算法,不会给我所有的链接

    请提供帮助和见解

    谢谢


    fa323

    你的问题太不明确了。。。也就是说,即使在您的示例中,也不清楚为什么答案不包括
    engine->an->oil

    此外,它实际上与树没有任何关系,而是处理图形

    您需要做的第一件事是确定如何构建图形。一个合理的方法是,如果两个词都出现在一个特定的句子中,那么两个词之间应该有一个边缘


    然后你必须决定你想要输出什么。我很怀疑你想要所有的路。为什么?好吧,如果你建立我描述的图表,那么即使只使用你的第一句话,从发动机到机油有24条路径,不计算循环路径。然而,如果这正是您想要的,您可以通过深度优先搜索找到图形中的所有非循环路径,在深度优先搜索中,当您将节点推到堆栈上时,您可以标记访问的节点,当您将其取下时,您可以取消标记该节点。

    您肯定会找到循环。。。你想用它们做什么?你肯定不会在树中找到循环。但这不是一棵树,它是一个泛型graph@ltjax所以标题和第一句都错了。好的,谢谢。我会设法弄明白的。您是正确的“发动机->发动机->机油”也有效。