boost-graph

    1热度

    1回答

    我是BGL的新手,尝试使用BGL设置简单的最短路径查找程序,其中无向图被定义为具有自定义EdgeProperty和VertexProperty的邻接列表。我得到编译时错误,我认为我的模板和Boost技能不足。 代码如下: #include <boost/graph/adjacency_list.hpp> #include <boost/graph/directed_graph.hpp> #in

    0热度

    1回答

    我正在寻找一种方法来在我的Boost图库应用程序中使用有向图来包含转弯限制和/或转向处罚。我需要限制例如U形转弯(如果这是最好的方式,这可能是非常高的罚分)。 我在Boost Graph中找不到明确的机制来添加这样的惩罚/限制,那么处理转弯限制的最佳方法是什么? 我到目前为止看到的唯一解决方案是扩大图形的'内部边缘',用于顶点中的每个可能的转弯,忽略限制转弯的'内部边缘'。这对我来说似乎非常蛮横,

    2热度

    1回答

    我需要在图上运行A *,并删除一些边。为此,我构建了一个包含黑名单边的过滤图,并且我想在过滤图上运行A *。列入黑名单的边被嵌入类BlackListEdgeConstraint中,我通过传递其构造函数来初始化禁止边的列表。这个BlackListEdgeConstraint被正确地构建,并且我用这些约束构建了filtered图。问题是,当我在筛选的图上运行A *时,另一个BlackListEdgeC

    0热度

    1回答

    我用升压图的标签,似乎我不明白它非常好。 要访问一个顶点的它似乎是使用GET(vertex_name,graph_),然后用[]在所有访问右侧的标签。 但是我怎样才能访问边缘的标签。 我试图采用相同的方法(和许多其他错误东西),但我 没有成功访问它的标签。 这里是我的代码片段: typedef property<edge_name_t, int> edge_property; typedef p

    1热度

    1回答

    我想保持外部属性顶点和的adjacency_list图的边(和用于顶点的基团)。我需要能够通过它们的属性访问顶点。例如,我想遍历指定一些权重的所有顶点,并获得它们的外边缘。 不过,我也需要我的顶点容器是集。 在此容器中,添加\移除顶点可能会使顶点描述符无效。 的问题是,外部性,现在可以映射到无效vertex_descriptors。 class manage_data { ... au

    1热度

    1回答

    我使用Stoer-Wagner algorithm in boost::graph发现图的最小切割。结果是正确的,但我需要得到算法切割的边缘。我知道有可能obtain parity map,但我不得不分析地图来获得边缘。有没有办法让这些直接? 在下面的示例中,最小切割权重为1,但我希望切割边缘(在这种情况下也为0-2)。 (见活在http://coliru.stacked-crooked.com/

    0热度

    1回答

    有人请解释这最后一行吗?我需要最终确定是否连接了两个顶点。 include <boost/fusion/adapted/std_pair.hpp> include <boost/spirit/include/qi.hpp> include <boost/graph/edge_list.hpp> include <fstream> typedef std::pair<int,int> Ed

    1热度

    1回答

    这里是我的代码如下所示: ---------------| | worker | ____________________ | --------- |<-----| | | | graph | | |strategy interface|<----- concrete strategy | |--------| | -------------------- |--

    1热度

    2回答

    我需要使用Boost Graph Library从我的图中给定的顶点中选择一个随机的邻居或邻居。我从一个RNG收到一个索引i,并且需要选择第i个边缘(它们可以是任意顺序,只需要在呼叫间保持一致)。为此,我利用了std::advance像这样: typedef adjacency_list<vecS, vecS, bidirectionalS> Graph; Graph g; // Given g

    1热度

    1回答

    这是直截了当地边权重添加到图作为内部属性: void InternalProperties() { std::cout << "InternalProperties()" << std::endl; // Graph with internal edge weights using EdgeWeightProperty = boost::property<boos