问题标签 [resource-scheduling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
project-management - 敏捷/Scrum 资源规划跨项目
我们在规划在线网络项目时有不同的步骤:
1) 信息架构
- 提供用户故事
- 提供线框
2) 设计
- 使用线框开发一个漂亮的设计
3) 发展
4) 测试
我知道敏捷工作需要专门的团队。但是在项目结束之前不可能有一个专门的 IA。因为这些项目是小型开发人员在不同的团队中工作。当您知道 50 个小项目和 20 个新项目使用不同的资源时,您如何规划资源?
是否有一个有用的工具可以帮助做到这一点?
algorithm - 加权、负载均衡的资源调度算法
我正在开发的软件应用程序需要能够根据一组用户当前拥有的任务数量为他们分配任务,其中任务最少的用户最有可能获得下一个任务。但是,当前的任务负载应该被视为一个权重,而不是一个绝对的顺序定义。IOW,我需要实现一个加权的负载平衡算法。
假设有五个用户,任务数如下:
A:4 B:5 C:0 D:7 E:9
我想按照 CABDE 的顺序对用户进行下一个任务的优先级,其中 C 最有可能获得任务,而 E 最不可能。这里有两件重要的事情需要注意:
- 用户的数量可以从 2 到几十个不等。
- 分配给每个用户的任务数量可以从 1 到数百不等。
现在,我们可以将所有任务视为平等,尽管我不介意将任务难度作为我将来可以使用的变量 - 但这纯粹是锦上添花。
到目前为止,我提出的想法在某些情况下并不是很好。如果有大量用户,它们可能会将用户的权重过于紧密地放在一起,或者如果用户没有当前任务,它们可能会落空,或者......
我试过在网上闲逛,但运气不佳。谁能给我一个可以很好地工作的算法的快速总结?我不需要实际的实现——我会做那部分——只是一个很好的描述。或者,是否有一个可以免费访问的好网站?
此外,虽然我当然欣赏质量,但这并不需要在统计上是完美的。所以如果你能想到一个好的但不是很好的技术,我很感兴趣!
algorithm - 车辆路径/资源调度算法设计
我在这里的第一篇文章——希望你能帮助我设计一个我已经考虑了一段时间的算法——不确定要采取什么方法(VRPTW 或资源调度或其他完全的东西!?)
用一个真实的例子来说,我们在少数几个地方(通常少于 5 个)有大量的花园垃圾。必须在给定的时间范围内将废物全部运送到其他地点。为了移动花园垃圾,我们有拖车,必须用汽车牵引。花园垃圾只能在特定时间(时间窗口)丢弃在垃圾场。在某些地方,我们可以将拖车放下,由那里的人来装满或清空,但在其他地方,汽车司机必须自己做,汽车必须留在那儿。可以计算所有时间(即装载/卸载时间、运输时间等)。汽车可以在没有拖车的情况下在站点之间移动,拖车可以拖空,但拖车不能在地点之间移动。
我们的目标是确保所有拖车装载的废物在运输的同时
- 尽量减少使用中的拖车和汽车的数量
- 满足所有丢弃废物的时间窗口
- “平衡”拖车 - 即在一天结束时,我们在每个位置的拖车数量与一天开始时一样多
我曾想过将其作为一种资源调度算法,但我不确定如何处理预告片的“平衡”。
我考虑的另一种方法是首先考虑汽车。然后我可以选择最早的任务并在此之后构建所有可行任务的图表。如果我然后选择通过图表的最长路径将服务于最大数量的拖车负载。然后我可以从任务列表中删除这些任务并重复,直到所有任务都得到服务。然后我需要遍历这些拖车负载列表来计算所需的拖车数量。
任何有关方法的想法将不胜感激!
prolog - 使用 Prolog 将任务调度到单个资源
我尽我所能在这里搜索,虽然我发现了一些相关的问题,但我认为它们没有涵盖手头的问题:
假设一个资源和一个已知的请求列表来安排任务。每个请求都包含一个 start_after、start_by、expected_duration 和 action。
目标是尽快安排任务执行,同时将每个任务安排在 start_after 和 start_by 之间。
我编写了一个简单的 Prolog 示例,我“认为”应该可以工作,但不幸的是在运行时遇到错误:">=/2: 参数没有充分实例化"。
任何帮助或建议将不胜感激
编辑:冲突目标不太正确:需要额外的 T>T1 子句。
编辑:如果我提供有效的请求,时间对,显然我的日程安排目标有效......但是当给定 R1..3 时,我试图强制 Prolog 找到 T1..3 的有效值?
recursion - 所有的调度问题都是 NP-Hard 吗?
我知道那里有一些调度问题是 NP-hard/NP-complete ......但是,没有一个是这样说明的,以表明这种情况也是 NP。
如果您有一组任务受限于startAfter、startBy和duration都试图使用单个资源......您能否解决计划或确定如果不进行详尽搜索就无法解决?
如果答案是“对不起,朋友,但这是 NP-complete”,那么最好的启发式方法是什么?有没有办法减少 a) 解决计划和 b) 确定无法解决的时间日程。
我已经(在序言中)通过实现“最小窗口优先”启发式的递归实现了基本的冲突解决目标。这实际上很快就能找到解决方案,但在寻找无效时间表方面却异常缓慢。有没有办法克服这个问题?
耶复合问题!
java - 任务调度框架——不是线程调度!
我正在开发一个 Java 应用程序,它应该允许用户优化他们的日程安排。为此,我需要一个框架来帮助计算“任务”的最佳时间,并注意:
- 所需资源和资源使用限制
- 任务之间的依赖关系(虽然只能处理 F->S 关系)
- 最早和最晚的开始完成时间、松弛时间
- 基线与实际时间 - 允许报告实际开始和完成时间,相应地更新其余任务
一些澄清:我既不是在寻找一个框架来绘制这些甘特图,也不是一个处理一个特定问题域(例如教室)的框架,也绝对不是一个处理线程调度的框架。
谢谢!
algorithm - 网格中使用的调度算法
我正在尝试在网格环境中模拟调度。我不知道使用什么算法。我正在考虑作业车间调度算法http://en.wikipedia.org/wiki/Job_shop_scheduling但不知道它是否用于网格。网格环境中通常使用哪些算法将传入作业调度到资源?任何帮助将非常感激。谢谢。
scheduled-tasks - 用于重复调度资源(如会议室)的开源(不需要是免费的)软件或组件
我正在寻找允许红醋栗资源预留的项目或第 3 方组件。
例如需要在会议室 A 举行的会议,只有在没有人时,每周四。会议时长一小时,根据会议室的可用性,可以在上午 9 点至下午 4 点之间开始。
任何指向接近此功能的软件的指针将不胜感激。
python - 建立具有大量变量的时间表问题
我有一个经典的时间表问题,由变量 classes(~100)、rooms(20)、terms(8) 和 weekdays(5) 组成。
为了简化问题,以下是减少的约束。
一天是9个小时。
有些课程是学生必修课,1、3、5、7(以及 2、4、6、8)的必修课不得相互重叠。
课程在小时数方面有不同的权重,有些是 2 小时,有些是 3 小时。
有些课程应该在特定的房间。
同一堂课不能同时开两节课。
我将使用 logilabs python 约束模块。而且我知道明智地选择变量和域将减少解决问题的时间。问题是我以前从未做过约束编程,并且很难建立问题来找出从哪里开始以及从什么开始。例如:
我可以设置一个约束,例如“同一个房间没有两个班级,同一天可以重叠彼此的时间段”。或者从“没有房间可以在同一天预订超过 9 小时”开始,然后继续减少解决方案域。我估计(没有尝试)第一个约束将比另一个约束需要更长的时间来解决。但它也需要(我猜)改变变量和解决方案域或重建一个较小的问题。我已经对变量、域、间隔、实现等有点迷失了。
长话短说,我需要一些指针来构建问题、解决方案域、明智地选择变量等。
谢谢
更新
使用 logilab-constraint 包,我制作了一个基本应用程序并将其上传到github
algorithm - 多目标问题的图表示
我正在为一个涉及多目标调度问题的论文项目调查一个可能的研究主题,我想知道是否有人有将这样的问题表示为图表的想法。我查看了一些关于该主题的文献,一种常见的方法似乎是在边缘使用成本向量而不是单个成本数字。这对我来说很有意义,但我不明白如何以这种方式对问题的某些方面进行建模。
特别是模型中有资源将每个活动限制在特定的时间窗口内,有效的时间表必须在这些限制范围内安排每个活动。此外,还有一些相互依赖的活动集。例如,用户可以在两个活动之间放置时间增量要求,说它们必须被安排在彼此相隔一定数量的时间单位内,或者在有效时间表中必须至少相隔一定数量的时间单位。我可以想象将这些建模为成本向量中的可选元素,但有更好的方法吗?
额外的问题是,这也应该是最少承诺的调度程序。每个活动都应该有一个名义上为 n 个时间单位的窗口,因此不一定有活动的总顺序。
任何有关表示此类问题的文献将不胜感激!