联机算法和离线算法的区别
联机算法:联机算法是在任意时刻算法对要操作的数据只读入(扫描)一次,一旦被读入并处理,它就不需要在被记忆了。而在此处理过程中算法能对它已经读入的数据立即给出相应子序列问题的正确答案。
离线算法:算法设计策略都是基于在执行算法前输入数据已知的基本假设,也就是说,对于一个离线算法,在开始时就需要知道问题的所有输入数据,而且在解决一个问题后就要立即输出结果,通常将这类具有问题完全信息前提下设计出的算法称为离线算法( off line algorithms)。
例子:装箱问题,
1.联机解决,那么箱子的大小按照输入顺序来处理,而且前面已经处理了不可以再改变。考虑有M个0.5-e的小项和M个0.5+e的大项,那么如果存在一个算法可以使用M个箱子将其装完,那么如果有一种情况仅有M个0.5-e个小项,按照这个算法需要M个箱子,而实际上仅需不到M/2个箱子。
2.离线解决,根据箱子的大小可以先排个序,然后再使用首次适合算法或者最佳适合算法,将该问题解决。
所以两者的区别在于对输入和输出的关系。
联机算法,加一个输入,加一个输出。
离线算法,全部输入,全部输出。
__simple原创
转载请注明出处