当前位置: 首页>>代码示例>>C#>>正文


C# Solver.Fail方法代码示例

本文整理汇总了C#中Solver.Fail方法的典型用法代码示例。如果您正苦于以下问题:C# Solver.Fail方法的具体用法?C# Solver.Fail怎么用?C# Solver.Fail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Solver的用法示例。


在下文中一共展示了Solver.Fail方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Next

 public override Decision Next(Solver solver)
 {
   int large = 100000;
   int number_of_variables = vars_.Length;
   long last_slot = last_slot_var_.Max();
   // Lets build a bipartite graph with equal number of nodes left and right.
   // Variables will be on the left, slots on the right.
   // We will add dummy variables when needed.
   // Arcs will have a cost x is slot x is possible for a variable, a large
   // number otherwise. For dummy variables, the cost will be 0 always.
   LinearSumAssignment matching = new LinearSumAssignment();
   for (int speaker = 0; speaker < number_of_variables; ++speaker)
   {
     IntVar var = vars_[speaker];
     for (int value = first_slot_; value <= last_slot; ++value)
     {
       if (var.Contains(value))
       {
         matching.AddArcWithCost(speaker, value - first_slot_, value);
       }
       else
       {
         matching.AddArcWithCost(speaker, value - first_slot_, large);
       }
     }
   }
   // The Matching algorithms expect the same number of left and right nodes.
   // So we fill the rest with dense zero-cost arcs.
   for (int dummy = number_of_variables;
        dummy <= last_slot - first_slot_; ++dummy) {
     for (int value = first_slot_; value <= last_slot; ++value)
     {
       matching.AddArcWithCost(dummy, value - first_slot_, 0);
     }
   }
   if (matching.Solve() == LinearSumAssignment.OPTIMAL &&
       matching.OptimalCost() < large)  // No violated arcs.
   {
     for (int speaker = 0; speaker < number_of_variables; ++speaker)
     {
       vars_[speaker].SetValue(matching.RightMate(speaker) + first_slot_);
     }
   } else {
     solver.Fail();
   }
   return null;
 }
开发者ID:RickOne16,项目名称:or-tools,代码行数:47,代码来源:techtalk_scheduling.cs


注:本文中的Solver.Fail方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。