ballshapesdsd
V2EX  ›  算法

工作执行最优顺序?

  •  
  •   ballshapesdsd · Jan 21, 2019 · 3394 views
    This topic created in 2672 days ago, the information mentioned may be changed or developed.

    问题: 给定有 n 个工作需要执行,每个工作需要耗费不同的时间,并且不同的工作之间有依赖关系(使用一个有向图表示),同时可以执行的工作数是给定的常数 m,那么如何安排工作顺序使得总时间最小?

    感觉是一个经典的问题,有没有一个成熟的算法呢?

    13 replies    2019-01-21 17:41:52 +08:00
    xiaohuamao
        1
    xiaohuamao  
       Jan 21, 2019
    稳如分布式
    ballshapesdsd
        2
    ballshapesdsd  
    OP
       Jan 21, 2019
    @xiaohuamao #1 就是分布式编译
    Fulcrum
        3
    Fulcrum  
       Jan 21, 2019 via Android
    找本管理运筹学 排序与统筹方法 随便看下
    fyyz
        4
    fyyz  
       Jan 21, 2019 via Android
    APS 排程软件了解一下
    takato
        5
    takato  
       Jan 21, 2019
    最短 Hamilton 路径?
    ballshapesdsd
        6
    ballshapesdsd  
    OP
       Jan 21, 2019
    @takato #5 好像不是吧。。。
    alfchin
        7
    alfchin  
       Jan 21, 2019 via Android
    我觉得楼主需要修运筹学。。。然后整理一个自己的算法
    quinoa42
        8
    quinoa42  
       Jan 21, 2019
    一个简单的贪心思路就是,先画出有向图,然后倒推或者顺推每个节点到最终目标还需要的时间
    然后决定顺序的每一轮就是选择执行当前预计耗费时间最久的可执行节点
    quinoa42
        9
    quinoa42  
       Jan 21, 2019
    @quinoa42
    第二句有点没太说清楚,我的意思是选择当前预计到最终目标需要的时间最久的可执行且未执行节点
    ballshapesdsd
        10
    ballshapesdsd  
    OP
       Jan 21, 2019
    @quinoa42 #9 没太懂,能不能详细说说,或者给我发一个能参考的链接
    ballshapesdsd
        12
    ballshapesdsd  
    OP
       Jan 21, 2019
    @quinoa42 #11 谢谢了
    behanga
        13
    behanga  
       Jan 21, 2019
    实际情况是最先执行 BOSS 安排的工作,其他都靠边
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3068 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 09:10 · PVG 17:10 · LAX 02:10 · JFK 05:10
    ♥ Do have faith in what you're doing.