安排约束


不想吃东西
2025-02-03 04:25:03 (24天前)
  1. 我想安排带约束的任务(类似于作业车间调度问题),并认为我可以使用像Microsoft Solver Foundation这样的东西(我需要使用C#)。但据我所知......

2 条回复
  1. 0# 蜡笔小辛 | 2019-08-31 10-32



    我建议你用

    Z3

    求解。它为您提供C#API。基本上,它是一个

    SMT

    求解器,它针对给定的约束搜索“足够好”的解决方案。定义你的问题可能相当困难

    SMTLIB

    语言。



    如果对你来说太难了,那就看吧

    Minizinc

    要么

    Clingo

    求解器 - 只需将问题公式生成为文本文件,将解算器作为与C#代码分开的进程运行,从输出文本文件中解析出解决方案。



    编辑



    如果要最小化计划的长度,可以尝试以下方法。让我们假设一下


    </强>
    一个长度的时间表

    ķ

    。在这个假设下,您的规划问题是否可以满足?我们打电话给一个求解器来找出它!用不同的K生成几个问题并迭代运行求解器。使用

    二分搜索

    减少试验次数。


登录 后才能参与评论