数学建模

来源:互联网 发布:qq空间淘宝抽苹果手机 编辑:程序博客网 时间:2024/04/29 16:05
     

任务描述:

现假设有N台机器,每台机器的权重为W(n),数据为0-K的范围(其中K远大于N)。

现在每台机器中都有一部分在范围上连续的数据,分别为R(1),R(2)...R(m),每台机器可能包含多个不定长的非连续范围。

需求则是,提供一种算法,使其移动最少量的数据,使全部数据按照权重比例分配在N台机器中,并使每台机器仅包含一个连续的范围段(多个连续的范围段放到一起会合并成一个大的连续的范围段)。

例如,现在有10台机器(A-J代表),每台机器的权重为1,2,3,4,5,6,7,8,9,10。数据范围则是1-10000。 当前每台机器的数据平均分布,分别包含10个不连续的范围段。

主机名范围1范围2范围3...A1-1001001-11002001-2100...B101-2001101-12002101-2200...C201-3001201-13002202-2300...D301-4001301-14002301-2400...E401-5001401-15002401-2500...F501-6001501-16002501-2600...G601-7001601-17002601-2700...H701-8001701-18002701-2800...I801-9001801-19002801-2900...J901-10001901-20002901-3000...

而计算结果则应当类似(本结果不一定为移动最少数据所需要的结果):

主机名范围A1-181B182-546C547-1093D1094-1822E1823-2733F2734-3826G3827-5101H5102-6558I6559-8197J8198-10000

每个机器仅包含一个连续的范围段,而范围段的范围比例则与每台机器的权重相同,同时需要确保中途所移动的数据量最少。

最笨的方式按照排列组合,遍历所有可能的组合并找到最优的解,其开销为1x2x3...xN,并不可取。该任务的优胜者为提供算法效率最高者。

0 0
原创粉丝点击