由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 请教一个算法题:dynamic programming
相关主题
请教背包问题。Viterbi算法和Dijstra算法有什么联系吗
P != NP 被证出来了,同学们修课问题:linear programming这门课对提高编程和cs功底有啥帮助?
线性不等式组.如何模拟multimodal的时间序列数据?
谁给讲讲 conditional model 吧 我不行了,大虾帮忙
linear programming里面的dual problem一般怎么求啊?mind execise
已经解决,包子已发,谢谢各位回复谁给一点思路,关于找最小值的问题
华人科学家叶荫宇获运筹管理学领域最高奖项a math poetry zz
IBM Announces Eight Universities Contributing to the Watson一个问题:关于SAT
相关话题的讨论汇总
话题: dynamic话题: 盒子话题: dp话题: np
进入CS版参与讨论
1 (共1页)
b*******2
发帖数: 2121
1
A公司要ship 总共 n bottles of products,
有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
对应的盒子cost 分别是c1,c2,c3...cm.
盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
怎么选择一种盒子的combination 可以使花费最少?
我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
在一下转不过弯来,这个要怎么做。
希望大侠指导!
万分感谢!
H*******g
发帖数: 1477
2
应该是m种盒子吧

【在 b*******2 的大作中提到】
: A公司要ship 总共 n bottles of products,
: 有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
: 对应的盒子cost 分别是c1,c2,c3...cm.
: 盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
: 怎么选择一种盒子的combination 可以使花费最少?
: 我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
: 在一下转不过弯来,这个要怎么做。
: 希望大侠指导!
: 万分感谢!

H*******g
发帖数: 1477
3
把盒子的cost除以它能装的bottle数,然后按这个类似于“单价”的数据给盒子排序
然后,在给定bottle总数n个的前提下,用除余数的方法,尽量先多用单价便宜的盒子
装,剩下的bottle数再类似处理,直至bottle被装完.
请大侠来鉴定一下这样对不对啊?具体的应该怎么写?谢谢
w***g
发帖数: 5958
4

线性规划问题,没法用动态规划写。


【在 b*******2 的大作中提到】
: A公司要ship 总共 n bottles of products,
: 有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
: 对应的盒子cost 分别是c1,c2,c3...cm.
: 盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
: 怎么选择一种盒子的combination 可以使花费最少?
: 我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
: 在一下转不过弯来,这个要怎么做。
: 希望大侠指导!
: 万分感谢!

H*******g
发帖数: 1477
5
线性规划应该怎么写呀?和动态有啥区别?
怎么判断是线性的还是动态的?

【在 w***g 的大作中提到】
:
: 线性规划问题,没法用动态规划写。
: 。

r*******n
发帖数: 3020
6
typedef struct {
float price;
int n;
} node;
node a[m];
for(int i=0; i a[i].price=ci/mi;
a[i].quantity=mi;
}
sort the array of a[...] decreasingly.
for(int i=0; i int t=N/a[i].quantity;
if(t == 0 )
continue;
else{
N = N - t*a[i].quantity;
printf("%d\t", i);
}
}



【在 H*******g 的大作中提到】
: 把盒子的cost除以它能装的bottle数,然后按这个类似于“单价”的数据给盒子排序
: 然后,在给定bottle总数n个的前提下,用除余数的方法,尽量先多用单价便宜的盒子
: 装,剩下的bottle数再类似处理,直至bottle被装完.
: 请大侠来鉴定一下这样对不对啊?具体的应该怎么写?谢谢

i******t
发帖数: 370
7
可以用DP写的.
令C(n)=minimal cost。
C(n)=min(C(n-x1)+c1,C(n-x2)+c2,...,C(n-xk)+ck)
C(m)=0 for m<=0.
LP可以解,不过得到的是fractional solution,rounding不能保证最优

【在 w***g 的大作中提到】
:
: 线性规划问题,没法用动态规划写。
: 。

r*****e
发帖数: 7853
8
Integer programming:
min(c1*n1+...+cm*nm)
such that x1*n1+...+xm*nm=n; ni>=0; ni are integers

【在 b*******2 的大作中提到】
: A公司要ship 总共 n bottles of products,
: 有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
: 对应的盒子cost 分别是c1,c2,c3...cm.
: 盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
: 怎么选择一种盒子的combination 可以使花费最少?
: 我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
: 在一下转不过弯来,这个要怎么做。
: 希望大侠指导!
: 万分感谢!

r*****e
发帖数: 7853
9
Take a loot at: http://en.wikipedia.org/wiki/Knapsack_problem
It's an NP-complete problem.

【在 b*******2 的大作中提到】
: A公司要ship 总共 n bottles of products,
: 有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
: 对应的盒子cost 分别是c1,c2,c3...cm.
: 盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
: 怎么选择一种盒子的combination 可以使花费最少?
: 我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
: 在一下转不过弯来,这个要怎么做。
: 希望大侠指导!
: 万分感谢!

s*****g
发帖数: 5159
10
General assignment problem.
NP hard.
No polynomial time algorithm can solve that within approximation ratio of 1.
5 (in terms of total cost).
There is a 2 approximation polynomial algorithm.
Check Shmoy and Tados 87, and another paper by Shmoy Tados and another guy i
n 1993.
If this is an interview question, you could tell the interviewer forget abou
t it.

【在 b*******2 的大作中提到】
: A公司要ship 总共 n bottles of products,
: 有m个不同的盒子可以用来装载,每个盒子分别可以装x1,x2,x3... xm 个bottles,
: 对应的盒子cost 分别是c1,c2,c3...cm.
: 盒子和对应的cost没有任何联系,每种盒子可以选择一个或多个或不选择。
: 怎么选择一种盒子的combination 可以使花费最少?
: 我记得以前做过类似的题目,有一点不同,就是每个盒子只能选择一个或者不选择。现
: 在一下转不过弯来,这个要怎么做。
: 希望大侠指导!
: 万分感谢!

相关主题
已经解决,包子已发,谢谢各位回复Viterbi算法和Dijstra算法有什么联系吗
华人科学家叶荫宇获运筹管理学领域最高奖项修课问题:linear programming这门课对提高编程和cs功底有啥帮助?
IBM Announces Eight Universities Contributing to the Watson如何模拟multimodal的时间序列数据?
进入CS版参与讨论
l******e
发帖数: 470
11
应该不是generalized assignment problem
感觉lz的意思物品是无差别的,就箱子有差别
前几楼的dynamic program肯定是对的,就是伪多项式
每个箱子可以用多次,感觉都不象nphard,当然只是感觉。

1.
i
abou

【在 s*****g 的大作中提到】
: General assignment problem.
: NP hard.
: No polynomial time algorithm can solve that within approximation ratio of 1.
: 5 (in terms of total cost).
: There is a 2 approximation polynomial algorithm.
: Check Shmoy and Tados 87, and another paper by Shmoy Tados and another guy i
: n 1993.
: If this is an interview question, you could tell the interviewer forget abou
: t it.

i******t
发帖数: 370
12
Guys, you are confused. The number of bottles are integers - this is a
knapsack with integer price/cost. For this problem DP suffices. For the
general problem, you still can use DP to get a pseudo-polynomial algorithm.

1.
i
abou

【在 s*****g 的大作中提到】
: General assignment problem.
: NP hard.
: No polynomial time algorithm can solve that within approximation ratio of 1.
: 5 (in terms of total cost).
: There is a 2 approximation polynomial algorithm.
: Check Shmoy and Tados 87, and another paper by Shmoy Tados and another guy i
: n 1993.
: If this is an interview question, you could tell the interviewer forget abou
: t it.

i******t
发帖数: 370
13
不是伪,就是多项式

【在 l******e 的大作中提到】
: 应该不是generalized assignment problem
: 感觉lz的意思物品是无差别的,就箱子有差别
: 前几楼的dynamic program肯定是对的,就是伪多项式
: 每个箱子可以用多次,感觉都不象nphard,当然只是感觉。
:
: 1.
: i
: abou

l******e
发帖数: 470
14
伪不伪的问题这个版至少都讨论过10次

【在 i******t 的大作中提到】
: 不是伪,就是多项式
i******t
发帖数: 370
15
鉴于大家都不会翻旧章,每个话题都会被讨论至少10次的,呵呵

【在 l******e 的大作中提到】
: 伪不伪的问题这个版至少都讨论过10次
l******e
发帖数: 470
16
想了下,是nphard的
让ci=mi
就是subset sum,但是每个数可以取多次
把gareyjohnson上subsetsum的证明改改就有了。

【在 l******e 的大作中提到】
: 应该不是generalized assignment problem
: 感觉lz的意思物品是无差别的,就箱子有差别
: 前几楼的dynamic program肯定是对的,就是伪多项式
: 每个箱子可以用多次,感觉都不象nphard,当然只是感觉。
:
: 1.
: i
: abou

i******t
发帖数: 370
17
刚想说这不是subset sum。optimal的时候箱子不一定是满的,所以不是sum...

【在 l******e 的大作中提到】
: 想了下,是nphard的
: 让ci=mi
: 就是subset sum,但是每个数可以取多次
: 把gareyjohnson上subsetsum的证明改改就有了。

l******e
发帖数: 470
18
从subset sum规约过来,可以了吧

【在 i******t 的大作中提到】
: 刚想说这不是subset sum。optimal的时候箱子不一定是满的,所以不是sum...
b*******2
发帖数: 2121
19
怎么感觉像greedy?

【在 H*******g 的大作中提到】
: 把盒子的cost除以它能装的bottle数,然后按这个类似于“单价”的数据给盒子排序
: 然后,在给定bottle总数n个的前提下,用除余数的方法,尽量先多用单价便宜的盒子
: 装,剩下的bottle数再类似处理,直至bottle被装完.
: 请大侠来鉴定一下这样对不对啊?具体的应该怎么写?谢谢

b*******2
发帖数: 2121
20
多谢指导。
这是课堂上的问题,一个take home quiz。老师指名说是Dynamic programming. 我们
课上还没讲NP, 应该不是NP...
或者是老师题目有问题?或许是我理解题目有问题? = =!!

1.
i
abou

【在 s*****g 的大作中提到】
: General assignment problem.
: NP hard.
: No polynomial time algorithm can solve that within approximation ratio of 1.
: 5 (in terms of total cost).
: There is a 2 approximation polynomial algorithm.
: Check Shmoy and Tados 87, and another paper by Shmoy Tados and another guy i
: n 1993.
: If this is an interview question, you could tell the interviewer forget abou
: t it.

相关主题
我不行了,大虾帮忙a math poetry zz
mind execise一个问题:关于SAT
谁给一点思路,关于找最小值的问题A question on NP-hard, maybe sound stupid
进入CS版参与讨论
b*******2
发帖数: 2121
21
非常感谢!
不过老师指明是dynamic programming。
莫非我题目理解错误?

【在 r*****e 的大作中提到】
: Take a loot at: http://en.wikipedia.org/wiki/Knapsack_problem
: It's an NP-complete problem.

b*******2
发帖数: 2121
22
恩,
非常感谢!

【在 i******t 的大作中提到】
: 可以用DP写的.
: 令C(n)=minimal cost。
: C(n)=min(C(n-x1)+c1,C(n-x2)+c2,...,C(n-xk)+ck)
: C(m)=0 for m<=0.
: LP可以解,不过得到的是fractional solution,rounding不能保证最优

p*******r
发帖数: 475
23
DP做出来的不保证是多项式时间

【在 b*******2 的大作中提到】
: 多谢指导。
: 这是课堂上的问题,一个take home quiz。老师指名说是Dynamic programming. 我们
: 课上还没讲NP, 应该不是NP...
: 或者是老师题目有问题?或许是我理解题目有问题? = =!!
:
: 1.
: i
: abou

w***g
发帖数: 5958
24
正解。

【在 p*******r 的大作中提到】
: DP做出来的不保证是多项式时间
H*******g
发帖数: 1477
25
伪不伪有什么区别啊?

【在 l******e 的大作中提到】
: 伪不伪的问题这个版至少都讨论过10次
H*******g
发帖数: 1477
26
不满的箱子应该尽可能少吧?是为了满足rounding吗?

【在 i******t 的大作中提到】
: 刚想说这不是subset sum。optimal的时候箱子不一定是满的,所以不是sum...
l******e
发帖数: 470
27
http://en.wikipedia.org/wiki/Pseudo-polynomial_time

【在 H*******g 的大作中提到】
: 伪不伪有什么区别啊?
b********o
发帖数: 466
28
太复杂了
r*****e
发帖数: 7853
29
Also DP cannot guarantee global optimum, like the Viterbi algorithm

【在 p*******r 的大作中提到】
: DP做出来的不保证是多项式时间
1 (共1页)
进入CS版参与讨论
相关主题
一个问题:关于SATlinear programming里面的dual problem一般怎么求啊?
A question on NP-hard, maybe sound stupid已经解决,包子已发,谢谢各位回复
NP华人科学家叶荫宇获运筹管理学领域最高奖项
What is this course for?IBM Announces Eight Universities Contributing to the Watson
请教背包问题。Viterbi算法和Dijstra算法有什么联系吗
P != NP 被证出来了,同学们修课问题:linear programming这门课对提高编程和cs功底有啥帮助?
线性不等式组.如何模拟multimodal的时间序列数据?
谁给讲讲 conditional model 吧 我不行了,大虾帮忙
相关话题的讨论汇总
话题: dynamic话题: 盒子话题: dp话题: np