gpt4 book ai didi

c# - 取决于 MSF 中决策的参数

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:37 26 4
gpt4 key购买 nike

在 Microsoft Solver Foundation 中,我想知道是否可以添加一个值取决于决策值的参数。

即我想要 TSP 模型的一些东西,但它还应该考虑从一个点到另一个点的流量。请注意:流量取决于销售人员在该路线上行驶的时间。

这是模型:

我有一个城市间所有可能组合的矩阵。

Decision 变量是销售人员路线的 Order。 0是第一个,1秒,...

我有一个属性 timeToTravel,它绑定(bind)到一个属性,该属性根据 Order 值计算路线发生的时间,并返回包括交通在内的旅行时间在一天中的那个时间。

在我看来,当 Solve 函数被调用时,参数值被读取一次并被缓存,我说得对吗?如果是,有没有人有解决这个问题的建议?

最初我问这个问题 on the MSF forum但我认为它会在 Stack Overflow 上得到更多关注。此外,我对 MSF 以外的其他求解器持开放态度,但我更愿意留在 .NET 环境中。

最佳答案

有一篇关于使用 Solver Foundation 解决“静态”旅行商问题的好文章 here .如果您还没有自己的实现,也许您可​​以将您的解决方案基于该代码。

这是上述文章中的目标表述:

// Goal: minimize the length of the tour.
Goal goal = model.AddGoal("TourLength", GoalKind.Minimize,
Model.Sum(Model.ForEach(city, i =>
Model.ForEachWhere(city,
j => dist[i, j] * assign[i, j], j => i != j))));

如果我理解正确,在你的问题中,两个城市之间的旅行时间取决于一天中的时间?

我不相信您可以在优化期间动态更新 dist[,] double 数组。但是,使用 Model 的构建 block 类,应该可以将 dist[,] 数组重新表述为一组函数,这些函数取决于已经行驶的总距离/时间。

为了完整性,here是另一篇关于使用 OML 制定 TSP 的有趣文章。

关于c# - 取决于 MSF 中决策的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com