基于优化递归算法的分子量分解问题.docVIP

基于优化递归算法的分子量分解问题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. PAGE 2 . 第 PAGE 2页,共 NUMPAGES 1页 基于优化递归算法的分子量分解问题 摘要: 本文讨论的问题是:在实验室拥有或不拥有计算机的情况下,如何将已知分子量x的蛋白质分解成18种已知分子量的氨基酸的问题,并满足蛋白质含氮量在15%—17%的物理性质。 在实验室有计算机的情况下,本文首先考虑了穷举算法,该问题就等效为十八元一次方程求整数解的问题,表示为 每种氨基酸构成蛋白质数量root(i)的上限为+1,取x最大为1000时,有种,运算量过大难以实现。 我们又考虑了递归算法,即从分子量最大的第18种氨基酸开始考虑,第18种氨基酸分子构成蛋白质的个数,对root进行分类取值,在取值已知的情况下再考虑第17种氨基酸,此时分子量减去第18种氨基酸总分子质量,得到新的分子量,将大大减少计算量。抽象归纳为的取值范围如下: 该算法同样满足含氮量的约束条件。我们借助C语言编写程序并对程序进行优化,大大加快了运行速度。 在实验室无计算机的情况下,由氨基酸的结构通式得出,每个氨基酸都存在结构,分子量为56。本文将18种氨基酸的分子量都减去56,得到18种氨基酸R基的分子量。先将任一分子量除以56取整,得到构成该蛋白质的氨基酸数目的范围(即),再根据b的取值进行分类讨论从而选择R基,后根据蛋白质含氮量对结果进行验证,在人工的情况下,此方法相对于递归法大大地减少了计算量。 关键词:分子量分解问题 递归优化法 含氮量 C语言 结构通式 1、问题重述 生命蛋白质是由若干种氨基酸经不同的方式组合而成。在实验中,为了分析某个生命蛋白质的分子组成,通常用质谱实验测定其分子量x (正整数),然后将分子量x分解为n个已知分子量a[i](i=1,,n)氨基酸的和的形式。某实验室所研究的问题中:n=18, x1000,a[i](i=1,,18)分别为57, 71, 87, 97, 99, 101, 103, 113, 114, 115, 128, 129, 131, 137, 147, 156, 163, 186。要求针对该实验室拥有或不拥有计算机的情况,对如何分解分子量x作出解答,即针对任意一个分子量x具体给出由哪些a[i](i=1,,n)氨基酸组成。 2、问题分析 题目中给出18种氨基酸分子量,要求解出已知分子量的蛋白质由哪几种氨基酸组成。初步分析,这是十八元一次方程求整数解的问题,方程形式为 其中为已知量,为18种氨基酸分子量,未知数为组成蛋白质的每种氨基酸的个数。 3、模型假设 (1)假设氨基酸组合形成蛋白质时不脱水。 (2)假设蛋白质中肽键不存在多键或成环情况,两个氨基酸之间只形成一条肽键。 (3)假设每种氨基酸出现的概率都相同。 4、符号设定 — 第种氨基酸的分子量; — 第种氨基酸的数量; — 第种氨基酸分子中氮原子的个数; — 蛋白质分子量; — 第种氨基酸基的分子量; — 蛋白质中所含氨基酸的总数; 5、模型建立与求解 5.1实验室有计算机时的模型建立 5.1.1穷举法模型 我们首先考虑用穷举算法求解方程,根据上文符号设定,该方程可以表示为 其中且为整数。利用穷举法,对每个分别取,1,…,,找出符合上述方程的每个的取值,所得的每组解的集合即为最终解。穷举算法利用MATLAB实现,程序代码见附录一。 用上述算法,我们发现,如果的取值太大,MATLAB警告“busy”,程序无法运行。假如,求出每一个的最大值,如表一所示: 表一 最大值 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 a(i) 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 root(i) 17 14 11 10 10 9 9 8 8 8 7 7 7 7 6 6 6 5 运算次数为次,MATLAB无法进行如此大数量级的运算,导致可求解的具有很大的局限性。所以我们建立下文中的新模型,从而减少运算次数,提高运算速度,增强运算可行性。 5.1.2递归法模型 为减少冗余次数,我们设计思路如下:从分子量最大的氨基酸开始考虑,初步确定第18种氨基酸分子个数后,对剩下17种氨基酸的确定,则不需要再用作为衡量标准,而可以将蛋白质中所含第18种氨基酸总分子质量减掉后,得到新的分子量,则剩下的17种氨基酸可以用新的分子量来确定。按照此思路分析,的新取值范围如下: 利用这种模型,可以有效减少运算次数,使程序可以顺利运行。 5.1.3结果筛选 我们考虑通过查阅资料了解到测定蛋白质的常用指标是含氮量,一般蛋

文档评论(0)

ygxt89 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档