当前位置: 首页 > 知识库问答 >
问题:

我怎样才能找到一个最小化边数的方法呢?

叶稳
2023-03-14

我在想一个算法来解决下面的问题:

问题是如何找到最小的边数来满足所有客户的要求?

有一个简单的例子:

  • 客户1希望从顶点a到顶点B。
  • 客户2希望从顶点b到顶点C。
  • 客户3希望从顶点a到顶点C。
    null

共有1个答案

卫飞鹏
2023-03-14

您可以将问题建模为混合整数程序。您可以为“arc A->b被使用”和“Customer c使用arc A->b”定义二进制变量,并将需求写成线性不等式。如果你的图不是太大,你可以在合理的时间内用混合整数程序求解器(CPLEX,GUROBI,但在web上也有免费的替代方案)求解这样的模型。

我知道,如果你不熟悉线性规划,这个解决方案需要一些工作,但它保证在有限的时间内找到最佳解,你大概可以解决(比方说)1000个客户和1000个弧。

 类似资料:
  • 有什么方法可以简化这段代码吗?我正好有一个白色的一块,想要得到它的位置 代码: 瓦片类: 件类:

  • 我可以用什么代码打印出用户在这个数组中输入的最高值和最低值?这个程序需要取用户输入的平均值(我已经做过了)。现在我所需要做的就是让程序打印出用户输入的最高值和最低值。

  • 我有一个关于寻找矩形(曲线上方)的区域的问题。我想找到类似于,其中。 我有两个(x;y)的,可以找到: ) 我的问题是:如果我没有函数,但有(x;y),如何使用数值积分。例如,在matlab中,: 在C++中,我有:

  • 我有“下载正在进行文件”对话框活动。当用户按下“隐藏”按钮时,活动将创建通知和隐藏进度对话框。并且当用户单击到通知时,活动显示进度对话框再次出现在活动中。我如何在按下按钮“后退”时切换活动到后退任务?

  • 一种通用方法,可以返回两个参数之间的随机整数,就像ruby使用时所做的那样。 有什么建议吗?

  • 我在Firestore有一个项目: 我需要获取数组“Personal”并在列表视图中显示它,我在这里看到一个类似的例子,从Firestore获取一个ArrayList和文档名,我尝试了这个解决方案。。。 Android Studio不显示错误,但试着运行应用程序,结果停止了,有人能帮我吗?