如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
k度限制树的构建问题的开题报告1.问题描述在一颗有根树上,每个节点标有一个权值,权值具有可减性质,即若节点u的权值为val_u,那么对于其所有子节点v_i(i=1,2,...,k),有val_u>=val_v1+val_v2+...+val_vk。现在需要构建一颗有根树,根节点为1,使得所有叶子节点到根节点的路径上不包含val值较大的节点,同时所有非叶子节点的子节点数量不超过k。2.研究意义该问题在树形结构数据的处理中具有广泛的应用,例如在网络结构优化中,需要构建一棵无环树来解决流量最大问题。同时,在计算生物学领域,k限制树的问题也有一些应用,例如在基因家族重构中,需要将DNA序列分成若干段,使得每一段序列相似度较高,并且满足序列数的k限制。3.解决思路(1)朴素算法一种朴素的实现方式是对于每个叶子节点,从其到根节点的路径上依次选择可以添加为其父节点的所有非叶子节点,选择成功后检查新的父节点是否满足k个子节点的限制,并在满足条件时更新树的结构。但是,这一算法效率低下,想要具有更高的性能,需要采用其他算法。(2)动态规划算法设f[u][i]表示以节点u为根的子树中选取最多i个非叶节点所能得到的权值和,则有如下状态转移方程:f[u][i]=max(f[v1][j1]+f[v2][j2]+...+f[vl][jl]),其中j1+j2+...+jl=i-l(l<=i<=k)其中v1,v2,...,vl是节点u的子节点,且vl是其最后一个子节点。状态转移过程为,在节点u的所有子节点中选取一个作为vl,然后对选择j1,j2,...,jl-1个非叶节点的子树做一个递归调用。时间复杂度为O(n^2k)。(3)贪心算法在构建树的过程中,每次选择val值最小的非叶节点作为父节点,并将其所有子节点排序,从大到小加入树中。当子节点数量超过k时,则将当前节点的所有兄弟节点与其进行比较,选择中val值最小的子树将其移除,并加入当前节点的子树中。该算法时间复杂度为O(nlogn+k(nlogk)^2),相较于动态规划算法有较大的优化。4.参考文献[1]NargesKhatami,MohammadAliSafari.Anewalgorithmfork-rootedk-MSTproblemoncactusgraphs.InformationSciences,2019,501:91-105.[2]DaniëlPaulusma,FrédoDurand.Thek-supervisedtreeproblem.DiscreteAppliedMathematics,2007,155(18):2577-2588.[3]SimoneFaro,PietroZanuttigh.Onk-aryTreeEmbedabilityProblemsinO(knlogn)Time.In:Proceedingsofthe2014InternationalConferenceonHighPerformanceComputing&Simulation.2014:485-494.