首页 文章
  • 4 votes
     answers
     views

    加权图中最短路径的数量

    这是一个问题:给定有向图G =(V,E),源顶点s $ epsilon V,我们知道G中的所有周期都是正权重(> 0) . 在Bellman-Ford运行之后我们也得到了图表,这意味着对于V中的每个v我们都知道d [v](从s到v的最短路径)和pi [v](v的前身) 描述一种算法,用于查找V中所有v的从s到v的最短路径数 . 算法必须在O(V E)中运行 *我们无法编辑Bellman-Fo...
  • 3 votes
     answers
     views

    BGL Dijkstra具有捆绑属性的最短路径

    我正在尝试在BGL中使用dijkstra最短路径算法来计算未加权无向图上的简单ST路径 . 我可能会关注未来的边缘权重,但是现在我只想将边缘遍历视为统一的成本 . 我也在跟踪多个边缘和顶点属性,所以到目前为止我已经完成了bundled properties example,这似乎是我最接近我正在尝试做的事情 . 现在我正在试图弄清楚如何让dijkstra工作,这样我就可以进行ST搜索,但是我仍然坚...
  • 1 votes
     answers
     views

    巨型图中的最短路径

    现在我研究的图表通常不适合任何类型的内存或存储设备 . 我的问题是我需要在这些图中找到两个特定顶点之间的最短路径 . 我知道C的boost图库,我很开心 . 使用boost的图形库(以及其他图形库)的常用概念就是这样 在内存中创建顶点列表 在内存中创建边缘连接列表 调用您想要的图算法 这种方法适用于适合RAM的图形: typedef adjacency_list< v...
  • 2 votes
     answers
     views

    并行BGL - Dijkstra最短路径

    我目前正在尝试使用Parallel Boost Graph Library运行并行Dijkstra最短路径算法 . 在此页面上详细解释了它应该如何完成:http://www.boost.org/doc/libs/1_65_1/libs/graph_parallel/doc/html/dijkstra_example.html 然而,我遇到的第一个问题是,我的Windows HPC MPI和boos...
  • -1 votes
     answers
     views

    如何转储所有预定义符号?

    我想知道如何转储codeblocks编译器使用的预定义符号 . 我需要这样做的原因是因为我正在尝试编译外部库,它给了我错误,例如: .. \ ac-config.linux32.h | 216 |错误:冲突声明'typedef long int int32_t'| c:\ program files(x86)\ codeblocks \ mingw \ bin .. \ lib \ gcc \ m...
  • 0 votes
     answers
     views

    写入相邻列表图时出现未知错误

    我正在编写一个带加权边的相邻的基于列表的图 . 我的目标是实现一个图来测试Djikstra的最短路径算法 . 我在实现removeEdge功能时遇到了麻烦 . 我查看了构建消息,但我不知道下面的错误是什么 . 在下面这个之前有一些警告但是它们很小,因为它编译并运行正常 . c:\ program files(x86)\ codeblocks \ mingw \ bin .. \ lib \ gc...
  • 3 votes
     answers
     views

    创建boost :: graph edge_weight属性映射

    使用带有捆绑属性的boost :: graph . 我希望能够使用各种不同的可能边缘加权方案来运行搜索 . 如果可能的话,我不想为捆绑属性创建额外的类,并根据搜索类型传递不同的权重贴图,而无需创建新图或修改图中的所有现有属性 . 我可以手动为edge_weight_t构建property_map吗?这是我到目前为止所得到的: typedef boost::property_map<SSPSG...
  • 1 votes
     answers
     views

    BGL BasicMatrix实现与 Map

    我试图使用BGL计算图形之间的最短路径 . 我打电话的功能是 boost::johnson_all_pairs_shortest_paths(g,distances); 其中g是自定义图表类型 typedef property<label_t, int> LabelProperty; typedef property<edge_weight_t,int> EdgeWei...
  • 0 votes
     answers
     views

    std :: set中的unique_ptr找不到运算符<eventhough它在那里[重复]

    可能重复:Clang,std :: shared_ptr和std :: less / operator &lt; 所以,是的, Headers 几乎是整个问题 . 正如你从下面的片段中看到的那样,我确实实现了 operator&lt; 所以我不知道发生了什么 . 这是代码: namespace { struct Transition { string name; StateP...
  • 0 votes
     answers
     views

    使用定义的类作为图形增强库中无向图的边权重

    我是Boost Graph Library的新手,对无向图有疑问 . 我的问题是,2D空间,其中定位了几个地标 . 在开始时定义一个 Master-landmark ,目标是计算从 Master-landmark 到所有其他地标的相对姿势 . 由于网格很大,一次看到它,我只得到本地信息,意味着两个或多个地标之间的相对连接/姿势( Master-landmark 不必在每个图像中) . 鉴于这些本地...
  • 4 votes
     answers
     views

    如何将boost :: graph算法与listS,setS一起用作顶点/边缘容器?

    使用boost :: graph库的boost示例通常使用类似的图形 using namespace boost; typedef adjacency_list &lt; vecS, // edge container vecS, // vertex container undirectedS, property&lt;vertex_index_t, ...
  • 4 votes
     answers
     views

    邻接列表使用向量和对的图表表示

    我想从书籍竞争性编程实现邻接列表图形表示1.实现使用V顶点的向量并且对于每个顶点v,另一个包含与vI am连接的(相邻顶点和它的边缘权重)对的向量有问题需要输入此图表并显示输出 . 在书中,他们做了这样的宣言: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; typedef pair&lt;int, in...
  • 0 votes
     answers
     views

    在BOOST图中使用boost关联属性映射中的find()时出错

    我想实现一个 ifexists() 模板函数,它检查一个键是否存在于 Map 中 . 如果它是std :: map &lt;&gt;,我可以在模板中使用find()函数,因此可以实现我的模板ifexists()函数 . (下面) 但我使用Boost :: associative_property_map引用我的std :: map . 我可以在这个关联属性映射上使用get和put函数 . std...
  • 4 votes
     answers
     views

    Boost Graph Library:捆绑属性并跨边迭代

    只是试图了解Boost图库,我有几个问题 . 我正在编写一些代码,它是围绕BGL图形的包装类 . 我的想法是,我可以操作我想要的图形,然后调用包装器方法以GEXF(XML)格式输出图形 . 我的代码是这样的: struct Vertex { std::string label; ... }; struct Edge { std::string label; double ...
  • 10 votes
     answers
     views

    什么是BOOST的 properties Map ?

    有人可以向像我这样的Boost初学者解释什么是属性 Map 是在Boost?在尝试使用BGL计算强连接组件时,我遇到了这个问题 . 我去了属性 Map 和图形模块的文档,但仍然不知道该怎么做 . 以此代码为例: - make_iterator_property_map函数在做什么? - 这段代码的含义是什么:get(vertex_index,G)? #include &lt;boost/conf...
  • 0 votes
     answers
     views

    如何在Boost图库捆绑属性中使用数组?

    我有一个关于在boost图库中的捆绑属性中使用数组的问题 . 下面我试过并最终出现了编译错误 . 下面是我的图表声明 . struct PT_EdgeProperties{ PT_EdgeId edge_id; double weights[10]; }; typedef boost::property&lt;boost::vertex_name_t, std::string&gt...
  • 0 votes
     answers
     views

    Boost图库:通过int类型的索引获取edge_descriptor或访问边缘

    我是一个BGL新手,有一个(可能)简单的问题:我有一个有向图并使用边缘的捆绑属性,其中一个是int类型的索引 . 知道一个唯一索引,我想获得该边缘的相应edge_descriptor以便对其执行操作 . 以下示例总结了我的问题: #include &lt;boost/graph/adjacency_list.hpp&gt; struct EdgeProperties { EdgeProp...
  • 4 votes
     answers
     views

    从Boost图中删除100,000个节点

    我有一个图表(adjacency_list(listS,vecS,bidirectionalS,VertexVal)),我需要删除100,000个节点 . 每个节点还包含2个64位整数和另一个64位整数的结构 . 下面代码中发生的guid检查是检查结构中的第一个整数 . 根据VTune,在我的笔记本电脑(i7 2.7GHz,16GB RAM)上大约需要88秒 . 以下是我删除节点的方法: vert...
  • 1 votes
     answers
     views

    如何在Boost图库中向grid_graph的边添加自定义属性?

    #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;vector&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h...
  • 1 votes
     answers
     views

    如何在Boost图库中继续BFS时修改属性?

    我正在使用捆绑属性来绘制图表 . 定义如下: class Node { void AssignPlane(Plane&amp; p) Plane* dp; double errors; } void Node::AssignPlane(Plane&amp; p) { dp=&amp;p; errors=p.a+p.b+p.c;// simplified }...
  • 1 votes
     answers
     views

    连接组件或使用Boost图库进行反向搜索

    是否可以针对BGL中的双向图形(使用 ::boost::bidirectionalS 构建)运行 connected_components() ?当使用以这种方式构造的图形运行这样的东西时,我得到了分段违规: int num_comp = connected_components(g, make_iterator_property_map(component.begin(), get(ve...
  • 1 votes
     answers
     views

    如果顶点属性是指针,如何使用boost :: graph dijkstra的算法?

    我使用boost图来管理图形,我需要创建一个maxmin树 .现在我'm trying to use boost dijkstra'的算法,但我使用指向我的类的指针作为顶点属性而不是使用 typedef property&lt;vertex_index_t, int&gt; my_prop ,我现在无法改变它 .那么如何为我的图形创建predecessor_map和distance_map呢? 我...
  • 1 votes
     answers
     views

    在使用BOOST图形库生成的图形中添加随机边

    我想在我的图表中添加随机边,如下所示: #include &lt;iostream&gt; #include &lt;utility&gt; // for std::pair #include &lt;algorithm&gt; #include &lt;boost/graph/adjacency_list.hpp&gt; #include &quot;boo...
  • 2 votes
     answers
     views

    使用BGL进行图形均衡化

    您能否发布示例代码以使用BGL对有向图进行分级? levelization的定义:Vertex具有属性“int level” . 在图形的BFS遍历期间,当一个顶点被“检查”时,查看它的前任顶点的级别,取最大值,递增,并将其分配给该顶点的“级别” .
  • 1 votes
     answers
     views

    限制随机生成的图形中的顶点边数

    我使用Boost图库生成了一个随机的无向图 . 我随机添加顶点和边的数量如下: RNGType rng( time(0) ); boost::uniform_int&lt;&gt; one_to_four( 1, (N-1) ); boost::variate_generator&lt; RNGType, boost::uniform_int&lt;&gt; &gt;gen(rng...
  • 1 votes
     answers
     views

    使用Boost Graph库生成随机图时添加省略的顶点

    我有一段代码,它生成一个随机图,每个顶点最多有4个边 . 代码如下: int const N = read_int(&quot;Number of vertices: &quot;, &quot;I did not understand, try again. Number of vertices: &quot;); // Creating a instance g...
  • 2 votes
     answers
     views

    计算boost :: graph顶点中的入边和出边数

    我有以下图表类型 typedef boost::adjacency_list&lt;boost::listS, boost::vecS, boost::directedS, PathVertex, PathEdge&gt; GraphStructure; 我插入一些有向边 . 现在,对于每个顶点,我想计算边缘和边缘的数量 . 现在,我发现了m_out_edges结构 GraphStructure...
  • 7 votes
     answers
     views

    使用boost图库:如何通过从文件中读取边列表来创建图形

    我是新手来增强图形库,我想通过从文件中读取边缘列表来创建图形 . edge_list.dat 文件的示例如下: ... 123 445 4535 343 3432 454 123 345 123 566 ... 文件的每一行代表图形的边缘,每行中的两个数字是节点' ids corresponding to the edge. Now I' d喜欢使用boost图形库从文件 edge_list.d...
  • 1 votes
     answers
     views

    使用Boost Graph Library(BGL)和现有的图形数据结构

    我有一个现有的图形,由我自己的顶点和边类构建,如下所示: struct Graph; struct OutPort {}; struct InPort { OutPort* connectedOutput; }; struct Node { Graph* graph; std::list&lt;InPort&gt; inputs; std::list&lt;OutPor...
  • 0 votes
     answers
     views

    如何在Boost Graph Library上使用vertex_index_t?

    我知道这是一个非常简单的问题,但我已经搜索了很长时间,但我还没有找到简单的答案 . 我已经以这种形式定义了adjacency_list矩阵: typedef adjacency_list&lt;vecS, listS, undirectedS, Person&gt; Network; 哪个“Person”是我的代码中某处定义的类 . (我正在使用捆绑属性) 正如你所看到的,我的矩阵使用vecS...

热门问题