动态规划法求解资源分配问题
问题描述
资源分配问题是将数量一定的一种或若干种资源(原材料、资金、设备或劳动力等),合理地分配给若干使用者,使总收益最大。
例如,某公司有3个商店A、B、C,拟将新招聘的5名员工分配给这3个商店,各商店得到新员工后,每年的赢利情况如下表所示,求分配给各商店各多少员工才能使公司的赢利最大?
问题求解
采用动态规划求解该问题。设置3个商店A、B、C的编号分别为1~3。
这里总员工数为n=5,商店个数m=3,假设从商店3开始决策起。
设置二维动态规划数组为dp,其中dp[i][s]表示考虑商店i~商店m并分配s个人后的最优赢利。
另外设置二维数组pnum,其中pnum[i][s]表示求出dp[i][s]时对应商店i的分配人数。
对应的状态转移方程如下:
代码
//问题表示
int m = 3, n = 5; //商店数为m,总人数为n
int v[MAXN][MAXN] = { {0,0,0,0,0,0},{0,3,7,9,12,13},{0,5,10,11,11,11},{0,4,6,11,12,12} }; //不计v[0]行
//求解结果表示
int dp[MAXN][MAXN];
int pnum[MAXN][MAXN];void Plan()
{int maxf, maxj;for (int j = 0; j <= n; j++)dp[m + 1][j] = 0;for (int i = m; i >= 1; i--){for (int s = 1; s <= n; s++){maxf = 0;maxj = 0;for (int j = 0; j <= s; j++){if ((v[i][j] + dp[i + 1][s - j] >= maxf)){maxf = v[i][j] + dp[i + 1][s - j];maxj = j;}}dp[i][s] = maxf;pnum[i][s] = maxj;}}
}
动态规划法求解资源分配问题相关推荐
- 6-1 求解资源分配问题(动态规划法)[PTA]
[PTA] 6-1 求解资源分配问题(动态规划法) 某公司有3个商店A.B.C,拟将新招聘的5名员工分配给这3个商店,各商店得到新员工后,每年的赢利情况如下表所示,求分配给各商店各多少员工才能使公司的 ...
- 经典DP问题系列之三:求解资源分配问题(带路径存储)
[问题描述] 某公司有3个商店A, B, C,拟将新招聘的5名员工分配给这3个商店,各商店得到的新员工后每年的赢利情况如表所示,求如何分配才能使利益最大化? 表 (右边数字是每个公司分配0 – 5个人 ...
- 动态规划--资源分配问题
问题描述: 资源分配问题是将数量一定的一种或若干种资源(原木料.资金.设备或劳动力等)合理地分配给若干个使用者,使总收益最大. 例如,某公司有3个商店A.B.C,拟将新招聘的5名员工分配给这3个商店, ...
- 因果推断16--市场营销中资源分配问题的直接异质因果学习(美团)
题目:市场营销中资源分配问题的直接异质因果学习 Direct Heterogeneous Causal Learning for Resource Allocation Problems in Mar ...
- k8s调度过程中的资源分配问题
想要明白调度过程中的资源分配问题,首先要明白一件事,k8s中的资源分配,是以Pod为单位的.而Pod本质上而言,其实就是一个进程.就像操作系统一样,进程是资源分配的最小单位. k8s解决的一个比较大的 ...
- 资源分配问题(动态规划)
//问题描述:资源分配问题 //某厂根据计划安排,拟将n台相同的设备分配给m个车间,各车间获得这种设备后,可以为国家提供盈利Ci j(i台设备提供给j号车间将得到的利润,1≤i≤n,1≤j≤m) . ...
- 动态规划 资源分配问题
资源分配问题是考虑如何把有限分配给若干个工程的问题.参考<算法设计与分析> 下面直接贴代码: //为了和书上的内容一致,我的变量名.变量所代表的意思和书上的几本一致 #include< ...
- FlexRay关注事项2_网络总线资源分配问题
FlexRay关注事项2_网络总线资源分配问题 要了解总线资源的分类,需要了解几个技术前提,第一个就是Flexray的数据收发硬件机制: 被发送的数据首先到达数据主机进行数据确认,然后道道数据通信器, ...
- 4.2.8求解任务分配问题
1. 问题描述 有n(n≥1)个任务需要分配给n个人执行,每个任务只能分配给一个人,每个人只能执行一个任务,第i个人执行第j个任务的成本是c[i][j].求出总成本最小的一种分配方案 2. 解题思路 ...
最新文章
- 2021-03-26习题4-7 最大公约数和最小公倍数 (15 分)
- Linux下的I/O复用与epoll详解
- C# 线程手册 第五章 扩展多线程应用程序 系列
- 科技业务同比增长超20%,中国平安“金融+科技”成了吗?
- 2017西安交大ACM小学期数论 [水题]
- spring整合ehcache2.5.2缓存异常-- net.sf.ehcache.CacheException
- windows 安装apex_Nvidia Apex安装
- C语言排序方法-----二元选择排序法
- requesbodys.java_这个requestBody的正确swagger-annotation是什么?
- linux 远程 mysql,linux下mysql远程访问
- Linux下打包qt程序,可以发布到一台纯净的linux发行版系统上
- 面试题:之字形顺序打印二叉树
- Apache PDFBox 1.8.1 发布
- 用微课学计算机应用基础--PPT制作
- 安卓Tasker自动转发短信到邮箱
- 计算机显示器外壳怎么防水,电脑显示器怎么拆开外壳
- 迷你播放器--第一阶段(3)--MediaPlayer的封装
- Qt: 判断字符串是否为数字,是否为整数
- Vue实现渐变色进度条
- 快速删除工作表中所有的文本框