用动态规划解决两个装配站最优化问题
来源:互联网 发布:dojo中js方法跳转页面 编辑:程序博客网 时间:2024/06/01 08:19
//用动态规划解决两个装配站最优化问题
/*
该问题是找出经过两个装配线之后花费的时间最小的问题,可参考算法导论第十五章。
*/
#include<stdio.h>void main()
{
int n,e1,e2,a[3][10],t[3][10],x1,x2,i,j,f[3][10],min;
printf("输入站的个数:\n");
scanf("%d",&n);
printf("输入低盘进入第一个站的第一个装配线的时间:\n");
scanf("%d",&e1);
printf("输入低盘进入第二个站的第一个装配线的时间:\n");
scanf("%d",&e2);
printf("输入在第一个装配线上每个站停留的时间:\n");
for(i=1;i<=n;i++)
{
scanf("%d",&a[1][i]);
}
printf("输入每个装配站从第一个到第二个站花费的时间:\n");
for(i=1;i<n;i++)
{
scanf("%d",&t[1][i]);
}
printf("输入在第二个装配线上每个站停留的时间:\n");
for(i=1;i<=n;i++)
{
scanf("%d",&a[2][i]);
}
printf("输入每个装配站从第二个到第一个站花费的时间:\n");
for(i=1;i<n;i++)
{
scanf("%d",&t[2][i]);
}
printf("输入第一个装配线下线的时间:\n");
scanf("%d",&x1);
printf("输入第二个装配线下线的时间:\n");
scanf("%d",&x2);
f[1][1]=e1+a[1][1];
f[2][1]=e2+a[2][1];
for(i=2;i<=n;i++)
{
if(f[1][i-1]+a[1][i]<=f[2][i-1]+t[2][i-1]+a[1][i])
f[1][i]=f[1][i-1]+a[1][i];
else
f[1][i]=f[2][i-1]+t[2][i-1]+a[1][i];
if(f[2][i-1]+a[2][i]<=f[1][i-1]+t[1][i-1]+a[2][i])
f[2][i]=f[2][i-1]+a[2][i];
else
f[2][i]=f[1][i-1]+t[1][i-1]+a[2][i];
}
if(f[1][n]+x1<=f[2][n]+x2)
min=f[1][n]+x1;
else
min=f[2][n]+x2;
printf("最小的路径为:%d\n",min);
}
- 用动态规划解决两个装配站最优化问题
- 装配站问题(动态规划)
- 动态规划经典算法之装配站调度问题源代码
- IPOPT工具解决非线性规划最优化问题使用案例
- 用动态规划解决TSP问题
- 旧题新解-用动态规划解决四人分酒问题
- 算法之道_流水线装配问题_动态规划
- 动态规划---优化编辑器问题
- 动态规划----优化编辑器问题
- 动态规划解决装载问题
- 动态规划解决背包问题
- 动态规划解决skiing问题
- 动态规划解决经典问题
- 动态规划解决背包问题
- TSP问题动态规划解决
- 动态规划解决背包问题
- 动态规划解决硬币问题
- 动态规划解决迷宫问题
- java IO之 RandomAccessFile类
- 【Html5每日练习】本地存储localStorage
- 排序算法总结(一)
- PERT网络分析法
- eclipse 3.6+版本如何同步外部jar到服务器的lib下
- 用动态规划解决两个装配站最优化问题
- POJ 1113 wall
- cssd for bug
- PowerDesigner基础教程
- iOS指南系列:如何解决奔溃问题-关于内存访问续
- oracle常识
- oracle语句组成
- 存储器之DRAM
- win8安装出现“windows 安装程序无法将windows配置为在此计算机的硬件上运行”的错误