[理工] pseudo polynomial time

楼主: NTUmaki (西木野真姬)   2020-09-06 15:15:36
版上两篇文章看过了,但有些还是不懂、想确认
我目前理解是这样:
0/1 knapsack problem 复杂度 O(nW)
n是物品数量(阵列有多少个‘’元素‘)
W就是一个数值(input 只会看到一个东西)
但数值跟物品数量都是人的定义,对电脑来说最后都是开了nW的二维阵列,算了nW格的东西。所以其实数值、数量对电脑程式来说没差吧?
所以不太懂要取 m=lgW 然后说复杂度是O(n2^m) 的理由
目前我是这样理解:
因为复杂度理论也是人定义的,所以当初我们要求的input 必须是一个可以数有多少个的东西,以此题来说,input就会真的出现n+1数字(n个价格、1个重量)
W我们没办法说他 size 是1,要找一个会随着W变大而增长的东西当input size,所以取 bit 数当他的size
这边再提一个疑问,如果我是取他有几位数可以吗?(取log 10为底,反正出来的是exponential)
作者: aarzbrv (我爱钻石光! 芒! 长!~~)   2020-09-06 15:59:00
“我是取他有几位数可以吗?”的回答,就是您所理解到的“所以取bit 数当他的size”。会不会是因为还没发明电脑的社会习惯用log 10,发明后用log 2,造成您的困惑呢?
楼主: NTUmaki (西木野真姬)   2020-09-06 16:11:00
不算困扰,只是想说关键应该是要把W的size量化成 随着W这个数字越大,他的size也要越大,所以取他有几位也对吧
作者: aarzbrv (我爱钻石光! 芒! 长!~~)   2020-09-06 16:21:00
或是“取他有几位(元)”,您是否认同在下多加一个字呢?
楼主: NTUmaki (西木野真姬)   2020-09-06 16:22:00
原本的我同意啊,只是我想说取几位表达趋势 也是exponential
作者: aarzbrv (我爱钻石光! 芒! 长!~~)   2020-09-06 16:27:00
您目前的主文与推文,在下如果没会错意的话,都同意;希望在下的推文没有误导您的地方,抱歉!
楼主: NTUmaki (西木野真姬)   2020-09-06 20:54:00
不会不会 感谢回复
作者: FRAXIS (喔喔)   2020-09-06 22:20:00
主要是执行时间跟 W 有关,所以才要讨论 bit。像是 comparison-based 的 sorting 都是假设 comparison是 O(1) 时间 与 bit 无关,所以就不用讨论 bit。但是你也可以定义 comparison 跟 bit 长度有关的计算模型只是教科书上不太会这样介绍..

Links booklink

Contact Us: admin [ a t ] ucptt.com