动态规划-流水线问题

流水线问题如图所示,两条流水线上相应位置上的梯级S1j和S2j所完成的任务相同,但完成时间不同分别为c1j和c2j。指令从内存发射到流水线上的时间分别为c10,c20。如果从一条流水线转移到另一个流水线,产生流动成本x。这个问题的最优解决方案里面包含了对子问题的最优解,这就是动态规划里面的最优子结构。所以我们选择动态规划来解决流水线问题。这种由底至上的算法的效率是线性的。

/**流水线问题,用动态规划解决O(n)
 * @author Qing
 *
 */
public class pipeline {
	final static int N = 7;//流水线长度
	public final static int[][] c={
  {4,2,8,7,2,4,1,1},{1,5,1,4,2,3,2,2}};//两条流水线完成任务时时间分别为c1j和c2j
	public final static int[][] x = {
  {1,2,4,1,3,4,2},{1,4,1,2,2,1,2}};//从一条流水线到另一条的流动成本
	public static int[][] t = new int[2][N+1];//tj为通过Sj的最短时间
	public static int[][] l = new int[2][N+1];//lj为到达Sj最快路线上梯级j-1所处的线路(1或者2)
	public static int t_final = 0;
	public static int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值