C++ 生成边权为负且无负圈的随机图

C++ 生成边权为负且无负圈的随机图,c++,boost,graph,C++,Boost,Graph,负循环中的边权重之和为负。有了这个概念,是否有任何方法可以生成具有随机正负边权重且没有负循环的图?这些图对于测试该方法很有用 注意:在没有这些条件的情况下,他们使用boost库生成图形。我建议使用generate\u random\u graph来。。。生成一个随机图,并作为后处理步骤修复任何负循环 例如: #include <boost/graph/adjacency_list.hpp> #include <boost/graph/random.hpp> #incl

负循环中的边权重之和为负。有了这个概念,是否有任何方法可以生成具有随机正负边权重且没有负循环的图?这些图对于测试该方法很有用



注意:在没有这些条件的情况下,他们使用
boost
库生成图形。

我建议使用
generate\u random\u graph
来。。。生成一个随机图,并作为后处理步骤修复任何负循环

例如:

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/random.hpp>
#include <random>
#include <iostream>

using Graph = boost::adjacency_list<
    boost::vecS,
    boost::vecS,
    boost::directedS, 
    boost::no_property,
    boost::property<boost::edge_weight_t, double> >;

int main()
{
    std::mt19937 prng;
    Graph g;
    generate_random_graph(g, 100, 200, prng);

    // find cycles with negative sum and just add a large enough value to one
    // of the participating edges to make it postive
}
#包括
#包括
#包括
#包括
使用Graph=boost::邻接列表<
boost::vecS,
boost::vecS,
boost::directedS,
boost::无_属性,
boost::property>;
int main()
{
标准:mt19937 prng;
图g;
生成随机图(g,100200,prng);
//找到具有负和的循环,只需向其中添加足够大的值
//使其成为正的参与边
}

对我来说,这听起来更像是一个算法问题,而不是一个实际的编程问题,因此可能还有其他SE站点可以更好地帮助您。@BaummitAugen谢谢。问题已编辑。谢谢。请用以下内容填写您的答案(
注释
部分)。我希望您尝试一下(这是正确的方法)。我没有太多时间(我只是发布了骨架,因为它似乎比你在问题中链接的东西简单得多)。如果你被卡住了,你可以发布一个关于这个的新问题,我一定会找到的。