CP 求解器可以在特定点初始化吗?

2023-11-25

我正在使用 CP-Sat 求解器来优化我正在制定的时间表。然而,现在这个问题需要很长时间才能解决。是否可以使用旧结果作为求解器的种子,作为起点,以减少找到最佳结果所需的时间?


看看这个解决方案提示示例:

  • https://github.com/google/or-tools/blob/stable/ortools/sat/docs/model.md#solution-hinting
num_vals = 3
x = model.NewIntVar(0, num_vals - 1, 'x')
y = model.NewIntVar(0, num_vals - 1, 'y')
z = model.NewIntVar(0, num_vals - 1, 'z')

model.Add(x != y)

model.Maximize(x + 2 * y + 3 * z)

# Solution hinting: x <- 1, y <- 2
model.AddHint(x, 1)
model.AddHint(y, 2)

编辑:你还应该尝试

  • 减少变量的数量。
  • 缩小整型变量的域。
  • 使用多线程运行求解器solver.parameters.num_search_workers = 8.
  • 与整数变量/约束相比,更喜欢布尔值。
  • 设置冗余约束和/或对称破坏约束。
  • 分离您的问题并合并结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CP 求解器可以在特定点初始化吗? 的相关文章

随机推荐

  • 获取年份中的季度开始日期和结束日期

    我正在使用 SQL Server 2008 我想获取一年中所有季度的开始日期和结束日期 例如 如果我在查询中传递 2013 那么输出应该像 StartDate EndDate QuarterNo 2013 04 01 00 00 00 00
  • 未使用 MetadataType 加载元数据

    我有一些问题 疑问元数据类型 我有 DLL 帮助程序项目 用于使用 LinqToSQL 从 MS SQL Server 访问数据 我还需要为生成的类 ClientInfoView 添加元数据 我是按照以下方式完成的 using System
  • 如何识别程序集是使用 .NET 4.5(而不是 .NET 4.0)编译的?

    我有一些构建代理通过 TeamCity 设置为我们构建 NET 代码 我开始怀疑 尽管有项目设置 它们是否仍在输出 NET 4 5 构建的程序集 我的怀疑来自于这样一个事实 我不知道 Windows 2012 Server 是否附带了开箱即
  • 在 ViewPager 内部设计 Horizo​​ntalScrollView 或使用片段:

    我需要设计以下屏幕 需要您的建议 解释 标题是静态 固定的 我不需要对它做任何事情 Yellow 这是有趣的部分 我需要设计一个ViewPager类似于能够向左 向右滚动最多 4 个屏幕的屏幕 Red 在每个屏幕中 我需要添加一个表格 网格
  • 更改选项卡时如何隐藏软键盘?

    编辑 看来我没有说清楚 我需要的是一种每当我替换所在片段时隐藏软键盘的方法 我该如何去做呢 让我保持简单 我在 Tab Fragment 1 2 中有一个 EditText 框 按下时它显然会打开软键盘 当选项卡更改时如何隐藏它 我在 on
  • Android,对话框中的SeekBar

    我想在我的应用程序中使用带有搜索栏的对话框 但我真的不知道该怎么做 因为我缺乏 Android 经验 因此 当您按下按钮时 应该出现一个带有搜索栏的对话框 用户可以输入一个值 然后按 确定 按钮 我现在的代码是developer andro
  • Class.getResource() 返回 null

    我试图在 JPanel 上显示图片 但我不断收到错误 java lang IllegalArgumentException 输入 null 我不明白发生了什么事 这是我正在使用的代码 public void actionPerformed
  • 如何将桌面图标设置为C# Windows窗体[重复]

    这个问题在这里已经有答案了 我已经调试了 C WinForm exe 将其复制到桌面并想将其分发给其他人 如何为此 exe 设置 ico 以便桌面图标自动出现在计算机上 该计算机也会下载它 而无需进行任何调整 在 Visual Studio
  • 根据列对二维 int 数组进行排序的过程

    我之前拥有的数组以及排序后我们想要的数组 Before Box Weight Priority 1 50 5 2 30 8 3 90 6 4 20 7 5 80 9 After Box Weight Priority 3 90 6 5 80
  • 我如何知道故障转储的 CLR 版本?

    我有一个 NET 应用程序崩溃的小型转储 有没有办法使用 Windbg 或其他工具了解故障机器 生成故障转储 的 CLR 版本 例如 mscorwks dll 的版本 在 WinDbg 中 最简单的方法是使用 eeversion命令 但如果
  • Callable 基类无效?

    有人可以解释为什么继承自非参数化和参数化Callable from typing import Callable from typing import NoReturn from typing import TypeVar T TypeVa
  • 将选项传递给 chrome 驱动程序 selenium

    我正在尝试禁用 chrome 控制台的输出 如果我通过 start maximized 选项 它就可以正常工作 我可能命令错误 DesiredCapabilities capabilities DesiredCapabilities chr
  • 无法更新到 com.google.gms:google-services:4.2.0

    启动时谷歌服务版本 是classpath com google gms google services 4 1 0 但是当我将其更改为4 2 0错误发生在Sync Project with Gradle files 我的顶级等级 Top l
  • PHP:通过 Parent::method() 与 $this->method() 从子类调用方法的差异

    假设我有一个家长班 class parentClass public function myMethod echo parent myMethod was called 和下面的子班 class childClass extends par
  • pyinstaller 失败并出现错误

    我正在使用 pyinstaller 编译当前的程序 它似乎无法处理所有需要的文件 它本身运行良好 并且无需绘图也可以编译和运行 似乎无法找到文件 default schema json 我什至无法在驱动器上的任何位置找到该文件 回溯 最近一
  • 将浮点数转换为字符串

    如何在不使用库函数的情况下将 C C 中的浮点整数转换为字符串sprintf 我正在寻找一个功能 例如char ftoa float num 转换num到一个字符串并返回它 ftoa 3 1415 应该返回 3 1415 根据 Sophy
  • 从一个数据库表复制到另一个 C#

    使用 C vs2005 我需要将表从一个数据库复制到另一个数据库 两个数据库引擎都是 SQL Server 2005 对于远程数据库 源 我只有对存储过程的执行访问权限才能获取我需要在本地带来的数据 我对本地数据库有更多的控制权 因为它由需
  • 如何在 MonoTouch 中将 NSHttpCookie 转换为 System.Net.Cookie?

    我有一个 MonoTouch iPhone 应用程序 它通过 Azure 访问控制服务进行联合登录 登录是通过嵌入式 UIWebView 浏览器完成的 登录完成后 我想将 cookie 传输到我的应用程序中 我可以访问 NSHttpCook
  • 如何使用 Django 后台任务初始化重复任务?

    我正在开发一个 Django 应用程序 它从 dropbox 读取 csv 文件 解析数据并将其存储在数据库中 为此 我需要后台任务来检查文件是否被修改或更改 更新 然后更新数据库 我试过了 Celery 但无法使用 django 配置它
  • CP 求解器可以在特定点初始化吗?

    我正在使用 CP Sat 求解器来优化我正在制定的时间表 然而 现在这个问题需要很长时间才能解决 是否可以使用旧结果作为求解器的种子 作为起点 以减少找到最佳结果所需的时间 看看这个解决方案提示示例 https github com goo