Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java实现调度算法_Java_Algorithm_Optimization_Data Structures_Scheduling - Fatal编程技术网

用Java实现调度算法

用Java实现调度算法,java,algorithm,optimization,data-structures,scheduling,Java,Algorithm,Optimization,Data Structures,Scheduling,你们中有人用Java处理过作业调度问题吗? 我必须处理一个资源有限的项目调度问题,并想问一些实用的技巧。有什么好的库可以用来实现算法吗?我应该使用什么样的高效数据结构 编辑: 看来我解释得不对。我想解决资源受限项目调度问题(RCPSP),这是一个已知的NP完全问题,采用不同的启发式方法。问题定义如下: 一个项目由一组A={1,…,n}的活动组成,这些活动必须在一组R={1,…,m}的资源上执行。A活动j∈ A需要rjk≥ 0个资源单位k∈ R在其不可抢占的处理时间pj中≥ 0每个资源k∈ R的容

你们中有人用Java处理过作业调度问题吗? 我必须处理一个资源有限的项目调度问题,并想问一些实用的技巧。有什么好的库可以用来实现算法吗?我应该使用什么样的高效数据结构

编辑


看来我解释得不对。我想解决资源受限项目调度问题(RCPSP),这是一个已知的NP完全问题,采用不同的启发式方法。问题定义如下:


一个项目由一组A={1,…,n}的活动组成,这些活动必须在一组R={1,…,m}的资源上执行。A活动j∈ A需要rjk≥ 0个资源单位k∈ R在其不可抢占的处理时间pj中≥ 0每个资源k∈ R的容量有限Rk>0。活动之间存在优先关系,因此一个活动j∈ 在其所有直接前辈完成之前,无法启动。目标是找到一个优先级和资源容量可行的时间表,使总完工时间最小化。

是任务的正确工具

从Quartz的网页:

“什么是石英

Quartz是一种功能齐全的开源作业调度服务,可与任何Java EE或Java SE应用程序集成,或与之一起使用,从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的调度,以执行数十个、数百个甚至数万个任务作业;其任务被定义为标准Java组件的作业,可以执行几乎任何您可以对其进行编程的操作。Quartz调度程序包括许多企业级功能,如JTA事务和集群

Quartz是免费使用的,根据Apache 2.0许可证获得许可


请阅读我们的概述以获得更多快速信息。“

JDK1.6已经有了非常好的一个。
看看java.util.concurrent.ScheduledThreadPoolExecutor,AMPL是一种建模语言,您可以使用它进行建模,它可以编译成一个混合整数线性程序,并使用多个解算器进行求解。我建议使用GNUMathProg建模语言,它是AMPL语言的一个子集,可以与解算器一起使用。这是一个非常常见的问题,您可能会找到一个非常接近您想要做的事情的示例


编辑:实际上glpk自带了自己的建模语言,它只是AMPL的一个子集,这可能会让事情变得更简单。

有几个用于NP完全规划问题的LIB:(开源,ASL java),JGap,cpsolver,opents,

你可以用来解决这个问题,使用

似乎我没有正确解释它。我想解决资源受限项目调度问题(RCPSP),这是一个已知的NP完全问题,采用不同的启发式方法。问题的定义如下:项目由一组A={1,…,n}的活动组成,这些活动必须在一组R={1,…,m}的资源上执行。A活动j∈ A需要rjk≥ 0个资源单位k∈ R在其不可抢占的处理时间pj中≥ 0每个资源k∈ R的容量有限Rk>0。活动之间存在优先关系,因此一个活动j∈ 在其所有直接前辈完成之前,无法启动。我们的目标是找到一个优先级和资源容量都可行的时间表,使总的完工时间最小化。这是为了解决PSPLIB基准实例,还是您有一个真实的用例?几年前,我在大学时为RCPSP开发了一种遗传算法,但它非常特定于PSPLIB,即硬编码资源的最大数量、项目持续时间、每个活动的继任者/前任的nr…hy jörn,sry用于后期回答。两者都是。我是为一家公司做这件事的,但我也想为一个班级写一些关于这件事的东西。因此,我还将用PSPLIB基准测试它(tipp btw的thx)。这对我不起作用。我在第一篇文章中添加了一条评论,以便更清楚地定义这个问题。但无论如何,谢谢。很抱歉,我说的问题还不够清楚。我在我的第一篇文章中添加了一条评论,以使其更加清晰。反正是Thx。提示是Thx,但这个问题是NP难的。因此,我必须处理的实例在实际时间内无法用这种方法解决。我很清楚这个问题的计算复杂性,我是一名博士生,直接在这个领域进行研究。如果有什么问题的话,这种方法是不可取的,因为它太复杂了,不像你假设的那样,太简单了。如果你看看这个领域的任何运筹学研究,你会发现作为MILP建模是目前为止的首选方法。请参考。因此,如果我理解正确,你是说我只需要将我的问题转化为MILP并将其转化为解算器?那为什么我会在scholar.google.com上找到很多关于GAs和禁忌搜索等超启发式算法的文章呢?(特别是从2008年开始)GAs和tabu只是局部最优的,但对于不可能解决的问题,它们往往表现得更好。最近有很多工作在这里进行,因为人们通常不研究已经很好工作的东西。当问题太大,没有希望以最佳方式解决时,使用这些算法。你最初的问题是问实用技巧,所以我的问题是,在你确定你的问题难以解决(无法以最佳方式解决)之前,不要进入进化计算的世界。你可以用GLPK语言在一天内编写出你的问题,它可能会在几秒钟内解决。好吧,现在我明白了:)但问题是我也有非常大的实例,所以我必须处理GAs。此外,我将就此撰写我的硕士论文,因此我还必须处理一些PSPLIB实例以进行基准测试。但无论如何,对于较小的实例,提示使用thx